View Single Post
Old 18 September 2014, 17:23   #39
gulliver
BoingBagged
 
gulliver's Avatar
 
Join Date: Aug 2007
Location: The South of nowhere
Age: 46
Posts: 2,358
Quote:
Originally Posted by meynaf View Post
This, of course, won't tell me what that trap #15 was supposed to be doing...
Okay, here you have a reference for X68000 traps. Explanations are in japanese, but can be translated with google (with not so much language correctness):

http://datacrystal.romhacking.net/wiki/X68k:TRAP

Speaking about trap #15, it is an IOCS (X68000 bios) call.

Poor translation follows:

Argument d0.b IOCS call number

. Running to run the IOCS, and IOCS code in one word from the IOCS work $ a0e
(High byte always 0) by Le number is saved.
Arguments and return value other than d0.b differ by call number.

To speed up the IOCS call, call shortcuts in such a way that the following
To perform. However, it must be in supervisor state.

movea.l (IOCS call number * 4 + $ 400), a0
jsr (a0)

To create as a subroutine to return in rts Each function of IOCS.
no problem even if destroyed a0.l but when viewed from the (user, when you shortcut
Not guaranteed to be saved), do not destroy For the registers that do not pass the return value of the other
Thing.

How to respond to the vector base register vbr

It is possible to enable the vbr In (ROM IOCS version 1.3) X68030.
On it was confirmed that it is a standard vector that points to the ROM, the vector of the following, it
It may be changed to a value obtained by subtracting 2 from the set address of each. However, some
It is not possible to correspond to those calling the routine directly ROM within IOCS call.

(IOCS processing address table is also changed to vbr + $ 400) trap # 15
IOCS _FNTGET
IOCS _OPMINTST
IOCS _TIMERDST
IOCS _VDISPST
IOCS _CRTCRAS
IOCS _HSYNCST
IOCS _PRNINTST
IOCS _B_INTVCS
gulliver is offline  
 
Page generated in 0.05627 seconds with 11 queries