{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LPTWO7)}}
====== LPTWO7 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:BXL|BXL]], [[george:macro:CHECKB|CHECKB]], [[george:macro:COMPQU|COMPQU]], [[george:macro:COOR2|COOR2]], [[george:macro:DELETE|DELETE]], [[george:macro:FADDRESS|FADDRESS]], [[george:macro:FOUTMOVE|FOUTMOVE]], [[george:macro:HUNTW|HUNTW]], [[george:macro:LOCKCA|LOCKCA]], [[george:macro:LOOPCH|LOOPCH]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NEXTCH|NEXTCH]], [[george:macro:OLPEND|OLPEND]], [[george:macro:PAIR|PAIR]], [[george:macro:PMODES|PMODES]], [[george:macro:REM|REM]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETREP2|SETREP2]], [[george:macro:SPACECT|SPACECT]], [[george:macro:STEP|STEP]], [[george:macro:TESTMULT|TESTMULT]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TOPCA|TOPCA]], [[george:macro:TOPCA1|TOPCA1]], [[george:macro:UNSET|UNSET]], [[george:macro:WIND|WIND]]
22FL SEG LPTWO,7,7OPAE,OLP
22^= # THIS SEGMENT PROCESSES MODE 2 OFFLINE *LP PERIS
23DW SEGENTRY K1LPTWO,Z1LPTWO
23YG SEGENTRY K2LPTWO,Z2LPTWO
24D6 [ AWORK1 NON-ZERO MEANS STARTING NEW RECORD
24XQ ...[ AWORK3 IS COUNT OF RECORDS PRODUCED BY THE PERI
25CB ...[ AWORK2 IS SET UP BY ASSIGN WITH NUMBER OF WORDS IN PRINT LINE
25X2 [ B1-FILE FNEARLY FULL
26BL [ AWORK4 B0-END OF MULTIFILE
26HS ...[ B2-22 COUNT OF RECS TO BE DISCARDED
26P2 ...[ BECAUSE OF END OF MULTIFILE ELEMENT
26W= [FI/FUTILITY A1- 1ST WORD OF RED TAPE FOR FILESTORE RECORD
27*W [ A1+1- 2ND WORD OF RED TAPE
27TG [ A1+2 ETC PRINT LINE
28*6 PLINK1
28SQ PAIR LPTWO,1
29#B NEWCPT
29S2 LDCT 0 #200
2=?L ANDX 0 AWORK4(2)
2=R= ERS 0 AWORK4(2) [UNSET MARKERS
2?=W Z1LPTWO
2?QG LDX 0 ALIMEY(2)
2#=6 #SKI ANOLIM
2#PQ BNG 0 Q1 [J IF NOLIMIT QUALIFIER
2*9B BXL 0 ACOUNT(2),OUTL [ELSE J IF LIMIT EXCEEDED
2*P2 Q1
2B8L LDX 3 APETADDR(2)
2BN= LOCKCA 3,ACAP(2),1,2
2C7W LDX 4 0(1) [TYPE/MODE WORD
2CMG LDX 1 FX1
2D76 ANDN 4 #7777
2DLQ SBN 4 2
2F6B BZE 4 K2LPTWO
2FL2 ADN 4 2
2G5L BNZ 4 MOLE
2GK= ACROSS LPOBJ,2 [IF NOT MODE 2
2H4W Z2LPTWO
2HJG LDX 0 AWORK4(2) [J IF END OF MULTIFILE ALREADY REACHE
2J46 BNG 0 OUTF2 [SINCE COMPQU LEAVES NO FILES OPEN
2JHQ LDN 4 4
2K3B LDX 6 ACAP(2)
2KH2 LDN 7 ACA1(2)
2L2L LDX 3 APETADDR(2)
2LG= FOUTMOVE 3,6,7,4,HLOCK1,2
2L^W [MOVE CA TO AOLPT
2MFG LDX 6 ACA3(2) [COUNT
2M^6 BZE 6 WC [ILLEGAL
2NDQ LDCT 0 #777
2NYB ANDX 0 6
2PD2 BNZ 0 WC [COUNT>32K-1
2PXL LDCT 7 #600
2QC= ANDX 7 ACA4(2)
2QWW SLC 7 2 [GET CHAR ADDRESS
2RBG ADX 6 7
2RW6 ADN 6 3
2S*Q SRL 6 2 [ROUND COUNT TO WORDS
2STB LDX 5 ACA4(2)
2T*2 ANDX 5 BITS22LS
2TSL PMODES 0,3 [GET ADDRESS MODE
2W#= ANDN 0 #10
2WRW BNZ 0 MOKA [J IF 22AM
2X?G ANDX 5 BSP16 [REDUCE TO 15BITS
2XR6 MOKA
2Y=Q #SKI G4
2YQB LDN 4 CHREAD [NOT USED IN G3 CHECKB
2^=2 CHECKB 5,6,RV1,3,4,MOKB,HLOCK2,2,K1LPTWO
2^PL [ J TO RV1 IF RESERVATION OR PERMISSION VIOLATION
329= [ RESTART AT K1LPTWO IF PAGETURN NEEDED
32NW MOKB SLL 5 2
338G ADX 5 7
33N6 ADX 5 ACA3(2)
347Q STO 5 ACA4(2) [END ADDRESS IN CHARS
34MB ... STOZ AWORK3(2) [RECORD COUNT
3572 LDX 6 ACA3(2)
35LL LDN 5 0
366= SLL 56 12 [DIVIDE X 4096 - CAN ONLY LOOP 1K WOR
36KW STO 5 ACA3(2)
375G SRL 6 12 [WILL PROCESS FDD CHARS 1ST IF ANY
37K6 HUNTW 3,FI,FUTILITY
384Q BPZ 3 OKBL
38JB ... SMO AWORK2(2)
3942 LDN 5 2+FRH
39HL SETUPCOR 5,3,FI,FUTILITY
3=3= OKBL LDN 5 #77
3=GW NXTR BNZ 6 MORE [J IF REMAINING CHARS FROM LAST LOOPC
3?2G CALL 7 MBUF
3?G6 BRN SETB [START ON NEXT CHUNK OF BUFFER
3?^Q BRN REP [END OF BUFFER
3#FB MORE CALL 7 MBUFOK [CONTINUE WITH PRESENT CHUNK
3#^2 SETB
3*DL STOZ A1+FRH+1(3) [2ND REDTAPE WORD
3*Y= LDX 0 ACES
3BCW STO 0 A1+FRH+2(3)
3BXG ADN 3 A1+FRH+2
3CC6 LDN 4 1(3)
3CH3 ... LDX 0 AWORK2(2)
3CLY ... SBN 0 1
3CQT ... BZE 0 NMOVE [AUTO4 USED
3CWQ ... SMO AWORK2(2)
3DBB MOVE 3 511
3DL8 ...NMOVE
3DW2 SBN 4 1
3F*L STO 4 AWORK1(2) [SET NON-ZERO
3FT= ... ADX 4 AWORK2(2) [ADDRESS OF 1ST CHAR BEYOND END OF LI
3G#W [ASSEMBLY AREA
3GSG NXTCH LDCH 7 0(1) [LOAD NEXT CHAR FROM BUFFER
3H#6 BXE 7 5,NESC [J IF ESCAPE
3HRQ STCH DCH 7 0(3) [STORE IN BLOCK
3J?B BCHX 3 £ [STEP BLOCK ADDRESS
3JR2 TFULL BXE 3 4,YFULL [J IF BLOCK FULL
3K=L UNSET
3KQ= STOZ AWORK1(2) [UNSET INITIALIZED SWITCH
3L9W NEXT NEXTCH 1,6,NXTCH [ADDRESS NEXT CHAR
3LPG CALL 7 MBUF
3M96 BRN NXTCH [START NEXT CHUNK
3M?P ...XPIRED
3MB# ... CALL 7 STEPDUMMY [LINE WITHOUT PRINTOUT
3MDY ... BRN REP [NO MORE - DISCARD
3MNQ NLAST CALL 7 STEP [APPEND LAST RECORD OF PERI
3N8B REP
3NN2 LDN 6 0
3P7L REP2
3PM= CALL 7 REPLY [STORE X6 IN REPLY WORD
3Q6W OLPEND
3QLG BRN K1LPTWO
3R66
3RKQ NESC NEXTCH 1,6,NCC [GET NEXT CHAR & J
3S5B CALL 7 MBUF
3SK2 BRN NCC
3T4L ... BRN XPIRED [HALF CONTROL CHAR
3TJ= NCC LDCH 7 0(1)
3W3W SBN 7 #76
3WHG BNZ 7 NOTP [J IF NOT PRINTOUT CODE
3X36 LDX 7 AWORK1(2)
3XGQ BNZ 7 NEXT [J TO MAIN LOOP AFTER FORCED PRINT
3Y2B YFULL REM 6 [GET REMAINDER COUNT
3YG2 SBN 6 1 [LESS CHAR JUST EXAMINED
3Y^L CALL 7 STEP [APPEND RECORD
3^F= LDN 0 1
3^YW ... ADS 0 AWORK3(2) [UPDATE RECORD COUNT
42DG TESTREP2 COORED,NXTR [J IF STEP COORDINATED
42Y6 COOR2 [GO TO BACK OF QUEUE
43CQ MHUNTW 3,FI,FUTILITY
43XB BRN NXTR
44C2
44WL NOTP SBN 7 #77-#76
45B= BNZ 7 NOTD [J IF NOT __
45TW LDN 7 #77
46*G BRN STCH [STORE _
46T6
47#Q NOTD ADN 7 #74
47SB BPZ 7 NOT0 [J IF >2
48#2 ADN 7 3
48RL NPFCC
49?= ORN 7 #40 [CONVERT PFCC TO STANDARD TYPE
49QW LDX 0 4
4==G ... SMO AWORK2(2)
4=Q6 SBN 0 1
4?9Q SMO 0
4?PB LDX 5 0 [2ND REDTAPE WORD
4#92 BNZ 5 SECONDPFCC [J IF ALREDAY HAD A PFCC IN THIS LINE
4#NL LDN 5 #77 [RESTORE VALUE
4#YD ... SMO 0
4*8= STO 7 0
4*MW BRN UNSET [RETURN TO MAIN LOOP
4B7G [
4BM6 [ DEAL WITH MORE THAN 1 PFCC IN A LINE BY KEEPING LATEST AS CURRENT
4C6Q SECONDPFCC [& PUTTING PREVIOUS IN A DUMMY RECORD
4CLB ... SBX 4 AWORK2(2)
4D62 SBN 4 2 [X4->A1+FRH
4DKL SBX 3 4 [GET CURRENT PRINT POSITION REL TO A1
4F5= SMO 4
4FJW STO 3 FRH [& SAVE IN SPARE (1ST) WORD OF FUTILI
4G4G LDX 5 7 [SAVE NEW PFCC IN X5
4GJ6 REM 6 [GET REMAINDER COUNT
4H3Q SBN 6 1 [LESS LAST CHAR
4HHB CALL 7 STEPDUMMY [APPEND 2WORD DUMMY RECORD WITH OLD P
4J32 LDN 0 1
4JGL ... ADS 0 AWORK3(2) [INCREMENT RECORD COUNT
4K2= TESTREP2 COORED,SAMEREC
4KFW COOR2 [GO TO BACK OF QUEUE IF STEP DIDNT CO
4K^G MHUNTW 3,FI,FUTILITY
4LF6 SAMEREC
4LYQ BNZ 6 SAMEMORE [J UNLESS BUFFER CHUNK EXPIRED
4MDB CALL 7 MBUF [GET ANOTHER CHUNK
4MY2 BRN SAMESETB [OK
4N=C ... STO 5 A1+FRH+1(3)
4NJS ... BRN XPIRED
4NX= SAMEMORE
4PBW CALL 7 MBUFOK [CONTINUE WITH CURRENT CHUNK
4PWG SAMESETB
4QB6 ADN 3 A1+FRH
4QTQ ... SMO AWORK2(2)
4R*B LDN 4 2(3) [GET X4->WORD BEYOND END OF ASSEMBLY
4RT2 STO 5 1(3) [STORE NEW PFCC
4S#L ADX 3 0(3) [RECOVER CURREN POSITION
4SS= STOZ AWORK1(2) [CLEAR PRINTOUT SWITCH
4T?W LDN 5 #77 [RESTORE ESCAPE CHAR FOR
4TRG BRN NXTCH [MAIN LOOP
4YP= [
4^2L ...NOT0 SBN 7 5
4^#2 ... BNG 7 XCC [J IF <#10
4^KB ... BZE 7 UNSET [=#10
4^WQ ... SBN 7 1
5286 BZE 7 PAGETHROW [J IF THROW TO HEAD OF FORM
52MQ SBN 7 7
537B BPZ 7 TAB1 [J IF >#17
53M2 ADN 7 #20 [RESTORE CORRECT VALUE
546L BRN NPFCC [& STORE AS PFCC
54L= PAGETHROW
555W LDCT 0 #200
55KG ANDX 0 AWORK4(2)
55SD ... LDN 7 #11 [PFCC FOR PAGE THROW
563B ... BZE 0 NPFCC [J IF NOT FNEARLY ON PREVIOUS STEP
56=# ... LDX 7 AWORK3(2) [NO OF RECS GENERATED BY THIS PERI
56F= ... ORS 7 AWORK4(2) [RECS TO BE DISCARDED NEXT
56N8 ... [TIME ROUND ON SAME PERI
56X6 ... TESTMULT OUTF1 [J IF MULTIFILE
5764 ... ERS 7 AWORK4(2) [NOT MULT SO ER ALL RECS FOR THIS PERI
57*2 ... BRN OUTF
57J2
583L TAB1 SBN 7 #54-#20
58H= BZE 7 TABL [J IF TAB CHAR L
592W SBN 7 1
59GG BNZ 7 XCC [J - CHAR ILLEGAL
5=26 LDN 7 100 [TAB M
5=FQ TABL LDX 5 7 [KEEP TAB VALUE
5=^B NEXTCH 1,6,TAB2 [GET NEXT TAB CHAR
5?F2 CALL 7 MBUF
5?YL BRN TAB2
5#D= BRN XCC
5#XW
5*CG TAB2 LDCH 7 0(1)
5*X6 SBN 7 #52
5BBQ BPZ 7 XCC [J IF >#51
5BWB ADN 7 #52-#40
5CB2 BNG 7 XCC [OR <#40
5CTL SLL 7 1 [*2
5D*= ADX 5 7
5DSW SLL 7 2 [*8
5F#G ADX 5 7
5FS6 NEXTCH 1,6,TAB3 [GET 3RD TAB
5G?Q CALL 7 MBUF
5GRB BRN TAB3
5H?2 BRN XCC
5HQL
5J== TAB3 LDCH 7 0(1)
5JPW SBN 7 #72 [J IF >#71
5K9G BPZ 7 XCC
5KP6 ADN 7 #72-#60
5L8Q BNG 7 XCC [OR <#60
5LNB ADX 5 7
5M82 ... LDX 7 AWORK2(2)
5MML SLL 7 2
5N7= BXGE 5 7,XCC [J IF TAB OUT OF RANGE
5NLW LDX 3 4 [RESET BLOCK POINTER
5P6G ... SBX 3 AWORK2(2)
5PL6 SRC 5 2
5Q5Q ADX 3 5
5QKB LDN 5 #77
5R52 BRN UNSET [REJOIN MAIN LOOP
5RJL
5S4= MBUF LDX 6 ACA3(2) [SET UP MORE BUFFER IF AVAILABLE
5SHW BZE 6 MBUFX [NO MORE
5T3G SBN 6 1
5TH6 STO 6 ACA3(2)
5W2Q LDX 6 BIT11 [4096 - NEW COUNT
5WGB MBUFOK [RESET PRESENT CHUNK
5X22 LDX 1 ACA4(2) [END ADDRESS IN CHARS
5XFL SBX 1 6
5X^= LDX 0 ACA3(2)
5YDW SLL 0 12
5YYG SBX 1 0
5^D6 SRC 1 2
5^XQ LOOPCH APETADDR(2),1,6,HLOCK2,2
62CB EXIT 7 0 [OK
62X2 MBUFX EXIT 7 1 [NO MORE
63BL [
63W= STEPDUMMY
64*W SBX 7 FX1
64TG LDN 3 0
65*6 BRN STEPN
65SQ STEP SBX 7 FX1
66#B ... LDX 3 AWORK2(2)
66S2 SBN 4 1(3)
67?L LDX 2 4
67R= BRN STEPL
68=W STEPM
68QG BCT 3 STEPL
69=6 BRN STEPN
69PQ STEPL SMO 3
6=9B LDX 1 0(2)
6=P2 SPACECT 1,4,STEPM
6?8L BZE 4 STEPN
6?N= LDN 0 4
6#7W SBX 0 4
6#MG SRC 0 2
6*76 ORS 0 0(2) [ADDRESS OF 1ST UNUSED CHAR IN 2ND RE
6*LQ STEPN
6B6B ADN 3 2 [FOR RED TAPE
6BL2 LDX 4 3
6C5L STEP ,0(3),ANSWER
6CK= TESTREP2 FILEFULL,OUTF,FNEARLY,NEARLYF,GLUTTON,TOOMUCH
6D4W STEPH
6DJG MHUNTW 2,FI,FUTILITY
6DML ...
6DQQ ... SMO FX2
6DTW ... LDEX 0 AWORK4
6D^2 ... BZE 0 STEPG [J IF NO RECS DISCARDED
6F46 ... LDN 0 1 [FORGET THIS RECORD AS WE HAVE ALREADY
6F7= ... SMO FX2 [DEALT WITH IT AS LAST RECS IN PREV
6F=B ... SBS 0 AWORK4 [MULTIFILE ELEMENT
6F*G ... BRN STEPX
6FDL ...STEPG STO 4 FRH(3)
6FHQ ADN 3 1+FRH
6G3B ADN 2 A1+FRH+1
6GH2 SMO 4
6H2L MOVE 2 511 [MOVE DATA TO FUWB
6HG= LDN 0 #40
6H^W ORS 0 0(3) [DEFAULT PFCC
6JFG ... SBN 2 A1+FRH+1
6J^6 ...STEPX LDX 3 2
6KDQ LDX 2 FX2
6KYB ADX 7 1
6LD2 EXIT 7 0 [X2=FX2,X3->BLOCK,X5,X6 UNCHANGED
6LXL NEARLYF
6MC= LDCT 0 #200
6MWW ORS 0 AWORK4(2)
6NBG SETREP2 COORED
6NW6 BRN STEPH
6P*Q TOOMUCH
6PTB LDX 3 FILEBRING(2)
6Q*2 ADX 3 FBACKPOINT(3)
6QSL LDX 3 BPTR(3)
6R#= LDX 6 FBLMOD(3)
6RRW CALL 7 NDEL [DELETE RECORDS FOR THIS PERI
6S?G LDX 3 FILEBRING(2) [USE BACKRING IN CASE MULTIFILE
6SR6 ADX 3 FBACKPOINT(3)
6T=Q LDX 3 BPTR(3)
6TQB SBX 6 FBLMOD(3) [NO. OF BLOCKS FREED BY NDEL
6W=2 ADN 6 1
6WPL CALL 5 TOPCA [CHANGE TO PCA
6X9= ACROSS OLPODD,3 [TO INCREAMBS
6XNW WC
6Y8G LDN 3 FYCOUNT
6YN6 XILL CALL 5 TOPCA
6^7Q ACROSS OLPODD,4 [FOR ILLEGAL
6^MB
7272 MOLE
72LL LDN 3 FYMODE
736= BRN XILL
73KW RV1
745G LDN 3 FYNOBUF
74K6 BRN XILL
754Q
75JB OUTF
7642 CALL 7 NDEL [DELETE RECORDS FOR THIS PERI
76HL ...OUTF1 COMPQU OUTF2 [J TO OUTF2 IF NOT MULTIPLE
773= BRN NEWCPT [EXIT IF NEW COMPONENT OPENED
77GW [ EXIT+1 IF MULTIFILE FULL - MAY BE NO FILES OPEN AT ALL
782G LDX 0 GSIGN
78G6 ORS 0 AWORK4(2)
78^Q OUTF2
79FB LDX 0 ACA1(2)
79^2 SRL 0 3
7=DL ANDN 0 #7777
7=Y= SBN 0 #3000
7?CW BNZ 0 NMON [J UNLESS ADDITIVE MODE#30000
7?XG LDCT 6 #50 [B0 CLEAR B3 & B5 SET IS END OF FILE
7#C6 BRN REP2
7#WQ NMON
7*BB LDN 3 FYOUTFULL
7*W2 BRN OUTP
7B*L OUTL
7BT= LDN 3 FYOUTPUT
7C#W OUTP
7CSG LDX 4 FTYPNO(2)
7D#6 BRN XILL
7DRQ XCC REM 6
7F?B LDN 0 #400
7FR2 ADX 0 ACA3(2)
7G=L SLL 0 12
7GQ= ADX 6 0
7H9W CALL 7 REPLY [STORE UNEXPIRED CHAR COUNT AS REPLY
7HPG CALL 7 NDEL [DELETE RECORDS FOR THIS PERI
7J96 LDN 3 FYINVCC
7JNQ BRN XILL
7K8B
7KN2 ...NDEL LDX 4 AWORK3(2) [RECORD COUNT
7L7L BZE 4 NDEL2 [J IF NO SUCH RECORDS
7LM= SBX 7 FX1
7M6W WIND [SET READ POINTERS FOR DELETES
7MLG NDEL1 DELETE
7N66 BCT 4 NDEL1
7NKQ ADX 7 1
7P5B EXIT 7 0
7PK2 NDEL2 LDX 1 FX1
7Q4L EXIT 7 0
7QJ=
7R3W REPLY
7RHG LDX 3 ACAP(2) [N(M) OF PERI
7S36 ADN 3 1
7SGQ FADDRESS APETADDR(2),3,HLOCK1,2
7T2B STO 6 0(3)
7TG2 EXIT 7 0
7T^L
7WF= TOPCA
7WYW LDX 1 FX1
7XDG TOPCA1 PLINK1(1)
7XY6 EXIT 5 0
7YCQ [
7YXB MENDAREA AOLPGAP,K99LPTWO
7^C2 #END
^^^^ ...64775112001100000000