{{htmlmetatags>metatag-description:(ICL George 3 and George 4 GIN macro: IPCHANGE)}}
====== IPCHANGE ======
(GIN Macro)
**Defined in:** [[george:source:IPMACROS|IPMACROS]]
**Used in:**
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