Apple-1 Serial Interface
Go to file
flowenol 95e03b38b5 Add applesfot-lite link to README.md 2021-03-02 01:00:01 +01:00
firmware hardware recognition memory addresses added, fixed apple-1 to remote test program 2021-01-07 23:32:09 +01:00
mapping Added api routines for read and write 2021-01-16 01:13:14 +01:00
src changed assembly source files extension to *.a65 2021-02-06 23:28:49 +01:00
.gitignore First commit 2020-05-22 09:55:24 +02:00
Makefile changed assembly source files extension to *.a65 2021-02-06 23:28:49 +01:00
README.md Add applesfot-lite link to README.md 2021-03-02 01:00:01 +01:00

README.md

apple1serial

This repository contains firmware files for the Apple-1 Serial Interface expansion card.

Description

This project aims to provide alternative to the ACI for the Apple-1 replica or original boards owners via use of the serial communication (9600/8-N-1). The project is based around ATMega328P MCU which operates as half-duplex UART.

Memory map

address function
$C100 the original ACI loader program adapted to the A1SI
$C300 "teletype on apple-1" test program - the data from remote terminal appears on Apple-1 screen
$C400 "teletype on remote" test program - the data from Apple-1 appears on remote terminal
$C500 0-255 repeating counter - all possible bytes are repeatedly sent to remote terminal
$C600 serialmonitor - the well known Woz Monitor, but now on the remote terminal

entries for programmers:

address function
$C000 ready flag - contains 0x01 if the device is ready to write/read byte, 0x00 otherwise
$C080 read address - the location for data read from the interface, first read of this address switches the device to read mode
$C081 write address - the location for data to be written via the interface, first write to this address switches the device to read mode
$C23A software reset routine - resets the MCU
$C1EC block read routine - reads data from the interface to the specified address range
$C213 block write routine - writes the data via the interface from the specified address range
$0034 lower byte of the end address for block read/write routines
$0035 upper byte of the end address for block read/write routines
$0036 lower byte of the beginning address for block read/write routines
$0037 upper byte of the beginning address for block read/write routines

Contents

The contents of this repository are as following:

  • firmware/ - contains source code for the ATMega328 MCU firmware
  • mapping/ - contains EQN and JED files for GAL20V8 based address decoder for the board
  • src/ - contains the 6502 assembly sources for the A1SI onboard ROM routines

Requirements

You need the following to successfully build the firmware:

  • xa cross assembler
  • avr-gcc toolchain
  • avr-libc set of libraries
  • AVRDUDE AVR programmer software or equivalent
  • Some software capable of translating the EQN files into JED's. I used for this purpose the DOS based EQN2JED from OPALjr PLD Development Package.

How to build?

To build the firmware just type:

make

And to clean the build:

make clean

PCB

The KiCad project files with board design and schematics can be found here:

http://github.com/flowenol/Apple1SerialPcb

Applesoft BASIC support

You can also LOAD and SAVE your Applesoft BASIC programs thanks to the branch of the applesoft-lite project which has been modified to make use of the A1SI expansion card:

http://github.com/flowenol/applesoft-lite