IPBMOP867

(George Source)

Macros used: ACROSS, ALTLEN, ALTLENG, CHAIN, CHANG, CHANGVD, COOR1, DOWN, FPUT, FREECORE, HUNTW, JBC, JBS, LONGOFF, LONGSET, LONGTARRY, MENDAREA, MFREEW, MHUNTW, MHUNTX, MONOUTX, NAME, OUTMON, OUTPAR, READYOFF, READYON, REM, SEG, SEGENTRY, SETUPCORE, SLEEP, TWAIT, UP, VFREEW

IPBMOP867.txt
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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1