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.
I believe what you have in the video is the original 4K rom for the ZX80
(which I just now saw is also in the comments
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
Lambda 8300 v1 (LAM10061.BIN)
Lambda 8300 v2 (I believe EO simply names it "lambda.rom")
ZX81 compatible ROM for Lambda 8300
Am I missing sometthing ?
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 !!
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");