Page 4 of 5

Re: Different ROMs for Lambda 8300

Posted: Fri Sep 23, 2022 3:19 pm
by frankc64
OK, thanks. So the original 15V supply should be good then. Well, I get something on the screen with the 15V, but not with the 9V, and only briefly something with the 12V.
I heard that some machines actually had a piece of plastic in place of the heatsink. Mine is metal though, so I should be good.

Re: Different ROMs for Lambda 8300

Posted: Fri Sep 23, 2022 9:34 pm
by frankc64
Hmmm. Changing the 74LS05 made no differrence. The levels on the data bus are still low. But there is lots of activity on both busses, so I assume the Z80 is working. But after measuring around, it seems that no video signal is coming from the ULA. So probably the ULA is dead. Too bad. I suppose noone has come up with a replacement solution, so it means I have a spare parts machine.

Re: Different ROMs for Lambda 8300

Posted: Fri Sep 23, 2022 9:39 pm
by mrtinb
Have you meassured the video signal on the ULA with a voltmeter, or an oscilloscope?

Re: Different ROMs for Lambda 8300

Posted: Sat Sep 24, 2022 1:12 pm
by frankc64
Oscilloscope. Also the busses.

Re: Lambda 8300 with ZX81 ROM (I think)

Posted: Tue Aug 15, 2023 10:04 pm
by kolbeck
mrtinb wrote: Tue Apr 03, 2018 9:29 pm Lambda 8300 with ZX81 ROM (I think).

I inserted a ZX81 ROM, but that does not work. Maybe the Lambda insists on a modified ZX81 ROM.

https://youtu.be/Eyz3EM5ADJY
I believe what you have in the video is the original 4K rom for the ZX80

EDIT:
(which I just now saw is also in the comments :-)

Re: Different ROMs for Lambda 8300

Posted: Mon Sep 18, 2023 5:20 pm
by stefano
I'm finally jumping in :)
For what I understood what you consider as "lambda 1" is more than a single ROM version, right?
It includes at least both the CAC-3 and the NF300.
It's probably worth to extend z88dk, as long as we know we are covering most of the clones.

EDIT: the link provided by Martin for Lambda v1 is now invalid, but I got a copy on archive.org
https://web.archive.org/web/20161220032 ... m10061.bin

The Marathon32 ROM is reachable in the same way, but it is identical to the later version of the Lambda ROM

Re: Different ROMs for Lambda 8300

Posted: Tue Sep 19, 2023 9:50 am
by stefano
So to recap we have those different ROMS:

Lambda 8300 v1 (LAM10061.BIN)

Lambda 8300 v2 (I believe EO simply names it "lambda.rom")

cac-3.rom (8EEC1EC6-cac-3.rom)

NF300.ROM (F8BBA9D8-NF300.ROM)

ZX81 compatible ROM for Lambda 8300


Am I missing sometthing ?

Re: Different ROMs for Lambda 8300

Posted: Tue Sep 19, 2023 5:40 pm
by stefano
I chose to go for three different ROM types only, the CAC-3 and NF300 are so close.
At the moment I'm ignoring the zx81 retrofits


The first thing to do is to fix the interrupt/video handler. I noticed that the early monochrome ROM uses a different register (and a different order for the push/pop sequence) which could have possibly been on of the reasons for the slowness you experimented.
I'm not sure, but it is worth to try.

EDIT: -subtype=mono and '-subtype=cac3' are now ready !!

Re: Different ROMs for Lambda 8300

Posted: Mon Sep 25, 2023 7:25 am
by mrtinb
Looking forward to test your work. I’ve been abroad and not seen your posts until now.

Re: Different ROMs for Lambda 8300

Posted: Mon Sep 25, 2023 5:25 pm
by stefano
I was counting on you :lol:

Well I've almost finished, I think I spotted the equivalent entries also for interfacing C to BASIC (and vice-versa), I'm testing it on the different ROMs but most of the code looks valid also on the later ROM version with more differences from the ZX81.

Code: Select all


	printf ("Basic length: %u\n",zx_basic_length() );
	printf ("Variables area length: %u\n",zx_var_length() );

	zx_getstr ('a',value);
	printf ("Got string value in 'a' :  %s\n",value);

	zx_setint ("n",100);
	zx_setint ("num",1234);

	printf ("Got numeric value in 'num' :  %u\n", zx_getint ("num") );
	printf ("Got numeric value in 'n' :  %u\n", zx_getint ("n") );
	
	zx_setstr ('b',"This is the b$ string, which nobody can deny...");

	zx_setfloat ("flt",-1400.101);
	zx_setfloat ("f",1400);

	printf ("Got float number in 'flt' :  %f\n", zx_getfloat("flt") );
	printf ("Got float number in 'f' :  %f\n", zx_getfloat("f") );

	printf ("\n\nProgram end\n");

zxbasic_basic.png
zxbasic2.png
zxbasic3.png
zxbasic4.png
zxbasic5.png