LOADERMT867

(George Source)

Macros used: DCA, DISENGPER, FINDPEREC, GELL, GEOERR, GPERI, JBUSY, JDISENG, JENV, JENVNOT, JWRONG, LGEOG, LTYPE, OR, RESET, SMODE

LOADERMT867.txt
23DW    #SKI  AGONY 
23YG    #BASE MTLOADER 0
24XQ    #   
25CB ...#SEG  LOADERMT86                   [M. DRUKKER  
25F^ ...#  ######################################################## 
25JJ ...#   
25M7 ...#  (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982   
25PQ ...#   
25S* ...#  #########################################################
25X2    #LIS  K0LOADERMT>K0LOADER>K0ALLGEO  
26BL    #   
26W=    #   
27*W    #     BASICALLY THE MT LOADER/ALLOCATOR CONSISTS OF A   
27TG    #          COMMAND-EXECUTE-COMMAND LOOP.
28*6    #   
28SQ    #           FACILITIES ARE AVAILABLE FOR:   
29#B    #   
29S2    #             1  ALLOCATING FILES ON EDS, EDS30, FDS, HSD & SLOW DRUM.  
2=?L    #             2  DELETING FILES ON HSD OR SLOW DRUM.
2=R=    #             3  CLEARING DRUM SYSTEMS OF EITHER TYPE.  
2?=W    #             4  DESCRIBING FILESTORE RESIDENCES, GIVING THE
2?QG    #                      SAME EFFECT AS THE FSFILE GIN MACRO. 
2#=6    #             5  ACCEPTING INPUT COMMANDS FROM T/R & C/R AS 
2#PQ    #                      WELL AS CONSOLE. 
2*9B    #             6  LOADING GEORGE FROM MT TO ANY BS FILE. 
2*P2    #   
2B8L    #           WHEN A COMMAND IS ISSUED TO PERFORM NO.6 THE
2BN=    #           LOADER/ALLOCATOR TRANSFERS GEORGE FROM THE MT   
2C7W    #           FROM WHICH WE CAME TO THE NAMED BS FILE, BRINGS 
2CMG    #           DOWN THE NORMAL LOADER & THEN LEAVING CORE LOOKING  
2D76    #           AS IF GELL HAD LOADED LOADER, ENTERS IT 
2DLQ    #   
2FL2    #   
2G5L    #              *** DATA AREAS ***   
2GK=    #   
2H4W ...XCOPRICL       20H (C) COPR ICL 1982
2J46    TYPCON         #77  
2JHQ    SPACES         4H   
2K3B    #   
2KH2    #     CONTROL AREAS FOR MT  
2L2L    #   
2LG=    MTBSP          +3,+0,+0 
2L^W    MTREV          +6,+0,+0 
2MFG    #   
2M^6    JLTRAP  
2NDQ    TRAPFAIL       +0                  [-VE -> TRAPS
2NYB    JLFAIL  
2PD2    MTFAILMK       -1                  [ZEROISED ON TAPE FAIL   
2PXL    SLOWIN         +0                  [=1 IF SLOW INPUT, C/R OR T/R
2QC=    SUBLINK        +0   
2QWW    XGNUMLK        +0                  [FOR JLGETNUM
2RBG    JLGOTIT        +0                  [RESULT FROM JLGETNUM
2RW6    PTSMO          +0                  [FOR JLPOINT 
2S*Q    RFIF           +FSTABLEN*5  
2STB    THISRES        +0                  [RES.NO. OF LAST/THIS FS 
2T*2    MENT           #73030002           [ENTRY BLOCK TYPE
2TSL    MASKA          #37777777           [USEFUL MASK 
2W#=    THREE          +3   
2WRW    OCT8           +8   
2X?G    OCT13          +13  
2XR6    COMMA   
2Y=Q    OCTCO          #34  
2YQB    JLOCT   
2^=2    OCTHDC         #504434             [#HD,
2^PL    OCTDIFF        #36200              [#HD,-DR,
329=    TEN            +10  
32NW    SMODE          +0   
338G    XGGX3          +0                  [FOR JLGEOG  
33#C ...#UNS  G3<ENHOPER
33D# ...X7             +0                  [STORE X7 FOR DME
33N6    #   
347Q    GELLY          +0,+0,+0,+0         [DATA FROM GELL  
34MB    JLFILE  
3572    THEFILE        [AFTER FILE MENTIONED IN DA/ED/FD/HD/DR COMMAND HAS  
35LL    #GAP  5        [BEEN FOUND, ITS FAC/DIRENT IS MOVED HERE
366=                   [AND THE VARIOUS INFORMATION FROM IT STORED IN...
36KW    JLBS           +0  [CONTAINS DEVICE TYPE OF G'S BS FILE - 6,9,ETC   
375G    #   
37K6    BSDESC         +0,+0,+0,+0,+0,+0   [SEE COMMENTS
384Q    #     DATA IN BSDESC LOOKS THUS:
38JB    #   
3942    #      A) DRUMS:   WD 0    FILE DATUM IN WDS (SD) OR BLKS (HSD) 
39HL    #                     1         SIZE
3=3=    #   
3=GW    #      B) DISCS:   WD 2    BLK ADDR OF FIRST BLK     [RELATIVE  
3?2G    #                     3                LAST      +1  [TO SU.
3?G6    #                     4    BLKS/CYL OF UNIT 
3?^Q    #                     5    BLK DEPTH OF FILE
3#FB    FINAME         12H                 [FILENAME FROM LAST COMMAND  
3#^2    JLBSUB         +0                  [CONTAINS SUBTYPE OF LAST
3*DL                                       [DISC SEARCHED   
3*Y=    JLSTART        +0                  [START CYLNO OF SU IN QUESTION   
3BCW    JLCOMM  
3BQ? ...STARTCOMM      -K42            [COMMUNICATION AREA ADDRESS  ADD IN K18X 
3C4N ...OCHECKD       +0                  [ USED IN CHECKDISC S R IN LOADERDB   
3CC6    #   
3CD* ...#DEF    JLPOS = +#24000 
3CFJ ...#DEF   JLRTAB=+JLPOS+6000       [G3DOL  
3CGT ...#DEF   JLRAT=+FSTABLEN+1*5+JLRTAB   
3CH? ...#DEF   XBUFF1=+#110310  
3CHP ...#DEF   XBUFF2=+XBUFF1+512   
3CHY ...#DEF   XBUFF3=+XBUFF2+512   
3CJ7 ...#DEF   XBUFF4=+XBUFF3+512          [DUMMY   
3CJB ...#DEF   CHAPTAB1=+XBUFF4 
3CJK ...#DEF   CHAPTAB2=+CHAPTAB1+1000  
3CJS ...#DEF   CHAPTAB3=+CHAPTAB2+1000  
3CK3 ...#DEF   CHAPTAB4=+CHAPTAB3+1000  
3CK= ...#         BUFFERS IN FIXED CORE 
3CKF ...#     POINTERS TO BUFFERS   
3CKR ...#  FOR RECOMPILATIONS OF FIXED A NEW VALUE OF AENDCHAPS 
3CL5 ...#  WILL BE MENDED IN
3CLC ...AJLBUFF 
3CLP ...AJLREST          +AENDCHAPS 
3CM3 ...AJLBUFFX1K     -1024
3CM* ...AJLTBUFF        +1024   
3CMM ...AJLLBUFF         +1536  
3CM^ ...AJLMBUFF          +2048 
3CN? ...AJLZERBUFF       +2560  
3CNQ ...AXBUFF1        +XBUFF1  
3CN^ ...AXBUFF2        +XBUFF2  
3CP8 ...AXBUFF3        +XBUFF3  
3CPC ...AXBUFF4        +XBUFF4  
3CPL ...ACHAPTAB1      +CHAPTAB1
3CPT ...ACHAPTAB2      +CHAPTAB2
3CQ4 ...ACHAPTAB3      +CHAPTAB3
3CQ? ...ACHAPTAB4      +CHAPTAB4
3CQ# ...JLSTMESS
3CQ* ...POSMESS        +JLPOS   
3CQB ...SDMESTO        +0   
3CQC ...OPMESS          -1  
3CQD ...XFIRSTIME          -1          [1ST TIME MARKER FOR STOREDME
3CQG ...)   
3CQP ...AJLRTAB        +JLRTAB  
3CS= ...AJLRAT         +JLRAT   
3CSF ...XK18         +K18   
3CSN ...#   
3CWQ    #     LOADER POST-MORTEM ENTRY POINTS   
3DBB    #   
3DW2 ...PMENTRY        +K19+K1LOADERPM  
3F*L    PMBRN          BRN    (GEN1)
3FT=    #   
3G#W    #   
3GSG    #     ASSORTED MESSAGES 
3H#6    #   
3HRQ    NL              +2,2H^* 
3J?B    XCANCEL        +10,10H  CANCEL^*
3JR2 ...OKMESS          +8,8H    OK^*   
3K=L    SFIX           +17,17H   UNIT 000 FIX^* 
3KQ=    JLFIXM         +18,18H    UNIT 000 FIX^*
3L9W    SFL            +18,18H   UNIT 000 FAIL^*
3LPG    JLFAILM        +19,19H    UNIT 000 FAIL^*   
3M96 ...STOP           +16,16H PLEASE RELOAD^*  
3MNQ ...NOFILE         +16,16H FILE NOTFOUND^*  
3N8B ...REPOSOK        +16,16H TAPE REPOSNED^*  
3NN2 ...NAMEBADM       +19,19H INVALID FILENAME^*   
3P7L ...JLSERBAD
3PM= ...SERIALBAD      +16,16H INVLID SER NO^*  
3Q6W ...WRONGM         +20,20H CMMND/FORMT ERROR^*  
3QLG ...NORES3         +20,20H RES 3 NOT DCLARED^*  
3R66 ...NOSWAP         +20,20H NO SWP RES DCLRED^*  
3RKQ ...POSFAIL        +20,20H TAPE RPOSNG FAILD^*  
3RTJ ...NOPERIPH        +38,38H   UNIT 000 UNAVAILABLE OR NOT CR/TR^*   
3R^F ...WREXEC           +35,35H^*PLEASE LOAD GEORGE3 EXECUTIVE!^*  
3S5B    #   
3SK2    #     THE FOLLOWING WD PAIRS ARE 'IN' PSEUDO-ACTIVITY BLKS FOR EXEC'S   
3T4L    #     USE. DO NOT SEPARATE. 
3TJ=    #   
3W3W    #   
3WHG    #REP  CPPTR-CHAINADD+1             [FRONT OF PAB'S  
3X36                   +0   
3XGQ    #   
3Y2B    SRDL
3YG2    JLPSINP        +0                  [DL PTR FOR COMMAND INPUT
3Y^L                   +0                  [REPLY WD
3^F=    JLPSOUT        +0                  [DL PTR FOR CONSOLE OUTPUT   
3^YW                   +0                  [REPLY WD
42DG    JLPSBS  
42Y6    JLPSDR         +0                  [  FOR   
43CQ                   +0                  [DRUMS & DISCS   
43XB    #   
44C2    JLPSMT         +0                  [  FOR   
44WL                   +0                  [MAG TAPE
45B=    #   
45TW    #   
46*G    #   
46T6    #     TABLE OF COMMANDS 
47#Q    JLMTAB  
47SB    MTAB           +MTABX-MTAB-1
48#2          4H00DA                       [ LOAD GEORGE TO DISC
48RL          4H00ED                       [ =DA
49?=          4H00FD                       [ =DA
49QW          4H00DR                       [ LOAD GEORGE TO SLOW DRUM   
4==G          4H00HD                       [                HSD 
4=Q6          4H00CL                       [ CLEAR DRUMS
4?9Q          4H00FI                       [ DEFINE DRUM FILE   
4?PB          4H00DE                       [ DELETE DRUM FILE   
4#92          4H00CR                       [ ACCEPT COMMANDS FROM C/R   
4#NL          4H00TR                       [                      T/R   
4*8=          4H00FS                       [ = FSFILE MACRO 
4*MW    #SKI  K6LOADERMT
4B7G    (   
4BM6          4H00AL                       [ ALTER MT LOADER (1 WD) 
4C6Q          4H00PR                       [ PRINT MT LOADER (1 WD) 
4CLB    )   
4D62          4H00RP                       [SWITCH ON/OFF REPOTING  
4DKL          4H00TW                       [RETURN TO CONSOLE FOR COMMANDS  
4F5=          4H00ME                       [ MEND GEORGE
4FJW          4H00CT                       [ CHECK DISC INITIALISED 
4G4G          4H00DS                       [ DESCRIBE FILE  
4GJ6          4H00EF                       [ CREATE FILES ON DISC   
4H3Q    #SKI  ENTWINE   
4HHB    (   
4J32          4H00DC                       [ DEDICATE SPINDLES  
4JGL          4H00UN                       [UNDEDICATE SPINDLES 
4K2=    )   
4KFW ...      4H00#                        [COMMENT 
4LYQ    MTABX   
4MDB    #GAP  3                            [FOR ANY FUTURE COMMANDS 
4MY2    JLTTAB                 [TABLE MUST CORRESPOND TO 1ST 5 ENTRIES OF JLMTAB
4NCL          +6,+6,+6,+9,+25   
4NX=    RTYT                               [TABLE OF NUMERIC DEVICE TYPES FOR FS
4PBW          +6,+9,+13,+25,+26 
4QTQ    #   
4R*B    #   
4RT2    #     S/R TO OUTPUT MESSAGE WAITING & ACCEPT INPUT. 
4S#L    #           CALLED VIA X0   
4SS=    #   
4T?W    #   
4TRG    #   
4W?6    OUTIN STO   0  SUBLINK(2)   
4WQQ          CALL  6  OUT                 [OUTPUT MESSAGE WAITING  
4X=B          LDN   5  JLMESS(2)
4XQ2          LDN   6  JLMESS+1(2)  
4Y9L          LDX   7  SPACES(2)
4YP=          STO   7  JLMESS(2)
4^8W          MOVE  5  24                  [SPACEFILL BUFFER
4^NG          LDX   3  SRDL(2)             [GET DEVICE LIST PTR 
5286    #   
52MQ          LDX   7  SMODE(2) 
537B          DCA      3,STO,7,MODE 
53M2          LDN   7  80   
546L          DCA      3,STO,7,COUNT
54L=          LDN   7  JLMESS(2)
555W          DCA      3,STO,7,CTSA        [PCA ASSEMBLED NOW   
55KG          LDX   1  SLOWIN(2)
5656          BZE   1  TR7                 [CONSOLE INPUT   
56JQ          JDISENG  3,TR6               [S/R NOT ENGAGED 
574B    TR7   LDN   1  JLPSINP-CPPTR(2)    [POINT TO PSEUDO AB  
57J2          GPERI    3,1,NC              [INITIATE TRANSFER   
583L    TR1   JBUSY    3,TR1               [WAIT FOR TERMINATION
58*2 ...      LDX   0  CPRW1(1)            [ANALYSE IF FAIL 
58LB ...      SLL   0  3
58XQ ...      BNG   0  TR2                 [TRANSFER FAILURE
5996 ...      BRN      TROK                [WENT OK 
59GG    TR2   LDX   1  SLOWIN(2)           [TRANFAIL
5=26          BZE   1  TR7                 [IF ON CONSOLE, TRY AGAIN
5=FQ          LDX   1  JLPSINP+1(2)        [ELSE GET REPLY WORD 
5=^B          SRL   1  18   
5?F2          BNZ   1  TR4                 [REAL FAILURE
5?YL    TR6   LDN   1  SFIX(2)             [JUST A FIX  
5#D=    TR5   CALL  6  OUT                 [OUTPUT FIX/FAIL MESSAGE 
5#XW          LDX   3  SRDL(2)             [RELOAD DL PTR.  
5*CG    TR3   JDISENG  3,TR3               [WAIT FOR OPERABLE   
5*X6          BRN      TR7                 [TRY AGAIN WHEN SO   
5BBQ    TR4   LDN   1  SFL(2)              [GET FAIL MESSAGE
5BWB          BRN      JLER                [OUTPUT & DISENG 
5CB2    TROK
5CTL          LDX   1  SLOWIN(2)
5D*=          BZE   1  TR10                [CONSOLE 
5DSW    #   
5F#G    #     SLOW  INPUT   
5FS6    #   
5G?Q          LDCT  1  #600 
5GRB          ORN   1  JLMESS+19(2)        [-> LAST CHAR IN MESSAGE BUFFER  
5H?2    TR12  LDCH  7  0(1) 
5HQL          SBN   7  #20  
5J==          BNZ   7  TR11                [LAST COMMAND CHAR FOUND 
5JPW          SLC   1  2
5K9G          SBN   1  1
5KP6          SRC   1  2                   [ELSE STEP BACK A CHAR   
5L8Q          BRN      TR12                [AND LOOK AT NEXT
5LNB    TR11  SBN   1  JLMESS(2)
5M82          SLC   1  2
5MML          ADN   1  1
5N7=          BZE   1  TR15 
5NLW          BNG   1  TR15                [EMPTY LINE SO JUST LINE THROW   
5P6G          STO   1  JLSMESS(2)   
5PL6          LDN   1  JLSMESS(2)   
5Q5Q          CALL  6  JLOUT               [ECHO ON CONSOLE 
5QKB    #   
5R52    TR18  LDX   0  SUBLINK(2)          [RELOAD LINK 
5RJL          EXIT  0  0
5S4=    #   
5SHW    #     CONSOLE INPUT 
5T3G    #   
5TH6    TR10  LDX   0  JLPSINP+1(2)        [GET REPLY WORD  
5W2Q          SLC   0  4                   [LOOK AT B4  
5WGB          BNG   0  TR20                [CANCEL OR TOO L.NG  
5X22    #SKI  AGONY7<1$1
5XFL          BRN      TRD3                [UNTIL MK7   
5X^=    #     HANDLE ANY DELETE CHARACTERS  
5YDW    #     BY SHUNTING.  
5YYG          LDN   3  102                 [TOENSURE SPACES AT END OF LINE  
5^D6          LDN   1  JLMESS(2)           [FIRST CHAR OF MESSAGE   
5^XQ          LDCT  7  #600 
62CB          LDN   2  JLMESS-1(2)  
62X2          ORX   2  7                   [CHAR PRECEDING MESSAGE  
63BL          SMO      G3DOL
63W=          LDN   7  JLMESS   
64*W    TRD1  LDCH  0  0(1) 
64TG          SBN   0  #77  
65*6          BZE   0  TRD2                [DELETE FOUND
65SQ          BCHX  1  £                   [STEP ON LEADING PTR 
66#B          BCHX  2  £                   [STEP ON TRAILING PTR
66S2          BCT   3  TRD1                [MORE TO DO  
67?L          BRN      TRD3                [FINISHED
67R=    TRD2  TXU   7  1                   [STILL AT BEGINNING OF LINE? 
68=W          BCS      TRD4                [NO  
68QG          MVCH  1  0(3)                [YES, JUST SHUNT 
69=6          BCT   3  TRD1                [MORE TO DO  
69PQ          BRN      TRD3                [FINISHED
6=9B    TRD4  BCHX  1  £                   [STEP ON LEADING POINTER 
6=P2          MVCH  1  0(3)                [EXECUTE DELETE  
6?8L          SLC   1  2                   [STEP BACK TRAILER   
6?N=          SLC   2  2                   [STEP BACK LEADER BY 2   
6#7W          SBN   1  2
6#MG          SBN   2  1
6*76          SRC   1  2
6*LQ          SRC   2  2
6B6B          BCT   3  TRD1                [MORE TO DO  
6BL2    TRD3                               [FINISHED.   
6C5L    TR19  LDX   2  G3DOL
6C7* ...#UNS  G3<ENHOPER
6C94 ...(                                  [G3 POST-DME 
6C=R ...      LDX   3  JLPSINP+1(2)        [REPLY WORD  
6C#G ...      ANDN  3  #777                [GET REMAINDER COUNT 
6CB9 ...      SBN   3  80   
6CCY ...      BZE   3  TR18                [J IF EMPTY  
6CFM ...      NGS   3  JLSMESS(2)          [CHAR COUNT  
6CHB ...)   
6CK=          LDN   1  JLMESS(2)
6D4W          LDN   0  20                  [TEST FOR EMPTY LINE 
6DJG          LDX   7  SPACES(2)
6F46    TR9   TXU   7  0(1) 
6F7= ...#UNS  G3<ENHOPER
6F=B ...      BCS      TR21                [PRINT WHAT'S THERE  
6F*G ...#UNS  G3<ENHOPER
6FDL ...#SKI                               [G4 OR PRE-DME   
6FHQ          BCS      TR18                [ALL OK SO EXIT  
6G3B          ADN   1  1
6G?N ...      BCT   0  TR9                 [TEST PREVIOUS WORD, ELSE EMPTY LINE 
6GJ2 ...#   
6GS# ...TR15  LDN   1  NL(2)               [JUST LINE THROW 
6H4L ...      BRN      JLTURN   
6H#Y ...#   
6HK= ...TR20  LDN   1  XCANCEL(2)   
6HTJ ...      BRN      JLTURN   
6J5W ...#   
6JB8 ...#UNS  G3<ENHOPER
6JLG ...(   
6JWS ...TR21  LDN   1  JLSMESS(2)          [COUNT   
6K76 ...      CALL  7  STOREDME            [KEEP COPY OF MESSAGE
6KCD ...      BRN      TR18 
6KMQ ...)   
6KYB    #   
6LD2    #   
6LXL    #     S/R TO OUTPUT MESSAGE TO OP'S CONSOLE 
6MC=    #           CALLED VIA X6, X1->MESSAGE. 
6MWW    JLOUT   
6N9? ...OUT 
6NHN ...#UNS  G3<ENHOPER
6NJ5 ...(   
6NJH ...      STO   7  X7                  [PRESERVE X7 - DRUM NOS. 
6NKC ...      CALL  7  STOREDME            [COPY MESSAGE FOR DME
6NL= ...      LDX   7  X7                  [RESTORE X7  
6NLN ...)   
6NM6 ...      LDX   3  JLPSOUT(2)   
6NNW ...
6NW6          LDX   4  0(1)                [COUNT   
6P*Q          DCA      3,STO,4,COUNT
6PTB          LDN   4  1(1)                [CTSA
6Q*2          DCA      3,STO,4,CTSA 
6QSL          LDN   4  1
6R#=          DCA      3,STO,4,MODE        [WRITE MODE  
6RRW          LDN   1  JLPSOUT-CPPTR(2)    [-> PAB  
6S?G    OUT1  GPERI    3,1,NC              [INITIATE TRANSFER   
6SR6    OUT2  JBUSY    3,OUT2              [WAIT FOR TERMINATION
6T=Q          LDX   4  JLPSOUT+1(2)        [GET REPLY WD.   
6TQB          SRL   4  18   
6W=2          BNZ   4  OUT1                [ERRORS, TRY AGAIN   
6WPL          EXIT  6  0
6WR? ...#   
6WSY ...#UNS  G3<ENHOPER
6WWK ...(   
6WY= ...#     S/R  TO COPY CONSOLE MESSAGE TO BUFFER FOR DME
6W^X ...#     CALLED VIA X7; X1 POINTS TO MESSAGE   
6X3J ...#   
6X59 ...STOREDME
6X6W ...      STO   0  SDMESTO(2)          [MACRO IS A CORRUPTING INFLUENCE 
6X8H ...      JENVNOT  SDM9,DME            [UNNECESSARY RESTRICTION 
6X=8 ...      LDX   4  0(1)                [COUNT IN CHARS  
6X?T ...      BZE   4  SDM9                [NO MESSAGE  
6X*G ...      ADN   4  7                   [ROUND UP & MAKE INCLUSIVE   
6XC7 ...      SRL   4  2                   [FOR WORD COUNT  
6XDS ...      LDX   3  POSMESS(2)          [NEXT PLACE IN BUFFER
6XF? ...      LDX   5   XFIRSTIME(2)        [CHECK 1ST TIME 
6XFQ ...      BZE   5   SDM8
6XG9 ...      STOZ     XFIRSTIME(2) 
6XGN ...      SMO      OPMESS(2)          [NEEDED FOR LOADERI   
6XH7 ...      STO   3   0   
6XHL ...SDM8  STO   4  0(3)                [STORE WORD COUNT
6XJ6 ...      LDX   5  3
6XKR ...      ADN   5  1                   [START OF MESSAGE
6XMD ...      LDN   4  1(1) 
6XP5 ...      SMO      0(3) 
6XQQ ...      MOVE  4  0                   [FILL IN BUFFER  
6XSC ...      ADX   3  0(3) 
6XW4 ...      STO   3  POSMESS(2)          [MOVE UP BUFFER  
6XXP ...      STOZ     0(3) 
6X^B ...SDM9  LDX   0  SDMESTO(2)   
6Y33 ...      EXIT  7  0
6Y4N ...)   
6Y6* ...#   
6Y8G    #   
6YN6    #     S/R TO EXTRACT DECIMAL NO. FROM COMMAND & STORE IN JLGOTIT.   
6^7Q    #           CALLED VIA X0. USES X7. EXPECTS X1->NEXT PARAM. LEAVES  
6^MB    #           X1->NEXT PARAMETER IF ANY. EXIT 2 IF OK. EXIT 1 IF NO   
7272    #           PARAM. EXIT 0 IF INVALID PARAM. 
72LL    #   
736=    JLGETNUM
73KW          LDCH  7  0(1) 
745G          SBN   7  #20  
74K6          BNZ   7  NG5                 [SOMETHING THERE 
754Q          EXIT  0  1                   [NO PARAM
75JB    NG5   STO   0  XGNUMLK(2)   
7642          LDN   7  0
76HL          LDN   0  0
773=    NG2   CDB   7  0(1) 
77GW          BCS      NG1  
782G          BCHX  1  £
78G6          BRN      NG2  
78^Q    NG1   BNZ   7  NG3  
79FB          BNG   0  NG3  
79^2          LDCH  7  0(1) 
7=DL          TXU   7  OCTCO(2) 
7=Y=          BCC      NG4                 [COMMA TERMIN
7?CW          SBN   7  #20  
7?XG          BZE   7  NG4                 [SPACE TERMIN
7#C6    NG3   LDX   0  XGNUMLK(2)   
7#WQ          EXIT  0  0                   [BAD 
7*BB    NG4   BCHX  1  £
7*W2          STO   0  JLGOTIT(2)   
7B*L          LDX   0  XGNUMLK(2)          [GOOD
7BT=          EXIT  0  2
7C#W    #   
7CSG    #   
7D#6    #     S/R TO POINT TO 1ST USEFUL CHAR IN COMMAND VIA X1 
7DRQ    #           CALLED VIA X0, USES X4  
7F?B    #   
7FR2    JLPOINTN
7G=L          NGNC  4  1
7GQ=    JLPOINT 
7H9W          LDN   4  0
7HPG          STO   4  PTSMO(2) 
7J96          LDN   1  JLMESS(2)
7JNQ    PNT2  LDCH  4  0(1) 
7K8B          SBN   4  #20  
7KN2          BZE   4  PNT1 
7L7L          BCHX  1  £
7LM=          BRN      PNT2 
7M6W    PNT1  BCHX  1  £
7MLG          LDCH  4  0(1) 
7N66          SBN   4  #20  
7NKQ          BZE   4  PNT1 
7P5B          LDN   4  0(1) 
7PK2          SBNC  4  JLMESS+20(2) 
7Q4L          LDX   4  PTSMO(2) 
7QJ=          SMO      4
7R3W          BRN      £
7RHG          BRN      JLWRC               [NO PARAMS & MANDATORY   
7S36          EXIT  0  0                   [NO PARAMS & OPTNL OR PARAMS & MANDTY
7SGQ          EXIT  0  1                   [PARAMS & OPTIONAL   
7T2B    #   
7TG2    #   
7T^L    #     S/R TO EXTRACT FILENAME FROM COMMAND & PUT IT IN FINAME   
7WF=    #              CALLED VIA X0, USES X3 X4
7WYW    #              EXPECTS X1 -> 1ST CHAR & NO TERMINATOR   
7XDG    #   
7XY6    JLFNAME 
7YCQ          CALL  6  NALPHA              [CHECK FORST CHAR
7YXB          LDX   3  1
7^C2          LDN   4  FINAME(2)
7^WL          MVCH  3  12   
82B=          LDCH  6  0(3)                [CHECK 13TH CHAR 
82TW          SBN   6  #20  
83*G          BNZ   6  NAMELONG            [FILENAME TOO LONG   
83T6          EXIT  0  0
84#Q    #   
84SB    NALPHA  
85#2          LDCH  4  0(1)                [TEST FIRST CHAR ALPHABETIC  
85RL          SBN   4  #41                 [?-A 
86?=          BNG   4  NAMEBAD             [?<A 
86QW          LDN   3  #31                 [=Z-A
87=G          SBX   3  4                   [=Z-?
87Q6          BNG   3  NAMEBAD             [?>Z 
889Q          EXIT  6  0
88PB    #   
8992    JLNBAD  
89NL    NAMEBAD 
8=8=    NAMELONG
8=MW          LDN   1  NAMEBADM(2)  
8?7G          BRN      JLER 
8?M6    #   
8#6Q    #   
8#LB    #     S/R TO EXTRACT FILENAME FROM COMMAND, PUTS IT IN FINAME   
8*62    #              CALLED VIA X0, USES X3 X4 X6 
8*KL    #              EXPECTS X1 -> 1ST CHAR, & NAME TERMINATED BY COMMA.  
8B5=    JLFNAMEC
8BJW          CALL  6  NALPHA              [CHECK 1ST CHAR ALPHA
8C4G          LDN   3  FINAME(2)
8CJ6          LDN   6  13                  [MAX CHARS = 12  
8D3Q    XZ02  LDCH  4  0(1)                [GET NEXT CHAR   
8DHB          TXU   4  OCTCO(2)            [COMMA?  
8F32          BCC      XZ01                [YES 
8FGL          DCH   4  0(3)                [STORE CHAR IN TABLE 
8G2=          BCHX  1  £                   [POINT TO NEXT CHAR  
8GFW          BCHX  3  £                   [  "    "   "  HOLE  
8G^G          BCT   6  XZ02                [TOO MANY CHARS? 
8HF6          BRN      NAMELONG            [YES 
8HYQ    XZ01  TXU   6  OCT13(2)            [1ST CHAR = , ?  
8JDB          BCC      NAMEBAD             [YES, 1ST PARAMETER NULL 
8JY2          LDN   4  #20                 [PUT SPACE IN X4 
8KCL    XZ04  BCT   6  XZ03                [START SPACEFILLING  
8KX=          EXIT  0  0
8LBW    XZ03  DCH   4  0(3)                [PUT SPACE IN NEXT HOLE  
8LWG          BCHX  3  £                   [POINT TO NEXT HOLE  
8MB6          BRN      XZ04                [GO FOR ANOTHER  
8MTQ    #   
8N*B    #   
8NT2    #     S/R TO TEST FOR HD OR DR AS 1ST PARAM IN DRUM COMMAND 
8P#L    #           CALLED VIA X0, USES X4,X5,X6
8PS=    #           EXITS 0 IF DR, 1 IF HD  
8Q?W    #   
8QRG    JLHDDR  
8R?6          LDN   5  0
8RQQ          LDN   6  3
8S=B    THD1  LDCH  4  0(1) 
8SQ2          BCHX  1  £
8T9L          SLL   5  6
8TP=          ORX   5  4
8W8W          BCT   6  THD1 
8WNG          SBX   5  OCTHDC(2)
8X86          LDN   4  #34  
8XMQ          ORS   4  OCTHDC(2)
8Y7B          BZE   5  THD2 
8YM2          ADX   5  OCTDIFF(2)   
8^6L          BNZ   5  JLWRC
8^L=          EXIT  0  0
925W    THD2  EXIT  0  1
92KG    #   
9356    #   
93JQ    #     S/R TO PLACE GEOGNO IN FIX/FAIL MESSAGE   
944B    #           CALLED VIA X0, USES X4 X5   
94J2    #           EXPECTS X3->DL FOR DEVICE, X1-> MESSAGE 
953L    #   
95H=    JLGEOG  
962W          STO   3  XGGX3(2) 
96GG          LGEOG    3,5  
9726          LDN   4  10   
97FQ          DVS   4  4
97^B          LDX   3  4
98F2          LDN   4  10   
98YL          DVS   4  4
99D=          BNZ   5  XGG1 
99XW          LDN   5  #20  
9=CG          BNZ   4  XGG1 
9=X6          LDN   4  #20  
9?BQ    XGG1  SLL   5  12   
9?WB          SLL   4  6
9#B2          ORX   5  3
9#TL          LDCT  3  #200 
9**=          ORX   3  5
9*SW          ORX   3  4
9B#G          STO   3  3(1) 
9BS6          LDX   3  XGGX3(2) 
9C?Q          EXIT  0  0
9CRB    #   
9D?2    #   
9DQL    #   
9F==    #   
9FPW    #     *  *  
9G9G    #     ******   MAIN ENTRY POINT 
9GP6    #     *  *  
9H8Q    #   
9HNB    K1LOADERMT                         [ENTRY POINT FROM GELL   
9J82          BVSR     £                   [UNSET V 
9JML    X     CALL  2  £                   [FIND OUT WHERE YOU ARE  
9K7=          SBN   2  X+1  
9KLW          STO   2  G3DOL               [FOR SAFETY  
9KMC ...      LDX   1   BK18X   
9KMY ...      BNZ   1   XOK 
9KNF ...      LDX   1   XK18(2) 
9KP2 ...      STO   1   BK18X   
9KPH ...#   SET UP POINTERS WITH K18X FOR START OF LOADER   
9KQ4 ...XOK   LDX   1   BK18X   
9KQK ...      ADS   1   PMENTRY(2)  
9KR6 ...      ADS   1   STARTCOMM(2)
9KRM ...      ADS   1   POSMESS(2)  
9KS8 ...      ADS   1   AJLRTAB(2)  
9KSP ...      ADS   1   AJLRAT(2)   
9KT= ...      ADS   1   OPMESS(2)   
9KTR ...      LDX   1   AJLREST(2)  
9KW# ...      ADS   1   AJLBUFFX1K(2)   
9KWT ...      ADS   1   AJLTBUFF(2) 
9KXB ...      ADS   1   AJLLBUFF(2) 
9KXX ...      ADS   1   AJLMBUFF(2) 
9KYD ...      ADS   1   AJLZERBUFF(2)   
9KY^ ...      ADS   2   OSCA(2)             [ DATUMISE SCA BUFFERS  
9K^G ...      ADS   2   OSCAFAC(2)  
9L23 ...      LDX   1   CPEXECINFO  
9L2J ...      ANDN  1   7   
9L35 ...      SBN   1   3   
9L3L ...      BZE   1   XECOK   
9L47 ...      LDN   1   WREXEC(2)   
9L4N ...      CALL   6   JLOUT  
9L59 ...XSTOP  BRN      XSTOP   
9L5Q ...XECOK   
9L6G          LDX   1  PMENTRY(2)          [SET UP LOADER POST-MORTEM   
9LL6          STO   1  GEN1                [ENTRY POINT 
9M5Q          LDX   1  PMBRN(2) 
9MKB          STO   1  K0   
9N52          LDX   0  STARTCOMM(2) 
9NJL          LDN   1  GELLY(2) 
9P4=          MOVE  0  4                   [SAVE DATA FROM GELL.
9P4C ...      SMO      AJLRTAB(2)   
9P4J ...      STOZ     0                   [CLEAR OUT ME & FS BUFFERS   
9P4P ...      LDX   0  AJLRTAB(2)   
9P4S ...      LDN   1   1   
9P4X ...      ADS   0   1   
9P53 ...      MOVE  0  FSTABLEN+1*5 
9P58 ...      SMO      AJLRAT(2)
9P5* ...      STOZ     0
9P5G ...      LDX   0  AJLRAT(2)
9P5K ...      LDN   1   1   
9P5N ...      ADS   0   1   
9P5S ...      MOVE  0  200  
9P9C ...      SMO      AJLZERBUFF(2)
9P?6 ...      STOZ     0
9P#T ...      LDX   0  AJLZERBUFF(2)
9P*^ ...      LDN   1   1   
9PC5 ...      ADS   0   1   
9PD? ...      MOVE  0  0                   [ZEROIZE JLZERBUFF   
9PHW          LDX   1  GEOBSPTR 
9Q3G          STO   1  JLPSMT(2)
9QH6    NLOUT LDN   1  NL(2)
9R2Q          FINDPEREC 3,APFOTY,TYPCON(2),NEXTCON  
9RGB ...      JWRONG   3,NEXTCON           [LOOK FOR A RIGHTED OPS CONSOLE  
9S22          STO   3  JLPSOUT(2)   
9SFL    NAPS  STO   3  SRDL(2)  
9S^=    JLTURN  
9TDW    TURN  CALL  0  OUTIN               [OUTPUT MESS & WAIT FOR COMMAND  
9TYG          LDX   0  JLMESS(2)
9WD6          SRL   0  12                  [GET COMMAND FROM MESSAGE
9WXQ          LDX   1  MTAB(2)             [SEARCH FOR IT IN LIST   
9XCB    NEXM  SMO      2
9XX2          TXU   0  MTAB(1)  
9YBL ...      BCC      MESID               [IDENTIFIED IT   
9YW=          BCT   1  NEXM                [TRY NEXT IN LIST
9^*W    JLWRC LDN   1  WRONGM(2)           [NOT FOUND - COMMAND FORMAT ERROR
9^TG    #SKI  AGONY7
=2*6    JLER  STOZ     SMODE(2) 
=2SQ    #SKI  AGONY7<1$1
=3#B    JLER
=3S2          LDX   0  TRAPFAIL(2)         [ATTEMPT RECOVERY AFTER  
=4?L          BNG   0  RECOVERY            [MT/BS FAIL WHILE LOADING
=4R=    RESET LDX   3  SLOWIN(2)
=5=W          BZE   3  TURN                [CONSOLE INPUT   
=5QG          DISENGPER SRDL(2)            [DISENGAGE SLOW READER   
=6=6    #SKI  AGONY7
=6PQ    (   
=79B          STOZ     SLOWIN(2)
=7P2          LDX   3  JLPSOUT(2)          [FOR NEW INPUT SOURCE
=88L          BRN      NAPS                [& GO FOR NEXT COMMAND   
=8N=    )   
=97W    #SKI  AGONY7<1$1
=9MG          BRN      TURN 
==76    MESID   
==LQ    #     COMMAND HAS BEEN IDENTIFIED; JUMP ACCORDINGLY 
=?6B    #   
=?L2          STOZ     JLNUMIN(2)          [FOR DISC SEARCH ROUTINES
=#5L          SMO      1
=#K=          BRN      TABJUMP-1
=*4W    TABJUMP 
=*JG          BRN      JLDA 
=B46          BRN      JLDA 
=BHQ          BRN      JLDA 
=C3B          BRN      JLDR 
=CH2          BRN      JLHD 
=D2L          BRN      JLCL 
=DG=          BRN      JLFI 
=D^W          BRN      JLDE 
=FFG          BRN      JLCR 
=F^6          BRN      JLTR 
=GDQ          BRN      JLFS 
=GYB    #SKI  K6LOADERMT
=HD2    (   
=HXL          BRN      JLAL 
=JC=          BRN      JLPR 
=JWW    )   
=KBG          BRN      JLRP 
=KW6    #SKI  AGONY7
=L*Q          BRN      JLTW 
=LTB    #SKI  AGONY7<1$1
=M*2          BRN      JLWRC               [UNTIL MK7   
=MSL          BRN      JLME 
=N#=          BRN      JLCT 
=NRW          BRN      JLDS 
=P?G          BRN      JLEF 
=PR6    #SKI  ENTWINE   
=Q=Q    (   
=QQB          BRN      JLDC 
=R=2          BRN      JLUN 
=RPL    )   
=S9=          BRN      JLCM 
=SNW    #SKI  G4
=TN6    #     FOLLOWING ARE IN CASE OF EXTRA COMMANDS MENDED IN.
=W7Q          BRN      JLWRC
=WMB          BRN      JLWRC
=X72          BRN      JLWRC               [NOW ONLY ROOM FOR 3 
?342    #   
?3HL    #   
?43=    #   
?4GW    #     COME HERE IF IRRECOVERABLE ERROR. 
?52G    CATASTROPHE 
?5G6          CALL  6  OUT                 [OUTPUT WAITING MESSAGE  
?5^Q          LDN   1  STOP(2)  
?66Y ...      CALL  6  OUT  
?6#6 ...      GELL                         [DON'T NEED PM FOR TRANSFER FAILURES 
?6FB    #   
?6^2    CALLGELL
?7DL          CALL  6  OUT  
?7Y=    GELLIT                             [COME HERE IF WANT TO KNOW WHY   
?8CW          GEOERR   1,GEO LOAD   
?8XG    #   
?9C6    #     IF A TRANSFER FAILURE (MT/BS) OCCURS IN LOADING FROM MT TO BS 
?9WQ    #     THE RELEVANT PERI ROUTINE WILL SET X1->ERROR MESSAGE & BRN TO 
?=BB    #     JLER, WHERE TRANSFER FAILS ARE FILTERED HITHER FROM OTHER FAILS.  
?=W2    #     MT FAILS ARE DEEMED IRRECOVERABLE.
??*L    #     IN THE CASE OF BS FAILS, AN ATTEMPT IS MADE TO REPOSITION THE 
??T=    #     TAPE SO THAT THE COMMAND CAN BE RESUBMITTED OR ANOTHER BS FILE
?##W    #     CAN BE USED. IF REPOSITIONING FAILS, GIVE UP. 
?#SG    RECOVERY
?*#6          LDX   0  MTFAILMK(2)  
?*RQ          BZE   0  CATASTROPHE         [MT FAILS ARE IRRECOVERABLE  
?B?B    #SKI  AGONY7<1$1
?BR2          BRN      CATASTROPHE         [UNTIL MK7   
?C=L    #   
?CQ=    #     BS FAIL HAS OCCURRED; ATTEMPT TO REPOSITION TAPE  
?D9W    #   
?DPG          CALL  6  JLOUT               [OUTPUT DISC/DRUM FAIL MESSAGE   
?F96          LDX   4  JLTMCNT(2)   
?FNQ          LDN   6  MTREV(2) 
?G8B    RC1   CALL  0  JLPTAPE             [SKIP BACK OVER  
?GN2          BCT   4  RC1                 [TAPE MARKS  
?H7L          LDN   6  MTBSP(2) 
?HM=          CALL  0  JLPTAPE             [BACKSPACE OVER E/S SENTINEL FOR L/A 
?J6W          LDN   6  JLMHEAD(2)   
?JLG          CALL  0  JLPTAPE             [READ E/S SENTINEL   
?K66          LDN   1  POSFAIL(2)          [IN CASE IT FAILS
?KKQ          LDX   0  MENT(2)  
?L5B          TXU   0  JLMHEADA(2)  
?LK2          BCS      CATASTROPHE         [REPOSITIONING FAILED
?M4L    #   
?MJ=    #     REPOSITIONING SUCCESSFUL, SO RESET VARIUS AREAS.  
?N3W    #   
?NHG          STO   0  MTFAILMK(2)  
?P36          STOZ     TRAPFAIL(2)         [MT/BS FAILS TRAP
?PGQ          NGN   0  512  
?Q2B          STO   0  JLNDADD(2)          [LAST D-ADDRESS  
?QG2          LDN   1  REPOSOK(2)   
?Q^L          BRN      RESET
?RF=    #   
?RYW    #   
?SDG    #     VARIOUS ERROR/INFO PATHS  
?SY6    #   
?T7Y ...JLCM                               [COMMENT!
?TCQ    JLXOK   
?TXB          LDN   1  OKMESS(2)           [COMMAND HAS BEEN SUCCESSFULLY   
?WC2          BRN      TURN                [IMPLEMENTED 
?WWL    JLNOFILE
?XB=          LDN   1  NOFILE(2)
?XTW          BRN      JLER 
?Y*G    #   
?YT6    #     MT LOADER COMES HERE ON RECEIPT OF CR/TR COMMAND. 
?^#Q    #       SWITCHES ARE SET TO GUIDE COMMANDS FROM SLOW READER 
?^SB    #       UNTIL INVALID COMMAND IS ENCOUNTERED.   
#2#2    #       GEOGNO IS PLACED IN FIX & FAIL MESSAGES.
#2RL    #       DL POINTER OF RELEVANT DEVICE GOES TO SRDL. 
#3?=    #       SLOWIN IS SET TO 1. 
#3QW    #   
#4=G    JLTR  LDN   0  #12                 [MODE - GRAPHIC STOP BY STOP CHAR
#4Q6          BRN      TCR1 
#59Q    JLCR  LDN   0  0                   [MODE
#5PB    TCR1  LDX   7  SLOWIN(2)
#692          BNZ   7  JLWRC               [COMMAND SOURCE NOT CONSOLE  
#6NL          STO   0  SMODE(2) 
#78=          LDX   0  SPACES(2)
#7MW          STO   0  SFL+3(2) 
#87G          STO   0  SFIX+3(2)
#8C# ...      STO   0  NOPERIPH+3(2)
#8M6          LDX   3  2
#96Q          CALL  0  JLPOINT  
#9LB          LDN   6  0
#=62          LDN   4  3
#=KL    TCR5  LDCH  7  0(1) 
#?5=          TXL   7  TEN(2)   
#?JW          BCC      TCR6 
##4G          DCH   7  SFIX+3(3)
##J6          DCH   7  SFL+3(3) 
##RY ...      DCH   7   NOPERIPH+3(3)   
#*3Q          BCHX  1  £
#*HB          BCHX  3  £
#B32          MPA   6  TEN(2)   
#BGL          LDX   6  7
#C2=          BCT   4  TCR5 
#CFW          LDCH  7  0(1) 
#C^G    TCR6  SBN   7  #20  
#DF6          BNZ   7  JLWRC               [NOT A NICE CHARACTER
#DYQ    TCR2  FINDPEREC 3,APGEOG,6         [FIND OUT ABOUT DEVICE   
#F?7 ...      JENV      TCR42,CME   
#FKJ ...      BNG   3   JLWRC   
#FQR ...TCR42 BNG   3  TCR41
#FY2    #   
#GCL    #     IS DEVICE OF SPECIFIED TYPE?  
#GX=    #   
#HBW          LTYPE    3,0  
#HWG          BZE   0  TCR3                [GEOGNO GIVES TR 
#JB6          SBN   0  3
#JTQ          BNZ   0  JLWRC               [GEOGNO GIVES NEITHER CR TR  
#K*B          LDX   0  SMODE(2)            [GEOGNO GIVES CR 
#KT2          BNZ   0  JLWRC               [NOT EXPECTED
#L#L          BRN      TCR4 
#LS=    TCR3  LDX   0  SMODE(2)            [TR COMMAND? 
#M?W          SBN   0  #12  
#MRG          BNZ   0  JLWRC               [NO. 
#N?6    TCR4
#NQQ          STO   3  SRDL(2)  
#P=B          LDN   0  1
#PQ2          STO   0  SLOWIN(2)           [SET SLOW INPUT SWITCH   
#Q9L          BRN      JLXOK
#QBS ...TCR41  LDN   1   NOPERIPH(2)
#QJ2 ...      BRN       JLER
#QP=    #   
#R8W    #   
#RNG    #   
#S86    #   
#SMQ    #     LOADER/ALLOCATOR COMES HERE IF TW COMMAND IS RECEIVED.
#T7B    #     PROVIDING IT WAS ISSUED FROM O SLW READER IT CAUSES THE SOURCE OF 
#TM2    #     COMMANDS TO BE CHANGED TO THE OP'S CONSOLE.   
#W6L    #     IF NECESSARY THE CURRENT SLOW READER IS DISENGAGED.   
#WL=    #   
#X5W    JLTW  LDX   0  SLOWIN(2)
#XKG          STOZ     SMODE(2) 
#Y56          LDN   1  OKMESS(2)           [TO SAY 'OK' 
#YJQ          BRN      RESET
#^4B    #   
#^J2    #   
*23L    #   
*2H=    #   
*32W    #   
*3GG    #   
*426    #     MT LOADER COMES HERE ON RECEIPT OF AN FS COMMAND. 
*4FQ    #           THE COMMAND IS CHECKED FOR VALIDITY & THE CONTENTS  
*4^B    #           OF ITS PARAMETERS ENTERED IN A TABLE WHICH IS COPIED
*5F2    #           INTO THE SEGMENT FSTABLE WHEN G IS TRANSFERRED FROM MT  
*5YL    #   
*6D=    JLFS
*6XW          CALL  0  JLPOINT  
*7CG          LDN   6  0
*7X6          LDN   7  0
*8BQ    TFS1  CDB   6  0(1)                [CONVERT LFN 
*8WB          BCS      TFS2                [NON-NUMERIC CHAR
*9B2          BCHX  1  £
*9TL          BRN      TFS1 
*=*=    TFS2  LDCH  0  0(1) 
*=SW          TXU   0  OCTCO(2)            [COMMA?  
*?#G          BCS      JLWRC               [NO, ERROR   
*?S6          BCHX  1  £
*#?Q          BNZ   6  JLWRC               [HUGE LFN
*#RB          SLL   67 18   
**?2          BNZ   6  JLWRC               [LFN>63  
**QL          SRL   7  18                  [LFN IN X7   
*B==          TXL   7  THREE(2) 
*BPW          BCS      JLWRC
*C9G          LDX   5  7                   [LFN IN X5   
*CP6          STO   5  THISRES(2)   
*D8Q          LDN   6  5
*DNB          MPY   5  6                   [5*LFN IN X6 
*F2R ...      STO   6  JLRSW(2)            [FRO USE AS A POINTER
*F9P ...      LDX   3  AJLRTAB(2)   
*FDM ...      ADN   3   3   
*FML          SMO      6
*G7= ...      STO   7  0(3)                [STORE LFN   
*GLW    #   
*H6G    #     GET DEVICE TYPE   
*HL6    #   
*J5Q          LDCH  0  0(1) 
*JKB          SBN   0  10   
*K52          BNG   0  TFS5                [NUMERIC TYPE
*KJL          LDCH  0  0(1) 
*L4=          SLL   0  6
*LHW          LDX   4  0
*M3G          BCHX  1  £
*MH6          LDCH  0  0(1) 
*N2Q          ORX   4  0                   [X4=00TT 
*NGB          BCHX  1  £
*P22    #     SEARCH TABLE FOR DEVICE TYPE  
*PFL          LDN   5  5
*P^=    TFS6  SMO      5
*QDW          TXU   4  JLMTAB(2)
*QYG          BCC      TFS7                [FOUND IT
*RD6          BCT   5  TFS6                [MORE TO COMPARE 
*RXQ          BRN      TFS8 
*SCB    TFS7  SMO      5
*SX2          LDX   7  JLTTAB-1(2)         [GET NUMERIC EQUIVALENT  
*TBL          BRN      TFS9 
*TW=    TFS5  LDN   6  0
*W*W          LDN   7  0
*WTG    TFS10 CDB   6  0(1)                [CONVERT NUMERIC TYPE
*X*6          BCS      TFS11               [NON-NUMERIC CHAR
*XSQ          BCHX  1  £
*Y#B          BRN      TFS10
*YS2    TFS11 LDN   5  5                   [FIND NUMERIC TYPE IN TABLE  
*^?L    TFS12 SMO      5
*^R=          TXU   7  RTYT-1(2)
B2=W          BCC      TFS13               [FOUND IT
B2QG          BCT   5  TFS12               [TRY NEXT
B3=6          BRN      TFS8                [NOT KNOWN   
B3PQ    TFS13 SMO      5
B49B          LDX   6  RTYT-1(2)
B4P2          ANDN  6  6
B58L          BZE   6  TFS9 
B5N=          LDN   7  6                   [DISC SO REPLACE BY TYPE 6   
B67W    TFS9  SLL   7  18   
B6CN ...      LDX   3  AJLRTAB(2)   
B6MG ...      ADN   3   3   
B6X# ...      SMO      JLRSW(2) 
B7?3 ...      ORS   7  0(3)                [PUT TYPE IN TABLE ENTRY 
B7LQ          LDCH  0  0(1) 
B86B          SBN   0  #34  
B8L2          BNZ   0  TFS8                [NEXT CHAR NOT O COMMA   
B95L          BCHX  1  £
B9K=    #   
B=4W    #     EXTRACT FILENAME  
B=JG    #   
B?46 ...      LDX   3  JLRSW(2) 
B#3B          LDX   0  SPACES(2)
B##? ...      SMO      AJLRTAB(2)          [SPACEFILL   
B#K8 ...      STO   0  0(3) 
B#R6 ...      ADN   3   1   
B#^4 ...      SMO      AJLRTAB(2)         [NAME IN  
B*72 ...      STO   0  0(3) 
B*#Y ...      ADN   3   1   
B*GW ...      SMO      AJLRTAB(2)         [TABLE.   
B*NS ...      STO   0  0(3) 
B*^W    TFS19 LDCH  0  0(1) 
BBFG          SBN   0  #20  
BB^6          BNZ   0  TFS14               [NOT A SPACE 
BCDQ          BCHX  1  £                   [STEP ON 
BCYB          BRN      TFS19
BDD2    #   
BDXL    TFS14 CALL  6  NALPHA              [CHECK 1ST CHAR ALPHE
BFC=          LDN   4  12                  [CHAR COUNT  
BFWW ...      LDX   3  JLRSW(2)            [X3->TABLE   
BGW6    TFS20 LDCH  0  0(1) 
BH*Q          BCHX  1  £
BHTB          TXU   0  OCTCO(2) 
BJ*2          BCC      TFS15               [NEXT CHAR COMMA SO MORE PARAMS  
BJMC ...      SMO      AJLRTAB(2)   
BJ^S ...      DCH   0  0(3)                [MOVE NAME TO TABLE  
BK#=          BCHX  3  £
BKRW          BCT   4  TFS20
BL?G          LDCH  0  0(1)                [IS THIS A TWELVE CHAR FILENAME  
BLR6          BCHX  1  £                   [... 
BM=Q          TXU   0  OCTCO(2)            [FOLLOWED BY A COMMA?
BMQB          BCC      TFS15               [YES, SO SN TO FOLLOW
BN=2          SBN   0  #20  
BNPL          BZE   0  TFS18               [SPACE SO FINISHED   
BP5* ...      LDX   3  AJLRTAB(2)   
BPF4 ...      SMO      JLRSW(2)            [ELSE BAD NAME   
BPSR ...      STOZ     0(3)                [... SO CLEAR ENTRY  
BQ8G          BRN      NAMEBAD  
BQN6    #   
BR7Q    #     SERIAL NO. IF ANY 
BRMB    #   
BS72    TFS15 LDN   6  0
BSLL          LDN   4  7
BT6=    TFS16 LDCH  0  0(1)                [CONVERT A DIGIT 
BTKW          TXL   0  OCT8(2)             [OCTAL?  
BW5G          BCC      TFS17               [NO  
BWK6          BCHX  1  £
BX4Q          SLL   6  3
BXJB          ORX   6  0                   [MOVE IN 
BY42          BCT   4  TFS16               [MORE ALLOWED
BYHL          BRN      TFS21               [TOO LONG!   
BYRD ...TFS17 LDX   3  AJLRTAB(2)   
B^3= ...      ADN   3   4   
B^?4 ...      SMO      JLRSW(2) 
B^LR ...      STO   6  0(3)                [STORE CSN IN TABLE  
C22G          SBN   0  #20  
C2G6          BZE   0  TFS18               [SPACE FOUND, I.E. END   
C2^Q          SBN   0  #14  
C3FB          BNZ   0  TFS21               [NOT A COMMA AFTER SN
C3^2          BCHX  1  £
C4DL ...      LDX   0  JLRSW(2) 
C4Y=          SBN   0  15   
C5CW          BZE   0  TFS8                [ERROR -'SWAP'& LF3  
C5XG          LDCH  0  0(1) 
C6C6          SBN   0  #63  
C6WQ          BNZ   0  TFS8                [NOT S AFTER COMMA   
C7BB          LDCT  0  4
C7L8 ...      LDX   3  AJLRTAB(2)   
C7W2 ...      ADN   3   3   
C85S ...      SMO      JLRSW(2) 
C8FH ...      ORS   0  0(3)                [SET SWAPFILE BIT
C8T=          NGN   0  16*G4
C9#W          ADXC  0  THISRES(2)   
C9SG          LDN   7  G4   
C=#6          ANDN  7  1
C=RQ          BNZ   7  TFS8                [G4 ONLY SWAP RES > 15   
C??B    #   
C?R2    TFS18   
C#=L          BRN      JLXOK               [
C#Q=    #   
C*5^ ...TFS8  LDX   3  AJLRTAB(2)   
C*FN ...      SMO      JLRSW(2)            [CLEAR CORRUPTED 
C*TC ...      STOZ     0(3)                [TABLE ENTRY 
CB96          BRN      JLWRC               [GENERAL ERROR   
CBNQ    #   
CC4F ...TFS21 LDX   3  AJLRTAB(2)   
CCD8 ...      SMO      JLRSW(2) 
CCRX ...      STOZ     0(3) 
CD7L          LDN   1  SERIALBAD(2)        [INVALID SN. 
CDM=          BRN      JLER 
CF6W    #   
CFLG    #   
CG66    #     S/R TO CHECK THAT, IF ANY FS'S HAVE BEEN ISSUED, A SWAP RESIDENCE 
CGKQ    #     HAS BEEN DECLARED. CALLED VIA X0. 
CH5B    #   
CHK2    JLSWAPCH
CJ4L          LDN   5  0                   [ANY ENTRIES SWITCH  
CJJ=          LDN   7  64   
CK3W ...      LDX   3  AJLRTAB(2)          [POINT TO TABLE  
CKHG    SW2   LDX   6  0(3) 
CL36          BZE   6  SW1                 [NO ENTRY HERE   
CLGQ          ADN   5  1                   [ELSE MARK UP AN ENTRY   
CM2B          LDCT  6  4
CMG2          ANDX  6  3(3)                [PICK OUT SWAPFILE BIT   
CM^L          BNZ   6  SW3                 [FOUND ONE   
CNF=    SW1   ADN   3  5
CNYW          BCT   7  SW2  
CPDG          BZE   5  SWEXIT              [NO FS'S, SO OK  
CPY6    #   
CQCQ    #     IF WE REACH HERE NO SWAPFILE HAS BEEN FOUND   
CQXB    #   
CRC2          LDN   1  NOSWAP(2)
CRKY ...      LDX   3  AJLRTAB(2)   
CRSW ...      ADN   3   15  
CS3S ...      LDX   6  0(3)                [ENTRY FOR RES.3 ?   
CSB=          BNZ   6  JLER                [YES 
CSTW          CALL  6  JLOUT               [NO  
CT*G    SW4   LDN   1  NORES3(2)
CTT6          BRN      JLER 
CW#Q    #   
CWSB    #     IF WE REACH HERE A SWAPFILE HAS BEEN FOUND
CX#2    #   
CXGY ...SW3   LDX   3  AJLRTAB(2)   
CXPW ...      ADN   3   15  
CXYS ...      LDX   6  0(3) 
CY?=          BZE   6  SW4                 [NO RES.3
CYQW    SWEXIT  
C^=G          EXIT  0  0                   [RES.3 & SWAPFILE FOUND  
C^Q6    #   
D29Q    #   
D2FJ ...K99LOADERMT                         [ DATA AREA FOR MENDS   
D2PB ...#GAP 1023-0?
D6LB    #   
D762    #END
^^^^ ...014264330001
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1