/039 SUBROUTINE READS OR WRITES ON DISK (TSS-8) / /BEFORE CALLING CALCULATE DISKADDRESS AND /PUT IN HIOR AND LOWOR / /CALL :JMS FILE / FUNCTION (RFILE OR WFILE) / INTERNAL FILE NUMBER / -# WORDS / CORE ADDRES / ERROR RETURN / NORMAL RETURN / /FILE MUST BE OPEN !!!!!!!!! / / DFILE, 0 TAD I DFILE /GET FUNCTION DCA DFINST ISZ DFILE TAD I DFILE /GET INT. FILE NR DCA W6BUF+1 ISZ DFILE DFTRY, TAD I DFILE /-#WORDS DCA W6BUF+2 ISZ DFILE CLA CMA TAD I DFILE /CORE ADDRESS DCA W6BUF+3 ISZ DFILE TAD W6AD /ADDRESS 6 WORD BUFFER DFINST, 0 /DO FUNCTION TAD W6BUF+5 /ERROR WORD SNA JMP DFOKE /NO ERROR CLL RTR /ERROR SZL SNA CLA SKP CLA /ERROR=2 JMP DFERR /ERRORIS NOT 2 IACC DCA W2BUF+2 /ERROR IS FILE FULL TAD W2AD /SO MUST EXTEND FILE EXT /EXTENDING ITH ONE SEGMENT SZA CLA JMP DFERR /ERROR: DISK FULL TAD DFSEGA /ADDRESS LIST SGMENTCOUNTERS TAD W2BUF /INT FILE NR DCA W6BUF+2 /TEMP USE ISZ I W6BUF+2 /INCREMENT COUNTER CLL CLA CMA RAL /-2 TAD DFILE DCA DFILE JMP DFTRY /GO TRY AGAIN NOW DFOKE, ISZ DFILE DFERR, JMP I DFILE / /VARIABLES / DFSEGA, DFSEG0 DFSEG0, 0 /# SEGMENTS FILE 0 DFSEG1, 0 /# SEGMENTS FILE 1 DFSEG2, 0 /# SEGMENTS FILE 2 DFSEG3, 0 /# SEGMENTS FILE 3 W6AD, W6BUF W2AD, W2BUF W6BUF, HIOR, 0 /HIGH ORDER DISK ADDESS W2BUF, 0 /INT FILE NR 0 /-# WORDS;# SEG'S TO EXT 0 /CORE ADDRESS-1 LOWOR, 0 /LOW ORDER DISK ADDRESS 0 /ERROR WORD