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 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