There are many ways to transfer info via audio (e.g. google for modem or frequency-shift keying). The Apple Game (and Disk) Server does not use FSK however. It relies on the Apple II cassette port which is nothing more than a 1-bit digital-analog-converter. IOW, it can detect the shift from positive to negative (zero crossing). The game server WAV files encode the game @ 48K samples/second using a single 12kHz wave for the zeros and a single 8kHz wave for the ones. IOW, 4 pulses for 12kHz (2 +, 2-) and 6 pulses for the 8kHz. The Apple II has a 1023000 cycles/second clock. So I have to detect the zero crossing, chksum and write the data in 1023000/12000 ~= 85 clock cycles. As long as the audio stream is clean and perfect (something only a computer or CD player can do), then it works every time.
If you load up any of the games in Audacity (freeware waveform editor), you can actually "see" the 0's and 1's. The 0's will be thinner.
Lastly, I will be publishing an article on my blog (http://jerkwerks.com) this month with how it works and all the source code.
"the most common cause of error is external sounds being piped into the download stream (e.g. mail alerts) and low volume" -- http://asciiexpress.net/gameserver/readme.html
There are many ways to transfer info via audio (e.g. google for modem or frequency-shift keying). The Apple Game (and Disk) Server does not use FSK however. It relies on the Apple II cassette port which is nothing more than a 1-bit digital-analog-converter. IOW, it can detect the shift from positive to negative (zero crossing). The game server WAV files encode the game @ 48K samples/second using a single 12kHz wave for the zeros and a single 8kHz wave for the ones. IOW, 4 pulses for 12kHz (2 +, 2-) and 6 pulses for the 8kHz. The Apple II has a 1023000 cycles/second clock. So I have to detect the zero crossing, chksum and write the data in 1023000/12000 ~= 85 clock cycles. As long as the audio stream is clean and perfect (something only a computer or CD player can do), then it works every time.
If you load up any of the games in Audacity (freeware waveform editor), you can actually "see" the 0's and 1's. The 0's will be thinner.
Lastly, I will be publishing an article on my blog (http://jerkwerks.com) this month with how it works and all the source code.