Name of MCODE 3-word page gosub and gotos
01-27-2018, 06:40 PM
Post: #1
 hth Member Posts: 290 Joined: Mar 2014
Name of MCODE 3-word page gosub and gotos
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.

Håkan
01-27-2018, 09:05 PM
Post: #2
 hth Member Posts: 290 Joined: Mar 2014
RE: Name of MCODE 3-word page gosub and gotos
(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):
Code:
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

Ciao.....Mike

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.

Håkan
01-27-2018, 10:17 PM
Post: #3
 hth Member Posts: 290 Joined: Mar 2014
RE: Name of MCODE 3-word page gosub and gotos
(01-27-2018 09:25 PM)Mike (Stgt) Wrote:  Yes, it's quad-related. But a sibling with no name?
/M.

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?

Håkan
01-28-2018, 05:34 PM
Post: #4
 Ángel Martin Senior Member Posts: 1,032 Joined: Dec 2013
RE: Name of MCODE 3-word page gosub and gotos
Are these the PORT_DEP/XQ and PORT_DEP/GO ?

so you're looking for names in each of the four quads for them?
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)