ASMB,R,B,L,C,X     $EX32                        7905                            
      HED EFMP EXEC MODULE
      NAM $EX32,1,0                             7905                            
      ENT $EX32 
      EXT ERROR, EFCON
      EXT AINVC,NSUWA,FTRBE,CNAME,PNEAD,OPNTB 
      EXT TRBSZ,ARQP1,NOPAS,EBIAS,GTNXE,DPNO,PN 
      EXT PAKSC,MOVCT,APN00,GSC,GNS 
      EXT MASUB,SRCDR,A$BUF 
****************************************************            7905            
*                                                  *            7905            
*        REV         4-21-75                       *            7905            
*                                                  *            7905            
****************************************************            7905            
      SPC 3 
$EX32 EQU * 
      NOP           DUMMY 
      LDB  MD8
      STB  MOVCT    NO. WORDS TO MOVE 
      LDA ARQP1     ADDR. OF SOURCE 
      LDB  AARG1    ADDR. OF DEST.
      JSB  MOVE     MOVE THE ARGS.
      LDA  ARG2,I   FUNCTION NO.
      ADA  AJMPT
      JMP  A,I      EXECUTE PROPER FUNCTION 
AJMPT DEF JMPTB-6,I 
JMPTB EQU * 
      DEF FUN06 
      DEF EFCON 
      DEF FUN08     FUNCTION 8
      DEF FUN09 
      DEF FUN10 
      DEF EFCON 
      DEF EFCON 
      DEF FUN13 
      HED READ FUNCTION 
* 
*         READ FUNCTION 
* 
FUN06 EQU * 
      JSB CKVSU     CHECK IF VALID DEFINE PREVIOUSLY
      JSB CKINL     CHECK AND INITIALIZE PARA. AND TRB
READ1 EQU * 
      LDB RFLPO     READ-FILE POSITION
      JSB CALAV     CALCULATE ALL NECESSARY VALUES
      JSB CKEOF     CHECK IF END-OF-FILE
      JSB ER21      END-OF-FILE 
      JSB CKRNO     CK. RECORD NO. IN CORE
      JMP READ2     DESIRED R.N. OUT OF RANGE OF TRB
      JSB CALMV     CALC. NO. WDS. TO MOVE
      LDB ARG5      DESTINATION BUFFER
      JSB  MOVE 
      LDB RFLPO     READ FILE POSITION
      ADB D14 
      LDA DESRN     DESIRED R.N.
      INA 
      STA B,I       UPDATE N.R. TO BE PROCESSED 
      JMP EFCON     RETURN TO MAIN
READ2 EQU * 
      JSB PST1T     POST IF NECESSARY 
      JSB RDTS      READ DESIRED T/S
      JMP READ1 
      SPC 3 
* CALMV - CALC. MOVE ADDR.
* ENTER:
*         VALUES FROM CALAV 
* EXIT: 
*         A = POINTER TO CORRECT TRB
* 
CALMV NOP           CALC. MOVE ADDR 
      LDA RLGTH     RECORD LENGTH IN WORDS
      CMA,INA 
      STA MOVCT     PACK NO. OF WDS. TO MOVE
      LDA STRNO     STARTING RECD. NO.
      CMA,INA 
      ADA DESRN     DESIRED RECD. NO. 
      LDB RLGTH 
      JSB MPY       CALC. RECORD LENGTH IN WORDS
      OCT 0         OCT 103001 FOR DEBUGGING
      ADA STRPO     STARTING RECORD POSITION
      JMP CALMV,I   RETURN
      HED WRITE FUNCTION
* 
*         WRITE FUNCTION
* 
FUN08 EQU * 
      JSB CKVSU     CHECK IF VALID DEFINE PREVIOUSLY
      CLA 
      STA DESRN+1   INITIALIZE FLAG 
      JSB CKINL     CHECK AND INITIALIZE PARA. AND TRB
WRIT1 EQU * 
      LDB RFLPO     READ-FILE POSITION
      JSB CALAV     CALC. ALL NECESSARY VALUES
      JSB CKEOF     CHECK IF END-OF-FILE
      JMP EOFWR     END-OF-FILE WRITE 
WRIT3 EQU * 
      JSB CKRNO     CHECK RECORD NOS. IN CORE 
      JMP RNXTS     OUT-OF-RANGE, READ NEXT T/S 
      JSB CALMV     CALC. MOVE ADDR.
      LDB A         DESTINATION 
      LDA ARG5      SOURCE
      JSB MOVE      "WRITE" PROPER RECORD 
      LDB CTRBP     CURRENT TRB POINTER 
      INB 
      CLA,INA 
      STA B,I       SET "MUST BE WRITTEN" FLAG
      LDB RFLPO     READ FILE POSITION
      ADB D15 
      LDA DESRN     DESIRED RECD. NO. 
      CMA,INA 
      ADA B,I       HIGHEST RECD. NO. WRITTEN IN CORE 
      SSA           DESIRED .GT. HIGHEST? 
      JMP UDHRW     YES, UPDATE HRW IN CORE 
WRIT2 EQU * 
      ADB MD1 
      LDA DESRN     DESIRED R.N.
      INA 
      STA B,I       NEXT RECORD TO BE ACCESSED
      CMA,INA 
      ADA FINRN     FINAL RECD. NO. 
      SSA           NEXT .GT. FINAL(LAST RCD WRT) 
      JSB PST1T     YES, POST 1 TRB 
      JMP EFCON     RETURN TO MAIN
UDHRW EQU *         UPDATE HI RECD. WRITTEN IN CORE 
      LDA DESRN     DESIRED R.N.
      STA B,I       BUMP "HRW" INTO CORE
      JMP WRIT2 
      SPC 1 
EOFWR EQU *         END-OF-FILE WRITE ATTEMPT 
      LDB RFLPO     READ-FILE POINTER 
      ADB D4
      LDA DESRN     DESIRED R.N.
      CMA,INA 
      ADA B,I       FILE SIZE 
      SSA           .GT. ABSOLUTE EOF?
      JSB ER21      YES, END-OF-FILE
      ADB D11 
      LDA DESRN+1 
      SZA           INSERT ZEROS PASS?
      JMP INSZR     YES 
      LDA B,I       "HRW" IN CORE 
      INA 
      CPA DESRN     WRITE NEXT HIGHEST RECORD?
      JMP WRIT3     YES 
* ZEROS MUST BE INSERTED IN BETWEEN RECORDS 
      LDB DESRN     REAL DESIRED R.N. 
      STB DESRN+1   SAVE AS FLAG
      STA DESRN     "HRW"+1 IS TEMP. DESIRED
INSZR EQU * 
      JSB CKRNO     CHECK IF R.N. IN CORE 
      JMP RNXTS     NOT IN CORE, READ IT
      LDA DESRN     "DESIRED" 
      CMA 
      ADA DESRN+1   REAL
      SSA,RSS       "DESIRED" .GE. REAL?
      JMP INSZ1     NO
      LDA DESRN+1   REAL DESIRED R.N. 
      STA DESRN     RESTORE IT
      CLA 
      STA DESRN+1   RESET FLAG
      JMP WRIT1 
INSZ1 EQU * 
      JSB CALMV     CALC. MOVE ADDR.
      STA B 
      LDA RLGTH     RECORD LGTH. (IN WORDS) 
      CMA,INA 
      JSB STZ       FILL 1 RECORD W/ ZEROS
      LDB CTRBP     CURRENT TRB POINTER 
      INB 
      CCA 
      STA B,I       SET "MBW" FLAG
      LDB RFLPO     READ-FILE POSITION
      ADB D14 
      ISZ B,I       NEXT RECD BEING PROCESSED 
      INB 
      ISZ B,I       "HRW" IN CORE 
      ISZ DESRN     BUMP "DESIRED" R.N. 
      JMP WRIT1 
RNXTS EQU *         READ NEXT T/S 
      JSB PST1T     POST IF NECESSARY 
      JSB RDTS      READ DESIRED T/S
      JMP WRIT1 
      HED GENERAL READ/WRITE ROUTINES 
CKINL NOP           CHECK INITIALIZATION PARAMETERS 
      LDA ARG3      ADDR. OF F.N. 
      JSB NAM0?     CHECK IF ZERO 
      LDB ARG3      ADDR. OF F.N. 
      JSB CKOPN     FILE OPEN?
      JSB ER11      NO
      STB RFLPO     READ-FILE POSITION
      ADB D14 
      LDA ARG4,I    RECORD NO.
      SSA,RSS       BACKSPACE?
      JMP CKN2      NO
      ADA B,I       NEXT RECORD TO BE PROCESSED 
      SSA 
      JSB ER13
      SZA,RSS 
      JSB ER13
      JMP CKN1
CKN2  EQU * 
      SZA,RSS       SEQUENTIAL R/W? 
      LDA B,I       YES, GET NEXT RCD. TO BE PROCESSED
CKN1  EQU * 
      STA DESRN     PACK DESIRED R.N. 
      LDA RFLPO     FILE POSITION 
      ADA D5
      LDB A,I       RECORD LENGTH (IN WORDS)
      LDA ARG5      BUFFER AREA 
      JSB CKCLM     CHECK CORE LIMITS 
      JSB ER9       OUT-OF-LIMITS 
      LDB RFLPO     FILE POSITION 
      ADB D11 
      LDA B,I       TRB NO. 
      ADA MD1 
      LDB D3
      JSB MPY 
      ADA FTRBE     START OF TRB ENTRIES
      STA CTRBP     CURRENT TRB POSITION
      LDB CTRBP     CUR. TRB POINTER
      ADB D2
      STB CKIN1     SAVE POINTER TO FILE TEMPORARILY
      LDA B,I 
      CPA RFLPO     THIS TRB FOR THIS FILE? 
      JMP CKN3      YES 
      JSB PST1T     POST IF NECESSARY 
      LDA RFLPO 
      STA CKIN1,I   INITL. TRB FOR THIS FILE
CKN3  EQU * 
      LDB RFLPO     READ-FILE POSITION
      JMP CKINL,I   RETURN
CKIN1 OCT 0         TEMP STROAGE
      SPC 3 
* CKEOF - CHECK IF ATTEMPTED WRITE AFTER END-OF-FILE
* EXIT: 
*         P+1 = END-OF-FILE 
*         P+2 = VALID POSITION
* 
CKEOF NOP           CHECK FOR END-OF-FILE 
      LDB RFLPO     READ-FILE POSITION. 
      ADB D15 
      LDA B,I       HIGHEST R.N. WRITTEN INTO CORE
      SZA           1ST PASS? 
      JMP *+5       NO
      ADB MD7 
      LDA B,I       HIGHEST R.N. WRITTEN ONTO DISC
      SZA,RSS       1ST PASS? 
      JMP CKEOF,I   YES, EOF
      CMA 
      ADA DESRN     DESIRED R.N.
      SSA           IS DES. R.N. .LT. HRW?
      ISZ CKEOF     YES, P+2
      JMP CKEOF,I   NO, END-OF-FILE RETURN
      SPC 3 
* CKRNO - CHECK IF R.N. IN CORE 
* EXIT: 
*         P+1 = READ NEXT T/S 
*         P+2 = RECORD NO. IN CORE
* 
CKRNO NOP           CHECK IF R.N. IN CORE 
      LDB RFLPO     READ-FILE POSITION
      ADB D13 
      LDA B,I       T/S CUR. IN CORE
      SZA,RSS       1ST TIME THRU?
      JMP CKRNO,I   YES, READ NEW T/S 
      LDA DESRN     DESIRED R.N.
      CMA 
      ADA STRNO     "START" R.N.
      SSA,RSS       DES. .LT. START?
      JMP CKRNO,I   YES, READ NEXT T/S
      LDA DESRN     DESIRED R.N.
      CMA,INA 
      ADA FINRN     "FINAL" R.N.
      SSA           DES. .GT. FINAL?
      JMP CKRNO,I   YES, READ NEXT T/S
      ISZ CKRNO     P+2 
      JMP CKRNO,I   RETURN
      SPC 3 
RDTS  NOP           READ DESIRED T/S
      LDA DESRN     DESIRED R.N.
      ADA MD1 
      LDB RLGTH 
      JSB MPY 
      JSB DIV 
      DEF D128
      SOC           OVERFLOW? 
      JSB ER23      YES, ERROR SHOULD NOT OCCUR 
      STA B         SAVE NO. SECT TO REACH R.N. 
      LDA RFLPO     READ-FILE POSITION
      ADA D3
      LDA A,I       PICK UP STARTING T/S
      JSB T.STS     CONV. TO SECTORS
      ADA B         DESIRED NO. SECT TO REACH R.N.
      JSB STT.S     CONV. BACK TO T/S 
      LDB TRBSZ     NO. OF SECT/TRB 
      STB GNS       NO. SECT. FOR GENERAL R/W 
      LDB RFLPO     READ-FILE POSITION
      ADB D13 
      STA B,I       UPDATE NEW T/S IN CORE
      ADB MD1 
      LDB B,I       SUB. CH. NO.
      STB GSC       SUB. CH. FOR GENERA R/W 
      LDB CTRBP,I   PICK UP POINTER TO O.T. 
      JSB GRTXX     READ T/S W/ DESIRED R.N.
      LDB RFLPO     READ-FILE POSITION
*  REINITIALIZE PART OF TRIPLET BECAUSE OF POSSIBLE POSTING 
      LDA CTRBP     CUR. TRB POINTER
      ADA D2
      STB A,I       POINTER TO FILE IN O.T. 
      JMP RDTS,I    RETURN
      SPC 3 
PST1T NOP           POST 1 TRB IF NECESSARY 
      LDB CTRBP     CURRENT TRB POSITION
      JSB POSTW     POST WRITE IF NECESSARY 
      JMP PST1T,I   RETURN
DESRN OCT 0,0       DESIRED RECORD NO.
RFLPO OCT 0         READ-FILE POSITION (WRITE ALSO) 
      SKP 
* CALAV - CALC. ALL VALUES PERTINENT TO READ/WRITE ROUTINES 
* ENTER:
*         B = FILE POSITION IN OPEN TABLE 
* EXIT: 
*         RLGTH = RECORD LENGTH (IN WORDS)
*         STRNO = STARTING RECORD NO. FOR CURRENT T/S 
*         STRPO = STARTING RECORD NO. POSITION
*         FINRN = FINAL RECORD NO. FOR CURRENT T/S
* 
CALAV NOP           CALC. ALL VALUES FOR R/W ROUTINES 
      STB CALPO     FILE POSITION FOR THIS ROUTINE
      ADB D5
      LDB B,I       RECORD LENGTH (IN WORDS)
      STB RLGTH 
      LDB CALPO     FILE POSITION 
      ADB D13 
      LDA B,I       T/S CURRENTLY IN
      SZA,RSS       1ST PASS? 
      ADB MD10      YES,BIAS BACK TO START T/S LOC
      LDA B,I       T/S "CURRENTLY IN"
      JSB T.STS     CONV. TO SECT.
      STA B 
      LDA CALPO     FILE POSITION 
      ADA D3
      LDA A,I       STARTING T/S FOR THIS FILE
      JSB T.STS     CONV. TO SECTORS
      CMA,INA 
      ADA B         CALC. DELTA SECTORS 
      STA DELTS     SAVE DELTA SECTORS
      ADA TRBSZ     TRB SIZE (IN SECT.) 
      LDB D128
      JSB MPY 
      JSB DIV 
      DEF RLGTH 
      SZA,RSS 
      JSB ER26      RECORD LENGTH .GT. 1 TRB
      SOC           OVERFLOW? 
      LDA MAXRC     MAX. RECORD NO. 
      STA FINRN     SAVE FINAL RECORD NO. 
      LDA DELTS     DELTA SECTORS 
      LDB D128
      JSB MPY 
      JSB DIV 
      DEF RLGTH 
      SOC           OVERFLOW? 
      JSB ER23      YES, ERROR SHOULD NOT OCCUR 
      INA 
      SZB 
      INA 
      STA STRNO     STARTING RECORD NO. 
      CMB,INB 
      SZB 
      ADB RLGTH     RECD. LENGTH (IN WORDS) 
      ADB CTRBP,I   CUR. TRB POSITION 
      STB STRPO     STARTING RECORD POSITION
      JMP CALAV,I   RETURN
CALPO OCT 0         FILE POSITION 
RLGTH OCT 0         RECORD LENGTH (IN WORDS)
DELTS OCT 0         DELTA SECTORS 
FINRN OCT 0         FINAL RECORD NO.
STRNO OCT 0         STARTING RECORD NO. 
STRPO OCT 0         STARTING RECORD POSITION
CTRBP OCT 0         CURRENT TRB POSITION
      HED RESET FUNCTION
* 
*         RESET FUNCTION
* 
FUN09 EQU * 
      JSB CKVSU     CHECK IF VALID DEFINE PREVIOUSLY
      LDA ARG3      ADDR OF FILE NAME 
      JSB NAM0?     CHECK NAME
      LDB ARG3      ADDR. OF FILE NAME
      JSB CKOPN     OPEN? 
      JSB ER11      NO
      STB REST1     SAVE OPEN TABLE ENTRY ADDR. 
      ADB D10       INCREMENT TO PACK NO. 
      LDA ARG4,I    GET REQUESTED PACK NO.
      SSA,RSS       PACK # = -1;SCAN ALL PACKS  7905                            
      CPA B,I       PACK NO.'S EQUAL ?
      RSS           YES 
      JSB ER15      NO
      JSB POST      POST TRB
      LDB REST1     GET OPEN TABLE ENTRY ADDR 
      ADB D10       INCREMENT TO PACK NO. 
      LDA B,I       GET PACK NO.
      SZA,RSS       PN000 ? 
      JMP CRINC     YES 
      ADB D2        INCREMENT TO SUBCHANNEL FIELD 
      LDA B,I       GET THE SUBCHANNEL
      STA PAKSC     INITIALIZE SUBCHANNEL 
      LDB REST1     GET OPEN TABLE ENTRY ADDR 
      JSB GETDE     READ DIRECTORY ENTRY
      LDB CNAME     GET ADDR OF ENTRY 
      ADB D8        BIAS TO "HRA" ON DISC 
      LDA ARG5,I    RECORD NO.
      STA B,I       CHANGE "HRA" ON DISC
      JSB CNGRN     CHANGE RECORD NO. 
      CLA,INA       WRITE INDICATOR 
      LDB PAKSC     SUBCHANNEL
      JSB PRWIO     WRITE BACK DIRECTORY ENTRY
      JMP EFCON     RETURN TO MAIN
CRINC EQU *         CHANGE RECORD IN CORE 
      JSB CNGRN     CHANGE RECORD NO. 
      JMP EFCON     RETURN TO MAIN
      SPC 1 
CNGRN NOP           CHANGE RECORD NO. 
      LDA ARG5,I    RESET RECORD NO.
      SSA           VALID?
      JSB ER10      NO
      CMA,INA 
      LDB REST1     GET ADDR OF OPEN TABLE ENTRY
      ADB D15       INCREMENT TO HRA IN CORE FIELD
      ADA B,I       "HRA" 
      SSA           .LE.? 
      JSB ER10      NO
      LDA ARG5,I    RESET RECORD NO.
      STA B,I       RESET RECORD
      ADB MD7       BIAS TO "HRA" ON DISC 
      STA B,I       CHANGE "HRA" ON DISC
      ADB D6        INCREMENT TO NXT RECD FIELD 
      CMA,INA 
      ADA B,I 
      SSA           RESET NO. < NXT RECD TO PROCESS ? 
      JMP CNGRN,I   NO
      SZA,RSS 
      JMP CNGRN,I   NO
      LDA ARG5,I    GET RESET NO. 
      INA           INCREMENT FOR NEXT RECD TO PROCESS
      STA B,I       STORE NEW NEXT RECD TO PROCESS VALUE
      JMP CNGRN,I 
REST1 OCT 0,0,0     SECT. NO. 
      HED STATUS FUNCTION 
* 
*         STATUS FUNCTION 
* 
FUN10 EQU * 
      JSB CKVSU     CHECK IF VALID DEFINE PREVIOUSLY
      LDA ARG3,I    STATUS FUNCTION NO. 
      SSA 
      JSB ER23
      CMA,INA 
      ADA NOSTF     NO. OF STATUS FUNCTIONS 
      SSA           .GT. MAX NO.? 
      JSB ER23
      LDA ARG3,I    FUNCTION NO.
      SZA,RSS 
      JSB ER23
      ADA ASTAT     ADDR.OF STATUS FUNCTION TABLE 
      JMP A,I 
ASTAT DEF *,I 
      DEF STAT1 
      DEF STAT2 
      DEF STAT3 
      DEF STAT4 
      DEF STAT5 
      DEF STAT6 
      DEF STAT7 
NOSTF ABS *-ASTAT-1 NO. OF STATUS FUNCTIONS 
      SPC 3 
STAT1 EQU *         FILE DIRECTORY INFORMATION
      JSB POST
      JSB STAPN     SEARCH FOR PACK NO. 
      JMP S1PAK     SYSTEM PACK 
      JSB SRCD2     FILE FOUND? 
      JSB TNXTP     NO
STA1A EQU * 
      STB SFILP     STATUS-FILE POSITION
      LDA ARG7      ADDR. OF STATB
      LDB MXWPE     MAX. WDS/ENTRY
      INB 
      JSB CKCLM     CHECK CORE LIMITS 
      JSB ER9       OUT-OF- LIMITS
      LDA SFILP     STATUS-FILE POSITION
      LDB MXWPE     MAX. WDS/ENTRY
      CMB,INB 
      STB MOVCT     NO. OF WORDS TO MOVE
      LDB ARG7      ADDR. OF STATB
      INB 
      JSB MOVE      MOVE DIR. INFO. TO STATB+1
      ADB MD3 
      CLA 
      STA B,I       CLEAR SECURITY CODE 
      LDA ARG5,I    PAKNO 
      SSA,RSS       ALL PACKS?
      JMP EFCON     NO, RETURN TO MAIN
      LDA DPNO      GET PACK NO.
      STA ARG7,I    PACK STATB
      JMP EFCON     RETURN TO MAIN
S1PAK EQU * 
      JSB TFOPN     CHECK IF TEMP. FILE OPEN
      JMP STA1A 
SFILP OCT 0         STATUS-FILE POSITION
      SPC 1 
TFOPN NOP           CHECK IF TEMP. FILE OPEN
      LDB ARG4      ADDR OF FILE NAME 
      JSB CKOPN     CHECK IF FILE OPEN
      JSB ER3       NOT OPEN
      ADB D10 
      LDA B,I       PACK NO.
      SZA           SYSTEM PACK?
      JSB ER3       NO
      ADB MD10
      JMP TFOPN,I   RETURN
      SPC 3 
STAT2 EQU *         OPENED FILE?
      LDB D2        NO. WDS TO CHECK
      JSB CKSLM     CHECK STATUS LIMITS 
      LDB ARG4      ADDR. OF FILE NAME
      JSB CKOPN     CHECK IF OPEN 
      CLA,INA,RSS   NOT OPEN
      CLA 
      STB SFILP     POINTER TO O.T. 
      LDB ARG7      ADDR. OF STATB
      INB 
      STA B,I       PACK OPEN STATUS
      SZA           STORE PACK NO. IF OPEN
      JMP EFCON     RETURN TO MAIN
      LDB SFILP     POINTER TO O.T. 
      ADB D10 
      LDA B,I       PACK NO.
      STA ARG7,I    STORE PACK NO.
      JMP EFCON RETURN TO MAIN
      SPC 3 
STAT3 EQU *         SECURITY CODE CHECK 
      LDB D2        NO. WDS. TO CHECK 
      JSB CKSLM     CHECK STATUS LIMITS 
      JSB STAPN     STATUS PACK NO. SEARCH
      JMP STA3A     SYSTEM PACK 
      JSB SRCD2     FILE FOUND? 
      JSB TNXTP     GET NEXT PACK NO. 
      LDA DPNO      GET THE DECIMAL VALUE OF PACK NO. 
      STA ARG7,I    PACK STATB
      JMP STA3B 
STA3A EQU * 
      STA ARG7,I    STORE PACK NO.
      JSB TFOPN     CHECK IF TEMP. FILE OPEN
STA3B EQU * 
      LDA ARG7      ADDR. OF STATB
      INA 
      LDA A,I       SECURITY CODE TO BE CHECKED 
      ADB D6        BIAS TO EXISTING S.C. 
      CPA B,I       DOES SECURITY CODE CHECK? 
      CLA,RSS       YES 
      CLA,INA 
      LDB ARG7      ADDR. OF STATB
      ADB D2
      STA B,I       PACK SECURITY CODE STATUS 
      JMP EFCON     RETURN TO MAIN
      SPC 3 
STAT4 EQU *         NO. SECT. LEFT IN FILE
      LDB D2        NO. WDS. TO CHECK 
      JSB CKSLM     CHECK STATUS LIMITS 
      LDB ARG4      ADDR. OF FILE NAME
      JSB CKOPN     CHECK IF OPEN 
      JMP CKDIS     CHECK IF FILE ON DISC 
      ADB D10 
      LDA B,I       PACK NO.
      SZA           TEMP. FILE CURRENTLY OPEN?
      JMP CKDIS-1   NO, POST BEFORF CHECKING
      CPA ARG5,I    TEMP. FILE REQUESTED? 
      RSS           YES 
      JMP CKDIS     CHECK DISC
      STA ARG7,I    STORE PACK NO.
      ADB D5
      LDA B,I       HIGHEST RECORD ACCESSED IN CORE 
      ADB MD11
STA4A EQU * 
      CMA,INA 
      ADA B,I       FILE LENGTH (IN RECORDS)
      INB 
      LDB B,I       RECORD LENGTH (IN WORDS)
      JSB MPY 
      JSB DIV 
      DEF D128
      SOC           OVERFLOW? 
      JSB ER23      YES, ERROR SHOULD NOT OCCUR 
      LDB ARG7      ADDR. OF STATB
      INB 
      STA B,I       PACK NO. SECT. LEFT INTO STATB+1
      JMP EFCON     RETURN TO MAIN
      JSB POST
CKDIS EQU *         CHECK IF FILE ON DISC 
                                                                                                                                                                                                                                            