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 :( ) for many years now; v0.91 made an appearance via http://www.6502.org/ early last year - this is v0.92, a much-updated version. (There are certain features that are "incomplete" - see the associated "README.TXT" file for details.)

"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
... generates an error on the BBC Master series.
*CEXPLODE
...generates an error on the BBC Master series.
No, should just return silently.

Quote:
58 ("&3A")
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"
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.

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/MemAddrs

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.

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:
Quote:
*CIMPLODE
... generates an error on the BBC Master series.
*CEXPLODE
...generates an error on the BBC Master series.
No, should just return silently.
OK - obvious to me, now that you've mentioned it.
jgharston wrote:
Quote:
58 ("&3A")
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"
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.
OK again - typo's in the docs (probably tired and not conecntrating at the time :oops: )
(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/MemAddrs
OK again - I'd just thought up some addresses arbitarily; also, I *had* had a quick look through some doc's - I will look at this further.
jgharston 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.
Hmm - I did try doing this for one test, though it didn't have any obvious effect - may just have been my code.
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.
Many thanks - another pair of eyes is always handy (though note I've already found and corrected one RFS-related bug - mentioned in another thread).
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 :oops: .I've got things a bit straighter now, and - once I've finished making sure that the code does indeed work properly - I'll post updated versions of both "MUTILS" and "MRFS-EC".

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

Attachments:
File comment: "MRFS-EC" ROM, v1.01
MRFS-EC-v1.01.ZIP [17.21 KiB]
Downloaded 10 times
File comment: "MRFS-MU" ROM, v1.01
MRFS-MU-v1.01.ZIP [13.77 KiB]
Downloaded 10 times
File comment: "MUTILS" ROM, v0.93
MUTILS-v0.93.ZIP [42.97 KiB]
Downloaded 12 times

Page 1 of 1 All times are UTC [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/