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