/PROGRAM TO READ RECORDS FROM DTA0: AND DUMP /THEM IN OCTAL, ASCII, AND SIXBIT ON TTY: UNTIL /HALTED. BSW=7002 /PAL-D DOESN'T KNOW BSW FOR SOME REASON *200 CLA TAD K4005 /ASSIGN D0: ASD /DO IT SZA HLT /DIE IF DEVICE BUSY TAD KFCB DTXA /READ BLOCK DTRB /SEE IF SUCCESSFUL AND K7776 /CLEAR DTF BIT SZA /CONTINUE IF NO ERR HLT /DIE ON ERROR TAD M0201 DCA XRB /PRINT 129 CHARS TAD BUFFM1 DCA 10 /PUT AUTOINDEXING PTR LOOP2, TAD I 10 /GET A WORD DCA TEMP /SAVE TAD TEMP /GET BACK JMS PROCT /PRINT IT TAD TAB /PRINT TAB TLS CLA TAD TEMP /GET BACK TLS /PRINT (ASCII) CLA TAD TAB /PRINT TAB TLS CLA TAD TEMP /GET CHAR BSW /ROTATE TO AC6-AC11 AND K0077 TAD BLANK /CVT TO ASCII TLS /PRINT CLA TAD TEMP /GET CHAR AND K0077 TAD BLANK TLS /PRINT LOW CHAR CLA TAD CR /CR TLS CLA TAD LF /LF TLS CLA ISZ XRB /DONE? JMP LOOP2 /NO, LOOP HLT /HALT WHEN DONE /DATA BLOCKS AND POINTERS: K4005, 4005 KFCB, FCB K7776, 7776 M0201, -201 KXRB, XRB BUFFM1, BUFFER-1 FCB, 20 /READ 1 /STARTING WITH BLOCK 1 BUFFER-1 /TRANSFERRING INTO (BUFFER) XRB, 0 /THIS BLOCK IS INIT'D IN PROG K0077, 77 TEMP, 0 CR, 215 LF, 212 TAB, 211 BLANK, 240 / PROCT, 0 DCA PROCT1 /SAVE # TAD PROCT1 /GET BACK RTL /1ST DIG RTL JMS DIGIT /PRINT IT TAD PROCT1 /GET BACK BSW /2ND DIG JMS DIGIT /PRINT IT TAD PROCT1 /GET BACK RTR RAR JMS DIGIT /PRINT IT TAD PROCT1 /4TH DIG JMS DIGIT /PRINT IT JMP I PROCT /RETURN / DIGIT, 0 AND K0007 /MASK OUT UPPER 9 BITS TAD K0260 /CVT TO ASCII TLS /PRINT CLA JMP I DIGIT /RETURN / PROCT1, 0 /TEMP BUFFER FOR # K0007, 7 /MASK TO REMOVE UPPER 9 BITS K0260, 260 /ASCII('0') / BUFFER, /BUFFER FOR CHARS $