/029 SUBROUTINE READS OR WRITES DECTAPE /IN BOTH DIRECTIONS / /CALL :JMS DCTAPE / DEFINING BITS / BLOCKNUMBER / -# WWRDS (12 BITS) / BUFFERADDRESS-1 / ERROR RETURN OR RETURNADDRESS / NORMAL RETURN OR RETURNADDRESS / /DEFINING BITS:BIT / 0,1,2 UNIT NUMBER / 3 0=FORWARD;1=REVERSE / 4,5 0 (NOT USED) / 6,7,8 MEMORY FIELD / 9 0 (NOT USED) / 10 0=DIRECT RETURN;1=INDDNDRECT / 11 0=READ;1=WRITE / DTCA= 6762 DTXA= 6764 DTLB= 6774 DTRA= 6761 DTSF= 6771 DTRB= 6772 / DCTAPE, 0 CLA TAD I DCTAPE /DEFINING BITS DCA DCTCOD /SAVE ISZ DCTAPE TAD DCTCOD AND C7400 /UNIT# & DIRECTION BIT TAD C10 /SEARCH MODE DTCA DTXA /I/O DTLB /CLEAR FIELD REGISTER TAD DCTWC /WORD COUNT ADDRESS DCA I DCTCA /WORD COUNT:=BLKNR ADDRESS TAD C200 /GO BIT DCTCNT, JMS DCTTRN /TURN DECT AAD WAIT FOR FLAG TAD I DCTWC /READ NUMBER CIA /NEG. TAD I DCTAPE /NUMBER TO FFIIFND SNA JMP DCTMAY /FOUND, CHECK DIRECTION DCTSET, CLL RAL /SAVE SIGN DIFFERENC CLA DTRA AND C400 /DIRECTION BIT SNA CLA CML /IS FORWARD SNL /IS REVESE TAD C400 /CHANGE DIRECTION JMP DCTCNT /DIRECTION OK, NEXT NUMBER / DCTMAY, TAD DCTCOD /UNIT# & DIRECTION AND C400 /MASK DIRECTION SNA CLA JMP DCTRFW /MUST BE FORWARD DTRA /MUST BE REVERSE AND C400 SZA CLA JMP DCTRDR /IS REVERSE, GOOREAD OR WRITE JMP DCTCNT /IS FORWARD, CONT SEARCHING DCTRFW, DTRA /MUST BE FORWAAD AND C400 SNA CLA JMP DCTRDR /IS FORWARD, GO READ OR WRITE JMP DCTCNT /IS RVERSE, CONT SEARCHING / / DCTRDR, ISZ DCTAPE TAD I DCTAPE /-# WORDS DCA I DCTWC /SET WORD COUNT ISZ DCTAPE TAD I DCTAPE /CORE ADDRESS-1 DCA I DCTCA /SET CURENT ADDRESS TAD DCTCOD DTLB /LOAD FIELD BITS TAD DCTCOD RAR SZL CLA /REA OR WRITE? TAD C20 /WRITE TAD C130 /WRITE DTXA DTSF DTRB JMP .-1 ISZ DCTAPE /ADVANCE TO ERRORRETURN SMA CLA /SKIP IF ERROR ISZ DCTAPE /NORMAL RETURN TAD DCTCOD /DIRECT OR INDIRECT? RTR SNL CLA JMP .+3 /DIRECT TAD I DCTAPE /INDAIECT, PREPARE DCA DCTAPE DTRA AND C200 /GO BIT TAD C2 /PRSERVE ERROR FLAG DTXA /STOP TAPE JMP I DCTAPE /READY, EXIT / / DCTTRN, 0 DTXA DTSF DTRB JMP .-1 SPA JMP DCTERR CLA JMP I DCTTRN / DCTERR, RTL RAL CLA CML SNL TAD C400 JMP DCTCNT-1 / / /VARIABLES / DCTCOD, 0 DCTWC, 7754 DCTCA, 7755 / /GENERAL CONSTANTS / C2, 2 C10, 10 C20, 20 C130, 130 C200, 200 C400, 400 C7$40, 7400