LPTWO7

(George Source)

Macros used: ACROSS, BXE, BXGE, BXL, CHECKB, COMPQU, COOR2, DELETE, FADDRESS, FOUTMOVE, HUNTW, LOCKCA, LOOPCH, MENDAREA, MHUNTW, NEXTCH, OLPEND, PAIR, PMODES, REM, SEG, SEGENTRY, SETREP2, SPACECT, STEP, TESTMULT, TESTREP2, TOPCA, TOPCA1, UNSET, WIND

LPTWO7.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1