On 08/06/2018 12:20, gdgqler--- via Ql-Users wrote:
On 14 Feb 2018, at 13:49, pjwitte via Ql-Users <ql-users@lists.q-v-d.com> wrote:

|In later versions of the QDOS and SMSQ/E Reference Manual the documentation on 
QA.RESRI (aka bv.chrix), to test or stretch the arithmetic stack states:

Vector $11A Reserve Room on Arithmetic Stack QA.RESRI
Call parameters                         Return parameters
D1.L Number of bytes required          D1 ???
D2                                     D2.L ???
D3                                     D3.L ???
A0                                     A0 Preserved
A1 Pointer to RI stack (rel. A6)       A1 ???
A2                                     A2 Preserved
A3                                     A3 Preserved
Error returns:
IMEM out of memory [SMSQ]
none [QDOS]

This is strongly suspected to be incorrect. It should say the following (two 
corrections):

||Vector $11A Reserve Room on Arithmetic Stack QA.RESRI
Call parameters                         Return parameters
D1.L Number of bytes required          D1 ???
D2                                     D2.L ???
D3                                     D3.L ???
A0                                     A0 Preserved
A1                                     A1 ???
A2                                     A2 Preserved
A3                                     A3 Preserved
Error returns: none
D0 returns the error code under SMSQ but is corrupted under QDOS
It appears that, on an error, QDOS doesnt return here at all!
Under SMSQ/E it may return an error (IMEM), but the error code is not always set! That implies that you could get a wrong result, depending on what was in D0 before the call.

To my mind, SMSQ/E should behave the same way as QDOS in this instance, as many old toolkits will not test the error code, assuming that if the call returns, it implies there was no error. In other words, IMHO,  SMSQ/E's behaviour here is a  BUG.

Per

_______________________________________________
QL-Users Mailing List

Reply via email to