{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: OPERA864)}}
====== OPERA864 ======
(George Source)
**Macros used:** [[george:macro:ALTLEN|ALTLEN]], [[george:macro:AND|AND]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:CHAIND|CHAIND]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR3|COOR3]], [[george:macro:DCA|DCA]], [[george:macro:DO|DO]], [[george:macro:DOWN|DOWN]], [[george:macro:ELSE|ELSE]], [[george:macro:ELSF|ELSF]], [[george:macro:FC|FC]], [[george:macro:FI|FI]], [[george:macro:FIXTRA|FIXTRA]], [[george:macro:GPERI|GPERI]], [[george:macro:IF|IF]], [[george:macro:IFR|IFR]], [[george:macro:LOCKC|LOCKC]], [[george:macro:MBC|MBC]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:OR|OR]], [[george:macro:READED|READED]], [[george:macro:REPEAT|REPEAT]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:STF|STF]], [[george:macro:THEN|THEN]], [[george:macro:UNLOCK|UNLOCK]], [[george:macro:UP|UP]], [[george:macro:WHILE|WHILE]]
22FL #OPT K0OPERA=0
22^= #LIS K0OPERA > K0ALLGEO > K0GREATGEO
23DW #SEG OPERA [COMM - STIG TOWNSEND
23YG [
24D6 [
24XQ 8HOPERA
25CB SEGENTRY K1OPERA,OPERAK1 [SHOW TO A MONITOR SCREEN
25X2 SEGENTRY K2OPERA,OPERAK2 [SHOW TO INTERACTIVE SCREEN
26BL SEGENTRY K3OPERA,OPERAK3 [CLEAR FCOUTBUF OF BSTS MESSAGES
26W= [
27*W [
27TG [ AWORK4 IS USED TO HOLD THE NUMBER OF THE SCREEN FOR
28*6 [ WHICH THE SHOW IS TO BE DONE. IN THE CASE OF A MONITOR
28SQ [ SHOW, THIS IS TAKEN FROM ACOMMUNE4 WHEN ENTERED
29#B [
29S2 #PAGE
2=?L [
2=R= [
2?=W #DEF WIDTH = 40 [WIDTH OF OPER SCREEN (CHARS)
2?QG [
2#=6 #DEF PAGESIZE = 2 [SIZE OF PAGE IN B/S BLOCKS
2#PQ [
2*9B #DEF SIZEDATE = 7 [LENGTH OF DATE STRING (CHARS)
2*P2 [
2B8L #DEF SIZETIME = 5 [LENGTH OF HH.MM (CHARS)
2BN= [
2C7W #DEF WRITEMODE = 3 [EXTENDED WRITE MODE
2CMG [
2D76 #DEF UNLOCK = #200 [ADDITIONAL WRITE MODE - UNLOCK KEYS
2DLQ [
2F6B SHOWINGMSG 40H*** SHOWING ***
2FL2 [
2G5L FIXTRA K90OPERA [FOR MACRO 'KEEPPAGES'
2GK= MAXBLKLET +20 * PAGESIZE [HIGHEST BLOCKLET NO IN RECALL FILE
2H4W [
2HJG NEWLINES 4H^*^* [2 NEWLINES
2J46 [
2JHQ TYPESHOW +CONBUFF+CSHOW@L 12 [CONBUFF/CSHOW BLOCKTYPE
2K3B [
2KH2 TYPECOUT +CONBUFF+COUT @L 12 [CONBUFF/COUT BLOCKTYPE
2L2L #PAGE
2LG= [
2L^W [
2MFG [
2M^6 [*********************************************************************
2NDQ [
2NYB SHUNTFRRB
2PD2 [
2PXL [*********************************************************************
2QC= [
2QWW [ SUBSIDIARY HUNT ROUTINE FOR 'LOCKC'
2RBG [
2RW6 MHUNTW 2,FILE,FRRB
2S*Q EXIT 1 0
2STB #PAGE
2T*2 [
2TSL [
2W#= [
2WRW [*********************************************************************
2X?G [
2XR6 SHOWBLOCK
2Y=Q [
2YQB [*********************************************************************
2^=2 [
2^PL [ POINTS X3 AT THE FIRST CONBUFF/CSHOW ON THE CONSOLE OUTPUT
329= [ CHAIN WHOSE DISPLAY NUMBER IS THE SAME AS THAT HELD IN AWORK4
32NW [
338G [ X4 LINK
33N6 [
347Q [ ON EXIT, X0 CORRUPT
34MB [ X1,2 = FX'S
3572 [ X3 -> BLOCK
35LL [
366= LDX 1 FX1
36KW LDX 2 FX2
375G LDN 3 BCONSOUT
37K6 WHILE TRUE [LOOP TILL FIND /CSHOW FOR SCREEN
384Q LDX 3 FPTR(3)
38JB AND EITHER,+ATYPE(3),U,TYPESHOW(1)
3942 OR +AWORK4(2),U,CSVID(3)
39HL DO
3=3= REPEAT [X3 -> SHOW BLOCK
3=GW EXIT 4 0
3?2G [
3?G6 #PAGE
3?^Q [
3#FB [
3#^2 [*********************************************************************
3*DL [
3*Y= SREADPAGE
3BCW [
3BXG [*********************************************************************
3CC6 [
3CWQ [ READS THE PAGE SPECIFIED IN THE FIRST SHOW BLOCK FOR THE SCREEN WE
3DBB [ ARE CONSIDERING.
3DW2 [
3F*L [ LINK X6
3FT= [ ON ENTRY, AWORK4 CONTAINS SCREEN NUMBER
3G#W [ /CSHOW BLOCK FOR THIS SCREEN IS ON CONSOLE CHAIN
3GSG [
3H#6 [ ON EXIT, PAGE IS SET UP IN A FILE/FRRB BLOCK
3HRQ [ X1,2 = FX'S
3J?B [ X3 -> BLOCK
3JR2 [ X5 CORRUPT
3K=L [
3KQ= SBX 6 FX1
3L9W CALL 4 SHOWBLOCK [X3 -> /CSHOW
3LPG LDX 2 CONSCNTRL
3M96 ADN 2 COVID
3MNQ ADX 2 CSVID(3) [X2 -> SCREEN CELL
3N8B LDX 4 CSPAG(3) [SET X4 TO START BLOCKLET OF PAGE
3NN2 IF 4,NG [IF START OF 'AUTO' THEN
3P7L THEN
3PM= BS 2,COAUTO [SET AUTO BIT
3Q6W LDN 4 1 [READ PAGE @1
3QLG STO 4 CSPAG(3) [PUT REAL PAGE NUMBER IN
3R66 ELSF +CSVID(3),NZ [ELSF FOR MONITOR SCREEN THEN
3RKQ THEN
3S5B BC 2,COAUTO [CLEAR AUTO BIT
3SK2 FI [FI
3T4L LDX 0 4
3TJ= SLL 0 PAGESIZE/2
3W3W SMO CONSCNTRL
3WHG LDX 4 COBLK
3X36 SBX 4 0
3XGQ IFR 4,NG
3Y2B OR 4,ZE
3YG2 THEN
3Y^L LDX 1 FX1
3^F= ADX 4 MAXBLKLET(1)
3^YW FI [X4 = START BLOCKLET
42DG LDN 5 PAGESIZE*128
42Y6 READED 4,1,5 [READ REQUESTED PAGE
43CQ MHUNTW 3,FILE,FRRB
43XB ADX 6 FX1
44C2 EXIT 6 0
44WL #PAGE
45B= [
45TW [
46*G [***************************************************************
46T6 [
47#Q SPREPERI
47SB [
48#2 [***************************************************************
48RL [
49?= [ EXTRACTS BSTS MESSAGES FROM FCOUTBUF, TAKING COUNT AND
49QW [ ADDRESS FROM THE OPER DEVICE LIST ENTRY
4==G [ THE MESSAGE IS INCORPORATED AS A STRING OF /COUT'S
4=Q6 [ AT THE !! FRONT !! OF THE CONSOLE OUTPUT CHAIN
4?9Q [ THE MESSAGE MUST BE OF THE FORMAT:
4?PB [ * *
4#92 [ WHERE ::= * *
4#NL [ ::= UPARROW SPACE "^ "
4*8= [ ::= UPARROW STAR "^*"
4*MW [ A FOLLOWING ASTERISK MEANS THE ELEMENT MAY BE
4B7G [ REPEATED ANY NUMBER OF TIMES (INCL ZERO)
4BM6 [
4C6Q [ LINK X7
4CLB [
4D62 [ ON EXIT: COBS HOLDS ZERO
4DKL [ X1,2 = FX'S
4F5= [
4FJW SBX 7 FX1
4G4G WHILE TRUE
4GJ6 LDX 1 FX1
4H3Q LDX 2 FX2
4HHB WHILE BUSY,CPPTR(2)
4J32 DO
4JGL COOR3 #50
4K2= REPEAT
4KFW LDX 3 CONSCNTRL
4K^G AND +COBS(3),NZ
4LF6 DO
4LYQ LDX 3 CPPTR(2)
4MDB DCA 3,LDX,4,COUNT
4MY2 ADN 4 (CPDATA-A1)*4 + 3
4NCL SRL 4 2 [SET UP BLOCK TO ...
4NX= SETUPCOR 4,2,ADATA,CREADL [HOLD COPY OF MESSAGE
4PBW [
4PWG WHILE TRUE [ENSURE LONGER BSTS MESSAGE ...
4QB6 DCA 3,LDX,5,COUNT [NOT WRITTEN DURING 'SETUPCOR'
4QTQ ADN 5 (CPDATA-A1)*4 + 3
4R*B SRL 5 2
4RT2 AND 4,L,5
4S#L DO
4SS= LDX 4 5
4T?W ALTLEN 2,4,ADATA,CREADL
4TRG MHUNTW 2,ADATA,CREADL
4W?6 REPEAT
4WQQ [
4X=B LDN 4 FCOUTBUF+1 [COPY OUT THE MESSAGE
4XQ2 LDN 5 CPDATA(2)
4Y9L LDN 6 FCOUTBUF+1 [SET X6 TO CHAR COUNT
4YP= DCA 3,SBX,6,CTSA
4^8W SLL 6 2
4^NG DCA 3,ADX,6,COUNT [X6 = CHAR COUNT LESS ANY ...
5286 SMO 6 [... PRECEDING "CANCEL"
52MQ MVCH 4 0
537B [
53M2 [INITIALISE LOOP:
546L [X6 COUNT OF CHARS TO CHECK FOR N/L (
54L= LDX 3 CONSCNTRL [COBS NONZERO MEANS BSTS WROTE ...
555W STOZ COBS(3) [ AGAIN AFTER THIS MSG WAS COPIED
55KG BS 3,COVERWRITE [REMEMBER SCREEN NEEDS RESETTING
55NL ... IF BSC,3,COPAGEWAIT [DONT PAGEWAIT
55RQ ... THEN
55WW ... STOZ CODAT(3)
5622 ... FI
5656 LDN 1 CPDATA [X1 DISPLACEMENT OF START OF ...
56JQ [ CURRENT LINE WITHIN MESSAGE
574B [
57J2 WHILE TRUE [WHILE ...
583L MHUNTW 2,ADATA,CREADL
58H= ADX 1 2
592W WHILE 6,NZ [ (IGNORING NULLS ("^ ") )
59GG [FIND "^*" OR END OF MSG
5=26 LDCH 0 0(1)
5=FQ SBN 0 #76
5=^B AND 0,ZE
5?F2 BCHX 1 £
5?YL LDCH 0 0(1)
5#D= SBN 0 #32
5#XW SBN 6 2
5*CG BCHX 1 £
5*X6 AND 0,NZ
5BBQ DO
5BWB REPEAT
5CB2 [AT END OF NULLS LOOP:
5CTL [X6 = 0 => END OF MESSAGE
5D*= [X6 NZERO => END OF LINE, WHEN
5DSW [ X0 = 0 => NEWLINE FOUND
5F#G [ X1 -> NEXT LINE
5FS6 [ X0 NZERO => DATA CHAR FOUND
5G?Q [ X1 -> DATA CHAR
5GRB AND 6,NZ [... NOT RUN OFF END OF MSG DO
5H?2 DO
5HQL LDX 3 1 [X3 -> START OF THIS LINE
5J== IF 0,NZ [IF LINE NOT NULL THEN
5JPW THEN
5K9G WHILE TRUE
5KP6 DO [FIND NEXT DELTA CHAR
5L8Q LDCH 0 0(1)
5LNB SBN 6 1
5M82 BCHX 1 £
5MML SBN 0 #76
5N7= REPEAT UNTIL,0,ZE [FOUND ^ OF DELTA
5NLW LDCH 0 0(1)
5P6G SBN 6 1
5PL6 BCHX 1 £
5Q5Q SBN 0 #32 [GEOERR IF NOT ^* -
5QKB BNZ 0 (GEOERR) [CAN'T COPE WITH DELTA IN LINE
5R52 FI [FI LINE NOT NULL
5RJL [
5S4= [ HAVE FOUND NEWLINE
5SHW [ X1 -> BEYOND IT
5T3G [ X2 -> BSTS MESSAGE BLOCK
5TH6 [ X3 -> START OF THIS LINE WITHIN IT
5W2Q [
5YDW SBX 1 2 [X1 -> START NEXT LINE (W.R.T. FPT
5^D6 SBX 3 2 [X3 -> START THIS LINE (W.R.T. FPT
5^GP ... SLC 3 2
5^K# ... LDX 4 1
5^MX ... SLC 4 2
5^QG ... SBN 4 2(3) [X4 = CHARS IN LINE EXCL "^*"
5^T5 ... SRC 3 2
5^XQ LDX 2 FX2
62CB STO 1 AWORK1(2)
62X2 STO 4 AWORK2(2)
63BL IF 4,NZ [IF THIS LINE NOT NULL THEN
63W= THEN
64*W ADN 4 (ATEXT-AREC)*4 + 3
64TG SRL 4 2
65*6 SETUPCOR 4,1,CONBUFF,COUT [X1 -> CONBUFF-COUT FOR ONE LIN
65SQ MHUNTW 2,ADATA,CREADL [X2 -> CREADL
66#B STO 4 AREC(1) [SET WORD COUNT
66S2 LDX 4 2
67?L ADX 4 3 [X4 -> START OF THIS LINE
67R= LDN 2 AREC-1(1)
68=W ADX 2 AREC(1)
68QG LDX 0 ACES
69=6 STO 0 0(2) [SPACEFILL LAST WORD IN /COUT
69PQ LDX 2 FX2 [X2 = FX2
6=9B LDN 5 ATEXT(1) [X5 -> START OF /COUT TEXT AREA
6=P2 LDX 3 AWORK2(2)
6?8L MVCH 4 0(3) [MOVE THIS LINE IN
6?N= FI [FI LINE NOT NULL
6#7W LDX 1 AWORK1(2)
6#MG REPEAT [REPEAT UNTIL END OF MESSAGE
6*76 MFREE ADATA,CREADL
6*LQ [
6B6B [ LINES OF MSG ARE ON ACT CHAIN IN REVERSE ORDER
6BL2 [ PUTTING THEM AT FRONT OF CONSOLE CHAIN RESTORES ORIGINAL ORDER
6C5L [
6CK= MHUNTW 3,CONBUFF,COUT [FROM 1ST /COUT (LAST LINE OF MSG) DO
6D4W WHILE TRUE
6DJG DO
6F46 LDX 4 FPTR(3)
6FHQ CHAIND 3,BCONSOUT [CHAIN /COUTS AT FRONT
6G3B LDX 3 4
6GH2 REPEAT UNTIL,+ATYPE(3),U,TYPECOUT(1)
6H2L [
6HG= REPEAT
6H^W [
6JFG ADX 7 FX1
6J^6 EXIT 7 0
6KDQ #PAGE
6KYB [
6LD2 [
6LXL [ WW WW W
6MC= [ WW WW WW
6MWW [ WW WW WWW
6NBG [ WWWW WW
6NW6 [ WWWW WW
6P*Q [ WW WW WW
6PTB [ WW WW WW
6Q*2 [ WW WW WW
6QSL [
6R#= [
6RRW OPERAK1
6S?G [
6SR6 [ SHOWS A PAGE TO A MONITOR SCREEN (OR CLEARS SCREEN IF THE ACTIVE
6T=Q [ PAGE IS SPECIFIED)
6TQB [
6W=2 [ ON ENTRY, ACOMMUNE4 CONTAINS SCREEN NUMBER
6WPL [ /CSHOW BLOCK FOR THIS SCREEN IS ON CONSOLE CHAIN
6X9= [
6XNW LDX 0 ACOMMUNE4(2)
6Y8G STO 0 AWORK4(2) [SET SCREEN NUMBER
6YN6 CALL 4 SHOWBLOCK
6^7Q IF +CSPAG(3),ZE [IF "SHOW OFF" THEN
6^MB THEN
7272 CALL 7 SPREPERI
72LL LDX 0 NEWLINES(1) [SET UP BUFFER TO CLEAR SCREEN
736= STO 0 FCOUTBUF
73KW LDN 4 FCOUTBUF
745G LDN 5 FCOUTBUF+1
74K6 MOVE 4 HEIGHTPAGE+5/2 [BUFFER IS SET UP
754Q LDX 3 CPPTR(2) [SET UP CONTROL AREA
75JB LDN 0 WRITEMODE
7642 DCA 3,DLA,0,MODE
76HL LDN 0 FCOUTBUF
773= DCA 3,STO,0,CTSA
77GW LDX 0 AWORK4(2)
782G SLL 0 9
78G6 DCA 3,STO,0,EXTRA [INCLUDING SCREEN NUMBER
78^Q LDN 0 HEIGHTPAGE+5/2*4
79FB DCA 3,DLA,0,COUNT
79^2 GPERI 3,2 [ISSUE PERI
7=DL COOR1
7=Y= LDN 3 CPRW1(2)
7?CW IF MBAC,3,CONSFAIL,CONSINOP [IF OK THEN
7?XG THEN
7#C6 LDX 3 AWORK4(2)
7#WQ SMO CONSCNTRL
7*BB ADN 3 COVID
7*W2 MBC 3,COSHOWING,COAUTO [CLEAR 'SCREEN SHOWING' BITS
7B*L FC 3,COCURRENT
7BT= FI [FI
7C#W ELSE [ELSE (NOT ACTIVE PAGE)
7CSG CALL 6 SREADPAGE
7CWP ... LDX 3 CONSCNTRL
7CYY ... IF +CORET(3),ZE
7D37 ... THEN
7D5B ... MFREE FILE,FRRB
7D7K ... UP
7D9S ... FI
7D#6 DOWN OPER,3 [PUT RESPONSE LINE IN BLOCK
7DRQ CALL 4 SHOWBLOCK
7F?B LDX 3 CSVID(3)
7FR2 ADX 3 CONSCNTRL
7G=L ADN 3 COVID
7GQ= CALL 1 SHUNTFRRB
7H9W IF BC,3,COAUTO [IF NOT AUTO THEN
7HPG THEN
7J96 LDX 0 ACES [BLANK "(AUTO)"
7JNQ STO 0 (ACHCT+1)+(WIDTH/4)-2(2)
7K8B STO 0 (ACHCT+1)+(WIDTH/4)-1(2)
7KN2 FI [FI
7L7L LOCKC 2,SHUNTFRRB [LOCK BUFFER BLOCK
7LM= CALL 7 SPREPERI
7M6W LDX 3 CPPTR(2) [SET UP CONTROL AREA
7MLG LDN 0 WRITEMODE
7N66 DCA 3,DLA,0,MODE
7NKQ CALL 1 SHUNTFRRB
7P5B LDN 0 ACLOG(2)
7PK2 DCA 3,STO,0,CTSA
7Q4L LDX 0 ACHCT(2)
7QJ= DCA 3,DLA,0,COUNT
7R3W LDX 2 FX2
7RHG LDX 0 AWORK4(2)
7S36 SLL 0 9
7SGQ DCA 3,STO,0,EXTRA
7T2B GPERI 3,2 [ISSUE PERI
7TG2 COOR1
7T^L MFREE FILE,FRRB [FREE BUFFER BLOCK
7WF= LDN 3 CPRW1(2)
7WYW IF MBAC,3,CONSFAIL,CONSINOP [IF SHOWED OK THEN
7XDG THEN
7XY6 LDX 3 AWORK4(2)
7YCQ SMO CONSCNTRL
7YXB ADN 3 COVID [SET 'SCREEN SHOWING' BIT
7^C2 BS 3,COSHOWING
7^WL STO 3 5
82B= CALL 4 SHOWBLOCK
82TW LDX 1 CSPAG(3) [X1 = CURRENT PAGE NUMBER
83*G LDX 3 5
83T6 STF 3,COCURRENT,1 [SET IT IN THE INFO CELL
84#Q FI [FI
84SB FI [FI ACTIVE PAGE / OTHER
85#2 UP
85RL #PAGE
86?= [
86QW [
87=G [
87Q6 [ WW WW WWWWW
889Q [ WW WW WW WW
88PB [ WW WW WW
8992 [ WWWW WW
89NL [ WWWW WW
8=8= [ WW WW WW
8=MW [ WW WW WW
8?7G [ WW WW WWWWWWW
8?M6 [
8#6Q [
8#LB OPERAK2
8*62 [
8*KL [
8B5= [ SHOWS A PAGE ON THE INTERACTIVE SCREEN, SETTING APPROPRIATE BITS
8BJW [ AND TIMER WORDS.
8C4G [
8CJ6 [ ON ENTRY, /CSHOW BLOCK FOR THIS SCREEN IS ON CONSOLE CHAIN
8D3Q [
8DHB STOZ AWORK4(2) [WE KNOW IT'S SCREEN ZERO
8F32 CALL 6 SREADPAGE
8FGL LDN 5 SHOWINGMSG(1) [X56 READY TO INSERT *** SHOWING ***
8G2= LDN 6 ACHCT+1(3)
8GFW LDX 2 3
8G^G ADX 2 ACLOG(3) [ACLOG WILL BE O-WRITTEN BY ***'S
8HF6 SBN 2 SIZETIME+SIZEDATE+4/4 [X2 -> FIELD FOR CURRENT TIME & DATE
8HYQ MOVE 5 WIDTH/4 [INSERT *** SHOWING ***
8JDB LDN 1 FTIME [INSERT CURRENT DATE AND TIME
8JY2 MVCH 1 SIZETIME
8KCL LDN 1 ACES
8KX= MVCH 1 4
8LBW LDN 1 FDATE
8LWG MVCH 1 SIZEDATE [TIME AND DATE INSERTED
8MB6 CALL 1 SHUNTFRRB
8MTQ LOCKC 2,SHUNTFRRB
8N*B DO
8NT2 CALL 7 SPREPERI
8P#L LDX 3 CPPTR(2) [SET UP CONTROL AREA
8PS= CALL 1 SHUNTFRRB
8Q?W LDN 0 WRITEMODE+UNLOCK
8QRG DCA 3,DLA,0,MODE
8R?6 LDN 0 ACLOG(2)
8RQQ DCA 3,STO,0,CTSA
8S=B LDX 0 ACHCT(2)
8SQ2 DCA 3,DLA,0,COUNT
8T9L LDN 0 0
8TP= DCA 3,STO,0,EXTRA
8W8W LDX 2 FX2
8WNG GPERI 3,2 [ISSUE PERI
8X86 COOR1
8XMQ LDN 3 CPRW1(2)
8Y7B REPEAT UNTIL,MBAC,3,CONSFAIL,CONSINOP
8YM2 CALL 4 SHOWBLOCK
8^6L LDX 1 CSPAG(3) [X1 = CURRENT PAGE NUMBER
8^L= LDX 3 CONSCNTRL
925W BC 3,COPAGEWAIT [CLEAR 'PAGEWAITING'
92KG LDX 0 EDATE
9356 STO 0 CODAT(3) [REMEMBER WHEN SHOW STARTED
93JQ LDX 0 CLEANCT
944B STO 0 CODAT+1(3)
94J2 ADN 3 COVID
953L BS 3,COSHOWING [SET 'SHOWING'
95H= STF 3,COCURRENT,1 [SET PAGE NO. IN INFO CELL
96GG MFREE FILE,FRRB
9726 UP
97FQ #PAGE
97^B [
98F2 [
98YL [ WW WW WWWWW
99D= [ WW WW WW WW
99XW [ WW WW WW
9=CG [ WWWW WWWW
9=X6 [ WWWW WW
9?BQ [ WW WW WW
9?WB [ WW WW WW WW
9#B2 [ WW WW WWWWW
9#TL [
9**= [
9*SW OPERAK3
9B#G [
9BS6 [ CLEAR FCOUTBUF OF BSTS MESSAGES
9C?Q [
9CRB CALL 7 SPREPERI
9D?2 UP
9DQL #END
^^^^ ...450612340004