Сообщение от
HardWareMan
Denn, т.е. вариант с отсечением сохранения данных при выходе за пределы размера в том же цикле не учитывается?
Это получается, что в цикле нужно делать две проверки (работать будет медленнее). А по фатку проверки будет четыре, т.к. байты вычитываются из двух разных портов по очереди (тобишь объём кода ощутимо возрастёт). Одни минусы.
Вот причинный участок кода:
Код:
LDHDAT6:
IN PT_IDE_DATL
MOV C,A
MOV A,B
CALL SVBYTE
INX H
DCX D
MOV A,D
ORA E
JZ LDHDAT7
IN PT_IDE_DATH
MOV C,A
MOV A,B
CALL SVBYTE
INX H
DCX D
MOV A,D
ORA E
JNZ LDHDAT6
LDHDAT7:
; ПРИНУДИТЕЛЬНОЕ ЗАВЕРШЕНИЕ ОПЕРАЦИИ
MVI A,0E4h
CALL SetCMD
XRA A
CALL SetCMD
XRA A
RET
В [HL] адрес в ОЗУ куда складываем байты, в [B] номер страницы ОЗУ, в [DE] длина хвоста, регистр [C] используется для передачи записываемого байта процедуре записи в произвольную банку.