LOADERI867

(George Source)

Macros used: DCA, FAILURE, FINDPEREC, GEOERR, GPERI, JBUSY, JDISENG, JENVNOT, JWRONG, LGEOG, LINT, LPROP, LTYPE, ON, OR, TABEND

LOADERI867.txt
22FL ...#SEG  LOADERI86                    [M. DRUKKER  
22J9 ...#  ######################################################## 
22LS ...#   
22PC ...#  (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982   
22S2 ...#   
22WK ...#  #########################################################
22^=    #LIS  K0LOADER  
23DW    #   
23YG    #     THIS (1ST) SEGMENT OF LOADER IS ENTERED FROM GELL.
24D6    #           IT CHECKS THE COMPATIBILITY OF THIS GEORGE &
24XQ    #           EXECUTIVE, & (G4) CHECKS THAT FIXED CORE FITS.  
25CB    #           THEN, USING THE INFORMATION LEFT BY GELL AT 
25X2    #           K18-K42, IT LOADS GEORGE'S FIXED CORE FROM THE  
26BL    #           BS DEVICE, FINALLY PASSING CONTROL TO LOADERII. 
26W=    #   
27*W    #           (EFFECTIVELY IT IS LOADERI70 REWRITTEN TO THE   
27TG    #            NEW GEORGE-EXECUTIVE INTERFACE.)   
28*6    #   
28SQ    K1LOADERI   
29#B          BRN      START
29S2 ...               +DMETAFORM     [ADDR OF SEG CONTNNG DATA FOR UTILITY PGMS
2=?L    #ALT  FSTABLEN=64   
2=HD ...XCOPRICL        20H (C) COPR ICL 1982   
2=R=    K7LOADERI   
2?=W ...#GAP  200                          [MEND AREA  THERE IS A FURTHER GAP AT
2?QG    #     THE FOLLOWING IS A PSEUDO ACTIVITY BLOCK TO FOOL EXEC 
2#=6    #REP  CPPTR-CHAINADD+1  
2#PQ ...               +0   
2*9B    GBSDL   
2*P2    QGBSDL         +0                  [CPPTR FOR DA DEVICES
2B8L    REPLYBS        +0                  [CPRW1   
2BN=    CONDL   
2C7W    OPCONDL        +0                  [CPPTR FOR OP'S CONSOLE  
2CMG    REPLYCON       +0                  [CPRW1   
2D76    #   
2DLQ    #     TABLE OF DEVICE TYPES:
2F6B    TYPTAB         +13,+0,+6,+26,+25,+9 
2FL2    TABEND                             [ ^  
2G5L    #                DUMMY GAP TO ALLOW DIFFERENTIATING 
2GK=    #                BETWEEN 2A & 2B FDS.   
2H4W    #     LOTS OF USEFUL WORDS: 
2HJG    #DEF  G3DOL=19  
2HPN ...XECPOINTER                         [POINTERS TO FDATE AND FTIME 
2HWW ...#HAL  FDATE,FTIME                  [FOR USE BY EXECUTIVE
2J46    BLSUB          +0                  [DEVICE SUBTYPE FOR LOADERII 
2JHQ    GBSTYPE        +0                  [OWN DEVICE CODE; SEE QNOTFDS
2K3B    TYPECODE       +0                  [ = [GBSTYPE]+[X2]   
2KH2    BLTYPE         +0                  [G'S DEVICE TYPE 
2L2L    SUBTYPES       +AFDS,+BFDS,+EDS,+EMDS   
2LG=    TYPOPCON       #77  
2L^W    XSURF          +BSURF              [BLKS/CYL ON 2B FDS. 
2MFG    QFOUR          +4   
2M^6    MASKA          #37777777
2NDQ    R5             +0                  [
2NYB    R6             +0                  [ USED IN DISC   
2PD2    BLDATUM                            [ ROUTINES.  
2PXL    #GAP  4                            [
2QC=    X6             +0                  [
2QWW    X1             +0                  [FOR JLUFIX  
2RBG    SUBLINK        +0   
2RW6    TYPE           +0   
2S*Q    QLINK          +0   
2STB    JLFSDCOPY                          [MINI CHAPTER TABLE: 
2T*2                   +DLOADERFS          [   1)  FSLOAD OVERLAY D-ADDRESS 
2TSL ...               +K19            [   2)  CORE ADDRESS FOR LOADERFS  XK18 A
2W#=                   +LLOADERFS+LLOADERFT+2 [3)  LENGTH OF FSLOAD OVERLAY 
2WRW    JLFSVCOPY      0,0,0               [TEMPORARY STORAGE FOR JDVAR ETC 
2X?G    JLGENRESFLG    0                   [REPLY FROM LOADERFS:SUPPRESS GR IF 0
2XR6    JCVAR          +AVARLOAD           [CORE ADDRESS OF "VARIABLE" FIXED
2Y=Q    JLVAR          +JFCT-AVARLOAD      [LENGTH OF "VARIABLE" FIXED  
2YQB    JDVAR          +DDATUM             [DRUM ADDRESS OF "VARIABLE" FIXED
2^=2    JDFIXED        +DFIXED             [DRUM ADDRESS OF "FIXED" FIXED   
2^PL    JCFIXED        +J1                 [DATUM OF "FIXED" FIXED IN CORE  
329=    BR2A
32NW    JLFIXED        +AVARLOAD-J1        [LENGTH OF "FIXED" FIXED 
338G    JLPMSIZE       0                   [UPDATED BY PM AS MIN FIXED SPACE
33D# ...PMENTRY        +DLOADERPM-DLOADERI+K1LOADERPM  [K18X ADDED IN AT RUN-TIM
33N6
347Q    PMBRN          BRN    (GEN1)
34*F ...XMNO             +7036875            [ MAGIC NO. FOR BIN-DEC CONVERSION 
34H8 ...XK18           +K18 
34NY ...#OPT  BLMESS=+K18-1 
34QG ...#UNS  G3<ENHOPER
34S4 ...(   
34TL ...PIASIZE        +K81X                [DME USES SIZE OF PIA   
34X8 ...PIAWORD        +ELPIALEN            [F/C WORD CONTAINING K81 OR K81X
34X^ ...JOPMESS 
34YQ ...OPMESS         -1              [LAST WORD OF K42 AREA   
34^H ...JPOSMESS
352# ...POSMESS         +#24000            [ IN CASE VIA GELL - ADD IN K18X AT R
3535 ...JMESSTIME   
353W ...MESSTIME       -1                   [NOT YET THRO STOREDME  
355D ...)   
3572    #   
35LL    #     MESSAGES: 
366=    #   
36KW    XMESS2         +49  
375G                   49H    VERSIONS OF GEORGE & EXECUTIVE INCOMPATIBLE^* 
37K6    XMESS3         +15  
384Q                   15HUNIT     FAIL^*   
38JB    XMESS4         +14  
3942                   14HUNIT     FIX^*
39HL    XMESS1         +27  
3=3=                   27H    GEORGE BSTYPE UNKNOWN^*   
3=GW    #SKI  G4
3?2G    (   
3?G6    JLXMESS5
3?^Q    XMESS5         +47  
3#FB                   47H    GEORGE FIXED CORE TOO LARGE FOR THIS EXEC^*   
3#^2    )   
3*DL    XMESS6         +48  
3*Y=                   48H    TRANSFER FAILURE ON LOADING; PLEASE RELOAD^*  
3BCW    XMESS7         +21  
3BXG                   21H    BAD COMPILATION^* 
3CC6    XMESS8         35,20H^*PLEASE LOAD GEORGE   
3DBB                   4H 3 E   
3FT=                   11HXECUTIVE!^*   
3G54 ...XMESS9         28,28H^*PLEASE TAKE PM OR RELOAD^*   
3G8^ ...XMESS10           40,40H**           ERRORS IN THIS GEORGE  **^*
3G#W    #   
3GSG    #   
3H#6    K2LOADERI   
3HRQ    START   
3J?B    #   
3JR2    #     DETERMINE LOADER'S DATUM & PLACE IN X2 & G3DOL.   
3K=L    #   
3KL* ...       BVSR      XSTRT               [UNSET V   
3L24 ...XSTRT  CALL  2  £   
3L*R ...      SBN   2  START+2  
3LPG          STO   2  G3DOL
3LR9 ...      LDX   1   BK18X   
3LSY ...      BNZ   1   XOK 
3LWM ...      LDX   1   XK18(2) 
3LYB ...      STO   1   BK18X   
3M25 ...#  ADD IN CORE ADDRESS OF LOADER
3M3S ...XOK   ADS   1   JLFSDCOPY+1(2)  
3M5H ...      ADS   1   OPMESS(2)   
3M7= ...      ADS   1   POSMESS(2)  
3M96    #   
3MNQ    #     SET UP ENTRY TO LOADER POST-MORTEM
3N8B    #   
3ND8 ...      ADS   1   PMENTRY(2)  
3NN2          LDX   1  PMENTRY(2)   
3P7L          STO   1  GEN1 
3PM=          LDX   1  PMBRN(2) 
3Q6W          STO   1  K0   
3QLG    #   
3R66    #     GET POINTER TO DL OF OPS CONSOLE: 
3RKQ    #   
3S5B          FINDPEREC 1,APFOTY,TYPOPCON(2),NEXTCON
3SK2          BNG   1  NOCON               [NOT AVAILABLE   
3T4L          JWRONG   1,NEXTCON
3TJ=          STO   1  OPCONDL(2)          [STORE POINTER   
3W3W    #   
3WHG    #     CHECK THAT THE CORRECT (G3 OR G4) EXECUTIVE IS LOADED 
3X36    #   
3X#G ...      LDX   1   CPEXECINFO  
3XKW ...      ANDN  1   7   
3XX= ...      SBN   1   3   
3Y8L ...      BZE   1   XEXECOK 
3YG2          LDN   1  XMESS8(2)
3Y^L          CALL  0  JLOUTCON            [REQUEST THE CORRECT EXECUTIVE   
3^F=    XSTOP BRN      XSTOP               [AND LOOP STOP   
3^YW    #   
42DG    XEXECOK 
4=Q6    #   
4?9Q    #     CHECK THAT EXEC IS CORRECT VINTAGE:   
4?PB    #   
4#92    JLEXECN 
4#NL          LDN   1  84   
4*8=          TXU   1  BLEXEC(2)           [FROM GELL   
4*MW          BCS      WREXEC              [POOR VINTAGE
4B7G    #   
4BM6    #     GET POINTER TO DL FOR G'S BS  
4C6Q    #   
4CLB          LDX   1  BLCCPTR  
4D62          STO   1  QGBSDL(2)
4DKL    #     NOW GET DEVICE TYPE   
4F5=          LTYPE    1,1  
4FJW          BZE   1  QUNKN               [DEVICE TYPE=0 DL PTR CORRUPT?   
4G4G          STO   1  BLTYPE(2)           [REAL DEVICE TYPE FOR LOADERII   
4GJ6          LDN   0  TABEND-TYPTAB       [LENGTH OF TYPE TABLE
4H3Q          LDX   3  2
4HHB    QTSCH TXU   1  TYPTAB(3)           [THIS TYPE?  
4J32          BCC      QTFND               [YES 
4JGL          ADN   3  1                   [POINT TO NEXT TYPE  
4K2=          BCT   0  QTSCH               [NOT END OF TABLE YET
4KFW    QUNKN LDN   1  XMESS1(2)           [TYPE UNKNOWN
4K^G          BRN      REGELL   
4LF6    QTFND STO   3  TYPECODE(2)         [=POSN. IN TABLE + X2
4LYQ          SBX   3  2                   [X3 NOW CONTAINS DEVICE CODE 
4MDB          BNZ   3  QNOTFDS  
4MY2    #   
4NCL    #     GEORGE IS TO GO ON FDS - DETERMINE 2A OR 2B.  
4NX=    #   
4PBW          LPROP    QGBSDL(2),4         [PUTS SUBTYPE IN B17-18 OF X4
4PWG          SRL   4  6
4QB6          ANDN  4  1                   [X4=1 IF 2B; 0 IF 2A 
4QTQ          ADS   4  TYPECODE(2)  
4R*B          ADX   3  4
4RT2    QNOTFDS 
4S#L          STO   3  GBSTYPE(2)          [STORE DEVICE CODE   
4SS=    #   
4T?W    #     DEVICE CODE: 0 -> 2A FDS     1 -> 2B FDS  
4TRG    #      IN GBSTYPE: 2 -> EDS        3 -> EMDS
4W?6    #                  4 -> HSD        5 -> SLOW DRUM   
4WQQ    #   
4X=B          STO   3  TYPE(2)             [SAVE GEORGE DEVICE TYPE 
4XQ2    #   
4Y9L    #     THE FOLLOWING WORD IS NULLED OUT BY "FSLOAD COPY", "GR" AND "SAME"
4YP=    #     AND IS RE-INSTATED BY "FSLOAD OFF".    NOTE THAT THE DEFAULT IS "O
4^8W    #   
4^NG    K1FSLOADER  
5286          BRN      XK2FSLOADER  
52MQ          LDN   6  JDFIXED(2)          [SAVE FIXED CORE'S D-ADDRESS 
537B          LDN   7  JLFSVCOPY(2)        [AND ITS LENGTH AND CORE DATUM   
53M2          MOVE  6  3
546L          LDN   6  JLFSDCOPY(2)        [AND REPLACE THEM WITH   
54L=          LDN   7  JDFIXED(2)          [DETAILS OF THE FSLOAD OVERLAY   
555W          MOVE  6  3
55KG          CALL  7  READOWN             [READ DOWN "LOADERFS" AND "LOADERFT" 
5656          CALL  7  £                   [SET THE RETURN LINK ADDRESS IN X7   
56JQ          ADN   7  3                   [FROM LOADERFS BACK TO LOADERI   
574B          LDX   6  JLFSDCOPY+1(2)      ["FSLOAD" OVERLAY ENTRY ADDRESS  
57J2          EXIT  6  0                   [GO ACROSS TO K1LOADERFS 
583L          LDX   2  G3DOL               [RESTORE OUR DATUM   
58H=          STO   6  JLGENRESFLG(2)      [REMEMBER WHETHER GENERAL RESTORE NEE
592W          LDN   6  JLFSVCOPY(2)        [RESTORE FIXED CORE'S D-ADDRESS, 
59GG          LDN   7  JDFIXED(2)          [LENGTH AND CORE DATUM   
5=26          MOVE  6  3
5=FQ    K2FSLOADER  
5=^B    XK2FSLOADER 
5?F2          LDX   0  JLFIXED(2)          [UPDATE JLVAR IF NECESSARY   
5?YL          ADX   0  JLVAR(2)            [SO THAT THE TOTAL LENGTH OF 
5#D=          ADX   0  JCFIXED(2)          [FIXED CORE (FROM WORD 0) IS AT  
5#XW          TXL   0  JLPMSIZE(2)         [LEAST JLPMSIZE WORDS  :  NEEDED 
5*CG          BCC      QOK                 [TO ALLOW GEORGE PM SUFFICIENT   
5*X6          LDX   0  JLPMSIZE(2)         [WORKING SPACE   
5BBQ          SBX   0  JLFIXED(2)   
5BWB          SBX   0  JCFIXED(2)   
5CB2          STO   0  JLVAR(2) 
5CTL    QOK   LDX   0  JCVAR(2)            [CORE ADDRESS OF "FIXED" FIXED   
5D*=          ADX   0  JLVAR(2)            [+ LENGTH OF "VARIABLE" FIXED
5DSW          STO   0  ENDFIX              [= END OF FIXED IN CORE  
5F#G          CALL  7  READFIX             [READ DOWN "FIXED" FIXED 
5FS6          LDX   7  JDVAR(2)            [DRUM ADDRESS OF "VARIABLE" FIXED
5G?Q          STO   7  JDFIXED(2)   
5GRB          LDX   7  JCVAR(2)            [CORE ADDRESS OF "VARIABLE" FIXED
5H?2          STO   7  JCFIXED(2)   
5HQL          LDX   7  JLVAR(2)            [LENGTH OF "VARIABLE" FIXED  
5J==          STO   7  JLFIXED(2)   
5JPW          CALL  7  READFIX             [READ DOWN "VARIABLE" FIXED  
5K9G          BRN      TIDYUP              [AND TIDY UP 
5KP6    #   
5L8Q    #   
5LNB    #   
5LY8 ...READOWN 
5M82    READFIX 
5MML          STO   7  QLINK(2) 
5N7=          LDX   3  TYPE(2)  
5NLW          TXL   3  QFOUR(2) 
5P6G          BCS      QDISC               [LOAD TO DISC
5PL6          BRN      QDRUM               [LOAD TO DRUM
5Q5Q    #   
5QKB    #   
5R52    #   
5RJL    #   
5S4=    #     ***      LOADING FROM DRUM      ***   
5SHW    #   
5T3G    #   
5TH6    QDRUM LDX   4  GBSTYPE(2)          [GET DRUM TYPE   
5W2Q          SBN   4  5
5WGB          LDX   5  BLDRUM(2)           [GET D/L WD FROM DIRECTORY ENTRY 
5X22          LDX   6  JDFIXED(2)          [GET F/C DRUM DATUM  
5XFL          BZE   4  SDRUM               [SLOW DRUM   
5X^=    # DEALING WITH HSD: 
5YDW          SRL   6  7                   [CONVERT DATUM TO BLOCKS (F/C)   
5YYG          SRL   5  12                  [EXTRACT G FILE DATUM FROM   
5^D6                                       [DIRECTORY ENTRY 
5^XQ          BRN      Q01  
62CB    # DEALING WITH SLOW DRUM:   
62X2    SDRUM SRL   5  10                  [EXTRACT G FILE DATUM FROM   
63BL          ANDN  5  #3777               [DIRECTORY ENTRY 
63W=          SLL   5  10                  [BACK TO WDS 
64*W    # SET UP CONTROL AREA IN DEVICE LIST
64TG    Q01   ADX   5  6                   [ABS DRUM ADDR OF F/C
65*6          LDX   3  QGBSDL(2)           [GET DEVICE LIST POINTER 
65SQ          DCA      3,STO,5,DTSA        [STORE TRANSFER ADDR 
66#B          LDX   5  JLFIXED(2)   
66S2          DCA      3,STO,5,COUNT       [STORE COUNT 
67?L          LDX   5  JCFIXED(2)   
67R=          DCA      3,STO,5,CTSA        [STORE CORE ADDRESS  
68=W          LDN   5  0
68QG          DCA      3,STO,5,MODE        [STORE MODE  
69=6          CALL  7  TRANSFER            [READ DOWN FIXED CORE
69PQ          BRN      WHATSLEFT           [WIND UP 
6=9B    #   
6=P2    #   
6?8L    #     ***      LOADING FROM DISC      ***   
6?N=    #   
6#7W    #   
6#MG    QDISC   
6*76          SMO      TYPECODE(2)         [GET REAL
6*LQ          LDX   5  SUBTYPES            [DEVICE SUBTYPE  
6B6B          STO   5  BLSUB(2)            [FOR LOADERII
6BL2          LDX   5  BLFAC+1(2)   
6C5L          ANDX  5  MASKA(2)            [START BLOCK ADDRESS OF FILE 
6CK=          DVS   4  BLFAC+4(2)          [/BLKSPERCYL 
6D4W          STO   4  BLDATUM+1(2)        [STORE REL BLKNO (REL.SU)
6DJG          STO   5  BLDATUM(2)          [      REL CYLNO 
6F46          LDX   0  BLSTART(2)          [GET START CYLNO OF SU   
6FHQ          ADS   0  BLDATUM(2)          [ADD TO START CYL OF G FILE  
6G3B          SBN   4  1
6GH2          SBN   5  1
6H2L          NGS   4  BLDATUM+3(2)        [STO 1-REL.BLKNO 
6HG=          NGS   5  BLDATUM+2(2)        [STO 1-REL.CYLNO 
6H^W          LDX   5  BLFAC+2(2)          [LAST BLKNO. + 1...  
6JFG          ANDX  5  MASKA(2)            [... FROM FAC
6J^6          SBN   5  1                   [LAST BLKNO  
6KDQ          DVS   4  BLFAC+4(2)          [/BLKSPERCYL 
6KYB          ADS   5  BLDATUM+2(2)        [NO OF CYLS TO FILE  
6LD2          ADS   4  BLDATUM+3(2)        [DEPTH OF FILE   
6LXL          LDX   6  JDFIXED(2)          [DRUM ADDRESS OF F/C 
6MC=          SRL   6  7                   [/128 TO GIVE BLKNO OF START OF F/C  
6MWW                                       [RELATIVE TO START OF GEORGE FILE
6NBG          DVS   5  BLDATUM+3(2)        [/DEPTH OF FILE  
6NW6          SBX   5  BLDATUM+3(2)        [ - DEPTH OF FILE GIVES...   
6P*Q          NGX   6  5                   [NO OF BLKS IN FIRST CYL OCCUPZED
6PTB          SLL   6  7                   [BY FIXED CORE, TO WORDS.
6Q*2          LDX   0  JCFIXED(2)           [MOVE ...   
6QSL          DCA      QGBSDL(2),STO,0,CTSA [DRUM F/C DATUM TO DEVICELIST   
6R#=          LDX   0  JDFIXED(2)          [GET CORE DATUM...   
6RRW          STO   0  R5(2)               [FOR FUTURE USE  
6S?G          LDX   0  JLFIXED(2)          [LENGTH OF F/C IS INITIAL VALUE  
6SR6          STO   0  R6(2)               [OF 'WDS STILL TO BE READ DOWN'  
6T=Q    S4    TXL   6  R6(2)
6TQB          BCC      S3                  [ONLY 1 MORE TRANSFER LEFT   
6W=2          DCA      QGBSDL(2),STO,6,COUNT [WORD COUNT FOR NEXT TRANSFER  
6WPL          SBS   6  R6(2)               [WDS STILL TO BE READ DOWN   
6X9=    S5    LDX   4  R5(2)               [COMING  TRANSFER ADDRESS
6XNW          ADS   6  R5(2)               [NEXT TRANSFER ADDRESS   
6Y8G          STO   6  X6(2)               [SAVE WHILE CALLING  
6YN6          CALL  7  XCONV               [CONVERT COMING TO HA FORMAT 
6^7Q          DCA      QGBSDL(2),STO,3,DTSA [BS ADDRESS IN DEVICE LIST  
6^MB          LDN   7  0
7272          DCA      QGBSDL(2),STO,7,MODE 
72LL          LDX   3  QGBSDL(2)
736=          CALL  7  TRANSFER            [PERFORM TRANSFER
73KW          LDX   0  R6(2)
745G          BZE   0  WHATSLEFT           [ALL IN  
74K6          LDX   6  X6(2)
754Q          DCA      QGBSDL(2),ADS,6,CTSA [INCREMENT CORE TRANSFER ADDRESS
75JB          LDX   6  BLDATUM+3(2)        [BLK DEPTH OF FILE   
7642          SLL   6  7                   [WORD DEPTH OF FILE  
76HL          BRN      S4                  [MORE TO DO  
773=    S3    LDX   0  R6(2)               [REMAIDER TO BE TRANSFERRED  
77GW          DCA      QGBSDL(2),STO,0,COUNT [PUT IN PCA IN DL  
782G          STOZ     R6(2)               [CLEAR WD COUNT  
78G6          BRN      S5                  [GO FOR LAST TRANSFER
78^Q    #   
79FB    #   
79^2    #     CONVERSION ROUTINES   
7=DL    #   
7=Y=    #           8-8-8 FORMAT EXPECTED IN X4; HANDED BACK IN X3  
7?CW    #                                        IN HARDWARE FORMAT.
7?XG    #   
7#C6    XCONV   
7#WQ    #   
7*BB    #     CHECK THAT THIS IS A DISC COMPILATION, I.E. D-ADRESS  
7*W2    #     OF FIXED CORE IS A MULTIPLE OF 128.   
7B*L          LDX   3  4
7BT=          SRL   34 7
7C#W          SRL   4  17   
7CSG          BZE   4  XCONV1   
7D#6          LDN   1  XMESS7(2)
7DRQ          BRN      REGELL              [DRUM COMPILATION
7F?B    XCONV1  
7FR2          LDX   4  3
7G=L          DVS   3  BLDATUM+3(2)        [/BLKSPERCYL 
7GQ=          ADX   3  BLDATUM+1(2) 
7H9W          ADX   4  BLDATUM(2)   
7HPG    XCONV2  
7J96          LDX   0  TYPECODE(2)  
7JNQ          EXIT  0  £
7K8B          BRN      XAFDS
7KN2          BRN      XBFDS
7L7L          BRN      XEDS 
7LM=    XEMDS   
7M6W    XAFDS SLL   3  12   
7MLG          SRC   34 12   
7N66          EXIT  7  0
7NKQ    XEDS
7NMN ...      JENVNOT  NOEMU,MEEP        [J IF NOT EMULATING
7NPL ...      LDX   5  3
7NRJ ...      MPA   4  BLFAC+4(2)          [CONVERT BACK TO BLOCKS  
7NTG ...      LDCT  3  #400 
7NXD ...      ADX   3  5
7N^B ...      EXIT  7  0
7P3# ...NOEMU   
7P5B          SLL   3  17   
7PK2          SLC   34 20   
7Q4L          SLL   3  2
7QJ=          SLL   34 4
7R3W          SLL   3  2
7RHG          SLL   34 4
7S36          SLL   3  3
7SGQ          SLL   34 3
7T2B          EXIT  7  0
7TG2    XBFDS   
7T^L          LDX   0  4
7WF=          LDX   4  3
7WYW          DVS   3  XSURF(2) 
7XDG          SLL   4  9
7XY6          DEX   3  4
7YCQ          LDX   3  0
7YXB          SLL   3  15   
7^C2          DLA   4  3
7^WL          EXIT  7  0
82B=    #   
82TW    #   
83*G    #   
83T6    #     ROUTINE TO PERFORM BS TRANSFERS   
84#Q    #              CALLED VIA X7
84SB    #              ON ENTRY X3 CONTAINS POINTER TO G'S BS DEVICE LIST   
85#2    #   
85RL    JLTRANSFER  
86?=    TRANSFER
86QW          JDISENG  3,TR4               [UNIT NOT ENGAGED
87=G    TR5   LDN   1  QGBSDL-CPPTR(2)     [POINT TO PSEUDO ACTIVITY BLK
87Q6          GPERI    3,1,NC              [INITIATE TRANSFER   
889Q    TR1   JBUSY    3,TR1               [WAIT FOR TERMINATION
88FJ ...      LDX   0  CPRW1(1) 
88PB ...      SLL   0  3
88^8 ...      BNG   0  TR2                 [TRANSFER FAILURE
8992          EXIT  7  0                   [OK, RETURN  
89NL    TR2   LDX   1  REPLYBS(2)          [GET REPLY WORD  
8=8=          SRL   1  18   
8=MW          BNZ   1  TR6                 [REAL FAIL   
8?7G    TR4   LDN   1  XMESS4(2)           [... ELSE, IF JUST INOP ...  
8?M6          CALL  6  UFIX                [OUTPUT FIX MESSAGE  
8#6Q    TR3   JDISENG  3,TR3               [AND WAIT FOR RE-ENGAGE  
8#LB          BRN      TR5                 [TRY AGAIN   
8*62    TR6   LDN   1  XMESS3(2)           [OUTPUT FAIL MESSAGE 
8*KL          CALL  6  UFAIL
8B5=          LDN   1  XMESS6(2)           [& 'PLEASE RELOAD' MESSAGE   
8BJW          BRN      REGELL              [OUTPUT MESSAGE & GELL   
8C4G    #   
8CJ6    #     ROUTINE TO OUTPUT FIX/FAIL MESSAGE
8D3Q    #              CALLED VIA X6, USES X4 X5; X1 POINTS TO MESSAGE  
8DHB    #              X3 CONTAINS BS DEVICE LIST POINTER   
8F32    #   
8FGL    JLUFIX  
8G2=    UFIX
8GFW    UFAIL LGEOG    3,5  
8G^G          STO   1  X1(2)
8HF6 ...      ADN   1  3
8HYQ    U1    SLC   1  2
8JDB          SBN   1  1
8JY2          SRC   1  2
8KCL          LDN   4  10   
8KX=          DVS   4  4
8LBW          DCH   4  0(1) 
8LWG          BNZ   5  U1   
8MB6          LDX   1  X1(2)
8MTQ          CALL  0  OUTCON   
8N*B          EXIT  6  0
8NT2    #   
8P#L    #     CONSOLE OUTPUT ROUTINE
8PS=    #              CALLED VIA X0 ; X1 POINTS TO MESSAGE 
8Q?W    #   
8QRG    JLOUTCON
8R?6    OUTCON  
8RQQ          STO   0  SUBLINK(2)   
8RT* ...#UNS  G3<ENHOPER
8RXY ...(   
8S2H ...      JENVNOT  OUT3,DME            [FUSSY MANAGERS  
8S56 ...      CALL  0  STOREDME            [COPY MESSAGE
8S7P ...)   
8S=B    OUT3  LDX   2  OPCONDL(2)          [POINTER TO CONSOLE DEVICE LIST  
8SQ2          LDX   4  0(1)                [GET COUNT   
8T9L          DCA      2,STO,4,COUNT       [STORE IT
8TP=          LDN   4  1(1) 
8W8W          DCA      2,STO,4,CTSA        [CORE TRANSFER ADDRESS   
8WNG          LDN   4  1
8X86          DCA      2,STO,4,MODE        [SET MODE
8XMQ          SMO      G3DOL
8Y7B          LDN   1  OPCONDL-CPPTR       [GET POINTER TO PSEUDO-ACT BLK   
8YM2    OUT2  GPERI    2,1,NC              [OUTPUT MESSAGE  
8^6L    OUT1  JBUSY    2,OUT1              [WAIT FOR TERMINATION
8^L=          SMO      G3DOL
925W          LDX   4  REPLYCON            [GET REPLY WORD  
92KG          SRL   4  18                  [ERRORS? 
9356          BNZ   4  OUT2                [YES, TRY AGAIN  
93JQ          LDX   2  G3DOL               [RESTORE DATUM   
944B          LDX   0  SUBLINK(2)   
94J2          EXIT  0  0
953L    #   
95H=    #   
95HJ ...#UNS  G3<ENHOPER
95HW ...(   
95J8 ...#   
95JG ...#     ROUTINE TO STORE CONSOLE INPUT & OUTPUT   
95JS ...#     MESSAGES FOR DME  
95K6 ...#              CALLED VIA X0 ; X1 POINTS TO MESSAGE 
95KD ...#   
95KQ ...STOREDME
95L4 ...      LDX   4  0(1)                [COUNT IN CHARS  
95LB ...      BZE   4  SDM9                [NO MESSAGE  
95LN ...      ADN   4  7                   [ROUND UP & MAKE INCLUSIVE   
95M2 ...      SRL   4  2                   [FOR WORD COUNT  
95M# ...      LDX   5  MESSTIME(2)  
95ML ...      BZE   5  SDM3                [NOT A VIRGIN ROUTINE
95MY ...      STOZ     MESSTIME(2)         [LOSE IT 
95N= ...      LDX   2  OPMESS(2)
95NJ ...      LDX   2  0(2)                [LOOK AT K42 AREA
95NW ...      BNZ   2  SDM1                [CAME VIA L/A
95P8 ...      LDX   2  G3DOL
95PG ...      LDX   5  POSMESS(2)          [BUFFER ADDRESS  
95PS ...      SMO      OPMESS(2)
95Q6 ...      STO   5  0                   [NEEDED FOR JOURNAL  
95QD ...      LDX   2  5
95QQ ...      BRN      SDM4 
95R4 ...SDM2  ADX   2  5                   [MOVE UP BUFFER  
95RB ...SDM1  LDX   5  0(2)                [VALUE OF COUNT  
95RN ...      BNZ   5  SDM2                [MORE MESSAGES THERE 
95S2 ...      SMO      G3DOL
95S# ...      STO   2  POSMESS             [UPDATE BUFFER POINTER   
95SL ...      BRN      SDM4 
95SY ...SDM3  LDX   2  POSMESS(2)   
95T= ...SDM4  STO   4  0(2)                [STORE WORD COUNT
95TJ ...      LDX   5  2
95TW ...      ADN   5  1                   [START OF MESSAGE
95W8 ...      LDN   4  1(1) 
95WG ...      SMO      0(2) 
95WS ...      MOVE  4  0                   [FILL IN BUFFER  
95X6 ...      ADX   2  0(2)                [MOVE UP BUFFER  
95XD ...      STOZ     0(2) 
95XQ ...      SMO      G3DOL
95Y4 ...      STO   2  POSMESS  
95YB ...      LDX   2  G3DOL
95YN ...SDM9  EXIT  0  0
95^2 ...)   
95^# ...#   
95^L ...#   
962W    WHATSLEFT                          [AFTER EACH REDFIX CALL  
96GG          LDX   7  QLINK(2) 
9726          EXIT  7  0
97FQ    #   
97^B    #   
98F2    TIDYUP                             [FINISHING TOUCHES   
98FM ...      LDX   5   ERRS
98G# ...      BZE   5   NERRS   
98G^ ...      LDN   3   XMESS10+2(2)
98HL ...      STO   2   FX1 
98J? ...      LDX   7   5                     [ MODDED VERSION OF XCBINDEX FOR L
98JY ...      SMO      FX1  
98KK ...      MPY   7   XMNO
98L= ...      MODE     1
98LX ...     LDX   6   ACES 
98MJ ...      DCH   6   0(3)
98N9 ...      BCHX  3   £   
98NW ...      LDN   6   6   
98PH ...XMD   CBD   7   0(3)
98Q8 ...      BCHX  3   £   
98QT ...      BCT   6   XMD 
98RG ...      MODE    0 
98S7 ...      CBD   7   0(3)
98SS ...      BCHX   3   £  
98TF ...      STOZ      FX1 
98W6 ...      LDN   1   XMESS10(2)  
98WR ...      CALL   0   JLOUTCON   
98XD ...NERRS   
98YL          LINT     OPCONDL(2),0 
99D=          STO   0  OPCONDL(2)   
99XW          LDX   7  PMENTRY(2)          [RESET ENTRY TO LOADER PM IN CASE
9=CG          STO   7  GEN1                [FIXED IS CORRUPT ON BS  
9=JN ...      LDX   7  XECPOINTER(2)       [SET UP POINTER TO FDATE AND FTIME   
9=PW ...      STO   7  JED                 [FOR USE BY EXECUTIVE (1906 ONLY)
9=Q# ...#   
9=QQ ...#UNS  G3<ELOGDME
9=R8 ...(   
9=RL ...#     INSERT PIA SIZE FOR DME   
9=S4 ...#   
9=SG ...      JENVNOT  XK81,DME 
9=SY ...      LDX   0  PIASIZE(2)          [K81X
9=TB ...      STO   0  ELPIALEN            [FIXED CORE WORD 
9=TS ...XK81
9=W= ...)   
9=WN ...#   
9=X6          BRN      K1LOADERII   
9?BQ    #   
9?WB    #   
9#B2    #   
9#TL    WREXEC  
9**=          LDN   1  XMESS2(2)           [INCOMPATIBLE MESSAGE
9*SW    #   
9B#G ...# OUTPUT FAILED MESSAGE TO OPS CONSOLE AND LOOP STOP
9BS6    #   
9C?Q    GOGELL  
9CRB    REGELL  
9D?2          CALL  0  OUTCON   
9DBX ...      LDN   1  XMESS9(2)           [PRINT "TAKE PM OR RELOAD"   
9DGS ...      CALL  0  OUTCON   
9DLP ...STOP  BRN      STOP                [AND LOOP STOP   
9DQL    NOCON   
9F==          GEOERR   1,GEO LOAD   
9FPW    #   
9G9G    #   
9GP6    #END
^^^^ ...372735560001
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1