Murklesoft
Software for Windows and RISC
OS
| Home Software for Windows Cabriolet Dynamic Geometry Pairs Tsunami/Griddler Solver Software for RISC OS Cabriolet Dynamic Geometry 6502Em Iyonix History KeyLayout Keys Menus Opcode07 RipDFSDisc ROMs Scripts Snapshots Superior Technical Trouble VirtualDFS Z80Em WinClip Minesweep Miscellaneous Software for Linux Cabriolet Dynamic Geometry Software for Newton Cabriolet Dynamic Geometry Pricelist Contact Links |
6502Em
An interface has been added to allow 6502 paged ROM images to be developed which make access to RISC OS SWIs. The SWI is called by executing a previously undefined 6502 opcode. NB This will not work in the main memory, only in a paged ROM NB2 This is the same protocol that !65Host uses to issue SWIs 6502 Opcode &07 - Issue SWI call
in: XY (X lo-byte, Y hi-byte) points to control block (cb)
cb?0..2 = SWI number (lo..hi) (bit 17 set => return errors with V set)
cb?3 = number of registers to put back into block on exit, starting at R0
cb?4 = bit set of registers to relocate on entry to SWI
(bit n set => relocate Rn from 6502 to ARM address space)
cb?5 = bit set of registers to unrelocate on exit from SWI
(bit n set => unrelocate Rn from ARM to 6502 address space)
cb?6,7 = address (lo,hi) of error buffer (in 6502 space)
only relevant if bit 17 of SWI number set
cb?8 = length of error buffer (can be zero)
cb!9 = register R0
cb!13 = register R1
..
cb!37 = register R7
out: A,X,Y preserved
N,Z,C,V as returned by the ARM on exit from the SWI
Some or all of the register block is updated with the
values on exit (possibly relocated), as controlled by cb?3,4,5
If bit 17 of the SWI number was clear, and an error occurs, then
control will not returned to the 6502 code - instead the error
block is copied to &100 in 6502 format (ie zero byte, 1 byte error
number, followed by zero terminated error string) and then it jumps
to &100, which causes a BRK. If no error occurred, control will be
returned and V will be clear.
If bit 17 of the SWI number was set, then the X form of the SWI
is issued; if this returns with V set, then the error block is
copied into the specified error buffer in 6502 format, truncated
to the length of the error buffer (if truncated the terminating
zero will be in the last byte of the error buffer).
|
______________________________________________________
Murklesoft:
Software for Windows and RISC OS
www.borcherds.co.uk/murklesoft/