Image Map Image Map
Page 1 of 4 1234 LastLast
Results 1 to 10 of 39

Thread: Model 4 Cassette Operation

  1. #1
    Join Date
    Feb 2015
    Location
    Cleveland, OH, USA
    Posts
    1,286

    Default Model 4 Cassette Operation

    Verifying cassette operation on a Model 4: CCR-81 attached to cassette port with known-good tape that had been used to record programs from a Model 100 and using a known-good cable attached to the correct ports. Boot the computer into Model III BASIC READY> by responding CR to cassette and memory questions. With the tape rewound to 000 and CCR-81 PLAY button depressed enter the command CLOAD from the Model 4 keyboard. No file name specified.

    Tape runs, silently, and the only on-screen indication anything is happening is a "D" in the upper right corner, sometimes accompanied by "*". No file is loaded; the process continues indefinitely until I press BREAK. "BK" displayed upper right.

    Reboot, specifying L for low at the cassette prompt. Same result.

    Reboot, (high speed, full memory) specifying a specific file name - one that should be on this tape - this time. Same result.

    Fast forward the tape to a blank area at 150 counter display and enter, list and run a small BASIC program. With REC+PLAY pressed on the CCR-81 I enter CSAVE "TEST". The file is saved quickly and the motor stops. Rewind to before 150 and press PLAY. Enter CLEAR and NEW at the BASIC prompt and the RUN. No program is in memory. Enter CLOAD "TEST" and the CCR-81 spins until it locates the file. This time "**" is displayed in the screen upper right corner. I enter RUN and the program executes.

    This verifies cassette operation from the Model 4 but leaves some questions: Where might I find an in-depth explanation of the ins-and-outs of the cassette operation on a Model 4? And is there some incompatibility between the recording schemes of the various machines that can prevent one from reading files written by another? Under what conditions can you or can't you transfer files?

    Thanks for your replies.

    -CH-

  2. #2

    Default

    Quote Originally Posted by clh333 View Post
    Verifying cassette operation on a Model 4: CCR-81 attached to cassette port with known-good tape that had been used to record programs from a Model 100 and using a known-good cable attached to the correct ports. Boot the computer into Model III BASIC READY> by responding CR to cassette and memory questions. With the tape rewound to 000 and CCR-81 PLAY button depressed enter the command CLOAD from the Model 4 keyboard. No file name specified.

    Tape runs, silently, and the only on-screen indication anything is happening is a "D" in the upper right corner, sometimes accompanied by "*". No file is loaded; the process continues indefinitely until I press BREAK. "BK" displayed upper right.

    Reboot, specifying L for low at the cassette prompt. Same result.

    Reboot, (high speed, full memory) specifying a specific file name - one that should be on this tape - this time. Same result.

    Fast forward the tape to a blank area at 150 counter display and enter, list and run a small BASIC program. With REC+PLAY pressed on the CCR-81 I enter CSAVE "TEST". The file is saved quickly and the motor stops. Rewind to before 150 and press PLAY. Enter CLEAR and NEW at the BASIC prompt and the RUN. No program is in memory. Enter CLOAD "TEST" and the CCR-81 spins until it locates the file. This time "**" is displayed in the screen upper right corner. I enter RUN and the program executes.

    This verifies cassette operation from the Model 4 but leaves some questions: Where might I find an in-depth explanation of the ins-and-outs of the cassette operation on a Model 4? And is there some incompatibility between the recording schemes of the various machines that can prevent one from reading files written by another? Under what conditions can you or can't you transfer files?

    Thanks for your replies.

    -CH-
    From a wiki page:

    The Model 4 was announced in the same press release (April 1983) as was the TRS-80 Model 100 laptop. The two computers were often marketed by Tandy/Radio Shack as a complementary pair. Model 100 cassette tapes are readable on the Model 4 with its cassette interface and a TRSDOS 6 utility called TAPE100/CMD, which store Model 100 programs and data as TRSDOS disk files.

    I am not aware of any cassette based method of using 100 tapes.

  3. #3
    Join Date
    May 2009
    Location
    Connecticut
    Posts
    4,838
    Blog Entries
    1

    Default

    The Model 4 implements the Model III cassette format (high speed) which also handles the Model I cassette format (low speed). The Model 4's ROM routines only will handle tapes from the Model I, III, and 4 and some clones thereof. But not all tapes even from them. The word processor Scripsit used its own tape format. There were a few utilities like TAPE100 to handle foreign cassette formats but for the most part, the TRS-80 lineup was its own set of islands for cassettes.

    One of the TRS-80 programming books I have read has a section on the cassette routines explaining the limits of the ROM code and how to write routines to access the cassette port directly. I am blanking on the name of it right now though.

  4. #4
    Join Date
    Feb 2015
    Location
    Cleveland, OH, USA
    Posts
    1,286

    Default

    Thank you both for your replies.

    I found that even with a (BASIC program) file saved from the Model100 as ASCII (CSAVE "THIS", A) the M4 could not read it. This is may due to the Model 100 tape compression scheme. I have yet to find out if a file written to the M100 DVI can be read by a Model II or 4. But I have found that the Model 100 tape format is compatible with the PC-X "pocket computers", limited as they are. Maybe the Model 100 follows a Japanese standard.

    Someone on the Bitchin100 site mentioned a tape utility built into TRS-DOS and I found reference to it under LS-DOS documentation. I suspected, as krebizfan points out, that the TAPE100/CMD utility doesn't read directly into memory - which was the objective; to run BASIC programs written on another machine - but merely transcribes from one magnetic media source to one media destination. I also don't know if you could use a Model 100 TEXT file as an intermediary. But if you happen to recall the name of the TRS-80 programming book with cassette port routines I'll see if I can find a copy.

    I'd also like to find a reference that describes the contents of ROM BASIC, which I'm guessing is pretty much the same for the Model II and 4.

    Thanks again for your help.

    -CH-

  5. #5
    Join Date
    May 2009
    Location
    Connecticut
    Posts
    4,838
    Blog Entries
    1

    Default

    A high level overview might be http://www.trs-80.com/wordpress/zaps...lained-part-1/ and the following pages.

    A more detailed examination might be located at http://www.classiccmp.org/cpmarchive...on/99-0006.htm

    William Barden's TRS-80 Assembly Language Programming and its sequel would be good places to start. There is another book which has a section on deciphering unknown cassette schemes that I will provide an update for if I ever remember the title.

    If you just want to move a BASIC program between machines using cassette, have you looked at BASICODE? BASICODE was designed to convert a BASIC program into a universal BASIC variant and then store it with a universal cassette format which could also be broadcast over radio. A special program reads and writes the BASICODE formatted cassette and a short BASIC stub program handles specific functions not handled the same in various BASICs. The Model 100 series isn't supported but the Model III and a lot of higher end 8-bit machines like the Atari 800 and Sinclair Spectrum are.

    http://brutaldeluxe.fr/projects/cassettes/bbc/ has a copy of the English version of the BASICODE cassette which includes what should be TRS-80 version. There are a number of more detailed pages but those are mostly in either German or Dutch so may not be as easily navigated.
    Last edited by krebizfan; October 22nd, 2020 at 12:01 PM.

  6. #6
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    3,068

    Default

    So are you saying that the Model 4 can't read a tape saved from BASIC as ASCII on the Model 100 with the TAPE100/CMD utility, or that Model III BASIC won't load it? So far as I'm aware the latter isn't possible; although I think the titular baud rate of the Model 100's tape system and the Model III BASIC ROM's is about the same there's enough differences in the implementation that the ROM routines aren't compatible. (Remember, the 100 isn't directly descended from the Model III at all, and Radio Shack went to no effort to make the tape formats of their different lines compatible. The Color Computer, which likewise also has a roughly 1500 baud tape interface, also isn't compatible with the Model III.)

    I would think the tape from the 100 *should* be readable with TAPE100, and if you save it on a disk as an ASCII file you could then load it into BASIC? (Again, pretty sure both Model III and Model 4 disk BASICs can save/load in ASCII format in addition to tokenized.) So a roundabout way of getting a BASIC program from a Model 100 to run under Model III BASIC would be to boot into TRS-DOS/LS-DOS, convert the ASCII file and save it to a data disk, reboot with Model III LDOS, and then load the ASCII file? Obviously any dialect differences between the two BASICs are going to crop up and give you headaches at this point.
    My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs

  7. #7
    Join Date
    May 2009
    Location
    Connecticut
    Posts
    4,838
    Blog Entries
    1

    Default

    The book I was forgetting was TRS-80 Assembly Language written by Hubert Howe. The relevant section is chapter 14 from page 118 to page 127 covering recognizing the various cassette file types and loading cassette files into memory. A much more practical guide than the books that try to skip past cassettes in their haste to get to disks or the early articles that focused on how to build a cassette interface.

  8. #8
    Join Date
    Feb 2015
    Location
    Cleveland, OH, USA
    Posts
    1,286

    Default

    Quote Originally Posted by krebizfan View Post
    A high level overview might be http://www.trs-80.com/wordpress/zaps...lained-part-1/ and the following pages.

    A more detailed examination might be located at http://www.classiccmp.org/cpmarchive...on/99-0006.htm

    William Barden's TRS-80 Assembly Language Programming and its sequel would be good places to start. There is another book which has a section on deciphering unknown cassette schemes that I will provide an update for if I ever remember the title.

    If you just want to move a BASIC program between machines using cassette, have you looked at BASICODE? BASICODE was designed to convert a BASIC program into a universal BASIC variant and then store it with a universal cassette format which could also be broadcast over radio. A special program reads and writes the BASICODE formatted cassette and a short BASIC stub program handles specific functions not handled the same in various BASICs. The Model 100 series isn't supported but the Model III and a lot of higher end 8-bit machines like the Atari 800 and Sinclair Spectrum are.

    http://brutaldeluxe.fr/projects/cassettes/bbc/ has a copy of the English version of the BASICODE cassette which includes what should be TRS-80 version. There are a number of more detailed pages but those are mostly in either German or Dutch so may not be as easily navigated.
    Thank you for this fount of information. It will take me some time to digest. I will look for the Barden and Howe books.

    -CH-

    Update: Ordered from Amazon...
    Last edited by clh333; October 22nd, 2020 at 02:35 PM.

  9. #9
    Join Date
    Feb 2015
    Location
    Cleveland, OH, USA
    Posts
    1,286

    Default

    Quote Originally Posted by Eudimorphodon View Post
    So are you saying that the Model 4 can't read a tape saved from BASIC as ASCII on the Model 100 with the TAPE100/CMD utility, or that Model III BASIC won't load it? So far as I'm aware the latter isn't possible; although I think the titular baud rate of the Model 100's tape system and the Model III BASIC ROM's is about the same there's enough differences in the implementation that the ROM routines aren't compatible. (Remember, the 100 isn't directly descended from the Model III at all, and Radio Shack went to no effort to make the tape formats of their different lines compatible. The Color Computer, which likewise also has a roughly 1500 baud tape interface, also isn't compatible with the Model III.)

    I would think the tape from the 100 *should* be readable with TAPE100, and if you save it on a disk as an ASCII file you could then load it into BASIC? (Again, pretty sure both Model III and Model 4 disk BASICs can save/load in ASCII format in addition to tokenized.) So a roundabout way of getting a BASIC program from a Model 100 to run under Model III BASIC would be to boot into TRS-DOS/LS-DOS, convert the ASCII file and save it to a data disk, reboot with Model III LDOS, and then load the ASCII file? Obviously any dialect differences between the two BASICs are going to crop up and give you headaches at this point.
    I found the Model 4, when booted into ROM BASIC, was able to control the CCR-81 tape recorder, write a program to it and recall that program. I think, based on the presence of symbols at the upper right corner of the CRT, that it recognized at least the presence of a signal on the tape that had been created by the Model 100 but ROM BASIC did not load and could not run that program, whether saved in compressed or ASCII format by the Model 100. I have found the TAPE100/CMD file on an LS-DOS 6.3 disk but have not experimented with it yet.

    I understand that Tandy sourced product from all over the world and I also understand the difference between marketing and reality. In some instances it was called "vaporware". But I began to wonder if a file could travel throughout the domain, and if so, what sort of file would it be? Since BASIC was the lingua franca of the time I thought that might be the format.

    The ideal would be to edit and test a program on the larger machine then transfer it to the Model 100 for execution. That was the impetus for my curiosity, which arose in the midst of confirming port operation on the Model 4. I will summarize that experience later; suffice to say that the machine has acquired the nickname "RAT BASTARD".

    -CH-

  10. #10
    Join Date
    May 2011
    Location
    Outer Mongolia
    Posts
    3,068

    Default

    Quote Originally Posted by clh333 View Post
    I found the Model 4, when booted into ROM BASIC, was able to control the CCR-81 tape recorder, write a program to it and recall that program. I think, based on the presence of symbols at the upper right corner of the CRT, that it recognized at least the presence of a signal on the tape that had been created by the Model 100 but ROM BASIC did not load and could not run that program, whether saved in compressed or ASCII format by the Model 100. I have found the TAPE100/CMD file on an LS-DOS 6.3 disk but have not experimented with it yet.
    My vague understanding is those flashing symbols *pretty* much mean "Some noises on the tape were loud enough to trigger the input circuitry", IE, it's little more than a visual indication that you have the audio turned up loud enough for the machine to hear it. It's no indication that the computer thinks the read head is traveling over is valid data.

    Again, so far as I know the only way to read a Model 100 tape on something else is that TAPE100 program. It's probably just a happy accident that the Model 4's cassette hardware is even compatible enough for that to work.

    EDIT: For laughs I took a look at the Model 100 Technical manual, and it looks like the way the cassette interface in the 100 is implemented by slapping some analog modulation/demodulation onto the serial input/output lines that directly emerge from the 8085 CPU. That's totally different from the Model III/4's, which is done completely in software timing loops twiddling an I/O port. So, yeah. Apparently they use compatible enough analog modulation that the older machine can read/write tapes from the 100 (with the right software), but I would hesitantly venture a guess that since the 100's data formatting is going to be at least in part dictated by the CPU there may be a good reason why it would be unable to read the Model III's tapes.

    Something to remember about the TRS-80's cassette port is it is *very* flexible, since it's pretty much just bit-banged. It was actually possible with minimal external circuitry to use it to drive a serial printer or half-duplex modem.
    Last edited by Eudimorphodon; October 22nd, 2020 at 03:03 PM.
    My Retro-computing YouTube Channel (updates... eventually?): Paleozoic PCs

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •