{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FFFNORM7)}}
====== FFFNORM7 ======
(George Source)
**Macros used:** [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CHNUMCO1|CHNUMCO1]], [[george:macro:FINDWFL|FINDWFL]], [[george:macro:FREECORE|FREECORE]], [[george:macro:IET|IET]], [[george:macro:IETS|IETS]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:P|P]], [[george:macro:PHOTO|PHOTO]], [[george:macro:R|R]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP|SETREP]], [[george:macro:SETREP2|SETREP2]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:T|T]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]], [[george:macro:V|V]], [[george:macro:VFREE|VFREE]], [[george:macro:WORKNUMB|WORKNUMB]]
22FL #LIS K0FFFNORM>K0ALLGEO>0
22^= #SEG FFFNORM7 [ J BILLINGHAM
23DW #
23YG # FANTASTICALLY FAST FNORM.
24D6 # -------------------------
24XQ #
25CB # THIS SEGMENT CONVERTS AN UN-QUALIFIED HELD IN A
25X2 # FILE/FNAME BLOCK INTO AN ABSOLUTE NAME IN A FILE/FABSNB BLOCK USING
26BL # THE MINIMUM NUMBER OF COORDINATIONS (NORMALLY NONE).
26W= #
27*W # EXITS ARE AS FOLLOWS -
27TG #
28*6 # DOWN+2 ALL IS WELL, FABSNB SET UP, REPLY 'OK' SET.
28SQ #
29#B # DOWN+1 SOMETHIG WRONG, NO FABSNB SET UP, NO ERROR MESSAGE.
29S2 #
2=?L # REPLY 'NAMEFORM' - A GENUINE SYNTAX ERROR
2=R= # REPLY 'ADJUNCTS' - LOOKS IF ADJUNCTS ARE PRESENT ( NOT CATERED FOR
2?=W # REPLY 'CHNUMERR' - ERROR IN A NUMBER SOMEWHERE.
2?QG #
2#=6 8HFFFNORM
2#PQ #
2*9B SEGENTRY K1FFFNORM,N1FFFNORM [ONLY ENTRY POINT
2*P2 #
2B8L #
2BN= # NUMBER CONVERSION ROUTINE. WORKS FASTEST IF THE NUMBER IS DECIMAL.
2C7W # OTHERWISE A CPB/CUNI MUST BE SET UP AND ONE OF THE CHNUMCON ROUTINES
2CMG # ENTERED. NOTE THAT ANY ERROR REQUIRES THE MESSAGE SUPPRESSED BECAUSE
2D76 # ONLY THE ESSENTIAL DETAILS OF THE CPB/CUNI ARE SET UP.
2DLQ # ENTERED AT NUMCON1 TO START AT CURRENT CHARACTER, NUMCON2 TO START
2F6B # AT NEXT CHARACTER. [X0] AND [X2] ARE UPDATED PROPERLY.
2FL2 #
2G5L NUMCON1
2GK= #
2H4W SBX 6 FX1
2HJG STO 6 AWRK1(1)
2J46 LDN 5 0
2JHQ LDX 6 2 [WE MUST SET
2K3B SLC 6 2 [ACOM5 TO THE
2KH2 SBN 6 1 [RELATIVE CHARACTER
2L2L SRC 6 2 [ADDRESS OF START IN
2LG= SBX 6 AWORK2(1) [CASE NON-NUMERIC AND
2L^W STO 6 ACOM5(1) [WE HAVE TO START AGEN
2MFG LDX 6 0
2M^6 ADN 6 1
2NDQ STO 6 ACOM3(1) [SAVE CHAR COUNT ALSO
2NYB LDN 6 0
2PD2 BNZ 0 N2
2PXL BRN M [ERROR NO MORE
2QC= #
2QWW NUMCON2
2RBG #
2RW6 SBX 6 FX1
2S*Q STO 6 AWRK1(1)
2STB LDN 5 0
2T*2 STO 2 ACOM5(1)
2TSL LDX 6 AWORK2(1)
2W#= SBS 6 ACOM5(1) [SAVE CHAR ADDRESS
2WRW STO 0 ACOM3(1) [AND CHAR COUNT
2X?G LDN 6 0
2XR6 N1 BZE 0 M [ERROR IF NO MORE LEFT
2Y=Q LDCH 7 0(2)
2YQB BCHX 2 £
2^=2 SBN 0 1
2^PL N2 LDN 4 #31
329= SBS 7 4
32NW BZE 4 N9 [END IF RP
338G ADN 4 3
33N6 BZE 4 N9 [END FI COMMA
347Q ADN 4 3
34MB BZE 4 N9 [END IF SLASH
3572 CDB 5 7 [CONVERT
35LL BCC N1 [J IF OK
366= #
36KW # TURNS OUT THAT THE EXPRESSION WAS NOT DECIMAL AFTER ALL. WE MUST DO A
375G # CHNUMCON WHICH INVOLVES SETTING UP A UNI-PARAMETER BLOCK.
37K6 #
384Q LDX 1 AWRK2(1) [HERE WE MAKE THE UNI BOOCK THESAME
38JB SETUPCORE ALOGL(1),3,CPB,CUNI[LENGTH AS THE FNAME (EASY WAY OUT)
3942 LDX 7 AWRK3(2)
39HL TESTMOVE 7,N3 [J IF NOTHING MOVED
3=3= CALL 5 UNT [HUNT BLOCKS
3=GW N3 LDX 1 FX2
3?2G LDX 0 ACOM3(1) [RESET POINTERS
3?G6 LDX 2 ACOM5(1)
3?^Q ADX 2 AWRK2(1)
3#FB LDN 1 APARA(3) [START OF O/P
3#^2 STOZ ANUM(3)
3*DL LDN 5 1
3*Y= LDN 6 0
3BCW BRN N40
3BXG N4 BCHX 2 £
3CC6 SBN 0 1
3CWQ N40 BZE 0 M [ERROR IF NO RP
3DBB LDCH 7 0(2)
3DW2 LDX 4 7
3F*L SBN 4 #30
3FT= BNZ 4 N6 [J NOT LP
3G#W ADN 6 1 [COUNT IT
3GSG N5 DCH 7 0(1)
3H#6 BCHX 1 £ [INSERT IN CUNI
3HRQ ADS 5 ANUM(3)
3J?B BRN N4
3JR2 N6 ADN 4 #30-#20
3K=L BZE 4 N4 [IGNORE SPACE
3KQ= SBN 4 #31-#20
3L9W BNZ 4 N10 [IF RP AND NESTED CARRY ON
3LPG SBN 6 1
3M96 BPZ 6 N5
3MNQ N60 LDX 1 FX2
3N8B SBX 2 AWRK2(1)
3NN2 STO 2 ACOM5(1)
3P7L STO 0 ACOM3(1)
3PM= CHNUMCO1 1 [CONVERT
3Q6W FREECORE 3 [FREE THE CPB/CUNI
3QLG TESTRPN2 OK,NUMERR [J IF FAILED
3R66 LDX 7 AWRK3(2)
3RKQ TESTMOVE 7,N7 [J NOT MOVED
3S5B CALL 5 UNT [HUNT BLOCKS
3SK2 N7 LDX 1 FX2
3T4L LDX 0 ACOM3(1)
3TJ= LDX 2 ACOM5(1)
3W3W ADX 2 AWRK2(1)
3WHG LDCH 7 0(2)
3X36 BCHX 2 £ [UPDATE POINTER
3XGQ SBN 0 1 [AND COUNT
3Y2B N8 LDX 6 AWRK1(1)
3YG2 ADX 6 FX1
3Y^L EXIT 6 0
3^F= N9 STO 6 ACOM1(1)
3^YW BRN N8
42DG N10 SBN 4 #34-#31 [J TO CONVERT
42Y6 BZE 4 N60 [IF COMMA
43CQ SBN 4 #37-#34
43XB BNZ 4 N5
44C2 BZE 6 N60 [SLASH IN PARENTHESIS?
44WL BRN N5
45B= #
45TW UNT MHUNT 1,FILE,FABSNB
46*G STO 1 AWRK4(2)
46T6 MHUNT 1,FILE,FNAME
47#Q PHOTO 7
47SB STO 1 AWRK2(2)
48#2 STO 7 AWRK3(2)
48RL EXIT 5 0
49?= #PAG
49QW TABLE [SYNTAX OF
4==G #REP #20
4=Q6 0
4?9Q TABDET [SYNTAX OF
4?PB #REP #20
4#92 0
4#NL O12 #12 [:
4*8= O30 #30 [(
4*MW O31 #31 [)
4B7G O34 #34 [,
4BM6 O36 #36 [.
4C6Q #
4CLB TAILS 12H00010001C1
4D62 #
4DKL N1FFFNORM [ENTRY FROM MACRO FFFNORM
4F5= #
4FJW MHUNT 3,FILE,FNAME [FIND NAME BLOCK
4G4G BNG 3 N [ERROR IF LOST
4GJ6 LDXC 4 ANUM(3) [PARAMETER LENGTH
4H3Q BCS N [ERROR IF NULL
4HHB BZE 4 N [ERROR IF EMPTY
4J32 ANDN 4 #7777 [CLEAR TYPE BITS (NOT NEEDED )
4JGL PHOTO 7
4K2= STO 3 AWRK2(2) [STORE BLOCK'S
4KFW STO 7 AWRK3(2) [WHERE AND WHEN
4K^G SETREP2 OK [ONLY TENTATIVE
4LF6 LDN 3 APARA(3) [WE NOW HAVE TO
4LYQ LDN 5 0 [COUNT THE NUMBER
4MDB LDN 6 0 [OF FULL STOPS
4MY2 S1 LDCH 7 0(3) [AND COLONS
4NCL BCHX 3 £
4NX= BXU 7 O12(1),S2
4PBW ADN 6 1 [COUNT COLON
4PWG S2 BXU 7 O36(1),S3
4QB6 ADN 5 1 [COUNT FULL STOP
4QTQ S3 BXE 7 O30(1),S4 [FINISHED IF
4R*B BCT 4 S1
4RT2 #
4S#L # WE CAN NOW CALCULATE THE LENGTH OF TH FILE/FABSNB. ALGORITHM IS:
4SS= #
4T?W # ALOGLEN=6X(1+NUMBER OF STOPS-NUMBER OF COLONS)+4
4TRG #
4W?6 S4 LDN 0 1
4WQQ SBS 6 0 [ERROR IF TWO OR MORE COLONS
4X=B BNG 0 N
4XQ2 LDX 0 5 [CHECK IF ONE COLON BUT
4Y9L SBX 0 6 [NO STOPS
4YP= BNG 0 N [ERROR IF SO
4^8W STO 6 AWRK1(2)
4^NG LDN 7 6
5286 SBX 5 6 [CALCULATE
52MQ LDX 3 5 [CALCULATE
537B LDN 4 10
53M2 MPA 3 7
546L SETUPCORE 4,3,FILE,FABSNB [GET UPT PUT BLOCK
54L= STO 3 AWRK4(2)
555W LDX 0 ACES [MOVE SPACES
55KG LDN 6 HDREC+1(3) [INTO MOST OF THE
5656 LDN 7 HDREC+2(3) [WORDS
56JQ STO 0 HDREC+1(3) [AUTOMATICALLY MAKES LOCAL NAMES UP T
574B SMO 4 [TWELVE CHARACTERS
57J2 MOVE 6 -5
583L LDN 4 4 [INSERT ADDRESS OF FIRST
58H= STO 4 HDREC(3) [LOCAL NUME
592W LDX 6 AWRK1(2)
59GG BNZ 6 S5 [J IF USERNAME SPECIFIED
5=26 LDN 6 CPFIX(2)
5=FQ LDN 7 A1+1(3) [MOVE IN YOUR NAME
5=^B MOVE 6 3
5?F2 S5 BZE 5 S7 [J IF ONLY ONE LOCAL NAME
5?YL LDN 6 TAILS(1)
5#D= LDN 7 A1+7(3) [MOVE IN STANDARD
5#XW S6 MOVE 6 3 [FOR DIRECTORY NAMES
5*CG ADN 7 6
5*X6 BCT 5 S6
5BBQ S7 LDX 7 AWRK3(2)
5BWB LDX 2 AWRK2(2)
5CB2 TESTMOVE 7,S8 [SET UP NAME BLOCK AGAIN
5CTL MHUNT 2,FILE,FNAME
5D*= SMO FX2
5DSW STO 2 AWRK2
5F#G #
5FS6 # THE OUTPUT BLOCK IS NOW SET UP SO WE CAN START TO PROCESS NAME BLOCK.
5G?Q # [X0]=CHARACTERS LEFT; [X3]=ADDRESS OF NEXT CHARACTER TO ANALYSE;
5GRB # [X1]=ADDRESS OF NEXT CHARACTER IN LOCAL NAME (O/P).
5H?2 #
5HQL S8 LDN 1 0 [SET UP POINTERS
5J== LDX 0 ANUM(2)
5JPW LDN 2 APARA(2)
5K9G ANDN 0 #7777
5KP6 S9 LDCH 7 0(2) [SKIP INITIAL SPACES
5L8Q SBN 7 #20
5LNB BNZ 7 S10 [J NOT SPACE
5M82 BCHX 2 £
5MML BCT 0 S9
5N7= BRN M [ERROR IF ONLY SPACES
5NLW S10 BZE 0 TIDY [J IF FINISHED
5P6G STO 3 6
5PL6 LDCH 7 0(2)
5Q5Q BCHX 2 £
5QKB STO 7 3
5R52 SRC 3 2
5RJL ADX 3 FX1
5S4= LDCH 5 TABLE(3) [LOOK UP IN TABLE
5SHW SBN 0 1
5T3G ADX 5 FX1
5TH6 LDX 3 6
5W2Q EXIT 5 £ [FANOUT
5WGB #
5X22 M FREECORE 3 [SYNTAX ERROR: FREE FILE/FABSNB
5XFL N SETREP NAMEFORM [REPLY INCOMPREHENSIBLE
5X^= UP [GIVE UP
5YDW #
5YYG OO IETS #20,OO-M,TABLE [SPACE
5^D6 BZE 1 S10 [IGNORE IF INITIAL
5^XQ #
62CB O IETS -,O-M [NUMERIC AND HYPHEN
62X2 IET 1,2,3,4,5,6,7,8,9,0
63BL BZE 1 M [NOT ALLOWED AS FIRST CHARACTER
63W= #
64*W P IETS A,P-M [ALPHABETIC
64TG IET B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q
65*6 IET R,S,T,U,V,W,X,Y,Z
65SQ LDN 4 3
66#B SBS 1 4
66S2 BZE 4 M [ERROR IF THIRTENTH CHARACTER
67?L ADX 1 3
67R= SMO HDREC(3)
68=W DCH 7 A1(1) [ELSE OK TO
68QG SBX 1 3
69=6 BCHX 1 £ [SHOVE IT IN
69PQ BRN S10
6=9B #
6=P2 Q IETS (,Q-M [LP - STARTS
6?8L BNZ 1 QUALIF [ERROR IF PRECEEDED BY NULL NAME ELSE
6?N= BRN M [WORK OUT
6#7W #
6#MG R IETS :,R-M [COLON (INTRODUCES USETNAME)
6*76 LDN 6 1
6*LQ LDN 4 #1000
6B6B STO 6 HDREC(3)
6BL2 ANDX 4 ATYPE(3) [ERROR IF . (POSSIBLE) OR : (
6C5L BNZ 4 M [POSSIBLE) ALREADY
6CK= R1 LDN 4 #1000
6D4W LDN 1 0
6DJG ORS 4 ATYPE(3) [MARK 'NOT LOCAL'
6F46 BRN S10
6FHQ #
6G3B SHRIEK IETS !,SHRIEK-M
6GH2 BNZ 1 M [ERROR IF NOT INITIAL
6H2L BNZ 0 SH1 [J IF NOT A LONE !
6HG= LDN 5 0
6H^W BRN SH5
6JFG #
6J^6 S IETS .,S-M [FULL STOP
6KDQ LDX 4 HDREC(3)
6KYB SBN 4 1
6LD2 BZE 4 T [J IF ONLY USERNAME ANALYSED
6LXL LDN 4 6
6MC= ADS 4 HDREC(3) [LAST LOCAL NAME WAS 6 WORDS
6MWW BRN R1 [THEN AS FOR USERNAME
6NBG T LDN 4 4
6NW6 STO 4 HDREC(3)
6P*Q BRN R1
6PTB #
6Q*2 SH1 LDN 4 0
6QSL LDN 5 0 [INITIALISE
6R#= LDN 1 0
6RRW LDCH 7 0(2) [GET NEXT CHAR
6S?G BCHX 2 £
6SR6 SBN 0 1
6T=Q LDX 6 7
6TQB SBN 6 #35
6W=2 BNZ 6 SH3 [J IF NOT -
6WPL LDN 1 1 [MARK -VE
6X9= SH2 BZE 0 SH4 [J NO MORE
6XNW LDCH 7 0(2) [GET NEXT CHAR
6Y8G BCHX 2 £
6YN6 SBN 0 1 [DECREASE COUNT
6^7Q SH3 LDX 6 7
6^MB SBN 6 #20
7272 BZE 6 SH2 [J IF SPACE
72LL CDB 4 7
736= BCS M [NON-DECIMAL
73KW BVSR M [TOO MUCH
745G BRN SH2
74K6 SH4 BNZ 4 M [TOO BIG
754Q BZE 1 SH5 [J IF +VE
75JB NGX 5 5
7642 WORKNUMB 3 [IF NEG CALCULATE
76HL ADX 5 3 [POSITIVE COUNT
773= SH5 SMO FX2
77GW LDX 3 AWORK4 [ADDRESS OF FABSNB
782G STO 5 A1+1(3) [DEPTH OF WORKFILE
78G6 LDN 7 4
78^Q STO 7 HDREC(3)
79FB STOZ A1+2(3)
79^2 SMO FX2
7=DL LDX 7 JOBNO [JOB NUMBER
7=Y= STO 7 A1+3(3)
7?CW FINDWFL 2 [FIND WORKFILE
7?XG TESTREP OK,SH6 [J IF FOUND
7#C6 SETREP NOFILE [ELSE NON-EXISTANT
7#WQ UP
7*BB SH6 LDN 7 10 [SET UP 10 WD FABSNB
7*W2 STO 7 HDREC(3)
7B*L LDN 6 FUSER1(2)
7BT= LDN 7 A1+1(3)
7C#W MOVE 6 9
7CSG LDN 0 #200 [SET B16 OF ATYPE
7D#6 ORS 0 ATYPE(3) [SINCE WORKFILE
7DRQ UPPLUS 1
7F?B #PAG
7FR2 #
7G=L # WE HAVE ALLL THE INFORMATION IN THE ABSOLUTE NAME BLOCK EXEPT FOR
7GQ= # WHIC ARE NOT SPECIFIED SO WE MUST INSERT DEFAULT SETTINGS.
7H9W #
7HPG TIDY
7J96 #
7JNQ LDN 6 6
7K8B LDX 2 HDREC(3) [SET LENGTH TO END
7KN2 ADS 3 2
7L7L ADS 6 HDREC(3)
7LM= STOZ A1+3(2) [ANY REEL
7M6W STOZ A1+4(2) [ANY GENERATION (UGH UGH UGH UGH UGH)
7MLG STOZ A1+5(2) [UNSPECIFIED LANGUAGE
7N66 #
7NKQ VRYTIDY
7P5B #
7PK2 LDN 6 #1000 [JUST BEFORE WE FINISH NOTE THATBWE
7Q4L ERS 6 ATYPE(3) [HAVE INVERTED .LOCAL NAME ONLY. BIT
7QJ= UPPLUS 1 [SO PUT IT BACK. BYE-EE.
7R3W #
7RHG UNCTS [LOOKS LIKE ADJUNCTS
7S36 #
7SGQ SETREP ADJUNCTS
7T2B #
7TG2 NUMERR [ERROR IN NUMBER
7T^L #
7WF= VFREE FILE,FABSNB
7WYW UP
7XDG #PAG
7XY6 #
7YCQ # QUALIF IS THE ROUTINE WHICH DISENTANGLES . CHECKS ARE MADE
7YXB # ON ABSENCE OF (NOT HANDLED).
7^C2 #
7^WL QUALIF
82B= #
82TW LDX 1 HDREC(3)
83*G ADS 3 1
83T6 STOZ A1+3(1) [SET DEFAULT VALUES
84#Q STOZ A1+4(1)
84SB STOZ A1+5(1) [OF REEL, GEN & LANG.
85#2 LDX 1 FX2
85RL QUAL2 BZE 0 M [ERROR NO RP
86?= LDCH 7 0(2)
86QW BCHX 2 £
87=G SBN 0 1
87Q6 QUAL3 STO 3 6
889Q STO 7 3
88PB SRC 3 2
8992 SMO FX1
89NL LDCH 5 TABDET(3) [LOOK UP TABLE
8=8= LDX 3 6
8=MW ADX 5 FX1
8?7G EXIT 5 £ [FANOUT
8?M6 #
8#6Q U BRN M [ERROR
8#LB #
8*62 V IETS #20,V-U,TABDET [SPACE, IGNORE
8*KL BRN QUAL2
8B5= #
8BJW UA IETS A,UA-U [ADJUNCTS?
8C4G IET B,C,D,E,F,G,H,I,J,K,L,M,N
8CJ6 IET O,P,Q,R,S,T,U,V,W,X,Y,Z,*
8D3Q BRN UNCTS [SORRY
8DHB #
8F32 W IETS +,W-U [GENERATION, RELATIVE
8FGL LDCT 6 #200
8G2= BRN X+1
8GFW #
8G^G X IETS -,X-U [GENERATION, RELATIVE
8HF6 LDCT 6 #400
8HYQ SMO HDREC(3)
8JDB STO 6 A1+4(3)
8JY2 CALL 6 NUMCON2 [CONVERT
8KCL LDX 3 AWRK4(1)
8KX= LDX 6 ACOM1(1)
8L74 ... BNG 6 NUMERR
8LBW SMO HDREC(3)
8LWG DLA 6 A1+4(3) [STORE
8MB6 BRN QUAL3
8MTQ #
8N*B Y IETS 0,Y-U [GENERATION, ABSOLUTE
8NT2 IET 1,2,3,4,5,6,7,8,9,(,],#23
8P#L IET #73 [IE [
8PS= CALL 6 NUMCON1
8Q?W LDX 3 AWRK4(1)
8QRG LDX 6 ACOM1(1)
8R?6 SMO HDREC(3)
8RQQ STO 6 A1+4(3)
8S=B BRN QUAL3
8SQ2 #
8T9L Z IETS #34,Z-U [COMMA, IE REEL
8TP= CALL 6 NUMCON2 [CONVERT
8W8W LDX 3 AWRK4(1)
8WNG LDX 6 ACOM1(1)
8X86 BNZ 6 Z2 [IF ZERO SET BIT 2
8XMQ LDCT 6 #100 [BECAUSE ITS REALLY MEANT
8Y7B Z2 SMO HDREC(3)
8YM2 STO 6 A1+3(3) [STORE
8^6L LDN 6 #400
8^L= ORS 6 ATYPE(3) [MARK FOR GETDIR
925W BRN QUAL3
92KG #
9356 MM IETS /,MM-U [SLASH, LANGUAGE
93JQ LDN 6 5
944B LDX 5 ACES
94J2 LDN 1 0
953L MM1 BZE 0 M [ERROR NO RP
95H= LDCH 7 0(2)
962W BCHX 2 £
96GG SBN 0 1
9726 LDX 4 7
97FQ SBN 4 #20
97^B BZE 4 MM1 [IGNORE SPACE
98F2 SBN 4 #31-#20
98YL BZE 4 MM3 [END IF *31
99D= SBN 4 #34-#31
99XW BZE 4 MM3 [END IF *34
9=CG BCT 6 MM2
9=X6 BRN MM3 [J IF 4 CHARACTERS HAD
9?BQ MM2 DCH 7 5(1)
9?WB BCHX 1 £
9#B2 BRN MM1
9#TL MM3 SMO HDREC(3)
9**= STO 5 A1+5(3) [INSERT LANGUAGE
9*SW LDN 5 #100
9B#G ORS 5 ATYPE(3) [SET B17 FOR LANGUAGE
9BS6 LDX 1 FX2
9C?Q BRN QUAL3
9CRB #
9D?2 NN IETS ),NN-U [RP ENDS
9DQL LDN 6 6
9F== ADS 6 HDREC(3) [SET FINAL LENGTH
9FPW NN1 BZE 0 VRYTIDY [END IF END OF STRING
9G9G LDCH 7 0(2) [JUST A QUICK CHECK ON
9GP6 SBN 0 1 [WHAT FOLLOWS THE RP OF
9H8Q SBN 7 #30 [. IF IT IS
9HNB BCHX 2 £ [A LP IT COULD BE ADJUNCTS
9J82 BZE 7 UNCTS [WHICH IS A GREAT SHAME
9JML BRN NN1 [AT THIS POINT
9K7= #
9KLW MENDAREA 50,K100FFFNORM
9L6G #END
^^^^ ...63554023000200000000