[Info-vax] Possible VMS jobs - City of New York Fire Dept

Dave Froble davef at tsoft-inc.com
Mon Oct 28 15:51:19 EDT 2019


On 10/28/2019 1:20 PM, John Reagan wrote:
> On Monday, October 28, 2019 at 11:53:54 AM UTC-4, Dave Froble wrote:
>> On 10/28/2019 12:27 PM, VAXman- at SendSpamHere.ORG wrote:
>>> In article <qp5jln$4j2$1 at dont-email.me>, Dave Froble <davef at tsoft-inc.com> writes:
>>>> On 10/27/2019 11:13 AM, VAXman- at SendSpamHere.ORG wrote:
>>>>> In article <qp2ng8$ro7$1 at dont-email.me>, Dave Froble <davef at tsoft-inc.com> writes:
>>>>>> On 10/26/2019 6:26 PM, Michael Moroney wrote:
>>>>>>
>>>>>>> Port VMS code from VAX to Itanium, just recompile and relink, right? HAHAHA,
>>>>>>
>>>>>> Well, for some it was just that simple, or at least not too bad.
>>>>>>
>>>>>> The biggest problem we ran into is that on VAX we were incrementing the
>>>>>> AP as we read the arguments.  Macro-32 compiler didn't like that.  The
>>>>>> fix was rather simple.
>>>>>
>>>>> Home the arguments.
>>>>>
>>>>
>>>> Sorry, don't understand that ..
>>>
>>> Perhaps, an example...
>>>
>>> 	.TITLE	INCREMENT_AP_TEST
>>>
>>> 	.PSECT	DATA,WRT,NOEXE,5
>>> ONE:	.ASCID	"ONE"
>>> 	.ALIGN	QUAD
>>> TWO:	.ASCID	"TWO"
>>> 	.ALIGN	QUAD
>>> THREE:	.ASCID	"THREE"
>>> 	.ALIGN	QUAD
>>> FOUR:	.ASCID	"FOUR"
>>> 	.ALIGN	QUAD
>>> FIVE:	.ASCID	"FIVE"
>>> 	.ALIGN	QUAD
>>> SIX:	.ASCID	"SIX"
>>> 	.ALIGN	QUAD
>>> SEVEN:	.ASCID	"SEVEN"
>>> 	.ALIGN	QUAD
>>> EIGHT:	.ASCID	"EIGHT"
>>> 	.ALIGN	QUAD
>>> NINE:	.ASCID	"NINE"
>>> 	.ALIGN	QUAD
>>> TEN:	.ASCID	"TEN"
>>>
>>> 	.PSECT	CODE,NOWRT,EXE,5
>>> 	.ENTRY	GO,0
>>>
>>> 	PUSHAL	ONE
>>> 	PUSHAL	TWO
>>> 	PUSHAL	THREE
>>> 	PUSHAL	FOUR
>>> 	PUSHAL	FIVE
>>> 	PUSHAL	SIX
>>> 	PUSHAL	SEVEN
>>> 	PUSHAL	EIGHT
>>> 	PUSHAL	NINE
>>> 	PUSHAL	TEN
>>> 	CALLS	#10,OUTPUT
>>> 	RET
>>> 	.END	GO
>>>
>>> 	.TITLE	INCREMENT_AP_EXAMPLE
>>>
>>> 	.PSECT	CODE,NOWRT,EXE,5
>>> 	.CALL_ENTRY	HOME_ARGS=TRUE,LABEL=OUTPUT,MAX_ARGS=15
>>>
>>> 	MOVAL	(AP),R12
>>> 	JSB	100$
>>> 	RET
>>>
>>> 100$:	.JSB_ENTRY	
>>> 	PUSHL	R2
>>> 	MOVL	(AP)+,R2
>>> 200$:	PUSHL	(AP)+
>>> 	CALLS	#1,G^LIB$PUT_OUTPUT
>>> 	SOBGTR	R2,200$
>>> 	POPL	R2
>>> 	RSB
>>> 	.END
>>>
>>
>> Ok, I see.
>>
>> Please take no offense Brian, but it's "fancy" stuff like that I try to
>> avoid.
>>
>> We had:
>>
>>          TSTL    (AP)+                   ; Skip argument count
>>          MOVL    @(AP)+,R2               ; Channel number
>>          MOVL    (AP)+,R3                ; Address of desc. of file spec.
>>          MOVL    @(AP)+,R4               ; MBC
>>          MOVL    @(AP)+,R5               ; Open mode
>>
>> And modified to:
>>
>>          MOVL    @4(AP),R2               ; Channel number
>>          MOVL    8(AP),R3                ; Address of desc. of file spec.
>>          MOVL    @12(AP),R4              ; MBC
>>          MOVL    @16(AP),R5              ; Open mode
>>
>> My Macro-32 has always been as simple and straight forward as I could
>> keep it.  Might keep John happy.
>>
>> KISS principal.
>>
>> --
>> David Froble                       Tel: 724-529-0450
>> Dave Froble Enterprises, Inc.      E-Mail: davef at tsoft-inc.com
>> DFE Ultralights, Inc.
>> 170 Grimplin Road
>> Vanderbilt, PA  15486
>
> Uh, the AMACRO/IMACRO compilers handles that code.  It does tell you that we really aren't incrementing the real AP register (since there really isn't one) but the generated code should work.  However, I do prefer the non-autoinc version
>
> $ type incr_ap.mar
> jrr::   .call_entry
>          TSTL    (AP)+                   ; Skip argument count
>          MOVL    @(AP)+,R2               ; Channel number
>          MOVL    (AP)+,R3                ; Address of desc. of file spec.
>          MOVL    @(AP)+,R4               ; MBC
>          MOVL    @(AP)+,R5               ; Open mode
>          ret
>         .end
> $ macro incr_ap.mar
>
>          TSTL    (AP)+                   ; Skip argument count
> ^
> %AMAC-I-APTEMPUSE, AP used as a temporary register is converted to R12 in routine JRR
> at line number 2 in file WORK20:[JREAGAN.XMACRO]INCR_AP.MAR;1
>

What else we did was use the incremented AP to point to the last 
argument, not in my example, which was the address of the completion 
code, a word integer.  I don't think that worked, or, we just chose to 
avoid any warnings.

Our second try is much more specific, direct, and understandable.

-- 
David Froble                       Tel: 724-529-0450
Dave Froble Enterprises, Inc.      E-Mail: davef at tsoft-inc.com
DFE Ultralights, Inc.
170 Grimplin Road
Vanderbilt, PA  15486



More information about the Info-vax mailing list