*20 //MOD36 /DECODE MODULE 36 /BLOCK 60 /CONTENTS / MGETNAM / TABGET / TABZER LODSYM SEGMNT 4 *1400 36 /GET NEXT VALID FILE NAME /FROM INUNIT DIRECTORIES / MGETNM, JMP INSET ADD TPTR STC FILPTR ADD TCTR STC BETA1 NXTLUP, XSK I BETA1 SKP JMP RESET LDA I FILPTR SAE I 3232 /ZZ0 SKP JMP NG SAE I 5757 /DELETED JMP GOTNXT NG, SKPFIL JMP NXTLUP /GOT A FILE NAME GOTNXT, STC FILNAM LDA I FILPTR STC FILNAM+1 LDA I FILPTR STC FILNAM+2 ADD FILPTR STC TPTR ADD BETA1 STC TCTR JMP EX1 /NORMAL EXIT /FINISHED CURRENT /DIRECTORY, GET NEXT /UNIT. RESET, JMP NXU ADD IUPTR SAE I INLST SKP JMP GOUSER /END OF ULST SETFIL /NEW DIR IN SET I BETA1 -126 JMP NXTLUP / / MGET, SET 14 0 LDA I FILPTR STC FILNAM+2 JMP BLDWRD ADD CURU JMP SETU JMP XFER JMP 14 TABGT, JMP FIXT JMP TABNM XSK I RETURN MGETF, JMP INSET JMP MIXSCN JMP GOUSER /NO FIND JMP MGET /FIND, BRING IN JMP EX1 /NORMAL EXIT FIXT, SET 15 0 FETCH ROL 2 ADA I TABTAB STC BETA1 LDA BETA1 STC .+1 LDF /DF OF TABLE LDA I BETA1 STC FILPTR LDA I BETA1 STC TABEND LDA I BETA1 STA TABLOC ADD FILPTR STC FILPTR JMP 15 / TABNM, SET 15 0 ADD TABLOC SAE TABEND SKP JMP GOUSER /END OF TABLE LDA FILPTR AZE I JMP NOTNAM STC FILNAM LDA I FILPTR STC FILNAM+1 JMP INCLOC LDF 3 JMP 15 NOTNAM, LDA I FILPTR JMP INCLOC JMP TABNM+3 / INCLOC, LDA I FILPTR LDA I 2 ADM TABLOC STA BETA1 /UPDATE PTR JMP 0 EJECT /ROUTINE TO SET UP /PARAMETERS AND BUFFERS /FOR INUNIT FUNCTIONS / INSET, LDA 0 STC INX STC ASSFLG /CLR FLAG ADD INFLG APO I JMP INX /SET, LEAVE /INFLG NOT SET /CHECK OUTFLG LDA OUTFLG APO JMP CKSAV-2 /NOT SET /OUTFLG SET, SAVE DIR IOB I 12 6067 ADD ONE STC MTEM JMP CKSAV / CLR STC MTEM /CHECK FOR SAVED INPUT DIR CKSAV, ADD SAVDIR APO I JMP FSTIN /SAVED INPUT DIR, GET IT SET BETA1 IUPTR LDH BETA1 STC CURU IOB 12 6066 SKP / /GET FIRST INPUT DIR FSTIN, JMP NXU / ADD MTEM STC SAVDIR STC INFLG /SET FLAG COM STC OUTFLG /CLR FLAG INX, JMP EJECT /ROUTINE TO TRANSFER /FILE FROM CORE TO /DISK-TAPE OR VICE /VERSA. /SET UP FROM WORD1 AND WORD2 / XFER, SET BETA4 0 ADD TUMB1 STC TU1 ADD TUMB2 STC TU2 ADD CNT1 /CNTR, WORD1 AZE I JMP WRD2 STC BETA3 TU1, 0 /UMB, WORD1 ADD TAPWRD /QN-BN, WORD1 JMP RBLK ADA I 1001 STC TAPWRD XSK I BETA3 JMP TU1+1 WRD2, SRO I 5252 JMP BETA4 ADD CNT2 /CNTR, WORD2 STC BETA3 ADD TAPWR2 /QN-BN, WORD2 STC TAPWRD TU2, 0 /UMB, WORD2 JMP TU1+1 / /ROUTINE TO SET AXO /TAPE UNIT. ENTER WITH /UNIT NO. IN AC / SETU, SCR 1 STC XT /FOR XOB ADD CURU BCL I 7776 ROL 3 BSE I RDC STC XU /TAPE COMMAND JMP 0 / /ROUTINE TO READ FILES /HANDLES MULTIPLE TAPE /OR DISK UNITS. /ENTER WITH QN-BN IN AC / RBLK, STC RB ADD 0 STC RBX ADD CURU ADA I -7 APO I JMP RDSK LDA I XT, 0 AXO XU, RDC RB, 0 SETAXO ADD RB RBX, JMP /DISK RDSK, ADD M1 APO CLR STC .+2 /SET DISK PARTITION IOB 13 0 /OPERATE DISK ADD RB STC .+2 IOB 12 0 IOB 13 0 JMP RBX-1 EJECT /ROUTINE TO SCAN /CURRENT INDEX DIRECTORY /IF SCAN OF CURRENT /INDEX IS FRUITLESS, /THEN NEXT INDEX FROM /INUNIT OR OUTUNIT LIST /IS READ IN AND SCANNED / MIXSCN, SET 15 0 ADD ITCNT COM STC BETA3 SETFIL SET I BETA1 -125 IDXLUP, SET I BETA2 FILNAM-1 LDA I FILPTR SAE I BETA2 JMP NOTIDX LDA I FILPTR SAE I BETA2 JMP NOTIDX+1 XSK I 15 /GOT IT JMP 15 / NOTIDX, LDA I FILPTR LDA I FILPTR XSK I BETA1 JMP IDXLUP /GET NEXT INDEX JMP NXU XSK I BETA3 JMP MIXSCN+5 JMP 15 /NO FIND / / NXU, SET 14 0 SET BETA4 IUPTR LDH I BETA4 SHD I 7700 /LIST TERMINATOR JMP NXX STC CURU ADD CURU JMP SETU LDA I 6000 JMP RBLK LDF 3 LDA BETA4 STC IUPTR JMP 14 NXX, LDA I 4\INLST-1 STC IUPTR AA36, JMP NXU+2 / /MOD36 /FEB 74