Quantcast
Channel: stardot.org.uk
Viewing all articles
Browse latest Browse all 3322

8-bit acorn software: other • Re: PunyInform and Ozmoo

$
0
0
I've just noticed that the ADFS builds are not loading correctly if a co-processor is active.
Thanks very much for the bug report Ken, and sorry for taking so long to look into it.

I've created alpha 60 with a fix for this. I had optimised the placement of the 160 byte buffers used to preserve the contents of the top line when using slow hardware scrolling, by re-using the space for the fast hardware scroll code - after all, you are either using one or the other on any particular machine, never both. This is fine without a second processor, but with a second processor the two buffers live in different address spaces (the fast scroll code is on the host, the scrolling buffer is on the copro with the main Ozmoo code) and so you can't re-use the space for the fast scroll code. That didn't stop me trying to do it anyway, hence the crash. The fix is simply to allocate this buffer explicitly in the copro on a second processor build.

I am not actually sure why this only manifested in mode 7 and on ADFS - I wrote something on one of the git commits but I am starting to doubt it - and I haven't looked into this yet since I am fairly confident I know what the underlying problem is. I suspect there is an element of luck as to which bit of code gets trampled on by accident. It also appears not to break benchmark builds for some reason.

(Incidentally, this bug is one of those which is near-trivial to fix when you are using an emulator and can set a write breakpoint on the memory which is being trampled on incorrectly, but which would require more thought and/or hair-pulling on a real machine without such luxuries.)

This release also includes a fix from Fredrik for a bug he found in the Acorn port. If you try to build a game which (after internal rounding) is treated as being exactly 64K - 256 pages - the build system would try to do an experimental tube build without using virtual memory to see if it works. Unfortunately with exactly 256 pages, this would try to do things like "lda #256" which would abort the build. "Game won't fit" errors are expected during this experimental build, but not this. The fix is simply to lower the threshold for trying the experimental build from 256 pages to 255 pages. Thanks for reporting and fixing this, Fredrik!

The changelog is here, although it mostly just says what I wrote above.

I have not given this release extensive testing but I think it shoud be fine. If you try it, please let me know how you get on.

Statistics: Posted by SteveF — Sat Mar 15, 2025 2:26 pm



Viewing all articles
Browse latest Browse all 3322

Trending Articles