IPBMOPB867

(George Source)

Macros used: ACROSS, ALTLEN, ALTLENG, BS, CHAIN, COOR1, DOWN, ERROR, FINDRET, FPUT, FREECORE, GEOERR, HUNTW, INFORM, ISITJOB, LONGOFF, LONGSET, LONGTARRY, LONGWAIT, MENDAREA, MHUNTW, MHUNTX, MONOUTX, NAME, OUTBLOCN, OUTLEN, OUTNUM, OUTPAR, READYON, RESET, SEGENTRY, SETNCORE, SETUPCORE, UP, UPPLUS

IPBMOPB867.txt
22#C ...#SEG  IPBMOPB8                     [COMM - IPB  
22LS ...[  (C)  COPYRIGHT INTERNATIONAL COMPUTERS LIMITED 1982  
22^=    #LIS  K0IPBMOPB>K0IPB>K0ALLGEO>K0GREATGEO   
23DW                   8HIPBMOPB
23YG          SEGENTRY K1IPBMOPB,SK1IPBMOPB 
24D6          SEGENTRY K2IPBMOPB,SK2IPBMOPB 
24XQ          SEGENTRY K3IPBMOPB,SK3IPBMOPB 
25CB ...      NULL  
25X2 ...      NULL  
26BL ...      NULL  
26W=          SEGENTRY K8IPBMOPB,SK8IPBMOPB 
27*W          NULL  
27TG          SEGENTRY K10IPBMOPB,SK10IPBMOPB   
285# ...      SEGENTRY  K11IPBMOPB,SK11IPBMOPB  
28*6    #   
28SQ    V32            32   
29#B    V60            60   
29S2    V64            64   
2=?L    O74            #74  
2=R=    VNLS           #76327632
2?=W    VCLEAR         #76130500
2?QG    #UNS JSKI36 
2#=6    VSETSOM        #76130674
2#PQ    VRACKUP        #76130700
2*9B    VBI            8,8HBREAK IN 
2*P2    VCONTOUTPUT    20[NO OF LINES ALLOWED FOR CONTINUOUS OUTPUT ON A DISP.  
2B8L    VCHAROUT       16H0123456789:;<=>?  
2BN=                   16H !"$#%&'()*+,-./  
2C7W                   24H@ABCDEFGHIJKLMNOPQRSTUVW  
2CMG                   #70717273
2D76                   #24757677
2GK=    ZJTOCLOSE      +JTOCLOSE           [CLOSED DOWN AT 'TIME'   
2J46    ZJMOPWT 
2JHQ                    +JMOPWTLI   
2K3B                    +JMOPWTIN   
2KH2                    +JMOPWTEX   
2L2L                    +JMOPWTJO   
2L^W    REMASK         #170000  
2MFG    SCAN           #76217610           [BREAK IN / CANCEL   
2M^6    VMASK          #77577777
2NDQ    #OPT  IPBINOPTIME=0 
2NYB          SEGENTRY K51IPBMOPB   
2PD2    WAITINOP       3+IPBINOPTIME/FONINTP[FOR LONGCOOR AFTER IDENT INOP  
2PMS ...TURNOFFEOM     #76327635,#76207613,#52770000
2PXL    #   
2QC=    #     RING AMXOR/IOUT BLOCK(S) BEHIND IPBOUT , WHICH IS THEN PUT ON LIST
2QWW    #     NEEDS ADCB ADDRESS IN X3 ; ADDRESS OF FIRST IOUT IN X1 AT RINGR   
2RBG    #   
2RW6    RINGO LDN   1  0
2S*Q    RINGR SBX   6  FX1                 [ENTRY WITH AMXOR/IOUT ADDRESS IN X1 
2STB    STENT LDX   3  IADIN(3)            [ADDRESS OF IPBIN ACTIVITY   
2T*2          LDX   3  IPBRING(3)   
2TSL          SBN   3  IPBRING             [ADDRESS OF IPBOUT ACTIVITY  
2W#=          LDX   2  ACTRING(3)   
2WRW          SBN   2  ACTRING             [FIND ACTIVITY AFTER IPBOUT  
2X?G          LDX   4  BPTR(2)             [LAST BLOCK AFTER IPBOUT 
2XR6          BNZ   1  NHUN                [X1 ALREADY POINTS TO IOUT BLOCK 
2Y=Q          HUNTW    2,AMXOR,IOUT 
2YQB    OLE   LDX   1  2                   [LATEST IOUT BLOCK ADDRESS   
2^=2    OLF   LDX   2  FPTR(2)  
2^PL          LDX   0  ATYPE(2) 
329=          TXL   0  CACT 
32NW          BCC      NHUN                [REACHED NEXT ACTIVITY : CHAIN LAST  
338G          TXU   0  ATYPE(1) 
33N6          BCS      OLF  
347Q          BRN      OLE                 [LATER IOUT FOUND
34MB    NHUN  CHAIN    1,4  
3572          LDCT  0  #100 
35LL          ANDX  0  IPBSW(3)            [B2 SET IF IPBOUT ASLEEP 
366=          BZE   0  WAKE                [ALREADY ON LIST 
36KW          ERS   0  IPBSW(3) 
375G          LDX   2  3
37K6          FPUT                         [PUT IPBOUT ON LIST  
384Q    WAKE  MHUNTW   3,AMXOR,ADCB 
38JB          BZE   6  SEX                 [ENTRY FOR 'START INPUT' OR TW DISP  
3942          CALL  4  WAITO               [CHECK OPERABILITIES 
39HL          BRN      TFR                 [IDENT INOP : FREE REST OF OUTPUT
3=3=          HUNTW    1,AMXOR,IOUT 
3=GW          BNG   1  ROLAS               [LAST OUTPUT SENT
3?2G          LDCT  1  #200 
3?G6          ANDX  1  ISTATUS(3)   
3?^Q          BZE   1  STENT               [WARNING NOT SET : SEND NEXT BLOCK   
3#FB          BRN      WAITO               [RECHECK OPERABILITY 
3#^2    ROLAS ADX   6  FX1  
3*DL          LDX   1  FX1  
3*Y=          EXIT  6  0
3BCW    #   
3BXG    #     GET AMXOR/IOUT BLOCK FOR OUTPUT ; ON ENTRY X3 POINTS TO AMXOR/ADCB
3CC6    #     BLOCK ; PUT MESSAGE CHAR CT.IN X4 ; HEADER IN X5 ; CALL ON X7 
3CWQ    #   
3DBB    SETU  SBX   7  FX1  
3DW2          SLL   5  12                  [HEADER AND DISCARD MASK 
3F*L          ADX   5  4
3FT=          ADN   4  IDATA-A1*4+3        [TOTAL COUNT OF CHARS
3G#W          SRL   4  2
3GSG ...      SETUPCORE 4,2,AMXOR,IOUT  
3H#6          MHUNTW   3,AMXOR,ADCB 
3HRQ          STO   5  IPBIDE+1(2)  
3J?B          SLC   5  5                   [B4 SET IF 'READY' OUTPUT
3JR2          ERN   5  1
3K=L          ANDN  5  1
3KQ=          STO   5  IMOPTY(2)           [WAKE ACTIVITY AFTER NON-READY OUTPUT
3L9W          STOZ     IBSW(2)             [BLOCK STATUS WORD   
3LPG          LDX   0  IDENTNO(3)   
3M96          STO   0  IPBIDE(2)           [IDENTIFIER NUMBER   
3MNQ          LDN   5  IDATA(2)            [START OF OUTPUT DATA
3N8B          ADX   7  FX1  
3NN2          EXIT  7  0
3P7L    #   
3PM=    #     GET AMXOR/IOUT BLOCK FOR SUPERVISORY MESSAGE ; WAIT FOR REPLY IF  
3Q6W    #     STOP INPUT , OPEN OR CLOSE ; CHECK FOR BREAK-IN ON STOP INPUT 
3QLG    #   
3R66    SUPER SBX   7  FX1  
3RKQ          LDX   3  6
3S5B          SRL   3  6                   [LENGTH OF SUPERVISORY SEGMENT   
3SK2 ...      SETNCORE IPBIDE-A1(3),1,AMXOR,IOUT
3T4L          MHUNTW   3,AMXOR,ADCB 
3TJ=          LDX   0  GSIGN
3W3W          STO   0  IBSW(1)             [NO DATA SEGMENT IN THIS BLOCK   
3WHG          LDX   4  6                   [CHAR 0 : WORD COUNT 
3X36          SLL   4  12                  [CHAR 1 : SUPERVISORY CODE   
3XGQ          ADX   4  IDENTNO(3)          [CHARS 2-3 : IDENTIFIER  
3Y2B          STOZ     IMOPTY(1)           [DON'T WAKE ACTIVITY AFTER OUTPUT
3YG2          STO   4  IPBIDE(1)
3Y^L          SBN   6  #121                [START INPUT : DON'T COOR1 AFTER 
3^F=          BZE   6  STENT               [FPUT BUT CLEAR UP AND SUICIDE   
3^YW          CALL  6  RINGR               [ENLIST IPBOUT TO OUTPUT BLOCK   
42DG    WAC   HUNTW    2,AMXOR,IDATSG   
42Y6          BPZ   2  SRET 
43CQ          CALL  4  WAITO               [NO INPUT : CHECK OPERABILITY
43XB          BRN      TINOP               [INOPERABLE  
44C2          BRN      WAC                 [OPERABLE : SEE IF INPUT YET 
44WL    SRET  LDX   6  A1+2(2)  
45B=          SRL   6  12                  [COUNT + SUPERVISORY CODE REPLY  
45TW          FREECORE 2
46*G    SEX   ADX   7  FX1  
46T6          EXIT  7  0
47#Q    #   
47SB    #     INSERT TIME INTO MESSAGE WITH ADDRESS IN X5 & OUTPUT IT TO CONSOLE
48#2    #   
48RL    OUTM  SBX   7  FX1  
49?=          OUTPAR   TIMENOW  
49QW    #UNS JSKI37 
4==G    OUTSB   
4=Q6          MONOUTX  5                   [OUTPUT MESSAGE  
4?9Q          MHUNTW   3,AMXOR,ADCB 
4?PB          CALL  6  QIN                 [TEST FOR INOPERABILITY  
4#92          ADX   7  FX1  
4#NL          EXIT  7  0
4*8=    #   
4*MW    #     EXIT IMMEDIATELY (UP) IF RE-ENTERED AFTER TAKING INOPERABLE ACTION
4B7G    #   
4BM6    QIN   LDCH  0  JSOURCE1(2)  
4C6Q          SBN   0  7                   [STORED AT TINOP OR STACK
4CLB          BZE   0  TOAB                [SET BREAK-IN BIT AND GO UP  
4D62          EXIT  6  0
4DKL    #   
4F5=    #     CHANGE ETX ON END OF OUTPUT TO CANCEL IN CASE REINPUTTING ON TAPE 
4FJW    #   
4G4G    TOCA  BCHX  1  £
4GJ6          BCHX  1  £
4H3Q          LDN   4  #10  
4HHB          BCHX  1  £
4J32          SBN   1  1
4JGL          DCH   4  0(1) 
4K2=          EXIT  0  0
4KFW    #   
4K^G    #     CHECK IPB AND IDENTIFIER OPERABILITY ; IF OPERABLE COOR1 & EXIT+1 
4LF6    #     IF INOPERABLE EXIT WITH X5<0 IFF IPB INOP ; CALL ON X4
4LYQ    #   
4MDB    WAITO SMO      IADIN(3) 
4MY2          LDX   5  IPBSW
4NCL          BNG   5  STACR               [IPB INOPERABLE  
4NX=          LDX   5  ISTATUS(3)   
4PBW          SBX   4  FX1  
4PWG          BPZ   5  WSLE                [IDENTIFIER OPERABLE 
4QB6          LDX   0  IWAIT(3) 
4QQL ...      SRC   0  7
4R76 ...      BNG   0  WSLE 
4RHL ...      SLC   0  1
4RY6 ...      BNG   0  WEXA 
4S#L          LONGSET  #36,SET,IDENTNO(3)   
4SS=          LDX   5  WAITINOP(1)         [LENGTH OF WAIT  
4T?W          BZE   5  WEX  
4T#X ...      LDN   0  #1000               [NOTE INOPTIME WAIT IS NOT   
4T*Y ...      SMO      A1+FPTR(3)          [APPLICABLE TO AUTO-ANSWER LINES 
4TB^ ...      ANDX  0  FOURTHWD 
4TD2 ...      BNZ   0  WEX                 [AUTO-ANSWER LINE (B14) : SKIP WAIT  
4TF4 ...WAITINOPTIM 
4TL= ...      LONGTARRY WEX,WCK,5          [INOPTIME WAIT (BROADCASTS IGNORED)  
4TRD ...                                   [IF BREAK-IN(EG AB,MP OFF),ABORT WAIT
4TYL ...                                   [IF STILL INOP AFTER WAIT,J TO WCK   
4W5S ...      BRN      WOPAG               [RE-OPERABLE : EXIT +1   
4W?2 ...WCK   LDX   5  CLONG3(2)           [CHECK FOR END OF WAIT PERIOD
4WD8 ...      SBN   5  2                   [NOTE END OF WAIT LEAVES 1 IN CLONG3 
4WKB ...      BNG   5  WEX                 [END OF WAIT PERIOD  
4WQJ ...      BDX   5  WAITINOPTIM         [SPURIOUS RESTART : RESUME WAIT  
4WXQ ...WEX 
4X4Y ...      LONGOFF                      [CLONG1 STILL SET AFTER WAIT EXPIRES 
4X6Q ...WEXA
4X8J ...      SBN   4  1
4X=B          BRN      WIT  
4XQ2    WSLE  LDCT  0  #400                [INDICATE ASLEEP 
4Y9L          ADN   0  #2000               [BE WOKEN ON INOPERABILITY   
4YP=          ORS   0  IWAIT(3) 
4^8W          COOR1 
4^NG    WOPAG MHUNTW   3,AMXOR,ADCB 
5286          LDCT  0  #100 
52MQ          SMO      A1+FPTR(3)   
537B          ANDX  0  FOURTHWD 
53M2          BNZ   0  TOAB                [MOPPING OFF 
546L    WIT   ADX   4  FX1  
54L=          EXIT  4  1
555W    #   
55KG    #     GET LAST FOUR CHARACTERS INTO X5 & X6 TO TEST FOR CANCEL & BREAKIN
5656    #   
56JQ    ZFOUR LDX   4  A1(2)
574B          ANDN  4  #7777               [NO. OF CHARS INPUT  
57J2          SRC   4  2
583L          ADN   4  A1+1(2)             [INPUT STARTS IN A1+2
58H=          LDN   5  6
592W          MVCH  4  4                   [LAST FOUR CHARS INTO X6 
59GG          SBX   6  SCAN(1)             [#76217610   
5=26          LDN   5  0
5=FQ          SLL   56 12   
5=^B          EXIT  7  0
5?F2    #   
5?GP ...SESCREEN                           [SUB TO ALTER ISMFORM... 
5?JD ...[                                    ...IN ASCREEN BLOCK
5?L7 ...      HUNTW   2,AMXOR,ASCREEN   
5?MW ...      BNG   2  NSCED                [J IF NOT SCEDITING 
5?PK ...      LDX   0  ISMFORM(2)           [SAVE OLD SCREEN POSN   
5?R# ...      STO   7  ISMFORM(2)           [STORE NEW POSITION 
5?T3 ...NSCED LDX   2  FX2  
5?WQ ...      EXIT  6  0
5?YL    #     IDENTIFIER INOPERABLE : SET PERIPHERAL TYPE IN CPA TO MCF SO THAT 
5#D=    #     SUBSEQUENT MONOUTS GO TO K4MULTIPLX ; OUTPUT MESSAGES TO LOCAL AND
5#XW    #     REMOTE OPERATORS' CONSOLES
5*CG    #   
5*X6    TFREE FREECORE 1                   [ENTRY IF INOP DURING LONG RECORD
5BBQ    SK1IPBMOPB  
5BWB    TFR   HUNTW    1,AMXOR,IOUT 
5CB2          BPZ   1  TFREE
5CTL    TINOP MHUNTW   3,AMXOR,ADCB 
5CTW ...      LDXC  0  ICURSOR(3)   
5CW6 ...      BCS      TINV 
5CWB ...      LDCT  0  #200 
5CWL ...      ORS   0  ICURSOR(3)   
5CWW ...      ERS   0  ICURSOR(3)   
5CX6 ...TINV
5CXG ...      SMO      FX2  
5CY6 ...     STOZ    AWORK1                [SET AWORK1 = ZERO ENTRY PT ONE  
5C^H ...      LDCT  0  4                   [UNSET "TAKE DEVICE INOPERABILITY
5D5D ...      ORS   0  ISTATUS(3)          [ACTION IMMEDIATELY" FLAG(B6)
5D9* ...      ERS   0  ISTATUS(3)   
5D*=          LDCT  0  1
5DSW          ADN   0  #100                [INDICATE INOPERABILITY NOTICED  
5F#G          ORS   0  IWAIT(3)            [INDICATE SS REPLIES REQUIRED
5FS6          LDN   6  #227                ['CRASH CLOSE' (AND DISCONNECT)  
5G?Q          CALL  7  SUPER               [DISCONNECT DIALLED LINE 
5GFJ ...      ANDN  6  #77  
5GHG ...      SBN   6  #66  
5H?2          BZE   6  RCI                 [CLOSE IMPLEMENTED RECEIVED  
5HQL          SBX   7  FX1                 [RELATIVISE PREVIOUS LINK
5J==          BRN      WAC                 [LOOK AGAIN FOR CLOSE IMPLEMENTED
5JPW    RCI   HUNTW    1,AMXOR,IDATSG      [FREE ANY (REVERTED) DATA LEFT   
5K9G          BNG   1  TOT  
5KF# ...TFREE1  
5KP6          FREECORE 1
5L8Q          BRN      RCI  
5LDJ ...TOT   HUNTW    1,AMXOR,IMESSG      [FREE ANY INTERMEDIATE INPUT DATA
5LNB ...      BPZ   1  TFREE1   
5LY8 ...      LDN   0  #40  
5M82          LDN   6  7
5MML          ANDX  0  IWAIT(3)            [B18 SET IF 'CLOSE REQUEST' RECEIVED 
5N7=          DCH   6  JSOURCE1(2)         [INDICATE TAKING INOP. ACTION
5NLW          BNZ   0  RENAM               [IDENT. ON TEST : LEAVE CLOSED   
5NWM ...      LDX   0  AWORK1(2)
5N^= ...      BNG   0  RENAM               [J. FREE IDENT   
5P6G          LDN   6  #120                ['OPEN'  
5PL6          CALL  7  SUPER
5Q5Q          LDX   5  IWAIT(3) 
5QKB          ANDX  5  BIT11
5R52          BNZ   5  RED                 [B11 : NO INPUT SO NEVER OPERABLE
5RJL    #   
5S4=    RENAM HUNTW    1,GMON,AOUT  
5SHW          BNG   1  NOGM                [NO GMON/AOUT : MUST BE BROADCAST
5T3G          NAME     1,AMXOR,#77         [PRESERVE AROUND INFORM  
5TH6          BRN      RENAM               [TWO GMON/AOUTS IF SENDING RESTARTED 
5W2Q    NOGM  OUTBLOCN 4
5WGB          LDEX  6  JSOURCE1(2)         [GEOG UNIT NUMBER OF IPB 
5X22          OUTNUM   6,2,1               [IN 2 CHARS WITH ZERO SUPPRESSION
5XFL          LDX   4  JSOURCE2(2)  
5X^=          ANDN  4  #7777               [IDENTIFIER NUMBER   
5YDW          OUTNUM   4,0                 [IDENTIFIER NUMBER   
5YNM ...      LDX   7  AWORK1(2)
5YR= ...      BNG   7  RE                     [J. FREE  
5YRX ...      MHUNTW   3,AMXOR,ADCB 
5YSJ ...      LDN   0  #40  
5YT9 ...      ANDX  0  IWAIT(3) 
5YTW ...      BZE   0  MSINOP   
5YW5 ...      LDX   2  IADIN(3) 
5YW# ...      JN7900E  2,MSINOP 
5YWH ...      INFORM   2,JIDESWO,0  
5YX8 ...      BRN      RE   
5YXT ...MSINOP  
5YYG          INFORM   2,HINOP,0           [SEND TO CLUSTER CONSOLE 
5^D6    RE    HUNTW    1,AMXOR,#77  
5^XQ          BNG   1  STIN                [ALL RENAMED 
62CB          NAME     1,GMON,AOUT  
62X2          BRN      RE                  [TWO IF INOP SENDING 'RESTARTED' 
63BL    STIN  MHUNTW   3,AMXOR,ADCB 
63W= ...      LDCT  0  #100 
64*W ...      ANDX  0  ISTATUS(3)   
64TG          BNZ   0  STACR               [ON TEST : LEAVE CLOSED  
655? ...      LDX   0  AWORK1(2)
657W ...      BNG   0  TOMLTA   
65*6          FINDRET  1                   [POINT TO RETAINED BLOCK 
65SQ    #SKI  IPBIDE-A1-2   
66#B      COMPILATION ERROR : IPBIDE NOT EQUAL TO A1+2 : MUST MOVE DATA ALONG   
66S2          OUTLEN   1,0                 [GET CHAR COUNT IN X0
67?L          LDX   2  0
67R=          ADN   0  3                   [ROUND UP
68=W          SBN   2  8
68QG          SLL   0  4
69=6          STO   2  IPBIDE+1(1)         [COUNT OF CHARS IN DATA PORTION  
69PQ          ANDN  0  #7700               [WORD COUNT IN CHAR 2
6=9B          ADN   2  3                   [ROUND UP
6=P2          ADN   0  7                   [INDICATES REMOTE TW DISPLAY 
6?8L          SRL   2  2
6?N=          SLL   0  12                  [WORD COUNT IN CHAR. 0   
6#7W          STO   0  IPBIDE(1)           [SUPERVISORY SEG CODE IN CHAR 1  
6#MG          NAME     1,AMXOR,IOUT 
6*76          ADN   2  IDATA-A1            [LENGTH OF OUTPUT
6*LQ          STOZ     IMOPTY(1)
6B6B          ALTLEN   1,2  
6BL2          MHUNTW   3,AMXOR,ADCB 
6C5L          LDX   6  FX1                 [EXIT FROM RINGO IMMEDIATELY 
6CK=          LDN   7  RED                 [LINK
6D4W          BRN      RINGO
6DJG    RED   LDN   6  #121                ['START INPUT'   
6F46          CALL  7  SUPER               [START INPUT 
6FHQ    #   
6G3B    SK3IPBMOPB  
6GH2    STACR LDN   0  7
6H2L          LDX   2  FX2  
6HG=          DCH   0  JSOURCE1(2)         [SET FUNNY PERIPHERAL TYPE.  
6H^W    TOMLT   
6JFG          ACROSS   MULTIPLX,4          [DIVERT CURRENT OUTPUT   
6JN7 ...TOMLTA  
6JQB ...      BS      2,BRIDENTFR            [SET B9 IN JOBEVENTS   
6JSK ...      BRN      TOMLT
6J^6    #   
6KDQ    #     REVERSION EXPECTED : FREE REVERTED BLOCKS ACCORDING TO DISCARD
6KYB    #     MASK , UNTIL NO MORE REVERTED BLOCKS,AND BREAK-IN LEVEL ZERO ;
6LD2    #     THEN CONTINUE WITH PRESENT OUTPUT , OR INPUT RECEIVED FOR 'READY' 
6LXL    #   
6MC=    SK2IPBMOPB  
6MRQ ...      MHUNTW   3,AMXOR,ADCB        [CHECK IF OUTPUT WAITING TO BE SENT  
6N8= ...      LDX   5  IWAIT(3) 
6NJQ ...      SLC   5  7
6N^= ...TOW   HUNTW    1,AMXOR,IOUT 
6P*Q ...      BNG   1  TEBIL               [NO (MORE) OUTPUT WAITING
6PQ= ...      BPZ   5  TNAM                [NOT TURNROUND BLOCK 
6Q6Q ...      FREECORE 1                   [DISCARD ANY TURNROUND MESSAGE AS
6QH= ...                                   [NEW ONE FOLLOWS "BROKEN IN" MESSAGE 
6QXQ ...      BRN      TOW  
6R#=    TNAM  NAME     1,ADATA,IPTEMP      [OUTPUT ONLY AFTER REVERTED BLOCKS   
6RRW          HUNTW    1,AMXOR,IOUT 
6S?G          BPZ   1  TNAM                [OUTPUTTING LONG RECORD  
6SR6 ...TEBIL LDX   1  FX1  
6TQB          LDEX  4  IBIL(3)             [BREAK-IN LEVEL  
6W=2          LDCH  0  IBIL(3)             [NO. OF BREAK-IN'S SINCE LAST INPUT  
6WPL          SBN   0  8
6X9=          BPZ   0  TINOP               [CONSOLE NOT CONNECTED : INOPERABLE  
6XNW          BZE   4  ZERBI               [ZERO BREAK-IN LEVEL 
6Y8G    POBIL CALL  4  WAITO
6YN6          BRN      TINOP
6^7Q          BRN      TEBIL
6^MB    #   
7272    SUF   FREECORE 2
72LL    ZERBI HUNTW    2,AMXOR,IDATSG      [FIND REVERTED (=INPUT) BLOCK
736=          BNG   2  NOREB               [NO MORE REVERTED BLOCKS 
73KW          LDCT  5  #600 
745G          ANDX  5  A1+1(2)             [B1 SET IF REVERTED OUTPUT   
74K6          BNG   5  SUF                 [SUPSEG DURING BI E.G. INPUT CLEARED 
754Q          BNZ   5  REVB 
75JB          LDCH  0  A1(2)               [INPUT WHICH PRECEDED BREAK IN   
7642          ANDN  0  5                   [IGNORE UNLESS ENDED NORMALLY
76HL          BNZ   0  NOR                 [TIMED OUT OR TRANSMISSION ERROR 
773=          CALL  7  ZFOUR
77GW          BZE   5  NOR                 [BREAK-IN
782G          BZE   6  NOR                 [CANCELLED   
78G6          BRN      PASS                [PASS INPUT TO COMMAND PROCESSOR 
78^Q    #   
79FB    REVB  LDX   4  ISTATUS(3)          [CONTROL DISCARD MASK
79^2          ANDX  4  A1(2)
7=DL          ANDX  4  REMASK(1)           [NON-ZERO IF DATA TO BE DISCARDED
7=Y=          BNZ   4  SUF                 [FREE BLOCK  
7?CW          NAME     2,AMXOR,IOUT        [RENAME FOR RE-OUTPUT
7?XG          LDX   0  A1(2)               [SEGMENT HEADER  
7#C6          ERX   5  A1+1(2)             [GET IDENTIFIER NO.  
7#WQ          ANDX  0  VMASK(1)            [UNSET B7 IF SET 
7*BB          STO   5  IPBIDE(2)
7*W2          STO   0  IPBIDE+1(2)  
7B*L          LDN   5  1
7BT=          ORS   5  IMOPTY(2)           [MARK 'ACTIVITY TO BE WOKEN' 
7C#W          LDX   1  2
7CSG          CALL  6  RINGR               [OUTPUT THIS RENAMED BLOCK   
7D#6          BRN      ZERBI               [GET NEXT BLOCK  
7DRQ    #   
7F?B    NOR   FREECORE 2
7FR2    NOREB LDEX  4  IBIL(3)  
7G=L          BNZ   4  POBIL               [POSITIVE BREAK-IN LEVEL 
7GQ=          LDCT  0  #200 
7H9W          ANDX  0  IWAIT(3) 
7HPG          ERS   0  IWAIT(3)            [UNSET EXPECT REVERSION BIT  
7J96          LDCT  0  2
7JNQ          ANDX  0  IWAIT(3) 
7K8B          BNZ   0  TOAB                [LAST ENTRY WAS 'READY'  
7KN2          HUNTW    2,ADATA,IPTEMP   
7L7L          BPZ   2  NOWSE               [ENTERED FROM NOTBB VIA REVEX
7LM=    NOUB  LDX   2  FX2  
7M6W          BRN      OUFIN               [NO OUTPUT WAITING TO BE SENT
7MLG    NOWSE NAME     2,AMXOR,IOUT        [RENAME OUTPUT BLOCK 
7N66          HUNTW    2,ADATA,IPTEMP   
7NKQ          BPZ   2  NOWSE
7P5B    #     NOW SIEVE THE ORDINARY OUTPUT MESSAGE 
7PK2          MHUNTW   2,AMXOR,IOUT 
7Q4L          LDX   4  ISTATUS(3)          [CONTROL DISCARD MASK-RESET @ NEXT BI
7QJ=          ANDX  4  IPBIDE+1(2)  
7R3W          ANDX  4  REMASK(1)           [NON-ZERO IF MESSAGE TO BE DISCARDED 
7RHG          BZE   4  NORIN               [OK TO SEND MESSAGE  
7S36    SOUB  FREECORE 2                   [DISCARD MESSAGE 
7SGQ          HUNTW    2,AMXOR,IOUT 
7T2B          BPZ   2  SOUB                [LONG MESSAGE
7TG2          BRN      NOUB                [SIEVE COMPLETED 
7T^L    #   
7WF=    TOAB  READYON                      [SET 'READY' MACRO BREAK-IN BIT  
7WYW          UP
7XDG    PASS  UPPLUS   1
7XY6    OUFIN UPPLUS   2
7YCQ    NORIN UPPLUS   3
8T9L    #   
8TP=    #     INPUT TIMED OUT IN NO USER CONTEXT
8W8W    #     INHIBIT MOP BREAK-IN WHILE CLOSED DOWN MESSAGE IS OUTPUT  
8WNG    #   
8X86    SK8IPBMOPB  
8XMQ    [   
8Y7B    [           X7 -VE IF CLOSE DOWN IN NO-USER CONTEXT 
8YM2    [           X7 +VE IF MOPWAITTIME EXCEEDED  
8^6L    [   
8^L=          MHUNTW   3,AMXOR,ADCB 
9356          BPZ   7  MWTEX
93JQ    TOOUT STO   7  AWORK1(2)
94#8 ...      BPZ   7  XPROP
94J2          SEGENTRY K60IPBMOPB          [LABEL FOR MENDING IN PROPAGANDA CODE
953L          BRN      XPROP
95H=          LDXC  0  ICURSOR(3)   
962W          BCC      XPROP               [ONLY OUTPUT PROPAGANDA IF MOP DISPLA
96GG          DOWN     LISTMOP,2
9726          MHUNTW   3,AMXOR,ADCB        [REFIND THE DCB AFTER COORDINATION.  
97FQ    XPROP ANDN  4  #67                 [NOT TIMED OUT MESSAGE   
97^B          DCH   4  IWAIT(3) 
98F2          LDN   6  #124                ['STOP INPUT AND CLEAR'  
98YL          LDCT  0  #41                 [SET TIMED OUT MARKER AND
99D=          ORS   0  IWAIT(3)            [INDICATE SS REPLIES REQD
99XW          CALL  7  SUPER               [SEND SUPERVISORY SEGMENT
9?2= ...      LDCT  7  4                     [PUT MOPWAITTIME MESSAGE...
9?5B ...[                                    ...ON NEW SCREEN IF SCEDITING  
9?8G ...      CALL  6  SESCREEN 
9??L ...      LDX   4  0                    [SAVE OLD SCREEN POSITION   
9?BQ          LDX   7  AWORK1(2)
9?WB          BNG   7  ZCLSE
9#B2          SMO      7
9#TL    [                                OUTPUT MOPWAITTIME EXCEEDED MESSAGE
9**=    [                                  IF NEEDED
9*SW          LDX   5  ZJMOPWT(1)   
9B#G          LDN   7  ZCLSE
9BS6          BRN      OUTSB
9C?Q    ZCLSE   
9CDY ...      LDCT  7  #10                 [PUT CLOSED DOWM ON NEXT LINE
9CL6 ...      CALL  6  SESCREEN 
9D?2          LDX   5  ZJTOCLOSE(1) 
9DQL          CALL  7  OUTM                [OUTPUT CLOSED DOWN MESSAGE  
9DXS ...      LDX   7  4                          [RESET OLD SCREEN POSITION
9F52 ...      CALL  6  SESCREEN 
9F==          LDXC  0  ICURSOR(3)   
9FPW          BCS      RESET               [MOP DISPLAY : OMIT NLS AND EOM  
9G9G          LDCH  4  ICHARS(3)
9GP6          ADX   4  4
9H8Q          ADX   4  INOCHS(3)
9HNB          LDN   5  #4004
9J82          CALL  7  SETU 
9JML          LDN   4  INLBUFF(3)   
9K7=          LDCH  1  ICHARS(3)
9KLW          MVCH  4  0(1)                [NEWLINE 
9L6G          LDN   4  INLBUFF(3)   
9LL6          MVCH  4  0(1)                [NEWLINE 
9M5Q          LDN   4  INLBUFF(3)   
9M8* ...      SEGENTRY K52IPBMOPB          [USED BY THE TERMIOFF MACRO  
9M=Y ...      BRN      NLEOM               [NULLIFIED BY THE TERMIOFF MACRO 
9M*H ...      SMO      FX1  
9MD6 ...      LDN   4  TURNOFFEOM          [NEWLINE + ESC J 
9MGP ...NLEOM   
9MKB          LDX   1  INOCHS(3)
9N52          MVCH  4  0(1)                [NEWLINE + END OF MESSAGE
9NJL          CALL  6  RINGO
9P4=    #   
9PHW    RESET   
9R2Q          LDX   3  FX2  
9RGB          LDXC  7  AWORK1(3)
9S22    [                                  IF MOPWAITTIME EXCEEDED...   
9SFL    [                                  SET DEVICE TYPE TO 7 
9SGW ...      BCC      ZDCH7
9SJ6 ...      MHUNTW   3,AMXOR,ADCB 
9SKB ...      LDX   2  IADIN(3) 
9SLL ...      JN7900E  2,ZCLNI  
9SMW ...      SEGENTRY K53IPBMOPB   
9SP6 ...      BRN      ZCLNI
9SQB ...      LDN   6  #133 
9SRL ...      CALL  7  SUPER
9SSW ...ZSW1
9SW6 ...      MHUNTW   3,AMXOR,ADCB 
9SXB ...      LDX   2  A1(3)
9SYL ...      LDN   0  #200 
9S^W ...      ANDX  0  FOURTHWD(2)  
9T36 ...      BZE   0  ZSW2 
9T4B ...      LONGWAIT ZCLNI,IPBRELWS   
9T5L ...      BRN      ZSW1 
9T6W ...ZSW2
9T86 ...      LDX   0  FOURTHWD(2)  
9T9B ...      SLL   0  11   
9T=L ...      BPZ   0  ZCLNI
9T?W ...      LDN   6  #226 
9T*6 ...      CALL  7  SUPER
9TBB ...      BRN      SUIC 
9TCL ...ZDCH7   
9TDW          LDN   0  7
9TYG          DCH   0  JSOURCE1(3)  
9W8# ...      SEGENTRY K54IPBMOPB   
9WD6    ZCLNI   
9XCB          LDN   6  #226                ['CLOSE' (AND DISCONNECT)
9XX2          CALL  7  SUPER
9YBL          LDN   6  #120                ['OPEN'  
9YW=          CALL  7  SUPER
9^3D ...      SBN   6  #245 
9^8L ...      BZE   6  SUIC 
9^*W          LDN   6  #121                ['START INPUT'   
9^TG          CALL  7  SUPER
=2*6          LDXC  0  ICURSOR(3)   
=2SQ          BCC      SUIC                [MOP CONSOLE 
=3#B          LDN   5  #4214               [MOP DISPLAY : PUT IN TYPE MODE  
=3GL ...      LDN   4  4
=4?L          CALL  7  SETU 
=4R=          LDN   0  1
=5=W          STO   0  IMOPTY(2)           [WAKE ACTIVITY AFTER THIS READY SENT 
=5QG          LDX   0  ISYNC(3) 
=6=6          STO   0  IDATA(2) 
=6PQ          CALL  6  RINGO
=79B    SUIC  MHUNTW   3,AMXOR,ADCB 
=7P2          LDX   1  A1+FPTR(3)   
=88L          STOZ     BPTR(1)             [ZEROISE ELEMENTS TO 
=8N=          STOZ     A1+BPTR(3)          [DE-RING FROM ADEVS BLOCK
==76          SMO      FX2  
==LQ          LDXC  0  AWORK1   
=?6B    [                                  J IF NOT MOPWAITTIME EXCEEDED
=?L2    [                                  ELSE GO TO SEND JOB INTO LIMBO   
=#5L          BCS      NZMLT
=#K=          ACROSS   MULTIPLX,5   
=*4W    NZMLT   
=B46          FREECORE 3                   [AMXOR/ADCB BLOCK
=BHQ          ACROSS   LOGOUT,7 
=D2L    [                                NOW SELECT MESSAGE BY SETTING X7   
=DG=    MWTEX LDN   7  2
=D^W          ANDX  7  CONTEXT(2)   
=FFG          BZE   7  TOOUT                [J IF USER CONTEXT  
=F^6          LDX   0  4
=GDQ          ANDN  0  2
=GYB          BZE   0  TOOUT                [NO USER
=HD2          LDN   7  1
=HXL          ISITJOB   TOOUT               [NO USER INPUT  
=JC=          BDX   7  TOOUT                [NOUSER JOB 
=KBG    #   
=KW6    #   
=L*Q    #     AMXOR/IOUT BLOCK FULL : END OF NPU ; TIDY UP CURRENT BLOCK AND
=LTB    #     SET UP NEW ONE AND INSERT CURSOR POSITIONING CODES
=M*2    #   
=MSL    VNEWB SBX   7  FX1                 [RELATIVISE AND  
=N#=          STO   7  ACOMMUNE1(2)        [PRESERVE LINK   
=NRW          SBX   4  ACOMMUNE4(2)        [RELATIVISE MESSAGE POINTER AND  
=P?G          STO   4  ACOMMUNE4(2)        [SAVE IT 
=PR6          MHUNTW   1,AMXOR,IOUT        [IOUT BLOCK POINTER  
=Q=Q          SBX   5  1                   [RELATIVE END OF MESSAGE POINTER 
=QQB          SBN   5  IDATA               [- RED TAPE  
=R=2          SLC   5  2                   [COUNT OF CONVERTED DATA CHARS   
=RPL          DSA   5  IPBIDE+1(1)         [DEPOSIT COUNT OF DATA CHARS 
=S9=          ADN   5  IDATA-A1*4+3 
=SNW          SRL   5  2                   [LENGTH OF OUTPUT BLOCK  
=T8G          TXU   5  ALOGLEN(1)   
=TN6          BCC      VALTD               [CORRECT LENGTH ALREADY  
=W7Q          ALTLENG  1,5                 [SHORTEN CURRENT IOUT BLOCK  
=WMB    VALTD LDX   4  ACOMMUNE2(2)        [NPU SIZE IN CHARS   
=X72 ...      LDN   5  #2000
=YKW          LDCT  7  2
=^5G          ANDX  7  IWAIT(3) 
=^K6          BZE   7  VNEWN               [NOT A (LONG) READY MESSAGE  
?24Q          MHUNTW   1,AMXOR,IOUT        [RE-FIND CURRENT NPU 
?2JB          LDX   5  IPBIDE+1(1)  
?342          SRL   5  12                  [PASS HEADER FLAGS TO NEW NPU
?3HL          LDCT  0  #20  
?43=          ERS   0  IPBIDE+1(1)         [UNSET "TURNROUND BIT" IN CURRENT NPU
?4GW          LDN   0  1
?52G          ORS   0  IMOPTY(1)           [SET "ACT TO BE WOKEN" IN CURRENT NPU
?5G6    VNEWN   
?6FB          CALL  7  SETU 
?6^2          LDX   2  FX2  
?7DL          LDX   6  ACOMMUNE2(2)        [COUNT OF UNUSED CHARS IN NEW IOUT   
?7Y=          CALL  7  VSETCCODES          [SET CURSOR POS CODES FOR THIS NPU   
?8CW          LDEX  7  ICURSOR(3)          [CHAR COUNT FOR CURSOR CODES 
?8XG          SBX   6  7                   [UPDATE ROOM LEFT IN NPU 
?9C6          LDN   4  ICURSOR+1(3) 
?9WQ          SMO      ICURSOR(3)   
?=BB          MVCH  4  0                   [MOVE IN CUR POS CODES FOR THIS NPU  
?=FG ...      LDCT  0  #740                [MOVE IN ALPHA SHIFT TO  
?=JL ...      LDN   4  0                   [ENSURE UPPER CASE AFTER 
?=MQ ...      MVCH  4  1                   [HORIZONTAL TAB  
?=QW ...      SBN   6  1                   [UPDATE ROOM LEFT IN NPU 
?=W2          LDX   4  ACOMMUNE4(2) 
??*L          LDX   0  AWORK1(2)
??T=          BZE   0  VMBF                [MESSAGE IN CURRENT CHAPTER  
?##W          MHUNTX   1,AWORK1(2)         [RE-FIND MESSAGE BLOCK   
?#SG    VMBF  STO   1  ACOMMUNE4(2)        [PRESERVE ADDRESS OF MESSAGE BLOCK   
?*#6          ADX   4  1                   [RESET MESSAGE POINTER   
?*RQ          LDX   1  FX1                 [RESET X1
?B?B          LDX   7  ACOMMUNE1(2)        [RESET LINK  
?BR2          ADX   7  FX1  
?C=L          EXIT  7  0
?CQ=    #   
?D9W    #     IF MESSAGE HELD IN IPBMOPB,SELECT MESSAGE FROM NUMBER IN ACOM9
?DPG    #   
?F96    VPRESET 
?FJT ...      LDCH  0  ACOMMUNE9(2)        [#77 IN CHAR0=MESSAGE HELD IN IPBMOPB
?FYJ ...      SBN   0  #77  
?G#? ...      BNZ   0  (7)                 [MESSAGE NOT HELD IN IPBMOPB 
?GN2          STOZ     AWORK1(2)           [INDICATE MESS HLD IN CURRENT CHAPTER
?H7L ...      NGX   0  ACOMMUNE9(2)        [CONVERT MESSAGE NO BACK TO +VE FORM 
?HM=          BCT   0  (7)                 [MESSAGE NO NOT = 1 : EXIT   
?J6W    #              MESSAGE NO 1 : "BREAK IN " MESSAGE REQUESTED 
?JLG          LDX   6  VBI(1)              ["BREAK IN" MESSAGE REQUESTED
?K66          STO   6  ACOMMUNE8(2) 
?KKQ          LDN   6  VBI+1               [RELATIVE START OF BI MESSAGE ADDRESS
?L5B          STO   6  ACOMMUNE9(2) 
?LK2          EXIT  7  0
?M4L    #   
?MJ=    #     SET CURSOR POSITIONING CODES FOR CURRENT MESSAGE  
?N3W    #   
?NHG    VSETCCODES  
?P36          LDCH  0  ACOMMUNE5(2)        [START LINE NO FOR CURRENT MESSAGE   
?PGQ          ERN   0  #20                 [CONVERT LINE NO TO VERTICAL TAB CODE
?Q2B ...      SMO      3
?QG2 ...      DCH   0  ICURSV              [SET VERTICAL TAB CODE   
?RF=          LDEX  0  ACOMMUNE5(2)        [START COLUMN NO 
?RYW          TXL   0  V32(1)   
?SDG          BCC      VGT31               [COL NO > 31 
?SY6          ERN   0  #20  
?TCQ    VHTC  ORN   0  #7400
?TXB          BRN      VSHC 
?WC2    VGT31 TXL   0  V60(1)   
?WWL          BCS      VHTC                [COL NO < 60 
?XB=    VGT59 TXL   0  V64(1)   
?XTW          BCC      VGT63               [COL NO > 63 
?Y*G          SBN   0  #10  
?YT6          ORN   0  #7600
?^#Q          BRN      VSHC 
?^SB    VGT63 SBN   0  #40  
#2#2          ORN   0  #7500
#2RL    VSHC  DSA   0  ICURSH(3)           [SET HORIZONTAL TAB CODE 
#3?=          EXIT  7  0
#3QW    #   
#4=G    #     SET CURSOR POSITIONING COUNTS(IN ACOM5) FOR NEXT CHAR 
#4Q6    #   
#59Q    VSETCCTS
#5PB          LDEX  0  ACOMMUNE5(2)        [COL NO OF LAST CHAR 
#692          ADN   0  1
#6NL          LDEX  1  ICHARS(3)           [DISPLAY WIDTH   
#78=          TXL   0  1
#7MW          BCS      VUCN                [COL NO < DISPLAY WIDTH  
#87G          LDCT  0  #10  
#8M6          ADS   0  ACOMMUNE5(2)        [UPDATE LINE NO  
#96Q    VUCN  DEX   0  ACOMMUNE5(2)        [UPDATE COL NO   
#9LB          EXIT  7  0
#=62    #   
#=KL    #     PREPARE A MESSAGE FOR TRANSMISSION TO A VDU   
#?5=    #   
#?JW    #     X3=DCB POINTER
##4G    #     X4=MESSAGE POINTER
##J6    #     X5=IOUT POINTER   
#*3Q    #     X6=ROOM IN IOUT BLOCK (NPU)   
#*HB    #     AWORK1=BLOCK TYPE OF MESSAGE  
#B32    #     AWORK2=VEDIT'S RELATIVISED LINK   
#BGL    #     AWORK3=NO OF CHARS IN ORDINARY OUTPUT MESSAGE 
#C2=    #     AWORK4=NO OF RACK UP SEQUENCES REQUIRED IN CURRENT MESSAGE
#CFW    #     /EMPTY MESSAGE INDICATOR  
#C^G    #     ACOM1=VNEWB'S RELATIVISED LINK
#DF6    #     ACOM2=NPU SIZE IN CHARS   
#DYQ    #     ACOM3=RELATIVE MESSAGE PART ADDRESS   
#FDB    #     ACOM4=ADDRESS OF MESSAGE BLOCK
#FY2    #     ACOM5=CURSOR POSITIONING COUNTS OF CURRENT MESSAGE CHARACTER  
#GCL    #     ACOM6=CURSOR POSITIONING COUNTS FOR START OF NEXT MESSAGE 
#GX=    #     ACOM7-B0-11=MESSAGE PART BLOCK TYPE-B12-23=CHAR COUNT OF  
#HBW    #     MESSAGE PART REMAINING
#HWG    #     ACOM8=COUNT OF MESSAGE CHARS  
#JB6 ...#     ACOM9=RELATIVE (CHARACTER) ADDRESS OF MESSAGE TO BE PREPARED  
#JTQ    #   
#K*B    SK10IPBMOPB 
#KT2          MHUNTW   3,AMXOR,ADCB 
#L#L          LDN   0  1
#LS=          ORS   0  IWAIT(3) 
#M?W          ERS   0  IWAIT(3)            [UNSET "OUTPUT SUSPENDED" FLAG IF SET
#MRG          LDX   4  IMDNPU(3)
#N?6          ANDN  4  #7777
#NQQ          SLL   4  2
#P=B          STO   4  ACOMMUNE2(2)        [PRESERVE NPU SIZE IN CHARS  
#PQ2    VFBLK CALL  7  SETU                [SET UP AMXOR/IOUT BLOCK 
#R8W          LDX   4  ICURPOS(3)          [CURRENT POSITIONING COUNTS  
#RNG          HUNTW    2,AMXOR,ASCREEN  
#S86          BNG   2  VCTS                [NOT IN SCREEN EDITING MODE  
#SMQ          LDX   4  ISMFORM(2)          [USE SCEDITOR'S CURSOR COUNTS
#T7B    VCTS  LDX   2  FX2  
#TM2          STO   4  ACOMMUNE6(2)        [PRESERVE CURSOR POSITIONING COUNTS  
#W6L          STO   4  ACOMMUNE5(2)        [AND AGAIN FOR START LINE&COLUMN NOS 
*2H=          CALL  7  VPRESET             [IF MESS HELD IN IPBMOPB,SELECT MESS 
*32W    #              CALCULATE LAST LINE&COLUMN NO WHICH WILL HOLD THE MESSAGE
*3GG          LDCH  6  ACOMMUNE5(2)        [CURRENT LINE NO OF CURSOR   
*426          LDEX  0  ICHARS(3)           [DISPLAY WIDTH   
*4FQ          LDEX  7  ACOMMUNE5(2)        [CURRENT COLUMN NO OF CURSOR 
*4^B          SBX   0  7                   [NO OF UNUSED CHARS ON CURRENT LINE  
*5F2          LDX   7  ACOMMUNE8(2)        [NO OF CHARS IN MESSAGE  
*5YL          LDCT  4  2
*6D=          ANDX  4  IWAIT(3) 
*6XW          BZE   4  VULCS               [NOT A READY MESSAGE 
*8BQ          ANDX  4  ACOMMUNE6(2) 
*8WB          BNZ   4  VULCS               [READY TERMINATOR SEQUENCE SUPPRESSED
*9B2          LDN   4  1                   [X4 +VE FOR A READY MESSAGE  
*=*=          ADN   7  3                   [ACCOUNT FOR READY TERMINATOR SEQ
*=SW    VULCS SBX   7  0
*?#G          BNG   7  VCOL                [MESSAGE < A LINE
*?S6          LDN   0  1
*#?Q          ADS   0  ICONTU(3)           [UPDATE CT OF LINES O/P SINCE LAST TR
*#RB          ADS   0  6                   [INCREASE CURRENT LINE NO BY 1   
**?2          LDN   0  0
**QL          DEX   0  ACOMMUNE6(2)        [UPDATE START COLUMN NO FOR NEXT MESS
*B==          LDEX  0  ICHARS(3)           [DISPLAY WIDTH   
*BPW          BRN      VULCS
*C9G    VCOL  ADX   7  0
*CP6          ADS   7  ACOMMUNE6(2)        [UPDATE START COLUMN NO FOR NEXT MESS
*D8Q          LDX   7  ICONTU(3)           [CHECK MESS DOESN'T OVERFLOW CURR PAG
*DNB          ANDN  7  #777 
*F82          SBX   7  VCONTOUTPUT(1)   
*FML          SLC   4  7
*G7=          BPZ   4  VMSZ                [NOT A TEXT READY(FROM SCREEN EDITOR)
*GLW          SBN   7  1                   [DISCOUNT THE TEXT READY'S "SOM LINE"
*H6G    VMSZ
*HL6          BZE   7  VRUC                [ENTIRE MESSAGE CAN BE PREPARED  
*J5Q          BNG   7  VRUC                [ENTIRE MESSAGE CAN BE PREPARED  
*JKB          SBX   6  7                   [UPDATE LAST LINE NO 
*K52          LDX   0  VCONTOUTPUT(1)      [LIMIT OUTPUT TO MAXIMUM NO OF   
*KJL          DEX   0  ICONTU(3)           [LINES ALLOWED FOR CONTINUOUS OUTPUT 
*L4=          LDEX  0  ICHARS(3)           [DISPLAY WIDTH   
*LHW          MPY   7  0                   [GET NO OF CHARS NOT ALLOWED FOR O/P 
*M3G          LDEX  7  ACOMMUNE6(2) 
*MH6          ADX   0  7                   [INCLUDING THE CHARS <A DISPLAY WIDTH
*N2Q          ERS   7  ACOMMUNE6(2)        [START COL FOR NEXT MESS (PART) NOW 0
*NGB          SBS   0  ACOMMUNE8(2)        [REDUCE MESSAGE CHAR CT APPROPRIATELY
*P22          ORX   0  AWORK1(2)           [ADD MESSAGE BLOCK TYPE IN B0-11 
*PFL          STO   0  ACOMMUNE7(2)        [SAVE MESS BLK TYPE&REMAINDER COUNT  
*PWL ...      LDX   0  ACOMMUNE9(2)        [CONVERT REL MESS ADDR TO A CHAR CT  
*Q?L ...      SLC   0  2
*QNL ...      ADX   0  ACOMMUNE8(2)        [ADD IN MESSAGE CHAR COUNT   
*R5L ...      SRC   0  2                   [CONVERT TO RELATIVE ADDRESS OF THE  
*RGL ...      STO   0  ACOMMUNE3(2)        [MESSAGE PART REMAINING AND SAVE IT  
*RXQ    #              CALCULATE NO OF RACK UP SEQUENCES REQUIRED   
*SCB    VRUC  BZE   4  VRUC0               [NOT A READY MESSAGE 
*SX2          ADN   6  2                   [ADD NO OF LINES OF CLEARANCE FOR I/P
*TBL    VRUC0 STOZ     AWORK4(2)           [INITIALISE COUNT OF REQUIRED RACKUPS
*TW=          BCHX  3  £                   [-> CHAR 1   
*W*W          LDCH  0  ICHARS(3)           [DISPLAY LENGTH  
*WTG          ANDX  3  BITS22LS 
*X*6          LDEX  7  ACOMMUNE6(2) 
*XSQ          BNZ   7  VRUC1               [MESS DOESN'T END ON THE LAST COLUMN 
*X^Y ...      LDX   7  ACOMMUNE8(2) 
*Y76 ...      BZE   7  VRUC1
*Y#B          ADN   0  1[X6 NOT=LAST LINE NO OF MESSAGE SO ADJUST DISPLAY LENGTH
*YS2    VRUC1 TXL   6  0                   [IF LAST LINE NO FOR THIS MESSAGE IS 
*^?L          BCS      VRUC2               [< DISPLAY LENGTH,NO (MORE) RACK UPS 
*^R=          SBN   6  2                   [RACK UP = 2 LINES,UPDATE LINE NO
B2=W          LDCT  7  #20  
B2QG          SBS   7  ACOMMUNE5(2)        [DECREMENT START LINE NO 
B3=6          LDN   7  1
B3PQ          ADS   7  AWORK4(2)           [UPDATE COUNT OF REQUIRED RACK UPS   
B49B          BRN      VRUC1
B4P2    VRUC2 BZE   4  VNXM                [NOT A READY MESSAGE 
B58L          SBN   6  2                   [READY MESSAGE : RESET LINE NO   
B5N=    VNXM  DCH   6  ACOMMUNE6(2)        [PRESERVE START LINE NO FOR NEXT MESS
B67W    #              SET CURSOR POSITIONING CODES FOR CURRENT MESSAGE 
B6MG          CALL  7  VSETCCODES   
B776    #   
B7LQ          LDX   6  ACOMMUNE2(2)        [NPU SIZE IN CHARS   
B95L    #              IF CLEAR SCREEN FLAG SET,MOVE IN CLEAR SCREEN SEQUENCE   
B9K=          LDCT  0  4
B=4W          ANDX  0  ACOMMUNE6(2) 
B=JG          BZE   0  VRACK               [CLEAR SCREEN FLAG NOT SET   
B?46          ERS   0  ACOMMUNE6(2)        [UNSET CLEAR SCREEN FLAG 
BB^6          LDN   4  VCLEAR(1)           [MOVE IN CLEAR SCREEN SEQUENCE   
BCDQ          MVCH  4  3
BCYB          LDN   0  24   
BDD2    VSYNS LDN   4  ISYNC(3) 
BDXL          MVCH  4  2
BFC=          BCT   0  VSYNS
BFWW          SBN   6  51                  [UPDATE ROOM LEFT IN NPU 
BGBG    #              MOVE IN THE REQUIRED NO OF RACK UP SEQUENCES 
BGW6    VRACK LDX   0  AWORK4(2)
BH*Q          BZE   0  VRNL                [RACK UP(S) NOT REQUIRED 
BHTB          SBN   0  1
BJ*2          STO   0  AWORK4(2)           [REDUCE RACK UP COUNT BY 1   
BJSL    VUR   SBN   6  33                  [UPDATE ROOM LEFT IN NPU 
BK#=          BPZ   6  VMRU                [SUFFICIENT ROOM FOR 1 RACK UP   
BKRW          CALL  7  VNEWB               [GET NEW AMXOR/IOUT BLOCK
BL?G          BRN      VUR  
BLR6    VMRU  LDN   4  VRACKUP(1)          [MOVE IN RACK UP SEQUENCE
BM=Q          MVCH  4  3
BMQB          LDN   0  15   
BN=2    VSYNZ LDN   4  ISYNC(3) 
BNPL          MVCH  4  2
BP9=          BCT   0  VSYNZ
BPNW          BRN      VRACK
BQ8G    #              IF READY MESS,MOVE IN SEQUENCE TO CLEAR READY LINE + NEXT
BQN6    VRNL  LDCT  4  2
BR7Q          ANDX  4  IWAIT(3) 
BRMB          SEGENTRY K70IPBMOPB    [RESTORE TIME MACRO NOFLASH SUPPRESSES NLS.
BS72          BZE   4  VCURS               [NOT A READY MESSAGE 
BSLL          LDN   4  ICURSOR+1(3)        [MOVE IN CURSOR POSITIONING CODES
BT6=          SMO      ICURSOR(3)   
BTKW          MVCH  4  0
BW5G          LDN   4  VNLS(1)             [MOVE IN 2 NEWLINES  
BWK6          MVCH  4  4
BX4Q          LDEX  7  ICURSOR(3)   
BXJB          ADN   7  4
BY42          SBX   6  7                   [UPDATE ROOM LEFT IN NPU 
BYHL    #              MOVE IN CURSOR POSITIONING CODES FOR MESSAGE 
B^3=          SEGENTRY K71IPBMOPB    [RESTORE TIME MACRO NOFLASH SUPPRESSES NLS.
B^GW    VCURS LDEX  7  ICURSOR(3)          [CHAR COUNT FOR CURSOR CODES 
C2G6          ADN   7  4                   [CHAR COUNT FOR SET SOM CODE + 1 
C2^Q          SBX   6  7                   [UPDATE ROOM LEFT IN NPU 
C3FB          BPZ   6  VCPCS               [SUFFICIENT ROOM FOR CURSOR CODES
C3^2          CALL  7  VNEWB               [GET NEW AMXOR/IOUT BLOCK
C4DL          BRN      VCURS
C4Y=    VCPCS LDN   4  ICURSOR+1(3)        [MOVE IN CURSOR POSITIONG CODES  
C5CW          SMO      ICURSOR(3)   
C5XG          MVCH  4  0
C7BB          LDN   4  VSETSOM(1)          [MOVE IN SET SOM CODE
C7W2          MVCH  4  4                   [+ALPHA SHIFT CHAR:ENSURES UPPER CASE
C8T=    #              MOVE IN MESSAGE  
C9#W          LDX   4  FX1                 [CURRENT CHAPTER ADDRESS 
C9SG          LDX   0  AWORK1(2)           [ATYPE OF MESSAGE BLOCK  
C=#6          BZE   0  VMPTR               [MESSAGE IN CURRENT CHAPTER  
C=RQ          MHUNTX   2,AWORK1(2)         [GMON/AOUT OR AMXOR/BBC OR AMXOR/ADCB
C??B          LDX   4  2
C?R2          LDX   2  FX2  
C#=L    VMPTR STO   4  ACOMMUNE4(2)        [SAVE ADDRESS OF MESSAGE BLOCK   
C#Q=          ADX   4  ACOMMUNE9(2)        [START OF MESSAGE ADDRESS
C*9W          LDX   0  ACOMMUNE8(2) 
C*PG          STO   0  AWORK4(2)           [EMPTY MESSAGE INDICATOR 
CB96          BZE   0  VEOM                [EMPTY MESSAGE   
CBNQ          BZE   6  VNOR                [END OF NPU  
CC8B    VLOOP STO   4  1                   [GET NEXT CHARACTER OF MESSAGE   
CCN2          LDCH  0  0(1) 
CD7L          LDXC  7  ICONTU(3)
CDM=          BCS      VSCC                [CODE 2 VDU : SKIP CONVERSION
CF6W          SRC   0  2                   [CONVERT CHAR
CFLG          STO   0  1
CG66          SMO      FX1  
CGKQ          LDCH  0  VCHAROUT(1)  
CH5B    VSCC  SMO      FX1  
CHK2          TXL   0  O74  
CJ4L          BCS      VDEP                [NOT A SHIFT CHAR
CJJ=          SBN   6  2
CK3W          BNG   6  VNOR                [NOT ENOUGH ROOM FOR SHIFT CHAR  
CKHG          ADN   6  2
CL36    VRFS  LDN   7  #76  
CLGQ          STO   5  1
CM2B          DCH   7  0(1)                [DEPOSIT FIRST HALF OF SHIFT CHAR
CMG2          BCHX  5  £                   [STEP ON IOUT POINTER
CM^L          SBN   6  1                   [UPDATE ROOM LEFT IN NPU 
CNF=          SBN   0  #10                 [CONVERT CHAR TO ALPHA SHIFT 
CNYW    VDEP  STO   5  1
CPDG          DCH   0  0(1) 
CPY6          BCHX  5  £                   [STEP ON IOUT POINTER
CQCQ          BCHX  4  £                   [STEP ON MESSAGE POINTER 
CQXB          SBN   6  1                   [UPDATE ROOM LEFT IN NPU 
CRC2          CALL  7  VSETCCTS            [SET CUR POS CTS FOR NEXT CHAR   
CRWL          LDX   1  FX1  
CSB=          LDX   0  ACOMMUNE8(2) 
CSTW          SBN   0  1
CT*G          STO   0  ACOMMUNE8(2)        [UPDATE COUNT OF MESSAGE CHARS   
CTT6          BZE   0  VEOM                [END OF MESSAGE  
CW#Q          BNZ   6  VLOOP               [NOT END OF NPU  
CWSB    VNOR  CALL  7  VNEWB               [GET NEW AMXOR/IOUT BLOCK
CX#2          BRN      VLOOP
CXRL    VEOM
CY?=    #              IF READY MESSAGE,MOVE IN READY TERMINATOR SEQUENCE   
C^Q6          LDCT  7  2
D29Q          ANDX  7  IWAIT(3) 
D2PB          BZE   7  VNRY                [NOT A READY MESSAGE 
D392          DEX   7  ICONTU(3)           [CLEAR CT OF LINES O/P SINCE LAST T-R
D3NL          ANDX  7  ACOMMUNE6(2) 
D48=          ERS   7  ACOMMUNE6(2)        [UNSET SUPPRESS READY TERMINATOR FLAG
D4MW          BNZ   7  VEOB                [SUPPRESS READY TERMINATOR SEQUENCE  
D57G    VUR1  SBX   6  IREADY(3)           [UPDATE ROOM LEFT IN NPU 
D5M6          BPZ   6  VMRY                [SUFFICIENT ROOM FOR READY TERMINATOR
D66Q          CALL  7  VNEWB               [GET NEW AMXOR/IOUT BLOCK
D6LB          BRN      VUR1 
D762    VMRY  LDN   4  IREADY+1(3)         [MOVE IN READY TERMINATOR SEQUENCE   
D7KL          SMO      IREADY(3)
D85=          MVCH  4  0
D8JW          BRN      VEOB 
DCX=    #              IF NL SUPPRESSION NOT REQUESTED,MOVE IN MESSAGE  
DDBW    #              TERMINATOR SEQUENCE  
DDWG    VNRY  LDX   0  IWAIT(3) 
DFB6          ANDX  0  BIT10
DFTQ          ERS   0  IWAIT(3)            [UNSET B10 IF SET
DG*B          BNZ   0  VEOB                [NL SUPPRESSION REQUIRED ON OUTPUT   
DGT2          LDX   0  AWORK4(2)           [EMPTY MESSAGE INDICATOR 
DH#L          BZE   0  VMTS                [EMPTY MESSAGE   
DHS=          LDEX  0  ACOMMUNE6(2)        [START COLUMN NO FOR NEXT MESSAGE
DJ?W          BZE   0  VEOB                [COL 0 : OMIT MESSAGE TERMINATOR SEQ 
DJRG    VMTS  LDCT  0  #10  
DK?6          ADS   0  ACOMMUNE6(2)        [UPDATE LINE NO  
DKQQ          DEX   0  ACOMMUNE6(2)        [UPDATE COLUMN NO
DL=B          LDN   0  1
DLQ2          ADS   0  ICONTU(3)           [UPDATE CT OF LINES O/P SINCE LAST TR
DM9L          SEGENTRY K72IPBMOPB    [RESTORE TIME MACRO NOFLASH SUPPRESSES NLS.
DMP=          SBX   6  INOCHS(3)           [UPDATE ROOM LEFT IN NPU 
DN8W          BPZ   6  VRFMT               [ROOM FOR MESSAGE TERMINATOR 
DNNG          CALL  7  VNEWB               [GET NEW AMXOR/IOUT BLOCK
DP86    VRFMT LDN   4  INLBUFF(3)          [MOVE IN MESSAGE TERMINATOR SEQUENCE 
DPMQ          SMO      INOCHS(3)
DQ7B          MVCH  4  0
DQM2    #              TIDY UP FINAL IOUT BLOCK 
DR6L          SEGENTRY K73IPBMOPB    [RESTORE TIME MACRO NOFLASH SUPPRESSES NLS.
DRL=    VEOB  MHUNTW   1,AMXOR,IOUT        [BLOCK POINTER   
DS5W          SBX   5  1                   [RELATIVE END OF MESSAGE POINTER 
DSKG          SBN   5  IDATA               [- RED TAPE  
DT56          SLC   5  2                   [COUNT OF CONVERTED DATA CHARS   
DTJQ          DSA   5  IPBIDE+1(1)         [DEPOSIT COUNT OF DATA CHARS 
DTMW ...      LDCT  0  #600 
DTR2 ...      ORS   0  IPBIDE+1(1)  
DTW6 ...      LDCT  0  #200 
DT^= ...      ERS   0  IPBIDE+1(1)  
DW4B          ADN   5  IDATA-A1*4+3 
DWJ2          SRL   5  2                   [LENGTH OF OUTPUT BLOCK  
DX3L          TXU   5  ALOGLEN(1)   
DXH=          BCC      VSUSF               [CORRECT LENGTH ALREADY  
DY2W          ALTLENG  1,5                 [SHORTEN IOUT BLOCK  
DYGG    #              FINISH OFF   
D^26    VSUSF LDX   0  ICONTU(3)
D^FQ          ANDN  0  #777                [COUNT OF LINES OUTPUT SINCE LAST T-R
D^^B          SMO      FX1  
F2F2          SBX   0  VCONTOUTPUT  
F2YL          BNG   0  VUP                 [LIMIT NOT REACHED   
F3D=          LDN   0  1
F3XW          ORS   0  IWAIT(3)            [SET "OUTPUT SUSPENDED" FLAG 
F4CG    VUP   UP
F4X6    #   
F5BQ    SET   SBN   0  #36  
F5WB          BNZ   0  WEX[SKIP INOPERABILITY WAIT IF ACT ALREADY IN A LONG 
F6B2                      [EVENT WAIT(EG #220)  
F6TL          GEOERR   1,LONGSET           [LONGSET GIVEN TWICE FOR W.S. #36
F6^F ...[   
F72Q ...[      SK11IPBMOPB  
F743 ...[   
F75# ...SK11IPBMOPB 
F76K ...[      ENTRY FROM FREE COMMAND SEGMENT - VIPBFREE   
F77W ...      LDX   0  GSIGN
F797 ...      STO  0  AWORK1(2)          [AWORK1 = NEG. ENRTY K11   
F7=D ...      BRN    RCI
F7*=          MENDAREA 25,K100IPBMOPB   
F7SW    #END
^^^^ ...204417520012
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1