Remix.run Logo
darrinm 7 hours ago

As a kid I didn’t understand what the 555 timer chip on the Apple II disk controller was doing but I learned the hard way that when you misalign the pins on the drive connector cable and the 555 chip releases its blue smoke you can’t use the drive anymore :(

JKCalhoun 4 hours ago | parent | next [-]

I have read as well that the 555 was used in the game paddles for the Apple II. 555 + potentiometer (the part you turned) varied the length (duty cycle?) of a square wave which the Apple II used to determine the paddle position.

tmoertel 19 minutes ago | parent | next [-]

The Apple II family did indeed use 555 timers, in either 558 or 556 chips, to drive the timing circuit used to read paddle and joystick positions. The following article explains both the circuit and the reading code:

https://www.applefritter.com/appleii-box/APPLE2/NibbelingAtT...

aidenn0 3 hours ago | parent | prev [-]

The port that was standardized on for PC joysticks was the dumbest possible one:

The joystick itself just had 1 potentiometer per axis, wired directly to the port. The port had no A/D, no timer, and no interrupt. Instead there was a GPIO and a capacitor. You discharged the capacitor with a GPIO write, and then polled the GPIO to measure when the capacitor was charged again. The number of iterations through your polling loop would be proportional to the position of the axis.

This is a pain to emulate if you aren't doing cycle-accurate emulation. IIRC Dosbox has a bunch of kludges and still doesn't get the joystick right for every game.

[edit]

To clarify the game port used a 558 (quad stripped-down version of a 555) as a schmitt trigger, so it generated pulses of a width proportional to the potentiometer position. I looked up the Apple II interface and it looks very similar, but with the caveat that accelerated versions (e.g. the IIgs) would always clock to 1MHz when reading the joystick port, compared to the PC that could run at a huge range of clocks (and CPI) over the lifetime of the port.

PunchyHamster 2 hours ago | parent [-]

I remember using similar trick to use LEDs to sense light. Basically, charge the (reverse biased) LED capacitance, then measure how long it takes to discharge. The lil circuit I had was LED bar, so I used it to sense finger position using that (other leds providing light, LED doing the sensing judging that light and comparing to rest

fortran77 6 hours ago | parent | prev | next [-]

There was a 556 on the Apple ][ disk controller (a dual 555).

See: https://mirrors.apple2.org.za/Apple%20II%20Documentation%20P...

huflungdung an hour ago | parent | prev [-]

[dead]