Ну тогда у меня есть такое предположение.
вот как читает байт п/п драйвера магнитофона БК11М:
Код:
; Чтение блока.
; Вход: R1 - адрес
; R2 - длина в байтах
ReadBlk1$: ; CODE XREF: ReadFile$+46P
; ReadBlk1$+44j
mov #10, R0
loc_156354: ; CODE XREF: ReadBlk1$+36j
call CalcPulse$ ; счёт импульсов
; Выход: R4 - длительность импульса
cmp R4, 42676 ; это что?
bhi loc_156370 ; "1"
tst (PC)+ ; "0"
; ───────────────────────────────────────────────────────────────────────────
loc_156370: ; CODE XREF: ReadBlk1$+14j
sec
loc_156372: ; CODE XREF: ReadBlk1$+16^
mov @#114, @R3 ; подключаем страницы из БП
mov @R3, R4
rorb @R1 ; сохраняем бит
mov #54002, @R3 ; восстанавливаем ПЗУ
sob R0, loc_156354 ; и так все 8 битов
add 42674, R1 ; изменение адреса
sob R2, ReadBlk1$ ; и так весь блок
return
ненужное переключение страниц делается каждый бит. Из-за чего быстродействия может тупо не хватить.