
I learned a lot by going through the ROM listing which was provided in technical book, one of the three books supplied with Apple ][. We were dumping data from instrumentation, so we used RWTS to write blocks to the disk without the overhead of the file system.Īll in all, Wozniak and friends got a surprising amount of functionality from rather minimal slow hardware (1.02 MHz CPU clock) by using some very cleverly written firmware and software. The RWTS (read/write track, sector) routine to manage the disks was also some very clever. It was pretty clever, but a bit touchy to keep aligned. I remember the single sided 5.25 inch floppies only held something like 180K bytes, but Wozniak’s interface to stripped down guts of Shugart disks had only about six discrete parts and the bus interface card was just done witha few ICs as well. I recall the clock supplied to the card connectors was out of phase with the CPU clock, so I used half of a 74LS123 to delay about 3/4 of a cycle and the other half to generate the required 490 uS pulse to make the 6522s happy. About the only native I/O was the 14 pin DIP socket for the game paddles. One of the first things I did was to build a Apple bus prototype board with a some 6522 VIAs to get some reasonable I/O. I worked in a lab which used Apple ][ computers back in 1980.
#EPSON EASY PHOTO PRINT 2015 CODE#
Here’s some crappy code I threw together, not sure if it is descriptive enough by itself or good, but I recall it working: shift all those 3 bit “wsbits” into your output stream and the WS doesnt mind 800/400 timing as opposed to the ridiculous specs in the datasheet (do note that my method is within the ±tolerances specified in the datasheet) Then for each high bit I send a 110, for each loww bit I send a 100. I use the SPI port on a TI TM4C1294 in mode 3 (phase 1 clock 1) at a bit rate of 2.5MBit – each bit is 400ns long. Posted in LED Hacks, Microcontrollers, Retrocomputing Tagged 6502, apple II, neopixel, retrocomputing, ws2812 Post navigation Clocking the data out of the shift register handles the timing-critical stuff. The bits in the middle determine if the pulse shifted out is long or short, and they’re set by the 6502, through a 6522 VIA chip, just like the Apple II would have.



Instead of bit-banging the WS2812’s “long high is a 1, short high is a 0” signal directly, the first few bits of the shift register are hard-wired to VCC and the last few to GND. Specifically, abuses the 74LS165 parallel-in, serial-out shift register for his dirty work. took up the challenge of getting the venerable 6502 processor to drive Neopixels and won! After all, if the chip is good enough for Bender and the Terminator T-800, it should be able to blink some colored LEDs, right? The secret sauce is shift registers!

It was a challenge to bit-bang with an ATtiny85 back then, but there’s no way something as old and crusty as an Apple II would be up to snuff, right? The timing diagrams in the datasheet-of-questionable-veracity made it sound quite tricky, with tight timing tolerances and essentially a high-speed two-bit PWM data protocol at 500 kHz. We can still remember when the WS2812 LED first came into our consciousness, way back in the mists of time.
