Lambda 8300 / Power 3000 System Variables
-
- Posts: 5
- Joined: Mon Sep 22, 2014 6:58 pm
- Location: Cornwall, Canada
- Contact:
Lambda 8300 / Power 3000 System Variables
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.
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.
Re: Lambda 8300 / Power 3000 System Variables
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 ?
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 711 times
Re: Lambda 8300 / Power 3000 System Variables
Woops ! Somewhere else in this forum there is this link suggested:
viewtopic.php?f=7&t=1162&p=12793&hilit=8300#p12793
viewtopic.php?f=7&t=1162&p=12793&hilit=8300#p12793
Re: Lambda 8300 / Power 3000 System Variables
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)?
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!
Features my own programs, modified type-ins, RZXs, character sets & UDGs, and QL type-ins... so far!
Re: Lambda 8300 / Power 3000 System Variables
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.
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.
Re: Lambda 8300 / Power 3000 System Variables
...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...
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!
Features my own programs, modified type-ins, RZXs, character sets & UDGs, and QL type-ins... so far!
Re: Lambda 8300 / Power 3000 System Variables
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.
Re: Lambda 8300 / Power 3000 System Variables
Lambda system variables and other specs here:
https://problemkaputt.de/zxdocs.htm#lambda8300
https://problemkaputt.de/zxdocs.htm#lambda8300
Best regards
Jesper Petersen
Jesper Petersen
Re: Lambda 8300 / Power 3000 System Variables
Yes the whole document is indispensable for the ZX81 and Lambda 8300jesperp wrote: ↑Sat Jun 25, 2022 3:59 pm Lambda system variables and other specs here:
https://problemkaputt.de/zxdocs.htm#lambda8300
Re: Lambda 8300 / Power 3000 System Variables
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.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...
Last edited by mrtinb on Sat Jun 25, 2022 7:40 pm, edited 1 time in total.