![RCA CDPl8S693 Скачать руководство пользователя страница 79](http://html.mh-extra.com/html/rca/cdpl8s693/cdpl8s693_user-manual_334504079.webp)
User Manual for Microboard Computer Development System CDP18S693 & CDP18S694
78
8542
8542
>
>
1073
1074 # .* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8542
>
1075 . .
READ TAPE ROUTINE
8542
>
1076
. .
INITIALLY READS ONE BLOCK OF 384 BYTES INTO A BUFFER FROM TAPE
8542
»
1077
. .
THEN EACH CALL TO IT PUTS ONE BYTE INTO CHAR.1 AND DECREMENTS
8542
>
1078
. .
DOWN THE BUFFER UNTILL IT IS EMPTY THEN GETS NEXT BUFFER LOAD
8542
)
1079
. .
USES A 3 BYTE BUFFER WHICH WHEN NOT IN USE IS STORED ON STACK
8542
>
1080 . .
LOWEST ADDRESS IS BLOCK COUNT
8542
>
1081
. .
NEXT IS DRIVE # IN TOP2 BITS AND MSB OF BYTE COUNT
8542
>
1082 . .
HIGHEST IS REST OF BYTE COUNT
8542
»
1083 . .
PTR (REGISTER C) NORMALLY POINTS AT THE HIGHEST BYTE
8542
>
1084 . .
%%% NOTE: REGISTER C MUST CONTAIN THE IOCB ADDRESS AS SET UP
8542
>
1085 . .
IN THE ROUTINE FINDTP.
%%%
8542
I
1086 ..* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
8542
8542 9 3 7 3 ;
1087
1088 READT:
GHI PC;STXD
..I N I T PARITY FLAG
8544 0C;
1089
LDN PTR
. . I F BYTE CNT GREATER THAN 0 , THEN JUST PUT
8545 3A7B;
1090
BNZ EXRD
. . I N CHAR.1
8547 2C;
1091
DEC PTR
8548 0CF6;
1092
LDN PTR;SHR
..T EST HI BIT OF IOCB
854A 3 3 7 9 ;
1093
BDF EXRDl
854C 0CF901;
1094
LDN PTR;ORI 1
..S E T BYTE COUNT TO MAXIMUM
854F 5C;
1095
STR PTR
8550 lC ;
1096
INC PTR
8551 F8805C;
1097
LDI # 8 0 ; STR PTR
8554 D 48676;
1098
SEP CALL; , A( RDBLOK)
..G ET NEXT BLOCK FROM TAPE
8557 3B7A;
1099
BNF TAG1
. . I F NO PARITY ERR
8559 12;
1100
INC SP
..OTHERWISE SET PARITY FLAG
855A F 8 0 0 7 3 ;
1101
LDI 0;STXD
855D 9C73;
1102
GHI PTR;STXD
..SAVE IOCB!
855F 8C73;
1103
GLO PTR;STXD
8561 D483F0;
1104
SEP CALL;,A(OSTRNG)
8564 0D0A5041524954 ; 1105
,A (CRLF),T'PA RITY BAD'
856B
8570
5 9 2 0 4 2 4 1 4 4 ;
0D0A00;
1105
1106
,A(CRLF) , 0
8573 12;
1107
INC SP
..RESTORE IOCB
8574 42AC;
1108
LDA SP;PLO PTR
8576 02BC;
1109
LDN SP;PH I PTR
8578 3 8 ;
1110
SKP
8579
8579 1C;
1111
1112 EXRD1:
INC PTR
857A
857A 0C;
1113
1114 TAG1:
LDN PTR
..DEC BYTE COUNT IN THE IOCB
857B FF015C;
1115 EXRD:
SMI
l;S T R PTR
857E AF;
1116
PLO CHAR
..CHAR POINTS INTO THE READ BUFFER
857F 2C;
1117
DEC PTR
8580 0C7F005C;
1118
LDN PTR;SMBI 0;STR PTR
8584 FA01FC8DBF;
1119
ANI l;A D I A .l(R D B U FF-256);PH I CHAR
8589 lC ;
1120
INC PTR
858A OFBF;
1121
LDN CHAR;PHI CHAR
..PU T THE BYTE INTO CHAR.1
858C 12;
1122
INC SP
..S E T PARITY FLAG (l=PA SS)
858D 02FE;
1123
LDN SP;SHL
858F D5;
1124
SEP R5
8590
8590
J
9
1125
1126
. .
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ^ * * * * * * * * * * * * * * * * * * *
8590
y
1127
. .
WRITE TAPE ROUTINE
8590
>
1128
. .
PUTS BYTE FROM CHAR.1 INTO BLOCK BUFFER.
8590
>
1129
. .
WHEN BUFFER FULL,WRITES IT TO SELECTED TAPE.
8590
9
1130
• •
NOTE: REGISTER C MUST CONTAIN THE IOCB ADDRESS
8590
9
1131
. . * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *