Add README.md
This commit is contained in:
parent
30735d6337
commit
fcf18c4c91
|
@ -0,0 +1,63 @@
|
|||
# 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 you type on the remote terminal |
|
||||
|
||||
entries for programmers:
|
||||
|
||||
| address | function |
|
||||
| --- | --- |
|
||||
| `$C000` | ready flag - contains 0x00 if the device is ready to write/read byte |
|
||||
| `$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 sucessfully build the firmware:
|
||||
|
||||
* [xa](https://www.floodgap.com/retrotech/xa/) cross assembler software
|
||||
* [avr-gcc](https://gcc.gnu.org/wiki/avr-gcc) toolchain
|
||||
* [avr-libc](https://www.nongnu.org/avr-libc/) set of libraries
|
||||
* [AVRDUDE](https://www.nongnu.org/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`
|
Loading…
Reference in New Issue