IPCHANGE
(GIN Macro)
Defined in: IPMACROS
Used in:
- IPCHANGE.mac.txt
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