EightyOne Problem TS1500

Emulator and emulator development specific topics
Post Reply
User avatar
Paul
Posts: 1511
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

EightyOne Problem TS1500

Post by Paul »

Hello,
I'm using V1.32 of EightyOne.
Using TS1500 setting and TS1500.ROM (with RAMPACK set to none) I get Ramtop at 32768 which is correct.
But DIM A(1000) crashes the TS1500.
If I add a 16K Rampack ramtop doesn't change (I'm not shure if thats correct) but DIM A(1000) works.

If I use the ZX81 setting with no RAMPACK and TS1500.ROM DIM A(1000) gives error 4
Again, with 16K Rampack added, DIM A(1000) works as expected.

Using TS1500 setting and zx81.edition3.rom with no RAMPACK DIM A(1000) gives error 4 which is unexpected :?
This combination also gives just 17408 as Ramtop :(


Am I doing something wrong?
In theory, there is no difference between theory and practice. But, in practice, there is.
Spinnetti
Posts: 253
Joined: Sat Sep 12, 2020 11:29 pm

Re: EightyOne Problem TS1500

Post by Spinnetti »

hmm. Can you even add a ram pack to the 1500? I would think it would clash with the built in 16k? (I have a 1500 but haven't tried it).
Zeddy: ZX80, ZX81/ZXpand, TS1000/ZXpand, TS1500/Zxpand+
Speccy: 48k, +, +2, +3, TS2068, "Bare Metal" Pi, Next KS2, IF1/Microdrives/Vdrive/Light Gun/VGA-Joy
QL: Minerva/QL-VGA/Custom PSU
C5: 24v, LiFE battery, Disc brakes
User avatar
Paul
Posts: 1511
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: EightyOne Problem TS1500

Post by Paul »

I do own a TS1500 and it automatically puts the internal 16K as second adding to a 32k.
This makes it it possible to test a TS1500 even if internal RAM has errors.
In theory, there is no difference between theory and practice. But, in practice, there is.
User avatar
1024MAK
Posts: 5101
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: EightyOne Problem TS1500

Post by 1024MAK »

Spinnetti wrote: Tue Mar 21, 2023 3:01 am hmm. Can you even add a ram pack to the 1500? I would think it would clash with the built in 16k? (I have a 1500 but haven't tried it).
Yes. The system detects the RAM pack and adjusts the memory map at power on.

Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
Spinnetti
Posts: 253
Joined: Sat Sep 12, 2020 11:29 pm

Re: EightyOne Problem TS1500

Post by Spinnetti »

Awesome to know... I have a ZXPAND in any case, but the 1500 is my favorite computer - TS1000 is where I started and the 1500 was the pinnacle of that line IMO :) Me and my coding partner Don are working on our next game for this year - if we can figure it all out lol.
Zeddy: ZX80, ZX81/ZXpand, TS1000/ZXpand, TS1500/Zxpand+
Speccy: 48k, +, +2, +3, TS2068, "Bare Metal" Pi, Next KS2, IF1/Microdrives/Vdrive/Light Gun/VGA-Joy
QL: Minerva/QL-VGA/Custom PSU
C5: 24v, LiFE battery, Disc brakes
Fruitcake
Posts: 346
Joined: Wed Sep 01, 2010 10:53 pm

Re: EightyOne Problem TS1500

Post by Fruitcake »

Paul wrote: Sun Mar 19, 2023 9:31 am Am I doing something wrong?
What you are doing is logical, but just does not match how EightyOne actually works. I imagine EightyOne was originally written to just emulate the ZX81 but was later expanded to support other similar models since these are basically just variations of the ZX81 design. As such, rather than having their own discrete (or inherited) implementations, new models were simply added as conditional statements within the core ZX81 emulation and the alternate ROMs used instead (if applicable). This approach doesn't scale well and makes the code messy (and hence prone to errors) when trying to take into account variations between models.

Support for enhanced functionality, such as high resolution graphics and sound, were added as independently selectable features. This provides a lot of freedom to select a combination that matches any number of real world scenarios, but also means many combinations can be selected that have never existed for real. For example, many interfaces (particularly RAM packs) don't provide a through expansion bus, but EightyOne has no concept of such physical constraints that prevent interfaces co-existing. It also doesn't really have the concept of an interface providing multiple features, but instead it is left to the user to select the feature set that matches the physical configuration they wish to emulate.

The RAM pack setting is a bit misleading as it really indicates the total RAM present. This is why if you have the computer set to a ZX81 with the RAM pack set to None (i.e. 1k), and then select the TS1500 the RAM pack automatically changes to 16k. For the TS1000 it automatically changes to 2k. However, it is still possible to downgrade the RAM pack size even though this would not be possible in reality (without tampering inside the computer or due to a fault).

I don't know how easy it would be to modify the current behaviour of EightyOne, although in theory it does not sound like it ought to be too tricky. If so then the base RAM level for the TS1000 would be set to 2k, for the TS1500 it would be set to 16k. Would this change be worth making to reduce confusion?

Does anyone know what the base RAM is in the Lambda 8300, Ringo R4760 and TK85?

And although not directly related, does anyone know what editions of the ZX81 ROM the TS1000 actually shipped with? Was it just the edition 3?

I've pondered about an alternate hardware dialog that would provide a wrapper around the discrete selectable features. It would instead provide a list of interfaces and would be aware of their limitations, e.g. no through expansion bus, and only allow the user to select the interfaces that could really co-exist. It would then simply set the underlying features. In a few real world scenarios it might even make a difference what order interfaces were connected, e.g. if multiple interfaces contain their own ROM, and so the alternate hardware dialog would ideally need to know this information also. Does such a mechanism sound a useful thing to have?
User avatar
Paul
Posts: 1511
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: EightyOne Problem TS1500

Post by Paul »

I can live with this explanation and avoid settings with less than 16k RAM.
Actually I am good with what it does.
I wouldn't restrict EO more than necessary because that also gives limitation. For example my ZXPand does have a through expansion port. It's one of very few.
In theory, there is no difference between theory and practice. But, in practice, there is.
User avatar
1024MAK
Posts: 5101
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: EightyOne Problem TS1500

Post by 1024MAK »

Fruitcake wrote: Wed Mar 22, 2023 3:32 pm Does anyone know what the base RAM is in the Lambda 8300
2K bytes is the standard amount.

Mark
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
Fruitcake
Posts: 346
Joined: Wed Sep 01, 2010 10:53 pm

Re: EightyOne Problem TS1500

Post by Fruitcake »

I've just released EightyOne v1.33 which addresses this RAM pack issue. Hopefully it behaves a bit more logically now.
Fruitcake
Posts: 346
Joined: Wed Sep 01, 2010 10:53 pm

Re: EightyOne Problem TS1500

Post by Fruitcake »

1024MAK wrote: Wed Mar 22, 2023 7:48 pm 2K bytes is the standard amount.
Thanks. I found more info on these clone models online. I don't own any of them or have ever seen any of them for real, hence they are all a bit of a mystery to me. If anything isn't quite right with their emulation in EO then hopefully people will let me know.
Post Reply