15 22FL ...#SEG LOADERDA86 [M. DRUKKER 18 22J9 ...# ######################################################## 4 22LS ...# 16 22PC ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 4 22S2 ...# 18 22WK ...# ######################################################### 12 22_= #LIS K0LOADER>K0ALLGEO>K0LOADERMT 4 23DW # 20 23YG # THIS SEGMENT HANDLES DISCS,I.E. IT IS ENTERED WHEN ONE 16 24D6 # OF THE FOLLOWING COMMANDS IS INPUT: 4 24XQ # 18 25CB # DA ED FD CT DS EF #SKI ENTWINE (DC UN) 4 25X2 # 4 26BL # 20 26Q* ...OSCA +JLSCA [THESE ARE BUFFERS IN LOADERDB 20 2764 ...OSCAFAC +JLSCAFAC [THEY ARE DATUMISED IN LOADERMT 20 27FR ...FIXDB +0 [INTENDED(0) / PREVIOUS(<0) PERI 16 27TG SDSWFIX +0 [FOR SEARCHDISC 5 28*6 JLSWFIX 19 28SQ SWFIX -1 [SETTING DETERMINES ACTION BY 19 29#B # [PERIDISC OVER FIXES/FAILS 21 29S2 [ZERO -> FIXES IGNORED & FAILS REPORT 21 2=?L [-1 -> FIXES REPORTED & WAITED ON, 21 2=R= # [ & FAILS REPORTED & RETURNED TO COM 16 2?=W STRGLINK +0 [FOR STRINGOUT 16 2?QG SLINK +0 [FOR SEARCHDISC 16 2#=6 SNLINK +0 [FOR SEARCHBYSN 16 2#PQ PDLINK +0 [PERIDISC LINK 20 2*9B PDINOP +0 [-VE AS SOON AS INOP DISC FOUND 17 2*P2 [DURING DISC SEARCHES 20 2B8L WDPART +0 [FROM CONVERSION ROUTINE XCONV 17 2BN= XSURF +BSURF [BLKS/SURFACE ON 2B 4 2C7W # 20 2CMG TYPEDISC +0 [SUBTYPE OF DISC IN CT COMMAND 19 2D76 SDISCDL +0 [DL PTR OF DISC IN CT COMMAND 16 2DLQ PHLAGS #70000000 [ALL FLAGS SET 8 2F6B SPACE 4H000 5 2F?J ...OXSYF 9 2FDR ...XSYF 4HSYFL 16 2FL2 WDAC 4H0DA, [FOR CT COMMAND 13 2G5L SERIALNUM +0 [USN 18 2GK= XFILES [DATA FROM DS COMMANDS 5 2H4W #REP 16 8 2HJG +0 20 2J46 MAXSIZE +0 [NO.OF CYLS ON DISC IN CT COMMAND 14 2JHQ STOR +0 [WORK WD 5 2K3B JLNOB 21 2KH2 NOBPERC +0 [NO.OF BLKS/CYL ON DEVICE CONCERNED 16 2L2L PLAST #37777777 [LAST FIC WD.0 14 2L*3 ...SUBTYPES +EDS,+EMDS [DISC SUBTYPES 9 2LMD ...XSHARE #4000000 4 2L_W # 18 2MFG TEMPLATE [FILE INDEX CELL TEMPLATE 17 2M_6 +0 [NEXT CELL CONTIGUOUS 15 2NDQ +0 [ADDR OF FAC 14 2NYB +0,+0,+0 [FILENAME 8 2PD2 +0 16 2PXL +0 [GEN/VERSION NOS. 17 2QC= #20000001 [INTEGRITY/NO.OF FACS 13 2QWW +0 [DATE 17 2RBG +0 [RETENTION PERIODS 14 2RW6 +1 [BLKS/BKT 8 2S*Q +0 18 2STB +1 [LOG.BKT.NO OF EOF TAG 14 2T*2 +0,+0,+0,+0 [RESERVED 20 2TSL ...SDISCA +0,+128,+JLSCA,+0 [MODE/COUNT/CTSA/DTSA FOR SCA 21 2W#= ...SDISCB +0,+128,+JLSCAFAC,+0 [MODE/COUNT/CTSA/DTSA FOR FAC CHAIN 15 2WRW # [OR FIC CHAIN 8 2X?G ONE +1 8 2XR6 TWO +2 8 2Y=Q THREE +3 8 2YQB XFIVE +5 20 2_=2 #SKI 77?<515$515 [SKIP LABEL IF GIN515 OR LATER 4 2_PL OCT8 8 329= +8 8 32NW THIRTEEN +13 5 32W4 ...OXDEVICE 18 333= ...XDEVICE +0 [STORE FOR DL POINTER 16 338G # AREAS FOR HANDLING INOP DISCS DURING SEARCHES 5 33D# ...OSTRGMK 20 33N6 STRGMK #400:0 [0->REPORT FIXES DURING SEARCHES, -VE FOR NOT. 14 347Q ON 4HON [RP... 16 34MB OFF 4HOFF [..PARAMETERS. 5 3572 JLNUMIN 18 35LL NUMINOP +0 [NO. OF GEOGNOS IN LIST 10 366= STRINOP +8,8H UNITS 8 36KW #REP 25 8 375G 4H 11 37K6 STRREST 16H INOPERABLE_* 9 384Q NEWLINE +2,2H_* 13 38JB ...OPRINT +16,16H = #00000000_*_* 17 3942 ...JLRSW +0 [PTR TO TABLE JLRTAB 9 39HL # AREAS FOR DC/UN 4 3=3= # 5 3=GW JLUNDC 14 3?2G UNDCADDR +AUNRES+DCDUM [FOR UN 14 3?G6 +ARES+DCDUM [FOR DC 5 3?PY ...OSMOTAB 17 3?_Q SMOTAB +0 [ABS PTR TO TABUNDC 5 3#9J ...OUNDCTAB 5 3#FB UNDCTAB 5 3#P8 ...OTABUNDC 19 3#_2 TABUNDC [FOR PARAMS IN DC/UN COMMAND 6 3*DL #REP 2*24 8 3*Y= +0 4 3BXG # 10 3CC6 # FURTHER ERROR MESSAGES 4 3CWQ # 17 3DBB XEM1 +32,32H CARTRIDGE/UNIT NOT FOUND_*_* 5 3DNR ...OXEM2 15 3F38 ...XEM2 +25,25H UNIT 000 NOT UDAS_*_* 17 3F*L XEM3 +34,34H DISC NOT NEWLY INITIALISED_*_* 14 3FT= XEM4 +21,21H WRONG CONTEXT_*_* 15 3G#W XEM5 +26,26H INVALID CYL.NO(S)._*_* 12 3GG4 ...XEM6 +43,24H FILENAME 13 3GM= ... 19H CANNOT BE SHARED_* 4 3GSG # 8 3H#6 SPACES 4H 4 3J?B # 4 3JR2 # 12 3K=L # S/R TO PERFORM DISC TRANSFERS 10 3KQ= # CALLED VIA X0 13 3L9W # EXPECTS X3 -> RELEVANT DL 12 3LPG # X1 -> CA WORDS 11 3M96 # FIX/FAIL ACTION: 14 3MNQ # SWFIX=0 & FIX -> EXIT 0 0 19 3N8B # & FAIL -> OUTPUT FAIL MESS & EXIT 0 0 21 3NN2 # SWFIX=-1 & FIX -> OUTPUT FIX MESS & WAIT TILL OPERABLE 19 3P7L # & FAIL -> OUTPUT FAIL MESS & GO TO JLER 11 3PM= # NORMAL EXIT 0 1 19 3Q6W # IF DISC IS INOP PDINOP IS SET -VE BEFORE EXIT 0, 18 3QLG # (I.E. WHEN SWFIX=0) ELSE IT IS ZERO ON EXIT. 5 3R66 JLPDISC 5 3RKQ PERIDISC 9 3S5B STO 0 PDLINK(2) 18 3SK2 STOZ PDINOP(2) [CLEAR INOP DISC MARKER 18 3T4L STO 3 JLPSBS(2) [DL PTR TO PSEUDO-ACT.BLK 8 3TJ= LDX 0 0(1) 10 3W3W DCA 3,STO,0,MODE 8 3WHG LDX 0 1(1) 10 3X36 DCA 3,STO,0,COUNT 8 3XGQ LDX 0 2(1) 10 3Y2B DCA 3,STO,0,CTSA 14 3YG2 DCA 3,ADS,2,CTSA [DATUMISE 8 3Y_L LDX 0 3(1) 10 3_F= DCA 3,STO,0,DTSA 4 3_YW # 11 42DG # READY TO ATTEMPT TRANSFER 4 42Y6 # 16 43CQ JDISENG 3,PD4 [UNIT NOT ENGAGED 4 43J8 ...PD5 5 43NL ...#SKI G3 10 43T4 ... LDX 0 JLSWBUF(2) 18 43_G ... LDN 1 JLPSBS-CPPTR(2) [POINT TO PSEUDO-ACT.BLK 5 445Y ...#SKI G3 16 44=B ... BNZ 0 PD1 [DOUBLE BUFFERING 17 44C2 GPERI 3,1,NC [INITIATE TRANSFER 17 44WL PD1 JBUSY 3,PD1 [WAIT FOR TERMINATION 16 45B= JFAIL 3,PD2 [TRANSFER FAILURE 5 45DT ...#SKI G3 4 45HD ...( 10 45L3 ... LDX 0 JLSWBUF(2) 16 45NL ... BZE 0 PD10 [SINGLE BUFFERING 17 45R9 ... GPERI 3,1,NC [INITIATE TRANSFER 9 45TS ... LDX 0 FIXDB(2) 19 45YC ... BZE 0 PD10 [NOTHING OUTSTANDING FROM FIX 18 4632 ... STOZ FIXDB(2) [NOW DO INTENDED TRANSFER 8 465K ... BRN PD11 4 4688 ...) 8 46=R ...PD10 LDCT 0 #400 17 46*G STO 0 SWFIX(2) [FIX MESSAGE REQUIRED 9 46T6 LDX 0 PDLINK(2) 15 47#Q EXIT 0 1 [NORMAL EXIT 15 47SB PD2 LDX 1 JLPSBS+1(2) [GET REPLY 8 48#2 SRL 1 18 15 48RL BNZ 1 PD6 [REAL FAIL 9 49?= PD4 LDX 0 SWFIX(2) 18 49QW BNZ 0 PD3 [ACTION REQUIRED ON FIX 15 4==G PD7 LDCT 0 #400 [NONE NEEDED 15 4=Q6 STO 0 SWFIX(2) [RESET SWITCH 21 4?9Q STO 0 PDINOP(2) [NOTE UNIT INOP FOR SEARCH ROUTINES 9 4?PB PD9 LDX 0 PDLINK(2) 7 4#92 EXIT 0 0 9 4#NL PD3 LDN 1 JLFIXM(2) 17 4*8= CALL 0 JLGEOG [CONSTRUCT MESSAGE 15 4*MW CALL 6 JLOUT [& OUTPUT IT 16 4B7G LDX 3 JLPSBS(2) [RESTORE DL PTR 15 4BM6 PD8 JDISENG 3,PD8 [WAIT FOR FIX 5 4BNN ...#SKI G4 15 4BQ= ... BRN PD5 [TRY AGAIN 5 4BRS ...#SKI G3 4 4BTB ...( 10 4BWY ... LDX 0 JLSWBUF(2) 18 4BYG ... BZE 0 PD5 [SGLE BFFRG - TRY AGAIN 9 4C24 ... LDX 0 FIXDB(2) 15 4C3L ... BNZ 0 PD5 [REPEATED FIX 8 4C58 ... LDCT 0 #400 17 4C6Q ... STO 0 FIXDB(2) [SET FOR FIX BUFFER 10 4C8# ...PD11 LDX 0 JLTDOUBUF(2) 8 4C9W ... LDX 6 512 19 4C?D ... BZE 0 PD12 [FROM JLBUFF TO JLBUFF+512 15 4C*2 ... SBX 6 1024 [SET MINUS 9 4CBJ ...PD12 ADS 6 ICTSA(3) 8 4CD6 ... LDN 0 #1000 16 4CFN ... ERS 0 JLTDOUBUF(2) [SWITCH JLTDOUBUF 15 4CH= ... BRN PD5 [TRY AGAIN 4 4CJS ...) 10 4CLB PD6 LDN 1 JLFAILM(2) 18 4D62 CALL 0 JLGEOG [CONSTRUCT A FAIL MESSAGE 15 4DKL LDX 0 SWFIX(2) [GET SWITCH 8 4F5= LDCT 6 #400 14 4FJW STO 6 SWFIX(2) [RESET SW 16 4G4G BNZ 0 JLER [ACTION REQUIRED 15 4GJ6 CALL 6 JLOUT [OUTPUT MESS 16 4H3Q LDX 3 JLPSBS(2) [RESTORE DL PTR 16 4HHB BRN PD9 [ & DO NO MORE 4 4J32 # 4 4JGL # 19 4K2= # S/R TO CONVERT WD-ADDR IN X1 TO HARDWARE ADDRESS IN X0. 15 4KFW # DEVICE SUBTYPE EXPECTED IN JLBSUB. 14 4K_G # NO.BLKS/CYL EXPECTED IN NOBPERC. 16 4LF6 # START CYLNO OF SU EXPECTED IN JLSTART. 13 4LYQ # LEAVES WORD PART IN WDPART. 10 4MDB # CALLED VIA X6. 4 4MY2 # 5 4NCL JLCONV 7 4NX= XCONV LDN 0 0 8 4PBW SLL 01 17 8 4PWG SRL 1 17 9 4QB6 STO 1 WDPART(2) 7 4QTQ LDX 1 0 4 4QX_ ...# 12 4R28 ...# [X1]=HARDWARE BLOCK ADDRESS 4 4R4C ...# 5 4R6L ...JLCONV2 5 4R8T ...XCONV2 3 4R?4 ... 15 4R*B DVS 0 NOBPERC(2) [/BLKSPERCYL 4 4RT2 # 11 4S#L # [X0]=BLKNO & [X1]=CYLNO 4 4SS= # 19 4T?W JLCONV1 [ENTRY HERE FOR READING SCA'S 5 4TRG XCONV1 15 4W?6 ADX 1 JLSTART(2) [+BASE OF SU 9 4WQQ SMO JLBSUB(2) 19 4X=B BRN / [BRANCH TO RELEVANT ROUTINE 4 4XQ2 X 6 4Y9L #TRA X+EDS 8 4YP= BRN XCEDS 6 4_8W #TRA X+EMDS 9 4_NG BRN XCEMDS 8 5286 ...#TRA EDS>EMDS+X+1 5 54=5 ...XCEDS 17 54*J ... JNENVX NOEMU,MEEP,7 [J IF NOT EMULATING 7 54F3 ... LDX 7 1 18 54JG ... MPA 7 NOBPERC(2) [CONVERT BACK TO BLOCKS 8 54M_ ... LDCT 1 #400 7 54RD ... ADX 0 1 7 54WX ... EXIT 6 0 5 54_9 ...NOEMU 7 553H ... LDN 7 0 8 555W SLL 70 21 7 55KG SLL 7 3 7 5656 SLL 70 3 8 56JQ SLL 01 20 7 574B SLL 0 2 8 57J2 SLL 01 16 7 583L ORX 0 7 7 58H= EXIT 6 0 4 5BWB # 9 5CB2 ...# EDS30 ADDRESSES. 4 5CTL # 5 5DSW XCEMDS 8 5F#G SLL 0 12 8 5FS6 SRC 01 12 7 5G?Q EXIT 6 0 4 5GRB # 4 5H?2 # 18 5HQL # S/R TO SEARCH SPECIFIED DISC (BY DL) FOR GIVEN FILE 20 5J== # EXPECTS X3-> DL FOR A DISC, JLBSUB TO CONTAIN SUBTYPE OF 18 5JPW # DISC & FINAME TO CONTAIN NAME OF FILE TO BE FOUND. 15 5K9G # CALLED VIA X0. ON RETURN X3-> DL STILL. 18 5KP6 # EXITS 0 IF FILE NOT FOUND ELSE EXITS 1 HAVING SET 20 5L8Q # X1->FAC FOR THE FILE, & HAVING FILLED IN BLDISC, BLADDR, 15 5LNB # BLSER, & BLSTART AT K18-K42, & NOBPERC. 17 5M82 # SWFIX IS RENEWED BEFORE EACH CALL OF PERIDISC 18 5MML # TO ENSURE CORRECT ACTION OVER FIXED/FAILING DISCS. 18 5N7= # IF DISC WAS INOP, ITS GEOGNO IS PLACED IN STRINOP. 4 5NLW # 6 5P6G SEARCHDISC 15 5PL6 STO 0 SLINK(2) [STORE LINK 9 5Q5Q LDX 0 SWFIX(2) 15 5QKB STO 0 SDSWFIX(2) [SAVE SWFIX 13 5R52 LDN 4 0 [SU 0 20 5RJL LDX 7 JLBSUB(2) [SUBTYPE OF DISC TO BE SEARCHED 17 5S4= STUBASEX 4,6,7 [GET BASE OF SU(4) 15 5SHW STO 6 JLSTART(2) [FOR XCONV 9 5T3G SMO JLCOMM(2) 15 5TH6 STO 6 BLSTART [& FOR LOADER 14 5W2Q LDN 1 0 [CYLNO 0 16 5WGB LDN 0 1 [BLKNO 1 FOR SCA 15 5X22 CALL 6 XCONV1 [ HA -> X0 9 5XFL LDN 1 SDISCA(2) 15 5X_= STO 0 3(1) [DTSA FOR SCA 15 5YDW STOZ 0(1) [READ MODE 10 5YYG LDX 0 SDSWFIX(2) 9 5_D6 STO 0 SWFIX(2) 14 5_XQ CALL 0 PERIDISC [READ SCA 18 62CB BRN SDINOPFL [INOP/FAIL SO NOT FOUND 10 62JJ ... CALL 0 CHECKDISC 9 62PQ ... BRN SDINOPFL 9 62YN ... SMO OSCA(2) 17 637L ... LDX 0 13 [GET NO. OF BLKS/CYL 10 63BL STO 0 NOBPERC(2) 9 63P3 ... SMO OSCA(2) 14 643D ... LDX 0 5 [GET USN 7 64*W SLL 0 6 15 64TG SRL 0 6 [ISOLATE & 9 65*6 SMO JLCOMM(2) 16 65SQ STO 0 BLSER [STORE FOR LOADER 9 6677 ... LDX 1 OSCA(2) 15 66FJ ... ADN 1 19 [FIRST FIC 19 66S2 LDN 5 147 [BS ADDR OF IT, BLK 1 WD 19 4 67?L # 8 67R= SD5 LDX 4 0(1) 17 68=W BNG 4 SDNO [LAST CELL JUST GONE 8 68QG SD1 LDX 0 2(1) 8 69=6 LDX 6 3(1) 18 69PQ LDX 7 4(1) [GET FILENAME FROM FIC 9 6=9B TXU 0 FINAME(2) 10 6=P2 TXU 6 FINAME+1(2) 19 6?8L TXU 7 FINAME+2(2) [& COMPARE WITH THAT REQUIRED 15 6?N= BCC SD3 [THIS IS IT 9 6#7W SD6 TXU 4 PLAST(2) 15 6#MG BCC SDNO [LAST CELL 19 6*76 BNZ 4 SD4 [NEXT CELL IN DIFFERENT BLK 16 6*LQ ADN 1 17 [UPDATE CORE &... 15 6B6B ADN 5 17 [BS ADDRESSES 15 6BL2 BRN SD5 [TRY AGAIN 4 6C5L # 19 6CK= SD4 STO 4 1 [X1=PTR TO NEXT FIC FOR XCONV 17 6D4W STO 4 5 [DESTINED FOR BLADDR 16 6DJG CALL 6 XCONV [GET HA OF FIC 9 6F46 LDN 1 SDISCB(2) 13 6FHQ STO 0 3(1) [DTSA 15 6G3B STOZ 0(1) [READ MODE 10 6GH2 LDX 0 SDSWFIX(2) 9 6H2L STO 0 SWFIX(2) 15 6HG= CALL 0 PERIDISC [GET NEXT FIC 18 6H_W BRN SDINOPFL [INOP/FAIL SO NOT FOUND 17 6JFG ... LDX 1 OSCAFAC(2) [POINT TO IT IN CORE 10 6J_6 ... ADX 1 WDPART(2) 17 6KDQ BRN SD5 [& HAVE A LOOK AT IT 4 6KYB # 16 6LD2 SD3 LDX 0 6(1) [HAVE FOUND FIC 8 6LXL SRL 0 12 17 6MC= BNZ 0 SD6 [MUST HAVE GENNO=0 9 6MWW SMO JLCOMM(2) 9 6NBG LDN 2 BLDISC 17 6NW6 MOVE 1 17 [MOVE FIC TO K18-K42 8 6P*Q LDX 2 G3DOL 9 6PTB SMO JLCOMM(2) 16 6Q*2 STO 5 BLADDR [WD.ADDR OF FAC 16 6QSL LDX 1 1(1) [WD.ADDR OF FAC 16 6R#= CALL 6 XCONV [HA ADDR -> X0 9 6RRW LDN 1 SDISCB(2) 13 6S?G STO 0 3(1) [DTSA 15 6SR6 STOZ 0(1) [READ MODE 10 6T=Q LDX 0 SDSWFIX(2) 9 6TQB STO 0 SWFIX(2) 19 6W=2 CALL 0 PERIDISC [READ DOWN BLK CONTAINING FAC 18 6WPL BRN SDINOPFL [INOP[FAIL SO NOT FOUND 10 6X9= ... LDX 0 OSCAFAC(2) 10 6XNW ... ADX 0 WDPART(2) 9 6Y8G SMO JLCOMM(2) 8 6YN6 LDN 1 BLFAC 19 6_7Q LDX 6 3(1) [GET SERIAL NUMBER OF FA UNIT 7 6_MB SLL 6 6 7 7272 SRL 6 6 8 72LL BZE 6 SD7 20 736= SMO JLCOMM(2) [& COMPARE WITH THAT OF HOME UNIT 8 73KW TXU 6 BLSER 19 745G BCS SDNO [ON ANOTHER UNIT SO IGNORE 4 74K6 SD7 17 754Q MOVE 0 5 [MOVE FAC FOR LOADER 11 7553 ...# THIS CODE IS FOR THE FULL 10 755# ...# IMPLEMENTATION OF SHARE 10 755M ... JENVNOT N2CME,CME 10 756J ... JNCMESH 3,N2CME 11 7572 ...# THE BRN SHOULD BE REMOVED 13 757D ...# WHEN (IF) FULL SHARE IS IMPLEMENTED 8 757W ... BRN N2CME 10 758B ... LDX 0 XSHARE(2) 10 759? ... LDN 1 JLCOMM(2) 9 75=8 ... ADX 0 BLSER(1) 10 75?5 ... LDX 1 BLADDR(1) 9 75#2 ... SHOPEN ,,SD71 9 75#X ... BRN N2CME 10 75*S ...SD71 LDN 5 FINAME(2) 10 75BP ... LDN 6 XEM6+4(2) 8 75CL ... MOVE 5 3 9 75DH ... LDN 1 XEM6(2) 8 75FD ... BRN JLER 10 75G* ...N2CME SMO JLCOMM(2) 9 75H= ... LDN 1 BLFAC 9 75JB LDX 0 SLINK(2) 15 7642 EXIT 0 1 [FILE FOUND 4 76HL # 5 773= SDINOPFL 9 77GW LDX 0 PDINOP(2) 15 782G BZE 0 SDNO [IT FAILED 18 78G6 SMO NUMINOP(2) [INOP; ADD GEOGNO TO LIST 20 78_Q LDN 1 STRINOP(2) [LOCATE FREE WD. -2 IN MESSAGE 16 79FB CALL 0 JLGEOG [INSERT GEOGNO 7 79_2 LDN 0 1 18 7=DL ADS 0 NUMINOP(2) [UPDATE COUNT FO GEOGNOS 7 7=Y= SLL 0 2 17 7?CW ADS 0 STRINOP(2) [UPDATE MESSAGE COUNT 9 7?XG SDNO LDX 0 SLINK(2) 16 7#C6 EXIT 0 0 [FILE NOT FOUND 4 7#WQ # 4 7*BB # 4 7*W2 # 21 7B*L # S/R TO SEARCH ALL DISCS FOR SU WHOSE SERIAL NUMBER IS IN LOCATION 12 7BT= # SERIALNUM. CALLED VIA X0 21 7C#W # IF FOUND EXIT 0 1 HAVING LEFT DL PTR IN JLPSBS, & RELEVANT 20 7CSG # BLOCK 1 OF DISC AT SCA, & DEVICE SUBTYPE IN X7,& JLBSUB 16 7D#6 # ALSO NOBPERC FILLED IN. ELSE EXIT 0 0 20 7DRQ # IF DISC WAS INOP, ITS GEOGNO IS PLACED IN STRINOP. 4 7F?B # 6 7FR2 SEARCHBYSN 9 7G=L STO 0 SNLINK(2) 7 7GQ= LDN 0 6 17 7H9W LDN 7 EDS [EDS SEARCHED FIRST 9 7HPG SN1 STO 0 JLBS(2) 15 7J96 STO 7 JLBSUB(2) [FOR XCONV 12 7JNQ FINDPEREC 3,APFOTY,JLBS(2),SN2 19 7K8B BNG 3 SN3 [NO MORE UNITS OF THIS TYPE 9 7KN2 LDX 7 JLBS(2) 17 7PK2 SN6 LDN 0 0 [*** TEMPORARY *** 10 7Q4L STUBASEX 0,6,JLBSUB(2) 17 7QJ= STO 6 JLSTART(2) [STORE START ADDRESS 13 7R3W LDN 1 0 [CL 0 16 7RHG LDN 0 1 [BLKNO 1 FOR SCA 9 7S36 CALL 6 XCONV1 16 7SGQ LDN 1 SDISCA(2) [CONVERT TO HA 16 7T2B STO 0 3(1) [& PLACE IN CA 15 7TG2 STOZ 0(1) [READ MODE 9 7T_L STOZ SWFIX(2) 17 7WF= CALL 0 PERIDISC [READ CONTROL HEADER 9 7WP4 ... BRN SN7 10 7WYW ... CALL 0 CHECKDISC 8 7X8N ... BRN SN2 9 7XDG ... SMO OSCA(2) 14 7XN# ... LDX 0 5 [GET USN 7 7XY6 SLL 0 6 15 7YCQ SRL 0 6 [ISOLATE IT 16 7YXB TXU 0 SERIALNUM(2) [THAT REQUIRED? 17 7_C2 BCS SN2 [NO, TRY NEXT UNIT 9 7_PC ... SMO OSCA(2) 15 823S ... LDX 0 13 [NO. BLKS/CYL 10 82B= STO 0 NOBPERC(2) 13 82TW STO 3 JLPSBS(2) [YES 9 83*G LDX 0 SNLINK(2) 7 83T6 EXIT 0 1 4 84#Q # 19 84SB SN3 LDX 0 JLBS(2) [WASN'T FOUND ON THAT SUBTYPE 7 85#2 SBN 0 6 17 8992 BNZ 0 SN5 [NOT FOUND ANYWHERE 15 89NL LDN 0 26 [TRY EDS30'S. 8 8=8= LDN 7 EMDS 8 8=MW BRN SN1 4 8?7G # 13 8?M6 # DEVICE WAS INOP OR FAILED. WHICH? 9 8#6Q SN7 LDX 0 PDINOP(2) 19 8#LB BZE 0 SN2 [DEVICE WAS OPERABLE & FAILED 10 8*62 SMO NUMINOP(2) 10 8*KL LDN 1 STRINOP(2) 18 8B5= CALL 0 JLGEOG [INSERT GEOGNO IN LIST 7 8BJW LDN 0 1 18 8C4G ADS 0 NUMINOP(2) [UPDATE COUN OF GEOGNOS 7 8CJ6 SLL 0 2 18 8D3Q ADS 0 STRINOP(2) [UPDATE MESS. CHAR COUNT 16 8DHB BRN SN2 [TRY NEXT UNIT 9 8DKK ...SN63 LDN 1 XEM2(2) 10 8DMS ... STO 3 XDEVICE(2) 9 8DQ3 ... CALL 0 JLGEOG 9 8DS= ... CALL 6 JLOUT 10 8DWF ... LDX 3 XDEVICE(2) 8 8DYN ... BRN SN2 4 8F32 # 16 8FGL SN5 LDX 0 SNLINK(2) [NOT FOUND EXIT 7 8G2= EXIT 0 0 4 8GFW # 4 8G_G # 18 8HF6 # MT LOADER COMES HERE ON RECEIPT OF ED/FD/DA COMMAND. 12 8HYQ # THEY ARE TREATED AS DA. 14 8JDB # SEARCH IS EDS -> FDS -> EDS30. 16 8JY2 # SERIAL NUMBER IS OPTIONAL 1ST PARAMETER, 17 8KCL ...# E.G. DA *777777,FILENAME (* AND , OPTIONAL). 17 8KX= # IF FILE IS NOT FOUND & SOME DISCS WERE INOP, 20 8LBW # THE INOP DISC STRING IS OUTPUT, SIMILARLY IF A SERIAL 16 8LWG # NO. WAS SPECIFIED & DISC WAS NOT FOUND. 4 8MB6 JLDA 18 8MTQ CALL 0 JLSWAPCH [CHECK SWAPFILE DECLARED 9 8N*B CALL 0 JLPOINT 15 8NT2 LDCH 0 0(1) [GET 1ST CHAR 14 8P4S ... SBN 0 #10 [OCTAL 17 8P#L ... BNG 0 TDA15 [SERIAL NO. SPECIFIED 14 8PJD ... SBN 0 #22 [#32=* 17 8PS= BZE 0 TDA5 [SERIAL NO. SPECIFIED 16 8Q?W CALL 0 JLFNAME [EXTRACT FILENAME 7 8QRG LDN 0 6 16 8R?6 STO 0 JLBS(2) [EDS SEARCHED 1ST 8 8RQQ LDN 0 EDS 21 8S=B STO 0 JLBSUB(2) [EDS SUBTYPE FOR STUBASEX IN SEARCHDI 13 8SQ2 TDA2 FINDPEREC 3,APFOTY,JLBS(2),TDA1 19 8T9L BNG 3 TDA3 [NO MORE UNITS OF THIS TYPE 9 8TP= LDX 0 JLBS(2) 9 925W TDA10 STOZ SWFIX(2) 10 92KG CALL 0 SEARCHDISC 15 9356 BRN TDA1 [NOT THERE 5 93?B ...TDAEM 5 93FL ...#SKI G3 17 93MW ... JENV K1LOADEREM,MEEP [FOUND IT - EMULATION 17 93W6 ... BRN K2LOADERMT [FOUND IT - REAL 1900 4 944B # 9 94J2 TDA3 LDX 0 JLBS(2) 7 953L SBN 0 6 17 98F2 BNZ 0 TDA12 [NOT FOUND ANYWHERE 8 98YL LDN 0 26 9 99D= STO 0 JLBS(2) 8 99XW LDN 0 EMDS 9 9=CG STO 0 JLBSUB(2) 15 9=X6 BRN TDA2 [TRY EDS30'S 4 9?BQ # 14 9?P7 ...TDA5 BCHX 1 / [* GIVEN 13 9#3J ...TDA15 LDN 7 0 [NO * 7 9#B2 LDN 6 7 8 9#KS ... BRN TDA16 7 9#TL TDA6 BCHX 1 / 8 9**= ...TDA16 LDCH 5 0(1) 9 9*SW TXL 5 OCT8(2) 15 9B#G BCS TDA7 [OCTAL CHAR 7 9BS6 SBN 6 7 14 9C?Q BZE 6 TDA14 [NULL SN 14 9CRB SBN 5 #20 [SPACE? 16 9D?2 BZE 5 TDA8 [YES, FOUND SN 14 9DQL SBN 5 #14 [COMMA? 13 9F== BZE 5 TDA8 [YES 6 9FPW SERIALBAD 14 9G9G TDA14 LDN 1 JLSERBAD(2) [BAD SN. 8 9GP6 BRN JLER 8 9H8Q TDA7 BCT 6 TDA9 16 9HNB BRN TDA14 [TOO MANY DIGITS 7 9J82 TDA9 SLL 7 3 15 9JML ADX 7 5 [ADD IN DIGIT 14 9K7= BRN TDA6 [GET NEXT 15 9KLW TDA8 STO 7 SERIALNUM(2) [NOW HAVE SN 18 9L6G BCHX 1 / [STEP OVER COMMA/SPACE 16 9LL6 CALL 0 JLFNAME [EXTRACT FILENAME 16 9M5Q CALL 0 SEARCHBYSN [SEARCH FOR DISC 15 9MKB BRN TDA13 [NOT FOUND 18 9N52 CALL 0 SEARCHDISC [SEARCH SPECIFIED DISC 16 9NJL BRN JLNOFILE [FILE NOT FOUND 14 9P4= ... BRN TDAEM [FOUND IT 4 9PHW # 9 9Q3G TDA12 CALL 5 STRINGOUT 9 9QH6 BRN JLNOFILE 9 9R2Q TDA13 CALL 5 STRINGOUT 8 9RGB BRN XERR1 4 9S22 # 15 9SFL # S/R TO OUTPUT 'UNITS INOP' MESSAGE. 14 9S_= # CALLED VIA X5, USES ALL ACCS. 6 9TDW STRINGOUT 15 9TYG STO 5 STRGLINK(2) [STORE LINK 17 9WD6 LDX 7 STRGMK(2) [REPORTING REQUIRED? 13 9WXQ BNG 7 STR2 [NO 10 9XCB LDX 7 NUMINOP(2) 18 9XX2 BZE 7 STR1 [ALL UNITS WERE OPERABLE 10 9YBL LDX 6 NUMINOP(2) 8 9YW= BZE 6 STR1 10 9_*W ADN 6 STRINOP+3(2) 18 9_TG LDN 5 STRREST(2) [MOVE 'INOPERABLE_*' TO 16 =2*6 MOVE 5 4 [BACK OF MESSAGE 8 =2SQ LDN 0 16 10 =3#B ADS 0 STRINOP(2) 7 =3S2 SBN 7 1 8 =4?L BNZ 7 STR1 8 =4R= LDN 0 #6420 15 =5=W DSA 0 STRINOP+2(2) [REMOVE 'S' 10 =5QG STR1 LDN 1 NEWLINE(2) 17 =6=6 CALL 6 JLOUT [TROW TO NEXT LINE 10 =6PQ LDN 1 STRINOP(2) 16 =79B CALL 6 JLOUT [OUTPUT MESSAGE 7 =7P2 STR2 LDN 0 8 17 =88L STO 0 STRINOP(2) [RECONSTRUCT MESSAGE 9 =8N= LDX 0 SPACES(2) 10 =97W STO 0 STRINOP+3(2) 10 =9MG LDN 3 STRINOP+3(2) 8 ==76 LDN 4 1(3) 16 ==LQ MOVE 3 24 [CLEAR OUT LINE 8 =?6B LDN 0 #6463 15 =?L2 DSA 0 STRINOP+2(2) [RESET 'S' 15 =#5L LDX 5 STRGLINK(2) [RELOAD LINK 7 =#K= EXIT 5 0 4 =M*2 # 4 =MSL # 16 =N#= # MT LOADER COMES HERE ON RECEIPT OF CT COMMAND 4 =NRW # 14 =P?G # CHECK FOR VALID MNEMONIC AS 1ST PARAM 8 =PR6 JLCT LDCT 0 #400 16 =Q=Q ORS 0 PHLAGS(2) [ENSURE F0 SET 9 =QQB W06 CALL 0 JLPOINT 7 =R=2 LDN 2 0 7 =RPL MVCH 1 3 8 =S9= LDX 2 G3DOL 7 =SNW SRL 0 6 14 =T8G SBX 0 WDAC(2) [ = DA, ? 13 =TN6 BNZ 0 JLWRC [NO! 16 =W7Q # EXTRACT SERIAL NO. - 2ND PARAMETER 17 =WMB W01 LDN 7 0 [CLEAR RESULT ACC. 17 =X72 LDN 6 7 [DIGIT CHECK COUNT 8 =XLL W04 LDCH 5 0(1) 9 =Y6= TXL 5 OCT8(2) 15 =YKW BCS W02 [OCTAL CHAR 7 =_5G SBN 6 7 14 =_K6 BZE 6 SERIALBAD [NULL SN. 9 ?24Q TXU 5 SPACE(2) 15 ?2JB BCC W05 [END OF USN 17 ?342 BRN SERIALBAD [NOT A SPACE OR OCTAL 17 ?3HL W02 BCT 6 W03 [CHECK NO.OF DIGITS 14 ?43= BRN SERIALBAD [TOO MANY 7 ?4GW W03 SLL 7 3 17 ?52G ADX 7 5 [ADD IN THIS DIGIT 7 ?5G6 BCHX 1 / 17 ?5_Q BRN W04 [GO FOR ANOTHER CHAR 18 ?6FB W05 STO 7 SERIALNUM(2) [STORE CONVERTED RESULT 19 ?6_2 CALL 0 SEARCHBYSN [SEARCH FOR DISC HOLDING SU 15 ?7DL BRN W16 [NOT FOUND 10 ?7Y= STO 7 TYPEDISC(2) 21 ?8CW # UNIT HAS BEEN LOCATED & DL POINTER IS IN JLPSBS, SUBTYPE IN X7. 19 ?8XG # THE 1ST 128 WDS OF THE CONTROL HEADER BEGIN AT SCA. 9 ?##W LDX 3 JLPSBS(2) 4 ?#SG # 14 ?*#6 # NOW HAVE FOLLOWING DETAILS OF DISC: 13 ?*RQ # SERIALNUMBER IN SERIALNUM 13 ?B?B # SUBTYPE IN X7 & JLBSUB 13 ?BR2 # DL POINTER IN JLPSBS & X3 12 ?C=L # BLKS/CYL IN NOBPERC 12 ?CQ= # NO.OF CYLS IN MAZSIZE 4 ?D9W # 14 ?DPG # MUST CHECK DISC TO BE INITIALISED : 4 ?F96 # 9 ?FNQ # *** BLOCK 1 *** 4 ?G8B # 9 ?GN2 # WDS 0-4 RED TAPE. 11 ?H7L # 5-18 CONTROL HEADER. 18 ?HM= # 19-54 2 FILE INDEX CELLS (FOR SYFLE & ICLSCAFILE). 11 ?J6W # 55-72 UNASSIGNED FIC. 4 ?JLG # 9 ?K66 # *** BLOCK 2 *** 4 ?KKQ # 9 ?L5B # WDS 0-4 RED TAPE 14 ?LK2 # 5-14 FACS FOR SYFLE & ICLSCAFILE 17 ?M4L # 16-20 FIRST CELL IN CHAIN FOR UNALLOCATED AREAS 4 ?MJ= # 4 ?N3W # 12 ?NHG # FIRST GET UNALLOC CHAIN HEAD: 4 ?P36 # 9 ?P*H ... SMO OSCA(2) 17 ?PMY ... LDX 1 10(2) [GET POINTR FROM SCA 16 ?Q2B BZE 1 XERR3 [NO UNALLOC AREAS 16 ?QG2 CALL 6 XCONV [CONVERT TO HA 14 ?Q_L STO 0 SDISCB+3(2) [INTO CA 9 ?RF= LDN 1 SDISCB(2) 9 ?RYW STOZ SDISCB(2) 16 ?SDG CALL 0 PERIDISC [READ DOWN CHAIN 6 ?SY6 NULL 4 ?TCQ # 19 ?TXB # BLOCK CONTAINING START OF CHAIN OF FAC'S FOR UNALLOC AREAS 20 ?WC2 # NOW AT SCAFAC. CHAIN STARTS [WDPART] WDS FROM SCAFAC. 19 ?WWL # WE LOOK FOR LAST CELL IN CHAIN WHICH SHOULD DESCRIBE 16 ?XB= # ALMOST ALL OF THE DISC AS UNALLOCATED. 4 ?XTW # 10 ?Y*G ... LDX 1 OSCAFAC(2) 9 ?YT6 W15 SMO WDPART(2) 14 ?_#Q LDX 0 0(1) [GET FPTR 15 ?_SB BZE 0 W14 [END OF CHAIN 16 #2#2 ANDN 0 #177 [EXTRACT NEW PTR 9 #2RL STO 0 WDPART(2) 15 #3?= BRN W15 [TRY AGAIN 9 #3KM ...W14 SMO OSCA(2) 17 #3Y4 ... LDX 0 14 [NO. OF CYS ON DISC 16 #4=G STO 0 MAXSIZE(2) [FOR DS COMMAND 4 #4Q6 # 14 #59Q # NO FOREIGN FILES ARE PERMITTED SO... 4 #5PB # 9 #63R ... SMO OSCA(2) 8 #6B8 ... LDX 0 11 16 #6NL BNZ 0 XERR3 [NOT INITIALISED 4 #78= # 17 #7MW # THERE SHOULD BE FICS FOR SYFLE & ICLSCAFILE ONLY 15 #87G # I.E. WD 53 OF SCA SHOULD BE #400:0 4 #8M6 # 8 #96Q LDCT 0 #400 9 #9F7 ... SMO OSCA(2) 8 #9RJ ... SBX 0 53 16 #=62 BNZ 0 XERR3 [NOT INITIALISED 4 #=KL # 10 #?5= # EVERYTHING SEEMS OK 4 #?JW # 8 ##4G LDCT 5 #300 15 ##J6 STO 5 PHLAGS(2) [F0=0,F2=F1=1 17 #*3Q STOZ XFILES(2) [CLEAR COUNT OF DS'S 10 #*HB STO 3 SDISCDL(2) 8 #B32 BRN JLXOK 4 #BGL # 17 #C2= W16 CALL 5 STRINGOUT [OUPUT ANY INOP UNITS 8 #CFW BRN XERR1 4 #C_G # 4 #DF6 # 4 #DYQ # 17 #FDB # MT LOADER COMES HERE IF A DS COMMAND IS RECEIVED. 19 #FY2 # THE COMMAND IS VALIDATED & CONTENTS PLACED IN TABLE 14 #GCL # XFILES; 5WD ENTRIES AFTER WD 0. 19 #GX= # WD0 OF XFILES CONTAINS NO. OF CORRECT DS COMMANDS 14 #HBW # SO FAR RECEIVED & THEN: 11 #HWG # WDS0-2 FILENAME 14 #JB6 # WD3 START CYLNO OF FILE 13 #JTQ # WD4 END CYLNO OF FILE 4 #K*B # 9 #KT2 JLDS LDX 0 PHLAGS(2) 16 #L#L BNG 0 XERR4 [WRONG CONTEXT 7 #LS= SLL 0 2 16 #M?W BZE 0 XERR4 [WRONG CONTEXT 7 #MRG LDN 0 1 9 #N?6 ADX 0 XFILES(2) 7 #NQQ SBN 0 4 20 #P=B BPZ 0 XERR4 [ALREADY HAVE 3 GOOD DS COMMANDS 9 #PQ2 CALL 0 JLPOINT 9 #Q9L LDX 6 XFILES(2) 9 #QP= MPY 6 XFIVE(2) 10 #R8W ADN 7 XFILES+1(2) 19 #RNG # EXTRACT FIRST PARAMETER [X7]-> VACANT WD IN FILE LIST 15 #S86 CALL 0 JLFNAMEC [GET FILENAME 4 #SMQ # 19 #T7B # MUST CHECK THAT FILENAME HAS NOT APPEARED IN A PREVIOUS DS 4 #TM2 # 9 #W6L LDX 0 XFILES(2) 15 #WL= BZE 0 ZDS9 [THIS DS #1 10 #X5W LDN 3 XFILES+1(2) 9 #XKG LDX 4 FINAME(2) 10 #Y56 LDX 5 FINAME+1(2) 10 #YJQ LDX 6 FINAME+2(2) 8 #_4B ZDS10 TXU 4 0(3) 8 #_J2 TXU 5 1(3) 8 *23L TXU 6 2(3) 14 *2H= BCC XERR7 [= NAMES 17 *32W ADN 3 5 [ELSE LOOK AT REST 14 *3GG BCT 0 ZDS10 [IF ANY 4 *426 ZDS9 9 *4FQ LDN 6 FINAME(2) 15 *4_B MOVE 6 3 [PUT IN LIST 7 *5F2 SMO 7 21 *5YL LDN 3 3 [POINTER THIS ENTRY IN XFILES, WD 3 17 *6D= ZDS8 LDN 4 2 [2 NUMBERS TO CONVERT 17 *6XW ZDS5 BCHX 1 / [LOOK AT NEXT OPERAND 14 *7CG LDN 6 0 [CLEAR X 14 *7X6 LDN 7 0 [CLEAR X* 8 *8BQ ZDS6 CDB 6 0(1) 16 *8WB BCS ZDS7 [NON-NUMERIC CHAR 15 *9B2 BCHX 1 / [GO FOR NEXT 8 *9TL BRN ZDS6 15 *=*= ZDS7 BNZ 6 XERR5 [HUGE OPERAND 15 *=SW BZE 7 XERR5 [SUMMAT WRONG 8 *?#G LDCH 5 0(1) 9 *?S6 TXU 4 ONE(2) 9 *#?Q TXU 5 SPACE(2) 19 *#RB BCC ZDS3 [SPACE AT END OF 3RD PARAM 9 **?2 TXU 4 TWO(2) 9 **QL TXU 5 COMMA(2) 16 *B== BCS XERR5 [ERROR SOMEWHERE 16 *BPW ZDS3 TXL 7 MAXSIZE(2) [COMPARE WITH MAX 16 *C9G BCC XERR5 [CYLNO TOO BIG 17 *CP6 STO 7 0(3) [INSERT STARTCYLNO 12 *D8Q ADN 3 1 [ 17 *DNB BCT 4 ZDS2 [GO FOR ANOTHER PARAM 17 *F82 NGX 5 STOR(2) [X5]= -START CYLNO 17 *FML ADX 5 7 [X5]= END - START 14 *G7= BNG 5 XERR5 [INVALID 9 *GLW LDX 0 XFILES(2) 18 *H6G BZE 0 ZDS1 [FINISHED SINCE 1ST DS 16 *HL6 SBN 3 6 [POINT TO LAST EC 14 *J5Q LDX 6 0(3) [GET IT 15 *JKB SBX 6 4(3) [- THIS SC 13 *K52 ADN 6 1 [+1 17 *KJL BNZ 6 XERR5 [NOT CONTIGUOUS FILES 8 *L4= BRN ZDS1 4 *LHW # 18 *M3G ZDS2 STO 7 STOR(2) [STORE FIRST BIN VALUE 9 *MH6 LDX 0 XFILES(2) 15 *N2Q BNZ 0 ZDS5 [NOT 1ST DS 4 *NGB # 16 *P22 # FILES ARE TO START ON 1ST AVAILABLE CYLINDER 4 *PFL # 7 *P_= LDX 6 7 18 *QDW MPY 6 NOBPERC(2) [START BLKNO ASKED FOR 10 *QQ= ... LDX 5 OSCAFAC(2) 8 *R3L ... ADN 5 1 7 *R*2 ... SMO 5 10 *RLB ... TXU 7 WDPART(2) 15 *RXQ BCS XERR5 [NOT THE SAME 8 *SCB BRN ZDS5 4 *SX2 # 7 *TBL ZDS1 LDN 0 1 18 *TW= ADS 0 XFILES(2) [UPDATE CORRECT DS COUNT 8 *W*W LDCT 0 #500 15 *WTG ANDS 0 PHLAGS(2) [ENSURE F1=0 8 *X*6 BRN JLXOK 4 *XSQ # 4 *Y#B # 4 *YS2 # 17 *_?L # MT LOADER COMES HERE ON RECEIPT OF AN EF COMMAND. 18 *_R= # WE NOW SET ABOUT ALLOCATING THE REQUESTED FILES. 4 B2=W # 4 B2QG # 9 B3=6 JLEF LDX 0 PHLAGS(2) 7 B3PQ SLL 0 1 16 B49B BNG 0 XERR4 [WRONG CONTEXT 7 B4P2 SLL 0 1 16 B58L BZE 0 XERR4 [WRONG CONTEXT 4 B5N= # 8 B67W # FAC FORMAT: 4 B6MG # 11 B776 # WD 0 = 0-> END OF CHAIN 15 B7LQ # 1 = BLK ADDR OF 1ST BLK IN FILE AREA 16 B86B # 2 = BLK ADDR OF LAST BLK+1 IN FILE AREA 10 B8L2 # 3 = SERIAL NO. 11 B95L # 4 = BLKS/CYL OF UNIT 4 B9K= # 6 B=4W # DATA: 4 B=JG # 12 B?46 # SERIALNUM - SERIAL NO OF UNIT 12 B?HQ # SDISCDL - PTR TO DL FOR DISC 11 B#3B # TYPEDISC - DISC SUBTYPE 11 B#H2 # XFILES - NO.OF FILES 13 B*2L # XFILES+1->15 - DETAILS OF FILES 4 B*G= # 4 B*_W # 15 BBFG LDN 5 0 [FIC POINTER 10 BB_6 LDX 0 NOBPERC(2) 19 BCDQ LDX 4 XFILES(2) [NO.OF FILES TO BE ALLOCATED. 9 BCYB SMO WDPART(2) 10 BD=R ... LDX 1 OSCAFAC(2) 19 BDK8 ... ADN 1 5 [START OF VACENT FAC CHAIN 17 BDXL LDN 3 XFILES+1(2) [START OF FILE INFO. 9 BF=3 ...QEF1 SMO OSCA(2) 19 BFJD ... LDX 6 12 [POINTER TO FAC WHICH IS... 19 BFWW STO 6 TEMPLATE+1(2) [TO BE USED FOR THIS FILE. 17 BGBG LDX 6 0(1) [UPDATE FREE FAC... 9 BGNX ... SMO OSCA(2) 16 BH3# ... STO 6 12 [CHAIN POINTER. 17 BH*Q STOZ 0(1) [MARK FAC AS LAST. 18 BHTB LDX 6 3(3) [START CYLNO OF FILE... 16 BJ*2 MPY 6 0 [*NO.BLKS/CYL... 19 BJSL STO 7 1(1) [GIVES START BLKNO OF FILE. 16 BK#= LDX 6 4(3) [GET END CYLNO. 7 BKRW ADN 6 1 7 BL?G MPY 6 0 15 BLR6 STO 7 2(1) [END BLKNO+1 10 BM=Q LDX 6 SERIALNUM(2) 18 BMQB STO 6 3(1) [STORE SERIALNUM IN FAC 18 BN=2 STO 0 4(1) [STORE BLKS/CYL IN FAC 15 BNPL LDN 6 0(3) [->FILENAME 10 BP9= LDN 7 TEMPLATE+2(2) 17 BPNW MOVE 6 3 [->FIC & MOVE IN FN 10 BQ8G LDN 6 TEMPLATE(2) 7 BQN6 SMO 5 9 BR2H ... LDX 7 OSCA(2) 8 BR#Y ... ADN 7 53 18 BRMB MOVE 6 17 [MOVE FIC ENTRY TO BUFFER 4 BS72 # 18 BSLL ADN 1 5 [POINT TO NEXT VACANT FAC 7 BT6= ADN 3 5 8 BTKW ADN 5 17 8 BW5G BCT 4 QEF1 4 BWK6 # 18 BX4Q # MUST UPDATE FAC FOR UNALLOCATED AREA. FILES HAVE BEEN 16 BXJB # CLOSEPACKED SO NO NEW CELLS ARE NEEDED. 20 BY42 # [X1]-3 IS ADDRESS OF WORD CONTAINING END BLKNO+1 OF LAST 19 BYHL # FILE ALLOCATED, I.E. START BLKNO OF UNALLOCATED AREA 4 B_3= # 7 B_GW SBN 1 3 8 C22G LDX 6 0(1) 10 C2?W ...QEF2 LDX 1 OSCAFAC(2) 8 C2K= ... ADN 1 1 9 C2WL ... SMO WDPART(2) 8 C382 ... STO 6 0(1) 4 C3FB # 4 C3_2 QEF4 4 C4DL # 10 C4Y= # INSERT NEW CHECKSUMS 4 C5CW # 9 C5XG ... LDX 1 OSCA(2) 8 C6C6 SUM 0 128 9 C6Q? ... SMO OSCA(2) 14 C75D ... SBS 0 1 [BLOCK 1 10 C7DK ... LDX 1 OSCAFAC(2) 8 C7RQ ... SUM 0 128 10 C86X ... SMO OSCAFAC(2) 17 C8G4 ... SBS 0 1 [BLK CONTAINING FAC'S 4 C8T= # 9 C9#W # REWRITE BUFFERS 4 C9SG # 14 C=#6 LDN 1 SDISCA(2) [FOR SCA 7 C=RQ LDN 7 1 15 C??B STO 7 0(1) [WRITE MODE 15 C?R2 STO 7 SDISCB(2) [WRITE MODE 14 C#=L LDX 3 SDISCDL(2) [DL PTR 15 C#Q= CALL 0 PERIDISC [REWRITE SCA 6 C*9W NULL 15 C*PG LDN 1 SDISCB(2) [FOR FAC BLK 16 CB96 CALL 0 PERIDISC [REWRITE FAC BLK 6 CBNQ NULL 8 CC8B LDCT 6 #200 16 CCN2 STO 6 PHLAGS(2) [F0=0,F1=1,F2=0 8 CD7L BRN JLXOK 4 CDM= # 4 CF6W # 4 CFLG # 4 CG66 # 14 CGKQ # ERROR PATHS FOR CT,DS,EF DIRECTIVES 4 CH5B # 9 CHK2 XERR1 LDN 1 XEM1(2) 8 CJ4L BRN JLER 9 CKHG XERR3 LDN 1 XEM3(2) 8 CL36 BRN JLER 9 CLGQ XERR4 LDN 1 XEM4(2) 8 CM2B BRN JLER 9 CMG2 XERR5 LDN 1 XEM5(2) 8 CM_L BRN JLER 8 CNF= XERR6 BRN JLWRC 9 CNYW XERR7 BRN JLUSED 4 CPDG # 4 CPY6 # 4 DDWG ) 4 DFB6 # 4 DFTQ # 6 DG5J ...#GAP 1023-0? 4 DG*B #END 6 ____ ...260311030001