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