Git Product home page Git Product logo

dinospi's Introduction

DinosPi

Altair, IMSAI, Apple-1 and Apple ][ emulators for Raspberry Pi

This project consists of the following auto-compiling and installing bash scripts for Raspberry Pi:

  • Apple-1 computer emulator pom1.
  • Apple ][ computer emulator linapple supporting Apple ][, Apple ][+ , Apple //e, and enhanced Apple //e computers.
  • CP/M emulator
  • Altair/IMSAI emulator z80pack supporting Altair 8800 system with 8080 or Z80 CPU, IMSAI 8080 system with 8080 or Z80 CPU, generic Z80/8080 CPU emulation, emulation of a complete system for running CP/M 1, CP/M 2, CPM 3 and MP/M 2.
  • Information how to run Raspberry Pi OS in dual-boot with BMC64, the fastest Commodore emulator for Raspberry Pi (bare metal/low latency emulator).

Apple-1, Apple ][ and CP/M emulators can be run in CLI as well as in graphical mode:

Emulators can be installed on the latest version of Raspberry Pi OS Lite. The Altair-IMSAI part requires the full version of Raspberry Pi OS (but compilation is possible in the Lite version and then you can use CLI CP/M emulator).

This project runs on Raspberry Pi Zero, Zero W, Zero 2 W, 2, 2B, 3, 3B, 3B+, 4, 400. Combined with a Raspberry Pi zero, 4GB SD Card and Raspberry Pi OS Lite, this is probably the cheapest option for emulating an Apple ][ computer (is a great tool for learning Applesoft BASIC). However, I strongly recommend the Raspberry Pi Zero 2W as a minimum.

Installation

This part of project can be installed on a latest Raspberry Pi OS Lite/Full (32-bit).

Raspberry Pi OS Lite (32-bit) for 4GB SD card, can be installed from the Raspberry Pi Imager level by selecting: Raspberry Pi OS (other) -> Raspberry Pi OS Lite (32-bit) -> CHOOSE STORAGE -> WRITE.

Raspberry Pi OS (32-bit) for 8GB SD card, can be installed from the Raspberry Pi Imager level by selecting: Raspberry Pi OS (32-bit) -> CHOOSE STORAGE -> WRITE.

To activate the OpenGL drivers you need to run raspi-config from a terminal window. Enter the comand: sudo raspi-config Select Advance Options -> GL Driver You can now choose between

  • Legacy - non-GL driver
  • GL (Fake KMS) Desktop driver
  • GL (Full KMS) Desktop driver

KMS refers to Kernel Mode-Setting, which should make the driver more efficient with better error handling. The Legacy option will revert the Raspberry Pi's back to the standard graphics driver mode. Select GL (Full KMS) Desktop driver and then OK, second OK and Finish and Reboot.

Then You can clone and compile this repository with retro-computers emulators:

git clone https://github.com/jaromaz/DinosPi
cd DinosPi
./build_all.sh

Each of these sub-projects can be installed separately by running the corresponding compilation & installation script contained in the directory relevant to the sub-project concerned.

The process of compiling and installing packages can take a few tens of minutes.

Start up

After installation the following commands run individual machines:

  • apple1 - Apple-1 emulator
  • apple2 - Apple ][ emulator
  • cpm - CP/M emulator
  • altair - Altair 8800 CP/M emulator (Xorg)
  • imsai - IMSAI 8080 CP/M emulator (Xorg)
  • imsaibasic - IMSAI 8080 Basic emulator (Xorg)

All emulators are pre-configured and have default images attached.

Options

Apple-1

pom1 has many options to configure and utilize the emulator. They are accessed by Ctrl+<letter>.

Shortcut Function
Ctrl+F Switch to fullscreen or window.
Ctrl+L Load memory from a binary or ascii file.
Ctrl+S Save memory to a binary or ascii file.
Ctrl+Q Quit the emulator.
Ctrl+R Soft reset the emulator.
Ctrl+H Hard reset the emulator.
Ctrl+P Set the pixel size (1 or 2).
Ctrl+N Turn scanlines on or off (pixel size 2 only).
Ctrl+T Set the terminal speed (Range: 1 - 120).
Ctrl+B Set the cursor to blink or not.
Ctrl+C Set the cursor to block or @.

Apple ][

The window size can be defined in the /usr/share/dinospi/linapple/linapple.conf configuration file in the Screen factor variable.

Clicking in the LinApple window will capture the mouse. It may be released by pressing any function key.

Key/shortcut Function
F1 Show help screen.
F6 Toggle fullscreen mode.
Ctrl+F2 Cold reboot, i.e. power off and back on.
Ctrl+F10 Hot Reset (Control+Reset)
F12 Quit.
F3 Load disk image to slot 6 drive 1.
Alt+F3 Load disk image to slot 6 drive 1 from FTP server.
Shift+F3 Attach hard disk image to slot 7 drive 1.
Alt+Shift+F3 Attach hard disk image to slot 7 from FTP server.
Ctrl+F3 Eject disk image to slot 6 drive 1.
Ctrl+Shift+F3 Eject hard disk image to slot 7 drive 1.
F8 Save screenshot as a bitmap.
F9 Cycle through video modes.
Pause Pause/resume emulation.
Scroll Lock Toggle full speed emulation.
Numpad + Increase emulation speed.
Numpad - Decrease emulation speed.
Numpad * Reset emulation speed.

Many disk images will boot straight into the application. Some disk images only have files and you must find the correct application to run. In this case you will need to execute BASIC commands to list the files on the disk and run programs.

Altair & IMSAI

Launching Altair or IMSAI machines first select ON and then RUN. Running IMSAI, you can switch to 3D model of this computer and open the presentation of peripherals through the site: http://localhost:8080 (1GB RAM required).

dinospi's People

Contributors

jaromaz avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

saevherne7

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.