SteveF wrote:I've just downloaded the manual from a few pages back - what an impressive piece of work, very professional-looking!
Thanks - much of the credit goes to my wife for proof reading it and making loads of suggestions!
If you select one of the new modes and then call OSBYTE &87 (http://beebwiki.mdfs.net/OSBYTE_%2687
), do you get given the new mode number back in Y? If not, is there any way to check which of the new screen modes (if any) you are currently in?
In the ROM code, I do store the last chosen mode at &3A3 but this is obviously less than ideal if you are looking for a standard way of getting the mode across machines with and without VideoNuLA.
I added support for OSBYTE &85 yesterday (as HIMEM wasn't being set correctly in attribute modes) and have started to plumb in my own version of OSBYTE &87 (to ensure the character is returned when attributes are set).
I'll try to get my OSBYTE &87 to return the correct attribute mode number (i.e. 96-104) but need to make sure that doing this doesn't break anything.
As an example, I've set things up so that the current screen mode VDU variable at &355 holds the equivalent original mode number and not the attribute mode number. So, if you do:
&355 contains 0 and not 101 as you might expect. This is so that things expect the right screen mode size rather than doing 101 AND 7 and thinking that we're in mode 5! I could set it to the attribute mode number but I'm not exactly sure how many other calls I'd need to wrap. (It's probably easy enough to work out for OS1.2 but the disassemblies for 2.0, 3.20 etc. aren't as clear.)