On Wed, 4 Nov 1998, Nestor Soriano wrote:
> 1) You call address #0005 or #F37D.
> 2) A routine on page 3 is jumped to. The number of the specified function
> is checked. If don't exists, nothing happens and function call ends (I
> don't remember if any error code is returned).
> 3) Any possible parameters passed in memory by the user (such filename
> strings) are copied to own buffer on page 3.
> 4) Paging state is saved.
> 5) MSX-DOS2 system segment is connected in page 0, and MSX-DOS2 data
> segment is connected in page 2. Maybe I'm wrong in the page numbers, but
> I'm almost sure it is correct.
> ************************************************************
> * 6) #F252 HOOK IS CALLED <------------ ATTACK POINT!!! *
> ************************************************************
> 6b) Normally, since RET is placed, nothing happens and execution continues.
> 7) Code in system segment for the specified function is executed. KERNEL in
> ROM is called if necessary.
> 8) User pages are restored and return data is placed in memory if necessary
> (for example when doing sector read).
> 9) That's all folks.
Wouldn't be easier to directly change (#0005) to where your routines are
and let them decide whether they take control of the scenario or better
call the old (#0005) pointer? I don't like to look so far yet, but I think
that would be easier.
> Of course there is necessary to develop a low-level sector access routines
> for accessing the whole device (and then FAT16 driver must handle the data
> read) and this is interface-dependant, but it can be solved with a
> standarized drivers system.
That's where I am right now... :)
****
MSX Mailinglist. To unsubscribe, send an email to [EMAIL PROTECTED] and put
in the body (not subject) "unsubscribe msx [EMAIL PROTECTED]" (without the
quotes :-) Problems? contact [EMAIL PROTECTED] (www.stack.nl/~wiebe/mailinglist/)
****