HP Forums

Full Version: Name of MCODE 3-word page gosub and gotos
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I consider changing the names of the 3-word page relocatable gosub and goto pseudo instructions in my assembler. As far as I know, these were never named by HP or JDA.

Under the hood they are implemented by a GOSUB to a routine in the mainframe followed by a 10-bit word and the routine combines that data word with the page of the return address to become the destination address.

Long time ago (30+ years) I picked the names RXQ (page Relocatable eXeQute) and RGO, and that was at a time when I was using JDA.

Now I am not all that happy about the names as the 'R' makes me think of relative branches. Then the XQ and GO is a JDA jargon, which does not really match HP instructions.

So for JDA I consider PXQ and PGO (possibly PRXQ and PRGO, or swapping the order XQP or XQPR).

HP likes to use GOSUB which they shorten to GSB and sometimes GSUB (which I do not fancy as it only saves a character and is too similar to GOSUB). As HP labels tends to put the GSB first, I am thinking about GSBP and GOLP (for gosub and go long page).

In summary, I call them RXQ/RGO at the moment.
For JDA I consider PXQ/PGO.
For HP I consider GSBP/GOLP.

I welcome opinions on this and information about existing naming schemes.

(01-27-2018 08:10 PM)Mike (Stgt) Wrote: [ -> ]Do you also consider to name the 2-word relocatable XQ?
Excerpt from a ZENROM disassembler listing (I added the label):
B428 08E N          
B429 012 R          
B42A 3E9 *          
B42B 08C NCXQ   23FA [=GSB000]
Independent of the page p this first XQ of RN is actually a NCXQ p400


No, I consider them different matters.

The issue is that the 3 word XQ/GO need to have bits (of all 3 words) adjusted in the linker. For the ones you mention, they are always the same opcode bits, no matter if you pick GSB000, GSB256 or one the other two.

For these my idea is that you align a section at 256 and then make a GOSUB GSB256 (any of the labels work the same) and go back to the aligned label. That way you avoid a filler NOP and can ensure that it happens every time. I use this technique in Ladybug.

By the way, they are about the quad, not the page.. Wink

(01-27-2018 09:25 PM)Mike (Stgt) Wrote: [ -> ]Yes, it's quad-related. But a sibling with no name?

I suppose the linker could verify that they are used correctly, and a pseudo instruction could be a way of doing that. GSB256 could be the name of the instruction, should it be called XQ256 in JDA?

Are these the PORT_DEP/XQ and PORT_DEP/GO ?

so you're looking for names in each of the four quads for them?
Reference URL's