Skip to content

PetrM1/OndraSPO186_ZXUno

Repository files navigation

Ondra SPO 186

Ondra SPO 186 image
Ondra SPO 186 is Czechoslovakian 8-bit computer developed in 1985 in Tesla Liberec by Ing. Eduard Smutný, Ing. Tomáš Smutný a Ing. Jan Mercl as a cheap school and home computer. Tesla produced about 2000 Ondra computers. And this is its implementation in Verilog for ZX Uno and ZX Uno 2M FPGA.

Short demo video of this core on youtube

https://youtu.be/YnFbf-u1D80

Older video with load via serial port - not supported anymore
https://youtu.be/B2MRWTKYOYU

Specifications

  • CPU U880 @4MHz - GDR clone of Z80
  • 64 kB RAM (10kB used by video RAM)
  • 4 - 16 kB ROM (EPROM)
  • TV output
  • up to 320x255 pixels B/W (40 columns x 24 rows)
  • relay for cassette player control - often used for "sound (click) signaling"
  • 7 frequency sound generator (only 7 different given frequencies)
  • one 20 pins connector for joystick, Centronics parallel port (8-bit data out, Strobe_n out, Busy in), UART (Reserva In = RXD, Reserva Out = TXD)
  • cassette player connector for SW load and save at 2400Bd

Keyboard

Ondra has a modest keyboard with 37 keys only and so each key can serve for 2 or 3 different characters based on used modifier-key.

Modifier keys:
Ondra -> PC Keyboard
Shift -> Shift
Symbols -> Alt
Ctrl -> Ctrl
Numbers -> Tab
ČS -> Caps Lock (used for Czech diacritics)

Each modifier key needs to be pressed (and hold) before pressing character key.

ZX Uno core keys:

CTRL + ALT + Delete -> Hard reset ZX Uno
CTRL + ALT + BackSpace -> Ondra core NMI reset
F5 -> Ondra core cold reset
F7 -> switch AD724 PAL/NTSC
this is related to composite output only. I'm struggling to generate PAL video without red artifacts and NTSC looks as it suppose to, but is unstable. And I'm sure original HW didn't generate NTSC. This will be removed once I solve PAL issue.
F8 -> enforce/disable scan doubler
F9 -> switch ROM (ViLi -> Tesla -> Test ROM)

Here is mapping Ondra keys to PC Keyboard. Please note modifier keys are in different colors as invoked characters on other keys.

Ondra Keyboard mapping

Here is bigger picture of keyboard mapping.

Graphics generation (Video circuit)

Ondra has a very unique video circuit. Video address counter is made with 2x КР580ВИ53 programmable interval timers - Russian clone of i8253. In fact although Ondra was designed and manufactured in Czechoslovakia most of ICs were "Made in USSR". Timers are used for generating VSync and HSync start pulses as well as for generaing video address itself. Cheap, simple but not easy :) Advantage of this solution is that screen resolution can be programmatically changed. Disadvantage is that CPU has to be while screen is being drawn. CPU works on about 18-20% only.

What is implemented

  • CPU
  • 64 kB RAM
  • Keyboard
  • Sound (7 different sound - not forming a scale - as on real HW)
  • Tape load via line in connector
  • Ondra SD - modern HW for easier SW load from SD Card
  • OndraMELODIK - new HW for Ondra bringing better sound (sn76489 chip). Here is link to youtube video with demo app

What is missing

How to install core

  • copy file Ondra_SPO186.ZX1 from release folder to your ZX Uno SD card
  • rename it to COREx.ZX1 where x replace with slot number where you want to have in in ZX Uno boot menu (ordered by that id)
  • go to ZX Uno setup (reset ZX Uno with CTRL + ALT + Backspace and then pres F2 when the Zx-Uno logo/boot screen is shown), choose upgrade tab and upgrade menu item with given id, or chose "Add new core" from bottom of menu if this id is not available in menu yet. Then select "SD File"

How to start

Options

Loading games via Ondra SD

  • No external HW required - Ondra SD is implemented inside FPGA

Preparing for use

SD Card content

Using Ondra SD

  • Use ViLi ROM (Ondra greets you with message "Zdraví Vás ONDRA")
  • type # (ALT + E) and press Enter - if Ondra SD doesn't react press enter again/for longer time or reset Ondra
  • Ondra File Manager appears in few seconds after several beeps
  • Choose file or folder and press Enter to change dir or load a file
  • Shift change directory to root of SD card

Loading games via audio line in

  • Connect your audio source (cassette player, mobile, ...) to ZX Uno line in
  • Press any key. Screen turn black and will flicker time to time. You can see flicking text .KÓD 1. This is ok. Ondra turn off screen to gain more time for CPU and text .KÓD x will change as game will be loading to Ondra (x will raise from 1).
  • Start playing WAV file
  • Waitn and then enjoy the Ondra SPO 186 and the game :)

For more info see

Some of them are only in Czech or Slovak, but Google translate is your friend :)

About

Ondra SPO 186 core for ZX Uno and ZX Uno 2M

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published