{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: INPCT84)}}
====== INPCT84 ======
(George Source)
**Macros used:** [[george:macro:ABANDCOM|ABANDCOM]], [[george:macro:ALTLEND|ALTLEND]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BXL|BXL]], [[george:macro:CLOSE|CLOSE]], [[george:macro:CLOSEABANDON|CLOSEABANDON]], [[george:macro:CLOSEMULT|CLOSEMULT]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:ERASEMULT|ERASEMULT]], [[george:macro:FLIP|FLIP]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFINB|INFINB]], [[george:macro:INPUTFULL|INPUTFULL]], [[george:macro:ISITJOB|ISITJOB]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PREP|PREP]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETERR|SETERR]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SLEEP|SLEEP]], [[george:macro:STEP|STEP]], [[george:macro:TESTMULT|TESTMULT]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TOPFCB2|TOPFCB2]], [[george:macro:UP|UP]], [[george:macro:WAKEUP|WAKEUP]]
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