Apple II expansion card using a Raspberry Pi for I/O
Go to file
2022-01-13 18:55:04 -05:00
.cicd Add ld65 config 2021-10-31 14:35:55 -04:00
.github Update enhancement_request.yml 2022-01-11 19:36:55 -05:00
Apple2 Update copyright notices 2022-01-10 23:00:58 -05:00
Hardware Update images for 5th prototype 2021-07-28 07:50:58 -04:00
RaspberryPi Update copyright notices 2022-01-10 23:00:58 -05:00
.gitignore Change firmware to wait for RPi ready 2021-06-01 00:37:38 +00:00
CODE_OF_CONDUCT.md Fix Codacy lint/security warnings 2021-11-03 05:33:09 -04:00
CONTRIBUTING.md Fix Codacy lint/security warnings 2021-11-03 05:33:09 -04:00
LICENSE Update copyright notices 2022-01-10 23:00:58 -05:00
README.md Move setup instructions to Discussions 2022-01-13 18:55:04 -05:00
SECURITY.md Create SECURITY.md 2021-11-01 06:00:42 -04:00

Apple2-IO-RPi

Apple II expansion card using a Raspberry Pi for I/O

Image of Board

Purpose

The purpose of this project is to provide I/O for an Apple II series 8 bit computer via a Raspberry Pi Zero W which is powered by the Apple II expansion bus. This includes using the attached RPi Zero W for it's storage, network and processor to provide new functionality for the Apple II.

Features

  1. Boot message which waits for RPi to be ready
  2. ProDOS bootable drive from image stored on RPi
  3. Execute Linux bash shell on the RPi from the Apple II
  4. Load binary files directly from the RPi to the II
  5. Update Apple II firmware in place from image on RPi
  6. Supports two drive images at the same time (Note: backward compatible with previous firmware but requires firmware update in order to work with two drives)
  7. Supports "RPI" command from BASIC to execute Linux commands from the command prompt or inside BASIC programs: 10 PRINT CHR$(4);"RPI ls -al /"

Project Status

So far, this is a project and not a finished product. The current prototype is on the fifth revision and a few have been assembled and tested. It is now possible for the Apple II to boot from and write to a virutal hard drive image stored on the RPi in any slot and run a bash shell on the RPi via the Apple II. The code has very few tests and is incomplete. Note that currently the firmware assumes an 80 column card is in slot 3 and than you have lowercase support. If you have a problem or idea for enhancement, log an issue here. I recommend starring/watching the project for updates on GitHub. You are welcome to fork the project and submit pull requests which I will review.

Roadmap

  1. Extend BASIC.SYSTEM commands
    1. RPI - Execute a single Linux command (DONE)
    2. SH - Open a Linux shell
    3. WGET - Download and save to file
  2. Shell improvements
  3. Proper ProDOS clock driver (currently just directly sets values on block reads)
  4. Bi-directional image conversion between common formats and HIRES
  5. Remote code execution
  6. Proxy VNC connection, rendering as Apple II compatible graphics

Setup

Setup card from scratch

Setup if you received a complete board from me

Update to latest

Additional steps to upgrade Golang and use new command line parameters for the service (if you had set up before October 11, 2021)

Similar Project

If you prefer having Apple II peripherals control a Raspberry Pi rather than simply using the Raspberry Pi to provide storage, network access and processing to the Apple II, have a look at David Schmenk's excellent Apple2Pi project. I am often asked about differences between these two projects. They are similar in some ways but essentially opposite. The Apple2Pi is meant for the primary machine to be the RPi, using the Apple II for it's peripherals. The Apple2-IO-RPi is meant to have the Apple II as the primary machine and just use the RPi for its processing, storage and network.