{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: PRINTSEG)}}
====== PRINTSEG ======
(GIN Macro)
**Defined in:** [[george:source:MACINTLUDES|MACINTLUDES]]
**Used in:**
3TJ= [??? PRINTSEG SECT DIAG FGN 9 DOC
3W3W #MAC PRINTSEG [M.C.D. MANN AND J.T. WIFFEN
3WHG [
3X36 [
3XGQ [ **************
3Y2B [ * PRINTSEG *
3YG2 [ **************
3Y^L [
3^F= [
3^YW [ THE PARAMETERS OF THE MACRO PRINTSEG ARE -
42DG [
42Y6 [ %A - THE SEGMENT NAME
43CQ [
43XB [ %B - THE SEGMENT VERSION NO. - OPTIONAL
44C2 [
44WL [ %C - THE LISTING LEVEL FOR THE INTERLUDE COMPILATION
45B= [
45TW [ DEPENDENCIES - THE COMPILER VARIABLES - COMPILER SUBROUTINES
46*G [ AND CERTAIN GEORGE UNIVERSALS WHEN PRINTING GEORGE
46T6 [ SEGMENTS
47#Q [
47SB #DEF 19?+7=1?
48#2 #STR %C
48RL #LIS %C
49?= #STR %C
49QW #STR
4==G #LIS 0
4=Q6 #DEF 19?+0=18?+1]+20]
4?9Q #DEF 19?+1=18?+1]+21]
4?PB #DEF 19?+4=37?
4#92 #DEF 19?+6=18?+1]+2]
4#NL #DEF 19?+8=3?
4*8= #FRL
4*MW #DEF MINBUFF=18?+1]+33] [INBUFF ADDRESS IS 18?+1]+33]
4B7G #ORD
4BM6 #INT
4C6Q [ MOVE INTERLUDE 640 WORDS DOWN
4CLB START CALL 2 SKIPDATA
4D62 SKIPDATA
4DKL STO 0 X0SAVE
4F5= LDN 3 639(2)
4FJW SBN 2 1
4G4G MOVE 2 0
4GJ6 BRN NEXT+640 [ENTER MAIN CODE
4H3Q [ GENERAL DATA CONSTANTS
4HHB PRINTHDR 8HSEGMENT
4J32 PRNAME 8H%A
4JGL 4H%B
4K2= 8H D.ADDR
4KFW 8H
4K^G 8H LENGTH
4LF6 4H
4LYQ PRINTGEORGE 12HG3MARK [MUST EXIST AS IDENTIFIER IF GEORGE
4MDB X0SAVE +0
4MY2 PRADSAVE +D%A
4NCL PRLGSAVE +L%A
4NX= SEGMAX +513 [CAN'T DO MORE THAN HALF AT A TIME
4PBW SEGBUF +0 [ADDRESS OF SEGMENT BUFFER
4PWG SEGCUR +0 [CURRENT POSITION IN SEGMENT
4QB6 SPACES #20202020
4QTQ PRINTGSW +0 [SWITCH FOR CHECKING GEORGE MNEMONICS
4R*B SAVREL +0 [SAVED RELATIVISOR
4RT2 STRUCTTYPE +0 [INSTRUCTION TYPE
4S#L SAVFUNCT +0 [FOR SAVING THE FUNCTION NO.
4SS= SAVACCU +0 [SAVE ACCUMULATOR IN CASE BRANCH
4T?W SAVEX +0 [CHARACTER MODIFIER SAVE
4TRG REPLADDR +0 [FOR SAVING MASKED CALL ADDRESS
4W?6 POSSDATA 12HPOSS. DATA [LDXC TYPE ORDERS, OR FLOATING POINT
4WQQ SPECBRNCH #03601200
4X=B SUGGESTD #00000046 [F IN FUNCTION IS POSS. DATA
4XQ2 #00000043 [C AT END IS POSS. DATA
4Y9L REPLMASK #00017777 [FOR MASKING REPLACE CALLS
4YP= NEGFORCE #77740000
4^8W STRISK 4H *+
4^NG NORMI 4HNORM
5286 MODIFS 4H (0)
52MQ TIXE #35
537B [ VARIOUS MNEMONICS
53M2 RANCHDATA
546L 4HBRN
54L= 4HBVS
555W 4HBVSR
55KG 4HBVC
5656 4HBVCR
56JQ 4HBCS
574B 4HBCC
57J2 4HBVCI
583L THEGEO 4HGEO
58H= THISBY 4HISBY
592W THEGERR 4HGERR
59GG #177
5=26 #153
5=FQ #150
5=^B STRUCTS
5?F2 4HLDX
5?YL 4HADX
5#D= 4HNGX
5#XW 4HSBX
5*CG 4HLDXC
5*X6 4HADXC
5BBQ 4HNGXC
5BWB 4HSBXC
5CB2 4HSTO
5CTL 4HADS
5D*= 4HNGS
5DSW 4HSBS
5F#G 4HSTOC
5FS6 4HADSC
5G?Q 4HNGSC
5GRB 4HSBSC
5H?2 4HANDX
5HQL 4HORX
5J== 4HERX
5JPW 4HOBEY
5K9G 4HLDCH
5KP6 4HLDEX
5L8Q 4HTXU
5LNB 4HTXL
5M82 4HANDS
5MML 4HORS
5N7= 4HERS
5NLW 4HSTOZ
5P6G 4HDCH
5PL6 4HDEX
5Q5Q 4HDSA
5QKB 4HDLA
5R52 4HMPY
5RJL 4HMPR
5S4= 4HMPA
5SHW 4HCDB
5T3G 4HDVD
5TH6 4HDVR
5W2Q 4HDVS
5WGB 4HCBD
5X22 4HBZE
5XFL 4HRRRR
5X^= 4HBNZ
5YDW 4HRRRR
5YYG 4HBPZ
5^D6 4HRRRR
5^XQ 4HBNG
62CB 4HRRRR
62X2 4HBUX
63BL 4HRRRR
63W= 4HBDX
64*W 4HRRRR
64TG 4HBCHX
65*6 4HRRRR
65SQ 4HBCT
66#B 4HRRRR
66S2 4HCALL
67?L 4HRRRR
67R= 4HEXIT
68=W 4HRRRR
68QG +RANCHES
69=6 4HRRRR
69PQ 4HBFP
6=9B 4HRRRR
6=P2 4HLDN
6?8L 4HADN
6?N= 4HNGN
6#7W 4HSBN
6#MG 4HLDNC
6*76 4HADNC
6*LQ 4HNGNC
6B6B 4HSBNC
6BL2 +SHIFTS
6C5L +SHIFTS
6CK= +SHIFTS
6D4W +SHIFTS
6DJG +NORM
6F46 +NORM
6FHQ 4HMVCH
6G3B 4HSMO
6GH2 4HANDN
6H2L 4HORN
6HG= 4HERN
6H^W 4HNULL
6JFG 4HLDCT
6J^6 4HMODE
6KDQ 4HMOVE
6KYB 4HSUM
6LD2 4HFLOA
6LXL 4HFIX
6MC= 4HFAD
6MWW 4HFSB
6NBG 4HFMPY
6NW6 4HFDVD
6P*Q 4HLFP
6PTB 4HSFP
6Q*2 4H????
6QSL 4H????
6R#= 4H????
6RRW 4H????
6S?G 4H????
6SR6 4H????
6T=Q 4H????
6TQB 4H????
6W=2 4HSUSB
6WPL 4HREL
6X9= 4HDIS
6XNW 4H????
6Y8G 4HCONT
6YN6 4HSUSD
6^7Q 4HALLO
6^MB 4HPERI
7272 +SUSTYS
72LL +SUSWTS
736= 4HSUSM
73KW 4HAUTO
745G 4HSUSA
74K6 4HGIVE
754Q 4HRRQ
75JB 4H????
7642 4H????
76HL 4H????
773= 4H????
77GW 4H????
782G 4H????
78G6 4H????
78^Q 4H????
79FB 4H????
79^2 [ END OF MAIN INSTRUCTION TABLE
7=DL SHIFTY [SHIFT INSTRUCTIONS
7=Y= 4HSLC
7?CW 4HSLL
7?XG 4HSLA
7#C6 4HSLA
7#WQ 4HSRC
7*BB 4HSRL
7*W2 4HSRA
7B*L 4HSRAV
7BT= SUST
7C#W 4HSUST
7CSG 4HDIST
7D#6 4HDELT
7DRQ SUSW
7F?B 4HSUSW
7FR2 4HDISP
7G=L 4HDEL
7GQ= RJUMPSGEO
7H9W +CHAPK [ACROSS OR ACCROSSVAR
7HPG +CHAPDOWNK [DOWN
7J96 +GCORE [CORE OF SOME KIND
7JNQ +JTRACE [TRACE
7K8B +0
7KN2 MNEMGEO
7L7L 4HACRO
7LM= 4HDOWN
7M6W 4HCORE
7MLG 4HTRAC
7N66 #DEF POUND=MNEMGEO-RJUMPSGEO
7NKQ #DEF TRUESAVE=MINBUFF+3-640
7P5B #DEF QUESTMK=STRUCTS+#140
7PK2 #DEF RRRR=STRUCTS+#71
7Q4L #DEF ORGCALL=RRRR-1
7QJ= #DEF RIGHTJUST=STRUCTS
7R3W [ SPECIAL GEORGE MACROS OR EXTRACODES
7RHG QSPECIAL
7S36 LDX 4 TRUESAVE+640 [INSERT PROPER INST
7SGQ TXU 4 ORGCALL+640
7T2B BCC PRAPSCALL+640
7TG2 LDN 7 3
7T^L LDN 3 THEGEO+640
7WF= POOL LDX 4 0(3)
7WYW LDX 6 3(3)
7XDG TXU 6 SAVFUNCT+640
7XY6 BCC RESET+640
7YCQ ADN 3 1
7YXB '066 7 POOL+640 [[BCT NOT IN #ORD MODE IN GIN503
7^C2 BRN NOTGEORGE+640
7^WL PRAPSCALL
82B= LDN 6 #071 [CHECK REPGACED CALL
82TW TXU 6 SAVFUNCT+640
83*G BCS NOTGEORGE+640
83T6 LDX 4 18?+1]+54 [CHECK GEORGE CALLS
84#Q ANDX 4 REPLMASK+640
84SB STO 4 REPLADDR+640
85#2 LDN 3 RJUMPSGEO+640
85RL TRYNXTGEO
86?= LDX 4 0(3)
86QW BZE 4 NOTGEORGE+640
87=G TXU 4 REPLADDR+640
87Q6 BCC REPMAC+640
889Q ADN 3 1
88PB BRN TRYNXTGEO+640
8992 REPMAC
89NL ADN 3 POUND
8=8= LDX 4 0(3)
8=MW RESET
8?7G STO 4 TRUESAVE+640
8?M6 BRN MOVEON+640
8#6Q [ HANDLE SHIFT INSTRUCTIONS
8#LB SHIFTS
8*62 LDX 4 SAVFUNCT+640
8*KL ANDN 4 #1
8B5= BZE 4 NOTDOUBLE+640
8BJW LDX 4 SAVACCU+640
8C4G LDX 3 SAVEX+640
8CJ6 BCHX 3 XHCB1+640
8D3Q XHCB1
8DHB ADN 4 1
8F32 ANDN 4 #7
8FGL DCH 4 4(3)
8G2= NOTDOUBLE
8GFW LDX 4 SAVFUNCT+640
8G^G ANDN 4 2
8HF6 SLL 4 1
8HYQ ADN 4 SHIFTY+640
8JDB LDX 3 18?+1]+54 [GET STORED WORD
8JY2 SRL 3 10
8KCL ANDN 3 #3
8KX= ADX 3 4
8LBW LDX 4 0(3)
8LWG BRN RESET+640
8MB6 [ HANDLE NORM INSTRUCTIONS
8MTQ NORM
8N*B LDX 4 SAVFUNCT+640
8NT2 ANDN 4 #1
8P#L BZE 4 NORM2+640
8PS= LDX 4 SAVACCU+640
8Q?W ADN 4 1
8QRG ANDN 4 #7
8R?6 LDX 3 SAVEX+640
8RQQ BCHX 3 XHCB1A+640
8S=B XHCB1A
8SQ2 DCH 4 4(3)
8T9L NORM2
8TP= LDX 4 NORMI+640
8W8W STO 4 TRUESAVE+640
8WNG BRN POSSD+640
8X86 [ SUSTY, DISTY,DELTY
8XMQ SUSTYS
8Y7B LDX 3 SAVACCU+640
8YM2 ADN 3 SUST+640
8^6L LDX 4 0(3)
8^L= BRN RESET+640
925W [ SUSWT, DISP, DEL
92KG SUSWTS
9356 LDX 3 SAVACCU+640
93JQ ADN 3 SUSW+640
944B LDX 4 0(3)
94J2 BRN RESET+640
953L [ FOR MARKING POSSIBLE DATA - FLOATING POINT, NORMALISE, LDXC ETC.
95H= [ ALSO LDX AND SUBPROGRAMMING INSTRUCTIONS
962W POSSD
96GG LDN 2 POSSDATA+640 [SHOW INST. AS POSSIBLE DATA
9726 LDN 3 MINBUFF
97FQ MOVE 2 3
97^B BRN MOVEON+640 [BACK INTO REGULAR CODE
98F2 [ GENERATES IDENTIFIER LENGTH FOR FINDIT ROUTINE
98YL Z0X LDN 5 12
99D= LDN 3 0
99XW Z0Y LDCH 7 18?+1]+7(3)
9=CG SBN 7 #20
9=X6 BZE 7 Z0Z+640
9?BQ BCHX 3 Z0RSD+640
9?WB Z0RSD '066 5 Z0Y+640
9#B2 Z0Z SLC 3 3
9#TL ADN 3 #6
9**= ANDN 3 #30
9*SW LDCT 6 0(3)
9B#G STO 6 18?+1]+55 [SAVE ROUNDED LENGTH IN B0-B5
9BS6 SRL 3 3
9C?Q STO 3 18?+1]+56 [SAVE ROUNDED LENGTH IN B0-B23
9CRB EXIT 4 0
9D?2 [ HANDLES BRANCH INSTRUCTIONS
9DQL RANCHES
9F== LDN 4 #20
9FPW LDX 3 SAVEX+640
9G9G DCH 4 4(3)
9GP6 LDN 2 RANCHDATA+640
9H8Q ADX 2 SAVACCU+640
9HNB LDX 4 0(2)
9J82 BRN RESET+640
9JML [ ENTRY POINT AFTER MOVING INTERLUDE DOWN
9K7= NEXT
9KLW [ RESET MODE
9L6G LDX 3 19?+8 [RESTORE REMEMBERED DEVICE TYPE
9LL6 STO 3 18?+3]+3
9M5Q LDN 3 3 [SIMULATE CARD READER IMAGE
9MKB STO 3 18?+1]+2
9N52 NGN 4 1
9NJL STO 4 18?+1]+20
9P4= STOZ 18?+1]+21
9PHW [ SET SEGMENT NAME UP FOR SEARCH
9Q3G LDN 2 PRNAME+640
9QH6 LDN 3 18?+1]+4
9R2Q MOVE 2 3
9RGB [ SET UP SEGMENT NAME IN THE HEADER LINE AND VERSION NO.
9S22 LDN 3 18?+3]+64 [ADDRESS OF SEGMENT NAME
9SFL MOVE 2 3
9S^= [ SEARCH SEGMENT CHAIN
9TDW LDN 1 0
9TYG CALL 0 18?+2]+0]
9WD6 BRN NOTFOUND+640
9WXQ [ SAVE RELATIVISOR
9XCB LDX 4 4(2)
9XX2 STO 4 SAVREL+640
9YBL LDN 2 PRINTGEORGE+640 [LOOK FOR GEORGE SIGN
9YW= LDN 3 18?+1]+7 [ADDRESS OF NAME FOR IDENTIFIER SEARCH
9^*W MOVE 2 3
9^TG STO 3 18?+1]+57 [INDICATE UNIVERSAL
=2*6 CALL 4 Z0X+640
=2SQ LDN 5 0 [ASSUME GEORGE
=3#B CALL 0 18?+2]+1] [FINDIT SUBROUTINE
=3S2 LDN 5 1 [NOT FOUND SO NOT GEORGE
=4?L LDX 4 2(3)
=4R= ANDX 4 18?+4]+23
=5=W BZE 4 OKGEORGE+640
=5QG LDN 5 1 [POSS. 2 PRINTS FROM NON-GEORGE PROGRAM
=6=6 OKGEORGE
=6PQ STO 5 PRINTGSW+640 [SAVE FOR LATER CHECK
=79B CALL 3 18?+2]+5]
=7P2 LDN 1 PRINTHDR+647 [SET UP HEADER LINE
=88L LDX 5 PRADSAVE+640
=8N= CALL 2 18?+2]+9]
=97W LDN 1 PRINTHDR+651
=9MG LDX 5 PRLGSAVE+640
==76 CALL 2 18?+2]+9]
==LQ CALL 5 18?+2]+20]
=?6B LDN 2 PRINTHDR+640
=?L2 LDX 3 18?+1]+62
=#5L MOVE 2 12
=#K= CALL 3 18?+2]+19]
=*4W CALL 3 18?+2]+10] [PRINT BLANKLINE
=*JG [ CHECK ZERO LENGTH
=B46 LDX 2 PRLGSAVE+640
=BHQ BZE 2 ZEROLEN+640
=C3B [ RESET 0?
=CH2 LDN 5 1
=D2L DLA 5 18?+3]+0 [KEEP BIT 0
=DG= [ INITIALISE FOR READ
=D^W SECONDPASS
=FFG LDN 5 34?
=F^6 STO 5 SEGBUF+640
=GDQ LDX 6 PRADSAVE+640
=GYB [ CHECK LENGTH
=HD2 LDX 2 PRLGSAVE+640 [GET LENGTH
=HXL TXL 2 SEGMAX+640
=JC= BCS Z2A+640
=JWW LDN 2 512 [MUST DO IT IN 2 HALVES
=KBG Z2A
=KW6 STO 2 SEGCUR+640 [SAVE FIRST PASS LENGTH
=L*Q SBS 2 PRLGSAVE+640 [DECREMENT LENGTH TO GO
=LTB ADS 2 PRADSAVE+640 [INCREMENT DRUM ADDRESS
=M*2 CALL 0 18?+2]+2]
=MSL BRN Z1A+640
=N#= [ ROUND AS NECESSARY
=NRW LDN 7 127
=P?G ANDX 7 6
=PR6 BZE 7 Z1A+640
=Q=Q ADS 7 SEGBUF+640
=QQB LDX 0 18?+3]+11 [IF 5? DIFFERS FROM 11? THE COMP IS
=R=2 TXU 0 18?+3]+5 [ON DRUM SIMULATING DA
=RPL BCC PRIN1+640 [IF REAL DA INCREASE READ LENDGTH
=S9= ADX 5 7 [IF SIMULATED INCREASE CORE ADDRESS
=SNW BRN Z1A+640
=T8G PRIN1
=TN6 ADX 2 7
=W7Q Z1A
=WMB [ READ SEGMENT DOWN OR PART OF IT
=X72 CALL 0 18?+2]+3]
=XLL LDX 5 SAVREL+640
=Y6= [ RESET RELATIVISOR
=YKW STO 5 18?+3]+37
=^5G [ RESET WORD TYPE
=^K6 STOZ 18?+1]+32
?24Q [ FETCH FIRST WRD
?2JB Z1 LDX 3 SEGBUF+640
?342 LDX 3 0(3)
?3HL [ AND SAVE IT
?43= STO 3 18?+1]+54
?4GW CALL 6 18?+2]+8] [FIND FUNCTION TYPE
?52G [ ZERO IF NORMAL. NEGATIVE IF SHIFT. PSITIVE NON-ZERO IF BRANCH
?5G6 [ SAVE FUNCTION TYPE
?5^Q STO 7 STRUCTTYPE+640
?6FB [ SET IMAGE SIZE
?6^2 LDN 4 18
?7DL STO 4 18?+1]+25
?7Y= [ AND CLEAR CARD LINE
?8CW LDX 6 SPACES+640
?8XG STO 6 MINBUFF [SPACEFILL
?9C6 LDN 2 MINBUFF
?9WQ LDN 3 MINBUFF+1
?=BB MOVE 2 17
?=W2 [ DUMP ACCUMULATOR IN LINE
??*L LDCT 3 256
??T= ORN 3 MINBUFF
?##W LDN 2 STRUCTS+640
?#SG LDX 5 18?+1]+54
?*#6 LDN 4 0
?*RQ SLL 45 3
?B?B DCH 4 4(3)
?BR2 STO 4 SAVACCU+640 [SAVE ACCUMULATOR
?C=L STO 3 SAVEX+640 [SAVE IN CASE OF DOUBLE SHIFT
?CQ= SRL 5 17
?D9W STO 5 SAVFUNCT+640 [SAVE OCTAL FUNOTFON
?DPG ADX 2 5
?F96 LDX 4 0(2)
?FNQ STO 4 TRUESAVE+640
?G8B RETEST
?GN2 BNG 4 NOTSPECIAL+640
?H7L TXU 4 QUESTMK+640
?HM= BCC TRUEMNEM+640
?J6W ADN 4 #1200
?JLG DLA 4 SPECBRNCH+640
?K66 BRN SPECBRNCH+640 [GO AND DEAL WITH IT
?KKQ NOTSPECIAL
?L5B TXU 4 RRRR+640 [IS IT A REPLACER
?LK2 BCS TRUEMNEM+640 [WE HAVE TRUE MNEMONIC
?M4L SBN 2 1 [BACK OFF ONE
?MJ= LDX 4 0(2)
?N3W BRN RETEST+640
?NHG TRUEMNEM
?P36 STO 4 TRUESAVE+640 [SAVE FINAL OUTPUT MNEMONIC
?PGQ LDX 4 PRINTGSW+640 [CHECK IF COMP IS GEORGE
?Q2B [ COMPILATION IS GEORGE IF G3MARK IS AN IDENTIFIER
?QG2 BZE 4 QSPECIAL+640
?Q^L NOTGEORGE
?RF= LDN 3 0 [CLEAR MODIFIER
?RYW LDCH 6 TRUESAVE+640(3)
?SDG TXU 6 SUGGESTD+640
?SY6 BCC POSSD+640
?TCQ SBN 6 #17
?TXB BZE 6 POSSD+640
?WC2 BCHX 3 XHCB2+640
?WWL XHCB2
?XB= LDCH 6 TRUESAVE+640(3)
?XTW TXU 6 SUGGESTD+640
?Y*G BCC POSSD+640
?YT6 BCHX 3 XHCB3+640
?^#Q XHCB3
?^SB BCHX 3 XHCB4+640
#2#2 XHCB4
#2RL LDCH 6 TRUESAVE+640(3)
#3?= TXU 6 SUGGESTD+641
#3QW BCC POSSD+640
#4=G LDX 6 TRUESAVE+640
#4Q6 TXU 6 RIGHTJUST+640
#59Q BCC POSSD+640
#5PB LDX 6 SAVFUNCT+640
#692 SBN 6 #162
#6NL BNG 6 MOVEON+640
#78= SBN 6 #3
#7MW BNG 6 POSSD+640
#87G [ FINISH LINE
#8M6 MOVEON
#96Q LDN 1 MINBUFF+6
#9LB LDX 7 STRUCTTYPE+640
#=62 LDX 5 18?+1]+54 [GET STORED WORD
#=KL BZE 7 PRI16+640 [NON-BRANCH
#?5= BNG 7 PRI16A+640 [IT'S A SHIFT
#?JW SLL 5 3 [RID OF X
##4G LDN 4 0
##J6 SLL 45 6
#*3Q TXU 4 TIXE+640 [IS IT AN EXIT
#*HB BCC PRI17+640
#B32 LDX 6 18?+3]+3 [FIND CURRENT MODE
#BGL BNZ 6 PRI17+640
#C2= [ EXTENDED MODE AND MAY BE GEORGE
#CFW BNG 5 PRI18+640
#C^G [ NOT A REPLACED JUMP
#DF6 SLL 5 1
#DYQ LDX 6 STRISK+640
#FDB STO 6 MINBUFF+5
#FY2 BPZ 5 PRI19+640
#GCL [ NEGATIVE RELATIVE
#GX= SRL 5 10
#HBW ORX 5 NEGFORCE+640
#HWG NGX 5 5
#JB6 LDN 6 #200 [CHANGE + TO -
#JTQ ADS 6 MINBUFF+5
#K*B BRN PRI20+640
#KT2 PRI19
#L#L SRL 5 10
#LS= BRN PRI20+640
#M?W PRI16
#MRG ANDN 5 #7777
#N?6 BRN PRI16B+640
#NQQ PRI16A
#P=B ANDN 5 #1777
#PQ2 PRI16B
#Q9L [ GET MODIFIER
#QP= LDX 6 18?+1]+54
#R8W SRL 6 12
#RNG ANDN 6 #3
#S86 BZE 6 PRI20+640
#SMQ SLL 6 6
#T7B ORX 6 MODIFS+640
#TM2 STO 6 MINBUFF+8
#W6L BRN PRI20+640
#WL= PRI17
#X5W SRL 5 9
#XKG BRN PRI20+640
#Y56 PRI18
#YJQ ADN 1 2
#^4B SLL 5 1
#^J2 SRL 5 10
*23L LDX 6 SPACES+640
*2H= ADN 6 #10
*32W STO 6 MINBUFF+7
*3GG ADN 6 #1
*426 SRC 6 12
*4FQ STO 6 MINBUFF+9
*4^B PRI20
*5F2 CALL 2 18?+2]+9]
*5YL STOZ 18?+1]+26 [FORCE PRINT
*6D= STOZ 18?+1]+27
*6XW [ FORCE PRINT
*7CG CALL 4 18?+2]+4]
*7X6 [ UPDATE POSITION
*8BQ LDN 3 1
*8WB ADS 3 18?+3]+0
*9B2 ADS 3 SEGBUF+640
*9TL ADS 3 18?+1]+21 [INCREMENT LINE NUMBER
*=*= SBS 3 SEGCUR+640
*=SW LDX 3 SEGCUR+640
*?#G BNZ 3 Z1+640
*?S6 LDX 2 PRLGSAVE+640 [GET LENGTH TO GO
*#?Q BNZ 2 SECONDPASS+640 [GO ROUND ONCE MORE TO COMPLETE
*#RB ZEROLEN
**?2 NOTFOUND
**QL LDN 3 19?+0 [RESET LINE NUMBERS AS BEFORE
*B== LDN 4 18?+1]+20
*BPW MOVE 3 2
*C9G [ RESET INPUT TYPE
*CP6 LDX 3 19?+6
*D8Q STO 3 18?+1]+2
*DNB [ RESET 0?
*F82 LDX 0 X0SAVE+640
*FML EXIT 0 0
*G7= #SKI 77?>512$512 [SKIP IF BEFORE GIN513
*GLW #DEF 18?+1]+31=1 [LIST AS IF NOT MACRO
*H6G #JUM START
*HL6 #SKI 77?>512$512 [SKIP IF BEFORE GIN513
*J5Q #DEF 18?+1]+31=0 [LIST AS MACRO
*JKB #FRL
*K52 #DEF 0?=0
*KJL #DEF 37?=19?+4]
*L4= #DEF 3?=19?+8]
*LHW #SKI 19?+8]-2
*M3G (
*MH6 #SKI 19?+8]-1
*N2Q #EXT
*NGB #SKI 19?+8]
*P22 #COM
*PFL )
*P^= #LIS 19?+7]
*QDW #NOR