apple1 for MiST FPGA
Go to file
nino-porcino 50643fc071 fix SiDi UART_RX pin 2022-05-24 16:18:32 +02:00
releases release 2022.05.21 2022-05-21 15:09:55 +02:00
rtl put display din as dout as in the real PIA 2022-05-21 21:17:25 +02:00
.gitattributes Initial commit 2021-12-29 16:05:17 +01:00
.gitignore fork Gehstock's project 2021-12-29 16:18:10 +01:00
README.md Update README.md 2022-01-15 13:01:39 +01:00
apple-one.qpf fork Gehstock's project 2021-12-29 16:18:10 +01:00
apple-one.qsf add global clock to make it Sidi-complaint 2022-05-21 15:08:36 +02:00
apple-one_Sidi.qpf add Sidi project 2022-05-21 15:08:45 +02:00
apple-one_Sidi.qsf fix SiDi UART_RX pin 2022-05-24 16:18:32 +02:00
c.bat add handy batch file to copy output to FPGA 2022-01-09 17:39:09 +01:00
clean.bat fork Gehstock's project 2021-12-29 16:18:10 +01:00
pll.qip fork Gehstock's project 2021-12-29 16:18:10 +01:00

README.md

Apple1_MIST

Apple-I core for the MiST FPGA.

What's implemented

  • 512 bytes ROM (Woz monitor and ACI), remaing space is RAM
  • full working audio cassette interface (see below how to operate it)
  • CPU clock is accurate and RAM refresh lost cycles are implemented
  • NTSC output (with crosstalk pixel artifacts!)
  • Keyboard: ASCII keyboard with clear screen and reset keys

How to use it

F5 resets the machine, F1 clears the screen.

You can load .PRG files from the SD card via the F12 MiST menu. .PRG files are plain binary files with an header of two bytes containing the load address of the program.

If you have a binary file (usually they come with a .bin extension, or no extension at all) you need to convert it to .PRG before you can load with it with the F12 menu option. Check my other repo apple1-videocard-lib where I have some tools for converting from and to various Apple-I formats (prg, bin, wav, woz).

After you load a file, you can run it from the monitor, for example if you have a program that starts at address $0280 type:

280R (return)

Using the ACI Audio Cassette Interface

To be able to use the ACI you need to connect your audio input source (tape, mp3 player, PC, ect...) to the UART_RX pin of the MiST (Mistica units have a dedicated "audio input" jack plug).

Audio output (for saving programs on tape) is simply taken for the speakers output.

The F12 menu option "Audio monitor" allows you to choose from:

  • "tape in": audio coming from the tape is also played on the speaker as feedback
  • "tape out": the speakers play the tape out signal (for recording on a real tape or sampling it on a PC).

The ACI is commanded from its own monitor program. Enter it with:

C100R (return)

(a * will be shown as prompt).

How to load a file

On the ACI monitor type the start and end address of the program you are going to read, followed by a "R", e.g.:

280.2CAR (enter)

Note: make sure the tape (or WAV) is already playing before pressing (enter).

How to save a file

On the ACI monitor type the start and end address of the program you are going to write, followed by a "W", e.g.:

280.2CAW (enter)

Note: press record & play on tape before pressing (enter) on the ACI.

Acknowledgments

This FPGA core is based on the previous projects:

Thanks also to P-L4B and UncleBernie, for all the techincal details and explanations that allowed me to write a more accurate implementation.