6 23DW #SKI AGONY 7 23YG #BASE MTLOADER 0 4 24XQ # 15 25CB ...#SEG LOADERMT86 [M. DRUKKER 18 25F_ ...# ######################################################## 4 25JJ ...# 16 25M7 ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 25PQ ...# 18 25S* ...# ######################################################### 12 25X2 #LIS K0LOADERMT>K0LOADER>K0ALLGEO 4 26BL # 4 26W= # 17 27*W # BASICALLY THE MT LOADER/ALLOCATOR CONSISTS OF A 13 27TG # COMMAND-EXECUTE-COMMAND LOOP. 4 28*6 # 14 28SQ # FACILITIES ARE AVAILABLE FOR: 4 29#B # 21 29S2 # 1 ALLOCATING FILES ON EDS, EDS30, FDS, HSD & SLOW DRUM. 16 2=?L # 2 DELETING FILES ON HSD OR SLOW DRUM. 17 2=R= # 3 CLEARING DRUM SYSTEMS OF EITHER TYPE. 18 2?=W # 4 DESCRIBING FILESTORE RESIDENCES, GIVING THE 18 2?QG # SAME EFFECT AS THE FSFILE GIN MACRO. 18 2#=6 # 5 ACCEPTING INPUT COMMANDS FROM T/R & C/R AS 13 2#PQ # WELL AS CONSOLE. 17 2*9B # 6 LOADING GEORGE FROM MT TO ANY BS FILE. 4 2*P2 # 17 2B8L # WHEN A COMMAND IS ISSUED TO PERFORM NO.6 THE 18 2BN= # LOADER/ALLOCATOR TRANSFERS GEORGE FROM THE MT 18 2C7W # FROM WHICH WE CAME TO THE NAMED BS FILE, BRINGS 19 2CMG # DOWN THE NORMAL LOADER & THEN LEAVING CORE LOOKING 16 2D76 # AS IF GELL HAD LOADED LOADER, ENTERS IT 4 2DLQ # 4 2FL2 # 12 2G5L # *** DATA AREAS *** 4 2GK= # 12 2H4W ...XCOPRICL 20H (C) COPR ICL 1982 8 2J46 TYPCON #77 8 2JHQ SPACES 4H 4 2K3B # 10 2KH2 # CONTROL AREAS FOR MT 4 2L2L # 9 2LG= MTBSP +3,+0,+0 9 2L_W MTREV +6,+0,+0 4 2MFG # 5 2M_6 JLTRAP 15 2NDQ TRAPFAIL +0 [-VE -> TRAPS 5 2NYB JLFAIL 18 2PD2 MTFAILMK -1 [ZEROISED ON TAPE FAIL 19 2PXL SLOWIN +0 [=1 IF SLOW INPUT, C/R OR T/R 8 2QC= SUBLINK +0 15 2QWW XGNUMLK +0 [FOR JLGETNUM 17 2RBG JLGOTIT +0 [RESULT FROM JLGETNUM 15 2RW6 PTSMO +0 [FOR JLPOINT 10 2S*Q RFIF +FSTABLEN*5 18 2STB THISRES +0 [RES.NO. OF LAST/THIS FS 16 2T*2 MENT #73030002 [ENTRY BLOCK TYPE 15 2TSL MASKA #37777777 [USEFUL MASK 8 2W#= THREE +3 8 2WRW OCT8 +8 8 2X?G OCT13 +13 5 2XR6 COMMA 8 2Y=Q OCTCO #34 5 2YQB JLOCT 13 2_=2 OCTHDC #504434 [#HD, 14 2_PL OCTDIFF #36200 [#HD,-DR, 8 329= TEN +10 8 32NW SMODE +0 15 338G XGGX3 +0 [FOR JLGEOG 7 33#C ...#UNS G3 LAST CHAR IN MESSAGE BUFFER 8 5H?2 TR12 LDCH 7 0(1) 8 5HQL SBN 7 #20 18 5J== BNZ 7 TR11 [LAST COMMAND CHAR FOUND 7 5JPW SLC 1 2 7 5K9G SBN 1 1 18 5KP6 SRC 1 2 [ELSE STEP BACK A CHAR 16 5L8Q BRN TR12 [AND LOOK AT NEXT 9 5LNB TR11 SBN 1 JLMESS(2) 7 5M82 SLC 1 2 7 5MML ADN 1 1 8 5N7= BZE 1 TR15 20 5NLW BNG 1 TR15 [EMPTY LINE SO JUST LINE THROW 10 5P6G STO 1 JLSMESS(2) 10 5PL6 LDN 1 JLSMESS(2) 16 5Q5Q CALL 6 JLOUT [ECHO ON CONSOLE 4 5QKB # 15 5R52 TR18 LDX 0 SUBLINK(2) [RELOAD LINK 7 5RJL EXIT 0 0 4 5S4= # 8 5SHW # CONSOLE INPUT 4 5T3G # 16 5TH6 TR10 LDX 0 JLPSINP+1(2) [GET REPLY WORD 15 5W2Q SLC 0 4 [LOOK AT B4 17 5WGB BNG 0 TR20 [CANCEL OR TOO L.NG 7 5X22 #SKI AGONY7<1$1 15 5XFL BRN TRD3 [UNTIL MK7 12 5X_= # HANDLE ANY DELETE CHARACTERS 8 5YDW # BY SHUNTING. 20 5YYG LDN 3 102 [TOENSURE SPACES AT END OF LINE 18 5_D6 LDN 1 JLMESS(2) [FIRST CHAR OF MESSAGE 8 5_XQ LDCT 7 #600 10 62CB LDN 2 JLMESS-1(2) 18 62X2 ORX 2 7 [CHAR PRECEDING MESSAGE 8 63BL SMO G3DOL 9 63W= LDN 7 JLMESS 8 64*W TRD1 LDCH 0 0(1) 8 64TG SBN 0 #77 15 65*6 BZE 0 TRD2 [DELETE FOUND 17 65SQ BCHX 1 / [STEP ON LEADING PTR 17 66#B BCHX 2 / [STEP ON TRAILING PTR 15 66S2 BCT 3 TRD1 [MORE TO DO 14 67?L BRN TRD3 [FINISHED 19 67R= TRD2 TXU 7 1 [STILL AT BEGINNING OF LINE? 13 68=W BCS TRD4 [NO 16 68QG MVCH 1 0(3) [YES, JUST SHUNT 15 69=6 BCT 3 TRD1 [MORE TO DO 14 69PQ BRN TRD3 [FINISHED 18 6=9B TRD4 BCHX 1 / [STEP ON LEADING POINTER 16 6=P2 MVCH 1 0(3) [EXECUTE DELETE 17 6?8L SLC 1 2 [STEP BACK TRAILER 18 6?N= SLC 2 2 [STEP BACK LEADER BY 2 7 6#7W SBN 1 2 7 6#MG SBN 2 1 7 6*76 SRC 1 2 7 6*LQ SRC 2 2 15 6B6B BCT 3 TRD1 [MORE TO DO 15 6BL2 TRD3 [FINISHED. 8 6C5L TR19 LDX 2 G3DOL 7 6C7* ...#UNS G3MESSAGE. 5 6MWW JLOUT 4 6N9? ...OUT 7 6NHN ...#UNS G3 PAB 17 6S?G OUT1 GPERI 3,1,NC [INITIATE TRANSFER 17 6SR6 OUT2 JBUSY 3,OUT2 [WAIT FOR TERMINATION 16 6T=Q LDX 4 JLPSOUT+1(2) [GET REPLY WD. 8 6TQB SRL 4 18 17 6W=2 BNZ 4 OUT1 [ERRORS, TRY AGAIN 7 6WPL EXIT 6 0 4 6WR? ...# 7 6WSY ...#UNS G3NEXT PARAM. LEAVES 20 6_MB # X1->NEXT PARAMETER IF ANY. EXIT 2 IF OK. EXIT 1 IF NO 14 7272 # PARAM. EXIT 0 IF INVALID PARAM. 4 72LL # 5 736= JLGETNUM 8 73KW LDCH 7 0(1) 8 745G SBN 7 #20 16 74K6 BNZ 7 NG5 [SOMETHING THERE 14 754Q EXIT 0 1 [NO PARAM 10 75JB NG5 STO 0 XGNUMLK(2) 7 7642 LDN 7 0 7 76HL LDN 0 0 8 773= NG2 CDB 7 0(1) 8 77GW BCS NG1 7 782G BCHX 1 / 8 78G6 BRN NG2 8 78_Q NG1 BNZ 7 NG3 8 79FB BNG 0 NG3 8 79_2 LDCH 7 0(1) 9 7=DL TXU 7 OCTCO(2) 15 7=Y= BCC NG4 [COMMA TERMIN 8 7?CW SBN 7 #20 15 7?XG BZE 7 NG4 [SPACE TERMIN 10 7#C6 NG3 LDX 0 XGNUMLK(2) 13 7#WQ EXIT 0 0 [BAD 7 7*BB NG4 BCHX 1 / 10 7*W2 STO 0 JLGOTIT(2) 13 7B*L LDX 0 XGNUMLK(2) [GOOD 7 7BT= EXIT 0 2 4 7C#W # 4 7CSG # 17 7D#6 # S/R TO POINT TO 1ST USEFUL CHAR IN COMMAND VIA X1 12 7DRQ # CALLED VIA X0, USES X4 4 7F?B # 5 7FR2 JLPOINTN 7 7G=L NGNC 4 1 5 7GQ= JLPOINT 7 7H9W LDN 4 0 9 7HPG STO 4 PTSMO(2) 9 7J96 LDN 1 JLMESS(2) 8 7JNQ PNT2 LDCH 4 0(1) 8 7K8B SBN 4 #20 8 7KN2 BZE 4 PNT1 7 7L7L BCHX 1 / 8 7LM= BRN PNT2 7 7M6W PNT1 BCHX 1 / 8 7MLG LDCH 4 0(1) 8 7N66 SBN 4 #20 8 7NKQ BZE 4 PNT1 8 7P5B LDN 4 0(1) 10 7PK2 SBNC 4 JLMESS+20(2) 9 7Q4L LDX 4 PTSMO(2) 7 7QJ= SMO 4 7 7R3W BRN / 18 7RHG BRN JLWRC [NO PARAMS & MANDATORY 21 7S36 EXIT 0 0 [NO PARAMS & OPTNL OR PARAMS & MANDTY 17 7SGQ EXIT 0 1 [PARAMS & OPTIONAL 4 7T2B # 4 7TG2 # 19 7T_L # S/R TO EXTRACT FILENAME FROM COMMAND & PUT IT IN FINAME 13 7WF= # CALLED VIA X0, USES X3 X4 17 7WYW # EXPECTS X1 -> 1ST CHAR & NO TERMINATOR 4 7XDG # 5 7XY6 JLFNAME 16 7YCQ CALL 6 NALPHA [CHECK FORST CHAR 7 7YXB LDX 3 1 9 7_C2 LDN 4 FINAME(2) 8 7_WL MVCH 3 12 16 82B= LDCH 6 0(3) [CHECK 13TH CHAR 8 82TW SBN 6 #20 17 83*G BNZ 6 NAMELONG [FILENAME TOO LONG 7 83T6 EXIT 0 0 4 84#Q # 5 84SB NALPHA 19 85#2 LDCH 4 0(1) [TEST FIRST CHAR ALPHABETIC 13 85RL SBN 4 #41 [?-A 13 86?= BNG 4 NAMEBAD [?Z 7 889Q EXIT 6 0 4 88PB # 5 8992 JLNBAD 5 89NL NAMEBAD 5 8=8= NAMELONG 10 8=MW LDN 1 NAMEBADM(2) 8 8?7G BRN JLER 4 8?M6 # 4 8#6Q # 19 8#LB # S/R TO EXTRACT FILENAME FROM COMMAND, PUTS IT IN FINAME 14 8*62 # CALLED VIA X0, USES X3 X4 X6 20 8*KL # EXPECTS X1 -> 1ST CHAR, & NAME TERMINATED BY COMMA. 5 8B5= JLFNAMEC 17 8BJW CALL 6 NALPHA [CHECK 1ST CHAR ALPHA 9 8C4G LDN 3 FINAME(2) 16 8CJ6 LDN 6 13 [MAX CHARS = 12 16 8D3Q XZ02 LDCH 4 0(1) [GET NEXT CHAR 14 8DHB TXU 4 OCTCO(2) [COMMA? 13 8F32 BCC XZ01 [YES 17 8FGL DCH 4 0(3) [STORE CHAR IN TABLE 17 8G2= BCHX 1 / [POINT TO NEXT CHAR 17 8GFW BCHX 3 / [ ^ ^ ^ HOLE 16 8G_G BCT 6 XZ02 [TOO MANY CHARS? 13 8HF6 BRN NAMELONG [YES 16 8HYQ XZ01 TXU 6 OCT13(2) [1ST CHAR = , ? 18 8JDB BCC NAMEBAD [YES, 1ST PARAMETER NULL 16 8JY2 LDN 4 #20 [PUT SPACE IN X4 17 8KCL XZ04 BCT 6 XZ03 [START SPACEFILLING 7 8KX= EXIT 0 0 18 8LBW XZ03 DCH 4 0(3) [PUT SPACE IN NEXT HOLE 17 8LWG BCHX 3 / [POINT TO NEXT HOLE 16 8MB6 BRN XZ04 [GO FOR ANOTHER 4 8MTQ # 4 8N*B # 18 8NT2 # S/R TO TEST FOR HD OR DR AS 1ST PARAM IN DRUM COMMAND 13 8P#L # CALLED VIA X0, USES X4,X5,X6 12 8PS= # EXITS 0 IF DR, 1 IF HD 4 8Q?W # 5 8QRG JLHDDR 7 8R?6 LDN 5 0 7 8RQQ LDN 6 3 8 8S=B THD1 LDCH 4 0(1) 7 8SQ2 BCHX 1 / 7 8T9L SLL 5 6 7 8TP= ORX 5 4 8 8W8W BCT 6 THD1 9 8WNG SBX 5 OCTHDC(2) 8 8X86 LDN 4 #34 9 8XMQ ORS 4 OCTHDC(2) 8 8Y7B BZE 5 THD2 10 8YM2 ADX 5 OCTDIFF(2) 8 8_6L BNZ 5 JLWRC 7 8_L= EXIT 0 0 7 925W THD2 EXIT 0 1 4 92KG # 4 9356 # 15 93JQ # S/R TO PLACE GEOGNO IN FIX/FAIL MESSAGE 13 944B # CALLED VIA X0, USES X4 X5 16 94J2 # EXPECTS X3->DL FOR DEVICE, X1-> MESSAGE 4 953L # 5 95H= JLGEOG 9 962W STO 3 XGGX3(2) 8 96GG LGEOG 3,5 8 9726 LDN 4 10 7 97FQ DVS 4 4 7 97_B LDX 3 4 8 98F2 LDN 4 10 7 98YL DVS 4 4 8 99D= BNZ 5 XGG1 8 99XW LDN 5 #20 8 9=CG BNZ 4 XGG1 8 9=X6 LDN 4 #20 8 9?BQ XGG1 SLL 5 12 7 9?WB SLL 4 6 7 9#B2 ORX 5 3 8 9#TL LDCT 3 #200 7 9**= ORX 3 5 7 9*SW ORX 3 4 8 9B#G STO 3 3(1) 9 9BS6 LDX 3 XGGX3(2) 7 9C?Q EXIT 0 0 4 9CRB # 4 9D?2 # 4 9DQL # 4 9F== # 6 9FPW # * * 11 9G9G # ****** MAIN ENTRY POINT 6 9GP6 # * * 4 9H8Q # 18 9HNB K1LOADERMT [ENTRY POINT FROM GELL 14 9J82 BVSR / [UNSET V 18 9JML X CALL 2 / [FIND OUT WHERE YOU ARE 8 9K7= SBN 2 X+1 15 9KLW STO 2 G3DOL [FOR SAFETY 9 9KMC ... LDX 1 BK18X 8 9KMY ... BNZ 1 XOK 9 9KNF ... LDX 1 XK18(2) 9 9KP2 ... STO 1 BK18X 16 9KPH ...# SET UP POINTERS WITH K18X FOR START OF LOADER 9 9KQ4 ...XOK LDX 1 BK18X 10 9KQK ... ADS 1 PMENTRY(2) 10 9KR6 ... ADS 1 STARTCOMM(2) 10 9KRM ... ADS 1 POSMESS(2) 10 9KS8 ... ADS 1 AJLRTAB(2) 10 9KSP ... ADS 1 AJLRAT(2) 10 9KT= ... ADS 1 OPMESS(2) 10 9KTR ... LDX 1 AJLREST(2) 11 9KW# ... ADS 1 AJLBUFFX1K(2) 10 9KWT ... ADS 1 AJLTBUFF(2) 10 9KXB ... ADS 1 AJLLBUFF(2) 10 9KXX ... ADS 1 AJLMBUFF(2) 11 9KYD ... ADS 1 AJLZERBUFF(2) 18 9KY_ ... ADS 2 OSCA(2) [ DATUMISE SCA BUFFERS 10 9K_G ... ADS 2 OSCAFAC(2) 10 9L23 ... LDX 1 CPEXECINFO 8 9L2J ... ANDN 1 7 8 9L35 ... SBN 1 3 9 9L3L ... BZE 1 XECOK 10 9L47 ... LDN 1 WREXEC(2) 9 9L4N ... CALL 6 JLOUT 9 9L59 ...XSTOP BRN XSTOP 5 9L5Q ...XECOK 19 9L6G LDX 1 PMENTRY(2) [SET UP LOADER POST-MORTEM 15 9LL6 STO 1 GEN1 [ENTRY POINT 9 9M5Q LDX 1 PMBRN(2) 8 9MKB STO 1 K0 10 9N52 LDX 0 STARTCOMM(2) 9 9NJL LDN 1 GELLY(2) 17 9P4= MOVE 0 4 [SAVE DATA FROM GELL. 10 9P4C ... SMO AJLRTAB(2) 19 9P4J ... STOZ 0 [CLEAR OUT ME & FS BUFFERS 10 9P4P ... LDX 0 AJLRTAB(2) 8 9P4S ... LDN 1 1 8 9P4X ... ADS 0 1 10 9P53 ... MOVE 0 FSTABLEN+1*5 9 9P58 ... SMO AJLRAT(2) 7 9P5* ... STOZ 0 9 9P5G ... LDX 0 AJLRAT(2) 8 9P5K ... LDN 1 1 8 9P5N ... ADS 0 1 8 9P5S ... MOVE 0 200 10 9P9C ... SMO AJLZERBUFF(2) 7 9P?6 ... STOZ 0 10 9P#T ... LDX 0 AJLZERBUFF(2) 8 9P*_ ... LDN 1 1 8 9PC5 ... ADS 0 1 17 9PD? ... MOVE 0 0 [ZEROIZE JLZERBUFF 9 9PHW LDX 1 GEOBSPTR 9 9Q3G STO 1 JLPSMT(2) 8 9QH6 NLOUT LDN 1 NL(2) 14 9R2Q FINDPEREC 3,APFOTY,TYPCON(2),NEXTCON 20 9RGB ... JWRONG 3,NEXTCON [LOOK FOR A RIGHTED OPS CONSOLE 10 9S22 STO 3 JLPSOUT(2) 9 9SFL NAPS STO 3 SRDL(2) 5 9S_= JLTURN 20 9TDW TURN CALL 0 OUTIN [OUTPUT MESS & WAIT FOR COMMAND 9 9TYG LDX 0 JLMESS(2) 18 9WD6 SRL 0 12 [GET COMMAND FROM MESSAGE 18 9WXQ LDX 1 MTAB(2) [SEARCH FOR IT IN LIST 7 9XCB NEXM SMO 2 9 9XX2 TXU 0 MTAB(1) 16 9YBL ... BCC MESID [IDENTIFIED IT 16 9YW= BCT 1 NEXM [TRY NEXT IN LIST 20 9_*W JLWRC LDN 1 WRONGM(2) [NOT FOUND - COMMAND FORMAT ERROR 6 9_TG #SKI AGONY7 9 =2*6 JLER STOZ SMODE(2) 7 =2SQ #SKI AGONY7<1$1 4 =3#B JLER 18 =3S2 LDX 0 TRAPFAIL(2) [ATTEMPT RECOVERY AFTER 18 =4?L BNG 0 RECOVERY [MT/BS FAIL WHILE LOADING 9 =4R= RESET LDX 3 SLOWIN(2) 16 =5=W BZE 3 TURN [CONSOLE INPUT 18 =5QG DISENGPER SRDL(2) [DISENGAGE SLOW READER 6 =6=6 #SKI AGONY7 4 =6PQ ( 9 =79B STOZ SLOWIN(2) 17 =7P2 LDX 3 JLPSOUT(2) [FOR NEW INPUT SOURCE 18 =88L BRN NAPS [& GO FOR NEXT COMMAND 4 =8N= ) 7 =97W #SKI AGONY7<1$1 8 =9MG BRN TURN 5 ==76 MESID 16 ==LQ # COMMAND HAS BEEN IDENTIFIED; JUMP ACCORDINGLY 4 =?6B # 18 =?L2 STOZ JLNUMIN(2) [FOR DISC SEARCH ROUTINES 7 =#5L SMO 1 9 =#K= BRN TABJUMP-1 5 =*4W TABJUMP 8 =*JG BRN JLDA 8 =B46 BRN JLDA 8 =BHQ BRN JLDA 8 =C3B BRN JLDR 8 =CH2 BRN JLHD 8 =D2L BRN JLCL 8 =DG= BRN JLFI 8 =D_W BRN JLDE 8 =FFG BRN JLCR 8 =F_6 BRN JLTR 8 =GDQ BRN JLFS 7 =GYB #SKI K6LOADERMT 4 =HD2 ( 8 =HXL BRN JLAL 8 =JC= BRN JLPR 4 =JWW ) 8 =KBG BRN JLRP 6 =KW6 #SKI AGONY7 8 =L*Q BRN JLTW 7 =LTB #SKI AGONY7<1$1 15 =M*2 BRN JLWRC [UNTIL MK7 8 =MSL BRN JLME 8 =N#= BRN JLCT 8 =NRW BRN JLDS 8 =P?G BRN JLEF 7 =PR6 #SKI ENTWINE 4 =Q=Q ( 8 =QQB BRN JLDC 8 =R=2 BRN JLUN 4 =RPL ) 8 =S9= BRN JLCM 5 =SNW #SKI G4 17 =TN6 # FOLLOWING ARE IN CASE OF EXTRA COMMANDS MENDED IN. 8 =W7Q BRN JLWRC 8 =WMB BRN JLWRC 17 =X72 BRN JLWRC [NOW ONLY ROOM FOR 3 4 ?342 # 4 ?3HL # 4 ?43= # 13 ?4GW # COME HERE IF IRRECOVERABLE ERROR. 6 ?52G CATASTROPHE 18 ?5G6 CALL 6 OUT [OUTPUT WAITING MESSAGE 9 ?5_Q LDN 1 STOP(2) 8 ?66Y ... CALL 6 OUT 21 ?6#6 ... GELL [DON'T NEED PM FOR TRANSFER FAILURES 4 ?6FB # 5 ?6_2 CALLGELL 8 ?7DL CALL 6 OUT 20 ?7Y= GELLIT [COME HERE IF WANT TO KNOW WHY 10 ?8CW GEOERR 1,GEO LOAD 4 ?8XG # 20 ?9C6 # IF A TRANSFER FAILURE (MT/BS) OCCURS IN LOADING FROM MT TO BS 20 ?9WQ # THE RELEVANT PERI ROUTINE WILL SET X1->ERROR MESSAGE & BRN TO 21 ?=BB # JLER, WHERE TRANSFER FAILS ARE FILTERED HITHER FROM OTHER FAILS. 13 ?=W2 # MT FAILS ARE DEEMED IRRECOVERABLE. 20 ??*L # IN THE CASE OF BS FAILS, AN ATTEMPT IS MADE TO REPOSITION THE 20 ??T= # TAPE SO THAT THE COMMAND CAN BE RESUBMITTED OR ANOTHER BS FILE 16 ?##W # CAN BE USED. IF REPOSITIONING FAILS, GIVE UP. 5 ?#SG RECOVERY 10 ?*#6 LDX 0 MTFAILMK(2) 19 ?*RQ BZE 0 CATASTROPHE [MT FAILS ARE IRRECOVERABLE 7 ?B?B #SKI AGONY7<1$1 15 ?BR2 BRN CATASTROPHE [UNTIL MK7 4 ?C=L # 17 ?CQ= # BS FAIL HAS OCCURRED; ATTEMPT TO REPOSITION TAPE 4 ?D9W # 20 ?DPG CALL 6 JLOUT [OUTPUT DISC/DRUM FAIL MESSAGE 10 ?F96 LDX 4 JLTMCNT(2) 9 ?FNQ LDN 6 MTREV(2) 16 ?G8B RC1 CALL 0 JLPTAPE [SKIP BACK OVER 15 ?GN2 BCT 4 RC1 [TAPE MARKS 9 ?H7L LDN 6 MTBSP(2) 21 ?HM= CALL 0 JLPTAPE [BACKSPACE OVER E/S SENTINEL FOR L/A 10 ?J6W LDN 6 JLMHEAD(2) 17 ?JLG CALL 0 JLPTAPE [READ E/S SENTINEL 16 ?K66 LDN 1 POSFAIL(2) [IN CASE IT FAILS 9 ?KKQ LDX 0 MENT(2) 10 ?L5B TXU 0 JLMHEADA(2) 17 ?LK2 BCS CATASTROPHE [REPOSITIONING FAILED 4 ?M4L # 17 ?MJ= # REPOSITIONING SUCCESSFUL, SO RESET VARIUS AREAS. 4 ?N3W # 10 ?NHG STO 0 MTFAILMK(2) 16 ?P36 STOZ TRAPFAIL(2) [MT/BS FAILS TRAP 8 ?PGQ NGN 0 512 16 ?Q2B STO 0 JLNDADD(2) [LAST D-ADDRESS 10 ?QG2 LDN 1 REPOSOK(2) 8 ?Q_L BRN RESET 4 ?RF= # 4 ?RYW # 11 ?SDG # VARIOUS ERROR/INFO PATHS 4 ?SY6 # 14 ?T7Y ...JLCM [COMMENT! 5 ?TCQ JLXOK 20 ?TXB LDN 1 OKMESS(2) [COMMAND HAS BEEN SUCCESSFULLY 15 ?WC2 BRN TURN [IMPLEMENTED 5 ?WWL JLNOFILE 9 ?XB= LDN 1 NOFILE(2) 8 ?XTW BRN JLER 4 ?Y*G # 17 ?YT6 # MT LOADER COMES HERE ON RECEIPT OF CR/TR COMMAND. 18 ?_#Q # SWITCHES ARE SET TO GUIDE COMMANDS FROM SLOW READER 15 ?_SB # UNTIL INVALID COMMAND IS ENCOUNTERED. 15 #2#2 # GEOGNO IS PLACED IN FIX & FAIL MESSAGES. 16 #2RL # DL POINTER OF RELEVANT DEVICE GOES TO SRDL. 10 #3?= # SLOWIN IS SET TO 1. 4 #3QW # 20 #4=G JLTR LDN 0 #12 [MODE - GRAPHIC STOP BY STOP CHAR 8 #4Q6 BRN TCR1 13 #59Q JLCR LDN 0 0 [MODE 9 #5PB TCR1 LDX 7 SLOWIN(2) 19 #692 BNZ 7 JLWRC [COMMAND SOURCE NOT CONSOLE 9 #6NL STO 0 SMODE(2) 9 #78= LDX 0 SPACES(2) 9 #7MW STO 0 SFL+3(2) 9 #87G STO 0 SFIX+3(2) 10 #8C# ... STO 0 NOPERIPH+3(2) 7 #8M6 LDX 3 2 9 #96Q CALL 0 JLPOINT 7 #9LB LDN 6 0 7 #=62 LDN 4 3 8 #=KL TCR5 LDCH 7 0(1) 9 #?5= TXL 7 TEN(2) 8 #?JW BCC TCR6 9 ##4G DCH 7 SFIX+3(3) 9 ##J6 DCH 7 SFL+3(3) 11 ##RY ... DCH 7 NOPERIPH+3(3) 7 #*3Q BCHX 1 / 7 #*HB BCHX 3 / 9 #B32 MPA 6 TEN(2) 7 #BGL LDX 6 7 8 #C2= BCT 4 TCR5 8 #CFW LDCH 7 0(1) 8 #C_G TCR6 SBN 7 #20 17 #DF6 BNZ 7 JLWRC [NOT A NICE CHARACTER 18 #DYQ TCR2 FINDPEREC 3,APGEOG,6 [FIND OUT ABOUT DEVICE 10 #F?7 ... JENV TCR42,CME 9 #FKJ ... BNG 3 JLWRC 8 #FQR ...TCR42 BNG 3 TCR41 4 #FY2 # 12 #GCL # IS DEVICE OF SPECIFIED TYPE? 4 #GX= # 8 #HBW LTYPE 3,0 16 #HWG BZE 0 TCR3 [GEOGNO GIVES TR 7 #JB6 SBN 0 3 19 #JTQ BNZ 0 JLWRC [GEOGNO GIVES NEITHER CR TR 16 #K*B LDX 0 SMODE(2) [GEOGNO GIVES CR 15 #KT2 BNZ 0 JLWRC [NOT EXPECTED 8 #L#L BRN TCR4 15 #LS= TCR3 LDX 0 SMODE(2) [TR COMMAND? 8 #M?W SBN 0 #12 13 #MRG BNZ 0 JLWRC [NO. 4 #N?6 TCR4 9 #NQQ STO 3 SRDL(2) 7 #P=B LDN 0 1 18 #PQ2 STO 0 SLOWIN(2) [SET SLOW INPUT SWITCH 8 #Q9L BRN JLXOK 10 #QBS ...TCR41 LDN 1 NOPERIPH(2) 8 #QJ2 ... BRN JLER 4 #QP= # 4 #R8W # 4 #RNG # 4 #S86 # 18 #SMQ # LOADER/ALLOCATOR COMES HERE IF TW COMMAND IS RECEIVED. 21 #T7B # PROVIDING IT WAS ISSUED FROM O SLW READER IT CAUSES THE SOURCE OF 16 #TM2 # COMMANDS TO BE CHANGED TO THE OP'S CONSOLE. 18 #W6L # IF NECESSARY THE CURRENT SLOW READER IS DISENGAGED. 4 #WL= # 9 #X5W JLTW LDX 0 SLOWIN(2) 9 #XKG STOZ SMODE(2) 15 #Y56 LDN 1 OKMESS(2) [TO SAY 'OK' 8 #YJQ BRN RESET 4 #_4B # 4 #_J2 # 4 *23L # 4 *2H= # 4 *32W # 4 *3GG # 17 *426 # MT LOADER COMES HERE ON RECEIPT OF AN FS COMMAND. 19 *4FQ # THE COMMAND IS CHECKED FOR VALIDITY & THE CONTENTS 19 *4_B # OF ITS PARAMETERS ENTERED IN A TABLE WHICH IS COPIED 20 *5F2 # INTO THE SEGMENT FSTABLE WHEN G IS TRANSFERRED FROM MT 4 *5YL # 4 *6D= JLFS 9 *6XW CALL 0 JLPOINT 7 *7CG LDN 6 0 7 *7X6 LDN 7 0 15 *8BQ TFS1 CDB 6 0(1) [CONVERT LFN 16 *8WB BCS TFS2 [NON-NUMERIC CHAR 7 *9B2 BCHX 1 / 8 *9TL BRN TFS1 8 *=*= TFS2 LDCH 0 0(1) 14 *=SW TXU 0 OCTCO(2) [COMMA? 15 *?#G BCS JLWRC [NO, ERROR 7 *?S6 BCHX 1 / 14 *#?Q BNZ 6 JLWRC [HUGE LFN 8 *#RB SLL 67 18 14 **?2 BNZ 6 JLWRC [LFN>63 15 **QL SRL 7 18 [LFN IN X7 9 *B== TXL 7 THREE(2) 8 *BPW BCS JLWRC 15 *C9G LDX 5 7 [LFN IN X5 10 *CP6 STO 5 THISRES(2) 7 *D8Q LDN 6 5 15 *DNB MPY 5 6 [5*LFN IN X6 17 *F2R ... STO 6 JLRSW(2) [FRO USE AS A POINTER 10 *F9P ... LDX 3 AJLRTAB(2) 8 *FDM ... ADN 3 3 7 *FML SMO 6 15 *G7= ... STO 7 0(3) [STORE LFN 4 *GLW # 9 *H6G # GET DEVICE TYPE 4 *HL6 # 8 *J5Q LDCH 0 0(1) 8 *JKB SBN 0 10 15 *K52 BNG 0 TFS5 [NUMERIC TYPE 8 *KJL LDCH 0 0(1) 7 *L4= SLL 0 6 7 *LHW LDX 4 0 7 *M3G BCHX 1 / 8 *MH6 LDCH 0 0(1) 14 *N2Q ORX 4 0 [X4=00TT 7 *NGB BCHX 1 / 12 *P22 # SEARCH TABLE FOR DEVICE TYPE 7 *PFL LDN 5 5 7 *P_= TFS6 SMO 5 9 *QDW TXU 4 JLMTAB(2) 14 *QYG BCC TFS7 [FOUND IT 16 *RD6 BCT 5 TFS6 [MORE TO COMPARE 8 *RXQ BRN TFS8 7 *SCB TFS7 SMO 5 18 *SX2 LDX 7 JLTTAB-1(2) [GET NUMERIC EQUIVALENT 8 *TBL BRN TFS9 7 *TW= TFS5 LDN 6 0 7 *W*W LDN 7 0 17 *WTG TFS10 CDB 6 0(1) [CONVERT NUMERIC TYPE 16 *X*6 BCS TFS11 [NON-NUMERIC CHAR 7 *XSQ BCHX 1 / 8 *Y#B BRN TFS10 19 *YS2 TFS11 LDN 5 5 [FIND NUMERIC TYPE IN TABLE 7 *_?L TFS12 SMO 5 9 *_R= TXU 7 RTYT-1(2) 14 B2=W BCC TFS13 [FOUND IT 14 B2QG BCT 5 TFS12 [TRY NEXT 15 B3=6 BRN TFS8 [NOT KNOWN 7 B3PQ TFS13 SMO 5 9 B49B LDX 6 RTYT-1(2) 7 B4P2 ANDN 6 6 8 B58L BZE 6 TFS9 19 B5N= LDN 7 6 [DISC SO REPLACE BY TYPE 6 8 B67W TFS9 SLL 7 18 10 B6CN ... LDX 3 AJLRTAB(2) 8 B6MG ... ADN 3 3 9 B6X# ... SMO JLRSW(2) 18 B7?3 ... ORS 7 0(3) [PUT TYPE IN TABLE ENTRY 8 B7LQ LDCH 0 0(1) 8 B86B SBN 0 #34 18 B8L2 BNZ 0 TFS8 [NEXT CHAR NOT O COMMA 7 B95L BCHX 1 / 4 B9K= # 9 B=4W # EXTRACT FILENAME 4 B=JG # 9 B?46 ... LDX 3 JLRSW(2) 9 B#3B LDX 0 SPACES(2) 15 B##? ... SMO AJLRTAB(2) [SPACEFILL 8 B#K8 ... STO 0 0(3) 8 B#R6 ... ADN 3 1 14 B#_4 ... SMO AJLRTAB(2) [NAME IN 8 B*72 ... STO 0 0(3) 8 B*#Y ... ADN 3 1 14 B*GW ... SMO AJLRTAB(2) [TABLE. 8 B*NS ... STO 0 0(3) 8 B*_W TFS19 LDCH 0 0(1) 8 BBFG SBN 0 #20 15 BB_6 BNZ 0 TFS14 [NOT A SPACE 14 BCDQ BCHX 1 / [STEP ON 8 BCYB BRN TFS19 4 BDD2 # 17 BDXL TFS14 CALL 6 NALPHA [CHECK 1ST CHAR ALPHE 15 BFC= LDN 4 12 [CHAR COUNT 15 BFWW ... LDX 3 JLRSW(2) [X3->TABLE 8 BGW6 TFS20 LDCH 0 0(1) 7 BH*Q BCHX 1 / 9 BHTB TXU 0 OCTCO(2) 20 BJ*2 BCC TFS15 [NEXT CHAR COMMA SO MORE PARAMS 10 BJMC ... SMO AJLRTAB(2) 17 BJ_S ... DCH 0 0(3) [MOVE NAME TO TABLE 7 BK#= BCHX 3 / 8 BKRW BCT 4 TFS20 20 BL?G LDCH 0 0(1) [IS THIS A TWELVE CHAR FILENAME 13 BLR6 BCHX 1 / [... 17 BM=Q TXU 0 OCTCO(2) [FOLLOWED BY A COMMA? 17 BMQB BCC TFS15 [YES, SO SN TO FOLLOW 8 BN=2 SBN 0 #20 17 BNPL BZE 0 TFS18 [SPACE SO FINISHED 10 BP5* ... LDX 3 AJLRTAB(2) 16 BPF4 ... SMO JLRSW(2) [ELSE BAD NAME 17 BPSR ... STOZ 0(3) [... SO CLEAR ENTRY 9 BQ8G BRN NAMEBAD 4 BQN6 # 9 BR7Q # SERIAL NO. IF ANY 4 BRMB # 7 BS72 TFS15 LDN 6 0 7 BSLL LDN 4 7 16 BT6= TFS16 LDCH 0 0(1) [CONVERT A DIGIT 14 BTKW TXL 0 OCT8(2) [OCTAL? 13 BW5G BCC TFS17 [NO 7 BWK6 BCHX 1 / 7 BX4Q SLL 6 3 14 BXJB ORX 6 0 [MOVE IN 15 BY42 BCT 4 TFS16 [MORE ALLOWED 15 BYHL BRN TFS21 [TOO LONG! 10 BYRD ...TFS17 LDX 3 AJLRTAB(2) 8 B_3= ... ADN 3 4 9 B_?4 ... SMO JLRSW(2) 17 B_LR ... STO 6 0(3) [STORE CSN IN TABLE 8 C22G SBN 0 #20 18 C2G6 BZE 0 TFS18 [SPACE FOUND, I.E. END 8 C2_Q SBN 0 #14 17 C3FB BNZ 0 TFS21 [NOT A COMMA AFTER SN 7 C3_2 BCHX 1 / 9 C4DL ... LDX 0 JLRSW(2) 8 C4Y= SBN 0 15 17 C5CW BZE 0 TFS8 [ERROR -'SWAP'& LF3 8 C5XG LDCH 0 0(1) 8 C6C6 SBN 0 #63 17 C6WQ BNZ 0 TFS8 [NOT S AFTER COMMA 7 C7BB LDCT 0 4 10 C7L8 ... LDX 3 AJLRTAB(2) 8 C7W2 ... ADN 3 3 9 C85S ... SMO JLRSW(2) 16 C8FH ... ORS 0 0(3) [SET SWAPFILE BIT 8 C8T= NGN 0 16*G4 10 C9#W ADXC 0 THISRES(2) 8 C9SG LDN 7 G4 7 C=#6 ANDN 7 1 18 C=RQ BNZ 7 TFS8 [G4 ONLY SWAP RES > 15 4 C??B # 5 C?R2 TFS18 12 C#=L BRN JLXOK [ 4 C#Q= # 10 C*5_ ...TFS8 LDX 3 AJLRTAB(2) 16 C*FN ... SMO JLRSW(2) [CLEAR CORRUPTED 15 C*TC ... STOZ 0(3) [TABLE ENTRY 16 CB96 BRN JLWRC [GENERAL ERROR 4 CBNQ # 10 CC4F ...TFS21 LDX 3 AJLRTAB(2) 9 CCD8 ... SMO JLRSW(2) 8 CCRX ... STOZ 0(3) 15 CD7L LDN 1 SERIALBAD(2) [INVALID SN. 8 CDM= BRN JLER 4 CF6W # 4 CFLG # 21 CG66 # S/R TO CHECK THAT, IF ANY FS'S HAVE BEEN ISSUED, A SWAP RESIDENCE 13 CGKQ # HAS BEEN DECLARED. CALLED VIA X0. 4 CH5B # 5 CHK2 JLSWAPCH 17 CJ4L LDN 5 0 [ANY ENTRIES SWITCH 8 CJJ= LDN 7 64 16 CK3W ... LDX 3 AJLRTAB(2) [POINT TO TABLE 8 CKHG SW2 LDX 6 0(3) 16 CL36 BZE 6 SW1 [NO ENTRY HERE 18 CLGQ ADN 5 1 [ELSE MARK UP AN ENTRY 7 CM2B LDCT 6 4 18 CMG2 ANDX 6 3(3) [PICK OUT SWAPFILE BIT 15 CM_L BNZ 6 SW3 [FOUND ONE 7 CNF= SW1 ADN 3 5 8 CNYW BCT 7 SW2 16 CPDG BZE 5 SWEXIT [NO FS'S, SO OK 4 CPY6 # 16 CQCQ # IF WE REACH HERE NO SWAPFILE HAS BEEN FOUND 4 CQXB # 9 CRC2 LDN 1 NOSWAP(2) 10 CRKY ... LDX 3 AJLRTAB(2) 8 CRSW ... ADN 3 15 17 CS3S ... LDX 6 0(3) [ENTRY FOR RES.3 ? 13 CSB= BNZ 6 JLER [YES 13 CSTW CALL 6 JLOUT [NO 9 CT*G SW4 LDN 1 NORES3(2) 8 CTT6 BRN JLER 4 CW#Q # 15 CWSB # IF WE REACH HERE A SWAPFILE HAS BEEN FOUND 4 CX#2 # 10 CXGY ...SW3 LDX 3 AJLRTAB(2) 8 CXPW ... ADN 3 15 8 CXYS ... LDX 6 0(3) 14 CY?= BZE 6 SW4 [NO RES.3 5 CYQW SWEXIT 18 C_=G EXIT 0 0 [RES.3 & SWAPFILE FOUND 4 C_Q6 # 4 D29Q # 18 D2FJ ...K99LOADERMT [ DATA AREA FOR MENDS 6 D2PB ...#GAP 1023-0? 4 D6LB # 4 D762 #END 6 ____ ...014264330001