📺 Orao (YU102) 8-bit computer emulator
Find a file
2021-11-25 02:30:26 +01:00
assets refactor: improve UI rendering, show access heatmap 2021-10-17 22:55:30 +02:00
orao feat: show dissasembly when CPU halts 2021-11-25 02:30:26 +01:00
wav Initial commit 2015-12-07 17:21:31 +01:00
.gitignore chore: update .gitignore 2021-09-18 22:51:15 +02:00
LICENSE Create LICENSE 2021-09-16 17:16:14 +01:00
orao.py refactor: improve UI rendering, show access heatmap 2021-10-17 22:55:30 +02:00
ORAO13.ROM Initial commit 2015-12-07 17:21:31 +01:00
orao_manual.pdf Initial commit 2015-12-07 17:21:31 +01:00
README.MD refactor: improve UI rendering, show access heatmap 2021-10-17 22:55:30 +02:00

Orao Emulator

Screenshot

Orao is a Croatian 8-bit computer used primarily in elementary schools, as part of a computer literacy initiative.

This is an attempt of an emulator written in Python 2, licensed under the terms of the GNU General Public License, version 2 or later (GPLv2+).

It implements the 6502 CPU and all peripherals without external dependencies, and it's meant to be as short as possible (267 SLOC). Sometimes it cuts corners with readability and it's not PEP-8 compliant, but it wouldn't be fun to have an emulator 2000 lines of boring, by the book code. Would it? :-)

Additional Requirements

  1. Pygame
  2. Numpy

Instructions

Run with python orao.py, enter BASIC using "BC". When asked about the memory size, press ENTER unless you don't want BASIC to use the entire available memory.

WAV files containing programs / games should be located in the wav folder.

To save a BASIC program, use SAVE "filename" - a corresponding FILENAME.WAV will be created. Load it back using LOAD "filename".

DMEM "filename", ADDR, LENGTH can also be used to save a fragment of memory, beginning at address ADDR and of length LENGTH (in decimal). LMEM "filename" loads it back.

Clicking the POWER button does a warm reboot. You can then go back to BASIC with BW to keep the memory intact, or re-initialize with BC. The enclosed PDF describes the monitor mode and commands, but it is in Croatian only (Google Translate can help).

Try LMEM "TETRIS" and run it using LNK4096. You can get double quotes by pressing shift + 2. Erase by using the left arrow.

It should be cross-platform.

Loading .prg files

Run emulator with:

./orao.py [path/to/file.prg]

Then press F8 to load and start program.

Known bugs

  • Pygame and Pulseaudio crash occasionally. - it seems that this fork is less prone to lock-ups and pygame* crashes. Please report any issues you have.
  • no error checking for input .prg file