{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPBMOPB867)}}
====== IPBMOPB867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:ALTLENG|ALTLENG]], [[george:macro:BS|BS]], [[george:macro:CHAIN|CHAIN]], [[george:macro:COOR1|COOR1]], [[george:macro:DOWN|DOWN]], [[george:macro:ERROR|ERROR]], [[george:macro:FINDRET|FINDRET]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORM|INFORM]], [[george:macro:ISITJOB|ISITJOB]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSET|LONGSET]], [[george:macro:LONGTARRY|LONGTARRY]], [[george:macro:LONGWAIT|LONGWAIT]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MHUNTX|MHUNTX]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:NAME|NAME]], [[george:macro:OUTBLOCN|OUTBLOCN]], [[george:macro:OUTLEN|OUTLEN]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPAR|OUTPAR]], [[george:macro:READYON|READYON]], [[george:macro:RESET|RESET]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
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