It is currently Mon Oct 20, 2014 5:45 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 5 posts ] 
Author Message
PostPosted: Thu Nov 24, 2011 1:14 am 
Offline
 Profile

Joined: Sun Nov 13, 2011 4:14 pm
Posts: 14
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.)


Last edited by MartinP on Wed Dec 14, 2011 10:39 pm, edited 1 time in total.

Top
 
PostPosted: Sun Nov 27, 2011 11:52 am 
Offline
 Profile

Joined: Sat Aug 22, 2009 7:45 pm
Posts: 34
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.


Top
 
PostPosted: Sun Nov 27, 2011 3:11 pm 
Offline
 Profile

Joined: Sun Nov 13, 2011 4:14 pm
Posts: 14
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 :)


Top
 
PostPosted: Wed Dec 07, 2011 11:50 pm 
Offline
 Profile

Joined: Sun Nov 13, 2011 4:14 pm
Posts: 14
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


Top
 
PostPosted: Wed Dec 14, 2011 10:38 pm 
Offline
 Profile

Joined: Sun Nov 13, 2011 4:14 pm
Posts: 14
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 9 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
Top
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 5 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron