Article View: bit.listserv.vm-util
Article #3785Re: Question about NUCXLOADing a program
From: Ken Hornstein
Date: Fri, 24 Jan 1992 19:35
Date: Fri, 24 Jan 1992 19:35
58 lines
3011 bytes
3011 bytes
In article <VM-UTIL%92012408292252@OHSTVMA.IRCC.OHIO-STATE.EDU>,
COTRSSM@SEA04VM.NAVSEA.NAVY.MIL (Scott (nmi) Mattes) says:
>
>since I don't find the explaination in the PofO or the other BAL book I have,
>and using RLDSAVE worked, could you or someone give a short description of
>ADCONs?
Surely ... if anyone out there can correct or add to what I say, feel free.
ADCON is short for "addressing constant". It's a symbol of the form:
A(LABEL) A(expression), etc ..
Typically used in DC statements and macro calls. The assembler stores the
offset of the adcon value in the text deck, and when you do a LOAD the loader
calculates the actual adcon value and fills it in. Thus, when you do a
GENMOD the adcon address is saved on disk as being calculated from the
address you did the load at (typically X'20000'). Thus, when you do a
NUCXLOAD, the program gets loaded in some location OTHER than the transient
area, but all the adcons point back to the transient area.
The RLDSAVE option on the load saves the relocation dictionary in the text
deck, and after loading NUCXLOAD will check for it, and if it finds one, it
will go through and fix all the adcon addresses to point to the correct
locations.
I find that in 370 coding, I can avoid the use of adcons pretty easily
(don't use a DC A(LABEL), use a LA and ST it when you need it). The
biggest problem lies in the use of system macros. Example:
WRTERM 'I love you'
Will produce the code:
BAL 1,somelabel
DC CL8'TYPLIN'
DC X'01',AL3(label2)
DC -- some more flags here that I forget --
label2 DC C'I love you'
Which will work fine normally, but when you NUCXLOAD this program without
the relocation area saved, the address for the TYPLIN data will point to
only God knows what :-)
Most of the newer system macros will take registers as arguments, so you
can get around this problem.
Oh, almost forgot ... you don't have to worry about this when you use a
non-relocatable adcon. ie - A(42) is non-relocatable, so you won't have
these problems. So is A(*-LABEL), A(2+3), etc ...
Hope this cleared some things up.
---
"I'll never understand women, but I'm willing to do the research"
- Duane Pennebaker
Ken Hornstein kxh105@psuvm.psu.edu Phone: 814/867-8002
Technical Details
Message-ID:
<92024.143512KXH105@psuvm.psu.edu>Path:
arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!paladin.american.edu!auvm!psuvm!kxh105References:
<VM-UTIL%92012408292252@OHSTVMA.IRCC.OHIO-STATE.EDU>Show Full Headers
Complete Article Headers
X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 10ab65,7d1fea8214c054da X-Google-Attributes: gid10ab65,public X-Google-ArrivalTime: 1992-01-24 12:15:16 PST Path: arc1-ca.pugleaf.net!sparky!uunet!europa.asd.contel.com!paladin.american.edu!auvm!psuvm!kxh105 Organization: HAM - Hackers Against MUDs X-Subliminal-Message: IBM/370 assembler is your friend. Date: Friday, 24 Jan 1992 14:35:11 EST From: Ken Hornstein <KXH105@psuvm.psu.edu> Message-ID: <92024.143512KXH105@psuvm.psu.edu> Newsgroups: bit.listserv.vm-util Subject: Re: Question about NUCXLOADing a program References: <VM-UTIL%92012408292252@OHSTVMA.IRCC.OHIO-STATE.EDU>