{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: SHOWCOMM864)}}
====== SHOWCOMM864 ======
(George Source)
**Macros used:** [[george:macro:AND|AND]], [[george:macro:BXE|BXE]], [[george:macro:BXGE|BXGE]], [[george:macro:CHNUMCOD|CHNUMCOD]], [[george:macro:COMERR|COMERR]], [[george:macro:CONSOUT|CONSOUT]], [[george:macro:DO|DO]], [[george:macro:ELSE|ELSE]], [[george:macro:ELSF|ELSF]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FI|FI]], [[george:macro:FREECORE|FREECORE]], [[george:macro:IF|IF]], [[george:macro:IFR|IFR]], [[george:macro:INCF|INCF]], [[george:macro:JBS|JBS]], [[george:macro:JENVNOT|JENVNOT]], [[george:macro:LF|LF]], [[george:macro:MFREE|MFREE]], [[george:macro:MHUNT|MHUNT]], [[george:macro:OR|OR]], [[george:macro:PARANOTX|PARANOTX]], [[george:macro:REPEAT|REPEAT]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:THEN|THEN]], [[george:macro:UP|UP]]
22FL #OPT K0SHOWCOMM=0
22^= #LIS K0SHOWCOMM > K0ALLGEO > K0GREATGEO
23DW #SEG SHOWCOMM [COMM - STIG TOWNSEND
23YG [
24D6 8HSHOWCOMM
24XQ [
25CB [
25X2 [
26BL [ IMPLEMENTS THE SHOW COMMAND AND PROVIDES ROUTINES
26W= [ TO SIMULATE THE COMMAND FOR THE OPER CODE
27*W [
27TG [
28*6 [
28SQ [
29#B [ X2 = FX2 THROUGHOUT
29S2 [
2=?L [
2=R= [ AWORK1 AND AWORK2 ARE USED TO STORE THE SCREEN AND PAGE
2?=W [ NUMBERS AS THEY ARE ANALYSED. THEY ARE REFERRED TO
2?QG [ LOCALLY AS 'SCREEN' AND 'PAGE.
2#=6 [
2#PQ #DEF SCREEN=AWORK1
2*9B #DEF PAGE=AWORK2
2*P2 [
2B8L [
2BN= [
2C7W SEGENTRY K1SHOWCOMM,SHOWCOMMK1 [SHOW COMMAND
2CMG SEGENTRY K2SHOWCOMM,SHOWCOMMK2 [SIMULATE A 'SH -1,1'
2D76 SEGENTRY K3SHOWCOMM,SHOWCOMMK3 [SIMULATE A 'SH OFF,0'
2DLQ SEGENTRY K4SHOWCOMM,SHOWCOMMK4 [SIMULATE A 'SH +1,1'
2F6B SEGENTRY K5SHOWCOMM,SHOWCOMMK5 [FORCEPAGE COMMAND
2FL2 [
2G5L [
2GK= [
2H4W [ PRESET DATA
2HJG [ ===========
2J46 [
2JHQ #DEF PARAM = 1
2K3B TABLE
2KH2 BRN RAUTO
2L2L 4HAU00
2LG= [
2L^W BRN RLATEST
2MFG 4HLA00
2M^6 [
2NDQ BRN ROFF
2NYB 4HOF00
2PD2 [
2PXL BRN ROLDEST
2QC= 4HOL00
2QWW TEND
2RBG RAUTO
2RW6 LDX 0 SCREEN(2)
2S*Q BZE 0 ZMAINAUTO
2STB NGN 7 1
2T*2 BRN RETURN
2TSL RLATEST
2W#= LDN 7 1
2WRW CALL 4 SINBOUNDS
2X?G BRN RETURN
2XR6 ROFF
2Y=Q LDN 7 0
2YQB BRN RETURN
2^=2 ROLDEST
2^PL SMO CONSCNTRL
329= LDX 7 CORET
32NW BRN RETURN
338G [
33N6 [
347Q [
34MB [ SUBROUTINES
3572 [ ===========
35LL [
366= [
36KW [*********************************************************************
375G [
37K6 SGETPAR
384Q [
38JB [*********************************************************************
3942 [
39HL [ GETS A PARAMETER IN A CPB/CUNI
3=3= [
3=GW [ LINK X4
3?2G [
3?G6 [ ON ENTRY, X3 CONTAINS PARAM NUMBER WANTED
3?^Q [
3#FB [ ON EXIT, X3 -> CPB/CUNI CONTAINING IT
3#^2 [
3*DL SBX 4 FX1
3*Y= PARANOTX 3
3BCW MHUNT 3,CPB,CUNI
3BXG ADX 4 FX1
3CC6 EXIT 4 0
3CWQ [
3DBB [
3DW2 [
3F*L [*********************************************************************
3FT= [
3G#W SNUMCON
3GSG [
3H#6 [*********************************************************************
3HRQ [
3J?B [ CONVERTS A NUMBER HELD IN CHARACTER FORMAT TO BINARY
3JR2 [
3K=L [ LINK X4
3KQ= [
3L9W [ ON ENTRY, X3 -> CPB/CUNI HOLDING NUMBER
3LPG [
3M96 [ ON EXIT, ACOMMUNE1 HOLDS BINARY NUMBER
3MNQ [
3N8B [ IF A FORMAT ERROR IS FOUND, AN ERROR MESSAGE IS GENERATED
3NN2 [ AND A JUMP IS MADE TO 'ZENDCOMM'
3P7L [
3PM= SBX 4 FX1
3Q6W CHNUMCOD ,3
3QLG TESTRPN2 OK,ZENDCOMM
3R66 ADX 4 FX1
3RKQ EXIT 4 0
3S5B [
3SK2 [
3T4L [
3TJ= [*********************************************************************
3W3W [
3WHG SMAKEABS
3X36 [
3XGQ [*********************************************************************
3Y2B [
3YG2 [ TURNS A RELATIVE PAGE NUMBER INTO AN ABSOLUTE
3Y^L [
3^F= [ LINK X4
3^YW [
42DG [ ON ENTRY, X7 = RELATIVE PAGE NUMBER
42Y6 [ SCREEN = RELEVANT SCREEN NUMBER
43CQ [
43XB [ ON EXIT, X7 = ABSOLUTE PAGE NUMBER
44C2 [
44WL LDX 3 CONSCNTRL
45B= ADX 3 SCREEN(2)
45TW ADN 3 COVID
46*G LF 3,COCURRENT,0 [X0 = DISPLAYED PAGE
46T6 NGX 7 7
47#Q ADX 7 0 [X7 = DISPLAYED - SPECIFIED
47SB EXIT 4 0
48#2 [
48RL [
49?= [
49QW [*********************************************************************
4==G [
4=Q6 SINBOUNDS
4?9Q [
4?PB [*********************************************************************
4#92 [
4#NL [ ENSURES THAT AN ABSOLUTE PAGE NUMBER IS WITHIN BOUNDS
4*8= [
4*MW [ LINK X4
4B7G [
4BM6 [ ON ENTRY, X7 = ABSOLUTE PAGE NUMBER
4C6Q [
4CLB [ ON EXIT, 0 < X7 <= OLDEST PAGE RECALLABLE
4D62 [ OR X7 = -1 (AUTO FOR MONITOR, OFF FOR INTERACTIVE)
4DKL [
4F5= LDX 3 CONSCNTRL
4FJW IFR 7,NG [IF BEFORE ACTIVE
4G4G OR 7,ZE [OR ACTIVE ITSELF THEN
4GJ6 THEN
4H3Q NGN 7 1 [TREAT AS AUTO
4HHB ELSF 7,GE,CORET(3) [ELSF TOO OLD THEN GET OLDEST
4J32 THEN
4JGL LDX 7 CORET(3)
4K2= FI [FI
4KFW EXIT 4 0
4K^G [
4LF6 [
4LYQ [
4MDB [*********************************************************************
4MY2 [
4NCL SCHAINSHOW
4NX= [
4PBW [*********************************************************************
4PWG [
4QB6 [ SETS UP A SHOW BLOCK, INSERTS THE PARAMETERS, CHAINS THE BLOCK
4QTQ [
4R*B [ LINK X4
4RT2 [
4S#L [ ON ENTRY, SCREEN HOLDS SCREEN NUMBER
4SS= [ PAGE HOLDS ABSOLUTE PAGE NUMBER
4T?W [
4TRG [ ON EXIT, SHOW BLOCK IS CHAINED FOR ACTION
4W?6 [
4WQQ SBX 4 FX1
4X=B LDX 3 CONSCNTRL
4XQ2 LDX 0 PAGE(2)
4Y9L ORX 0 SCREEN(2)
4YP= IFR 0,ZE [IF 'SH @0,0'
4^8W OR BC,3,CONSNOFILE [OR WE HAVE RECALL FILE THEN
4^NG THEN
5286 SETNCORE 2,3,CONBUFF,CSHOW
52MQ LDX 0 SCREEN(2)
537B STO 0 CSVID(3)
53M2 LDX 0 PAGE(2)
546L STO 0 CSPAG(3)
54L= LDX 1 CONSCNTRL
555W ADX 1 SCREEN(2)
55KG ADN 1 COVID
5656 LF 1,COSHOWS,0
56JQ ADN 0 1
574B LDN 1 64
57J2 IF 0,L,1 [IF FIELD WON'T OVERFLOW THEN
583L THEN
58H= CONSOUT 3 [CHAIN BLOCK, WAKE CONSA
592W LDX 3 CONSCNTRL
59GG ADX 3 SCREEN(2)
5=26 ADN 3 COVID
5=FQ INCF 3,COSHOWS [INCREASE RELEVANT 'SHOWS WANTED'
5=^B ELSE [ELSE (FIELD OVERFLOW)
5?F2 FREECORE 3 [FORGET IT
5?YL FI [FI FULL FIELD
5#D= FI [FI HAVE RECALL FILE
5#XW ADX 4 FX1
5*CG EXIT 4 0
5*X6 [
5BBQ [
5BWB [ WW WW W
5CB2 [ WW WW WW
5CTL [ WW WW WWW
5D*= [ WWWW WW
5DSW [ WWWW WW
5F#G [ WW WW WW
5FS6 [ WW WW WW
5G?Q [ WW WW WW
5GRB [
5H?2 SHOWCOMMK1 [SHOW COMMAND
5HQL [
5J== [
5JPW [ CHECK WE ARE IN DME AND HAVE A RECALL FILE SET UP
5K9G [
5KP6 JENVNOT ZWRONGENV,DME
5L8Q LDX 3 CONSCNTRL
5LNB JBS ZNOFILE,3,CONSNOFILE
5M82 [
5MML [
5N7= [ SCREEN PARAMETER
5NLW [
5P6G LDN 3 2
5PL6 CALL 4 SGETPAR
5Q5Q LDX 0 ANUM(3)
5QKB IF EITHER,0,NG [IF OMITTED OR NULL THEN
5R52 OR 0,ZE
5RJL THEN
5S4= LDN 7 1 [SUPPLY DEFAULT SCREEN (1)
5SHW ELSE [ELSE (SCREEN SPECIFIED)
5T3G CALL 4 SNUMCON [CONVERT TO BINARY
5TH6 LDN 0 CLUSTOPER+1
5W2Q LDX 7 ACOMMUNE1(2)
5WGB BXGE 7 0,ZTOOHIGH [ERROR IF TOO HIGH
5X22 FI [FI
5XFL MFREE CPB,CUNI
5X^= STO 7 SCREEN(2) [REMEMBER SCREEN
5YDW [
5YYG [
5^D6 [ PAGE PARAMETER
5^XQ [
62CB LDN 3 1
62X2 CALL 4 SGETPAR
63BL LDX 5 ANUM(3)
63W= IF 5,ZE [IF PARAM NULL THEN
64*W THEN
64TG NGN 5 1 [TREAT AS OMITTED
65*6 ELSF 5,PZ [ELSF GIVEN THEN
65SQ THEN
66#B ANDN 5 #7777 [ENSURE ONLY HAVE CHARACTER COUNT
66S2 FI [FI
67?L IF 5,PZ [IF ALPHA PARAM THEN
67R= LDCH 0 APARA(3)
68=W SBN 0 #41
68QG AND 0,PZ
69=6 SBN 0 #73-#41
69PQ AND 0,NG
6=9B THEN
6=P2 LDX 0 APARA(3) [CHECK PARAMETER ALLOWED
6?8L ANDX 0 HALFTOP
6?N= LDN 1 TABLE(1)
6#7W LDN 6 TEND-TABLE / 2
6#MG DO
6*76 BXE 0 PARAM(1),(1) [OBEY APPROP ROUTINE IF SO
6*LQ ADN 1 2
6B6B REPEAT CT 6
6BL2 BRN ZUNRECOG [ERROR IF ALPHA UNKNOWN
6C5L [****************
6CK= [
6D4W ELSE [ELSE (NUMBER GIVEN)
6DJG IF 5,PZ [IF PARAMETER GIVEN
6F46 LDCH 0 APARA(3)
6FHQ SBN 0 #40
6G3B AND 0,ZE [AND STARTS "@" THEN (ABSOLUTE)
6GH2 THEN
6H2L LDX 4 5
6HG= SBN 4 1
6H^W BZE 4 ZNULL [ERROR IF NO NUMBER FOLLOWS
6JFG LDN 0 APARA(3)
6J^6 BCHX 0 £
6KDQ LDN 1 APARA(3)
6KYB DSA 4 ANUM(3) [REDUCE COUNT IN CUNI
6LD2 SMO 4
6LXL MVCH 0 0 [OVERWRITE "@" WITH NUMBER
6MC= LDN 0 #20
6MWW DCH 0 0(1) [AND SPACEFILL FINAL CHAR
6NBG CALL 4 SNUMCON
6NW6 LDX 7 ACOMMUNE1(2) [GET ABSOLUTE PAGE NUMBER
6P*Q ELSE [ELSE (RELATIVE NUMBER)
6PTB IF 5,NG [IF NULL THEN
6Q*2 THEN
6QSL LDN 7 1 [SUPPLY DEFAULT PAGE (+1)
6R#= ELSE [ELSE (SPECIFIED)
6RRW MHUNT 3,CPB,CUNI
6S?G CALL 4 SNUMCON
6SR6 LDX 7 ACOMMUNE1(2) [GET SPECIFIED NUMBER
6T=Q FI [FI NULL/NOT
6TQB CALL 4 SMAKEABS [MAKE RELATIVE ABSOLUTE
6W=2 FI [FI ABSOLUTE
6WPL CALL 4 SINBOUNDS [ENSURE PAGE NUMBER IN BOUNDS
6X9= FI [FI "OLDEST"
6XNW RETURN
6Y8G MFREE CPB,CUNI
6YN6 STO 7 PAGE(2)
6^7Q CALL 4 SCHAINSHOW [CHAIN THE COMMAND FOR ACTIONING
6^MB ZENDCOMM
7272 ENDCOM
72LL ZWRONGENV
736= COMERR JENVMUSTBE,JENVDME
73KW ZUNRECOG
745G COMERR APFERR
74K6 ZMAINAUTO
754Q COMERR JMAINAUTO
75JB ZTOOHIGH
7642 COMERR JHIGHVID
76HL ZNULL
773= COMERR JNULLPAR
77GW ZNOFILE
782G COMERR CNORECALL1
78G6 [
78^Q [
79FB [ WW WW WWWWW
79^2 [ WW WW WW WW
7=DL [ WW WW WW
7=Y= [ WWWW WW
7?CW [ WWWW WW
7?XG [ WW WW WW
7#C6 [ WW WW WW
7#WQ [ WW WW WWWWWWW
7*BB [
7*W2 [
7B*L SHOWCOMMK2
7BT= [
7C#W [
7CSG [ SHOW -1,1 (PAGE REVERSE)
7D#6 [
7DRQ LDN 0 1
7F?B STO 0 SCREEN(2)
7FR2 NGN 7 1
7G=L CALL 4 SMAKEABS
7GQ= CALL 4 SINBOUNDS
7H9W STO 7 PAGE(2)
7HPG CALL 4 SCHAINSHOW
7J96 UP
7JNQ [
7K8B [
7KN2 [ WW WW WWWWW
7L7L [ WW WW WW WW
7LM= [ WW WW WW
7M6W [ WWWW WWWW
7MLG [ WWWW WW
7N66 [ WW WW WW
7NKQ [ WW WW WW WW
7P5B [ WW WW WWWWW
7PK2 [
7Q4L [
7QJ= SHOWCOMMK3
7R3W [
7RHG [
7S36 [ SHOW OFF,0 (NULL INPUT)
7SGQ [
7T2B LDN 0 0
7TG2 STO 0 PAGE(2)
7T^L STO 0 SCREEN(2)
7WF= CALL 4 SCHAINSHOW
7WYW UP
7XDG [
7XY6 [
7YCQ [ WW WW WW
7YXB [ WW WW WW
7^C2 [ WW WW WW
7^WL [ WWWW WW WW
82B= [ WWWW WWWWWWWWW
82TW [ WW WW WW
83*G [ WW WW WW
83T6 [ WW WW WW
84#Q [
84SB [
85#2 SHOWCOMMK4
85RL [
86?= [
86QW [ SHOW +1,1 (PAGE FORWARD)
87=G [
87Q6 LDN 0 1
889Q STO 0 SCREEN(2)
88PB LDN 7 1
8992 CALL 4 SMAKEABS
89NL CALL 4 SINBOUNDS
8=8= STO 7 PAGE(2)
8=MW CALL 4 SCHAINSHOW
8?7G UP
8?M6 [
8#6Q [
8#LB [ WW WW WWWWWWWW
8*62 [ WW WW WW
8*KL [ WW WW WWWWWW
8B5= [ WWWW WW
8BJW [ WWWWW WW
8C4G [ WW WW WW WW
8CJ6 [ WW WW WW WW
8D3Q [ WW WW WWWWW
8DHB [
8F32 [
8FGL SHOWCOMMK5
8G2= [
8GFW [
8G^G [ FORCEPAGE
8HF6 [
8HYQ JENVNOT ZWRONGENV,DME
8JDB SETUPCOR 0,3,CONBUFF,FORCE
8JY2 CONSOUT 3
8KCL ENDCOM
8KX= #END
^^^^ ...610464330001