Archive for 10th November 2019

Binary to Wozmon

(c) 2019 by Matthias Arndt <marndt@asmsoftware.de>
The MIT License applies to this project.

Abstract

This is a little file tool to dump a binary file in the format used by the
Wozmon monitor software used by the Apple 1.

The output can directly be fed into a serial link if necessary.

System requirements

  • C99 compliant compiler and runtime environment

Usage


$ bin2woz <loading address> <input file>

The loading address is given in 4 hexadecimal digits without prefix.
The output is dumped to stdout including CR/LF for Wozmon.

Example


$ bin2woz 0280 my_program.bin

Download

The project can be found for download at https://github.com/simonsunnyboy/bin2woz

Apple 1 Emulation von Peter Sieg ausprobiert

Ich habe im Laufe der Woche mal die Apple 1 Emulation auf Arduino Basis von Peter Sieg ausprobiert.
(vgl. https://github.com/petersieg/arduino/tree/master/arduino_6502_apple1)
Den Anstoß gab mir ein kleiner Artikel in Load #5.

Bis auf die RAM Beschränkung auf 1,5K läuft das Projekt auf Anhieb auf einem Arduino Nano.

Apple 1 Emulation auf Arduino Nano

Vielleicht baue ich den Ansatz noch aus, mir gefällt der sich magisch compilierende Sketch nicht. Es werden keine sauberen Headerdateien verwendet. Ich würde ausserdem noch das AVR interne EEPROM als Programmspeicher für den emulierten Apple aktivieren.

Kleine Testprogramme habe ich bisher mit dem Acme Assembler erstellt, mit dem man z.B. auch für den C64 Programme erstellen kann.

Um die Programme auch in den Wozmon vom Apple 1 eingeben zu können, habe ich mir eine kleines Hilfsprogramm geschrieben. Dieses konvertiert die Binärdaten in einen Hexdump, den man direkt in den Wozmon über UART hochladen kann.

Vgl. https://github.com/simonsunnyboy/bin2woz

Das Testprogramm oben füllt nur 16 Bytes innerhalb der Zeropage auf 0x41.

		*=$0280

fill 	= $41    ; fill bytes
dest	= $0080  ; start address of destination

		ldx #0
		
loop:		
		lda #fill
		sta dest,x
		inx
		cpx #$10
bne     loop

		jmp $ff00  ; back to wozmon
		
		; acme -o fill.bin fill.S