{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LISTEXCP865)}}
====== LISTEXCP865 ======
(George Source)
**Macros used:** [[george:macro:BACKSPACE|BACKSPACE]], [[george:macro:BXE|BXE]], [[george:macro:DCA|DCA]], [[george:macro:FINDPEREC|FINDPEREC]], [[george:macro:FPUT|FPUT]], [[george:macro:GETACT|GETACT]], [[george:macro:JALLOC|JALLOC]], [[george:macro:JWRONG|JWRONG]], [[george:macro:LADDP|LADDP]], [[george:macro:LGEOG|LGEOG]], [[george:macro:LINKSET|LINKSET]], [[george:macro:LPROP|LPROP]], [[george:macro:LPUNSET|LPUNSET]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PAIR|PAIR]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETALLOC|SETALLOC]], [[george:macro:SETENTRY|SETENTRY]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:TRACE|TRACE]], [[george:macro:TRACEVER|TRACEVER]], [[george:macro:UP|UP]]
22FL #OPT K0LISTEXCP=0
22^= ...#OPT ATPOLTRP2=0
23DW #OPT ATPPHASET=0
23YG ...#OPT ATPOLTR=0
24D6 #LIS K0LISTEXCP>K0LISTFILE>K0ALLGEO>K0GREATGEO>K0COMMAND
24XQ #SEG LISTEXCP
25CB 8HLISTEXCP
25X2 [THIS SEGMENT CONTAINS CERTAIN EXCEPTION PATHS
26BL SEGENTRY K50LISTEXCP
26W= [***********************************************************************
27*W [DATA AREA
27TG [THE CONTENTS OF THIS WORD WILL BE OVERWRITTEN BY THE CONTENTS OF %A OF
28*6 [THE LFPRINT MACRO,IF THE LATTER IS INCLUDED AT RESTORE TIME
28SQ SM +0
29#B SETENTRY LISTEXCP,POINT,5
2=?L [
2=R= TABLE48
2?=W [POSSIBLE INVALID CHARACTERS FOR 48 CHARACTER REPERTOIRE PRINTER
2?QG TCOLON #12 [:
2#=6 TSEMICOLON #13 [;
2#PQ TLESS #14 [<
2*9B TGREATER #16 [>
2*P2 TQUERY #17 [?
2B8L TSHRIEK #21 [!
2BN= TDOUBLEDASH #22 ["
2C7W THASH #23 [#
2CMG TPERCENT #25 [%
2D76 TAT #40 [@
2DLQ TLHSQBR #73 [[
2F6B TDOLLAR #74 [$
2FL2 TRHSQBR #75 []
2G5L TUPARROW #76 [^
2GK= TLPTARROW #77 [_
2H4W XCONT #74202035 [CONTINUATION LINE
2HJG OCT64 #64
2HML PLPLINK
2HQQ PAIR LISTINIT,5
2HTW PTPCPLINK
2H^2 PAIR LISTINTC,5
2J46 [***********************************************************************
2JHQ [SUBROUTINE AREA
2K3B TESTCHAR48
2KH2 [THIS SUBROUTINE TESTS A CHARACTR IN X6 AGAINST TABLE48 OF POSSIBLE
2L2L [INVALID CHARACTERS FOR 48 CHARACTER REPERTOIRE.
2LG= [IF THE CHARACTER IS INVALID,EXIT IS TO THE INSTRUCTION FOLLOWING CALL
2L^W [IF THE CHARACTER IS VALID,EXIT IS TO ONE INSTRUCTION FURTHER.
2MFG LDN 1 TABLE48 [X1 POINTS TO TABLE
2M^6 LDN 5 15 [COUNTER
2NDQ NEXT SMO FX1
2NYB LDX 0 0(1) [GET NEXT CHARACTER IN TABLE
2PD2 TXU 0 6 [DO CHARACTERS MATCH?
2PXL BCS NOMATCH [J IF NO BUT
2QC= EXIT 4 0 [IF YES,EXIT
2QWW NOMATCH
2RBG ADN 1 1 [UPDATE TABLE MODIFIER
2RW6 BCT 5 NEXT [AND GET NEXT CHARACTER UNLESS
2S*Q EXIT 4 1 [TABLE FULLY SCANNED,WHEN EXIT
2STB [***********************************************************************
2T*2 [MAIN BODY OF SEGMENT
2TSL [***********************************************************************
2W#= POINT1
2WRW [THIS ENTRY POINT IS FROM LISTINIT IF THE LFPRINT MACRO HAS BEEN ISSUED
2X?G [AND THE SPECIAL DEBATCHING FACILITY HAS BEEN INCORPORATED.WE EXPECT TO
2XR6 [COLON USERNAME POINT JOBNAME IN WORDS GZDATA+5 ET SEQ OF THE ACTLF BUFF
2Y=Q LDX 7 SM(1) [GET LFPRINT PARAMETER
2YQB LDN 5 0
2^=2 LDN 3 0 [X3 WILL BE ADDRESS MODIFIER
2^PL LDN 4 #20 [SPACE
329= DCH 4 GZDATA+5(2) [OVERWRITE COLON WITH SPACE
32NW Y1 ADN 3 1 [UPDATA MODIFIER
338G SRC 3 2
33N6 Y2 SMO FX2
347Q LDCH 5 GZDATA+5(3) [GET CHARACTER
34MB SBN 5 #36
3572 BZE 5 Y4 [J IF POINT
35LL BNG 7 Y3 [J IF CHARACTER MUST BE SAVED
366= SMO FX2 [ELSE SPACEFILL
36KW DCH 4 GZDATA+5(3)
375G Y3 SLL 7 1 [PREPARE TEST FOR NEXT CHARACTER
37K6 SLC 3 2
384Q BRN Y1
38JB Y4 LDX 7 SM(1) [NOW DEAL WITH USERNAME
3942 SLL 7 12 [GET USERNAME KEY
39HL SMO FX2
3=3= DCH 4 GZDATA+5(3) [SPACEFILL POINT
3=GW Y5 SLC 3 2
3?2G ADN 3 1
3?G6 SRC 3 2
3?^Q Y6 SMO FX2
3#FB LDCH 5 GZDATA+5(3) [GET NEXT CHARACTER
3#^2 SBN 5 #20 [IS IT A SPACE?
3*DL BZE 5 Y8 [IF YES J
3*Y= BNG 7 Y7 [NOT A SPACE;J IF CHARACTER TO STAY
3BCW SMO FX2 [ELSE
3BXG DCH 4 GZDATA+5(3) [SPACEFILL
3CC6 Y7 SLL 7 1 [PREPARE TO TEST NEXT CHARACTER
3CWQ BRN Y5
3DBB Y8 UP
3DW2 [
3F*L [***********************************************************************
3FT= POINT2
3G7M [THIS ENTRY POINT IS FROM LISTPROC AT EMS
3GG4 [ SET ACTLFS FOR ALL LOCAL OUTPUT DEVICES
3GSG [DEBATCHING CHARACTERS FOR ALL CENTRAL PRINTERS
3H6X LDN 7 1 [TP TYPE
3HF# X2FIND
3HRQ FINDPEREC 3,APFOTY,7,ZRENT [GET NEXT LP
3HXS BNG 3 X2TYPE [ J IF NOMORE OF THIS TYPE
3HYS ... JWRONG 3,ZRENT [J. DEVICE WRONG
3H^T ... JALLOC 3,ZRENT [INCASE ENGAGE BEAT US TO IT
3J3W SBN 7 2
3J7Y BNZ 7 X2NLP [ J IF NOT LP
3J#5 LPROP 3,4 [GET PROP. BITS FROM DEVICE LIST
3J#S LDN 6 160
3J*H SRC 4 5
3JB= BNG 4 STOW [J IF 160 PP PRINTER
3JB^ LDN 6 132
3JCN SLC 4 3
3JDC BNG 4 STOW [J IF 132 PP
3JF6 LDN 6 120
3JFT SRC 4 2
3JGJ BNG 4 STOW [J IF 120 PP
3JH? LDN 6 96 [OTHERWISE 96 PP
3JJ2 STOW
3JK8 LADDP 3,1
3JLB STO 6 AREPERT(1) [INITIALIZE TO H/W WIDTH OF PRINTER
3JMK LDN 0 65
3JN# SLL 0 12
3JP3 ADS 0 AREPERT(1) [INITIALIZE PAGELENGTH TO 65
3JPQ LDX 1 FX1
3JR2 LDX 6 K52+4(3)
3K=L SLL 6 6
3KQ= ADN 6 #40
3L9W SRC 6 6
3LPG STO 6 K52+4(3) [WILL BE INCREMENTED TO A
3MQ5 LPUNSET 3 [ PAPER NOT ALIGNED
3MRD X2NLP
3MSR SETALLOC 3 [ DEVICE ALLOCATED
3MW6 GETACT ACTLF,CENTRAL,1
3MXF LDX 2 BPTR(2) [ -> ACTLF/CENTRAL
3MYS STO 3 CPPTR(2) [ DEVICE LIST PTR
3N27 LGEOG 3,0
3N3G DEX 0 JSOURCE1(2) [ GEOGRAPHICAL NO.
3N4T LDN 1 PLPLINK(1)
3N68 BZE 7 X2NLPL
3N7H ADN 1 PTPCPLINK-PLPLINK
3N8W X2NLPL
3N=9 ADN 7 2
3N?J DCH 7 JSOURCE1(2) [ DEVICE TYPE
3N#X LINKSET 2,0(1) [ LINK TO LISTING CODE
3NB= FPUT
3NCK BRN ZRENT [ NEXT DEVICE
3NDY X2TYPE
3NG? SLL 7 1 [ NEXT TYPE
3NHL ANDN 7 7
3NJ^ BNZ 7 X2FIND [ J IF VALID TYPE
3NL# UP
3NN2 [**********************************************************************
3P7L POINT3
3PM= [
3Q6W [THIS ENTRY POINT IS FROM LISTLOOP AFTER AN ERROR CONDITION HAS
3QLG [OCCURRED ON A 48 CHARACTER REPERTOIRE ECCP.
3R66 [THE CODE VALIDATES THE CURRENT RECORD OF THE FILE,AND IF NECCESSATY THE
3RKQ [PREVIOUS RECORD,TO DISCOVER IF THE ERROR CONDITION AROSE FROM AN
3S5B [ATTEMPT TO PRINT AN INVALID CHARACTER.
3SK2 [IF AN INVALID CHARACTER IS FOUND,ACOMMUNE8 IS SET NEGATIVE.
3T4L [IF AN INVALID CHARACTER IS NOT FOUND,ACOMMUNE8 IS SET TO ZERO
3TJ= STOZ AWORK1(2) [INITIALISE
3W3W STOZ ACOMMUNE8(2)
3WHG STOZ ACOMMUNE7(2) [EOF KEY
3X36 PREVREC
3XGQ STEPAGAIN [GET POINTER TO CURRENT RECORD
3Y2B LDEX 7 FRH(3) [GET NUMBER OF WORDS IN RECORD
3YG2 ... MHUNTW 2,GOUT,INFOLIST
3Y^L LDX 0 GQUAL(2)
3^F= ANDN 0 1
3^YW BNZ 0 SPECIAL [J IF SPECIAL LISTING
42DG LDX 0 GQUAL(2)
42Y6 ANDN 0 #740
43CQ BZE 0 SPECIAL [J IF LISTING OF AMORPHOUS FILE
43XB ADN 3 1
44C2 SBN 7 1
44WL SPECIAL
45B= ADN 3 1 [POINTER TO START OF DATA
45TW SBN 7 1 [COUNT OF DATA WORDS
46*G SLL 7 2 [COUNT OF DATA CHARACTERS
46T6 [NOTE:CHARACTERS IN THE LAST WORD OF THE RECORD WHICH ARE NOT ACTUALLY
47#Q [PART OF THE RECORD REQUIRE NO SPECIAL ACTION BECAUSE THEY ARE SPACES
47SB LDN 2 0 [CHARACTER MODIFIER
48#2 TRYNEXT
48RL SMO 3
49?= LDCH 6 0(2) [GET NEXT CHARACTER
49QW CALL 4 TESTCHAR48 [IS IT VALID?
4==G BRN NOTVALID [IF NOT,JUMP
4=Q6 BCHX 2 £ [ELSE IF NOT END OF RECORD
4?9Q BCT 7 TRYNEXT [RETURN FOR NEXT CHARACTER
4?PB SMO FX2 [HAVE WE ALREADY
4#92 LDX 0 AWORK1 [BACKSPACED ONE RECORD?
4#NL BNZ 0 OKFIN [IF YES,JUMP
4*8= ... MHUNTW 2,GOUT,INFOLIST [TEST IF ON FIRST REC
4*MW SMO FX2
4B7G LDX 0 AWORK4
4BM6 BPZ 0 NOTSETUP [J IF NOT CURRENTLY LISTING SETUP
4C6Q LDX 0 GNUM(2)
4CLB BZE 0 OKALLFIN [J IF ON 1ST RECORD OF SETUP
4D62 BRN TOBACK
4DKL NOTSETUP
4F5= LDX 5 GNUM(2) [FIRST RECORD OF LISTING?
4FJW ... MHUNTW 2,GOUT,INFOLIST
4G4G LDX 4 GFLI(2)
4GJ6 TXU 4 5
4H3Q BCC OKALLFIN [IF YES,JUMP
4HHB #SKI ATPOLTR
4J32 TRACEVER 4,INV48
4JGL TOBACK
4K2= BACKSPACE [ELSE WE MUST NOW
4KFW LDN 0 1 [CHECK PRECEDING RECORD
4K^G LDX 2 FX2
4LF6 STO 0 AWORK1(2)
4LYQ BRN PREVREC
4MDB NOTVALID
4MY2 #SKI ATPOLTR
4NCL TRACEVER 0,INV48CH
4NX= TRACE 6,LFEXCPIC
4PBW LDX 2 FX2
4PWG LDX 7 AWORK1(2) [BACKSPACE MARKER
4QB6 ORX 7 GSIGN [INVALID CHARACTER MARKER
4QTQ OKFIN
4R*B STEP
4RT2 STO 7 ACOMMUNE8(2)
4S#L STOZ ACOMMUNE7(2)
4SS= BNZ 3 OKALLFIN [J IF NOT EOF
4T?W LDX 0 GSIGN [ELSE
4TRG STO 0 ACOMMUNE7(2)
4W?6 OKALLFIN
4WQQ UP
4X=B [*******************-*************************************************
4XQ2 POINT4
4Y9L [THIS ENTRY POINT COPES WITH MODE 4 LINEPRINTER TRANSFERS WHEN
4YP= [THE RECORD SIZE IN CHARACTERS EXCEEDS THE CURRENT PRINT WIDTH
4^8W STOZ AWORK1(2) [INITIALISE SHIFT KEY
4^NG STOZ AWORK2(2) [INITIALISE COUNT OF PRINT CHARS
4^R5 ...#UNS ANIP
4^TN ... LDEX 4 JSOURCE3(2)
4^Y? ...#UNS ANIP
522W ...#SKI
525F ...(
5286 LADDP ,3 [GET APIA POINTER
52MQ LDEX 4 AREPERT(3) [PRINT WIDTH INTO X4
537B ...)
54L= #SKI ATPPHASET
555W LDN 4 40
55KG SBX 4 GZDUMP(2) [NUMBER AND CONT LINES!
5656 LDN 5 0 [INITIALISE ACTLF BUFFER CHARACTER CO
56JQ STEPAGAIN
574B LDX 1 GZPOINT(2) [POINT TO NEXT
57J2 SRC 1 2 [CHARACTER OF RECORD
57MX ... BNZ 7 NGRAPH
57RS ... LDN 7 #74 [STORE GRAPHIC SHIFT
57XP ...NGRAPH
583L STO 7 ACOMMUNE3(2) [INITIALISE SHIFT
58H= LDX 0 GZDUMP(2)
592W SRL 0 2
59GG SMO 0
5=26 DCH 7 GZDATA+1(2) [PUT IN SHIFT CHARACTER
5=FQ NEXTCHAR
5=^B SMO 3
5?F2 LDCH 6 0(1) [GET NEXT RECORD CHARACTER
5?YL SMO FX1
5#D= TXL 6 TDOLLAR
5#XW BCS NOTSHIFT [J IF NOT SHIFT OR _
5*CG SMO FX1
5*X6 TXU 6 TLPTARROW
5BBQ BCS TOSHIFT [J IF SHIFT
5BWB NOTSHIFT
5CB2 STOZ AWORK1(2) [CURRENT CHARACTER NOT SHIFT
5CTL LDN 0 1
5D*= ADS 0 AWORK2(2) [UPDATE COUNT OF PRINT CHARACTERS
5DSW TOACTLFUPD
5F#G ADN 5 1 [UPDATE COUNT OF ACTLF BUFFER CHARACT
5FS6 TORECUPDATE
5G?Q SLC 1 2 [UPDATE POINTER TO RECORD BUFFER
5GRB ADN 1 1
5H?2 SRC 1 2
5HQL LDX 2 5 [INSERT
5J== SMO FX2
5JPW ADX 2 GZDUMP
5K9G SRC 2 2 [CURRENT CHARACTER
5KP6 SMO FX2 [INTO
5L8Q DCH 6 GZDATA+1(2) [ACTLF
5LNB LDX 2 FX2 [BUFFER
5M82 LDX 0 AWORK2(2)
5MML ADN 0 4
5N7= TXU 0 4 [IS PRINT COUNT 4 LESS THAN MAXIMUM?
5NLW BCS NOTEQUAL [IF NOT JUMP
5P6G STO 1 AWORK4(2) [ELSE REMEMBER 1POINTERS TO RECORD
5PL6 STO 5 AWORK3(2) [AND ACTLF BUFFERS
5Q5Q LDX 0 ACOMMUNE3(2) [AND PRESERVE CURRENT SHIF
5QKB STO 0 ACOMMUNE2(2) [CURRENT SHIFT
5R52 TOANYMORE
5RJL LDX 0 1 [ANY MORE
5S4= SLC 0 2 [CHARACTERS
5SHW SBX 0 GZPOINT(2) [IN
5T3G SBX 0 GZLENGTH(2) [RECORD?
5TH6 BNZ 0 NEXTCHAR [IF YES RETURN FOR NEXT CHARACTER
5W2Q ADX 5 GZDUMP(2)
5WGB LDX 0 GZLENGTH(2) [ELSE UPDATE COUNT OF
5X22 TOUP
5XFL STO 0 GZTRANS(2) [RECORD CHARACTERS DEALT WITH
5X^= ADN 5 1 [COUNT SHIFT CHARACTER AT START OF
5Y4B ...#UNS ANIP
5Y7G ... STO 5 GZDUMP(2)
5Y=L ...#UNS ANIP
5Y*Q ...#SKI
5YDW DCA ,STO,5,COUNT [BUFFER AND INSERT COUNT IN CONTROL A
5YYG #SKI ATPOLTRP2
5^D6 TRACEVER 5,EXCPCT
5^XQ UP
62CB NOTEQUAL
62X2 SBN 0 5 [IS COUNT OF CHARACTERS FOR PRINT
63BL TXU 0 4 [LINE ONE MORE THAN MAXIMUM?
63W= BCS TOANYMORE [IF NOT GO BACK FOR NEXT CHARACTER
64*W LDX 3 AWORK3(2) [ELSE GET POINTER TO ACTLF
64TG ADN 3 1 [BUFFER WHEN 4 CHARACTERS OF PRINT
65*6 LDN 6 4 [SHOT
65SQ SRC 3 2
66#B LDN 2 0
68=W SMO FX2 [4
68QG LDX 5 GZDUMP
69=6 SRC 5 2
69PQ ADX 5 FX2
69TM ...TOCONT
69^J ... SMO FX1
6=5F ... LDCH 0 XCONT(2) [AND MOVE IN
6=9B SMO 5
6=P2 DCH 0 GZDATA+1(3) [CONTINUATION CHARACTERS
6?8L ... BCHX 2 £
6?N= ... BCHX 3 £
6B6B BCT 6 TOCONT
6BL2 LDX 2 FX2
6C5L LDX 5 AWORK3(2) [ACTLF BUFFER COUNT
6CK= ADN 5 4 [ALLOW FOR CONTINUATION LINE
6D4W ADX 5 GZDUMP(2) [AND SPACES AND NUMBER.....
6DJG LDX 0 AWORK4(2) [COUNT OF RECORD
6F46 SLC 0 2 [CHARS DEALT WITH
6FHQ SBX 0 GZPOINT(2)
6G3B BRN TOUP
6GH2 TOSHIFT
6GS5 ... SMO FX1
6H58 ... BXE 6 TUPARROW,XDELSFT [J. IF DELTA SHIFT
6HB? ... STO 6 ACOMMUNE3(2) [JREMEMBER SHIFT
6HMB ...XDELSFT
6HYF ... LDX 0 AWORK1(2)
6J9J ... BNG 0 TORECUPDATE [J. IF PREVIOUS CHARACTER SHIFT
6JGM ... LDX 0 GSIGN [ELSE SET
6JRQ ... ORS 0 AWORK1(2)
6K4T ... [SHIFT KEY
6K*Y ... BNZ 5 TOACTLFUPD [AND RETURN TO DEPOSIT CHARACTER
6KM3 ... BRN TORECUPDATE [1ST SHIFT CHAR ADD, IN AT END
6KYB [*****************************-*****************************************
6LD2 POINT5
6LXL [THIS ENTRY POINT TESTS FOR THE PRESENCE OF AN INVALID CHARACTER
6MC= [AFTER AN ERROR CONDITION WHILE IMPLEMENTING A MODE 4 PERI-IF AN INVALID
6MWW [CHARACTER IS FOUND IN THE CURRENT OR PRECEDING RECORD ACOMMUNE8 IS SET
6NBG [NEGATIVE-OTHERWISE ACOMMUNE8 IS SET TO ZERO-NOTE THE FILE WILL BE A SHI
6NW6 [SHIFT FILE AND THE LISTING WILL NOT BE SPECIAL
6P*Q STOZ ACOMMUNE8(2) [INITIALISE INVALID CHARACTER KEY
6PTB STOZ AWORK1(2) [AND BACKSPACE KEY
6Q*2 STOZ ACOMMUNE7(2) [END OF FILE KEY
6QSL PREV96REC
6R#= STEPAGAIN
6RRW LDX 0 FRH+1(3)
6S?G LDEX 7 FRH(3)
6SR6 SLC 0 2 [GET NUMBER OF UNUSED CHARACTERS
6T=Q ANDN 0 3 [IN LAST WORD OF RECORD
6TQB BZE 0 TOFULLWORD [J IF LAST WORD FULLY USED
6W=2 SBN 7 1 [ELSE ADJUST WORD COUNT
6WPL TOFULLWORD
6X9= ADN 3 2 [POINT TO START OF DATA
6XNW SBN 7 2 [NUMBER OF DATA WORDS
6Y8G SLL 7 2 [CONVERT TO CHARACTERS AND ADJUST
6YN6 ADX 7 0 [FOR LAST WORD IF NECESSARY
6^7Q NEXT96CHAR
6^MB LDCH 6 FRH(3)
7272 SBN 7 1 [NUMBER OF REMAINING CHARS TO BE CHQ
72LL TXU 6 TUPARROW(1) [IS IT DELTA SHIFT?
736= BCC YESDELTA [IF YES JUMP
73KW TXU 6 TLPTARROW(1) [IS IT ILLEGAL #77?
745G BCC TOERROR [IF YES JUMP
74K6 BRN TOKVALID [ELSE MUST BE VALID CHARACTER
754Q YESDELTA
75JB BZE 7 TEND96REC [J IF ON LAST CHARACTER OF RECORD
7642 SLC 3 2 [UPDATE POINTER
76HL ADN 3 1 [TO
773= SRC 3 2 [RECORD BUFFER
77GW LDCH 6 FRH(3) [GET NEXT CHARACTER AND UPDATE COUNT
782G SBN 7 1 [OF REMAINING CHARACTERS
78G6 TXU 6 TUPARROW(1) [IS IT DELTA SHIFT?
78^Q BCC YESDELTA [IF YES GET NEXT CHARACTER
79FB TXL 6 OCT64(1)
79^2 BCS TOERROR [J IF ILLEGAL:LESS THAN #64
7=DL TXL 6 TLPTARROW(1)
7=Y= BCC TOERROR [J IF ILLEGAL:#77
7?CW TXU 6 TLHSQBR(1)
7?XG BCC TOERROR [J IF ILLEGAL:#73
7#C6 TOKVALID
7#WQ BZE 7 TEND96REC [J IF ON END OF RECORD
7*BB SLC 3 2 [ELSE UPDATE RECORD
7*W2 ADN 3 1 [CHARACTER POINTER AND
7B*L SRC 3 2
7BT= BRN NEXT96CHAR [RETURN FOR NEXT CHARACTER
7C#W TEND96REC
7CSG LDX 0 AWORK1(2) [ALREADY BACKSPACED ONE RECORD?
7D#6 BNZ 0 TO96FIN [IF YES JUMP
7DRQ ... MHUNTW 2,GOUT,INFOLIST
7F?B SMO FX2
7FR2 LDX 0 AWORK4
7G=L BPZ 0 NOT96SETUP [J IF NOT 3URRENTLY LISTING SETUP
7GQ= LDX 0 GNUM(2)
7H9W BZE 0 OKALL96FIN [J IF ON FIRST RECORD OF SETUP
7HPG BRN TO96BACK [ELSE CHECK PRECEDING RECORD
7J96 NOT96SETUP
7JNQ LDX 5 GNUM(2) [ARE WE
7K8B ... MHUNTW 2,GOUT,INFO [POSITIONED
7KN2 LDX 4 GFLI(2) [ON FIRST RECORD OF
7L7L TXU 4 5 [LISTING
7LM= BCC OKALL96FIN [IF YES JUMP
7M6W TO96BACK
7MLG BACKSPACE [ELSE POSITION ON PREVIOUS RECORD
7N66 LDN 0 1
7NKQ STO 0 AWORK1(2) [SET BACKSPACED KEY
7P5B #SKI ATPOLTRP2
7PK2 TRACEVER 5,BACKSP
7Q4L BRN PREV96REC
7QJ= TOERROR
7R3W #SKI ATPOLTRP2
7RHG TRACEVER 6,INV96
7S36 TRACE 6,LFEXCPIC
7SGQ LDX 7 AWORK1(2) [BACKSPACED MARKER
7T2B ORX 7 GSIGN [INVALID CHARACTER MARKER
7TG2 TO96FIN
7T^L STEP
7WF= STO 7 ACOMMUNE8(2)
7WYW STOZ ACOMMUNE7(2)
7XDG BNZ 3 OKALL96FIN [J IF NOT EOF
7XY6 LDX 0 GSIGN [ELSE
7YCQ SMO FX2
7YXB STO 0 ACOMMUNE7 [SET KEY
7^C2 OKALL96FIN
7^WL UP
82B= #END
^^^^ ...36506370000200000000