<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Fri, 20 Sep 2013 17:45:43 +0100
From   : jgh@... (J.G.Harston)
Subject: Early BBC MOS EPROMs

Dave Curran wrote:
> Ah yes, my combined image matches the MOS 010 image on mdfs.net [5].?
> That's answered that question.
> Not sure why it doesn't work though. Next time I dig out my issue 3
> model A, I'll see if it works on there.

The entry points and functionality are the same, that's the whole point 
of an API. The significant difference between OS 0.xx and OS 1.xx is that 
the keyboard handling in OS 0.xx is different and has been described as 
only working "by accident". The OS 1.xx keyboard handler was rewritten, and 
later hardware is slightly different sufficiently that the OS 0.xx keyboard 
handler can't cope with the later hardware. That will be why you end up with no
keyboard input.

On the point of the MOS entries, there are some slight differences.

There is an entry to FSCV at &FFCB.

OSARGS appears to support calls with A=4 to 7.

*CAT calls OSBYTE 138,<drive> which, if CFS is not selected passes the 
string "CAT" to FSCV.

OSBYTE 123 enters the current BRK handler.

There's a *DEBUG command, a *NOTAPE command that disables filing system 
access, and *DISK and *DISC commands - in the MOS.

The VDU drivers, the MOS kernel and the CFS filing system are more 
rigoursly segregated in the ROM, with each code block starting with an
entry jump block.

There's a different definition of sideways ROMs. The MOS builds a table 
of ROMs 3, 2, 1 and 0. If a ROM's flag has bit 7 set, then it is called at
&8000 (yes, the language entry) on startup. Then the highest ROM with 
bit 6 set is entered either at &8000 if bit 1 is clear or at &8003 if bit 1 
is set. It would be interesting to find a sideways ROM written for OS 0.xx.

-- 
J.G.Harston - jgh@...      - mdfs.net
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>