      JSB ER6       NO
SRCFL EQU * 
      STB SVAEN     SAVE ENTRY ADDR 
      JSB SVPNS     SAVE PACK NO. SEARCH ENVIRONMENT
      LDB SVAEN     RESTORE ENTRY ADDR
      ADB D3        INCREMENT TO T/S OF DIRECTORY 
      LDA B,I       GET T/S START OF EFMP DIRECTORY 
      LDB PNEAD     GET ADDR OF PACK NO. ENTRY
      STA B,I       STORE STARTING T/S
      JMP CSET1     NO
SPNE1 EQU * 
      CLA,INA       NO NEW ENTRY SWITCH 
      STA PNESW     STORE SWITCH
CSET1 EQU * 
      JSB SETD1     SET UP FOR EFMP SEARCH
      JSB SRCDR     SEARCH FOR FILE 
      RSS           FILE NOT FOUND
      JMP BLFTE     FILE FOUND
      LDA ARG4,I    GET PACK NO.
      SSA,RSS       TRY ALL PACKS ? 
      JSB ER3       NO
      JSB REPNS     RESTORE PACK NO. SEARCH ENVIRONMENT 
      JSB GTNPN     YES, SEARCH FOR NEXT PACK NO. 
      JSB ER6       NO PACK NO. AVAILABLE 
      JMP SRCFL     PACK NO. AVAILABLE
BLFTE EQU * 
      STB OCFPO     OPEN/CLOSE FILE POSITION
      ADB D6
      LDA B,I       SECURITY CODE 
      CPA ARG6,I    VALID?
      RSS           YES 
      JSB ER7 
      CLA 
      STA B,I       CLEAR FOR IN CORE 
      LDB ARG4,I    GET PACK NO.
      SSB,RSS       TRY ALL PACKS ? 
      JMP MOVEN     NO
      CLA,INA       SEARCH FOR ACTIVE ENTRY SWITCH
      LDB DPNO      GET PACK NO.
      JSB CKPNT     PACK NO. IN TABLE 
      JMP SFAVE     NO
      CLA,INA       NO NEW ENTRY SWITCH 
      STA PNESW     STORE SWITCH
      JMP MOVEN 
SFAVE EQU * 
      CLA           SEARCH FOR ENTRY SWITCH 
      JSB CKPNT     IS AN ENTRY AVAILABLE ? 
      JSB ER16      NO
      LDA MD4       MOVE COUNT
      STA MOVCT     STORE MOVE COUNT
      LDA ADPNE     SOURCE ADDR 
      LDB PNEAD     DESTINATION ADDR
      JSB MOVE      MOVE PACK NO. ENTRY FROM DUMMY TO REAL
      CLA           NEW ENTRY USED SWITCH 
      STA PNESW     STORE SWITCH
MOVEN EQU * 
      LDA MXWPE     MAX. WDS/ENTRY
      CMA,INA 
      STA MOVCT     NO. WDS TO MOVE 
      LDA OCFPO     O/C FILE POSITION(SOURCE) 
      LDB NXOTL     NEXT O.T. LOC.(DESTINATION) 
      JSB MOVE      INSERT NEXT ENTRY 
      LDB NXOTL     GET NEW OPEN TABLE ADDR 
      ADB D2        INCREMENT TO PACK NO. OFFSET
      LDA B,I       ZERO PACK NO OFFSET 
      AND H8BT
      STA B,I       STORE IT
      LDA NXOTL     GET ADDR OF OPEN TABLE ENTRY
      JSB STPNO     STORE PACK NO. OFFSET IN ENTRY
      LDA NXOTL     GET ADDR OF OPEN TABLE ENTRY
      JSB SFSTS     STORE STARTING T/S IN ENTRY 
      LDB NXOTL     GET ADDR OF OPEN TABLE ENTRY
      ADB D9        INCREMENT TO DIREC ENTRY T/S FIELD
      LDA TRKIO     GET TRACK 
      ALF,ALF       SHIFT TRACK TO LEFT 
      XOR SECIO     GET DIRECTORY ENTRY SECTOR NO.
      STA B,I       STORE DIRECTORY ENTRY T/S IN OPEN TABLE 
      INB           INCREMENT TO PACK NO. FIELD 
      LDA DPNO      GET PACK NO.
      STA B,I       PACK NO.
      INB 
      JSB GTRBN     GET TRB NO. 
      STA B,I       TRB NO. 
      LDA PAKSC     PACK SUB CH.
      INB 
      STA B,I 
      INB 
      CLA 
      STA B,I       T/S CUR. IN CORE
      ADB MD5 
      LDA B,I       "HRA" ON DISC 
      ADB D7
      STA B,I       "HRA" IN CORE 
      LDB NXOTL     NEXT O.T.LOC. 
      JSB CKMRN     CHECK MAX. RECD. NO.
      STA B,I       NEXT RECORD BEING PROCESSED 
      ADB D2
      STB NXOTL     UPDATE NEXT O.T. LOC. 
      LDB PNESW     GET PACK NO. ENTRY SWITCH 
      SZB           NEW ENTRY USED ?
      JMP EFCON     NO
      LDB NXPTL     GET ADDR OF NEXT PACK NO. ENTRY 
      ADB D4        UPDATE ADDR FOR NEW ENTRY 
      STB NXPTL     STORE NEW ADDR
      JMP EFCON     RETURN TO MAIN
      SPC 1 
OTMFL EQU *         "OPEN" TEMP FILE
      LDB ARG3      ADDR. OF FILE NAME
      JSB CKOPN     CHECK IF FILE ALREADY OPEN
      JSB ER8       NOT IN DIR. FROM CREATE 
      STB OCFPO     SAVE FILE POSITION IN O.T.
      ADB D10       INCREMENT TO PACK NO. FIELD 
      CLA           PN000 
      CPA B,I       PACK NO. = 0 ?
      RSS           YES 
      JSB ER8       NO
      LDB OCFPO     GET ADDR OF START OF ENTRY
      JSB GTRBN     GET TRB NO. 
      ADB D11 
      STA B,I       TRB NO. 
      LDB OCFPO     POSITION IN O.T.
      JSB CKMRN     CHECK MAX. RECD. NO.
      STA B,I       STARTING R.N. 
      JMP EFCON     RETURN TO MAIN
      SPC 1 
CKMRN NOP           CHECK MAX. RECD. NO.
      LDA ARG5,I    RCDNO 
      SSA 
      JSB ER10
      ADB D4
      CMA,INA 
      ADA B,I       FILE LENGTH(IN RECORDS) 
      SSA           .GT. FILE SIZE? 
      JSB ER10      YES 
      LDA ARG5,I    RCDNO 
      ADB D10       POINT TO NEXT R.N. BEING ACC. 
      SZA           START AT EOF? 
      JMP CKMRN,I   NO
      INB 
      LDA B,I       "HRA" IN CORE 
      ADB MD1 
      INA 
      JMP CKMRN,I   RETURN
      HED CLOSE FUNCTION
* 
*         CLOSE FUNCTION
* 
FUN05 EQU * 
      JSB CKVSU     CHECK IF VALID DEFINE PREVIOUSLY
      LDA ARG3,I    PICK UP 1ST WORD
      SZA           CLOSE ALL FILES?
      JMP CLSIT     NO, CLOSE ONLY ONE
* CLOSE ALL FILES 
NXCLS EQU *         NEXT CLOSE
      LDA OPNT1     START OF O.T. 
      CMA 
      ADA NXOTL     NEXT O.T. LOC 
      SSA           .GE. (FINISHED)?
      JMP EFCON     YES, RETURN TO MAIN 
      LDB OPNT1     START OF O.T. 
      STB ARG3      STORE ADDR OF FILE NAME 
      JSB CLOS1     CLOSE 1ST ONE AND REPACK
      JMP NXCLS     NEXT CLOSE
      SPC 1 
CLSIT EQU *         CLOSE IT
      LDB ARG3      ADDR. OF FILE NAME
      JSB CKOPN     CHECK IF OPEN 
      JSB ER11      FILE NOT OPEN 
      JSB CLOS1     CLOSE THIS FILE ONLY
      JMP EFCON     RETURN TO MAIN
      SKP 
* CLOS1 - CLOSE 1 FILE
* ENTER:
*         B = ADDR. OF FILE NAME
* EXIT: 
*         FILE CLOSED (REMOVED FROM O.T.) AND 
*         WORK AREA REPACKED IF NECESSARY (ALL
*         TRB'S WILL BE POSTED IF W.A. IS REPACKED) 
* 
CLOS1 NOP           CLOSE 1 FILE
      STB OCFPO+1   O/C FILE POSITION 
      ADB D12       INCREMENT TO SUBCHANNEL FIELD 
      LDA B,I       GET SUBCHANNEL
      STA PAKSC     INIT PACK SUBCHANNEL
      ADB MD2       BACK UP TO PACK NO. FIELD 
      LDA B,I       GET PACK NO.
      SZA,RSS       PN000 ? 
      JMP DISRP     YES 
      LDB OCFPO+1   GET OPEN TABLE ENTRY
      JSB GETDE     GET DIRECTORY ENTRY 
      LDB CNAME     GET ADDR OF DIRECTORY ENTRY 
      STB OCFPO     STORE ADDR
      LDB OCFPO+1   ADDR OF OPEN TABLE ENTRY
      ADB D11 
      LDA B,I       TRB NO. 
      LDB D3
      ADA MD1 
      JSB MPY       CALC. BIAS
      ADA FTRBE     START OF TRB'S
      LDB A 
      ADA D2
      LDA A,I       TRB POINTER TO O.T. 
      CPA OCFPO+1   THIS TRB FOR THIS FILE? 
      JSB POSTW     POST IF NECESSARY 
      LDB OCFPO+1   POINTER TO FILE IN O.T. 
      ADB D8
      LDA B,I       H.R.N. WRITTEN ON DISC
      ADB D7
      CMA,INA 
      ADA B,I       H.R.N. ACCESSED IN CORE 
      ELA           SAVE SIGN OF "A"
      LDA B,I       H.R.N. ACCESSED IN CORE 
      LDB OCFPO     POINTER TO FILE IN $BUF 
      ADB D8
      SEZ           UPDATE OLD HRN?(NEW .GT. OLD?)
      STA B,I       YES 
      LDA ARG4,I    USER STATUS CODE
      ADB MD1 
      STA B,I       UPDATE USER STATUS CODE 
      CLA,INA       WRITE 
      LDB PAKSC     GET SUBCHANNEL
      JSB PRWIO     WRITE UPDATED DIRECTORY ENTRY 
      LDB OCFPO+1   POINTER TO FILE IN O.T. 
      ADB D2        INCREMENT TO PACK NO. OFFSET FIELD
      LDA B,I       GET PACK NO. OFFSET 
      STA SVPNO     SAVE THE PACK NO. OFFSET
      ADB MD2       BACK UP TO START OF ENTRY 
      JSB MOVOT     MOVE OPEN TABLE 
      LDA SVPNO     GET PACK NO. OFFSET 
      JSB MVPNT     UPDATE PACK NO. TABLE 
      JMP CLOS1,I   RETURN
DISRP EQU * 
      LDB OCFPO+1   POINTER TO FILE IN O.T. 
      STB FILPO     INITIALIZE POINTER
      JSB POST
      JSB RPWKA     REPACK WORK AREA
      JMP CLOS1,I   RETURN
      SKP 
* MOVOT - MOVE OPEN TABLE AND UPDATE TRB POINTERS 
* ENTER:
*         B = STARTING ADDR. OF ENTRY TO BE 
*             DELETED IN O.T. 
* EXIT: 
*         OPEN TABLE AND TRB TRIPLET'S REPACKED 
* 
MOVOT NOP           MOVE O.T. AND MODIFY TRB TRIPLET
      STB MVOT1     SAVE POINTER TO O.T.
      ADB WPOTE     WORDS/O.T. ENTRY
      CMB,INB 
      ADB NXOTL     NEXT O.T. LOCATION
      LDA MVOT1 
      SZB,RSS       ANY ENTRIES TO MOVE?
      JMP NOMOV     NO
      CMB,INB 
      STB MOVCT     NO. OF WDS TO MOVE
      ADA WPOTE     SOURCE ADDR.
      LDB MVOT1     DESTINATION ADDR. 
      JSB MOVE
      STB NXOTL     UPDATE NEXT O.T. LOC. 
      RSS 
NOMOV EQU *         NO MOVE 
      STA NXOTL     UPDATE NEXT O.T. LOC. 
      LDA NOTRB     NO. TRB 
      CMA,INA 
      STA MVOTX     INITIALIZE INDEX
      LDB FTRBE 
      ADB D2
MOVNA EQU *         MOVE NEXT ADDR. 
      LDA B,I       PICK UP POINTER TO O.T. ENTRY 
      CPA MVOT1 
      JMP CLRIT     CLEAR IT
      CMA,INA 
      ADA MVOT1 
      SSA,RSS       .GE. TO ENTRY MOVED?
      JMP MVNTR     NO
      LDA B,I       POINTER TO OLD ENTRY IN O.T.
      ADA MWPOT     BIAS BACK 1 ENTRY 
      STA B,I       RESTORE IT
MVNTR EQU *         MOVE TO NEXT TRB
      ADB D3        BIAS TO NEXT TRB TRIPLET
      ISZ MVOTX     FINISHED? 
      JMP MOVNA     NO, MOVE NEXT ADDR. 
      JMP MOVOT,I   RETURN
CLRIT EQU *         CLEAR IT
      CLA 
      STA B,I       CLEAR THIS POINTER
      JMP MVNTR     MOVE TO NEXT TRB
      HED OPEN/CLOSE ROUTINES 
* GTRBN - GET TRB NUMBER AND CHECK IT 
* ENTER:
*         ARG7 = ADDR. OF DESIRED TRB NO. 
* EXIT: 
*         A = TRB NO. 
*         B IS SAVED
* 
GTRBN NOP           GET TRB NO. 
      LDA ARG7,I    TRB NO
      SSA           INVALID?
      JMP GTRB1     YES 
      CMA,INA 
      ADA NOTRB     MAX. NO. TRB'S
      SSA           .GT.? 
      JMP *+3       YES 
      LDA ARG7,I
      JMP *+2 
GTRB1 EQU * 
      CLA 
      SZA,RSS       INVALID 0?
      INA           YES 
      JMP GTRBN,I   RETURN
OCFPO OCT 0,0       OPEN/CLOSE FILE POSITION
MVOT1 OCT 0         TEMP LOC. FOR MOVE O.T. 
MVOTX OCT 0         INDEX FOR MOVE O.T. 
      SPC 3 
* RPDIS - REPACK 1 DISC ENTRY 
* ENTER:
*         A = STARTING T/S OF NEXT DATA AREA
*         B = FILE POSITION 
*         DISSC = DESIRED SUBCHANNEL
* EXIT: 
*         A = (-) NO. SECT. MOVED 
*         P+1 = UPDATED LAST FILE ONLY
*         P+2 = UPDATED OTHER THAN LAST FILE
* 
RPDIS NOP           REPACK 1 DISC ENTRY 
      JSB T.STS     CONV. TO SECT.
      STA RPSTS     LAS DATA FILE SECTOR+1
      STB RPLOC     FILE LOC. 
      ADB D3
      LDA B,I       T/S IN WORK AREA
      JSB T.STS     CONVERT TO SECTORS
      STA CFILS     CURRENT FILE STARTING SECTOR
      INB 
      LDA B,I       FILE LENGTH (IN RECORDS)
      INB 
      LDB B,I       RECORD LENGTH (IN WORDS)
      JSB MPY       CALC. FILE LENGTH IN WORDS
      JSB DIV       CALC. FILE LENGTH IN SECTORS
      DEF D128
      SOC           OVERFLOW ?
      JSB ER23      YES, ERROR SHOULD NOT OCCUR 
      SZB           OVERFLOW TO ANOTHER SECTOR ?
      INA           YES 
      STA FILSI     FILE SIZE(IN SECT.) I. E. DELTA 
      CMA,INA 
      STA FILSI+1   SAVE (-) VALUE
      CMA,INA 
      ADA CFILS     CURRENT FILE STARTING SECTOR
      STA NFILS      STARTING SECT. FOR NEXT FILE 
      CMA 
      ADA RPSTS     LAST FILE START 
      SSA           LAST FILE ? 
      JMP RPD1      YES 
      INA 
      STA NSLTM     NO. SECT LEFT TO MOVE 
      LDA NOTRB     NO. OF TRB'S
      LDB TRBSZ 
      JSB MPY       CALC. NO. SECT. IN TOTAL TRB
      STA BUFSZ     SAVE TOTAL TRB SIZE (IN SECTORS)
RPAKM EQU * 
      CMA,INA 
      ADA NSLTM     NO. SECT. LEFT TO MOVE
      LDB NSLTM 
      STA NSLTM 
      SSA,RSS       MORE TO BE MOVED THAN BUFF. SIZE ?
      LDB BUFSZ     YES 
     SZB,RSS        FINISHED ?
      JMP RPD1-1    YES 
      STB GNS       NO. SECT. FOR GENERAL R/W 
      LDA DISSC     DESIRED SUBCHANNEL
      STA GSC       SUBCHANNEL FOR GENERAL R/W
      LDA NFILS     NEXT FILE SECTOR
      JSB STT.S     CONV. TO T/S
      LDB TRBUF     BUFFER ADDR 
      JSB GRTXX     READ
      LDA CFILS     CURRENT FILE SECTOR 
      JSB STT.S     CONV. TO T/S
      LDB TRBUF 
      JSB GWTXX     WRITE 
      LDA CFILS     CURRENT FILE SECTOR (ABSOLUTE)
      ADA GNS       NO. SECT. MOVED 
      STA CFILS 
      LDA NFILS     NEXT FILE SECTOR (ABSOLUTE) 
      ADA GNS       NO. SECT. MOVED 
      STA NFILS 
      LDA BUFSZ     TOTAL SIZE OF TRB (IN SECTORS)
      LDB NSLTM     NO. SECT. LEFT TO MOVE
      SSB,RSS       FINISHED ?
      JMP RPAKM     NO, REPACK MORE 
      ISZ RPDIS     P+2 
RPD1  EQU * 
      LDA FILSI+1   (-) NO. OF SECT. MOVED
      JMP RPDIS,I   RETURN
RPSTS OCT 0         REPACK STARTING T/S 
RPLOC OCT 0         REPACK STARTING LOC.
DISSC OCT 0 
BUFSZ OCT 0         TOTAL SIZE OF TRB (IN SECTORS)
CFILS OCT 0         CURRENT FILE STARTING SECTOR
FILSI OCT 0,0       FILE SIZE 
NFILS OCT 0         NEXT FILE SIZE
NSLTM OCT 0         NO. SECTORS LEFT TO MOVE
      HED INITIALIZE FUNCTION 
FUN07 EQU * 
      JSB CKVSU     CHECK IF VALID DEFINE PREVIOUSLY
      LDA ARG3,I    GET PACK NUMBER 
      JSB CKPN      CHECK PACK NUMBER FOR EQUAL OR LESS THAN 999
      SSA           IS PACK NUMBER POSITIVE ? 
      JSB ER15      NO
      SZA,RSS       SYSTEM PACK DESIRED ? 
      JSB ER15      YES 
      JSB GETPN     SEARCH FOR THE DESIRED PACK NUMBER
      JSB ER6       PACK NUMBER NOT AVAILABLE 
      STB DIRPT     SAVE DIRECTORY ADDRESS
      ADB D3        INCREMENT TO STARTING T/S FIELD 
      LDA B,I       GET STARTING T/S
      STA STRTS     SAVE T/S
      ADB D1        INCREMENT TO FILE SIZE
      LDA B,I       GET THE FILE SIZE 
      STA FILSZ     SAVE FILE SIZE
      LDA ARG4,I    GET NUMBER OF DIRECTORY ENTRIES REQUESTED 
      SSA           POSITIVE ?
      JSB ER29      NO
      ADA D1        ADD ONE FOR EFMP'S OWN DIRECTORY ENTRY
      LDB MXWPE 
      JSB MPY       CALC. TOTAL WDS. NEEDED FOR DIRECTORY 
      JSB DIV       CALC. TOTAL SECT. NEEDED FOR DIRECTORY
      DEF D126      AMOUNT OF SECT USED PER TRAK7905                            
      SOC           OVERFLOW ?
      JSB ER29      DIRECTORY SIZE IS TOO LARGE 
      SZB           OVERFLOW TO ANOTHER SECTOR ?
      INA           YES 
      STA DIRSZ     SAVE DIRECTORY SIZE 
      CMA,INA       TWO'S COMPLEMENT
      ADA FILSZ     CALCULATE SPACE REMAINING BEYOND DIRECTORY
      SSA           SPACE FOR DIRECTORY IN EFMP FILE ?
      JSB ER29      NO
      LDB DIBUF     GET EFMP DIRECTORY BUFFER ADDRESS 
      ADB D3        INCREMENT TO DIRECTORY SIZE FIELD 
      LDA DIRSZ     GET DIRECTORY SIZE
      STA B,I       INITIALIZE DIRECTORY SIZE 
      INB           INCREMENT TO FILE SIZE FIELD
      LDA FILSZ     GET FILE SIZE 
      STA B,I       INITIALIZE FILE SIZE
      ADB D4        INCREMENT TO LAST ALLOCATED SECTOR FIELD
      LDA DIRSZ     CALCULATE LAST ALLOCATED SECTOR 
      STA B,I       INITIALIZE LAST ALLOCATED SECTOR
      LDA A$BUF     GET ADDRESS OF $BUF 
      STA A$BSV     SAVE ADDR OF $BUF 
      LDA DIBUF     GET ADDRESS OF WRITE BUFFER 
      STA A$BUF     STORE IT FOR WRITE ROUTINE
      LDA TRKIO     GET TRACK NO. 
      STA SVTRK     SAVE TRACK NO.
      LDA SECIO     GET SECTOR NO.
      STA SVSEC     SAVE SECTOR NO. 
      LDA STRTS     GET T/S WRITE ADDRESS 
      JSB PRETS     PREPARE IT FOR I/O
      LDA D1        WRITE INDICATOR 
      LDB PAKSC     GET CURRENT SUBCHANNEL
      JSB PRWIO     WRITE FIRST SECTOR OF EFMP FILE 
      LDA A$BSV     GET ADDR OF $BUF
      STA A$BUF     RESTORE THE ADDRESS OF $BUF 
      LDB DIRPT     GET DIRECTORY ADDRESS 
      ADB D2        INCREMENT TO TYPE FIELD 
      ISZ B,I       CHANGE FROM BINARY TO ASCII 
      LDA SVTRK     GET TRACK NO. 
      STA TRKIO     RESTORE TRACK NO. 
      LDA SVSEC     GET SECTOR NO.
      STA SECIO     RESTORE SECTOR NO.
      LDA D1        WRITE INDICATOR 
      LDB PAKSC     GET CURRENT SUBCHANNEL
      JSB PRWIO     WRITE BACK DOSM ENTRY FOR THE PACK NUMBER 
      JMP EFCON     RETURN TO MAIN
FNAM1 BSS 1 
FNAM2 BSS 1 
FNAM3 BSS 1 
FDRSZ BSS 1 
FLSIZ BSS 1 
RESV1 BSS 1 
RESV2 BSS 1 
RESV3 BSS 1 
LSTSA BSS 1 
EODM  BSS 1 
DIBUF DEF FNAM1 
A$BSV BSS 1         SAVE FOR $BUF ADDR
DIRSZ BSS 1         DIRECTORY SIZE
DIRPT BSS 1         DIRECTORY ENTRY POINTER 
STRTS BSS 1         EFMP STARTING T/S 
FILSZ BSS 1         EFMP SIZE 
SVTRK BSS 1         TRACK SAVE AREA 
SVSEC BSS 1         SECTOR SAVE AREA
      HED MISCEL. 
MOVE  NOP 
      JSB MASUB 
      DEC 1 
POST  NOP 
      JSB MASUB 
      DEC 2 
POSTW NOP 
      JSB MASUB 
      DEC 3 
CKVSU NOP 
      JSB MASUB 
      DEC 4 
CRPN0 NOP 
      JSB MASUB 
      DEC 6 
CKPN  NOP 
      JSB MASUB 
      DEC 7 
SVPNS NOP 
      JSB MASUB 
      DEC 8 
CKNAP NOP 
      JSB MASUB 
      DEC 9 
SETD1 NOP 
      JSB MASUB 
      DEC 10
SETD2 NOP 
      JSB MASUB 
      DEC 11
GETDE NOP 
      JSB MASUB 
      DEC 12
REPNS NOP 
      JSB MASUB 
      DEC 13
MVPNT NOP 
      JSB MASUB 
      DEC 16
GETPN NOP 
      JSB MASUB 
      DEC 17
CKOPN NOP 
      JSB MASUB 
      DEC 18
SRCDR NOP 
      JSB MASUB 
      DEC 19
GTNPN NOP 
      JSB MASUB 
      DEC 20
CKDSP NOP 
      JSB MASUB 
      DEC 21
CKCLM NOP 
      JSB MASUB 
      DEC 22
CKPNT NOP 
      JSB MASUB 
      DEC 24
PKDIR NOP 
      JSB MASUB 
      DEC 25
T.STS NOP 
      JSB MASUB 
      DEC 26
STT.S NOP 
      JSB MASUB 
      DEC 27
STZ   NOP 
      JSB MASUB 
      DEC 28
GRTXX NOP 
      JSB MASUB 
      DEC 29
GWTXX NOP 
      JSB MASUB 
      DEC 30
CKSPC NOP 
      JSB MASUB 
      DEC 31
STPNO NOP 
      JSB MASUB 
      DEC 32
SFSTS NOP 
      JSB MASUB 
      DEC 33
PRETS NOP 
      JSB MASUB 
      DEC 34
PRWIO NOP 
      JSB MASUB 
      DEC 35
MPY   NOP 
      JSB MASUB 
      DEC 36
DIV   NOP 
      JSB MASUB 
      DEC 37
      SKP 
ER2   EQU * 
      OCT 0 
      LDA D2
      JSB ERR 
ER3   EQU * 
      OCT 0 
      LDA D3
      JSB ERR 
ER4   EQU * 
      OCT 0 
      LDA D4
      JSB ERR 
ER5   EQU * 
      OCT 0 
      LDA D5
      JSB ERR 
ER6   EQU * 
      OCT 0 
      LDA D6
      JSB ERR 
ER7   EQU * 
      OCT 0 
      LDA D7
      JSB ERR 
ER8   EQU * 
      OCT 0 
      LDA D8
      JSB ERR 
ER9   EQU * 
      OCT 0 
      LDA D9
      JSB ERR 
ER10  EQU * 
      OCT 0 
      LDA D10 
      JSB ERR 
ER11  EQU * 
      OCT 0 
      LDA D11 
      JSB ERR 
ER14  EQU * 
      OCT 0 
      LDA D14 
      JSB ERR 
ER15  EQU * 
      OCT 0 
      LDA D15 
      JSB ERR 
ER16  EQU * 
      OCT 0 
      LDA D16 
      JSB ERR 
ER17  EQU * 
      OCT 0 
      LDA D17 
      JSB ERR 
ER18  EQU * 
      OCT 0 
      LDA D18 
      JSB ERR 
                      