INPCT84

(George Source)

Macros used: ABANDCOM, ALTLEND, ALTLENG, BXL, CLOSE, CLOSEABANDON, CLOSEMULT, ENDCOM, ERASEMULT, FLIP, GEOERR, HUNTW, INFINB, INPUTFULL, ISITJOB, LONGSTOP, MENDAREA, MFREEW, MHUNTW, PREP, SEGENTRY, SETERR, SETNCORE, SLEEP, STEP, TESTMULT, TESTREP2, TOPFCB2, UP, WAKEUP

INPCT84.txt
22FL ...#SEG  INPCT84                       [PHILIP TURNER  
22^=    #LIS  K0INPCT>K0PCT>K0ALLGEO
23DW                   8HINPCT  
23YG    #   
24D6          SEGENTRY K1INPCT,SK1INPCT 
24XQ          SEGENTRY K2INPCT,SK2INPCT 
25CB    #   
25X2    NEWLINE        #76322020
26BL    X76   #76   
26W=    #   
27*W    #     UPDATE BUFFER NUMBER , ALLOWING FOR OVERFLOW ; CALL ON X0 
27TG    #   
28*6    PUTUP ADN   4  1
28SQ          TXU   4  BUFFNUM(2)          [CONTAINS NUMBER OF BUFFERS  
29#B          BCS      (0)  
29S2          LDN   4  0
2=?L          EXIT  0  0
2=R=    #   
2?=W    #     SUBROUTINE TO RE-FIND BLOCK BEING LENGTHENED BY ALTLENG   
2?QG    #   
2#=6    REH   MHUNTW   2,ADATA,CREADL   
2#PQ          EXIT  1  0
2*9B    #   
2*P2    # SUBROUTINE TO SLEEP, AND FLIP FOR "PLEASE ENGAGE" ACTION IF DC4 READ. 
2B8L    #   
2BN=    SLEEP SBX   6  FX1  
2C7W    XSLP  SMO      FX2  
2CMG          LDX   5  ACOMMUNE4           [SAVE IT 
2D76          SLEEP    IN,XBRKI,XCANT,XFIN  
2DLQ          STO   5  ACOMMUNE4(2) 
2F6B          ADX   6  1
2FL2          EXIT  6  0
2G5L    XFIN  FLIP  
2GK=          BRN      XSLP 
2H4W    #   
2HJG    #     ENTRY POINT FROM COMMAND PROCESSOR VIA READLINE MACRO 
2J46    #   
2JHQ    SK1INPCT
2K3B ...      LDCT  0  #520                [READ TAPE IN NORMAL MODE
2KH2          LDCH  4  JSOURCE1(2)  
2L2L          BNZ   4  NAC  
2LG= ...      LDCT  0  #400 
2L^W    NAC   STO   0  AWORK3(2)           [B0 INDICATES READLINE ENTRY 
2MFG          BRN      Z1   
2M^6    #   
2NDQ    #     ENTRY FROM PREPREAD : CONVERT INPUT RECORDS AND APPEND TO FILE
2NYB    #   
2PD2    SK2INPCT
2PXL          STOZ     AWORK3(2)
2QC=          TOPFCB2  3
2QWW          LDEX  0  FETM(3)  
2RBG          DCH   0  AWORK3(2)
2RW6          MHUNTW   2,A7020,INPUT
2S*Q          LDCT  4  #200 
2STB          ERS   4  EWAIT(2)            [UNSET B1 FOR BURST MODE 
2T*2    #   
2TSL    Z1    SETNCORE CPDATA-A1+34,3,ADATA,CREADL  
2W#=          STOZ     AWORK4(2)
2WRW          STOZ     CPDATA-1(3)         [FOR ROUTINE AT TRAIL
2X?G          STOZ     ACOMMUNE4(2) 
2XR6          LDCT  0  #100 
2Y=Q          ANDX  0  AWORK3(2)
2YQB          BNZ   0  NEWREC              [B2 SET IF CARDS OR GRAPHIC TAPE 
2^=2          LDN   0  #74  
2^PL          STO   0  AWORK4(2)           [INITIAL SHIFT FOR NORMAL & ALLCHARS 
329=          LDN   0  #7400
32NW          STO   0  ACOMMUNE4(2)        ['PREVIOUS SHIFT' FOR FIRST APPEND   
338G    #   
33N6    NEWREC  
347Q          MHUNTW   2,A7020,INPUT
34MB          LDXC  4  COMMON1(2)          [TEST IF PRESENT BUFFER NOT  
3572          BCC      USED                [COMPLETELY USED 
35LL          CALL  0  PUTUP
366=          SMO   4   
36KW          LDXC  6  COMMON2(2)   
375G          BCC      XERR1
37K6          LDN   5  0
384Q          DSA   6  5
38JB          SRL   6  12                  [COUNT OF CHARS TRANSFERRED IN X6
3942          SBX   5  6                   [COUNT OF CHARS TO TRANSFER IN X5
39HL          BZE   5  XEBUF             [J IF END OF THIS BUFFER   
3=3=          SRC   6  2
3=GW          LDX   1  6
3?2G          BRN      XON  
3?G6    #   
3?^Q    XEBUF CALL  0  PUTUP             [GET TO NEXT BUFFER
3#FB          LDN   1  0
3#^2          BRN      XON  
3*DL    USED  LDN   1  0
3*Y=          CALL  0  PUTUP               [UPDATE BUFFER NUMBER
3BCW          SMO   4   
3BXG          LDXC  5  COMMON2(2)          [INPUT BUFFER COUNT IF FILLED
3CC6          BCC      SLEP                [B0 SET IF FILLED : SLEEP IF NOT 
3CWQ    XON 
3DBB          SLL   4  5
3DW2          SMO   4   
3F*L          ADN   1  COMMON2(2)   
3FT=          ADX   1  BUFFNUM(2)   
3G#W          LDN   7  128  
3GSG          MHUNTW   3,ADATA,CREADL   
3H#6          ADN   3  CPDATA   
3HRQ          LDN   6  #6000
3J?B          SMO      FX2                 [BIT 12 IF DISCARDING THIS BLOCK 
3JR2          ANDX  6  AWORK3              [BECAUSE MET TAB OUT OF RANGE
3K=L          SLL   6  12   
3K*Q ...      LDX   0  EWAIT(2) 
3KDW ...      ANDX  0  BIT10
3KJ2 ...      ERS   0  EWAIT(2) 
3KM6 ...      BRN      XPVRN
3KQ=    #   
3L9W    #     START OF MAIN TRANSFER LOOP   
3LPG    #   
3M3X ...XOOP  LDN  0  0 
3MB# ...XPVRN LDX   2  FX2  
3MNQ          LDCT  4  1
3MSM ...      ANDX  4  AWORK3(2)
3MYJ ...      ERS   4  AWORK3(2)
3N4F ...      BNZ   0  XDC4 
3N8B          LDCT  0  #100                [B2 SET IF CARDS OR GRAPHIC TAPE 
3P7L          ANDX  0  AWORK3(2)
3Q6W          BNZ   0  XGRAPHIC 
3QLG          BZE   4  XOK  
3R66          BZE   5  PCTX1
3RKQ          BRN      XLASD
3S5B    XOK 
3SK2    XN6   LDCH  4  0(1) 
3T4L    XN7   SMO      FX1  
3TJ=          TXU   4  X76  
3W3W          BCC      XDELT
3WHG          LDN   0  #74  
3X36          TXL   4  0
3XGQ          BCS      XN4                 [CHAR < #74  
3Y2B          LDEX  0  AWORK4(2)           [CURRENT SHIFT   
3YG2          STO   4  AWORK4(2)           [CANCEL B0 IF SET OR CHANGE SHIFT
3Y^L          BNG   6  XNOF                [DISCARD SHIFT : TAB OUT OF RANGE
3^F=          TXU   4  0
3^YW          BCC      XNOF                [= CURRENT SHIFT : IGNORE
42DG          BRN      XN5  
42Y6    XN4   BNG   6  XNOF 
43CQ          ADN   6  1                   [TAB-SIG COUNT   
43XB          LDXC  0  AWORK4(2)           [B0 SET IF LAST BLOCK ENDED IN BETA  
44C2          BCC      XN5                 [SHIFT AND NO SHIFT SENS CHAR SINCE  
44WL          LDN   0  #41  
45B=          TXL   4  0                   [NOT SHIFT-SENSITIVE IF LESS 
45TW          BCS      XN5  
46*G          LDN   0  #74  
46T6          STO   0  AWORK4(2)           [CHANGE TO ALPHA SHIFT AND UNSET B0  
47#Q ...      DCH   0  0(3)                [ENTRY TO STORE DELTA PAIR   
47SB          BCHX  3  £
48#2          BCT   7  XN5  
48RL          SBN   6  1                   [COUNTERACT ADN ON RETURN
49?=          LDN   0  1                   [MOVE X1 BACK 1 CHAR IF JUMP TO PTENT
49QW          BRN      PTENT
4==G    XN5 
4=Q6          DCH   4  0(3)                [IF NO,DUMP IN BUFFER
4?9Q    XN2   SBN   7  1
4?PB          BCHX  3  £
4#92          BZE   7  PTLINE              [J IF 128 CHARS HAVE BEEN INSERTED   
4#NL    XNOF  SBN   5  1
4*8=          BZE   5  PCTX                [J IF PCT BUFFER EXHAUSTED   
4*MW          BCHX  1  XOK  
4B7G    #   
4BM6    #     DELTA PAIR IN NORMAL OR ALLCHARS TAPE MODE
4C6Q    #   
4CLB    #   
4D62    XDELT SBN   5  1                   [J IF #76 LAST CH I.N PCT BUFFER 
4DKL          BZE   5  PCTX1
4F5=          BCHX  1  £                   [P.U. 2ND CHAR OF #76 PAIR   
4FJW    XLASD LDCH  4  0(1) 
4G4G ...      LDCT  0  #200                [B1 SET IF ALLCHAR ; B2 IF GRAPHIC   
4GJ6          ANDX  0  AWORK3(2)
4H3Q          BZE   0  NOTAC               [NORMAL TAPE 
4HHB          LDX   0  4
4J32          SBN   0  #20  
4JGL          BZE   0  XNFIR               [STORE RUNOUTS IN ALLCHARS MODE  
4K2=          SBN   0  #53  
4KFW          BZE   0  XNFIR               [STORE DELETES IN ALLCHARS MODE  
4K^G    NOTAC LDN   0  #64  
4LF6          TXL   4  0
4LYQ          BCS      XN1  
4MDB          LDN   0  #73  
4MY2          TXU   4  0
4NCL          BCC      XNOF                [IGNORE #7673 = DELETE   
4NX=          LDN   0  #76  
4PBW          TXU   4  0
4PWG          BCC      XDELT               [#7676 : IGNORE SECOND #76   
4QB6          ADN   6  1
4QTQ    XNFIR LDN   0  #76  
4R*B          BNG   6  XNOF                [DISCARD DELTA PAIR IF LARGE TAB MET 
4RF? ...      DCH   0  0(3)                [DEPOSIT #76 
4RK8 ...      BCHX  3  £
4RP5 ...      BCT   7  XN5                 [STORE RES OF PAIR UNLESS CREAD FULL 
4RT2 ...      SMO      FX2  
4RYX ...      STO   4  ACOMMUNE9           [REMEMBER STORE REST OF PAIR LATER   
4S4S ...      BRN      NEWCREAD            [GO TO LENGTHEN CREADL   
4S8P ...[                                  [X5 LEFT SO REFIND LAST CHAR ON RETUR
4S#L    #   
4SS=    #     COMMON ROUTINES FOR ANALYSING DELTA PAIRS 
4T?W    #   
4TRG    XN1   SBN   4  7
4W?6          BNG   4  XDC4                [J IF 7604 : END OF DATA 
4WQQ          BZE   4  XETB                [J IF 7607 : END OF THIS BLOCK   
4X=B          SBN   4  #10  
4XQ2          BZE   4  XIS1                [J IF IS1 : SUPPRESSED BLANK IF CARDS
4Y9L          BNG   4  XISX                [J IF OTHER IS CHARACTER 
4YP=          SBN   4  1
4^8W          BZE   4  NULL                [IGNORE IF NULL CHARACTER
4^NG          SBN   4  3
5286          BZE   4  XETB                [J IF 7623 = ETX : END OF THIS DATA  
52MQ          BNG   4  STX                 [J IF 7622 : START OF MESSAGE
537B          SBN   4  1
53M2          BZE   4  XETB                [J IF 7624 = EOT : END OF DATA STREAM
546L          SBN   4  4
54L=          BZE   4  TBACK               [J IF 7630 : BACKSPACE   
555W          SBN   4  1
55KG          BZE   4  TABEX               [J IF 7631 : HORIZONTAL TAB  
5656          SBN   4  4
56JQ          BZE   4  TCARR               [J IF 7635 : CARRIAGE RETURN 
574B          BRN      XIS                 [NEWLINE = END OF RECORD 
57J2    #   
583L    STX   SBN   5  1                   [IGNORE STX  
58H=          BZE   5  XERR1               [ERROR IF END BUFFER ON STX  
592W          BCHX  1  XOOP 
59GG    TBACK SBN   6  1                   [DECREMENT TAB-SIG COUNT 
5=26          ADN   4  #30  
5=FQ          BRN      XNFIR
5=^B    TCARR LDN   6  0                   [ZEROISE TAB-SIG COUNT   
5?F2          ADN   4  #35  
5?YL          BRN      XNFIR
5#D=    XIS1  LDCH  0  JSOURCE1(2)  
5#XW          BZE   0  XIS1X               [STORE IS CHARS IF TAPE  
5*CG ...      LDN   4  #20  
5*X6          BRN      XG5                 [CARD : SUPPRESSED BLANK 
5BBQ    #   
5BWB    XGRAPHIC
5CB2          BZE   4  XOK1                [LAST BUFFER DID NOT END WITH #76
5CTL          BZE   5  PCTX1
5D*=          BRN      XG6                 [LAST CHAR OF PREV BUFFER WAS #76
5DSW    XOK1
5F#G          LDCH  4  0(1) 
5FS6          SMO      FX1  
5G?Q          TXU   4  X76  
5GRB          BCC      XG1  
5H?2          LDN   0  #74  
5HQL          TXL   4  0                   [IGNORE #74,#75 OR #77   
5J==          BCC      XG2  
5JPW    XG5   BNG   6  XG2  
5K9G          DCH   4  0(3) 
5KP6          ADN   6  1                   [COUNT OF TAB-SIG CHARS FOR TAPE 
5L8Q          SBN   7  1
5LNB          BCHX  3  £
5M82          BZE   7  PTLINE   
5MML    XG2   SBN   5  1
5N7=          BZE   5  PCTX 
5NLW          BCHX  1  XOK1 
5P6G    XG1   SBN   5  1
5PL6          BZE   5  PCTX1
5Q5Q          BCHX  1  £
5QKB    XG6   LDCH  4  0(1) 
5R52          LDN   0  #64  
5RJL          TXL   4  0
5S4=          BCS      XN1  
5SHW          ADN   4  #10  
5T3G          LDN   0  #100 
5TH6          BXL   4  0,XG5
5W2Q    NULL  SBN   5  1
5WGB          BZE   5  PCTX 
5X22          BCHX  1  XOOP 
5XFL    #   
5X^=    #     EXPAND #7631 = HORIZ TAB INTO SPACES ACCORDING TO TAB FIELDS SPEC.
5YDW    #   
5YYG    TABEX STO   1  ACOMMUNE7(2)        [PRESERVE LDCH POINTER   
5^D6          HUNTW    2,AINPAR,ATB 
5^XQ          LDN   4  #31                 [FOR DCH IF JUMP TO XNOT 
62CB          BNG   2  XNOT                [NO TAB PARAMETER : STORE PAIR   
62X2          ADN   6  1
63BL          LDX   1  A1(2)               [NO. OF TAB FIELDS   
63W=    TABAG TXL   6  A1+1(2)  
64*W          BCS      THIST               [THIS IS THE RELEVANT FIELD  
64TG          ADN   2  1
65*6          BCT   1  TABAG
65SQ          ADN   7  1
66#B          LDN   0  #6000
66S2          SMO      FX2  
67?L          ORS   0  AWORK3              [SET DISCARD REST OF BLOCK MARKER
67R=          LDCT  6  #600                [COUNT TOO BIG : IGNORE REST OF BLOCK
68=W          BRN      ONLY1
68QG    THIST LDX   1  A1+1(2)  
69=6          SBX   1  6
69PQ          LDX   6  A1+1(2)             [UPDATE TAB POINTER  
6=9B          SBN   6  1
6=P2    RINRE TXL   7  1                   [REENTRY PT AFTER CREADL LENGTHENED  
6?8L          BCC      ROMOK               [ENOUGH ROOM IN CREADL FOR SPACES
6?N=          SBX   1  7
6#7W          SMO      FX2  
6#MG          DEX   1  AWORK3              [SPACES TO BE INSERTED AFTER ALTLEN  
6*76          LDX   1  7                   [STORE SPACES TO END OF CREADL   
6*LQ    ROMOK LDN   0  #20  
6B6B          SBN   1  1
6BL2          DCH   0  0(3) 
6C5L          LDX   2  3
6CK=          BCHX  3  £
6D4W          BZE   1  ONLY1               [STORE ONLY ONE SPACE
6DJG          MVCH  2  0(1)                [STORE REQUISITE SPACES  
6F46          SBX   7  1
6FHQ    ONLY1 LDX   2  FX2  
6G3B          LDX   1  ACOMMUNE7(2)        [RETRIEVE LDCH POINTER   
6GH2          BCT   7  XNOF 
6H2L          BRN      PTLINE   
6HG=    XNOT  LDX   2  FX2  
6H^W          BRN      XNFIR
6JFG    #   
6J^6    #     END OF MESSAGE : IF ENTERED FROM COMPRO GO UP ; IF ENTERED FROM   
6KDQ    #     PREPREAD STORE RECORD IN FILE AND LOOK FOR NEXT INPUT 
6KYB    #   
6LD2    XISX  LDCH  0  JSOURCE1(2)         [STORE IS IF TAPE
6LXL          BNZ   0  XIS  
6MC=    XIS1X LDCT  0  #100 
6MWW          ANDX  0  AWORK3(2)           [AND NOT GRAPHIC MODE
6NBG          BNZ   0  XIS  
6NW6          ADN   4  #17  
6P*Q          BRN      XNFIR
6PTB    XIS 
6Q*2          LDCT  6  #600 
6QSL          ANDX  6  3                   [POSITION OF NEXT CHARACTER  
6R#=          SBN   5  1
6RRW          LDN   0  #20  
6S?G          SBN   3  1
6SR6    SPACE TXL   3  BITS22LS 
6T=Q          BCS      YG                  [J IF X3 POINTS TO CHAR 0
6TQB          DCH   0  1(3)                [SPACE-FILL REMAINDER OF LAST WORD   
6W=2          SBN   7  1
6WPL          BCHX  3  SPACE
6X9=    YG    LDX   2  FX2  
6XNW          LDCH  0  JSOURCE1(2)  
6Y8G          BZE   0  SENDA
6YN6          LDX   0  ACES 
6^7Q          LDN   6  0
6^MB    TRAIL TXU   0  0(3)                [REMOVE TRAILING SPACE-FILLED WORDS  
7272 ...      BCS      SECHR
72LL          ADN   7  4
736=          BCT   3  TRAIL               [STEP BACK A WORD
73KW    SEND  LDN   6  0                   [FOR MAX RECORD OR CARDS 
73LP ...      BRN      SENDA
73MJ ...[   
73NC ...[   
73P= ...[  NOW GO THROUGH LAST WORD TO FIND LAST NON SPACE CHARACTER
73Q5 ...[  AND SET X6 TO CHAR POSN AFTER IT 
73QY ...[   
73RR ...[   
73SL ...SECHR SMO      3
73TF ...      ERX   0  0               [SET SPACE CHARS TO ZERO 
73W# ...      LDN   6  4
73X7 ...NEXSPA  
73Y2 ...      LDCH  2  0
73YT ...      BNZ   2  NSECH
73^N ...      SRL   0  6
742H ...      BCT   6  NEXSPA     [TEST NEXT CHAR   
743B ...NSECH ANDN  6  3          [NOW MAKE X6 CHAR POINTER 
7449 ...      SRC   6  2
745G    SENDA   
74K6          MHUNTW   2,A7020,INPUT
754Q          LDX   4  GSIGN
75JB          ORS   4  COMMON1(2)          [INDICATE BUFFER NOT COMPLETELY USED 
7642          ERX   4  COMMON1(2)   
76HL          CALL  0  PUTUP
773=          SMO   4   
77GW          LDX   3  COMMON2(2)   
782G          ANDN  3  #7777               [COUNT OF CHARS IN BUFFER
78G6          LDX   0  3
78^Q          SBX   3  5                   [GET COUNT OF CHARS TRANSFERRED  
796Y ...      BPZ   3  ZCTOK
79#6 ...      LDX   3  BIT10
79F# ...      ORS   3  EWAIT(2) 
79LG ...      LDN   3  1
79RN ...ZCTOK SLL   3  12   
79^2          ADX   3  0
7=DL          ORX   3  GSIGN
7=Y=          SMO   4   
7?CW          STO   3  COMMON2(2)   
7?XG    #   
7#C6          MHUNTW   2,ADATA,CREADL   
7#WQ          LDX   4  ALOGLEN(2)          [CPDATA-A1+2 + MULTIPLE OF 32
7*BB          SBN   4  CPDATA-A1+2         [GET DATA WORD COUNT ROUNDED UP  
7*W2          SLL   4  2
7B*L          BNG   7  RFULL
7BT=          SBX   4  7
7C#W    RFULL   
7CSG    #SKI  K6PCT>99-99   
7D#6    (   
7DRQ          LDX   1  FX2  
7F?B          LDCH  0  JSOURCE1(1)  
7FR2          BZE   0  OKCARDS             [TAPE INPUT  
7G=L          LDN   0  80   
7GQ=          TXL   0  4
7H9W          BCC      OKCARDS             [NOT MORE THAN 80 COLUMNS
7HPG          GEOERR   1,LONGCARD          [MORE THAN 80 COLUMNS
7J96    OKCARDS 
7JNQ    )   
7K8B          SMO      FX2  
7KN2          LDXC  0  AWORK3   
7L7L          BCC      PREP                [K2 ENTRY : APPEND TO FILE   
7LM=          STO   4  A1(2)               [K1 ENTRY : STORE CHAR CT. AND GO UP 
7M6W          UP
7MLG    PREP  ADN   4  11                  [RED TAPE + ROUNDING 
7N66          ANDN  0  #6000
7NKQ          SMO      FX2  
7P5B          ERS   0  AWORK3              [UNSET 'DISCARD REST OF BLOCK' MARKER
7PK2          SRL   4  2                   [WORD COUNT  
7Q4L          ADN   2  CPDATA   
7QJ=          LDCH  0  0(2) 
7R3W          SBN   0  #74  
7RHG          BNZ   0  NOL  
7S36          BCHX  2  £
7SGQ    NOL   LDN   3  5                   [MOVE FIRST FOUR CHARS INTO X5   
7T2B          MVCH  2  4
7TG2          LDX   2  FX2  
7T^L          TXU   5  AWORK2(2)
7W49 ...#UNS  JPGLTER   
7W6S ...(   
7W9C ...      BCC      TERMF               [TERMINATOR FOUND
7W#2 ...      TXU   5  GTERM               [UNIVERSAL?  
7WBK ...)   
7WF=          BCS      TERX                [TERMINATOR FOUND
7WLD ...#UNS JPGLTER
7WRL ...TERMF   
7WYW          LDEX  7  AWORK1(2)
7XDG          SBN   7  #64  
7XY6          BZE   7  NSTO                [J IF TERM NOT TO BE STORED  
7YCQ          BRN      TX   
7YXB    TERX  LDN   7  0
7^C2    TX    ADX   6  ACOMMUNE4(2)        [SHIFT AT START OF BLOCK IN CHAR 2   
7^WL    XFULL   
82B=          LDX   2  4
82TW          STEP     ,0(2)
83*G          TESTREP2 FILEFULL,XERR,APPWAIT,WAIT   
83T6          ADN   6  #41                 [PFCC
84#Q          LDEX  0  AWORK4(2)           [CURRENT SHIFT   
84SB          STO   6  1(3) 
85#2          SLL   0  6
85RL          STO   4  0(3)                [WORD COUNT  
86?=          STO   0  ACOMMUNE4(2)        [WILL BE PREVIOUS SHIFT NEXT TIME
86QW          SBN   4  2
87=G          MHUNTW   2,ADATA,CREADL   
87Q6          BZE   4  NULEN               [NULL ENTRY : NEWLINE OR BLANK CARD  
889Q          ADN   2  CPDATA   
88PB          ADN   3  2
8992          SMO      4
89NL          MOVE  2  0
8=8=          SBN   2  CPDATA   
8=MW    NULEN   
8?7G          BNZ   7  TY                  [J IF THIS IS TERMINATOR 
8?M6          ALTLEND  2,CPDATA-A1+34      [SHORTEN FOR NEXT RECORD 
8#6Q          BRN      NEWREC              [GET NEXT RECORD 
8#LB    #   
8*62    #     FILE FULL : OPEN ANOTHER STREAM IF MULTIFILE  
8*KL    #   
8B5=    XERR  INPUTFULL XBRK1,XFULL,JOVER   
8BJW          CALL  5  SINFIN   
8C4G          ENDCOM
8CJ6    WAIT  LONGSTOP XBRK 
8D3Q          BRN      XFULL
8DHB    XBRK  CLOSE 
8F32    XBRK1 CALL  5  SINFIN   
8FGL          ABANDCOM  
8G2=    SINFIN  
8GFW          INFINB
8G^G          EXIT  5  0
8HF6    #   
8HYQ    #     READER DEALLOCATED : IF K1 ENTRY INDICATE END OF DATA TO COMPRO ; 
8JDB    #     IF K2 ENTRY REQUEST MORE INPUT
8JY2    #   
8KCL    XDC4  MHUNTW   2,ADATA,CREADL   
8KX=          LDX   0  ALOGLEN(2)   
8LBW          SBN   0  CPDATA-A1+2  
8LWG          SLL   0  2
8MB6          ADN   5  2                   [START WITH DC4 NEXT TIME IF J TO XIS
8MTQ          TXU   0  7                   [EQUAL IF CREADL EMPTY   
8N*B          BCS      XIS                 [DEAL WITH RECORD UP TO DC4  
8NT2          MHUNTW   2,A7020,INPUT       [IF FILE OPEN : REQUEST  
8P#L          LDXC  4  COMMON1(2)          [MORE INPUT.FIRST UPDATE 
8PS=          LDN   0  0
8Q?W          CALL  0  PUTUP
8QRG          STO   4  COMMON1(2)   
8R?6          SMO      4                   [FREE THE BUFFER.
8RQQ          STOZ     COMMON2(2)   
8S=B          LDN   0  1
8SQ2          ADS   0  FREBUFF(2)   
8T9L          SMO      FX2  
8TP=          LDXC  0  AWORK3   
8W8W          BCS      XCD                 [K1 ENTRY : END OF DATA  
8WNG    SLEP  LDX   3  2
8X86          CALL  6  SLEEP               [WAIT FOR MORE INPUT.
8XMQ          BRN      NEWREC   
8Y7B    #   
8YM2    #     TERMINATOR FOUND : IF S-TYPE APPEND IT AND DUMMY (NEWLINE) RECORD 
8^6L    #     THEN CLOSE FILE AND END COMMAND   
8^L=    #   
925W    TY    MFREEW   ADATA,CREADL 
92KG          LDX   5  ACOMMUNE4(2)        [SHIFT   
9356          ADN   5  #41  
93JQ          BRN      TZ   
944B    XBRKI STO   5  ACOMMUNE4(2) 
94J2    XBRKIN SMO     FX2  
953L          LDXC  0  AWORK3   
95H=          BCS      XTERM               [K1 ENTRY : INPUT TERMINATED 
962W    TFOUND  
96GG          LDX   1  FX2  
9726          LDXC  4  AWORK1(1)           [REMOVE TOP BIT IF SET   
97FQ          LDN   0  0                   [TEST IF S OR T TYPE TERMINATOR  
97^B          SBN   4  #64  
98F2          BZE   4  NSTO 
98YL          LDX   6  AWORK2(1)           [S TYPE : STORE TERMINATOR.  
99D=          LDX   5  ACOMMUNE4(1)        [SHIFT AT START OF BLOCK 
99XW          LDN   4  3                   [WORD COUNT  
9=CG          ADN   5  #41                 [PFCC
9=X6          STEP     ,3   
9?BQ          LDN   2  4
9?WB          MOVE  2  3                   [INSERT TERMINATOR   
9#B2    TZ    LDN   4  2
9#TL          STEP     ,2   
9**=          STO   4  0(3)                [BLANK RECORD FOR CARDS OR GRAP TAPE 
9*SW          STO   5  1(3) 
9B#G    NSTO  ISITJOB  NX4  
9BS6          BRN      XJOB 
9C?Q    NX4   LDN   4  0
9CRB          TESTMULT STREM
9D?2          LDN   4  1
9DQL    STREM CLOSE 
9F==          BNZ   4  XJOB 
9FPW          CLOSEMULT 
9G9G    XJOB
9GP6          HUNTW    2,A7020,INPUT       [UPDATE REMEMBERANCES.   
9H8Q          LDCT  0  #200 
9HNB          ORS   0  EWAIT(2)            [RESET SINGLE-SHOT BIT   
9J82          CALL  5  SINFIN   
9JML          ENDCOM                       [FINISH  
9K7=    #   
9KLW    #     PCT BUFFER EXHAUSTED : FIND REST OF THIS RECORD   
9L6G    #   
9LL6    XETB  LDN   0  #75  
9M5Q          TXU   0  AWORK4(2)
9MKB          BCS      PCTX                [NOT CURRENTLY IN BETA SHIFT 
9N52          LDCT  0  #400 
9NJL          ORS   0  AWORK4(2)           [TEST SHIFT ON FIRST CHAR OF NEXT BLK
9P4=          BRN      PCTX 
9PHW    PCTX1                              [END BUFFER ON #76   
9Q3G          LDCT  0  1
9QH6          SMO      FX2  
9R2Q          ORS   0  AWORK3              [INDICATE BUFFER ENDED WITH #76  
9RGB    PCTX  HUNTW    2,A7020,INPUT
9S22          LDXC  4  COMMON1(2)   
9SFL          LDX   0  0
9S^=          CALL  0  PUTUP
9TDW          STO   4  COMMON1(2)          [MOVE ON TO NEXT BUFFER  
9TYG          SMO      FX2                 [STORE NON-TAB-SIG COUNT 
9WD6          STO   6  ACOMMUNE6           [IN CASE CALL SLEEP  
9WXQ          LDX   6  3                   [SAVE DCH POINTER.   
9XCB          LDX   3  2                   [BUFFER BLOCK.   
9XX2          WAKEUP   IN                  [WAKE UP PCT ACTIVITY IF WAITING.
9YBL          LDX   2  3                   [RESTORE POINTERS.   
9YW=          LDX   3  6
9^*W          SMO      4
9^TG          STOZ     COMMON2(2)   
=2*6          CALL  0  PUTUP
=2SQ    Y12 
=3#B          SMO   4   
=3S2          LDXC  5  COMMON2(2)   
=4?L          BCS      XOOP2               [NEXT BUFFER FILLED ALREADY  
=4R=          LDX   3  2
=5=W          LDCT  0  #100 
=5QG          ANDX  0  EWAIT(2) 
=6=6          BZE   0  SL                  [NO ERROR RESTART REQUIRED   
=6PQ          MHUNTW   2,ADATA,CREADL   
=79B          LDN   0  CPDATA-A1+34 
=7P2          LDN   7  128                 [START THIS BLOCK AGAIN  
=88L          TXU   0  ALOGLEN(2)   
=8N=          BCC      SL                  [CREADL HAS NOT BEEN LENGTHENED  
=97W          ALTLEND  2,CPDATA-A1+34   
=9MG    SL    CALL  6  SLEEP
==76          MHUNTW   3,ADATA,CREADL   
==LQ          ADX   3  ALOGLEN(3)          [RESET POINTER IN OUTPUT BLOCK   
=?6B          ADN   3  CPDATA-4 
=?L2          SLC   3  2
=#5L          SBX   3  7
=#K=          SRC   3  2
=*4W          MHUNTW   2,A7020,INPUT
=*JG          BRN      Y12  
=B46    XOOP2   
=BHQ          SLL   4  5
=C3B          SMO      4
=CH2          LDN   1  COMMON2(2)   
=D2L          ADX   1  BUFFNUM(2)          [GET START ADDRESS OF BUFFER 
=DG=          SMO      FX2  
=D^W          LDX   6  ACOMMUNE6           [NON-TAB-SIGNIFICANT COUNT IF TAPE.  
=FFG          BRN      XOOP 
=F^6    #   
=GDQ    #     ADATA/CREADL FULL BEFORE NEWLINE OR OTHER TRANSMISSION CHAR. FOUND
=GYB    #     INCREASE ADATA/CREADL BY 32 WORDS AND CONTINUE CONVERSION ;   
=HD2    #     MAX. SIZE 504 WORDS : WHEN REACHED , STEP AND INSERT RECORD   
=HXL    #   
=JC=    PTENT ADX   5  0                   [NO. OF CHARS TO MOVE BACK IN X0 
=JWW          SLC   1  2
=KBG          SBX   1  0
=KW6          SRC   1  2
=L*Q    PTLINE  
=LFM ...      LDX   2  FX2  
=LKJ ...      NGS   2  ACOMMUNE9(2)        [SHOW NOT IN MIDDLE OF DELTA PAIR
=LPF ...NEWCREAD
=LTB          MHUNTW   2,A7020,INPUT
=M*2          SBX   1  2                   [RELATIVISE AND  
=MSL          LDX   4  1                   [PRESERVE A7020/INPUT POINTER
=N#=          MHUNTW   1,ADATA,CREADL   
=NRW          SBX   3  1
=P?G          LDX   2  ALOGLEN(1)   
=PR6          LDN   0  CPDATA+502-A1
=Q=Q          TXL   2  0
=QQB          BCC      SEND                [MAX SIZE REACHED : STEP AND INSERT  
=R=2          ADN   2  32   
=RPL          LDN   7  128  
=S9=          TXL   2  0
=SNW          BCS      SALT                [NOT YET 504 : INCREASE BY 32
=T8G          LDN   2  CPDATA+502-A1       [ALREADY 480 WORDS INSERTED  
=TN6          LDN   7  80                  [500-480*4   
=W7Q    SALT  SMO      FX2  
=WMB          STO   2  ACOMMUNE8
=X72          LDX   2  FX2  
=XLL          ALTLENG  1,ACOMMUNE8(2),REH   
=Y6=          MHUNTW   2,ADATA,CREADL   
=YKW          ADX   3  2
=^5G          MHUNTW   1,A7020,INPUT       [RESET POINTER IN BUFFER BLOCK.  
=^K6          ADX   1  4
?24Q          LDX   2  FX2  
?2JB          LDEX  0  AWORK3(2)           [REMAINDER COUNT IF CAME VIA TABEX   
?2MG ...      BNZ   0  XRSPA               [J IF SPACES LEFT FROM TABEX 
?2NH ...      LDX   4  ACOMMUNE9(2) 
?2PJ ...      BPZ   4  XN5                 [J IF NEED TO FINISH DELTA PAIR  
?2QL ...      LDCT  0  #100 
?2TQ ...      ANDX  0  AWORK3(2)
?2YW ...      BZE   0  XNOF 
?342 ...[                                   J IF NOT GRAPHIC
?376 ...      SBN   5  1
?3== ...      BZE   5  PCTX 
?3*B ...      BCHX  1  XOK1                [J FOR NEXT CHAR 
?3DG ...XRSPA   
?3HL          STO   1  ACOMMUNE7(2)        [FOR LDX AT ONLY1
?43=          LDX   1  0
?4GW          LDN   0  0
?52G          DEX   0  AWORK3(2)
?5G6          BRN      RINRE               [INSERT REST OF THE SPACES   
?5^Q    #   
?6FB    XCANT SMO      FX2  
?6^2          LDXC  0  AWORK3   
?7DL          BCS      XCD                 [K1 ENTRY : END OF DATA  
?7Y=          TESTMULT STEM                [TEST IF STREAMS OPEN
?8CW          CLOSEABANDON  
?8XG          BRN      STIS 
?9C6    STEM  CLOSE 
?9WQ          ERASEMULT 
?=BB    STIS
?=W2          ISITJOB  XJOB                [J IF NOT ISSUED INTERNALLY BY JOB   
??*L          SETERR
??T=          BRN      XJOB                [ENDCOM  
?##W    #   
?#SG    XTERM LDN   4  0                   [INPUT TERMINATED
?*#6          BRN      SDUM 
?*RQ    XCD   NGN   4  1                   [INDICATE END OF DATA STREAM 
?B?B    SDUM  MHUNTW   3,ADATA,CREADL   
?BR2          ALTLEND  3,2                 [SHORTEN FOR DUMMY BLOCK 
?C=L          STO   4  A1(3)
?CQ=          UP
?D9W    #   
?DPG    XERR1 GEOERR   1,BUFMIXUP   
?F96    #   
?FNQ          MENDAREA APCTGAP,K100INPCT
?G8B    #END
?GN2
^^^^ ...65107151000900000000
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1