| www.retrosoftware.co.uk http://www.retrosoftware.co.uk/forum/ |
|
| A pair of ROMs - at last! http://www.retrosoftware.co.uk/forum/viewtopic.php?f=73&t=710 |
Page 1 of 1 |
| Author: | MartinP [ Thu Nov 24, 2011 1:14 am ] |
| Post subject: | A pair of ROMs - at last! |
OK - after a *lot* of effort, I have now got a pair of ROMs "completed". "MUTILS" is a ROM I've been working on (more off than on "MRFS-EC" is an RFS ROM; I wanted an easy, permanent way of storing a collection of "ELITE" save-files ("Commander" files) and utilities, without having to rely on remembering which floppy disc I needed... hence this. Enjoy! Any questions and/or comments, please get in touch. --Martin (EDIT: Updated versions of these ROMs have been made available in a follow-up to this article - check later in this thread.) |
|
| Author: | jgharston [ Sun Nov 27, 2011 11:52 am ] |
| Post subject: | Re: A pair of ROMs - at last! |
Some notes: Quote: *CIMPLODE No, should just return silently.... generates an error on the BBC Master series. *CEXPLODE ...generates an error on the BBC Master series. Quote: 58 ("&3A") You mean "OSWORD &05", "OSWORD &06", "OSWORD &3A", "OSWORD &3B", "OSWORD &3F". Also, check you're not clashing with other OSBYTE/OSWORDs, check the lists at http://beebwiki.jonripley.com/OSWORDs and http://beebwiki.jonripley.com/OSBYTEs and propose any new allocations on the Discussion pages and the BBC-Micro mailing list.Read a byte from memory (intended as an alternative to "OSBYTE &05"). 59 ("&3B") Write a byte to memory (intended as an alternative to "OSBYTE &06"). (NOTE: This uses the "OSBYTE &3A" code for reading memory - see the details above for more information.) The "32-bit logical address" system used by "OSBYTE &3A", "OSBYTE &3B" and "OSBYTE &3F" Quote: &FFEn8000 - &FFEnCFFF Sideways ROM/RAM ("n" = Sideways ROM/RAM #) It would be preferable if you used &FFFRxxxx for sideways ROM addresses to be consistant with everybody else: http://mdfs.net/Docs/Comp/BBC/MemAddrsQuote: As I've run into difficulty calling "OSBYTE" from within these routines ...it looks more like the MOS "OSBYTE" and "OSWORD" handlers aren't re-entrant... Correct, they aren't, you have to save and restore the parameter data at &EF,&F0,&F1 around calling OSBYTE/OSWORD from within an OSBYTE/OSWORD routine.Quote: I'll look to do this coding for a future release I'll have a quick look at the code, see if any other gotchas jump out and give you any pointers.Also, on the subject of assembling large amounts of code (eg sideways ROM images), I wrote *Assem years ago to do just that, it assembles from files on disk using the BASIC assembler. It needs documenting a bit better, but it lets me write multiple-file BASIC source like this. |
|
| Author: | MartinP [ Sun Nov 27, 2011 3:11 pm ] |
| Post subject: | Re: A pair of ROMs - at last! |
jgharston wrote: Some notes: OK - obvious to me, now that you've mentioned it.Quote: *CIMPLODE No, should just return silently.... generates an error on the BBC Master series. *CEXPLODE ...generates an error on the BBC Master series. jgharston wrote: Quote: 58 ("&3A") You mean "OSWORD &05", "OSWORD &06", "OSWORD &3A", "OSWORD &3B", "OSWORD &3F". Also, check you're not clashing with other OSBYTE/OSWORDs, check the lists at http://beebwiki.jonripley.com/OSWORDs and http://beebwiki.jonripley.com/OSBYTEs and propose any new allocations on the Discussion pages and the BBC-Micro mailing list.Read a byte from memory (intended as an alternative to "OSBYTE &05"). 59 ("&3B") Write a byte to memory (intended as an alternative to "OSBYTE &06"). (NOTE: This uses the "OSBYTE &3A" code for reading memory - see the details above for more information.) The "32-bit logical address" system used by "OSBYTE &3A", "OSBYTE &3B" and "OSBYTE &3F" (And also, the way I've written the "claim" code means that, out of the ranges I've selected, only the specific calls I've enabled and filled in will return from the ROM Service Call with A=0; still not much fun if it clashes.) jgharston wrote: Quote: &FFEn8000 - &FFEnCFFF Sideways ROM/RAM ("n" = Sideways ROM/RAM #) It would be preferable if you used &FFFRxxxx for sideways ROM addresses to be consistant with everybody else: http://mdfs.net/Docs/Comp/BBC/MemAddrsjgharston wrote: Quote: As I've run into difficulty calling "OSBYTE" from within these routines ...it looks more like the MOS "OSBYTE" and "OSWORD" handlers aren't re-entrant... Correct, they aren't, you have to save and restore the parameter data at &EF,&F0,&F1 around calling OSBYTE/OSWORD from within an OSBYTE/OSWORD routine.jgharston wrote: Quote: I'll look to do this coding for a future release I'll have a quick look at the code, see if any other gotchas jump out and give you any pointers.jgharston wrote: Also, on the subject of assembling large amounts of code (eg sideways ROM images), I wrote *Assem years ago to do just that, it assembles from files on disk using the BASIC assembler. It needs documenting a bit better, but it lets me write multiple-file BASIC source like this. Thanks for your notes - at the very least, I'm glad that someone's taking an interest |
|
| Author: | MartinP [ Wed Dec 07, 2011 11:50 pm ] |
| Post subject: | Re: A pair of ROMs - at last! |
OK - I've found a number of "features" in the ROMs I've released, including some self-inflicted howlers that make some of the "*-commands" in "MUTILS" ineffective BTW: The "Uknown OSBYTE" and "Unknown OSWORD" routines have had to be trimmed out entirely - the corrections and additions to the other bits of code mean that the free space has shrunk drastically (from just over 4KB to just over 2KB, even after eliminating the OSBYTE/OSWORD stuff); I'd rather keep this available for any further (possible/likely) corrections. --Martin |
|
| Author: | MartinP [ Wed Dec 14, 2011 10:38 pm ] | ||||
| Post subject: | Re: A pair of ROMs - at last! | ||||
OK - updated versions of my ROMs; check the "README.TXT" file in each archive for full details of changes. --Martin
|
|||||
| Page 1 of 1 | All times are UTC [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|