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