///. Интерфейс с внешними устройствами
PUSH R13
MOV.В #00h, R15
MOV.В 26(SP), R8
MOV.В 28(SP), R7
MOV 24(SP), R9
CALL #sbit
CALL tsendzero
CALL #ack
CALL #sbyte
CALL #ack
CALL #rsbit
CALL CALL CALL MOV. В |
#sendone #ack
#rbyte R14, 22 (SP)
CALL #sack
rblk rep | CALL MOV. В | #rbyte R14, 0(R9) |
INC | R15 | |
INC | R9 | |
CMP | 22 (SP), R15 | |
JZ CALL | blk done #sack | |
CMP | 22 (SP), R15 | |
blk done | JNZ CALL | rblk rep #nack |
циклический байтовый
счётчик
параметр команды
параметр адреса
стартовый адрес блока
отправить стартовую
посылку и адрес
отправить «О» для
записи
ждём подтверждения
(АСК)
отправить код команды
ждём подтверждения
(АСК)
отправить повторяющиеся стартовую посылку и адрес
отправить «1» для чтения ждём подтверждения
(АСК)
поместить счётчик в стек
отправить подтверждение (АСК)
принять байт данных переместить данные из блока
инкремент счётчика положения блока инкремент указателя блока
проверка завершения данных
повтор до завершения отправить подтверждение (АСК)
проверка завершения данных
повтор до завершения отправить неподтверждение (NACK)