Tuesday, December 19, 2017
Demo Video of a2usbdsk in a Apple II build and deployment pipeline
Retro redux: a2usbdsk Release
RetroChallenge 2017/10 is way over and I got sidetracked about half-way through. Way too much IRL stuff got in the way. However, I have had a little bit of time recently to try and finish off my project. Upon reviewing my A2-SPI-DSK tool, I noticed some problems in my code. It was causing some serious issues with getting it to compile and work correctly. I guess that’s one of the issues with trying to write that much code in a month.
Anyway I’ve had some time recently to get things working, and completed the a2usbdsk v1.5 tool (Download). It now works perfectly to get a virtual disk to a real Apple II via USB. In addition, I added support for a second drive. I was so happy to see it boot a disk again! It is still read-only, but I have some ideas for that issue.
So, if you are developing Apple II software, you can write it in Xcode with cc65, then when you build it, just add a line to your makefile like:
/usr/local/bin/a2usbdsk -1 $(PGM).dsk
This will mount the disk image and make it available to your Apple II over USB via the A2-USB-DSK. The A2-USB-DSK is easy to build using the schematics below and a CJMCU-232H FT232H module available on eBay for less than $10. Total build including the other ICs and a proto-board should be in the $20 range.
I created a branch of Jeremy Rand's Apple2BuildPipeline project to showcase how it works in a real project. Hopefully I can get a video up in the next few days.
Thursday, October 12, 2017
DSKalyzer doubts
Tuesday, October 10, 2017
Some AII-SPI-USB problems resolved
I was having some serious issues getting my AII-SPI-USB command line tool (for transferring disk images to the UM232H) working on my newer MacBook. I tried rebuilding it, then rebuilding libftdi, and libusb, and libmpsse. I finally got things working and Xcode asked me to update my build settings. Then, of course, nothing would work again. The primary problem was "duplicate symbol" errors that were suddenly popping up. Some edits to libmpsse, and some changes to my code, and I finally was able to re-build it. I think I should staticly link the libraries I need for the tool, since most users won't have the will power to compile libftdi, or libusb to use it.
I need a new name for the program too. AII-SPI-USB is not a very posixy name for a command line tool. Maybe a2usbdsk.
It's ironic that one of the benefits of programming for retro computers is that the hardware or operating systems almost never change. Do it once, and it works forever! Not so for modern hardware, even the modern hardware interacting with the retro computer.
More AII-SPI-DSK problems
Monday, October 9, 2017
AII-SPI-DSK problems
Saturday, October 7, 2017
Trying Existing Virtual Build Pipeline
- Mac GUI: Compiling Apple II Programs in C with cc65 and Mac OS X
- BlondieHacks: Apple ][ Development on OS X
@PATH=$(PATH):/usr/local/bin; $(CL65) -t apple2enh -C apple2enh-asm.cfg -l$(PGM).lst --start-addr $(ADDR) $(PGM).s
Yay! Seizure inducing flashing X's in Virtual II Apple II emulator (the example code is really supposed to do that).
So, the example build process now works with an emulator. Now to incorporate DSKalyzer and a real Apple II.
A2BP .011
- adds help, clean
- sets apple2 as the default system for cc65 samples
- more variables
#
# Makefile
# A2BP .011
#
# This downloads and installs the pieces for the A2BP
# toolchain, build pipeline, and deployment pipeline
# for the Apple II on OSX.
#
# Created by Eric Pooch on 10/05/17.
# https://apple-crapple.blogspot.com
#
# Usage:
# make all
# sudo make install
#
PGM=a2bp
help :
$(info Instructions: Place makefile in a folder with no spaces in path.)
$(info then type:)
$(info make all)
$(info [packages will be downloaded, expanded, and compiled])
$(info sudo make install)
$(info [packages will be installed, overwriting existing])
$(PGM) : cc65 dskalyzer USB_AII_Disk_Emulator
install-$(PGM) : cc65 dskalyzer USB_AII_Disk_Emulator
make --directory=cc65 install MAKE="make PREFIX=/usr/local SYS=apple2"
ditto dskalyzer /usr/local/bin/
ditto USB_AII_Disk_Emulator/AII-SPI-DSK /usr/local/bin/
USB_AII_Disk_Emulator.tgz :
curl -L -O https://sites.google.com/site/maclcdproc/downloads/USB_AII_Disk_Emulator.tgz
USB_AII_Disk_Emulator : USB_AII_Disk_Emulator.tgz
tar zxvf USB_AII_Disk_Emulator.tgz
dskalyzer-macos-amd64.zip :
curl -L -O https://github.com/paleotronic/dskalyzer/releases/download/v0.1.3/dskalyzer-macos-amd64.zip
dskalyzer : dskalyzer-macos-amd64.zip
tar zxvf dskalyzer-macos-amd64.zip
# dskalyzer is older than the archive, so update
touch dskalyzer
cc65 :
git clone https://github.com/cc65/cc65.git
make all --directory=cc65
all: $(PGM)
install: install-$(PGM)
clean:
rm -rf cc65
rm -f dskalyzer-macos-amd64.zip
rm -f dskalyzer
rm -f LICENSE
rm -f *md
rm -f USB_AII_Disk_Emulator.tgz
rm -rf USB_AII_Disk_Emulator
So, now that I built my build/deployment environment. It's time to write a program!
Friday, October 6, 2017
A2BP - The OSX to Apple II build and deployment pipeline
Tuesday, October 3, 2017
RetroChallenge 2017/10 Entry
- Use the recently released DSKalyzer as my disk image creation tool, rather than AppleCommander.
- Use my own USB to SPI to Disk II adapter to immediately test my builds on real hardware.
- Set up automatic build and deployment pipeline from Mac OSX to real Apple II hardware.
- "Hello World" on Apple II