{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPBLISTE867)}}
====== IPBLISTE867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COOR1|COOR1]], [[george:macro:FPUT|FPUT]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTW|HUNTW]], [[george:macro:LFBBS|LFBBS]], [[george:macro:LFBBUS|LFBBUS]], [[george:macro:LFBITCLR|LFBITCLR]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:PHOTO|PHOTO]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:TESTMOVE|TESTMOVE]]
22FL #SEG IPBLISTE
22PD ...# (C) COPYRIGHT INTERNATIONAL COMPUTERS 1982
22^= #LIS K0IPBLISTE>K0IPB>K0ALLGEO
23DW 8HIPBLISTE
23YG [
24D6 SEGENTRY K1IPBLISTE,SK1IPBLISTE
25CB SEGENTRY K3IPBLISTE,SK3IPBLISTE
25X2 SEGENTRY K4IPBLISTE,SK4IPBLISTE
26BL [
26W= #DEF SAFETMARGIN=5
27*W SDEL #76
27TG SHIFT #74
28*6 PRINT #76327632,#76207620,#76207620
28SQ STESC #76130075
29#B RECHE [SEE IF READ ERROR ON STEP
29S2 LFBBUS M,2,(7) [J IF NO READ ERROR
2=?L STO 4 IWORK15(2)
2=R= LDN 3 0
2?=W BRN WOBL [J TO CLEAR IOUT
2?QG [
2#=6 [ RE-FIND BLOCK IF IT MOVES DURING ALTLENG
2#PQ [
2*9B RFND MHUNTW 2,ADATA,ACONV
2*P2 EXIT 1 0
2B8L [
2BN= [ GET AMXOR/IOUT BLOCK FOR OUTPUT ; WORD COUNT IN X3 ON ENTRY
2C7W [
2CMG SAMIO LDXC 3 AWORK1(2)
2D76 SRL 3 12
2DLQ LDX 6 3
2F6B SBN 6 SAFETMARGIN
2FL2 SRL 3 2
2G5L SETU SBX 7 FX1
2GK= ... SETNCORE IDATA-A1(3),2,AMXOR,IOUT
2H4W SMO FX2
2HJG STO 2 ACOMMUNE2 [PRESERVE AMXOR/IOUT ADDRESS
2J46 LDN 0 1
2JHQ SMO FX2
2K3B ADS 0 AWORK1 [COUNT OF BLOCKS FOR OUTPUT
2KH2 STOZ IMOPTY(2) [MADE NON-ZERO IF OUTPUT ALONE
2L2L LDN 0 IDATA
2LG= SLL 3 2
2L^W STO 0 IBSW(2) [START ADDRESS FOR DEPOSITING
2MFG SBN 3 SAFETMARGIN
2M^6 SMO FX2
2NDQ LDX 0 JSOURCE1 [IDENTIFIER NUMBER
2NYB ORX 3 GSIGN
2PD2 ANDN 0 #7777
2PXL STO 0 IPBIDE(2) [IDENTIFIER NUMBER
2QC= ADX 7 FX1
2QWW STO 3 IPBIDE+1(2) [INITIAL ROOM IN BLOCK
2RBG EXIT 7 0
2RW6 [
2S*Q [ TEST FOR MOP OFF OR FINISH
2STB [
2T*2 TMF MHUNTW 3,AMXOR,ADCB
2TSL LDX 1 A1+FPTR(3)
2W#= LDX 0 FOURTHWD(1)
2WRW ORX 0 FINISH
2X?G SLL 0 2
2XR6 BPZ 0 (7)
2Y=Q ACROSS IPBLISTC,5
2YQB [
2^=2 [ IF SEND 2000 CHARACTER RECORD TO TAPE , DON'T ADD NEWLINE/RUNOUT
2^PL [
329= TWOTH LDEX 6 FRH(3)
32NW SBN 6 502
338G BNZ 6 TEXB [NOT 1997-2000 CHARS
33N6 LDX 6 CACT
347Q ANDX 6 FRH+1(3) [ISOLATE CHAR POS OF 1ST UNUSED CHAR
34MB BNZ 6 TEXB [NOT 2000 CHARS
3572 LDCT 5 #300 [SET 'CONCATENATE NEXT RECORD' MARKER
35LL ORS 5 IWORK11(2) [AND ENFORCE WHOLE RESTART
366= BRN START [AVOID RESTART SECTION UPDATE
36KW TEXB
375G LDCT 5 #100
37K6 ORS 5 IWORK11(2)
384Q ERS 5 IWORK11(2) [UNSET 'CONCATENATE' MARKER , IF SET
38JB EXIT 7 0
3942 SK4IPBLISTE
39HL CALL 7 TMF [CHECK FOR MOP OFF ETC.
3=3= CALL 7 SAMIO [GET NEW IOUT
3=GW STEPAGAIN [REFIND RECORD
3?2G LDX 4 IWORK15(2)
3?G6 BZE 4 REOK [J TO CONTINUE LISTING
3?^Q LDX 5 IWORK1(2) [RESET X5 IF NOT REACHED START REC.
3#FB BRN STEPOK [AND GO TO FIND IT
3#^2 [
3*DL [ ENTRY FROM IPBLISTA TO LISTFILE TO A 7020 BULK DEVICE VIA THE IPB
3*Y= [ STEP RECORDS TO START RECORD NUMBER , OR TO NEXT RECORD
3BCW [ AWORK2 IS UNTOUCHED AS IT CONTAINS GMODE FOR ENTERING LISTEND
3BXG [
3CC6 [
3CWQ [ K1 ENTRY FOR LISTING MAINFILE
3DBB [
3DW2 SK1IPBLISTE
3F*L CALL 7 SAMIO
3FT= STEPAGAIN
3G#W STEPOK
3GSG LDX 0 IWORK9(2)
3H#6 CALL 7 TWOTH [2000 CHARS TO TAPE?
3HRQ BRN START
3J?B [
3JR2 NEWS
3K=L CALL 7 TMF
3KQ= CALL 7 SAMIO [GET NEW IOUT BLOCK
3L9W NXREC LDN 4 0
3LPG STEP
3M96 CALL 7 RECHE
3MNQ REOK [RETURN LABEL FROM READ ERROR
3N8B BZE 3 WOBL [END OF FILE REACHED
3NN2 LDX 0 IWORK9(2) [RESTART SECTION=2 RECS FOR TP
3P7L CALL 7 TWOTH [2000 CHARS TO TAPE?
3PM= BPZ 0 VERT [THIS IS SECOND RECORD OF SECTION
3Q6W LDCT 4 #10
3QLG ADX 0 4 [ADD 1 TO RESTART SECTION NUMBER
3R66 BPZ 0 START [OVERFLOW HAS ALREADY INVERTED B0
3RKQ VERT ERX 0 GSIGN
3S5B [
3SK2 START LDX 7 IWORK13(2)
3T4L STO 3 IWORK15(2) [SAVE INITIAL RECORD POINTER
3TJ= ANDN 7 4
3W3W BZE 7 NOMON [NOT MONFILE
3WHG LDX 7 1(3) [MONFILE CATEGORY WORD
3X36 ANDX 7 IWORK14(2) [MONFILE DISCARD MASK
3XGQ BNZ 7 NOMON [DON'T DISCARD THIS RECORD
3Y2B LDN 7 1
3YG2 ADS 7 IWORK10(2) [UPDATE RECORD NUMBER
3Y^L BRN NXREC
3^F= [
3^YW NOMON STO 0 IWORK9(2)
42DG LDCH 5 IWORK9(2)
42Y6 MHUNTW 2,AMXOR,IOUT
43CQ LDX 1 FX2
43XB LDCT 6 4
44C2 ANDX 6 IWORK9(1)
44WL ERS 6 IWORK9(1) [UNSET FIRST REC OF SECTION BIT IFSET
45B= BZE 6 NSOS [NOT FIRST REC OF SECTION
45TW ANDN 5 #37
46*G BCHX 2 £
46T6 DCH 5 IPBIDE+1(2) [RESTART NO. IN CHAR 1
47#Q ANDX 2 BITS22LS
47SB NSOS LDX 6 IPBIDE+1(2)
48#2 STO 2 ACOMMUNE2(1) [PRESERVE AMXOR/IOUT ADDRESS
48RL ANDN 6 #7777
49?= ADX 2 IBSW(2) [POINTER TO DEPOSIT NEXT CHARACTER
49QW LDCT 4 #400
4==G ANDX 4 IWORK13(1) [B0 SET IF PERI-TYPE FILE
4=Q6 LDX 5 4
4?9Q BZE 4 SPON
4?PB LDCT 4 #600
4#92 ANDX 4 1(3) [POSITION OF LAST CHARACTER
4#NL BNZ 4 SPLAS [LAST WORD OF RECORD SPACE-FILLED
4*8= SPON ADN 4 1
4*MW SPLAS ADX 4 0(3) [WORD COUNT OF RECORD
4B7G SLC 4 2
4BM6 SBN 4 12 [RECORD HEADER AND LAST WORD
4C6Q PERY BPZ 4 PER1
4CLB LDN 4 0
4D62 PER1 STO 4 ACOMMUNE5(1) [NO OF CHARS IN RECORD
4DKL [
4F5= [ OUTPUT TO REMOTE TAPE PUNCH : GRAPHIC FILE TREATED AS CARD OR LINE
4FJW [ PRINTER FILE ; DIFFERENT ROUTINE FOR NORMAL OR ALLCHAR TAPE FILE
4G4G [
4GJ6 TOUT BZE 4 TANL [NULL RECORD (MAYBE END OF CARD FILE)
4H3Q LDX 0 5 [NON-ZERO IF PERI TYPE FILE
4HHB ADN 3 1
4J32 LDX 5 4 [RECORD CHARACTER COUNT
4JGL BZE 0 TSTO [TREAT NON-PERI FILE AS GRAPHIC
4K2= ORX 3 GSIGN
4KFW LDCH 0 0(3) [MODE INDICATOR
4K^G ANDX 3 BITS22LS
4LF6 LDX 1 FX1
4LYQ ADN 3 1
4MDB TXL 0 SHIFT(1)
4MY2 BCC TSTO [SHIFT : NORMAL MK6 FILE
4NCL LDN 4 4
4NX= ANDX 4 0
4PBW BNZ 4 SHIN [B21 SET : PREVIOUS SHIFT MK5 FILE
4PWG SMO FX2
4QB6 LDX 4 IWORK5
4QTQ BNZ 4 TNTP [ZERO IF TAPE PUNCH TYPE FILE
4R*B ERN 0 #10 [TP GRAPHIC MODE IS #10
4RT2 TNTP BZE 0 TSTO [GRAPHIC FILE
4S#L SBN 0 #12
4SS= BZE 0 TSTO [TR GRAPHIC MODE IS #12
4T?W SBN 0 #16
4TRG BZE 0 TRUN [TP MODE #20 : RUNOUT
4W?6 LDN 0 #74 [MODE 0(TP) ,2 OR 22 : ALPHA MK5 FILE
4WQQ TSTO LDX 1 FX2
4X=B STO 0 AWORK3(1) [INITIAL SHIFT
4XQ2 TJUM BZE 0 TGRAP [GRAPHIC TAPE FILE
4Y9L [
4YP= [ FILE IN 3-SHIFT MODE ; TRANSMIT CONTROL CHARACTERS IN ESCAPE MODE
4^8W [
4^NG LDX 1 FX1
5286 SHIN LDN 4 #75
52MQ SMO FX2
537B TXU 4 AWORK3
53M2 BCS SLOOP [INITIAL SHIFT ALPHA
546L DCH 4 0(2) [DEFAULT SHIFT IS ALPHA : STORE BETA
54L= BCHX 2 £
555W SBN 6 1
55KG SLOOP LDCH 0 0(3)
5656 SBN 5 1
56JQ TXL 0 SHIFT(1) [#74
574B BCS SLOP [DEPOSIT ORDINARY CHARACTER
57J2 TXL 0 SDEL(1) [#76
583L BCS SREM [REMEMBER ALPHA OR BETA SHIFT
58H= BZE 5 TANL [END OF RECORD : ADD NEWLINE
592W ADN 5 1
59GG LDX 0 6
5=26 SBN 0 SAFETMARGIN
5=FQ BNG 0 NPUND [J IF NOT ROOM FOR EXPANDED CHAR
5=^B SBN 5 1
5?F2 BCHX 3 £
5?YL LDCH 0 0(3)
5#D= SBN 5 1
5#XW SBN 0 #14
5*CG BNG 0 SESC [ESCAPE #7600 - #7613
5*X6 SBN 0 5
5BBQ BNG 0 SNORM [TRANSFER #7614 - #7620 UNCHANGED
5BWB SBN 0 6
5CB2 BNG 0 SESC [ESCAPE #7621 - #7626
5CTL SBN 0 3
5D*= BNZ 0 SNORM [NOT NEWLINE
5DSW LDX 1 FX2
5F#G SMO ACOMMUNE2(1) [START ADDRESS OF ANXOR-IOUT
5FS6 DSA 6 IPBIDE+1 [IN CASE END OF NPU BEFORE NEXT NL
5G?Q LDX 1 FX1
5GRB SNORM LDN 0 #76
5H?2 DCH 0 0(2) [STORE DELTA PAIR UNCHANGED
5HQL BCHX 2 £
5J== SBN 6 1
5JPW LDCH 0 0(3)
5K9G BRN SLOP
5KP6 [
5L8Q SESC LDCH 4 0(3)
5LNB ERN 4 #60 [IN ALPHA SHIFT #7603 BECOMES #761363
5M82 SLL 4 6 [BUT IN BETA SHIFT #7476136375
5MML ADX 4 STESC(1) [#76130075
5N7= LDN 1 4
5NLW LDN 7 2 [NO. OF CHARS TO MOVE -1
5P6G LDN 0 #74
5PL6 SMO FX2
5Q5Q TXU 0 AWORK3
5QKB BCC SALP [ALREADY ALPHA SHIFT
5R52 DCH 0 0(2) [ESCAPE CHARS MUST BE SENT IN ALPHA
5RJL BCHX 2 £
5S4= SBN 6 1
5SHW BPZ 6 SALP [ONLY ROOM FOR 3 CHARS
5T3G LDN 7 3 [MOVE ALSO #75 TO RESET BETA SHIFT
5TH6 SALP SMO 7
5W2Q MVCH 1 1 [INSERT ESCAPE CHARACTERS
5WGB SBX 6 7
5X22 LDX 1 FX1
5XFL BRN SUP3
5X^= [
5YDW SREM SMO FX2
5YYG STO 0 AWORK3 [REMEMBER SHIFT
5^D6 SLOP DCH 0 0(2)
5^XQ BCHX 2 £
62CB SUP3 BCHX 3 £
62X2 SBN 6 1
63BL BZE 5 TANL [END OF RECORD
63W= BNG 6 NPUND
64*W BZE 6 NPUND [AMXOR/IOUT FULL
64TG BRN SLOOP
65*6 [
65SQ TRUN ADN 1 PRINT+1
66#B SLL 5 1 [N RUNOUTS = 2N LINE CHARS
66S2 MVCH 1 4 [#76207620
67?L SBX 6 5
67R= LDX 1 2
68=W LDX 0 6
68QG BPZ 6 NUFRM [ENOUGH ROOM IN IOUT BLOCK
69=6 ADN 0 SAFETMARGIN [CAN RUN INTO SAFETY MARGIN HERE
69PQ BPZ 0 NUFRM [ENOUGH NOW
6=9B ADX 5 0 [STORE AS MUCH AS POSSIBLE
6=P2 NUFRM SBN 1 1
6?8L SBN 5 5
6?N= BNG 5 PEND [NO MORE CHARACTERS NEEDED
6#7W SMO 5
6#MG MVCH 1 1 [RUNOUT CHARACTERS
6*76 BPZ 0 PEND [END OF RECORD
6*LQ LDX 2 FX2
6B6B NGX 5 0 [NO. OF CHARS STILL TO STORE
6BL2 LDXC 6 AWORK1(2)
6C5L SRL 6 12
6CK= MHUNTW 1,AMXOR,IOUT
6D4W DSA 6 IPBIDE+1(1) [OUTPUT CHAR. CT. : BLOCK FULL
6DJG CALL 7 SAMIO [GET NEW AMXOR/IOUT BLOCK
6F46 SRL 5 1
6FHQ ADN 2 IDATA
6G3B BRN TRUN
6GH2 [
6H2L [ FILE IN GRAPHIC MODE ; CONVERT INTO LINE CODE & ADD NEWLINE AT END
6HG= [
6H^W TGRAP LDX 1 FX1
6JFG TLOOP LDCH 0 0(3)
6J^6 SBN 5 1
6KDQ TXL 0 SHIFT(1) [#74
6KYB BCS TLOP
6LD2 LDN 4 #76 [CONVERT INTO LINE CODE
6LXL DCH 4 0(2) [E.G. #74 BECOMES #7664
6MC= BCHX 2 £
6MWW SBN 0 #10
6NBG SBN 6 1
6NW6 DCH 0 0(3) [IN CASE JUMP TO NPUND
6P*Q BNZ 6 TLOP [NOT END OF NPU
6PTB ADN 5 1 [HAVEN'T DCH CONVERTED RECORD CHAR
6Q*2 BRN NPUND
6QSL TLOP DCH 0 0(2)
6R#= BCHX 2 £
6RRW BCHX 3 £
6S?G SBN 6 1
6SR6 BNZ 5 TNOT
6T=Q TANL SMO FX2 [ENTRY FROM TOUT FOR NULL RECORD
6TQB LDX 0 IWORK5 [ZERO IF PAPER TAPE PUNCH TYPE FILE
6W=2 BZE 0 PEND [NEWLINES ALREADY PROVIDED
6WPL LDX 1 FX1
6X9= SMO FX2
6XNW LDX 0 IWORK11 [B2 SET IF THIS WAS 2000-CHAR RECORD
6Y8G SLL 0 2
6YN6 BNG 0 PEND [CONCATENATE NEXT RECORD
6^7Q LDX 0 6
6^MB SBN 0 SAFETMARGIN
7272 ADN 1 PRINT
72LL BNG 0 TULL [LESS THAN 8 CHARS SPACE IN IOUT
736= LDN 0 0 [ROOM FOR FULL SEPARATOR : NL+3 ROS
73KW TULL ADN 0 8
745G ORX 1 GSIGN [POINT TO CHAR 2
74K6 ANDN 0 #76 [MAKE COUNT EVEN
754Q SBX 6 0 [UPDATE ROOM LEFT IN AMXOR/IOUT
75JB SMO 0
7642 MVCH 1 0 [NEWLINE + RUNOUTS
76HL BRN PEND
773= TNOT BNZ 6 TLOOP
77GW [
782G [ AMXOR/IOUT BLOCK FULL : END OF NPU ; SEND WHOLE BLOCK IF IT DOES
78G6 [ NOT CONTAIN NEWLINE ; IF IT DOES , COPY CHARACTERS SINCE LAST
78^Q [ NEWLINE INTO NEW AMXOR/IOUT AND SHORTEN OLD ONE
79FB [
79^2 NPUND LDX 1 FX2
7=DL LDX 0 IWORK18(1) [SAVE OLD VALUE OF IWORK18
7=Y= SBX 0 IWORK15(1) [RELATIVE TO START OF BLOCK
7?CW STO 0 ACOMMUNE6(1) [IN ACOMMUNE6
7?XG STO 3 IWORK18(1) [PRESERVE RECORD POINTER
7#C6 LDX 2 ACOMMUNE2(1) [START ADDRESS OF AMXOR/IOUT
7#WQ LDX 0 IWORK15(1) [INITIAL RECORD POINTER
7*BB SBS 0 IWORK18(1)
7*W2 PHOTO 0
7B*L STO 0 ACOMMUNE7(1)
7BT= LDX 0 6 [NO PREV. NL SO TAKE FULL BLOCK
7C#W STO 7 ACOMMUNE4(1)
7CSG STO 5 ACOMMUNE5(1) [CURRENT REMAINDER COUNT
7D#6 LDX 6 IPBIDE+1(2) [CHAR. REM. CT. AT LAST NEWLINE
7DRQ LDXC 5 AWORK1(1)
7F?B SRL 5 12 [INITIAL CHAR COUNT
7FR2 ORX 6 CACT
7G=L STOC 6 IPBIDE+1(2)
7GQ= ANDN 6 #7777
7H9W LDX 3 5 [PRESERVE FOR SETUPCORE
7HPG SBN 5 SAFETMARGIN
7J96 SRL 3 2
7JNQ SBX 5 6 [EQUAL IF NO NL IN BLOCK
7K8B SBX 6 0 [NO OF CHAR SINCE NL OR START
7KN2 BNZ 5 WHOB
7L7L LDX 5 6 [NO OF CHARS DEPOSITED SINCE START
7LM= LDN 6 0
7M6W WHOB DSA 5 IPBIDE+1(2) [CHAR. COUNT FOR OUTPUT
7MLG CALL 7 SETU [GET NEW AMXOR/IOUT
7N66 LDX 3 6
7NKQ LDN 7 IDATA(2)
7P5B LDX 1 2
7PK2 HUNT2 1,AMXOR,IOUT [FIND OVERFLOWED BLOCK
7Q4L BZE 6 OWFUL
7QJ= LDX 6 5
7R3W SRC 6 2
7RHG ADN 6 IDATA(1) [POINT TO FIRST CHAR TO REPLACE
7S36 MVCH 6 0(3) [MOVE CHARS SINCE NL INTO NEW BLOCK
7SGQ OWFUL ADN 5 IDATA-A1*4+3
7T2B SBX 7 2
7TG2 SRL 5 2
7T^L STOZ IBSW(1) [SET BLOCK STATUS WORD FOR DATA SEG
7WF= ALTLEN 1,5 [SHORTEN OLD BLOCK
7WYW LDX 1 FX2
7XDG LDXC 6 AWORK1(1)
7XY6 SRL 6 12
7YCQ SBN 6 SAFETMARGIN(3) [ROOM LEFT IN BLOCK
7YXB LDX 5 ACOMMUNE5(1) [RECORD REMAINDER COUNT
7^C2 LDX 0 ACOMMUNE7(1)
7^WL TESTMOVE 0,NSTL
82B= HUNTW 3,ADATA,ACONV
82TW ADN 3 A1
83*G BPZ 3 NST
83T6 LDX 0 ACOMMUNE4(1)
84#Q STO 0 IWORK15(1)
84SB STEPAGAIN
85#2 LDX 1 2
85RL LDX 0 IWORK15(1)
86?= STO 0 ACOMMUNE4(1)
86QW BRN NST
87=G NSTL LDX 3 IWORK15(1)
87Q6 NST STO 3 IWORK15(1)
889Q ADX 3 IWORK18(1)
88PB MHUNTW 2,AMXOR,IOUT
8992 STO 3 IWORK18(1)
89NL STO 2 ACOMMUNE2(1)
8=8= ADX 2 7
8=MW LDX 0 AWORK3(1) [PREV SHIFT IF 3-SHIFT ; 0 IF GRAP
8?7G BRN TJUM
8?M6 [
8#6Q [ END OF RECORD : OUTPUT IF END OF RESTART SECTION ; GET NEXT RECORD
8#LB [
8*62 PEND LDX 1 FX2
8*KL LDX 4 2
8B5= LDX 2 ACOMMUNE2(1) [START ADDRESS OF AMXOR/IOUT
8BJW LDX 0 IWORK11(1) [B2 SET IF THIS WAS 2000-CHAR RECORD
8C4G SLL 0 2
8CJ6 BNG 0 NOWTH [QUEUE THIS 2000-CHAR TP RECORD AND
8D3Q [CONCATENATE NEXT RECORD
8DHB LDN 0 1
8F32 ADS 0 IWORK10(1) [UPATE LINE NUMBER
8FGL LDX 3 IWORK12(1)
8G2= BNG 3 RESEC [ALL RECORDS
8GFW SBN 3 1
8G^G STO 3 IWORK12(1)
8HF6 BZE 3 NOTF [END OF LISTING
8HYQ RESEC LDX 5 IWORK9(1)
8JDB BNG 5 NOTF [END OF RESTART SECTION
8JY2 PNOW LDX 0 6
8KCL SBN 0 12
8KX= BNG 0 NOWTH [NOT WORTH STARTING RECORD HERE
8LBW DSA 6 IPBIDE+1(2) [ROOM LEFT IN BLOCK
8LWG SBX 4 2
8MB6 STO 4 IBSW(2) [POINTER TO DEPOSIT NEXT CHAR.
8MTQ BRN NXREC [GET SECOND RECORD
8N*B [
8NT2 WOBL LDX 1 FX2
8P#L MHUNTW 2,AMXOR,IOUT
8PS= LDX 6 IPBIDE+1(2) [ROOM LEFT IN BLOCK AFTER FIRST
8Q?W ANDN 6 #7777 [RECORD INSERTED
8QRG NOTF LDCT 0 4 [INDICATE END OF RESTART SECTION
8R?6 ORS 0 IPBIDE+1(2)
8RQQ ORS 0 IWORK9(1) [SET "FIRST REC OF SECTION" BIT
8S=B NOWTH LDXC 5 AWORK1(1) [NPU SIZE IN CHARS IN B1-11
8SQ2 SRL 5 12
8T9L SBN 5 SAFETMARGIN [REPLACE SAFETY MARGIN
8TP= STOZ IBSW(2)
8W8W SBX 5 6 [X5 = CT. OF CHARS DEPOSITED
8WNG DSA 5 IPBIDE+1(2)
8X86 ADN 5 IDATA-A1*4+3
8XMQ SRL 5 2 [REQUIRED AMXOR/IOUT BLOCK LENGTH
8Y7B TXU 5 ALOGLEN(2)
8YM2 BCC PREN
8^6L ALTLEN 2,5
8^L= PREN BZE 3 OUDEL [END OF LISTING
925W SK3IPBLISTE
92KG CALL 7 TMF [TEST MOP OFF OR FINISH
9356 LDXC 5 ISTATUS(3)
93JQ BCS TINOP [IDENTIFIER INOPERABLE
944B LDCH 0 ISTATUS(3)
94J2 ANDN 0 2
953L BNZ 0 TINOP [FAIL STILL SET
95H= LDCT 0 #400
962W ADXC 5 5
96GG BCC NOWAR
9726 ADN 0 #2000
97FQ ORS 0 IWAIT(3)
97^B COOR1
98F2 BRN SK3IPBLISTE [TRY AGAIN
98YL [
99D= NOWAR ORS 0 IWAIT(3)
99XW LDX 3 IADIN(3) [ADDRESS OF IPBIN ACTIVITY
9=CG LDX 3 IPBRING(3)
9=X6 SBN 3 IPBRING
9?BQ LDX 2 ACTRING(3)
9?WB SBN 2 ACTRING [FIND ACTIVITY AFTER IPBOUT
9#B2 LDX 4 BPTR(2)
9#TL LDX 2 FX2
9**= LDEX 5 AWORK1(2)
9*SW SEGENTRY K53IPBLISTE
9B#G ADS 5 ALFTRANS(2) [UPDATE TRANSFER COUNT
9BS6 MHUNTW 1,AMXOR,IOUT [THIS WILL BE THE LAST OUTPUT
9C?Q LDN 0 1
9CRB ERS 0 IMOPTY(1) [WAKE ME AFTER OUTPUT
9D?2 BRN NOWCH
9DQL NEBO MHUNTW 1,AMXOR,IOUT
9F== NOWCH LDX 0 ALOGLEN(1)
9FPW SBN 0 IDATA-A1
9G9G ADS 0 ALFWORDS(2) [COUNT OF WORDS TRANSFERRED
9GP6 CHAIN 1,4
9H8Q BCT 5 NEBO
9HNB DEX 5 AWORK1(2) [CLEAR COUNT OF OUTPUT BLOCKS
9J82 [
9JML LDCT 0 #100
9K7= ANDX 0 IPBSW(3) [B2 SET IF IPBOUT ASLEEP
9KLW BZE 0 WAKE
9L6G ERS 0 IPBSW(3) [INDICATE ON LIST
9LL6 LDX 2 3
9M5Q FPUT
9MKB WAKE COOR1
9N52 BRN NEWS
9NJL [
9P4= TINOP LDN 7 0 [INDICATE LISTING NOT FINISHED
9PHW LDCH 0 ISTATUS(3) [B4 SET IF UNAV RATHER THAN HELD
9Q3G LDX 2 FX2
9QH6 ANDN 0 2
9R2Q DEX 0 AWORK4(2) [0 IF HOLD BUTTON ; 2 IF STOP BUTTON
9RGB LDCT 0 #030
9S22 ORS 0 ISTATUS(3)
9SFL ERS 0 ISTATUS(3)
9S^= ACROSS IPBLISTC,2
9TDW [
9TYG OUDEL LDX 2 FX2
9XX2 MHUNT 2,AMXOR,IOUT
9YBL LDCT 0 #40
9YW= ORS 0 IPBIDE+1(2) [REPORT OUTPUT SENT
=2*6 LDX 2 FX2
=2SQ LFBBS M,2,SAYCOR [J IF READ ERROR
=3S2 ACROSS IPBLISTC,1
=4?L [
=4R= SAYCOR
=5=W LFBITCLR M,2
=5QG ACROSS IPBLISTC,3
=6=6 #END
=79B
^^^^ ...547216120002