Lambda 8300 / Power 3000 System Variables

Post Reply
Ælfstangard
Posts: 5
Joined: Mon Sep 22, 2014 6:58 pm
Location: Cornwall, Canada
Contact:

Lambda 8300 / Power 3000 System Variables

Post by Ælfstangard »

Hi...

I am wondering if anyone has any documentation giving the system variables for the Lambda 8300 / Power 3000. I'm sure there must be a list somewhere because the computer has been emulated. Also, the specs on the format in which data is saved to cassette would be useful.

Thank you all in advance,

Ælfstangard

Und, ja, ich kann Deutsch.
User avatar
stefano
Posts: 542
Joined: Tue Dec 11, 2012 9:24 am
Contact:

Re: Lambda 8300 / Power 3000 System Variables

Post by stefano »

Found an abstract on archive.org !

I'm halfway in commenting the ROM disassembly: anyone interested ? Does this stuff exist already ?

Did anyone ever thing at a ROM retrofit to make the ZX81 compatible to Lambda ? ...would it make sense ?
Attachments
lambda.zip
Lambda sysvars and memory map
(255.11 KiB) Downloaded 473 times
User avatar
stefano
Posts: 542
Joined: Tue Dec 11, 2012 9:24 am
Contact:

Re: Lambda 8300 / Power 3000 System Variables

Post by stefano »

Woops ! Somewhere else in this forum there is this link suggested:
viewtopic.php?f=7&t=1162&p=12793&hilit=8300#p12793
User avatar
TMD2003
Posts: 149
Joined: Sun Oct 11, 2020 5:39 pm

Re: Lambda 8300 / Power 3000 System Variables

Post by TMD2003 »

ACHTUNG! Seven-year thread necromancy alert!

I have no idea if anyone will ever see this - unless those looking at the front page are particularly sharp and think "what's this, a new post in the Lambda 8300 area?" and investigate - but in case anyone does...

I am trying to work out how the colour interface works, assuming that this was something that had to be added onto the original machine.

So I started having a look at the ZX81's system variables, and wrote a short program to see if any of the "not used" addresses are used when I vary the INK between 1 to 7. They weren't.

Then I found this list of variables, and seen that it's all in Chinese but at least the system variable names are in Roman characters, and I can at least see the ZX81's "not used" are nothing to do with colour. 16417 is the value TEMPO is set to, 16507 (2 bytes) is BLINK, and I have no idea what this does, but it doesn't change with the INK colour.

I looked at RAMTOP on a 16K Lambda and it's set to 32768, as it is on a 16K ZX81. So it's not that the colour interface has three bytes (for INK, PAPER and BORDER) above RAMTOP to look at.

The display file (16509 to 17301) is 792 bytes, exactly 24*33 characters, so there's no room to fit the three bytes in there - and the program starts at 17302.

Is there anyone out there who knows the addresses I'm looking for, before I attempt to brute-force EightyOne to do my bidding (and take several hours over it, likely as not)?
Spectribution: Dr. Jim's Sinclair computing pages.
Features my own programs, modified type-ins, RZXs, character sets & UDGs, and QL type-ins... so far!
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Lambda 8300 / Power 3000 System Variables

Post by mrtinb »

Look at this thread for info about the Lambda Colour Pack.

https://sinclairzxworld.com/viewtopic.php?f=20&t=1202

You enable it, by writing anything to address $3001, and disables it by writing anything to address $3000.

Addresses $2000 to $2FFF maps to color RAM. D-file on Lambda starts at $407D, and the color RAM matching that position is $207D etc.

Note: Most emulators don't fully emulate the Lambda Colour Pack. Most only emulate address $2000 to $2FFF, and turns on the Lambda Colour Pack and ignores address $3000 and $3001.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
TMD2003
Posts: 149
Joined: Sun Oct 11, 2020 5:39 pm

Re: Lambda 8300 / Power 3000 System Variables

Post by TMD2003 »

...I just found that and was doing some tests while you were writing that post.

Looking through the German articles, though, it doesn't look like it's a simple case of "take the address of the display file where the character is, subtract 2000h, and POKE the right value" because each display file line takes 33 bytes and the colour information takes 32, skipping the ENTER at the start of each line. I tried the test program in magazin_692 and itr works fine, with one set of POKEs being exactly 32 bytes higher than the other...

I should probably reveal the reason I've been looking into this, because Lambda aficionados might consider it mildly exciting...
Spectribution: Dr. Jim's Sinclair computing pages.
Features my own programs, modified type-ins, RZXs, character sets & UDGs, and QL type-ins... so far!
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Lambda 8300 / Power 3000 System Variables

Post by mrtinb »

As you can see in the thread, someone from the German forum has reverse engineered the hardware, and provided a schematic, so you can build a replica yourself.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
jesperp
Posts: 49
Joined: Fri Jun 10, 2022 11:41 am
Location: Denmark

Re: Lambda 8300 / Power 3000 System Variables

Post by jesperp »

Lambda system variables and other specs here:
https://problemkaputt.de/zxdocs.htm#lambda8300
Best regards
Jesper Petersen
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Lambda 8300 / Power 3000 System Variables

Post by mrtinb »

jesperp wrote: Sat Jun 25, 2022 3:59 pm Lambda system variables and other specs here:
https://problemkaputt.de/zxdocs.htm#lambda8300
Yes the whole document is indispensable for the ZX81 and Lambda 8300
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

Re: Lambda 8300 / Power 3000 System Variables

Post by mrtinb »

TMD2003 wrote: Mon Apr 11, 2022 10:51 pm Looking through the German articles, though, it doesn't look like it's a simple case of "take the address of the display file where the character is, subtract 2000h, and POKE the right value" because each display file line takes 33 bytes and the colour information takes 32, skipping the ENTER at the start of each line. I tried the test program in magazin_692 and itr works fine, with one set of POKEs being exactly 32 bytes higher than the other...
I believe the color information uses 33 bytes as well, because the border color can be set per line. That’s what the last byte is used for.
Last edited by mrtinb on Sat Jun 25, 2022 7:40 pm, edited 1 time in total.
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
Post Reply