Retro Computer that fits in Alhambra-2

131 views
Skip to first unread message

Jesus Arias

unread,
Mar 10, 2025, 12:15:48 PMMar 10
to FPGAwars: explorando el lado libre
Hi,
I recently found a Youtube video about the repair of an old Vtech Laser-200 (Adrian Black channel) and the simplicity of that computer made me think about an FPGA recreation, mainly because the small amount of RAM means it can run on an Alhambra board without any external memory. This is what that computer has in its guts:
- CPU: Z80 @ 3.57MHz
- 16KB of ROM with BASIC
- 2KB of RAM
- 2KB of video RAM
- Video controller: MC6847 with 2 modes: 32x16 text and 128x64, 4 color, graphics.
- 6x8 keyboard matrix

Well, after a few hours of coding I got that emulated computer running on my SIMRETRO board:
20250309_224435.jpg
20250309_224506.jpg
(forget about Moire artifacts ;)
Now, I want to port it to the Alhambra-2 board, and I guest the appropriate VGA interface is Eladio's AP-VGA, but I also need a PS2 interface to a keyboard ¿Does somebody knows if  that kind of interface exists? My basic idea is to connect the clock and data lines of the keyboard to two spare pins, maybe after some level shifting (the keyboard runs with 5V logic).
By the way, the AP-VGA seems to have been designed for 5V logic too, and I think when used with the Alhambra board the image would be too dim... (the 200ohm resistors in series with the board pins also further attenuate the video signal level)

Regards

charli va

unread,
Mar 10, 2025, 12:46:01 PMMar 10
to fpga-wars-explora...@googlegroups.com
Hi Jesus! I've been playing with your osd these days, moving it to an icestudio block and using it to debug new functions (much more fun than boring flip flops ;) )

I'm attaching a video of the output generated with Eladio's VGA-AP in the Alhambra. Indeed, the colors are a bit dull, but it looks pretty good. I'll try it with icecream soon. As soon as I do, I'll send a color comparison with the same screen and the same bitstream, so we can see the impact of the resistors.

On the other hand, I've found this old thread in which obijuan presented a PS/2 keyboard interface. I just looked for it, and I haven't tried it (in fact, right now I don't have a PS2 at hand with which I could try it even if I wanted to), but in case it helps, you can find the verilog code from the icestudio block.

https://groups.google.com/g/fpga-wars-explorando-el-lado-libre/c/ysO-TZn8sEo/m/jZxRR-KRBgAJ

Nice day!

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/fpga-wars-explorando-el-lado-libre/e9a8f14e-b6c7-48d7-9542-7cef2e420e33n%40googlegroups.com.
vga_ap_720.mp4

charli va

unread,
Mar 10, 2025, 1:00:10 PMMar 10
to fpga-wars-explora...@googlegroups.com

Iceflow

unread,
Mar 10, 2025, 2:48:31 PMMar 10
to fpga-wars-explora...@googlegroups.com
Nice done! :D i also watched that video, interesting little machine! great work implementing it!

El lun, 10 mar 2025 a las 17:15, Jesus Arias (<ges...@gmail.com>) escribió:
--

Jesus Arias

unread,
Mar 10, 2025, 4:02:53 PMMar 10
to FPGAwars: explorando el lado libre
Hi again
first, the clone running in an Alhambra board with quite a lot of messy wires:
20250310_193919.jpg
And next some details:
The "wired" VGA interface is identical to the AP-VGA, but with lower resistor values (180ohm instead of 470 ohm, and 560ohm instead of 1K). As we can see the image is brighter than Charli's video.
The level shifting in the keyboard signals is done with a series diode and a pull-up in the FPGA pin. I think this is more than really needed and a 10K series resistor could be enough...
And about the internals, the system runs with a 25MHz clock from a PLL. This clock is divided by 2 to get the pixel clock for the video module, and by 7 to get the 3.57MHz of the CPU. The only block that runs with the 25MHz clock is an SPI flash controller with cache that maps the computer ROM into the SPI flash of the board.
The video controller emulates the MC6847 video modes but not all of them, just the two modes used in the computer, that are:
A text mode with 32x16 characters. The character generator ROM is synthesized using about 240 logic cells and stores 64 characters with 5x8 pixels that are in fact displayed inside 8x12 pixel blocks (in reality 2x24 pixels as lines are doubled in the VGA). The semigraphic characters are also displayed with their colors.
A graphics mode with 128x64 pixels and 4 colors where each memory pixel is displayed as a block of 2x3 pixels (2x6 pixels in reality)
The colors are only approximate, mainly because I'm using a CGA palette, more or less:
 The dark green and dark orange color are simply black (a lot easier to code and much better contrast on the screen)
 The orange color  is instead a bit pinky (red + white)
 The only peripheral still not implemented is the cassette port.
Source code is included (verilog only...)

Nice Day everybody
VZ200.tgz

charli va

unread,
Mar 10, 2025, 5:23:40 PMMar 10
to fpga-wars-explora...@googlegroups.com
I love it! These types of retro computers have a lot of knowledge inside them.

Thanks for the compilation of documentation, it is very interesting and it is often difficult to find old manuals or technical sheets.

I am looking for a PS2 keyboard for the next few days, I have to try this wonder that you bring us!


Democrito

unread,
Mar 11, 2025, 6:42:12 AMMar 11
to FPGAwars: explorando el lado libre
Jesus, you are getting us used to the fact that every time you publish something it is a bomb.

I was surprised that such a small BASIC can handle decimals and has trigonometric functions. Now I am very "stuck", but over time I would like to continue exploring mathematics, both in low-level programming and in hardware.

Having a high-level programming language on an FPGA is very interesting.

As always, thank you very much for sharing.

Jo mo

unread,
Mar 13, 2025, 9:02:08 AMMar 13
to FPGAwars: explorando el lado libre
Beautiful work Jesus!
i tried to locate, in your joined Vz200.gz, were was the "software code" for the basic interpreter, but had no success !
is it in the FlashROM.hex file ?

As you may know, this Vtech company is still alive, they make portable computers for kids !

Speaking about old machines,
Here is the oldest (80's piece of electronics) (portable) computer that i have.
Found it 5-6 years ago in a trash at my workplace !
It also as a Basic interpreter an the micro is a 80c85 (8 bit, 2.5 mhz)
IMG_20250313_132622-2.jpg
IMG_20250313_132543-2.jpg

Have a nice days guys

charli va

unread,
Mar 13, 2025, 9:35:59 AMMar 13
to fpga-wars-explora...@googlegroups.com
Very nice machine Joaquim! i love this old machines are very inspirational sometimes.

I wish these machines would end up in museums instead of in the trash. It's an obligation to rescue them ;)

Nice day!

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Jesus Arias

unread,
Mar 13, 2025, 6:42:16 PMMar 13
to FPGAwars: explorando el lado libre
Hi,
The BASIC interpreter is in the ROM file of the computer, in info/vzrom.v20 It has to be programmed into the SPI flash of the board (at offset 0xB0000, "make burnromal") in addition to the FPGA's bitstream ("make burnal").
The FlashROM.hex file also contains that ROM (at offset 0xB0000). It was intended for simulation / debugging
I'm still tweaking the design. Now the Laser 200 has 10KB of RAM and can read emulated cassette images through the serial port. The cassette writing isn't yet done... I'll post the design again when this is completed.
And nice computer the PC8201, Its a pity it has a missing key...
Regards

Jesus Arias

unread,
Mar 17, 2025, 12:34:07 PMMar 17
to FPGAwars: explorando el lado libre
Hi again,
I'm attaching the URLs for the sources of a more complete clone with cassette emulation, and its related documentation.
Have a nice day ;)

charli va

unread,
Mar 17, 2025, 2:15:48 PMMar 17
to fpga-wars-explora...@googlegroups.com
Awesome Jesús! i'll try to test it as soon as possible, very interesting the way that you use BAC as a tape emulator, acting as a translator between a computer and the FPGA. 

I'm telling you here as a soon as i could try it.

--
Has recibido este mensaje porque estás suscrito al grupo "FPGAwars: explorando el lado libre" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a fpga-wars-explorando-el...@googlegroups.com.

Obijuan

unread,
Apr 2, 2025, 2:19:52 AMApr 2
to FPGAwars: explorando el lado libre

Awesome work Jesus! It is amazing!!  wow...

Thanks a lot for sharing this piece of gold

Best regards,
Juan
Reply all
Reply to author
Forward
0 new messages