[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cassette interface data format?



Jayson Smith <nospamratguyspambegone@nospamplease.bellsouth.ihatespam.net> wrote:
> Hey, with this info, I bet somebody could write a Win/Linux program to take
> any standard file and convert it to a .wav of a valid Apple II cassette dump
> of that file.  That way you could transfer, say, ADT to an Apple via the
> tape interface.  Or any other binary for that matter.  DOS, even?
> I couldn't do it, but somebody probably could!  What would be the best
> sample rate for such a wav?  What kind of frequency response does the
> cassette hardware require?
> Jayson.

Well, this is basically what I'm trying to do.  Except I am using
a PIC microprocessor as an intermediary, so that the Linux system
sees a plain RS-232 interface (thus other devices such as a Palm
Pilot, etc., could also talk to this).

However, if you are willing to bang on the parallel port and don't
care about portability to non-PC platforms, then as far
as I can tell, it would suffice to directly connect one of the port
signal lines to the Apple cassette input (and also connect the grounds
of the two systems).  I have found empirically that no resistor
divider or other analogue circuitry is needed, the cassette input can
handle raw TTL, as produced by a PIC -- or PC parallel port.

I.e., no need to convert to WAV and send with a sound card (although
that should work, too).  To answer your question, a pretty
low sample rate should suffice, the highest *fundamental* frequency
in the cassette signal is 2kHz.

I have seen someone else's project, sending data from PC parallel port
into the Apple via a joystick input.  This would potentially give a much
higher transfer rate, but the downside is that there is no ROM support
so you have to enter machine code to make the Apple receive data this
way.  With the cassette interface, of course, the advantage is that
the Apple already knows how to receive data through that channel.

The work that I am doing, as usual, is open-source, so I will make
my results available (is it appropriate to post such notices in
this group?).

What fun, working on the Apple II again after 20 years!

--Benjamin

-------------
> "Benjamin Ketcham" <bketcham@drizzle.com> wrote in message
> news:1097056634.892700@yasure...
>> Michael J. Mahon <mjmahon@aol.com> wrote:
>> >
>> > The best "documentation" of cassette format is in the monitor
>> > listing for the code that creates and decodes cassettes.  The
>> > listing is in virtually all early Apple II Reference Manuals.
>>
>> Yes, I'd like to get my hands on a manual (again).  I had started
>> to trace the monitor code, but the info you gave below sure saves
>> me a lot of time and uncertainty.
>>
>> > There is a lead-in tone of 3.5 seconds of 770Hz, followed by
>> > a 1-cycle "start" mark with two 400 microsecond half-periods.
>> > Then data follows, most significant bit first, with two 250
>> > microsecond half-periods for a "0" and two 500 microsecond
>> > half-periods for a "1".  Following the data, there is a single
>> > checksum byte, which is the EOR of all data bytes, seeded
>> > with $FF.
>> >
>> > Applesoft BASIC files are preceded by a short record with
>> > the length of the program and an "auto run" flag byte.
>>
>> Thank you very much for this info!  If it is available on the
>> Web anywhere, I was unable to find it with my search attempts.
>> I'd suggest that those who maintain Apple II FAQs (there seem
>> to be more than one active FAQ) might want to include this
>> info -- though I guess if I'm the only one who asked, it's
>> not a very FA Q.
>>
>> --Benjamin
>>
> 
>