
Сообщение от
Patron
Проблема была в драйвере HX.SYS - при чтении несжатых данных с размером пакета > 32767.
Да, проблема исчезла. Команда DIR/BAD/FIL отработала без проблем. Далее я решил нагрузить канал командой DIFF/BIN/DEV HX0: HX1:. Удивительно то, что BINCON не запросил размер дисков, ну да ладно. Более удивительно, когда BINCON полез за границу диска, т.е. запрашивал номер блока, больше чем 1600. Со стороны HX-сервера соответственно была ошибка "HX:ReadDSK -- ОШИБКА". Далее был запрос блоков 417 (длина 2048 слов) и 401 (длина 6144). Во время этого чтения возникла ошибка TRAP10 по адресу 157520. Соответственно код там такой:
Код:
157512: 122323 CMPB (R3)+,(R3)+
157514: 004767 CALL 157002
157516: 177262
157520: 005303 DEC R3
157522: 001375 BNE 157516
Этому соответствует код из драйвера:
Код:
Skip:
CmpB (R3)+, (R3)+ ; R3 += 2;
Call ChIn
SOB R3, .-4. ; Get packet bytes.
Но в данном драйвере SOB является макросом, поэтому конструкция ".-4." срабатывает не на начале макроса, а на команде BNE, поэтому переход осуществляется не на команду CALL, а на ее аргумент, отсюда и TRAP10.
Можно ситуацию убыстрить командой DIFF/BIN/DEV HX0:/ST:1590. HX1:/ST:1590..