VOGONS


First post, by mogwaay

User metadata
Rank Newbie
Rank
Newbie

Hi all,

Just wanted to share my little show-and-tell YouTube video I made of my loading the old PC Booter game "PC-MAN" from cassette tape.

https://youtu.be/B4qAo-N5TqM

Here's the links to the repo with the WAV file (there is an MP3 file, but I actually haven't tried that yet!) if you want to give it a go yourself - I'd love to know if anyone gets it working on their IBM 5150 or PCjr as I don't have either of these machines and could only test that using the MAME emulation of both those machines:

https://github.com/moogway82/pcman_tape

I also have a little more information about the process I went throught to create it.

I load it on my own PC clone, the XTjr - it's a derivavtive of Serge Kise's Xi8088 and a few of his expansion boards with a bit of simplification and an additional Tandy 3-voice sound, more details on that here:

https://github.com/moogway82/XTjr

Anyway hope someone finds this interesting,
Cheers,
Chris.

Reply 2 of 6, by mogwaay

User metadata
Rank Newbie
Rank
Newbie

Yeah of you have a 5150 go for it! I'd love to know if it works on a real machine, it did on emulation at least. You could try making a cable from your PC and playing the wav file instead of making a tape, but need to play with getting the levels right as I think the tape amp in the 5150 is quite basic. Would be really interested to know how you get on of you do try, good luck!

Reply 3 of 6, by Jo22

User metadata
Rank l33t++
Rank
l33t++
kdr wrote on 2022-06-19, 07:23:

Wow, awesome, I have always been fascinated by the (almost useless) cassette port on my 5150. Guess I'd better go dig out the tape player and get it connected up...

Me, too. But for other reasons. Cassette I/O wasn't just used for datasettes, but also for communications.
Things like RTTY, Packet Radio, Weather Fax, SSTV and so on.

Home computer users not seldomly made use of the cassette ports for things this.
Either by directly reading the signals or by using tone detector ICs such as XR2211 and so on.

Some datasette formats were compatible with RTTY equipment, even.
Like the Kansas City Standard (KCS) which used a different tone set and a different encoding.

https://en.wikipedia.org/wiki/Kansas_City_standard

The Tono Theta 7000e communications terminal, for example, from the 1970s, supports it for loading/saving text from/to datasette or a microcomputer.

Theoretical, a tape cable between two PC 5150s could form a simple network connection, even.

1200 Baud was good enough for simple things.

The Videotex systems in France/Swiss/Germany were dialed into at 1200 Baud down and 75 Baud up often.
Likewise, Packet Radio on CB radio used 1200 Baud AFSK.

Too bad these things never came true on the IBM PC.. 😔
Personally, I think it's a shame that IBM engineers removed the port. That was soo unnecessary.
Couldn't they at least leave some Cassette IN headers on the later motherboards? Just like for the internal PC Speaker (which was Cassette OUT)?
Man, this makes me kind of angry and sad. 😒

http://minuszerodegrees.net/5160/diff/5160_to_5150_8255.htm

Edit: That site has a diagram of the cassette interface.
I'll attach it here, hope that's okay.

Attachments

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 4 of 6, by kdr

User metadata
Rank Member
Rank
Member
Jo22 wrote on 2022-06-19, 21:01:

Personally, I think it's a shame that IBM engineers removed the port. That was soo unnecessary.
Couldn't they at least leave some Cassette IN headers on the later motherboards? Just like for the internal PC Speaker (which was Cassette OUT)?

For a long time I never understood the bizarro design of the PC speaker circuitry. Why does it have multiple ways of enabling/disabling its output, for example?

Then I got a 5150, looked at the cassette port schematics, and it all clicked into place.

Reply 5 of 6, by mogwaay

User metadata
Rank Newbie
Rank
Newbie
Jo22 wrote on 2022-06-19, 21:01:
Me, too. But for other reasons. Cassette I/O wasn't just used for datasettes, but also for communications. Things like RTTY, Pac […]
Show full quote
kdr wrote on 2022-06-19, 07:23:

Wow, awesome, I have always been fascinated by the (almost useless) cassette port on my 5150. Guess I'd better go dig out the tape player and get it connected up...

Me, too. But for other reasons. Cassette I/O wasn't just used for datasettes, but also for communications.
Things like RTTY, Packet Radio, Weather Fax, SSTV and so on.

Home computer users not seldomly made use of the cassette ports for things this.
Either by directly reading the signals or by using tone detector ICs such as XR2211 and so on.

Some datasette formats were compatible with RTTY equipment, even.
Like the Kansas City Standard (KCS) which used a different tone set and a different encoding.

https://en.wikipedia.org/wiki/Kansas_City_standard

The Tono Theta 7000e communications terminal, for example, from the 1970s, supports it for loading/saving text from/to datasette or a microcomputer.

Theoretical, a tape cable between two PC 5150s could form a simple network connection, even.

1200 Baud was good enough for simple things.

The Videotex systems in France/Swiss/Germany were dialed into at 1200 Baud down and 75 Baud up often.
Likewise, Packet Radio on CB radio used 1200 Baud AFSK.

Too bad these things never came true on the IBM PC.. 😔
Personally, I think it's a shame that IBM engineers removed the port. That was soo unnecessary.
Couldn't they at least leave some Cassette IN headers on the later motherboards? Just like for the internal PC Speaker (which was Cassette OUT)?
Man, this makes me kind of angry and sad. 😒

http://minuszerodegrees.net/5160/diff/5160_to_5150_8255.htm

Edit: That site has a diagram of the cassette interface.
I'll attach it here, hope that's okay.

Hi Jo22 - I understand that the Cassette port was very unpopular and that the IBM PC was ££££, used overwhelmingly by business who were happy to add a disk drive and really wouldn't have loaded stuff from tape (I'd love to see a video of an 80's business loading things from audio tape!). However, once they'd done the work to design a Cassette port, code the routines in BIOS and provide a Cassette BASIC in ROM, right up to the 5170 AT - I'm surprised that they didn't at least provide a header for tape in. They could've reused motor control and made that the user's problem and it would have only used up a single IN bit on Port C. Cassette BASIC was on the 5160, 5162 and 5170 but neither of these could Load or Save from Cassette, meaning they were type in only, which is a bit useless (I think the ROM was also required for BASICA.COM).

Now, it would be kinda stupid-fun idea to try and re-enabled the Cassette Port on a 5160 😉 I think to do it you would need:
- Update/patch the BIOS to include the Int 15,0/1/2/3 functions (copy from the 5150) - also keep the speaker enabled during writing to use the Speaker out as cassette output
- Re-instate Port C Bit4 as Cassette In (not sure if the 5160 use of PC4 would be missed or as it's a feedback thing??)
- Make up the Cassette Input Amp and cobble it on - don't need to motor relay circuit, press play/record yourself
- Voila, you have just botched a cassette port onto an XT and can now load really slowly 😁 - would be fun to actually be able to use Cassettes with the Cassette BASIC again!
[Umm, I bet there are parrallel port to cassette adapters that can do this...]

As I don't have a 5160 and likely never will, I will not do this, but it's kinda similar to what I did on my XTjr and it worked great.

I liked the idea of transferring files using the cassette port - that should be fairly easy to do - cassette out to cassette in - maybe with some pots to set levels. Software side to move a file, you could do it in DEBUG.COM by:
Machine 1: Start DEBUG, load a small (<64KB) file to memory, assemble a short program to call in15 AH 03h at the memory location of the file
Machine 2: Start DEBUG, assemble a short program to call Int 15 AH 02h to read to a memory location - need to know the no. bytes
Run from both machines
Machine 2: Dump memory data to a file in debug
Viola: file transferred at a blistering 1500 Baud (~11KB per minute!)
Again, stupid-fun - but that's why I'm into Retro - it's just about playing around with what's possible, and making it happen, not what's the best or right thing to do. IBM moving to Disk only quickly was probably the right thing for them to do. Figuring out how to make computers load game data using squeals and squaks, that's just fun 😉 [Sorry for the aside, I was sad to hear this morning that VWestLife's *hilarious* video on using pencils to rewind tapes has been attracting a lot of hate recently and it's made me need to defend that retro is just a bit of fun...]

Reply 6 of 6, by mogwaay

User metadata
Rank Newbie
Rank
Newbie
kdr wrote on 2022-06-19, 22:37:
Jo22 wrote on 2022-06-19, 21:01:

Personally, I think it's a shame that IBM engineers removed the port. That was soo unnecessary.
Couldn't they at least leave some Cassette IN headers on the later motherboards? Just like for the internal PC Speaker (which was Cassette OUT)?

For a long time I never understood the bizarro design of the PC speaker circuitry. Why does it have multiple ways of enabling/disabling its output, for example?

Then I got a 5150, looked at the cassette port schematics, and it all clicked into place.

Same here, I was like why did the audio need a gate AND a speaker on/off bits? Then you see the Cassette circuits and it's like ahh, ok yeah guess that is useful to switch between sound and tape... Still my Speccy just squealed like a banshee when loading or saving and I loved it, no fancy pants switching on/off there 😀