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 callin: 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/