{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: IPMACROS)}}
====== IPMACROS ======
(George Source)
22FL [
22^= [ SUBFILE OWNER -- OWEN N. JOHN
23DW [
23YG [ SECTION -- :CENT
24D6 [
24XQ [ THIS MACROS SUBFILE CONTAINS ALL THE MACROS USED BY THE
25CB [ INSTALLATION PARAMETER CODE VIZ:-
25X2 [
26BL [
26W= [ 1( NEWINST SET UP PARAMINDEX AT EMS
27*W [
27TG [ 2( SETUPARA CHECKS PARAMINDEX AT EMS
28*6 [
28SQ [ 3( INSTPARA IMPLEMENTS THE IP COMMAND
29#B [
29S2 [
2=?L [ THE FOLLOWING MACROS ARE HEREIN CONTAINED :-
2=R= [
2?=W [
2?QG [ 1( INST - USED IN NEWINST TO CONSTRUCT PRAMINDEX
2#=6 [
2#PQ [ 2( IPCHANGE - USED AT REDTORE TIME TO ALTER THE DEFAULT
2*9B [ VALUED IN FIXED
2*P2 [
2B8L [ 3( TABRN - USED IN SETUPARA TO CONSTUCT A TABLE OF SPECIAL IP
2BN= [
2C7W [ 4( IPCONT - USED IN INSTPARA + INSTPARA TO CONVERT A
2CMG [ CONTEXT BIT PATTERN TO CHARACTER STRING
2CX# ...[ 5( IPINDEX - USED TO CHANGE THE DATA USED TO SET UP PARAMIN
2D76 [
2D8# ...[ 6( IPUSE - USED TO ALLOW NON-MACRO OPERATIONS TO BE PERFORMED
2D9G ...[ ON AN IP WHICH MAY BE IN THE EXTENSION TABLE
2D=N ...[
2D?W ...[ 7( IPUSEX - USED IN SETUPARA + INSTPARA AS FOR IPUSE BUT WITH
2D*4 ...[ AN ACCUMULATOR AS ONE OF THE PARAMETERS
2DB= ...[
2DCD ...[ 8( IPEXTST - TO DECLARE THE START OF THE IP EXTENSION TABLE
2DDL ...[
2DFS ...[ 9( IPEXTDEF - TO DECLARE AN IP IN THE EXTENSION TABLE
2DH2 ...[
2DJ8 ...[ 10( IPEXTEND - TO DECLARE THE END OF THE IP EXTENSION TABLE
2DKB ...[
2DLQ [
2DWJ ...[??? INST SECT CENT FGN 12 DOC
2F6B [
2FL2 [ MACRO INST
2G5L [
2GK= #MAC INST
2H4W 12H%A [WORD 0-2 IPNAME (PARAMETE NAME
2HJG +%B [ 3 IPMAX (MAX ALLOWED VA
2J46 +%C [ 4 IPMIN (MIN ALLOWED VA
2JHQ #40000000 [ 5 IPVAL (CURRENT VALUE
2JNY ...#STR %E
2JW6 ...#SKI
2K3B +%D-INSTPARAM [ 6 IPNUM (POSITION IN TA
2K8J ...#STR %E
2K*Q ... +%D [ 6 IPNUM (POSITION IN TA
2KH2 #NOR
2KQS ...[??? IPCHANGE SECT CENT FGN 12 DOC
2L2L [
2LG= [ MACRO IPCHANGE
2L^W [
2MFG #MAC IPCHANGE [OWEN N JOHN
2M^6 [ THIS MACRO REPACES THE DEFAULT VALUE OF IP %A BY %B.. IN FIXED
2N3P ...#UNS FSHTEST
2N6# ...#SKI
2N8X ... FSHSKIP B
2N?G ...(
2NB5 ...[ ALL DEFAULT VALUES ARE HELD ON MACHINE A ONLY
2NDQ #DEF 19?+3=1? [SAVE LISTING LEVEL
2NYB #LIS 0
2PD2 #STR %B
2PXL #STR
2Q=3 ...(
2QJD ...#LIS 19? + 3] [CORRECTS BUG 2142
2QWW #SKI K6INSTPARA>200-200
2RBG ...#CONSOLE NO 2ND PARAM TO %A - IPCHANGE IGNORED
2RW6 ...! NO 2ND PARAM TO %A - IGNORED
2S*Q #EXIT
2STB )
2SX^ ...#UNS IPEXTENSION+1*IPEXTENSION
2T2J ...#DEF 20?=1
2T57 ...#UNS IPEXTENSION+1*IPEXTENSION
2T7Q ...#SKI
2T=* ...#DEF 20?=0
2T*2 #ORD
2TSL #INT
2W#= XIPADD +DNEWINST [ADDR OF NEWINST ON B/S
2WRW XBUFF [LABEL THE FOLLOWING GAP
2WXR ...#SKI 20?
2X3N ...#GAP 700 [PLACE TO PUT TABLE IN CORE
2X7K ...#SKI 20?<1$1
2X?G #GAP 512 [PLACE TO PUT TABLE IN CORE
2XR6 XNAME 12H%A [PUT CHARS OF IP IN 3 WORDS
2XY# ...#SKI 20?
2Y5G ...XIPEXTTAB +IPEXTSTART [START ADDR OF IP EXTENSION TABLE
2Y=Q XLINK +0 [PLACE TO PUT LINK ADD.
2YQB [
2^=2 [ THIS INTERLUDE READS THE TABLE IN SEGMENT NEWINST LOCATES THE
2^PL [ FIXED CORE ADDRESS OF IP%A AND RETURNS WITH IT IN 19?+0
329= [
32NW [ COMPARISION IS BY CHARACTER STRINGS
338G [
33N6 [ 19?+1] IS SET AS WELL : = -1 IF IPNAME IS INVALID
347Q [
34MB [ = 0 IF ALL OKAY
3572 [
35LL [ = 1 IF NAME IS ONE OF MOP/JOB/MIN/OP-
366= [ TRACE OR CONTECT
36KW XSPEC +IMOPTRACE [THE FIXED CORE ADDR. OF THE SPECIAL
375G +IMINTRACE [ IP S
37K6 +IOPTRACE
384Q +ICONTEXT
38JB +JOBTRACE
3942 XNSPC +XNSPC-XSPEC [NO OF SPECIAL IP S
39HL MENT STO 0 XLINK [STORE LINK ADDRESS
3=3= LDN 2 512 [SIZE OF RECORD TO BE TRANSFERED
3=GW LDN 5 XBUFF [ADDR. OF RECORD IN CORE (HOPEFULLY)
3?2G LDX 6 XIPADD [ADD OF TABLE IN NEWINST
3?G6 CALL 0 18? + 2] + 3] [DO THE TRANSFER
3?HT ...#SKI 20?
3?KJ ...(
3?M? ... LDN 2 188 [SIZE OF REST OF RECORD TO BE READ
3?P2 ... LDN 5 XBUFF + 512 [RESET ADDR. OF RECORD IN CORE
3?QP ... LDX 6 XIPADD
3?SD ... ADN 6 512 [RESET ADDR. IN TABLE IN NEWINST
3?W7 ... CALL 0 18? + 2] + 3] [COMPLETE TRANSFER
3?XW ...)
3?^Q LDN 3 XBUFF+IPTABLE [RELOAD START OF TABLE IN CORE
3#5M ...#SKI 20?
3#9J ... LDX 5 IPHEAD-A1(3) [RECORD LENGTH
3#*F ...#SKI 20?<1$1
3#FB LDEX 5 IPHEAD-A1(3) [RECORD LENGTH
3#^2 ADX 5 3 [END OF TABLE
3*DL NGN 0 1
3*Y= SBN 3 IPLINE [AMMEND X3
3BCW STO 0 19?+1 [SET 19?+1 TO DEFAULT OF INVALID IP
3BXG SBN 5 2 [ACCOUNT FOR 1ST 2 WORDS
3CC6 LDX 6 XNAME [LOAD 1ST 4 CHARS OF IP
3CWQ MLOP ADN 3 IPLINE [START OF COMPARISION LOOP
3DBB BXGE 3 5,MENDA [JUMP IF WE HAVE HIT END OF TABLE
3DW2 BXU 6 IPNAME-A1(3),MLOP [TRY NEXT ONE IF NO MATCH
3F*L LDX 7 XNAME+1 [AND 2ND 4 CHARS
3FT= BXU 7 IPNAME-A1+1(3),MLOP
3G#W LDX 7 XNAME+2
3GSG BXU 7 IPNAME-A1+2(3),MLOP [3RD 4-CHARS
3H#6 [
3HRQ [ SO WE HAVE FOUND IT !!!
3J?B [
3JH8 ...#SKI 20?<1$1
3JR2 LDX 0 IPNUM - A1(3) [LOAD RELATIVE ADDR
3JSC ...#SKI 20?
3JTS ...(
3JX9 ... STOZ 19?+2 [INITIALISE INDICATOR OF IP TABLE
3JYL ... LDXC 0 IPNUM - A1(3) [LOAD RELATIVE ADDR
3K23 ... BCC MNOTEXT [J IF NOT EXTENSION TABLE IP
3K3D ... ADX 0 XIPEXTTAB [X0=FIXED CORE ADDR.
3K4T ... STO 0 19?+2 [INDICATE EXTENSION TABLE IP
3K6= ... BRN MSTORE [J TO STORE X0
3K7M ...MNOTEXT
3K94 ...)
3K=L ADN 0 INSTPARAM [X0= FIXED CORE ADDR.
3KGD ...MSTORE
3KQ= STO 0 19?+0 [STORE ADDR. FOR USE
3L9W STOZ 19? + 1 [INDICATE ALL OKAY
3LPG [
3M96 [ NOW TO TEST IF SPECIAL IP
3MNQ [
3N8B LDX 2 XNSPC [LOAD NO OF SPEC IP S
3NN2 MRTN BXE 0 XSPEC - 1(2),MSLP [JUMP IF ADDR MATCH IS MADE
3P7L BCT 2 MRTN [BACK AGAIN
3PM= BRN MENDA [IT WAS NOT A SPEC IP
3Q6W MSLP STO 2 19?+1 [RESET POINTER USING X2 AS NON-ZERO
3QLG [ IF A MATCH
3R66 MENDA LDX 0 XLINK [RESTORE LINK
3RKQ EXIT 0 0
3S5B #JUMP MENT [ENTER INTERLUDE
3SK2 #EXT
3T4L #SKI 19?+1]+1 [IF WE FAILED NO MORE TO DO
3TJ= (
3W3W #SKI K6INSTPARA>200-200
3WHG #CONSOLE %A ALTERED TO %B -SUCCESS
3X36 #DEF JCONTEXT0=0
3XGQ #DEF JCONTEXT=0
3Y2B #LIS 19?+3] [REASSIGN LISTING LEVEL
3Y45 ...#SKI 20?
3Y5S ...(
3Y7H ...#SKI 19?+2]
3Y9= ...#MEND CEND [EXTENSION TABLE IN CEND
3Y=^ ...#SKI 19?+2]<1$1
3Y#N ...#MEND FIXED [ORDINARY IP TABLE IN FIXED
3YBC ...)
3YD6 ...#SKI 20?<1$1
3YG2 #MEND FIXED [TO PUT DEFAULT IN FIXED
3Y^L #DEF UNSET=#40000000
3^F= #TRA 19?+0] [FIND CORRECT ADDR
3^YW #SKI 19?+1] [CHECK TYPE OF IP
42DG (
42Y6 [ IT IS OF TYPE CONTEXT OR MOP/MIN/JOB/OP TRACE
43CQ #STR %A,CONTEXT
43XB ( [IT IS TYPE TRACE
44C2 CATMASK %B,%C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T,-
44WL %U,%V,%W,
45B= #END
45TW #EXIT
46*G ) [TYPE CONT EXT
46T6 +JCONTEXT%B+JCONTEXT%C+JCONTEXT%D+JCONTEXT%E
47#Q #END
47SB #EXIT
48#2 ) [NORMAL
48RL +%B
49?= #END
49QW #EXIT
4=5? ...)
4=CN ...#LIS 19? + 3] [CORRECTS BUG 2142
4=Q6 #SKI K6INSTPARA>200-200
4?9Q #CONSOLE ERROR IN %A - NOT RECOGNISED
4?PB ...! IP NAME %A IS INVALID
4#92 !0
4#=Y ...#FREE XIPEXT
4##W ...)
4#BS ...#UNS FSHTEST
4#DQ ...#SKI
4#GN ... FSHSKIP B
4#JL ...#SKI
4#K? ...(
4#KY ...#SKI K6INSTPARA>200-200
4#LK ...#CONSOLE IP VALUES MAY ONLY BE CHANGED IN MACHINE A COMPILATIONS
4#M= ...! IPCHANGE NOT ALLOWED IN M/C B
4#MX ...)
4#NL #NOR
4#YD ...[??? TABRN SECT CENT FGN 12 DOC
4*8= [
4*MW [ MACRO TABRN
4B7G [
4BM6 #MAC TABRN [TO SET UP SPEC IP TABLE IN SETUPARA
4BP* ...#UNS %A
4BRJ ...#SKI
4BTR ... +%A [GIVES REL ADDR IN EXTENSION TABLE
4BY2 ...#UNS %A
4C29 ...(
4C4D ...#SKI %A<1$1
4C6Q +%A - INSTPARAM [GIVES REL FIXED CORE ADDR
4C=M ...#SKI %A
4CBJ ... +%A [GIVES REL ADDR IN EXTENSION TABLE
4CGF ...)
4CLB BRN %B [ADDR OF RELAVENT CODING
4D62 #NOR
4D*S ...[??? IPINDEX SECT CENT FGN 12 DOC
4DKL [
4F5= [ MACRO IPCONT
4FJW [
4G4G [
4GJ6 [ AT PRESENT IN :CENT.MACROS RJH
4H3Q [ WAITING SIB TO QUALIFY THE RULES
4H3T ...#MAC IPINDEX [OWEN N JOHN
4H3Y ...#DEF 19?+3=1? [SAVE LISTING LEVEL
4H43 ...#LIS 0
4H46 ...#ORD
4H49 ...#INT
4H4# ...XIPADD +DNEWINST [ADDR OF NEWINST ON B/S
4H4C ...XBUFF [LABEL THE FOLLOWING GAP
4H4G ...#GAP 512 [PLACE TO PUT TABLE IN CORE
4H4K ...XNAME 12H%A [PUT CHARS OF IP IN 3 WORDS
4H4N ...XLINK +0 [PLACE TO PUT LINK ADD.
4H4R ...[
4H4W ...[ THIS INTERLUDE READS THE TABLE IN SEGMENT NEWINST LOCATES THE
4H4^ ...[ FIXED CORE ADDRESS OF IP%A AND RETURNS WITH IT IN 19?+0
4H54 ...[
4H57 ...[ COMPARISION IS BY CHARACTER STRINGS
4H5= ...[
4H5* ...[ 19?+1] IS SET AS WELL : = -1 IF IPNAME IS INVALID
4H5D ...[
4H5H ...[ = 0 IF ALL OKAY
4H5L ...[
4H5P ...[ = 1 IF NAME IS ONE OF MOP/JOB/MIN/OP-
4H5S ...[ TRACE OR CONTECT
4H5X ...XSPEC +IMOPTRACE [THE FIXED CORE ADDR. OF THE SPECIAL
4H62 ... +IMINTRACE [ IP S
4H65 ... +IOPTRACE
4H68 ... +ICONTEXT
4H6? ... +JOBTRACE
4H6B ...XNSPC +XNSPC-XSPEC [NO OF SPECIAL IP S
4H6F ...MENT STO 0 XLINK [STORE LINK ADDRESS
4H6J ... LDN 2 512 [SIZE OF RECORD TO BE TRANSFERED
4H6M ... LDN 5 XBUFF [ADDR. OF RECORD IN CORE (HOPEFULLY)
4H6Q ... LDX 6 XIPADD [ADD OF TABLE IN NEWINST
4H6T ... CALL 0 18? + 2] + 3] [DO THE TRANSFER
4H6Y ... LDN 3 XBUFF+IPTABLE [RELOAD START OF TABLE IN CORE
4H73 ... LDEX 5 IPHEAD-A1(3) [RECORD LENGTH
4H76 ... ADX 5 3 [END OF TABLE
4H79 ... NGN 0 1
4H7# ... SBN 3 IPLINE [AMMEND X3
4H7C ... STO 0 19?+1 [SET 19?+1 TO DEFAULT OF INVALID IP
4H7G ... SBN 5 2 [ACCOUNT FOR 1ST 2 WORDS
4H7K ... LDX 6 XNAME [LOAD 1ST 4 CHARS OF IP
4H7N ...MLOP ADN 3 IPLINE [START OF COMPARISION LOOP
4H7R ... BXGE 3 5,MENDA [JUMP IF WE HAVE HIT END OF TABLE
4H7W ... BXU 6 IPNAME-A1(3),MLOP [TRY NEXT ONE IF NO MATCH
4H7^ ... LDX 7 XNAME+1 [AND 2ND 4 CHARS
4H84 ... BXU 7 IPNAME-A1+1(3),MLOP
4H87 ... LDX 7 XNAME+2
4H8= ... BXU 7 IPNAME-A1+2(3),MLOP [3RD 4-CHARS
4H8* ...[
4H8D ...[ SO WE HAVE FOUND IT !!!
4H8H ...[
4H8L ... LDX 0 IPNUM - A1(3) [LOAD RELATIVE ADDR
4H8P ... ADN 0 INSTPARAM [X0= FIXED CORE ADDR.
4H8S ... STO 0 19?+0 [STORE ADDR. FOR USE
4H8X ... STOZ 19? + 1 [INDICATE ALL OKAY
4H92 ... SBN 3 XBUFF
4H95 ... STO 3 19?+4
4H98 ...[
4H9? ...[ NOW TO TEST IF SPECIAL IP
4H9B ...[
4H9F ... LDX 2 XNSPC [LOAD NO OF SPEC IP S
4H9J ...MRTN BXE 0 XSPEC - 1(2),MSLP [JUMP IF ADDR MATCH IS MADE
4H9M ... BCT 2 MRTN [BACK AGAIN
4H9Q ... BRN MENDA [IT WAS NOT A SPEC IP
4H9T ...MSLP STO 2 19?+1 [RESET POINTER USING X2 AS NON-ZERO
4H9Y ... [ IF A MATCH
4H=3 ...MENDA LDX 0 XLINK [RESTORE LINK
4H=6 ... EXIT 0 0
4H=9 ...#JUMP MENT [ENTER INTERLUDE
4H=# ...#EXT
4H=C ...#LIS 19?+3]
4H=G ...#SKI 19?+1]+1<1$1
4H=K ...(
4H=N ...! ERROR IN IPINDEX - %A NOT RECOGNISED
4H=R ...#EXI
4H=W ...)
4H=^ ...#MEN NEWINST
4H?4 ...#OPT JCONTEXT=0
4H?7 ...#OPT JCONTEXT0=0
4H?= ...#STR MAX=,%B
4H?* ...(
4H?D ...#STR MIN=,%B
4H?H ...(
4H?L ...#STR NAM=,%B
4H?P ...(
4H?S ...#STR %D
4H?X ...(
4H#2 ...#SKI 19?+1]
4H#5 ...(
4H#8 ...! NAME OF THIS IP MAY NOT BE CHANGED
4H#? ...)
4H#B ...#SKI 19?+1]<1$1
4H#F ...(
4H#J ...#TRA 19?+4]+IPNAME-A1
4H#M ... 12H%D
4H#Q ...)
4H#T ...)
4H#Y ...#STR %B
4H*3 ...(
4H*6 ...#TRA 19?+4]+IPMAX-A1
4H*9 ... +%B
4H*# ...)
4H*C ...#STR %C
4H*G ...(
4H*K ...#TRA 19?+4]+IPMIN-A1
4H*N ... +%C
4H*R ...)
4H*W ...#END
4H*^ ...#EXI
4HB4 ...)
4HB7 ...#SKI 19?+1]
4HB= ...(
4HB* ...#END
4HBD ...! NAME OF THIS IP MAY NOT BE CHANGED
4HBH ...#EXI
4HBL ...)
4HBP ...#TRA 19?+4]+IPNAME-A1
4HBS ... 12H%C
4HBX ...#END
4HC2 ...#EXI
4HC5 ...)
4HC8 ...#TRA 19?+4]+IPMIN-A1
4HC? ...)
4HCB ...#STR MIN=,%B
4HCF ...(
4HCJ ...#TRA 19?+4]+IPMAX-A1
4HCM ...)
4HCQ ...#SKI 19?+1]
4HCT ...(
4HCY ...#STR %A,CONTEXT
4HD3 ...(
4HD6 ... CATMASK %C,%D,%E,%F,%G,%H,%I,%J,%K,%L,%M,%N,%O,%P,%Q,%R,%S,%T-
4HD9 ...,%U,%V,%W,%X,
4HD# ...#END
4HDC ...#EXI
4HDG ...)
4HDK ... +JCONTEXT%C+JCONTEXT%D+JCONTEXT%E
4HDN ...#END
4HDR ...#EXI
4HDW ...)
4HD^ ... +%C
4HF4 ...#END
4HF7 ...#NOR
4HF8 ...[??? IPUSE SECT CENT FGN 12 DOC
4HF9 ...[
4HF= ...[ IPUSE
4HF? ...[
4HF# ...#MAC IPUSE
4HYY ...#UNS %B
4JDJ ...#SKI
4JY8 ...(
4KCS ... SMO IPEXTTAB
4KXD ... %A %B
4LC4 ...)
4LWN ...#UNS %B
4MB# ...(
4MTY ...#SKI %B<1$1
4N*J ... %A %B
4NT8 ...#SKI %B
4P#S ...(
4PSD ... SMO IPEXTTAB
4Q#4 ... %A %B
4QRN ...)
4R?# ...)
4RQY ...#NOR
4S=J ...[??? IPUSEX SECT CENT FGN 12 DOC
4SQ8 ...[
4T9S ...[ IPUSEX
4TPD ...[
4W94 ...#MAC IPUSEX
4WNN ... BNG %B MIPUSE1
4X8# ... MOD %A INSTPARAM,%B
4XMY ... BRN MIPUSE2
4Y7J ...MIPUSE1
4YM8 ...#MOD %B
4^6S ...#SKI
4^LD ...(
5264 ... SMO IPEXTTAB
52KN ... %A 0(%B)
535# ...)
53JY ...#MOD %B
544J ...(
54J8 ... ADX %B IPEXTTAB
553S ... SMO %B
55HD ... %A 0
5634 ... SBX %B IPEXTTAB
56GN ...)
572# ...MIPUSE2
57FY ...#NOR
57^J ...[??? IPEXTST SECT CENT FGN 12 DOC
58F8 ...[
58YS ...[ IPEXTST
59DD ...[
59Y4 ...#MAC IPEXTST
5=CN ... FCMEND
5=X# ...#DEF IPEXTSTART=0?+37?
5?BY ...#NOR
5?WJ ...[??? IPEXTDEF SECT CENT FGN 12 DOC
5#B8 ...[
5#TS ...[ IPEXTDEF
5**D ...[
5*T4 ...#MAC IPEXTDEF
5B#N ...#DEF %A=0?+37?-IPEXTSTART^#40000000
5BS# ... +%B
5C?Y ...#NOR
5CRJ ...[??? IPEXTEND SECT CENT FGN 12 DOC
5D?8 ...[
5DQS ...[ IPEXTEND
5F=D ...[
5FQ4 ...#MAC IPEXTEND
5G9N ...#DEF IPEXTSIZE=0?+37?-IPEXTSTART
5GP# ... FCEND
5H8Y ...#MEN CONSTANT
5HNJ ...#TRA IPEXTTAB
5J88 ... +IPEXTSTART
5JMS ... +IPEXTSIZE
5K7D ...#END
5KM4 ...#NOR
5L6N ...[
^^^^ ...06273011004100000000