SPeccy ON the ZeddY

Anything Sinclair ZX Basic related; history, development, tips - differences between BASIC on the ZX80 and ZX81
User avatar
siggi
Posts: 988
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post by siggi »

Hi Zsolt
approx. one year ago I played a little bit with the Speccy-Emulator rom for the ZX81, coming with EO (the SP81.rom).
I found, that it works fine with EO, but not with my ZX81 I used to test, because that was a 64K Zeddy(*).
The problem with SP81.rom is, that the dummy D-File for generating the HRG output is located in the region 8-16K (somewhere at the end of the unused rom space).
But located there, only a real 16K (which has rom images above 32K) works correctly when generating the HRG display of the Speccy. But a 32/48/64K Zeddy does not have that rom images! So with that Zeddies the HRG display of SP81.rom does not work!

My idea then was, to relocate the 33 byte dummy D-file from below 16K into the region 16-32K, because then the display generation would also work with my 64-K Zeddy. But I don't know, where there is some free (and secure) space in a Speccy in range 16-32K to hold the D-file...
I did some tests with a modified SP81-rom (it copied the dummy D-File during each video frame above 16K and "executed" the D-file there). It worked with EO in most cases (but not all), so I did not test it on a real Zeddy and stopped work ...

So my first question is; where is the D-file located in your rom?

Siggi

(*) That is the only Zeddy I have, which has 16 KB ram starting at 0, that I use to test rom patches ...
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: SPeccy ON the ZeddY

Post by zsolt »

Szia Siggi!
(Hi Siggi,)
siggi wrote: So my first question is; where is the D-file located in your rom?
The D-FILE is located at the end of printer buffer - this is in the 16K-32K region, in front of system variables.
If printer is in use, Zeddy is in FAST mode. The printing session ends with clear buffer, so we can use it again as D-FILE.

SP81 - there was more (mostly timing) problem:

1.) there is no synch between CPU and HSYNC-generator
(that certain HALT instruction at last NMI before display or VSYNC!!);

2.) the lineperiod is 207 Tstates in Zeddy - the D-FILE in SP81 is at least T210
(if "$ED, RET" works as RET, else is T220!!);

3.) keyboard handling comes from Speccy with various runtime depending on the pressed key.
So the length of VSYNC is not constant;
zsolt wrote: I will publish the source code with comments as well, as soon as possible.
zsolt

ps: sorry for my "hunglish"
sirmorris
Posts: 2811
Joined: Thu May 08, 2008 5:45 pm

Re: SPeccy ON the ZeddY

Post by sirmorris »

Thanks for taking the time to write in Hunglish - it's much better than my Engarian ;) ;)
User avatar
siggi
Posts: 988
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post by siggi »

Hi Zsolt
zsolt wrote: The D-FILE is located at the end of printer buffer - this is in the 16K-32K region
That sounds great. I will try it on my 64K Zeddy ...

Siggi
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: SPeccy ON the ZeddY

Post by zsolt »

Sziasztok!
(HI ALL,)
zsolt wrote: SP81 - there was more (mostly timing) problem:
It seems that I wrote bad things only about sp81, but it has a really good part, which is (with some modification) implemented in SPONZY too: the NMI-stack.

To calculate the addresses in the Speccy's nonlinear H-File is a time-consuming work for CPU.
Exetuting D-FILE we have not enough time to do.

That helps the NMI-stack, which contains the startaddresses of each scanlines and the suitable return addresses (from D-File). It's simple, fast, elegant - congrats for it.

Zsolt
(GZS)
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
siggi
Posts: 988
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post by siggi »

siggi wrote: That sounds great. I will try it on my 64K Zeddy ...
Siggi
Done. And it works! :D

But the Zeddy with 16 K ram starting at 0k is my web-server zeddy. So I had to overwrite the server-startup-rom with the SPONZY-rom (first 8k). After I had found out, how I had to set the DIP-switches at the front of the Zeddy

Image

to disable the EEPROM in the 8-16K range and to enable the ram there for programming with the new rom (this zeddy is running since 2007 as web-server, so I did not play around too much with it since then), the Speccy bootet on my Zeddy :D

I did some tests with printing and plotting on screen and found no problems.
And I defined a big array
DIM a$(20000)
and got no error, so SPONZY seems to run as 48K Speccy ...

But now the server is running again, so SPONZY is now down.

Great work!

Siggi
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: SPeccy ON the ZeddY

Post by zsolt »

Dear Siggi,
siggi wrote: Done. And it works! :D
Sensationally good news!!! :D
Thank you very much!!!

(if the tape io works too...)

zsolt
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
siggi
Posts: 988
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post by siggi »

Hi Zsolt
I tried also SAVE and LOAD onto an MD-recorder instead of a cassette recorder. The MD-recorder works fine with my ZX81.

I tried
SAVE "test"

and saw then black an white stripes on the screen. And something was written to the MD-recorder

Then I did

NEW
LOAD "test"

and tried to load the saved program. But the screen remains white (no black stripes) and nothing is loaded. :(

Then I did a load/save test with the ZX81 rom and it works (so the cabling and the recorder is ok)

Because I am not familiar with a Speccy: were the commands correct?

Siggi
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
User avatar
zsolt
Posts: 214
Joined: Wed Apr 20, 2011 11:43 am
Location: Fót, Hungary

Re: SPeccy ON the ZeddY

Post by zsolt »

Szia Siggi!
(Hi)
siggi wrote: were the commands correct?
Yes, the syntax of these commands is same in Speccy too.

I tried your steps in EO - SAVE "test" then NEW and LOAD "test" - there was no problem, 'Zeddy' switched to FAST mode.
siggi wrote: But the screen remains white (no black stripes) and nothing is loaded. :(
I don't understand - yet.

Zsolt
ZX81 (8K), ENTERPRISE 128, [ZX SPECTRUM (48K,+,+128K,+2,+2A), TS1000, TS1500, TS2068, Cambridge Z88, PRIMO A64 (red)]
User avatar
siggi
Posts: 988
Joined: Thu May 08, 2008 9:30 am
Location: Wetterau, Germany
Contact:

Re: SPeccy ON the ZeddY

Post by siggi »

Hi Zsolt,
I did the same save/load test with a tape recorder and had the same behaviour (white screen during load).

And I had some other problem, which I could reproduce with EO V0.52 (ZX81 with 48K ram and /M1-circuit enabled):
when I enter the following program

Code: Select all

10 for f=32 to 255
20 print chr$ f;
30 next f
But when I enter then

Code: Select all

40 save "test"
the program gets corrupted on screen and line 30 is missing:
save-err.jpg
save-err.jpg (44.53 KiB) Viewed 4602 times
Do you get the same result?

I use the SPONZY-rom stored on my server at

http://zx81-siggi.endoftheinternet.org/d:tmp/

I hope, that it is not corrupted....

Siggi
My ZX81 web-server: online since 2007, running since dec. 2020 using ZeddyNet hardware
http://zx81.ddns.net/ZxTeaM
Post Reply