10 228= ... SEG IPBMOP,,,,G501,G502 16 22BG ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LIMITED 1982 15 22JQ ...[ THIS EXCLUDES CODE UNDER #SKI G501 & G502 4 22R2 ...[ 13 22_= #LIS K0IPBMOP>K0IPB>K0ALLGEO>K0GREATGEO 7 235N ...#OPT G501 = 0 6 23=6 ...#SKI G501&1 14 23BJ ...# WITH UGUG EDIT M501 (3-SHIFT INPUT ON MOP) 7 23H2 ...#OPT G502 = 0 6 23MD ...#SKI G502&1 17 23RW ...# WITH UGUG EDIT M502 (SHIFT AND GRAPHICS OUTPUT ON MOP) 12 23YG SEGENTRY K1IPBMOP,SK1IPBMOP 4 24D6 # 8 24XQ SBI +8 10 25CB 8HBREAK IN 9 26BL SEGENTRY K50IPBMOP 9 27TG REMASK #170000 8 28SQ SHIFT #74 6 28_Y ...#SKI G502&1 8 2976 ... #76 8 29#B SPACE #20 9 29S2 SMASK #410000 9 2=?L VMASK #77577777 9 2=DS VWAIT #00200001 18 2=L3 VSNULL 28,#77763300,#76317420,#76067606,#77761306 8 2=R= #OPT IPBINOPTIME=0 9 2?=W SEGENTRY K51IPBMOP 20 2?GN WAITINOP 3+IPBINOPTIME/FONINTP[FOR LONGCOOR AFTER IDENT INOP 9 2?QG SEGENTRY K52IPBMOP 10 2?XN ZMIN 60+3/FONINTP 19 2#2# VDUWAIT 60+3/FONINTP [FOR LONGHALT (SET FOR 1 MIN) 16 2#=6 ZJTIMEOUT +JTIMEOUT [TIMED OUT 'TIME' 17 2*9B ZJTOREST +JTOREST [RESTARTED AT 'TIME' 17 2*9C SEGENTRY K53IPBMOP [FOR RSM SDADDWAIT 8 2*9D SDADD +0 19 2*9F [ADDITIONAL WAIT FOR SCEDITS 4 2*9G # 21 2*9H # IF MOP DISPLAY AND THE TESTOUT MARKER IS SET,EXIT UP THE BREAK-IN 12 2*9J # PATH. ON ENTRY: X3->DCB BLK 4 2*9K # 7 2*9N ZLNOF LONGOFF 7 2*9P EXIT 3 0 5 2*9R VABANDON 10 2*9S LDXC 0 ICURSOR(3) 17 2*9T BCC (5) [MOP CONSOLE : EXIT 18 2*9W LDN 0 #200 [TEST ^TESTOUT^ MARKER 9 2*9X ANDX 0 IWAIT(3) 16 2*9Y ERS 0 IWAIT(3) [AND LEAVE UNSET 18 2*9_ BNZ 0 TOAB [ABANDON TYPE BREAK-IN 7 2*=2 EXIT 5 0 4 2*=3 # 21 2*=4 # IF MOP DISPLAY,UPDATE CURSOR POSITIONING COUNTS FOR NEXT UNUSED 12 2*=9 # LINE. ON ENTRY: X3->DCB BLK. 4 2*=G # 10 2*=R VNEWL LDXC 0 ICURSOR(3) 17 2*?4 BCC (7) [MOP CONSOLE : EXIT 7 2*?* LDCT 0 2 9 2*?L ORS 0 IWAIT(3) 19 2*?X ERS 0 IWAIT(3) [UNSET ^READY^ FLAG IF SET 21 2*#8 DEX 0 ICONTU(3) [CLEAR CT OF LINES O/P SINCE LAST T-R 19 2*#F LDEX 0 ICURPOS(3) [CURRENT COLUMN NO OF CURSOR 16 2*#Q BZE 0 (7) [COLUMN 0 : EXIT 8 2**3 LDCT 0 #10 21 2**# ADS 0 ICURPOS(3) [UPDATE CURSOR POSITIONING COUNTS FOR 15 2**K DEX 0 ICURPOS(3) [NEXT LINE 7 2**W EXIT 7 0 4 2*B7 # 18 2*BD # PREPARE AN OUTPUT MESSAGE FOR TRANSMISSION TO A VDU. 21 2*BP # ON ENTRY:X4=MESS BLOCK TYPE;X5=MESSAGE HEADER(B12-23);X6=RELATIVE 21 2*C2 # MESS ADDRESS,THE FIRST WORD OF WHICH CONTAINS THE MESS CHAR COUNT 4 2*C? # 21 2*CJ # X4=MESSAGE NO OF MESSAGE HELD IN IPBMOPB & X5= MESSAGE HEADER IF 9 2*CT # CALL IS FOR VEDIT. 5 2*D6 VEDIT 20 2*DC NGX 4 4 [CONVERT MESSAGE NO TO -VE FORM 21 2*DN STO 4 ACOMMUNE9(2) [PUT -VE MESS NO IN START OF MESS ADD 5 2*D_ VEDITM 16 2*F= SBX 7 FX1 [RELATIVISE AND 15 2*FH STO 7 AWORK2(2) [SAVE LINK 20 2*FS LDX 6 ACOMMUNE8(2) [HOLD COPY OF MESSAGE CHAR COUNT 21 2*G5 LDX 7 ACOMMUNE9(2) [HOLD COPY OF REL START OF MESS ADDR 21 2*GB VPREP LDX 4 ICURPOS(3) [HOLD COPY OF CURRENT CURSOR COUNTS 20 2*GM DOWN IPBMOPB,10 [PREPARE MESSAGE FOR TRANSMISSION 10 2*GY MHUNTW 3,AMXOR,ADCB 10 2*H9 TXU 4 ICURPOS(3) 20 2*HG BCC VUCUR [ORIGINAL CURSOR COUNTS UNCHANGED 21 2*HR # CURSOR COUNTS CHANGED (BY BREAK-IN) : RE-ASSEMBLE MESSAGE 20 2*HX STO 6 ACOMMUNE8(2) [RESET MESSAGE CHARACTER COUNT 17 2*J4 VDISC HUNTW 2,AMXOR,IOUT [DISCARD IOUT BLOCKS 8 2*J* BNG 2 VPREP 7 2*JL FREECORE 2 8 2*JX BRN VDISC 9 2*K8 VUCUR LDX 0 IWAIT(3) 7 2*KF SLL 0 1 19 2*KQ BPZ 0 VUOK [G3 BREAK-IN HASN'T OCCURRED 20 2*L3 SLL 0 6 [READY MESSAGE WILL BE DISCARDED 16 2*L# BNG 0 VEX [SO SKIP UPDATE 21 2*LK VUOK LDX 0 ACOMMUNE6(2) [UPDATE CURSOR POSITIONING COUNTS FOR 18 2*LW STO 0 ICURPOS(3) [START OF NEXT MESSAGE 4 2*M7 VEX 15 2*MD LDX 7 AWORK2(2) [RESET LINK 8 2*MP ADX 7 FX1 7 2*N2 EXIT 7 0 4 2*P2 # 21 2B8L # INSERT TIME INTO MESSAGE WITH ADDRESS IN X5 & OUTPUT IT TO CONSOLE 4 2BN= # 8 2C7W OUTM SBX 7 FX1 9 2CMG OUTPAR TIMENOW 16 2D76 MONOUTX 5 [OUTPUT MESSAGE 10 2DLQ MHUNTW 3,AMXOR,ADCB 18 2F6B CALL 6 QIN [TEST FOR INOPERABILITY 8 2FL2 ADX 7 FX1 7 2G5L EXIT 7 0 4 2GK= # 21 2H4W # EXIT IMMEDIATELY (UP) IF RE-ENTERED AFTER TAKING INOPERABLE ACTION 4 2HJG # 10 2J46 QIN LDCH 0 JSOURCE1(2) 18 2JHQ SBN 0 7 [STORED AT TINOP OR STACK 19 2K3B BZE 0 TOAB [SET BREAK-IN BIT AND GO UP 7 2KH2 EXIT 6 0 4 2L2L # 19 2LG= # RE-FIND AMXOR/IMESSG BLOCK WHEN CORE MOVES DURING ALTLENG 4 2L_W # 11 2MFG RIOT MHUNTW 2,AMXOR,IMESSG 7 2M_6 EXIT 1 0 4 2NDQ # 21 2NYB # RING AMXOR/IOUT BLOCK(S) BEHIND IPBOUT , WHICH IS THEN PUT ON LIST 21 2PD2 # NEEDS ADCB ADDRESS IN X3 ; ADDRESS OF FIRST IOUT IN X1 AT RINGR 4 2PXL # 10 2Q=3 RINGO MHUNTW 3,AMXOR,ADCB 7 2QJD LDN 1 0 21 2QWW RINGR SBX 6 FX1 [ENTRY WITH AMXOR/IOUT ADDRESS IN X1 19 2RBG STENT LDX 3 IADIN(3) [ADDRESS OF IPBIN ACTIVITY 10 2RW6 LDX 3 IPBRING(3) 19 2S*Q SBN 3 IPBRING [ADDRESS OF IPBOUT ACTIVITY 10 2STB LDX 2 ACTRING(3) 19 2T*2 SBN 2 ACTRING [FIND ACTIVITY AFTER IPBOUT 18 2TSL LDX 4 BPTR(2) [LAST BLOCK AFTER IPBOUT 20 2W#= BNZ 1 NHUN [X1 ALREADY POINTS TO IOUT BLOCK 10 2WRW HUNTW 2,AMXOR,IOUT 19 2X?G OLE LDX 1 2 [LATEST IOUT BLOCK ADDRESS 9 2XR6 OLF LDX 2 FPTR(2) 9 2Y=Q LDX 0 ATYPE(2) 8 2YQB TXL 0 CACT 21 2_=2 BCC NHUN [REACHED NEXT ACTIVITY : CHAIN LAST 9 2_PL TXU 0 ATYPE(1) 8 329= BCS OLF 16 32NW BRN OLE [LATER IOUT FOUND 8 338G NHUN CHAIN 1,4 8 33N6 LDCT 0 #100 18 347Q ANDX 0 IPBSW(3) [B2 SET IF IPBOUT ASLEEP 16 34MB BZE 0 WAKE [ALREADY ON LIST 9 3572 ERS 0 IPBSW(3) 7 35LL LDX 2 3 17 366= FPUT [PUT IPBOUT ON LIST 10 36KW WAKE MHUNTW 3,AMXOR,ADCB 18 36TS BZE 6 TREV [INPUT ACKNOWLEDGEMENT 10 376* LDXC 0 ICURSOR(3) 16 376L BCC NVDRO [J IF NOT VDU 19 376X [ NOW SET B13 IN ICONTU IF... 20 3778 [ EXPECT TO BE WOKEN BY IPBOUT 7 377F SMO 4 8 377Q LDX 4 FPTR 7 3783 SMO 4 9 378# LDX 4 IMOPTY 7 378K ANDN 4 1 8 378W SLL 4 10 8 3797 NGN 0 #2001 9 379D ANDS 0 ICONTU(3) 9 379P ORS 4 ICONTU(3) 5 37=2 NVDRO 8 37=N LDN 0 #10 20 37CW ORS 0 IWAIT(3) [SET ^QUEUING MESSAGE^ FLAG(B20) 9 37HB ANDX 6 BITS22LS 17 37K6 CALL 4 WAITO [CHECK OPERABILITIES 20 384Q NFOUR BRN TFR [IDENT INOP : FREE REST OF OUTPUT 10 38JB HUNTW 1,AMXOR,IOUT 16 3942 BNG 1 ROLAS [LAST OUTPUT SENT 8 39HL LDCT 1 #200 10 3=3= ANDX 1 ISTATUS(3) 21 3=GW BZE 1 STENT [WARNING NOT SET : SEND NEXT BLOCK 17 3?2G BRN WAITO [RECHECK OPERABILITY 8 3?=# ROLAS LDN 0 #10 21 3?G6 ERS 0 IWAIT(3) [UNSET ^QUEUING MESSAGE^ FLAG(B20) 8 3?PY ADX 6 FX1 8 3?_Q LDX 1 FX1 7 3#FB EXIT 6 0 7 3#LJ ...#SKI G502&1$1 4 3#RQ ...( 4 3#_2 # 21 3*DL # MOVE BACK AMXOR/IOUT POINTER TO PREVENT OUTPUTTING TRAILING SPACES 20 3*Y= # BEFORE NEWLINE ; COUNT OF TRAILING SPACES IN X7 ; CALL ON X5 4 3BCW # 18 3BXG SBACK SBX 6 7 [OUTPUT CHARACTER COUNT 7 3CC6 NGX 0 7 7 3CWQ ANDN 0 3 18 3DBB BZE 0 SECT [COUNT IS MULTIPLE OF 4 7 3DW2 SBN 3 1 21 3F*L SFOR BCHX 3 / [BACK 1 WORD & FORWARD NO. OF CHARS 8 3FT= BCT 0 SFOR 7 3G#W SECT SRL 7 2 19 3GSG SBX 3 7 [MOVE AMXOR/IOUT POINTER BACK 7 3H#6 EXIT 5 0 4 3HHY ...) 4 3HRQ # 21 3J?B # GET AMXOR/IOUT BLOCK FOR OUTPUT ; ON ENTRY X3 POINTS TO AMXOR/ADCB 20 3JR2 # BLOCK ; PUT MESSAGE CHAR CT.IN X4 ; HEADER IN X5 ; CALL ON X7 4 3K=L # 8 3KQ= SETU SBX 7 FX1 18 3L9W SLL 5 12 [HEADER AND DISCARD MASK 7 3LPG ADX 5 4 17 3M96 ADN 4 IDATA-A1*4+3 [TOTAL COUNT OF CHARS 7 3MNQ SRL 4 2 11 3N8B SETUPCORE 4,2,AMXOR,IOUT,1 10 3NN2 MHUNTW 3,AMXOR,ADCB 10 3P7L STO 5 IPBIDE+1(2) 18 3PM= SLC 5 5 [B4 SET IF 'READY' OUTPUT 7 3Q6W ERN 5 1 7 3QLG ANDN 5 1 21 3R66 STO 5 IMOPTY(2) [WAKE ACTIVITY AFTER NON-READY OUTPUT 17 3RKQ STOZ IBSW(2) [BLOCK STATUS WORD 10 3S5B LDX 0 IDENTNO(3) 17 3SK2 STO 0 IPBIDE(2) [IDENTIFIER NUMBER 17 3T4L LDN 5 IDATA(2) [START OF OUTPUT DATA 8 3TJ= ADX 7 FX1 7 3W3W EXIT 7 0 7 3WHG ...#SKI G502&1$1 4 3X36 ...( 4 4#NL # 21 4*8= # CHANGE ETX ON END OF OUTPUT TO CANCEL IN CASE REINPUTTING ON TAPE 4 4*MW # 7 4B7G TOCA BCHX 1 / 7 4BM6 BCHX 1 / 8 4C6Q LDN 4 #10 7 4CLB BCHX 1 / 7 4D62 SBN 1 1 8 4DKL DCH 4 0(1) 7 4F5= EXIT 0 0 4 4F*4 ...) 4 4FJW # 21 4G4G # CHECK IPB AND IDENTIFIER OPERABILITY ; IF OPERABLE COOR1 & EXIT+1 18 4GJ6 # IF INOPERABLE EXIT WITH X5<0 IFF IPB INOP ; CALL ON X4 4 4H3Q # 8 4H8X WTINT ORX 4 GSIGN 8 4H=L BRN TWAIT 9 4H#* WAITO ANDX 4 BITS22LS 9 4HB4 TWAIT SMO IADIN(3) 8 4J32 LDX 5 IPBSW 16 4JGL BNG 5 STACR [IPB INOPERABLE 10 4K2= LDX 5 ISTATUS(3) 8 4KFW SBX 4 FX1 17 4K_G BPZ 5 WSLE [IDENTIFIER OPERABLE 9 4LF6 LDX 0 IWAIT(3) 20 4LYQ ANDN 0 #100 [B17 SET IF INOP. ALREADY NOTICED 8 4MDB BNZ 0 WSLE 12 4NCL LONGSET #36,SET,IDENTNO(3) 16 4NX= LDX 5 WAITINOP(1) [LENGTH OF WAIT 8 4PBW BZE 5 WEX 19 4PDD LDN 0 #1000 [NOTE INOPTIME WAIT IS NOT 20 4PG2 SMO A1+FPTR(3) [APPLICABLE TO AUTO-ANSWER LINES 9 4PHJ ANDX 0 FOURTHWD 21 4PK6 BNZ 0 WEX [AUTO-ANSWER LINE (B14) : SKIP WAIT 6 4PLN WAITINOPTIM 21 4PWG LONGTARRY WEX,WCK,5 [INOPTIME WAIT (BROADCASTS IGNORED) 21 4Q6# [IF BREAK-IN(EG AB,MP OFF),ABORT WAIT 21 4QB6 [IF STILL INOP AFTER WAIT,J TO WCK 18 4QKY BRN WOPAG [RE-OPERABLE : EXIT +1 19 4QTQ WCK LDX 5 CLONG3(2) [CHECK FOR END OF WAIT PERIOD 21 4R5J SBN 5 2 [NOTE END OF WAIT LEAVES 1 IN CLONG3 17 4R*B BNG 5 WEX [END OF WAIT PERIOD 20 4RK8 BDX 5 WAITINOPTIM [SPURIOUS RESTART : RESUME WAIT 21 4RT2 WEX SBN 4 1 [END OF WAIT PERIOD:STILL INOP:EXIT 0 21 4S4S LONGOFF [CLONG1 STILL SET AFTER WAIT EXPIRES 8 4S#L BRN WIT 4 4S*4 WSLE 15 4SD5 LDX 2 FX2 [MOP DISPLAY 19 4SF= CALL 5 VABANDON [TEST FOR ^TESTOUT^ MARKER 18 4SF* BNG 4 SLWT [J IF TIMED OUT CONSOLE 2 4SFB 10 4SFC LDXC 0 ICURSOR(3) 8 4SFD BCC SLEEP 8 4SFF LDN 0 #2000 9 4SFG ANDX 0 ICONTU(3) 18 4SFH [ J IF BEING WOKEN BY IPBOUT 8 4SFJ BNZ 0 SLEEP 8 4SFK SMO FX1 8 4SFL LDX 0 VWAIT 9 4SFM ANDX 0 IWAIT(3) 20 4SFN BZE 0 SLEEP [J IF NOT READY OR OUTPUT SUSP. 7 4SFP ANDN 0 1 8 4SFQ BZE 0 TSEE 8 4SFR ORX 4 GSIGN 8 4SFS BRN SETA 4 4SFT TSEE 7 4SFW LDN 0 2 10 4SFX ANDX 0 CONTEXT(2) 17 4SFY BZE 0 SLVW [J IF USER CONTEXT 8 4SF_ LDCT 0 #20 9 4SG2 ANDX 0 IWAIT(3) 16 4SG3 BZE 0 SLWT [NOT JOB NOR INPUT 20 4SG4 SLVW ORX 4 GSIGN [MARK SO WE WAIT FOR MOPWAITTIME 4 4STB SLWT 10 4STM LONGSET IVDUWAIT,SETA 8 4ST_ LDN 0 #2000 21 4SX6 ORS 0 IWAIT(3) [ALSO TO BE WOKEN ON INOPERABILITY 21 4SX# BPZ 4 TOLTA [J IF NOT WAITING FOR MOPWAITTIME 2 4SXB 9 4SXD LDX 0 ZMIN(1) 9 4SXG MPY 0 IPMOPWAIT 10 4SXJ LDXC 0 ICURSOR(3) 13 4SXL [ J IF VDU 8 4SXN BCS TOLTY 8 4SXQ LDCT 5 #400 8 4SXS BRN TIPMC 7 4SXW TOLTA LDN 1 0 8 4SXY TOLTY SMO FX1 9 4SY2 ADX 1 VDUWAIT 8 4SY3 LDCT 0 #200 10 4SY4 ANDX 0 ICURSOR(3) 17 4SY5 BZE 0 TOTAR [J IF NOT SCEDITING 8 4SY6 SMO FX1 17 4SY7 ADX 1 SDADD [INCREASE WAIT TIME 10 4SY8 TOTAR LONGTARRY TOBRK,VTUP,1 8 4SY9 BRN WOPAG 8 4SY= TOBRK CALL 3 ZLNOF 8 4T2J BRN WOPAG 15 4T2T [ SEE IF TIME UP 9 4T2Y VTUP LDX 1 CLONG3(2) 7 4T33 SBN 1 2 8 4T36 BNG 1 YSUP 8 4T39 BDX 1 TOTAR 13 4T3# [ TIME UP 8 4T3C YSUP LDX 1 FX1 8 4T3G CALL 3 ZLNOF 4 4T3K YUPZ 20 4T64 MHUNTW 3,AMXOR,ADCB [^TIME UP^ : CLOSE DOWN DISPLAY 8 4T79 CALL 7 VNEWL 8 4T7R BPZ 4 TIMV 7 4T7_ LDN 7 0 8 4T8B BRN TIMUP 4 4T9H # 16 4T=N SLEEP LDCT 0 #400 [INDICATE ASLEEP 19 4T?W ADN 0 #2000 [BE WOKEN ON INOPERABILITY 9 4TRG ORS 0 IWAIT(3) 6 4W?6 COOR1 10 4WQQ WOPAG MHUNTW 3,AMXOR,ADCB 20 4X2J CALL 5 VABANDON [IF VDU,TEST FOR ^TESTOUT^ MARKER 8 4X=B LDCT 0 #100 10 4XQ2 SMO A1+FPTR(3) 9 4Y9L ANDX 0 FOURTHWD 15 4YP= BNZ 0 TOAB [MOPPING OFF 8 4_8W WIT ADXC 4 FX1 7 4_NG EXIT 4 1 4 58H= # 4 592W # 20 59GG # ENTRY POINT FROM MONOUT , WITH OUTPUT IN A GMON/AOUT BLOCK AND 21 5=26 # NUMBER OF CHARACTERS IN THE OUTPUT IN ACOMMUNE7 OF THIS ACTIVITY 4 5=FQ # 6 5=_B SK1IPBMOP 20 5?F2 READYOFF [ZEROISE BI MARKER FOR 'READY' 8 5?YL LDCT 0 #10 18 5#D= ORS 0 CLONG1(2) [SET IF DOING A BROADCAST 9 5#XW ERS 0 CLONG1(2) 18 5*CG CALL 6 QIN [TEST FOR INOPERABILITY 10 5*X6 LDX 5 ACOMMUNE7(2) 10 5B4Y MHUNTW 3,AMXOR,ADCB 10 5B6W LDX 0 ICURSOR(3) 19 5B8S SLL 0 1 [IF IN SCREEN EDITING MODE, 19 5B=Q BNG 0 NOBB [IGNORE BROADCAST MESSAGES 6 5B#4 ...#SKI G502&1 17 5B*B ... JBS NOBB,2,G502NOBC [ IGNORING BROADCASTS 19 5BBQ HUNTW 3,AMXOR,BBC [LOOK FOR BROADCAST MESSAGE 8 5BWB BNG 3 NOBB 21 5CB2 STO 5 AWORK3(2) [PRESERVE COUNT OF ORDINARY OUTPUT 19 5CTL LDX 5 A1(3) [COUNT OF BROADCAST OUTPUT 8 5D*= BRN OBROD 10 5DSW NOBB HUNTW 3,GMON,AOUT 20 5F#G BNG 3 PUP [NO ORDINARY OUTPUT STILL WAITING 21 5FS6 BNG 5 PUP [BROADCAST ONLY : IGNORE GMON/AOUT 9 5G?Q STOZ AWORK3(2) 16 5GRB OBROD LDX 0 ATYPE(3) [FOR MHUNTX LATER 18 5H?2 LDCT 4 #212 [B1 SET IF READY MESSAGE 19 5HQL LDX 7 A1+1(3) [B19 SET IF COMERR MESSAGE 9 5J== STO 0 AWORK1(2) 19 5JPW ANDX 4 A1+1(3) [B5 SET IF BROKEN IN MESSAGE 8 5K9G ANDN 7 #20 10 5KP6 MHUNTW 3,AMXOR,ADCB 7 5L8Q LDCT 0 2 19 5LNB SLL 4 1 [B7 SET IF 'FORCED TYPING' 16 5M82 ORS 0 IWAIT(3) [INDICATE 'READY' 19 5MML BNG 4 REDYM [READY MESSAGE : LEAVE B8 SET 21 5N7= ORS 7 IWAIT(3) [INHIBIT TAPE INPUT AFTER NEXT READY 9 5NLW ERS 0 IWAIT(3) 18 5P6G REDYM STO 5 ACOMMUNE8(2) [COUNT FOR THIS OUTPUT 9 5PL6 TWAR SMO IADIN(3) 8 5Q5Q LDX 5 IPBSW 8 5QKB BNG 5 STACR 10 5QXR LDX 0 ISTATUS(3) 7 5R=8 SLC 0 6 20 5RJK BNG 0 TINOP [TAKE DEVICE INOPERABILITY ACTION 16 5RX2 [IMMEDIATELY (B6) 7 5S9C SRC 0 5 16 5SHW BPZ 0 NOWAR [WARNING NOT SET 7 5SMR SRC 0 1 21 5SRN BNG 0 NOWAR [DEVICE INOP : SKIP WARNING WAIT AND 19 5SXK [LET WAITO TAKE INOP ACTION 8 5T3G LDCT 0 #100 10 5TH6 SMO A1+FPTR(3) 9 5W2Q ANDX 0 FOURTHWD 21 5WGB BNZ 0 NOWAR [MOPPING OFF : OUTPUT MOPOFF MESSAGE 8 5X22 LDCT 0 #400 8 5XFL ADN 0 #2000 20 5X_= ORS 0 IWAIT(3) [INDICATE ASLEEP AND WAITING FOR 15 5YDW COOR1 [CONTINUE. 10 5YYG MHUNTW 3,AMXOR,ADCB 8 5_D6 BRN TWAR 4 5_XQ # 17 62CB NOWAR BPZ 4 NOTRD [NOT A READY MESSAGE 8 62X2 LDCT 0 #10 9 63BL ANDX 0 IWAIT(3) 19 63W= BNZ 0 TEBIL [G3 BI MARKER : TEST BI LEVEL 9 64*W LDX 7 IREADY(3) 9 64TG LDN 6 IREADY+1 8 65*6 LDN 0 #20 17 65SQ LDN 5 #4214 [HEADER FOR 'READY' 19 66#B ANDX 0 IWAIT(3) [B19 SET IF DC1 NOT REQUIRED 8 66S2 BZE 0 STORP 7 67?L SBN 7 2 6 67B9 ...#SKI G502&1 4 67DS ...( 8 67HC ... BPZ 7 STOR 21 67L2 ... ADN 7 2 [ DONT DELETE DC1 IF IT CANT BE THERE! 4 67NK ...) 8 67R= BRN STOR 4 68=W # 18 68QG NOTRD LDN 5 #4004 [HEADER FOR NORMAL OUTPUT 18 69=6 BZE 4 NBRON [NOT 'BROKEN IN' MESSAGE 21 69PQ LDN 5 #4000 [HEADER FOR BROKEN IN OR BROADCAST 7 6=9B SLL 4 4 17 6=P2 BPZ 4 NB [BROADCAST MESSAGE 8 6?8L LDN 7 #20 21 6?N= ORS 7 IWAIT(3) [SET B19 TO INHIBIT DC1 AFTER READY 8 6#7W LDCT 7 #10 20 6#MG ORS 7 IWAIT(3) [BROKEN IN MESS : UNSET G3 BI BIT 9 6*76 ERS 7 IWAIT(3) 10 6*BY NB LDXC 0 ICURSOR(3) 18 6*LQ BCS NBRON [MOP DISPLAY : B12 UNUSED 21 6*WJ ORS 5 IWAIT(3) [SET ^NL REQUIRED BEFORE MESSAGE^ BIT 19 6B6B NBRON LDX 7 INOCHS(3) [NO. OF CHARS IN TERMINATOR 6 6B?J ...#SKI G502&1 11 6BDQ ... JBS NLSC,2,G502NOLF 9 6BL2 LDX 0 IWAIT(3) 7 6C5L LDN 6 0 8 6CK= ANDX 0 BIT10 18 6D4W BZE 0 NONLS [NOT NEW-LINE SUPPRESSION 10 6D=4 LDXC 6 ICURSOR(3) 20 6DC= BCS NLSC [MOP DISPLAY : DON' UNSET B10 YET 15 6DJG ERS 0 IWAIT(3) [UNSET B10 9 6F46 NLSC LDCH 6 ICHARS(3) 20 6FHQ SBX 7 6 [NO. OF CHARS WITH NL SUPPRESSED 7 6G3B SRC 6 2 9 6GH2 NONLS ADN 6 INLBUFF 8 6H2L LDCT 0 #100 20 6HG= ANDX 0 IWAIT(3) [B2 SET IF 'TIMGD OUT' MESSAGE 8 6H_W BZE 0 STORP 19 6JFG LDN 5 #4014 [HEADER FOR TIMED OUT MESSAGE 9 6J_6 STOR ERS 0 IWAIT(3) 18 6KDQ STORP STO 6 AWORK2(2) [ADDRESS OF TERMINATOR 4 6KYB # 21 6LD2 # CONVERT MESSAGE IN GMON/AOUT BLOCK INTO LINE CODE IN AMXOR/IOUT 20 6LXL # BLOCK , PRECEDED BY IDENTIFIER AND HEADER ; CONSOLE WIDTH AND 14 6MC= # TERMINATORS HELD IN AMXOR/ADCB BLOCK . 4 6MWW # 18 6NBG LDN 0 A1+2 [INITIALISE THE PICK-UP 21 6NW6 STO 0 ACOMMUNE9(2) [POINTER IN GMON/AOUT OR AMXOR/BBC 10 6P3# LDXC 0 ICURSOR(3) 15 6P8G BCS VDUMESS [MOP DISPLAY 19 6P?6 STOZ AWORK4(2) [SET B15-23=0 : START OF LINE 17 6P*Q DCH 7 AWORK4(2) [LENGTH OF TERMINATOR 9 6PTB LDX 4 IMDNPU(3) 17 6Q*2 ANDN 4 #7777 [NPU SIZE IN WORDS 7 6QSL SLL 4 2 19 6R#= STO 4 ACOMMUNE7(2) [NPU SIZE : FOR USE BY TXU'S 6 6R## ...#SKI G502&1 4 6R#B ...( 17 6R#D ...NEXB LDN 6 0 [ FIRST TIME MARKER 17 6R#G ... BRN SHBEG [ TO SET UP BLOCK ETC 7 6R#J ...RECST LDX 6 4 9 6R#L ... LDX 2 IDELE(3) 8 6R#N ... BZE 2 NFIR 10 6R#Q ... LDN 4 IDELE+1(3) 19 6R#S ... MVCH 4 0(2) [ INITIAL CHUG-CHUG WAKE-UP 7 6R#W ... SBX 6 2 8 6R#Y ...NFIR LDN 0 #4000 9 6R*2 ... ANDX 0 IWAIT(3) 8 6R*4 ... BZE 0 NONL 9 6R*6 ... ERS 0 IWAIT(3) 9 6R*8 ... LDCH 2 ICHARS(3) 10 6R*= ... LDN 4 INLBUFF(3) 8 6R*# ... MVCH 4 0(2) 7 6R*B ... SBX 6 2 9 6R*D ...NONL LDEX 7 ICHARS(3) 7 6R*G ... ADN 7 1 21 6R*J ... JBC ORDRX,1,G502NOLF [ IF RX WIDTH N/L'S TO BE SUPPRESSED, 21 6R*L ... LDX 7 BITS22LS [ IMPLEMENT BY GIVING VERY BIG WIDTH 7 6R*N ...ORDRX LDX 3 5 18 6R*Q ... LDN 4 0 [ DEFAULT TYPE = GRAPHIC 9 6R*S ... STOZ PREVSH 9 6R*W ... LDCH 0 AWORK1(1) 9 6R*Y ... SBN 0 GMON/64 19 6RB2 ... BNZ 0 NSREC [ BROADCAST - KEEP GRAPHIC 11 6RB4 ... JBC NSREC,1,G502SHIFT 19 6RB6 ... LDN 4 #74 [ SHIFT, STARTING IN ALPHA 9 6RB8 ... STO 4 PREVSH 11 6RB= ... JBC NSREC,1,G502BETA 18 6RB# ... LDN 4 #75 [ SHIFT, STARTING IN BETA 10 6RBB ...NSREC LDX 2 ACOMMUNE4(1) 8 6RBD ... ADN 2 A1+2 8 6RBG ... STO 3 NONSP 4 6RBJ ...# 15 6RBL ...# SUPER NEW CODE FOR MAIN LOOP OF IPBMOP - 21 6RBN ...# HANDLES SHIFT CHARACTER CONVERSION, RESET WIDTH AND NPU FILLING. 17 6RBQ ...# WRITTEN BY R.L.HUTCHINGS, U.I.J.P.C., JULY 1978 4 6RBS ...# 20 6RBW ...# ALL AWORK WORDS, ACOMMUNES, AND ACCUMULATORS ARE HEAVILY USED, 12 6RBY ...# SO WE USE GEN0-GEN6 AS BELOW: 13 6RC2 ...#DEF SEV4 = GEN0 [ CONSTANT #74 13 6RC4 ...#DEF SEV6 = GEN1 [ CONSTANT #76 13 6RC6 ...#DEF TWENTY = GEN2 [ CONSTANT #20 18 6RC8 ...#DEF PREVSH = GEN3 [ LATEST ALPHA/BETA SENT TO OUTPUT 15 6RC= ...# GEN4 USED AS TEMPORARY DUMP FOR X4 19 6RC# ...#DEF NONSP = GEN5 [ POSITION OF LAST NON-SPACE IN OUTPUT 21 6RCB ...#DEF RECEND = GEN6 [ ABSOLUTE CHAR ADDRESS OF END OF INPUT RECORD 4 6RCD ...# 12 6RCG ...# NORMAL CONTENTS OF ACCUMULATORS : 16 6RCJ ...# X0 = CURRENT CHAR (B0 SET IF IN DELTA SHIFT) 7 6RCL ...# X1 = FX2 13 6RCN ...# X2 = ABSOLUTE POSITION IN INPUT 13 6RCQ ...# X3 = ABSOLUTE POSITION IN OUTPUT 21 6RCS ...# X4 = B0 SET IF DELTA SHIFT, B18-23 = CURRENT INPUT ALPHA OR BETA 16 6RCW ...# X5 = 0 OR SHIFT TO BE OUTPUT BEFORE NEXT CHAR 18 6RCY ...# X6 = NO. OF CHARS LEFT IN N.P.U., ALLOWING FOR NL/ETX 14 6RD2 ...# X7 = NO. OF CHARS LEFT IN RESET WIDTH 4 6RD4 ...# 9 6RD6 ...SHCPY TXU 2 RECEND 8 6RD8 ... BCC REND 17 6RD= ... LDCH 0 0(2) [ NEXT CHAR IN RECORD 8 6RD# ... TXL 0 SEV4 17 6RDB ... BCS ORDCH [ < #74 - ORDINARY 16 6RDD ... BZE 4 NSHIF [ GRAPHIC OUTPUT 8 6RDG ... TXU 0 SEV6 8 6RDJ ... BCS SETAB 21 6RDL ... ORX 4 GSIGN [ DELTA IN SHIFT FILE - JUST REMEMBER 8 6RDN ... BCHX 2 SHCPY 18 6RDQ ...SETAB DEX 0 4 [ REMEMBER ALPHA OR BETA 8 6RDS ... BCHX 2 SHCPY 18 6RDW ...NSHIF SBN 0 #10 [ CONVERT GRAPHIC CHAR 16 6RDY ... LDX 4 GSIGN [ SET DELTA FLAG 21 6RF2 ...ORDCH BCT 7 NRXWF [ COUNT VISIBLE CHARS FOR RESET WIDTH 19 6RF4 ... STO 2 ACOMMUNE2(1) [ END OF 'RESET WIDTH' WIDTH 7 6RF6 ... LDX 2 3 7 6RF8 ... SLC 2 2 8 6RF= ... LDX 3 NONSP 7 6RF# ... SLC 3 2 20 6RFB ... SBX 2 3 [ NO. OF CHARS SINCE LAST NON-SP 19 6RFD ... ADX 6 2 [ - ADD TO NPU SPACE LEFT 7 6RFG ... SRC 3 2 15 6RFJ ... LDX 2 ACOMMUNE6(1) [ AMXOR/ADCB 16 6RFL ... LDEX 7 ICHARS(2) [ RX WIDTH VALUE 9 6RFN ... LDCH 5 ICHARS(2) 17 6RFQ ... LDN 2 INLBUFF(2) [ NEWLINE SEQUENCE 7 6RFS ... SBX 6 5 7 6RFW ... SMO 5 7 6RFY ... MVCH 2 0 10 6RG2 ... LDX 2 ACOMMUNE2(1) 19 6RG4 ... STO 3 ACOMMUNE3(1) [ IN CASE WE HIT END OF NPU 8 6RG6 ... STO 4 GEN4 19 6RG8 ...NRXWF TXU 4 PREVSH [ SEE IF SHIFT CHAR HAS TO BE 17 6RG= ... SBN 6 0 [ INSERTED IN NPU 17 6RG# ... BPZ 6 NPUNF [ J IF NPU NOT FULL 7 6RGB ... LDX 6 2 15 6RGD ... LDX 2 ACOMMUNE6(1) [ AMXOR/ADCB 10 6RGG ... LDX 0 ACOMMUNE2(1) 8 6RGJ ... BZE 0 NPART 18 6RGL ... LDX 6 0 [ GET RID OF PART LINE 10 6RGN ... LDX 3 ACOMMUNE3(1) 8 6RGQ ... LDX 4 GEN4 9 6RGS ... LDEX 7 ICHARS(2) 9 6RGW ...NPART LDX 5 INOCHS(2) 9 6RGY ... LDCH 0 ICHARS(2) 9 6RH2 ... ADN 2 INLBUFF 7 6RH4 ... SBX 5 0 18 6RH6 ... BZE 5 RU1 [ J IF ESC SEQUENCE NULL 7 6RH8 ... SRC 0 2 7 6RH= ... ADX 2 0 17 6RH# ... SMO 5 [ ADD ETX TO MESSAGE 7 6RHB ... MVCH 2 0 18 6RHD ...RU1 LDN 5 1 [ MUST BE LEFT NON-ZERO 19 6RHG ... SBX 6 ACOMMUNE4(1) [ RELATIVISE INPUT POINTER 18 6RHJ ...SHBLK LDX 1 ACOMMUNE1(1) [ ADDRESS OF IOUT BLOCK 9 6RHL ... SBN 3 IDATA(1) 7 6RHN ... SLC 3 2 10 6RHQ ... DSA 3 IPBIDE+1(1) 10 6RHS ... ADN 3 IDATA-A1*4+3 7 6RHW ... SRL 3 2 10 6RHY ... TXU 3 ALOGLEN(1) 8 6RJ2 ... BCC XALTL 19 6RJ4 ... ALTLEN 1,3 [ SHORTEN IOUT IF NECESSARY 8 6RJ6 ...XALTL LDX 2 FX2 18 6RJ8 ... BZE 5 NOMOR [ IF END OF DATA RECORD 10 6RJ= ... STO 4 ACOMMUNE3(2) 20 6RJ# ... LDN 5 #4004 [ MESS ABOUT READY FOR CALL SETU 17 6RJB ... LDX 4 ACOMMUNE7(2) [ NPU SIZE IN CHARS 18 6RJD ... STO 7 ACOMMUNE1(2) [ BORROWED TEMPORARILY 21 6RJG ...SHBEG CALL 7 SETU [ GET ADDITIONAL BLOCK FOR OVERFLOW 17 6RJJ ... LDN 0 SHIFT(1) [ X1 = FX1 FLEETINGLY 8 6RJL ... LDN 1 GEN0 17 6RJN ... MOVE 0 3 [ REINSTATE CONSTANTS 18 6RJQ ... LDX 1 FX2 [ AND GET BACK TO NORMAL 10 6RJS ... LDX 7 ACOMMUNE1(1) 17 6RJW ... STOZ ACOMMUNE2(1) [ NO NEWLINE IN NPU 18 6RJY ... STO 2 ACOMMUNE1(1) [ RESTORE IOUT POINTER 10 6RK2 ... STO 3 ACOMMUNE6(1) 21 6RK4 ... LDX 4 ACOMMUNE7(1) [ CALCULATE MAX. NO. OF OUTPUT CHARS, 21 6RK6 ... SBX 4 INOCHS(3) [ ALLOWING FOR NEWLINE ETC. AT END 7 6RK8 ... SBN 4 1 10 6RK= ... MHUNTX 2,AWORK1(1) 10 6RK# ... LDX 0 ACOMMUNE8(1) 7 6RKB ... SRC 0 2 9 6RKD ... ADN 0 A1+2(2) 9 6RKG ... STO 0 RECEND 10 6RKJ ... STO 2 ACOMMUNE4(1) 15 6RKL ... BZE 6 RECST [ FIRST TIME 18 6RKN ... ADX 2 6 [ INPUT POSITION RESTORED 7 6RKQ ... LDX 3 5 8 6RKS ... STO 3 NONSP 19 6RKW ... LDX 6 4 [ NO. OF FREE CHARS IN NPU 8 6RKY ... LDCH 0 0(2) 10 6RL2 ... LDX 4 ACOMMUNE3(1) 19 6RL4 ... LDN 5 #74 [ NOW RECOVER SHIFT SITUATION 18 6RL6 ... ANDX 5 4 [ #74 SHIFT, 0 GRAPHIC 9 6RL8 ... STO 5 PREVSH 8 6RL= ... TXU 4 GSIGN 8 6RL# ... BCS NPUNF 21 6RLB ... SBN 0 #10 [ MUST BE GRAPHIC CONVERTED TO DELTA 9 6RLD ...NPUNF TXU 4 PREVSH 18 6RLG ... BCC NOTSH [ NO SHIFT CHAR TO INSERT 8 6RLJ ... BPZ 4 NDELT 14 6RLL ... LDN 5 #76 [ DELTA 17 6RLN ... ORX 0 GSIGN [ NULLIFY SPACE CHECK 18 6RLQ ... ANDN 4 #77 [ CLEAR DELTA INDICATOR 8 6RLS ... BRN SHINS 20 6RLW ...NDELT LDX 5 4 [ CHANGE ALPHA OR BETA SETTING 9 6RLY ... STO 4 PREVSH 17 6RM2 ...SHINS DCH 5 0(3) [ INSERT SHIFT CHAR 7 6RM4 ... BCHX 3 / 8 6RM6 ...NOTSH DCH 0 0(3) 7 6RM8 ... SBN 6 1 7 6RM= ... BCHX 3 / 18 6RM# ... TXU 0 TWENTY [ TEST IF ORDINARY SPACE 8 6RMB ... BCC SPAC 20 6RMD ... STO 3 NONSP [ REMEMBER RIGHTMOST NON-SPACE 8 6RMG ...SPAC BCHX 2 SHCPY 4 6RMJ ...# 21 6RML ...REND LDX 3 NONSP [ END OF RECORD - IGNORE FINAL SPACES 9 6RMN ... LDX 2 AWORK2(1) 10 6RMQ ... ADX 2 ACOMMUNE6(1) 9 6RMS ... LDCH 5 AWORK4(1) 8 6RMW ... BZE 5 SHBLK 7 6RMY ... SMO 5 8 6RN2 ... MVCH 2 -1 17 6RN4 ... LDCH 4 0(2) [ NORMAL LAST CHAR 9 6RN6 ... LDCH 0 AWORK1(1) 9 6RN8 ... SBN 0 AMXOR/64 16 6RN= ... BNZ 0 NONBC [ IF BROADCAST 15 6RN# ... LDN 0 #13 [ AND WOULD 16 6RNB ... TXU 4 0 [ HAVE OUTPUT 15 6RND ... BCS NONBC [ 'ESCAPE', 18 6RNG ... LDN 4 #10 [ REPLACE BY 'CANCEL' 8 6RNJ ...NONBC DCH 4 0(3) 18 6RNL ... LDN 5 0 [ END-OF-RECORD MARKER 21 6RNN ... BCHX 3 SHBLK [ COMMON CODE TO COMPLETE IOUT BLOCK 4 6RNQ ...) 7 6RNS ...#SKI G502&1$1 4 6RNW ...( 18 6RRW NEXB CALL 7 SETU [SET UP AMXOR/IOUT BLOCK 8 6S?G LDX 1 FX2 21 6SR6 STO 2 ACOMMUNE1(1) [PRESERVE ADDRESS OF AMXOR/IOUT BLOCK 18 6T=Q STOZ ACOMMUNE3(1) [NEWLINE-IN-NPU INDICATOR 17 6TQB STO 3 ACOMMUNE6(1) [AMXOR/ADCB ADDRESS 17 6W=2 LDCH 6 AWORK4(1) [LENGTH OF TERMINATOR 17 6WPL TXL 6 INOCHS(3) [LENGTH OF NL+ETX+1 21 6X9= BCC NLBIG [X6 MUST START WITH GREATER OF COUNTS 9 6XNW LDX 6 INOCHS(3) 18 6Y8G NLBIG MHUNTX 2,AWORK1(1) [GMON/AOUT OR AMXOR/BBC 19 6YN6 STO 6 ACOMMUNE5(1) [REMEMBER INITIAL VALUE OF X6 10 6_7Q STO 2 ACOMMUNE4(1) 8 6_MB LDN 0 #4000 21 7272 ANDX 0 IWAIT(3) [SEND NL BEFORE BROKEN IN , TIMED OUT 8 72LL LDN 4 A1+2 20 736= ERS 0 IWAIT(3) [CLOSED DOWN OR RESTARTED MESSAGE 10 73KW TXU 4 ACOMMUNE9(1) 20 745G BCS NFIR [NOT FIRST PASS : IOUT > ONE NPU 10 74K6 LDN 4 IDELE+1(3) 9 754Q LDX 3 IDELE(3) 17 75JB BZE 3 NFIR [NOT USING AUTOMOP 21 7642 MVCH 4 0(3) [DC3 + DELETES TO STOP TAPE READER... 20 76HL ADX 6 3 [IF PUNCHING TAPE FOR RE-INPUT 10 773= NFIR ADX 2 ACOMMUNE9(1) 19 77GW LDX 3 5 [START ADDRESS IN AMXOR/IOUT 10 782G LDX 4 ACOMMUNE8(1) 21 78G6 BNZ 0 ROKEN [IN CASE PREV. OUTPUT HAD NL SUPPRESS 21 78_Q BZE 4 TOSP [EMPTY MESSAGE : OUTPUT TERMINATOR 18 799J RESUM LDEX 5 AWORK4(1) [CURRENT POSITION ON LINE 17 79FB BNZ 5 SREM [NOT START OF LINE 14 79P8 SMO ACOMMUNE6(1) [RESET :- 18 79_2 LDEX 5 ICHARS [CONSOLE CARRIAGE WIDTH 4 7=8S SREM 21 7=DL SBX 4 5 [X4 CONTAINS NO OF CHARS TO CONVERT 16 7=Y= STO 4 ACOMMUNE8(1) [REMAINDER COUNT 17 7?CW BPZ 4 REM [WILL NEED A NEWLINE 7 7?XG ADX 5 4 18 7#C6 STOZ ACOMMUNE8(1) [INDICATE NO REMAINDER 8 7#WQ REM LDN 4 #76 21 7*BB DEX 5 AWORK4(1) [IN CASE OVERRUN NPU & RETURN TO NEXB 7 7*W2 LDN 7 0 8 7B*L LDX 1 FX1 4 7BT= # 8 7C#W NLOOP LDCH 0 0(2) 9 7CSG TXU 0 SPACE(1) 15 7D#6 BCS NOSP [NOT A SPACE 20 7DRQ ADN 7 1 [UPDATE COUNT OF TRAILING SPACES 8 7F?B BRN NOSH 17 7FR2 NOSP LDN 7 0 [NO TRAILING SPACES 16 7G=L TXL 0 SHIFT(1) [TEST IF < #74 8 7GQ= BCS NOSH 19 7H9W ADN 6 1 [NO : CONVERT #74 TO #7664 8 7HPG SMO FX2 19 7J96 TXU 6 ACOMMUNE7 [CONTAINS NPU SIZE IN CHARS 20 7JNQ BCC TEND [ONLY ROOM FOR ONE MORE CHARACTER 8 7K8B DCH 4 0(3) 7 7KN2 BCHX 3 / 8 7L7L SBN 0 #10 8 7LM= NOSH DCH 0 0(3) 20 7M6W ADN 6 1 [INCREASE CT OF CONVERTED CHARS 7 7MLG BCHX 2 / 7 7N66 BCHX 3 / 21 7NKQ SBN 5 1 [DECREASE CT OF SPACE ON THIS LINE 15 7NTJ BZE 5 NLINE [END OF LINE 8 7P5B SMO FX2 9 7PK2 TXU 6 ACOMMUNE7 21 7Q4L BCC TEN [END OF TRANSFER : NPU LIMIT REACHED 18 7QD* BRN NLOOP [STILL ROOM ON THIS LINE 4 7QS4 # 5 7R7R NLINE 15 7RHG LDX 1 FX2 [END OF LINE 19 7RR# DEX 5 AWORK4(1) [SET B15-23=0 : END OF LINE 10 7S36 LDX 4 ACOMMUNE8(1) 20 7SGQ BZE 4 TREND [REMAINDER ZERO : END OF TRANSFER 17 7T2B BZE 7 ROKEN [NO TRAILING SPACES 19 7TG2 CALL 5 SBACK [MOVE BACK AMXOR/IOUT POINTER 18 7T_L ROKEN STO 2 ACOMMUNE9(1) [PRESERVE IOUT POINTER 17 7WF= LDX 2 ACOMMUNE6(1) [AMXOR/ADCB ADDRESS 17 7WYW LDCH 5 ICHARS(2) [LENGTH OF NEWLINE 7 7XDG ADX 6 5 10 7XY6 LDN 2 INLBUFF(2) 17 7YCQ SMO 5 [INSERT NEWLINE CHARS 7 7YXB MVCH 2 0 17 7_C2 LDN 5 0 [IN CASE JUMP TO NOWE 19 7_WL TXL 6 ACOMMUNE7(1) [CONTAINS NPU SIZE IN CHARS 19 82B= BCC NOWE [END OF NPU HERE : ADD ETX 19 82TW STO 3 ACOMMUNE3(1) [IN CASE END OF NPU OCCURS 16 83*G STO 6 ACOMMUNE2(1) [DURING NEXT LINE 18 83T6 LDX 2 ACOMMUNE9(1) [RESET GMON/AOUT POINTER 21 84#Q BRN RESUM [X4 MUST CONTAIN REMAINDER CT HERE 4 84SB # 21 85#2 # END OF NPU : ADD TERMINATOR IF ALSO END OF MESSAGE ; IF NOT , ADD 20 85RL # ETX TO OUTPUT , HAVING STEPPED BACK TO PREVIOUS NEWLINE IF ANY 4 86?= # 16 86QW TEND SBN 6 1 [CORRECT CHAR CT. 8 87=G TEN LDX 1 FX2 10 87Q6 LDX 4 ACOMMUNE8(1) 16 889Q BNZ 5 NOTEL [NOT END OF LINE 17 88PB BZE 4 TREND [ALSO END OF MESSAGE 19 8992 RESH STO 2 ACOMMUNE9(1) [RESTART POINT FOR NEXT NPU 19 89NL NOWE DEX 5 AWORK4(1) [ADD BACK TO REM CT. LATER 8 8=8= BRN TXADD 10 8=MW NOTEL LDX 0 ACOMMUNE3(1) 19 8?7G LDN 4 1 [INDICATE NOT END OF MESSAGE 20 8?M6 BZE 0 RESH [NO NEWLINE BEFORE IN THIS NPU 7 8#6Q LDX 3 0 19 8#LB LDX 6 ACOMMUNE2(1) [RETURN TO PREVIOUS NEWLINE 16 8*62 TXADD LDX 2 ACOMMUNE6(1) [ADDRESS OF ADCB 17 8*KL LDX 5 INOCHS(2) [LENGTH OF NL+ETX+1 15 8B5= LDCH 0 ICHARS(2) [LENGTH OF NL 9 8BJW ADN 2 INLBUFF 15 8C4G SBX 5 0 [ADD ETX ONLY 7 8CJ6 SRC 0 2 7 8D3Q ADX 2 0 8 8DHB BRN TOVE 4 8F32 # 17 8FGL TREND BZE 7 TOSP [NO TRAILING SPACES 15 8G2= CALL 5 SBACK [MOVE BACK X3 18 8GFW TOSP LDX 2 AWORK2(1) [ENTRY IF EMPTY MESSAGE 16 8G_G ADX 2 ACOMMUNE6(1) [ADD ADCB ADDRESS 9 8HF6 LDCH 5 AWORK4(1) 17 8HYQ TOVE SMO 5 [APPEND TERMINATOR. 7 8JDB MVCH 2 0 10 8JY2 LDX 2 ACOMMUNE4(1) 10 8PS= SBS 2 ACOMMUNE9(1) 19 8Q?W LDX 7 5 [PRESERVE TERMINATOR LENGTH 21 8QRG SBX 6 ACOMMUNE5(1) [X6 INCLUDED MAX. TERMINATOR LENGTH , 19 8R?6 LDX 1 ACOMMUNE1(1) [START ADDRESS OF AMXOR/IOUT 21 8RQQ ADX 6 5 [NOT THE ACTUAL LENGTH ; GET CORRECT 16 8S=B DSA 6 IPBIDE+1(1) [COUNT OF CHARS 10 8SQ2 ADN 6 IDATA-A1*4+3 18 8T9L SRL 6 2 [LENGTH OF OUTPUT BLOCK 10 8TP= TXU 6 ALOGLEN(1) 18 8W8W BCC REFX [CORRECT LENGTH ALREADY 8 8WNG ALTLEN 1,6 8 8X86 BRN NOMOV 8 8XMQ REFX LDX 1 FX1 8 8Y7B LDX 2 FX2 21 8YM2 NOMOV BZE 4 NOMOR [REMAINDER CT. 0 : MESSAGE FINISHED 18 8_6L LDN 5 #4004 [HEADER AND DISCARD MASK 20 8_L= LDEX 0 AWORK4(2) [ADD BACK INTO REMAINDER COUNT , 18 925W LDX 4 ACOMMUNE7(2) [NPU SIZE IN CHARACTERS 18 92KG ADS 0 ACOMMUNE8(2) [CHARS REMOVED AT RESUM 8 9356 BRN NEXB 4 935X ...) 4 936N # 15 938= # CONVERT MESSAGE FOR MOP DISPLAY 5 939S VDUMESS 10 93=K MHUNTW 3,AMXOR,ADCB 21 93?B STOZ ACOMMUNE7(2) [INITIALISE PART MESSAGE INDICATOR 7 93#Y LDCT 0 2 9 93BG ANDX 0 IWAIT(3) 21 93D4 BNZ 0 VCONV [READY MESSAGE:PRESERVE HEADER IN X5 21 93FL LDN 5 #4000 [MESSAGE HEADER FOR NON-READY MESSAGE 16 93H8 VCONV CALL 7 VEDITM [CONVERT MESSAGE 20 93HM VDAK HUNTW 2,AMXOR,IDATSG [DISCARD ANY ACTION KEY MESSAGES 14 93HS BNG 2 VDAKX [RECEIVED 7 93H_ FREECORE 2 8 93J6 BRN VDAK 8 93J? VDAKX LDX 2 FX2 4 93JQ # 21 944B # CONVERSION COMPLETE ; IF BROADCAST MESSAGE CONVERT ETX INTO CANCEL 18 94J2 # FOR POSSIBLE REINPUT & SEND MESSAGE TO MONITORING FILE 4 953L # 9 95H= NOMOR LDCH 0 AWORK1(2) 9 962W SBN 0 AMXOR/64 20 96GG BNZ 0 NOTBB [HAVE JUST CONVERTED GMON/AOUT 7 96J9 ...#SKI G502&1$1 4 96KY ...( 10 96MN LDXC 0 ICURSOR(3) 21 96SW BCS OBBC [MOP DISPLAY : SKIP EOM CONVERSION 21 9726 LDX 1 3 [DCH POINTER , NOT CHANGED SINCE TOVE 18 97FQ CALL 0 TOCA [CONVERT ETX INTO CANCEL 4 97PJ OBBC 4 97TF ...) 10 97_B MHUNTW 1,AMXOR,BBC 20 98F2 LDN 4 #2000 [SET BROADCAST CATEGORY BIT(13) 13 98YL OUTMON A1(1),A1+2,4,AMXOR,BBC 21 998D STOZ ACOMMUNE7(2)[ACOM7 ^PART MESS INDICATOR^ IS O/W BY OUTMON 21 99D= MFREEW AMXOR,BBC [CONVERTED BROADCAST MESSAGE BLOCK 10 9=X6 NOTBB MHUNTW 3,AMXOR,ADCB 9 9?BQ LDX 5 IWAIT(3) 7 9?WB SLL 5 1 17 9#B2 BNG 5 REVEX [REVERSION EXPECTED 4 9#B? # 15 9#BJ # IF ^OUTPUT SUSPENDED^ FLAG SET, 21 9#BT # SET UP A NULL DATA SEGMENT WITH TURNROUND(DISPLAYS ONLY) 4 9#C6 # 8 9#CC SLL 5 22 20 9#CN BPZ 5 NORIN [^OUTPUT SUSPENDED^ FLAG NOT SET 20 9#C_ CALL 6 RINGO [OUTPUT BLOCKS BEFORE SUSPENDING 9 9#D= NSIX BRN VSUSPEND 4 9#DH # 13 9#DS # PUT DISPLAY IN TYPE MODE 4 9#F5 # 5 9#FB VTYPE 10 9#FG MHUNTW 3,AMXOR,ADCB 19 9#FM HUNTW 2,AMXOR,IDATSG [PROCESS ANY OTHER DATA FIRST 18 9#FY BPZ 2 PASS [DATA(ACTION KEY) FOUND 9 9#G9 LDX 6 IWAIT(3) 7 9#GG SLL 6 7 21 9#GR BNG 6 VRNUL [ON A READY : JUST SET DISPLAY BACK IN TYPE MODE 5 9#HL VSUSPEND 21 9#HX LDN 5 #4214 [FOR SEGMENT HEADER(EOM+TURN+DISCARD) 21 9#J8 LDX 4 VSNULL(1) [COUNT OF CHARS REQUIRED FOR NULL MES 18 9#JF CALL 7 SETU [SET UP AMXOR/IOUT BLOCK 19 9#JQ LDCH 6 ICURPOS(3) [CURRENT LINE NO OF CURSOR 21 9#K3 LDEX 0 ICONTU(3) [NO OF LINES OUTPUT SINCE LAST TURN. 21 9#K# SBX 6 0 [LINE NO OF START OF CONTINUOUS O/P 18 9#KK ERN 6 #20 [CONVERT FOR VERTICAL TAB 17 9#KW LDN 4 VSNULL+1(1) [MOVE IN NULL MESSAGE 9 9#L7 SMO VSNULL(1) 7 9#LD MVCH 4 0 20 9#LP ORS 6 IDATA(2) [SET VERTICAL TAB FOR SOM MARKER 15 9#M2 BCHX 3 / [-> CHAR 1 16 9#M? LDCH 0 ICHARS(3) [DISPLAY LENGTH 9 9#MJ ANDX 3 BITS22LS 19 9#MT LDCH 6 ICURPOS(3) [CURRENT LINE NO OF CURSOR 7 9#N6 TXL 6 0 20 9#NC BCS VCURS [CURRENT LINE NO < DISPLAY LENGTH 19 9#NN LDN 6 0 [CURSOR POSITIONED ON LINE 0 8 9#N_ VCURS ERN 6 #3320 19 9#P= DSA 6 ICURSV(3) [SET VERTICAL TABULATE CODE 8 9#P* LDN 6 #7420 21 9#PD DSA 6 ICURSH(3) [SET HORIZONTAL TAB CODE FOR COL 0 21 9#PH LDN 4 ICURSOR+1(3) [MOVE IN CURRENT CURSOR POSITIONING 18 9#PS LDN 5 IDATA+4(2) [CODES TO RESET CURSOR 10 9#Q5 SMO ICURSOR(3) 7 9#QB MVCH 4 0 9 9#QM LDX 5 IWAIT(3) 7 9#QY SLC 5 1 20 9#R9 BNG 5 REVEX [G3 BREAK-IN : SKIP SUSPENSION 8 9#RG BRN NORIN 21 9#RR VRNUL LDN 5 #4214 [FOR SEGMENT HEADER(EOM+TURN+DISCARD) 7 9#S4 LDN 4 2 18 9#S* CALL 7 SETU [SET UP AMXOR/IOUT BLOCK 9 9#SL LDX 0 ISYNC(3) 17 9#SX STO 0 IDATA(2) [MOVE IN NULL CHAR 4 9#T8 # 16 9#TL NORIN CALL 6 RINGO [OUTPUT BLOCKS 4 9**= # 21 9*SW # OUTPUT FINISHED : TAKE APPROPRIATE ACTION IF INPUT WHEN 'READY' 10 9B4N # OR 'OUTPUT SUSPEND' 4 9B#G # 9 9BS6 LDX 4 IWAIT(3) 7 9C?Q SLC 4 1 17 9CRB BNG 4 TEBIL [REVERSION EXPECTED 7 9D?2 SRC 4 1 9 9DQL ANDX 4 VWAIT(1) 21 9F== BNZ 4 WAITI [READY OR OUTPUT SUSPENDED FLAG SET 4 9H8Q # 9 9HNB OUFIN LDCH 0 AWORK1(2) 9 9J82 SBN 0 AMXOR/64 20 9JFB BNZ 0 PUP [HAVE JUST OUTPUT GMON/AOUT BLOCK 20 9JQQ LDX 0 AWORK3(2) [HAVE JUST OUTPUT AMXOR/BBC BLOCK 20 9K46 STO 0 ACOMMUNE7(2) [RESET GMON/AOUT CHARACTER COUNT 9 9K*G BRN SK1IPBMOP 4 9KLW # 21 9L6G # LONG INPUT MAY OVERRUN ONE IDATSG ; CHECK OPERABILITY IF NO INPUT 4 9LL6 # 11 9M5Q WAITI HUNTW 2,AMXOR,IDATSG 8 9MKB BPZ 2 PASS 7 9N52 LDN 6 0 19 9N#S CALL 4 WAITO [NO INPUT : CHECK OPERABILITY 15 9NJL BRN TINOP [INOPERABLE 9 9P4= LDX 0 IWAIT(3) 7 9PHW SLL 0 1 21 9Q3G BNG 0 TEBIL [E.G. 'CONTINUE' FOLLOWED BY BREAK-IN 20 9QH6 BRN WAITI [OPERABLE : LOOK FOR INPUT AGAIN 4 9R2Q # 11 9RGB PASS HUNTW 1,AMXOR,IMESSG 20 9S22 BNG 1 NOLON [NOT SECOND PART OF LONG INPUT 17 9SFL LDX 5 A1(1) [COUNT OF FIRST PART 8 9S_= LDX 3 A1(2) 6 9T6D ...#SKI G501&1 21 9T?L ... ADN 3 1 [ CATER FOR NPU REVERSION TO ALPHA 8 9TDW ADS 3 A1(1) 17 9TYG ANDN 3 #7777 [COUNT OF SECOND PART 11 9WD6 LDN 4 CPDATA-A1*4+3(3) 7 9WXQ ADX 4 5 7 9XCB LDX 6 1 7 9XX2 SRL 4 2 18 9YBL ALTLENG 6,4,RIOT [LENGTHEN AMXOR/IMESSG 11 9YW= MHUNTW 1,AMXOR,IDATSG 7 9_*W SRC 5 2 11 9_TG MHUNTW 2,AMXOR,IMESSG 7 =25# ...#SKI G501&1$1 9 =2*6 LDN 4 CPDATA(1) 9 =2SQ ADN 5 CPDATA(2) 6 =2WF ...#SKI G501&1 4 =2Y8 ...( 8 =2_X ... LDCT 0 #740 7 =33L ... LDN 4 0 19 =35* ... MVCH 4 1 [ NEXT LUMP STARTS IN ALPHA 7 =374 ... SBN 3 1 9 =38R ... LDN 4 CPDATA(1) 4 =3=G ...) 18 =3#B BZE 3 PASSA [J IF ZERO MESSAGE COUNT 20 =3S2 MVCH 4 0(3) [APPEND SECOND PART OF MESSAGE 7 =4?L PASSA LDX 3 2 7 =4R= FREECORE 1 7 =5=W LDX 2 3 10 =5QG MHUNTW 3,AMXOR,ADCB 8 =6=6 BRN ZTES 4 =6PQ # 11 =79B NOLON NAME 2,AMXOR,IMESSG 21 =7P2 LDX 1 FX1 [WILL J TO SMEND IF ONE-BLOCK MESSAGE 9 =88L LDX 0 SMASK(1) 20 =8N= ANDX 0 IWAIT(3) [CANCEL INOP. MESSAGE INHIBIT AND 20 =97W ERS 0 IWAIT(3) [UNSET TP BREAK-IN BIT IN ADCB 19 =9MG DCH 0 IBIL(3) [ZEROISE BREAK-IN ACCUMULATOR 8 ==76 ZTES LDX 6 A1(2) 7 ==LQ SLC 6 3 19 =?6B BNG 6 TRERR [B3 SET IF TRANSMISSION ERROR 7 =?L2 SLC 6 2 17 =#5L BNG 6 TIMED [B5 SET IF TIMED OUT 7 =#K= SLC 6 1 8 =*4W BPZ 6 ZTESA 21 =*JG [BIT 6,CURRENT DATA STREAM CANCELLED,IS SET ONLY AFTER RE-OPERABILITY 9 =B46 [DURING A LONG INPUT. 20 =BHQ [THE DCP WOULD HAVE REPORTED ^LINE ERROR^ TO USER SO FREE IMESSG AND 11 =C3B [WAIT FOR NEXT INPUT MESSAGE. 7 =CH2 FREECORE 2 8 =D2L BRN WAITI 7 =DG= ZTESA SRC 6 6 16 =D_W BNG 6 SMEND [END OF MESSAGE 8 =FFG LDN 0 #7777 16 =F_6 ANDS 0 A1(2) [ISOLATE COUNT 20 =GDQ BRN WAITI [WAIT FOR REST OF INPUT MESSAGE 4 =GYB # 19 =HD2 # WHOLE MESSAGE RECEIVED : CHECK WHETHER FINISHED NORMALLY 4 =HXL # 5 =J35 SMEND 9 =J6J DOWN IPBMOPC,5 13 =J=3 BRN TESTWK [UP 20 =J*G BRN XNBRK [J. BREAK-IN REJECTED - UPPLUS 1 20 =JD_ BRN VTYPE [UPPLUS 2 PUT DISPLAY INTO TYPE 21 =JJD ... BRN UPVDMS [UPPLUS 3 CONVERT MESSAGE FOR DISPLAY 21 =JMX BRN TREV [ UPPLUS4 CONVERT INPUT FROM LINE CO 21 =JRB BRN OUFIN [UPPLUS 5 OUTPUT FINISH TAKE APPROPRI 14 =JWT BRN PUP [UPPLIS 6 5 =JXH ...UPVDMS 10 =JY9 ... LDX 0 ACOMMUNE1(2) 9 =JYX ... STO 0 AWORK1(2) 9 =J_K ... BRN VDUMESS 5 =K2# TESTWK 10 =K5R ... LDX 0 ACOMMUNE1(2) 8 =K9= ANDN 0 #77 10 =K#P ... ERS 0 ACOMMUNE1(2) 16 =KD8 BZE 0 PERBI [BREAK IN OK 7 =KHM SBN 0 1 14 =KM6 BZE 0 NORIN [CANCEL 10 =KQK MHUNTW 3,AMXOR,ADCB 8 =KW6 LDX 0 BIT9 9 =L*Q ANDX 0 IWAIT(3) 16 =LTB ERS 0 IWAIT(3) [UNSET B9 IF SET 20 =M*2 BNZ 0 TREV [SET : NL SUPPRESSION REQUIRED 17 =MSL LDX 4 INOCHS(3) [LENGTH OF NL+ETX+1 8 =N#= LDN 5 #4004 18 =NRW CALL 7 SETU [SET UP AMXOR/IOUT BLOCK 9 =P?G LDX 1 INOCHS(3) 10 =PR6 LDN 4 INLBUFF(3) 18 =Q=Q MVCH 4 0(1) [NEWLINE + END OF MESSAGE 21 =QF2 STOZ IMOPTY(2) [MARK NOT TO WAKE ACT AFTER OUTPUT 8 =QM= LDX 6 FX1 13 =QTG LDN 7 TREV [LINK 19 =R3Q BRN RINGO [QUEUE ACKNOWLEDGEMENT & EXIT 20 =R=2 TREV VFREEW FILE,FRB [DISCARD INMOP'S FRB IF IT EXISTS 10 =RFS MHUNTW 3,AMXOR,ADCB 11 =RPL MHUNTW 1,AMXOR,IMESSG 10 =S9= NAME 1,FILE,FRB 20 =X72 CHAIN 1,FX2 [NEEDED IF EDITOR FINISHING OFF 10 =X#8 LDXC 0 ICURSOR(3) 19 =XFB BCS VINPUT [MESSAGE FROM A MOP DISPLAY 19 =XLL CHANG [CONVERT INPUT FROM LINE CODE 5 =Y6= PUP UP 21 =Y=7 VINPUT [CAME FROM ZFOUR VIA TREV W/ AN ORDINARY (VDU) MESSAGE 19 =YB4 CHANGVD [CONVERT INPUT FROM LINE CODE 8 =YF_ BRN PUP 4 =YKW # 21 =_5G # TRANSMISSION ERROR ON INPUT : OUTPUT ERROR MESSAGE & REPEAT READY 16 =_*# # IF A MOP CONSOLE, ELSE TAKE INOPERABLE ACTION. 4 =_K6 # 10 ?24Q TRERR MFREEW AMXOR,IMESSG 10 ?2JB LDXC 0 ICURSOR(3) 21 ?342 BCS TINOP [MOP DISPLAY : TAKE INOPERABLE ACTION 9 ?3HL DOWN IPBMOPC,4 8 ?43= BRN NORIN 15 ?4GW XNBRK [BREAK IN REJECTED 10 ?RF= MHUNTW 3,AMXOR,ADCB 10 ?RLD LDXC 0 ICURSOR(3) 21 ?RRL BCS VTYPE [MOP DISPLAY : PUT BACK IN TYPE MODE 9 ?RYW LDX 4 INOCHS(3) 8 ?SDG LDN 5 #4004 17 ?SY6 CALL 7 SETU [SET UP OUTPUT BLOCK 9 ?TCQ LDX 1 INOCHS(3) 10 ?TXB LDN 4 INLBUFF(3) 18 ?WC2 MVCH 4 0(1) [NEWLINE + END OF MESSAGE 15 ?WWL BRN REPRD [REPEAT READY 4 ?XB= # 10 ?XTW PERBI MHUNTW 3,AMXOR,ADCB 8 ?Y*G LDCT 0 #10 16 ?YT6 ORS 0 IWAIT(3) [SET G3 BI BIT 10 ?_2# LDXC 0 ICURSOR(3) 15 ?_7G BCS VBA [MOP DISPLAY 17 ?_#Q LDCH 4 ICHARS(3) [LENGTH OF NEWLINE 19 ?_SB ADX 4 SBI(1) [LENGTH OF BREAK-IN MESSAGE 17 #2#2 ADX 4 INOCHS(3) [LENGTH OF NL+ETX+1 8 #2RL LDN 5 #4004 18 #3?= CALL 7 SETU [SET UP AMXOR/IOUT BLOCK 10 #3QW LDN 4 INLBUFF(3) 9 #4=G LDCH 1 ICHARS(3) 14 #4Q6 MVCH 4 0(1) [NEWLINE 8 #59Q LDX 1 FX1 9 #5PB LDN 4 SBI+1(1) 9 #692 LDX 1 SBI(1) 16 #6NL MVCH 4 0(1) [BREAK IN MESSAGE 10 #78= LDN 4 INLBUFF(3) 9 #7MW LDX 1 INOCHS(3) 18 #87G MVCH 4 0(1) [NEWLINE + END OF MESSAGE 8 #8M6 SBIM CALL 6 RINGO 20 #96Q TOAB READYON [SET 'READY' MACRO BREAK-IN BIT 10 #9?Y MHUNTW 3,AMXOR,ADCB 21 #9BJ CALL 7 VNEWL [IF MOP DISPLAY,ENSURE NEXT MESS STARTS ON A N/L 5 #9LB UP 18 #9M9 # DISPLAY BREAK-IN ACCEPTED : REPLY ^BREAK-IN^ 8 #9N4 VBA CALL 7 VNEWL 17 #9NX LDN 4 1 [BREAK-IN MESSAGE NO 18 #9PQ LDN 5 #4000 [FOR SEGMENT HEADER(EOM) 8 #9QK CALL 7 VEDIT 16 #9RD # PREPARE ANY REMAINING MESSAGE PART 10 #9S? LDX 4 ACOMMUNE7(2) 18 #9T6 BZE 4 SBIM [NO MESS PART REMAINING 10 #9T_ STOZ ACOMMUNE7(2) 19 #9WS DSA 4 ACOMMUNE8(2) [SET MESSAGE PART CHAR COUNT 9 #9XM ANDX 4 HALFTOP 18 #9YG STO 4 AWORK1(2) [SET MESSAGE BLOCK TYPE 10 #9_* LDX 0 ACOMMUNE3(2) 21 #=28 STO 0 ACOMMUNE9(2) [SET RELATIVE MESSAGE PART ADDRESS 8 #=33 LDN 5 #4000 9 #=3W CALL 7 VEDITM 8 #=4P BRN SBIM 4 #=62 # 19 #=KL # INPUT TIMED OUT : SET MARKER AND TEST WHETHER USER CONTEXT 21 #?5= # IF NO USER : INHIBIT BREAK-IN WHILE CLOSED DOWN MESSAGE IS OUTPUT 4 #?JW # 18 ##4G TIMED FREECORE 2 ['TIMED OUT' AMXOR/IDATSG 8 ##9N TIMV LDCT 7 #400 5 #### TIMUP 8 ##J6 LDCT 0 #24 19 ##WG ORN 0 #40 [ALSO TEST FOR MOP OFF LIMBO 10 #*3Q ANDX 0 JOBEVENTS(2) 18 #*HB BNZ 0 TOAB [MARKED 'TO BE ABANDONED' 9 #B32 LDCH 4 IWAIT(3) 7 #BGL LDN 0 2 10 #C2= ANDX 0 CONTEXT(2) 8 #C#L BPZ 7 TOCLO 16 #CFW BNZ 0 NOUSE [NO USER CONTEXT 4 #C_G # 4 #D4_ USER 19 #DT= ORN 4 #14 [TIMED OUT IN USER CONTEXT 9 #DYQ DCH 4 IWAIT(3) 10 #FDB LDX 5 ZJTIMEOUT(1) 19 #FY2 CALL 7 OUTM [OUTPUT TIMED OUT MESSAGE. 18 #GCL BRN TESTM [TEST TIMED OUT MARKER 20 #H8L WAIT CALL 4 WTINT [CHECK OPERABILITY BEFORE COOR1 15 #HBW BRN TINOP [INOPERABLE 8 #HWG TESTM LDCT 0 #40 9 #JB6 ANDX 0 IWAIT(3) 19 #JTQ BNZ 0 WAIT [TIMED OUT MARKER STILL SET 8 #K*B LDN 0 #200 21 #KT2 ANDX 0 IWAIT(3) [B16 SET IF MOPOFF OR JOB ABANDONED 9 #L#L ERS 0 IWAIT(3) 19 #LS= BNZ 0 TOAB [GIVE COMPRO BREAK-IN REPLY 10 #M?W LDX 5 ZJTOREST(1) 18 #MRG CALL 7 OUTM [OUTPUT RESTARTED MESSAGE 9 #N?6 REPRD LDX 4 IREADY(3) 8 #NQQ NODC LDN 5 #4214 8 #P=B CALL 7 SETU 7 #PQ2 LDCT 0 2 16 #Q9L ORS 0 IWAIT(3) [INDICATE 'READY' 10 #QCW LDN 4 IREADY+1(3) 9 #QL6 LDX 1 IREADY(3) 17 #QSB MVCH 4 0(1) [^READY^ TERMINATOR 17 #R2L BRN NORIN [OUTPUT READY MESSAGE 4 #R8W # 7 #RNG NOUSE LDX 0 4 7 #S86 SRC 0 2 18 #SMQ BNG 0 USER [JOB OR INPUT IN PROGRESS 5 #TM2 TOCLO 9 #W6L ACROSS IPBMOPB,8 4 *B== # 21 *BPW # IDENTIFIER INOPERABLE : SET PERIPHERAL TYPE IN CPA TO MCF SO THAT 21 *C9G # SUBSEQUENT MONOUTS GO TO K4MULTIPLX ; OUTPUT MESSAGES TO LOCAL AND 11 *CP6 # REMOTE OPERATORS' CONSOLES 4 *D8Q # 4 *DNB TFR 9 *G7= TINOP ACROSS IPBMOPB,1 9 *GLW STACR ACROSS IPBMOPB,3 4 BKRW # 20 BL?G # REVERSION EXPECTED : FREE REVERTED BLOCKS ACCORDING TO DISCARD 20 BLR6 # MASK , UNTIL NO MORE REVERTED BLOCKS,AND BREAK-IN LEVEL ZERO ; 21 BM=Q # THEN CONTINUE WITH PRESENT OUTPUT , OR INPUT RECEIVED FOR 'READY' 4 BMQB # 5 BN=2 TEBIL 9 BNPL REVEX DOWN IPBMOPB,2 8 BP9= BRN TOAB 8 BPNW BRN TPASS 8 BQ8G BRN OUFIN 8 BQN6 BRN NORIN 10 BR7Q TPASS MHUNTW 3,AMXOR,ADCB 15 BRMB BRN WAITI [THEN ^PASS^ 4 CSTW # 8 CT*G SET SBN 0 #36 21 CTNK BNZ 0 WEX [SKIP INOPERABILITY WAIT IF ACT ALREADY IN A LONG 21 CW3N [EVENT WAIT(EG #220) GO DOWN INOP PATH WITHOUT WAITING 8 CWGY SETA LDN 5 #1000 9 CWK2 ORS 5 ICONTU(3) 8 CWKN LDN 0 #2000 21 CWLB ORS 0 ISTATUS(3) [SET B13 TO BE WOKEN ON INOPERABLE 8 CWM4 LDX 3 JTIME 17 CWP6 [ DOWN TO WAIT IN COOR4 FOR CONT. OUT 20 CWR8 [ OR LONGSTOP FOR TIMED OUT 9 CWT= TIPMC DOWN IPBMOPC,1 8 CWX# BRN TOAB 8 CW_B BRN WOPAG 8 CX3D BRN YUPZ 8 CX4F BRN TINOP 10 CX#2 MENDAREA 25,K100IPBMOP 4 CXRL #END 8 ____ ...15247165000200000000