{{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