----------------------------------------------------------------------------------
@MSGID: <yubr0ntht3u.fsf@jpen.ca> 6abb902c
@REPLY: <20230823152214.5e86230e@laptop-sigfox>
7e3d4f30
@REPLYADDR Jerry Penner <jerry+a2@jpen.ca>
@REPLYTO 2:5075/128 Jerry Penner
@CHRS: CP866 2
@RFC: 1 0
@RFC-Message-ID: <yubr0ntht3u.fsf@jpen.ca>
@RFC-References: <20230822221945.4eb8a091@laptop-sigfox>
<yubzg2iicr9.fsf@jpen.ca><20230823082311.3dc76fb1@laptop-sigfox> 1@solani.org><20230823152214.5e86230e@laptop-sigfox>
@TZUTC: -0600
@PID: Gnus/5.13 (Gnus v5.13) Emacs/27.1
(gnu/linux)
@TID: FIDOGATE-5.12-ge4e8b94
Colin Leroy-Mira <
colin@colino.net> writes:
> Hi,
>
>> Oliver Schmidt <
ol.sc@web.de> wrote:
>>I - pretty strongly - disagree. What JSR does is an implementation
>>detail. What the documentation wants to express is that MLI returns 3
>>bytes "behind" what a "bare" JSR returns to. Putting a 6 there instead
>>of a 3 is plainly wrong.
>
> I see what you mean, but the original phrasing is confusing. It could
> be "the MLI returns 3 bytes behind than a normal JSR does, to the
> address of the JSR plus 6".
The P8 tech-ref states:
----------------------------------------
SYSCALL JSR MLI ;Call Command Dispatcher
DB CMDNUM ;This determines which call is being made
DW CMDLIST ;A two-byte pointer to the parameter list
BNE ERROR ;Error if nonzero
Upon completion of the call, the MLI returns to the address of the
JSR plus 3 (in the above example, the BNE statement); the call
number and parameter list pointer are skipped.
----------------------------------------
Where the CPU returns to is 6 bytes past the label SYSCALL, which is the
location of the "BNE ERROR" instruction.
I think I always read and understood the book the way I think Oliver
does, but I think the book`s address arithmetic is wrong, looking at it
now.
--
--
Jerry jerry+a2 at jpen.ca
--- Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux)
* Origin: A noiseless patient Spider (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5075/128
@PATH: 5075/128 5020/1042 4441