у меня другого не было 1988-89 год однако
это да, приятель привёз Танграф, я ему РМ немного автоматизировал, на 286 диски начинались с 40
в EC1841 диски были на 20, как сейчас помню за экспортную цацу ВАЗ-2106 (кто видел это произведение искуcтва) мы отдали 1800= а за пару EC1841 50000=
В этом лэптопе стоял 3.5" диск. А 5 Мб я, честно говоря, видел только 5".
Ну а 5" в лэптоп - это уже перебор.
Я глюк вроде нащупал…
А можно ли дебаг вынести с USB на аппаратный 232?
у RP2040 насильно к любому юсб устройству вешается виртуальный ком порт.
Автор библы джойстика прописал размер
#define TOTAL_DESCRIPTOR_LENGTH ((1 * CONFIGURATION_DESCRIPTOR_LENGTH) + (1 * INTERFACE_DESCRIPTOR_LENGTH) + (1 * HID_DESCRIPTOR_LENGTH) + (2 * ENDPOINT_DESCRIPTOR_LENGTH))
прописал верно
//CONFIGURATION_DESCRIPTOR_LENGTH = 9
//INTERFACE_DESCRIPTOR_LENGTH = 9
//HID_DESCRIPTOR_LENGTH = 9
//ENDPOINT_DESCRIPTOR_LENGTH = 7*2=14
//=41 а в юсб прет
//TOTAL_DESCRIPTOR_LENGTH = 0x6B = 107
т.е. оно насильно подменяет первые 9 байт прописываемых функцией configuration_desc(uint8_t index)
на свои, со своим размером (добавляет к моему дескриптору свой кусок) как итог добавляет подгрузку в конце описание описываемого устройства еще и CDC для полного счастья.
Идея - он же это по флагу делает
флаг звать #define SERIAL_CDC 1
флаг лежит в файле
AppData\Local\Arduino15\packages\arduino\hardware\mbed_rp2040\4.0.2\variants\RASPBERRY_PI_PICO\pins_arduino.h
Но отключение флага приводит к отказу сборки …
Я пока не смог это “Выключить”, подменами занимается нижеследующий кусок кода… Вот зачем было ТАКОЕ писать?
const uint8_t *arduino::PluggableUSBDevice::configuration_desc(uint8_t index)
{
#define TOTAL_DESCRIPTOR_LENGTH 0xFFFF
// Create a huge configuration descriptor using all the pluggable ones
// jump the first 9 bytes (config descriptor) for each "module" and recompose it later
uint8_t configuration_descriptor_temp[] = {
CONFIGURATION_DESCRIPTOR_LENGTH, // bLength
CONFIGURATION_DESCRIPTOR, // bDescriptorType
LSB(TOTAL_DESCRIPTOR_LENGTH), // wTotalLength (LSB)
MSB(TOTAL_DESCRIPTOR_LENGTH), // wTotalLength (MSB)
lastIf, // bNumInterfaces
0x01, // bConfigurationValue
0x00, // iConfiguration
C_RESERVED | C_SELF_POWERED, // bmAttributes
C_POWER(USB_MAX_POWER), // bMaxPower
};
memcpy(_config_descriptor, configuration_descriptor_temp, sizeof(configuration_descriptor_temp));
int size = sizeof(configuration_descriptor_temp);
arduino::internal::PluggableUSBModule* node;
for (node = rootNode; node; node = node->next) {
uint8_t* desc = (uint8_t*)node->configuration_desc(0);
int len = (desc[3] << 8 | desc[2]) - 9;
memcpy(&_config_descriptor[size], &desc[9], len);
size += len;
}
_config_descriptor[2] = (size & 0xFF);
_config_descriptor[3] = (size & 0xFF00) >> 8;
return _config_descriptor;
}