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
Monday, July 31, 2017
Disk II Drive to USB Adapter

Monday, November 7, 2016
RetroChallenge Epilogue and Apparent Success
- Pin 11 of the socket must be connected high (or to pin 12, or to a soft switch to enable video scanning on row E of RAM).
- Pin 11 of IC F2 must be disconnected and that line (not the IC pin) must be connected to ground instead (See my hand-drawn schematic).
It seems to have worked! The computer shows the APPLE ][ greeting just as expected. I need to connect a keyboard and a disk controller card to test it all out and verify that all 48K is being accessed.
So, I now have an Apple II with 48K of 4164 DRAM in just one bank of RAM. Now for 64K. Or 128K...
![]() |
2 banks of RAM installed for future 128K modifications |
Tuesday, November 1, 2016
Final Push and Failure
I ran jumpers wires on the back of the Apple II+ logic board to route the various signals I needed (PHI_0, AX, A14&A15) to the J1 socket area. Fortunately since only half of J1 is used by the Apple II+, I can use the unused pins of that socket to route my signals through to the new circuit I am adding.
Warning - I don't know if this works yet.
After I ran the wires, I started trying to solder a tiny adapter board to translate the 74LS257 signal locations to the new 74LS153 IC. That was taking too much time for something that might not work at all, so I put the circuit on a bread board. Here it is:
Unfortunately, this did not work. I suspect that the dip jumper cable may be too long and adding some capacitance or delay. Or, the RAM timing may have been thrown off by the internal logic of the new IC. My Apple II+ is not booting and is in a similar state to when the RAM was in the wrong row. I'm sure I would have figured this out, but Halloween took priority.
Better news is that my Apple IIb is in a pretty final state. I think I will start buying supplies to actually build it.
Until next time, RetroChallenge!
Saturday, October 29, 2016
Apple II+ 64K RAM Refresh and Addressing
Friday, October 28, 2016
Troubleshooting Frustrations
I spent a number of hours last night and tonight trying to figure out why my modified Apple II+ was not beeping, and instead showing a screen full of question marks (or sometimes a white screen) on start-up, even after I added a row of 4264 DRAM. I swapped all of the ICs back and forth with my functioning Apple II+ and still had the same problem. At that point, I realized that I should have done some basic testing before I modified the logic board. I removed my modifications, and still had the same problem.
I found out that I could get very similar symptoms on my working Apple II+ if I removed the F2 74LS139 decoder, which selects which RAM bank to use. So I started checking continuity on my non-working board. I discovered that here wasn't continuity between the low bank selection line and the row that I had my RAM in. I thought I had found a major fault in the board. Then it hit me. The apple II+ rows are labeled A through K, and start with A on the bottom ROW. I had put my RAM in row E (the high address bank), instead of row C (the low address bank). I moved the RAM chips and after swapping out a bad chip, BEEP, and APPLE ][ at the top of the screen.
I felt so dumb. Hours wasted. So now I'm re-doing my modifications. Still time for some progress tonight. At least it's working. That logic board has't been fully functional in probably 30 years.
Tuesday, October 25, 2016
Apple II+ RAM Replacement - Power
Sunday, October 23, 2016
Apple II+ Logic Board Repairs
Here are the two Apple II+ logic boards that I have for repair. They were mostly stripped of integrated circuit chips, and even have some ports and connectors that were de-soldered to repair other boards (back in the 1980's).
I chose to repair the board on the left due to the missing D6 RAM socket on the other board and a possible damaged trace under the F8 ROM.
I swapped the power connector and added a missing audio jack. These are still available on eBay as "panel mount mono jack":
A word of caution. I have found that the solder on these old boards has the potential to make you feel sick and hung-over. Drink some milk before you solder and work in a very well-ventilated area.
I was able to replace most of the missing IC on the board from the box of spares I had, and from the other board. I have no idea if they work, so that will probably require a lot of troubleshooting.
The only IC I could not replace from old pulls was the one labeled "9334" in the J14 position. Fortunately, this IC can be replaced by a 74LS259, which I had on hand from my early experiments with my SPI based Disk II emulator.
Finally, I did not want to have to troubleshoot with old, possibly bad RAM, so I have some 64K 4264 DRAM chips on hand to see if I can replace the original 16K 4116 chips. This will require some modifications to the logic board (due to the different power requirements and slightly different pinouts), which I hope I can complete before the end of RetroChallenge.
Sunday, October 16, 2016
Apple IIb Model


Saturday, October 15, 2016
Feet and Boots!
![]() |
The parts donor Apple II+ I am trying to repair is really a mess. Even the rubber feet were harvested for another computer. Fortunately, I found some decent rubber feet on eBay. I bought two packs of 12 20mmx20mmx8mm and it is a great replacement part for Disk II and Apple II feet. |
Regarding my other project, I was pretty scared to connect the repaired IIGS Upgrade board to a power supply, half expecting everything to start smoking. It boots! First time in about 15 years:
![]() |
![]() |
Composite video works | and RGB works! |
Apple ][b Refinements
