This is an old post, preserved for reference.
The products and services mentioned within are no longer available.
This is the Lambda 8300, one of a series of 'sort of ZX81' computers released by Lambda Electronics of Hong Kong.
Minstrel 3, which is also ZX81 compatible (probably more so than the Lambda).
Inside was very reminiscent of a ZX81, with very few chips. On the left, a 7805 regulator and a 2K RAM chip (with options on the PCB for four 2114 chips instead). There would have been a single 8K ROM chip, but that has been replaced by the blue board with multiple ROM images in. In the middle is the Z80, and to the right is a special ULA.
This is not a direct copy of the Sinclair ULA, in fact it does quite a bit more. It has a sound output, and a joystick input. Some functionality is missing, the NOP generator is implemented using a single 74LS05 and a transistor (which is seven bits, I wonder what they did about the eighth?).
Looking at the ROM image, it didn't appear to have a character ROM at the end like the ZX81, so where was it? There weren't any other chips on the board, so I went back to something I had read, but had discounted as unlikely, which was that the character ROM was in the ULA. Really? Was there enough space for all the ZX81 functionality, the extra bits and a 512 byte ROM? I wouldn't need to be on the address bus, it could just be connected directly to the line counters and character address and feed the internal shift register to generate character data output.
I decided to try out the theory that the character ROM was implemented in hardware, and found a recreated Lambda character ROM in the Eighty One emulator ROMs folder. I figured that if it was using this, it would need that when the screen was being drawn, during the refresh cycle, and would not be using the normal ROM at that time, so I could use a single 16K ROM chip. I copied the character ROM into an EPROM at 1E00 (where the character font lives in a ZX81), and placed the Lambda ROM at 2000 onwards. I wired the A13 line of the ROM chip to /Refresh, so that when /Refresh was low (i.e. the screen was being drawn), the character ROM would be selected, and when /Refresh was high, it would access the normal ROM.
That didn't work, but it did make a difference, the inverse line was doing it's job, but rather than random data (or code) being used as the font, it was all blank (actually, it was all black with white squares, I find it easier to take pictures of black on white as the camera can focus on the white pixel blocks in the centre).
My second attempt was to move the character set ROM to 0000 in the EPROM, and that worked! I typed in a quick program. OK, it wasn't so quick as I had to work out which keys did what (" is shift + 5, delete is shift + dot etc.).
This printed out the character set, and that all looked good, including the funky characters you don't get on a ZX81, such as the ghost, the spider, the car, and the diagonals. There are a few black pixels on the line directly above the text area, and the line directly below. Not sure what is causing those.
This is looking good. I wonder if I can load any games? I wired up the Minstrel 3 to the master tape creator and gave it a go. Did it still load from the same input port?
I had a look around, and found a couple of Lambda 8300 titles, tried LOAD "" and it worked. This is DSTAR, quite a nice game where you move around collecting diamonds. This is a version of the one where when you move it keeps going until it hits something so you have to plan your route so you can get to all the diamonds (what's that called again?)
Footnote: I try to avoid using the term 'clone', as to me that implies a copy using the same hardware, where as in both the case of the Lambda and the Minstrel, they are implementing the same or similar functionality, but with different hardware, hence my use of 'ZX81 compatible' when describing the Minstrel 3.