rblk rep
blk done
MOV.B | R14, 22 (SP), | поместить счётчик |
; в стек | ||
CALL | #sack | ; отправить подтвержде- |
; ние (АСК) | ||
CALL | #rbyte | ; принять байт данных |
MOV.B | R14, 0(R9) | ; переместить данные |
; из блока | ||
INC | R15 | ; инкремент счётчика |
; положения блока | ||
INC | R9 | ; инкремент указателя |
; блока | ||
CMP | 22 (SP), R15, | проверка завершения |
; данных | ||
JZ | blk done | ; повтор до завершения |
CALL | #sack | ; отправить подтвержде- |
; ние (АСК) | ||
CMP | 22 (SP), R15, | проверка завершения |
; данных | ||
JNZ | rblk rep | ; повтор до завершения |
CALL | #nack | ; отправить неподтверж- |
; дение (NACK) | ||
CALL | #pbit | ; отправить стоповую |
; посьшку | ||
MOV.B | #01h, 30 (SP) | ; возвращает «1» при |
; успешном завершении | ||
POP | R13 | |
POP | R12 | |
POP | Rll | |
POP | RIO | |
POP | R15 | |
POP | R14 | |
POP | R9 | |
POP | R8 | |
POP | R7 | |
POP | SR | |
RET |
*******************************************
Подпрограммы нижнего уровня, общие для всех
протоколов *******************************
****************************************************
отправка стартовой последовательности и адреса ****************************************************
sbit
; «отпустить» обе линии