Viewing Issue Advanced Details
ID Category [?] Severity [?] Reproducibility Date Submitted Last Update
07939 Core Minor Always Apr 11, 2021, 00:35 23 days ago
Tester ICEknight View Status Public Platform MAME (Official Binary)
Assigned To Resolution Open OS Windows 10 (64-bit)
Status [?] Acknowledged Driver zx.cpp
Version 0.230 Fixed in Version Build 64-bit
Fixed in Git Commit Github Pull Request #
Summary MESS-specific 07939: zx81: Incorrect default amount of RAM
Description Current ZX-81 emulation acts as if the system had 16K of RAM, but the system's default was 1K.
It seems to be always running as if a RAM expansion cartridge was plugged in, with no possibility of disabling it (no slot options in this core).
Steps To Reproduce Load a RAM test program that I'm attaching with:
LOAD""
RUN

Which is entered like:
J, SHIFT+P, SHIFT+P, ENTER
R, ENTER

Test results will show "16K" on screen.
Additional Information The second RAM test I'm attaching is not working currently, I don't know if it's because of another bug.
Github Commit
Flags
Regression Version
Affected Sets / Systems zx81
Attached Files
zip file icon zx81 ram test.zip (45,393 bytes) Apr 11, 2021, 00:35 Uploaded by ICEknight
zip file icon zx81 ram test 2.zip (41,819 bytes) Apr 11, 2021, 00:36 Uploaded by ICEknight
zip file icon ram test savestate.zip (918 bytes) Apr 11, 2021, 00:52 Uploaded by ICEknight
zip file icon ram test 2 savestate.zip (940 bytes) Apr 11, 2021, 00:53 Uploaded by ICEknight
Relationships
There are no relationship linked to this issue.
Notes
8
User avatar
No.18665
ICEknight
Tester
Apr 11, 2021, 00:53
Added savestates in case that the File Manager won't work.
User avatar
No.18666
Tafoid
Administrator
Apr 11, 2021, 02:43
You can set the size of RAM via command-line.
By default, zx81 is set up to use 16k so it is not completely useless. You could argue it should be the default state, but I would assume you'd get a fair bit of the opposite - pleading for more than 1K and I presume that 16k was chosen to be the mainstream common standard configuration people used.

                <device_ref name="ram"/>
                <ramoption name="1K">1024</ramoption>
                <ramoption name="32K">32768</ramoption>
                <ramoption name="48K">49152</ramoption>
                <ramoption name="16K" default="yes">16384</ramoption>

If you use -ram 1k, it should start the machine with 1024 bytes. Other sizes are also available.
You do have other computers which have hardware which is above standard issue so this isn't a unique case.
User avatar
No.18669
Robbbert
Developer
Apr 11, 2021, 06:35
If the default was 1k I'd expect much of the software to fail, and the casual user wouldn't know what to do.

16k seems quite reasonable.
User avatar
No.18670
hap
Developer
Apr 11, 2021, 18:20
I don't really care whether 1K or 16K is the default. But if your RAM test works as expected after you select 1KB RAM, this bug report can be closed as invalid.
User avatar
No.18671
ICEknight
Tester
Apr 11, 2021, 21:57
edited on: Apr 12, 2021, 00:36
The ZX-81 only ever came equipped with 1KB of RAM on-board and the current emulated system has 16KB installed by default, which can only be achieved on a real system through modding.

On the other hand, its clones the TS1000 and the TS1500 came equipped with 2KB and 16KB, respectively.

Maybe the defaults in MAME should be those of the as-is, unmodded systems?
User avatar
No.18729
Tafoid
Administrator
25 days ago
Acknowledging only to continue discussion, if needed.

My opinion is that the machine is pretty much unusable with any most cassette software produced if 1K were set as the default. I'm not discounting there are a few selections built to fit within the 1k, but 16k allows most all other cassettes to load and run correctly as expected. We have numerous other machines with added storage mediums which are not part of the "base" machine. A default configuration, likely, is the driver developers choice in the end.
User avatar
No.18732
Pernod
Developer
24 days ago
As has already been mentioned, the ZX81 defaults to 16K as that was the most common configuration, and also avoids false bug reports from users trying to run 16K software on a 1K machine.

Even if the expansion slot was emulated then I'd still have a 16K RAM pack inserted by default.

This bug report should be closed.
User avatar
No.18737
ICEknight
Tester
23 days ago
edited on: 23 days ago
The current default configuration is that of a modded system.

I think this should stay open as a reminder for whoever sees this and can add proper 16K expansion support (and set it as default, which seems to be the actual desired default configuration).