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