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