Skip to content

PetrM1/OndraSPO186_MiST

Repository files navigation

Ondra SPO 186

Ondra SPO 186 image
Ondra SPO 186 is a 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 MiST FPGA.

Short demo video of this core on youtube (captured on MiSTer)

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) signalling"
  • 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. 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)
  • 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

  • Ondra SD - RAW R/W support (required for CP/M)
  • tape load (no line in on MiST)

How to install core

  • copy file Ondra_SPO186_########.rbf from releases folder to your MiST SD card to Ondra folder in SD root. Don't forget to add System attribute to Ondra folder (######## stands here for date of version - you might want to delete earlier from SD card if you have some)
  • in MiST menu navigate to Ondra folder to Ondra_SPO186 item and start the core

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 doesnt 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

For more info see

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