{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: EXOPEN867)}}
====== EXOPEN867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BLOCK|BLOCK]], [[george:macro:CLOSEST|CLOSEST]], [[george:macro:GEOERR|GEOERR]], [[george:macro:KEEPMESS|KEEPMESS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFINDSU|MFINDSU]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MUSEST|MUSEST]], [[george:macro:OPENST|OPENST]], [[george:macro:READST|READST]], [[george:macro:RELST|RELST]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP|SETREP]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TRACE|TRACE]], [[george:macro:UNLOCKSU|UNLOCKSU]], [[george:macro:UP|UP]], [[george:macro:USEST|USEST]], [[george:macro:USESTX|USESTX]]
22FL #SEG EXOPEN867
22^= #
23DW # COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23YG #
24D6 #
24XQ #LIS K0EXOPEN
25CB 8HEXOPEN
25X2 # SEGMENT TO FIND FILE INDEX CELL FOR SPECIFIED FILE
26BL # ACTION DETERMINED BY MARKERS IN EXMARK OF EXOF BLOCK
26W= # ENTERED VIA DOWN FROM VARIOUS SEGMENTS TO REFIND FIP
27*W # OR ACROSS FROM SOUP TO LOCATE FIP FOR OPEN MODE
27TG # OUTPUT IS REPLY OK OR EXFAIL ,IF EXFAIL MARKERS FOR REASON SET IN
28*6 # EMARK OF GEXD BLOCK AS FOLLOWS:
28SQ # ABREAK = BREAK-IN WHILST WAITING FOR SU TO COME ONLINE
29#B # OR WAITING FOR SCALO
29S2 # AFAIL = TRANSFER FAIL WHILST READING FIP CELLS
2=?L # OR SCA CORRUPT
2=R= # APLINKF= IPB FAILURE - SCALO NOT AVAILABLE
2?=W # ANONL = UNIT NOT ONLINE (PLEASE LOAD REQUQEST SUPRESSED)
2?QG # ARITE = CD REPLY TO PLEASE LOAD REQUEST
2#=6 # ANFOUND= FILE NOT FOUND
2#PQ #
2*9B #
2*P2 SEGENTRY K1EXOPEN,QK1EXOPEN [REFIND FIP
2B8L SEGENTRY K2EXOPEN,QK2EXOPEN [LOCATE FIP FOR OPEN
2BN= #
2C7W XEWS +EWSCA
2CMG XEWN +EWNOL
2D76 #
2DLQ NX4 #777777
2F6B NX5 #37777777
2FL2 #
2G5L #
2GK= XER1 GEOERR 1,EXOTRAN
2H4W #
2HJG # S/R TO SET X2 POINTING TO EWDAS/EXOF
2J46 # AND X3 POINTING TO EWDAS/GEXD
2JHQ #
2K3B XHUNT MHUNTW 2,EWDAS,EXOF
2KH2 MHUNTW 3,EWDAS,GEXD
2L2L EXIT 5 0
2LG= #
2L^W #
2MFG # S/R TO FIND AND GET NEXT S.U.
2M^6 # LINK X7
2NDQ # ON ENTRY AND EXIT X1 POINTS TO CURRENT SU ASTUC
2NYB # X2 EXOF BLOCK
2PD2 # X3 GEXD BLOCK
2PXL #
2QC= # USES X4,X5
2QWW #
2RBG NEXTSU
2RW6 SBX 7 FX1
2S*Q LDN 4 0
2STB NX2 LDX 1 FPTR(1)
2T*2 TXU 1 CXCC
2TSL BCC NX1 [JUMP IF END OF CHAIN
2W#= LDX 0 BACK1(1)
2WRW BZE 0 NX1 [JUMP IF NO MORE ASTUCS
2X?G BNG 0 NX2 [JUMP IF DEAD ASTUC
2XR6 LDCT 0 #200
2Y=Q ANDX 0 ASMARK(1)
2YQB BNZ 0 NX2 [OR DISENGAGED
2^=2 LDX 5 BACK1(1) [SAVE SERIAL NO
2^PL USESTX 5,NX9,,TBREAK,NX9 [ADD ONE TO COUNT OF USERS AND GET SC
329= ADN 7 1 [UPDATE LINK TO EXIT OK
32NW MHUNTW 3,EWDAS,GEXD
338G STO 5 ESERL(3) [SAVE SERIAL NUMBER OF THIS UNIT
33N6 NX1 BZE 4 NX10 [JUMP IF NO UNIT SAVED
347Q RELST 4 [OTHERWISE RELEASE IT
34MB NX10 CALL 5 XHUNT
3572 ADX 7 FX1
35LL EXIT 7 0
366= #
36KW # SCALO NOT AVAILABLE OR IN USE BY S-TRUSTED
375G #
37K6 NX9 BZE 4 NX11 [JUMP IF NO UNIT SAVED
384Q RELST 4
38JB NX11 LDX 4 5 [SAVE NEW UNIT SERIAL NO.
3942 MFINDSU 1,4 [REFIND ASTUC
39HL CALL 5 XHUNT
3=3= BRN NX2 [JUMP TO GET NEXT UNIT
3=GW #
3?2G # BREAKIN WHILE WAITING FOR LOCK-OUT FROM OTHER PROCESSOR
3?G6 #
3?^Q TBREAK
3#FB CALL 5 XHUNT
3#^2 LDN 0 ABREAK
3*DL ORS 0 EMARK(3) [SET BREAK IN MARKER
3*Y= BRN NX1
3BCW #
3BXG #
3CC6 #
3CWQ # READ S/R LINK X5 ADDRESS X1
3DBB #
3DW2 XREAD
3F*L SBX 5 FX1 [READ S/R
3FT= READST 1,XRD1
3G#W TESTREPNOT OK,XRD2
3GSG LDX 1 ECOR(3)
3H#6 XRD1 MHUNTW 2,EWDAS,EXOF
3HRQ ADX 5 FX1
3J?B EXIT 5 1
3JR2 XRD2 TESTREPNOT EXFAIL,XER1
3K=L ADX 5 FX1
3KQ= EXIT 5 0
3L9W #
3LPG #
3M96 # UNLOCK UNIT S/R LINK X7 SERIAL NUMBER X1
3MNQ #
3N8B XUNLOCK
3NN2 SBX 7 FX1
3P7L UNLOCKSU 1
3PM= CALL 5 XHUNT
3Q6W ADX 7 FX1
3QLG EXIT 7 0
3R66 #
3RKQ # OPEN UNIT S/R LINK X7 SERIAL NO. ESERL(3)
3S5B #
3SK2 XOPEN
3T4L OPENST
3TJ= EXIT 7 0
3W3W #
3WHG #
3X36 # START HERE
3XGQ # THROUGHOUT X2 POINTS TO EXOF BLOCK
3Y2B # X3 POINTS TO GEXD BLOCK
3YG2 #
3Y^L QK2EXOPEN
3^F= NGNC 0 1
3^YW QK1EXOPEN
42DG LDN 0 0
42Y6 STO 0 AWORK1(2)
43CQ CALL 5 XHUNT
43XB STOZ EMARK(3) [ZEROISE RESULT MARKER
44C2 ... TRACE EXMARK(2),EXOPEN
44WL ... TRACE ASUSN(2),
45B= #
45TW # CHECK VALID ENTRY PARAMS
46*G #
46T6 LDX 0 EXMARK(2)
47#Q ANDN 0 BOPEN [BOPEN MUST BE SET
47SB BNZ 0 XOPOK
48#2 XMARK GEOERR 1,MARKERR [OTHERWISE ERROR
48RL XOPOK LDX 0 EXMARK(2)
49?= ANDN 0 BCREATE+BRITE
49QW BNZ 0 XMARK
4==G #
4=Q6 LDX 0 EXMARK(2)
4?9Q ANDN 0 BLOCK
4?PB BNZ 0 PS1 [JUMP IF UNIT ALREADY LOCKED
4#92 LDX 0 EXMARK(2)
4#NL ANDN 0 BSERL
4*8= BZE 0 SERCH [JUMP IF SERIAL NUMBER NOT SPECIFIED
4*MW #
4B7G # SERIAL NUMBER SPECIFIED
4BM6 # GET UNIT ONLINE IF NECESSARY
4C6Q #
4CLB USEST ASUSN(2),P2A,,P2F,P2H
4D62 #
4DKL # UNIT NOW MARKED "TO BE KEPT ONLINE" + SCALO CLAIMED
4F5= #
4FJW P2G CALL 5 XHUNT
4G4G LDX 0 ASUSN(2)
4GJ6 STO 0 ESERL(3) [PUT SERIAL NUMBER IN GEXD
4H3Q BRN PS1 [GO TO SEARCH FIP CELLS
4HHB #
4J32 # UNIT NOT ONLINE OR IN USE BY S-TRUSTED
4JGL #
4K2= P2A CALL 5 XHUNT
4KFW LDX 0 EXMARK(2)
4K^G ANDN 0 BSUPP [CHECK IF TO SUPPRESS LOAD MESSAGE
4LF6 BZE 0 P2C [JUMP IF NOT
4LYQ KEEPMESS XEWN(1),ASUSN(2) [UNIT NOT ONLINE
4MDB LDN 4 ANONL
4MY2 BRN P2D
4NCL #
4NX= # SCALO NOT AVAILABLE - IPB FAILURE
4PBW #
4PWG P2H LDN 4 APLINKF [IPB FAIL
4QB6 BRN P2D
4QTQ #
4R*B # OUTPUT REQUEST FOR UNIT TO BE PUT ONLINE
4RT2 #
4S#L P2C MUSEST ASUSN(2),P2E,P2F,,P2H
4SS= BRN P2G
4T?W #
4TRG # CANTDO TO REQUEST
4W?6 #
4WQQ P2E LDN 4 ARITE
4X=B BRN P2D
4XQ2 #
4Y9L # BREAK-IN WHILST WAITING FOR UNIT TO BE PUT ONLINE
4YP= #
4^8W P2F LDN 4 ABREAK [BREAKIN
4^NG P2D CALL 5 XHUNT
5286 ORS 4 EMARK(3)
52MQ BRN XERR
537B #
53M2 # BSERL NOT SPECIFIED - START SEARCH OF ALL ONLINE UNITS
546L #
54L= SERCH STOZ ASUSN(2) [ SEARCH ALL ONLINE UNITS
555W LDN 1 BCCB
55KG CALL 7 NEXTSU [GET NEXT UNIT ONLINE
5656 BRN TF4 [NO SUITABLE UNIT FOUND
56JQ #
574B # SEARCH FIP CELLS OF SPECIFIED OR CURRENT UNIT
57J2 #
583L PS1 CALL 7 XOPEN [OPEN UNIT
58H= PS1A LDN 0 147
592W STO 0 HOME(2) [START OF FIP CELLS
59GG PS1B LDX 1 HOME(2)
5=26 CALL 5 XREAD [READ NEXT CELL
5=FQ BRN TF1 [TRANSFER ERROR
5=^B PS1C LDX 0 0(1)
5?F2 BNG 0 US1 [CHECK IF CELL UNUSED
5?YL LDX 5 2(1)
5#D= LDX 6 3(1)
5#XW LDX 7 4(1) [CHECK FILENAMES
5*CG TXU 5 FIP(2)
5*X6 TXU 6 FIP+1(2)
5BBQ TXU 7 FIP+2(2)
5BWB BCS P5 [JUMP IF DIFFERENT
5CB2 LDX 0 EXMARK(2)
5CTL ANDN 0 BSPEC
5D*= BZE 0 P6 [JUMP IF GEN NUMBER NOT SPECIFIED
5DSW LDX 0 6(1) [OTHERWISE CHECK
5F#G SRL 0 12
5FS6 LDX 4 FIP+4(2)
5G?Q SRL 4 12
5GRB TXU 0 4
5H?2 BCS P5 [JUMP IF DIFFERENT
5HQL PS1D LDX 0 ESERL(3)
5J== STO 0 ASUSN(2) [SAVE SERIAL NUMBER
5JPW ADN 2 FIP
5K9G ADN 1 2
5KP6 MOVE 1 15
5L8Q SBN 2 FIP
5LNB SBN 1 2
5M82 LDX 6 1(1) [POINTER TO FDCELL
5MML PS1E LDN 0 1
5N7= STO 0 FBUK(2)
5NLW LDEX 7 FIP+5(2)
5P6G LDX 4 7
5PL6 SLL 4 1
5Q5Q ADX 4 7
5QKB SLL 4 1 [X6 =WORDS REQUIRED FOR FDCELLS
5R52 ADN 4 FDCELLS-A1
5RJL TXU 4 ALOGLEN(2) [JUMP IF BLOCK ALREADY
5S4= BCC PS1F [THE CORRECT LENGTH
5SHW LDX 3 2
5T3G ALTLEN 3,4 [ALTER LENGTH OF EXOF
5TH6 CALL 5 XHUNT
5W2Q PS1F BZE 7 P8 [JUMP IF NO CELLS
5WGB ADN 4 A1-6
5X22 STO 4 EFDC(3) [POINTER TO LAST CELL
5XFL PS1G LDX 1 6
5X^= CALL 5 XREAD
5YDW BRN TF2 [TRANSFER FAIL
5YYG LDX 6 FIP+8(2)
5^D6 ANDN 6 #77 [BUCKET SIZE
5^XQ ADX 2 EFDC(3) [REORGANIZE CELL INTO EXOF
62CB LDX 0 3(1) [SERIAL NUMBER
62X2 SMO FX1
63BL ANDX 0 NX4
63W= STO 0 0(2)
64*W LDX 5 1(1) [GET STARTING CYLINDER,STARTING BLOCK
64TG SMO FX1
65*6 ANDX 5 NX5
65SQ DVS 4 4(1) [ IN X5 AND X4
66#B STO 5 1(2) [
66S2 STO 4 2(2)
67?L SBN 4 1
67R= SBN 5 1
68=W NGS 4 4(2)
68QG NGS 5 3(2)
69=6 LDX 5 2(1) [CALCULATE EB,EC
69PQ SMO FX1
6=9B ANDX 5 NX5
6=P2 SBN 5 1
6?8L DVS 4 4(1)
6?N= ADS 5 3(2) [NUMBER OF CYLINDERS IN AREA
6#7W ADS 4 4(2) [NUMBER OF SEGMENTS/CYLINDER
6#MG LDX 4 3(2) [CALCULATE NUMBER OF BUCKETS IN AREA
6*76 MPY 4 4(2) [X4= TOTAL BLOCKS
6*LQ DVD 4 6
6B6B BZE 4 PS1H
6BL2 GEOERR 1,EXBUCK
6C5L PS1H STO 5 5(2) [NUMBER OF LB'S IN THIS AREA
6CK= LDCT 4 #400
6D4W ANDX 4 2(1)
6DJG ORS 4 3(2) [SAVE FULL DEPTH MARKER
6F46 LDN 0 6
6FHQ SBS 0 EFDC(3) [UPDATE CELL POINTER
6G3B SBN 7 1
6GH2 LDX 6 0(1) [ADDRESS NEXT CELL
6H2L BZE 7 P8 [ JUMP IF NO MORE CELLS
6HG= BNZ 6 PS1G [BACK FOR NEXT CELL
6H^W BRN TF3
6JFG #
6J^6 # NO MORE FILE AREAS
6KDQ #
6KYB P8 STOZ EMARK(3)
6LD2 CALL 5 XHUNT [DO CUMULATIVE TOTALS FOR HIGHEST LBN
6LXL LDEX 4 FIP+5(2)
6MC= BZE 4 P8B [JUMP IF NONE
6MWW ADN 2 FDCELLS-1
6NBG P8A LDX 0 0(2) [HIGHEST LBN IN THIS AREA
6NW6 ADS 0 6(2) [ADD TO NUMBER IN NEXT AREA GIVING
6P*Q [HIGHEST LBN IN THAT AREA
6PTB ADN 2 6
6Q*2 BCT 4 P8A [BACK FOR NEXT AREA IF ANY
6QSL P8B CLOSEST XEND
6R#= TESTREPNOT OK,XER1
6RRW BRN XEND
6S?G #
6SR6 # FILENAME OR GEN DIFFERENT
6T=Q # GET NEXT FIP CELL
6TQB #
6W=2 P5 LDX 0 0(1) [POINTER TO NEXT CELL
6WPL BNZ 0 P5A [JUMPIF NEXT CELL NOT CONSECUTIVE
6X9= LDN 1 17
6XNW ADS 1 ECOR(3) [UPDATE CORE POINTER
6Y8G ADS 1 HOME(2) [ UPDATE B.S HOME
6YN6 LDX 1 ECOR(3)
6^7Q BRN PS1C
6^MB P5A SMO FX1
7272 TXU 0 NX5 [CHECK IF END OF CHAIN
72LL BCC US1 [JUMP IF IT IS
736= STO 0 HOME(2)
73KW BRN PS1B
745G #
74K6 # NO MORE USED CELLS
754Q #
75JB US1 LDN 0 ANFOUND
7642 US1A ORS 0 EMARK(3)
76HL CLOSEST US1B
773= TESTREPNOT OK,XER1
77GW CALL 5 XHUNT
782G US1B LDX 0 EXMARK(2)
78G6 ANDN 0 BSERL
78^Q BNZ 0 S3 [JUMP IF SERIAL NUMBER SPECIFIED
79FB US1C LDX 6 ESERL(3)
79^2 SMO FX2
7=DL STO 6 AWORK4 [PRESERVE X6
7=Y= MFINDSU 1,6
7?CW CALL 7 NEXTSU [GET NEXT S.U,IF ANY
7?XG BRN S3 [JUMP IF NO MORE
7#C6 SMO FX2
7#WQ LDX 6 AWORK4
7*BB LDCT 0 #400
7*W2 ANDX 0 EMARK(3)
7B*L ERS 0 EMARK(3) [UNSET
7BT= BNZ 0 PS1 [J IF NOT TO UNLOCK PREVIOUS UNIT
7C#W LDX 1 6
7CSG CALL 7 XUNLOCK [UNLOCK UNIT
7D#6 RELST 6
7DRQ CALL 5 XHUNT
7F?B BRN PS1 [BACK TO SEARCH NEXT UNIT
7FR2 #
7G=L # NO MORE UNITS TO SEARCH
7GQ= #
7H9W S3 LDX 0 EXMARK(2)
7HPG ANDN 0 BHIGH
7J96 BZE 0 Q4 [J IF NOT HIGHEST GEN
7JNQ #
7K8B # HIGHEST GEN SEARCH-CHECK IF FILE FOUND
7KN2 #
7L7L LDCT 0 #200
7LM= ANDX 0 EMARK(3)
7M6W BZE 0 Q3 [JUMP IF FILE NOT FOUND
7MLG LDX 0 ASUSN(2)
7N66 TXU 0 ESERL(3) [CHECK IF FOUND ON CURRENT UNIT
7NKQ BCC S3A [JUMP IF SAME SU
7P5B LDX 1 ESERL(3)
7PK2 CALL 7 XUNLOCK [UNLOCK UNIT
7Q4L RELST ESERL(3) [AND RELEASE CURRENT UNIT
7QJ= CALL 5 XHUNT
7R3W LDX 0 ASUSN(2)
7RHG STO 0 ESERL(3)
7S36 CALL 7 XOPEN [OPEN UNIT
7SGQ S3A LDX 6 EFDC(3) [START OF FDCELLS
7T2B LDX 0 EHOME(3)
7TG2 STO 0 HOME(2) [GET HOME OF FIP
7T^L BRN PS1E
7WF= #
7WYW # HIGHEST OR ANY GENERATION NUMBER SEARCH
7XDG #
7XY6 P6 LDX 0 EXMARK(2)
7YCQ ANDN 0 BANY
7YXB BNZ 0 PS1D [J0MP IF ANY GEN NUMBER
7^C2 LDX 0 EXMARK(2)
7^WL ANDN 0 BHIGH
82B= BNZ 0 P6A
82TW GEOERR 1,WRNGEN [ERROR IN GEN SPECIFICATION
83*G P6A LDCT 0 #200
83T6 ANDX 0 EMARK(3)
84#Q BZE 0 P6B [JUMP IF NO FILE FOUND YET
84SB LDX 0 FIP+4(2)
85#2 SRL 0 12
85RL LDX 4 6(1)
86?= SRL 4 12
86QW TXL 0 4
87=G BCC P5 [JUMP IF THIS GEN LESS THAN ONE
87Q6 P6B ADN 1 2 [SAVED
889Q ADN 2 FIP
88PB MOVE 1 15
8992 SBN 1 2
89NL SBN 2 FIP
8=8= LDX 0 1(1)
8=MW STO 0 EFDC(3) [POINTER TO FDCELLS
8?7G LDX 0 HOME(2)
8?M6 STO 0 EHOME(3) [SAVE B S HOME
8#6Q LDX 4 ASUSN(2)
8#LB LDX 0 ESERL(3) [SAME
8*62 STO 0 ASUSN(2) [OTHERWISE SAVE SERIAL NUMBER IN EXOF
8*KL LDCT 0 #200
8B5= ANDX 0 EMARK(3)
8BJW BZE 0 P6C
8C4G TXU 4 ESERL(3) [JUMP IF PREVIOUSLY SAVED
8CJ6 BCC P6C [UNIT IS CURRENT UNIT
8D3Q LDX 1 4
8DHB CALL 7 XUNLOCK
8F32 RELST 4 [UNLOCK AND RELEASE OLD UNIT
8FGL CALL 5 XHUNT
8G2= P6C LDCT 0 #600
8GFW ORS 0 EMARK(3) [SET FILE FOUND AND CURRENT
8G^G [UNIT NOT TO BE RELEASED BITS
8HF6 LDX 1 ECOR(3)
8HYQ BRN P5
8JDB #
8JY2 Q4 LDN 0 BLOCK
8KCL ANDX 0 EXMARK(2)
8KX= BNZ 0 Q3A [JUMP IF UNIT LOCKED ON ENTRY
8LBW Q3 LDX 1 ESERL(3)
8LWG CALL 7 XUNLOCK
8MB6 RELST ESERL(3) [UNLOCK AND RELEASE UNIT
8MTQ CALL 5 XHUNT
8N*B Q3A LDX 0 EMARK(3)
8NT2 BNZ 0 XERR [JUMP IF ERROR OCCURRED
8P#L #
8PS= XEND SETREP OK
8Q?W SMO FX2
8QRG LDX 0 AWORK1
8R?6 BZE 0 XEND1
8RQQ ACROSS CHINTEG,1
8S=B XEND1 UP
8SQ2 #
8T9L # FAILURE CASES
8TP= #
8W8W #
8WNG # TRANSFER FAIL WHILE READING FIP CELLS
8X86 #
8XMQ TF1 CALL 5 XHUNT
8Y7B LDN 0 AFAIL
8YM2 ORS 0 EMARK(3) [SET FAIL BIT
8^6L LDX 0 EXMARK(2)
8^L= ANDN 0 BSERL
925W BZE 0 US1C [JUMP IF SERIAL NUMBER NOT SPECIFIED
92KG BRN S3
9356 #
93JQ #
944B # TRANSFER FAIL WHILST READING FACS
94J2 #
953L TF2 CALL 5 XHUNT
95H= LDN 0 AFAIL
962W ORS 0 EMARK(3)
96GG BRN Q4
9726 #
97FQ # SCA CORRUPT
97^B #
98F2 TF3 LDX 1 FX1
98YL KEEPMESS XEWS(1),ESERL(3)
99D= CALL 5 XHUNT
99XW LDN 0 AFAIL
9=CG ORS 0 EMARK(3)
9=X6 CLOSEST TF3A
9?BQ TESTREPNOT OK,XER1
9?WB TF3A CALL 5 XHUNT
9#B2 BRN Q3
9#TL #
9**= #
9*SW # NO SUITABLE SU FOUND
9B#G #
9BS6 TF4 CALL 5 XHUNT
9C?Q LDX 0 EMARK(3)
9CRB ANDN 0 ABREAK
9D?2 BNZ 0 XERR [J IF BREAK IN
9DQL LDN 0 ANFOUND
9F== ORS 0 EMARK(3)
9FPW #
9G9G XERR SETREP EXFAIL
9GP6 SMO FX2
9H8Q LDX 0 AWORK1
9HNB BZE 0 XEND1
9J82 ACROSS CHINERR,1
9JML #
9K7= #
9KLW #
9L6G MENDAREA 30,K99EXOPEN
9LL6 #END
^^^^ ...376130770003