• Please review our updated Terms and Rules here

PET 2001-8 Datasette Problems

If you're lucky, the existing shielded cable connected to the head is long enough when disconnected at the far end, that it can be soldered directly to the other unit in close proximity.
 
Hey All! Happy New Year to all.

So I have an update. So recall I've got the internal PET datasette (which I will refer to as INT) which is problematic, and the external C2N (which I will refer to as C2N).

I desoldered the head leads from both, and used extension wires from the circuitry of the INT to the head of the C2N. This bypasses the head of the problematic INT, running all the signals through its circuitry to test to see where the problem lay.

I tested this setup with the same tape I made earlier. On that tape, there are the following programs:

TAPEC2N (BASIC program recorded with the C2N)
TAPEINT (BASIC program recorded with the INT)

I also have an original tape of TIMETREK, which has been tested on the C2N and works reliably.

With each test, I pressed play on both datasettes (starting with the INT datasette, so it would signal to the PET to listen for the data).

So here's the test results:

TAPE2CN TAPEINT TIMETREK

PET 2001-32N/rear TAPE connector: LOADS and RUNS NOTHING FOUND LOADS and RUNS OK

PET 2001-8/TAPE 1 connector: LOADS and RUNS NOTHING FOUND LOADS without errors, but faulty execution (scrambled screens, no input works)

PET 2001-8/TAPE 2 connector: LOADS and RUNS NOTHING FOUND LOADS without errors, but faulty execution (scrambled screens, no input works)


So the exact same test setup works on my 2001N, but not on my 2001-8. Seems like I've got several issues with this machine:

1) INT datasette head is faulty (because now it can load by bypassing the head to the C2N one)

2) PET 2001-8 has some motherboard issues interfering with execution of programs (likely a RAM or addressing error). Seems like programs load okay, but somewhere after that there are problems. TIMETREK also is a large program, so I guess any faults in the RAM are revealed, whereas the short test program TAPEC2N didn't have any problems.

-----------------------------

So before all this, I also tried adjusting the azimuth of the INT datasette player. I tried using the C64 azimuth alignment program, and actually was able to adjust it mostly to where it almost worked. I did fine-tuning with just trial-and-error trying to load using the above test tape (turning the screw each time by about 5-10 degrees). I went from where the INT datasette would find the program and load it, but say "LOAD ERROR", and adjust to where it didn't find anything, to where it was able to load TAPEC2N. With this setting, I tried loading TIMETREK, but it gave me a "LOAD ERROR". I tried adjusting to where it would load TIMETREK, and actually got it to load only once on my 2001N (wasn't able to repeat the successful load), but then it didn't load the TAPEC2N.

I found different azimuth positions where it would load either TAPEC2N, TAPEINT, or TIMETREK (once), but no setting that it would load more than one of these).

Since the C2N datasette can load TIMETREK and can load TAPEC2N, then it seems the head on the INT datasette is overly sensitive to azimuth position, and thus may be old/faulty/need replacement.

How does all this sound?


I do have an extra datasette (a rounded C2N which I took the drive belt from for the INT datasette), so I can pull the head from it and transplant it to the INT datasette. I guess it's just a matter of desoldering the wires, unscrewing it, and screwing it into the INT and soldering it back up. Unfortunately I didn't test it before removing the drive belt, so can't be sure it's working, but I guess chances are it does work. Don't know if there's much specification differences between the heads for these datasette players.

I also think I will continue to look for my memory / addressing error on this 2001-8 PET as on the other thread.
 
It sure sounds like you need a new head. The spare deck head is probably the same. But also, it may be possible to buy a new replacement. I haven't tried to buy one in a long time so I'm not sure.

I'd be interested to see what happens when you enter in a large program (you can write a small BASIC program that self-modifies to a larger one), save it on the C2N, and load it on the C64.
 
It sure sounds like you need a new head. The spare deck head is probably the same. But also, it may be possible to buy a new replacement. I haven't tried to buy one in a long time so I'm not sure.

I'd be interested to see what happens when you enter in a large program (you can write a small BASIC program that self-modifies to a larger one), save it on the C2N, and load it on the C64.

Thanks, KC9UDX! Yeah, I would not have thought the azimuth adjustment would be so sensitive.

Also, I did check out both heads, and they look very similar, so I'll do the transplant soon. Mechanisms look totally different, though (between INT and the rounded C2N).

Actually, the C64 is a no-go with the cassette. I was able to use the azimuth adjust program, and it seemed to work. BUT, when I tried to load something with the "LOAD" command, the screen goes blank (but still blue)! Then the screen re-appears when it finds something on the tape, but it stops the tape until you press a key. The "blank" screen is just like someone unplugged the monitor, except the screen is blue all the way to the edges. When it comes back, everything is still on the screen as if it was always there. Very weird.

Man, fixing these decades-old electronics definitely keeps you busy! Another thing to fix at a future time!
 
The C64 operation you describe is normal, except for waiting for a keypress (I don't know what to say about that). The VIC-II is turned off during tape loading. The CPU's built in I/O port is used for the cassette, and the VIC-II would normally interfere with the timing, because it halts the CPU regularly.

It's one of my biggest gripes about the C64 design. They could have used those bits for more RAM, and multiplexed the cassette port with the user port, or something. But what they did saved a ton of money in the long run, and since almost no one used the cassette port after a short while, it was kind of moot.

The reason you can't load with the C64 is probably the program address. BASIC programs are stored in different memory locations on the C64 than on the PET (the VIC-20 gets real complicated). There's a procedure to modify the BASIC pointer to get it to work, but frankly I've never done it in that direction, so I don't know how to do it.
 
Last edited:
The C64 operation you describe is normal, except for waiting for a keypress (I don't know what to say about that). The VIC-II is turned off during tape loading. The CPU's built in I/O port is used for the cassette, and the VIC-II would normally interfere with the timing, because it halts the CPU regularly.

OK, so that makes sense then. I'd never used a cassette on the C64. I was attempting to load a VIC cassette actually, since it was the only other "factory recorded" cassette for a Commodore computer I had other than my TimeTrek and I didn't want to risk anything happening to that cassette.
 
OK.

The address for the start of a BASIC program on the C64 (from memory) is 2049, and the PET 1025 (again from my weak memory). The VIC is I think also at 1025, but only with the stock RAM configuration.

When loading from disk, the memory location is the first two bytes of the file. The program gets loaded there. So whatever system you save a file on determines the memory location that it will load to on the target machine. Very counterintuitive, but this system was not meant for BASIC, and makes a lot of sense for machine language. So when you load a program on the wrong machine, the BASIC program goes into the wrong part of memory. On the PET, the program disappears (it's actually easy to recover it so long as there's enough RAM). On the C64, the display /should/ corrupt; 1024-2023 is text display memory. Also on the C64, there's a way to avoid this; that's why you have to (or shouldn't, depending) load with the ,1 on the end. Now whether this all holds true for cassette, I can't recall, because I haven't used them that much. But I expect it would.
 
OK.

The address for the start of a BASIC program on the C64 (from memory) is 2049, and the PET 1025 (again from my weak memory). The VIC is I think also at 1025, but only with the stock RAM configuration.

When loading from disk, the memory location is the first two bytes of the file. The program gets loaded there. So whatever system you save a file on determines the memory location that it will load to on the target machine. Very counterintuitive, but this system was not meant for BASIC, and makes a lot of sense for machine language. So when you load a program on the wrong machine, the BASIC program goes into the wrong part of memory. On the PET, the program disappears (it's actually easy to recover it so long as there's enough RAM). On the C64, the display /should/ corrupt; 1024-2023 is text display memory. Also on the C64, there's a way to avoid this; that's why you have to (or shouldn't, depending) load with the ,1 on the end. Now whether this all holds true for cassette, I can't recall, because I haven't used them that much. But I expect it would.

Cool, good stuff to know. Thanks.

One thing I hate about many computers and cassette loading is there's no visual feedback.

On the PET, at least for all my recent testing, you just get a "LOADING" and at the end of an excruciating 2-3 minutes, you get the dreaded "?LOAD ERROR".

On the BBC Micro, it has a great method of showing you exactly which block of information it's currently looking at and/or loading. I recall watching it count up in anticipation. Something oddly satisfying about that for me. It's also great because it would tell you if a block was missed, and you could rewind it and it would resume where it lost the stream of data.

Ahh, fun times.
 
So here's another update.

I transferred the cassette head from my donor rounded C2N datasette, and it fit fine. I adjusted the azimuth manually, until I got it to read the test cassette I had made earlier. I got it to load the original TAPEC2N file I had saved with my working C2N. I tested saving and loading multiple times and it worked reliably. I tried loading the TIMETREK on it, and couldn't get it to load, no matter how I adjusted the azimuth.

This is strange to me, since the working C2N I had used to record the TAPEC2N file can load its own TAPEC2N file and TIMETREK. So if that datasette at it's azimuth setting can load TAPEC2N and TIMETREK, then it stands to reason to me that adjusting the new head to where it would read TAPEC2N, should mean it could load TIMETREK. Unfortunately no, and the working range of loading TAPEC2N was actually quite narrow, so I would have thought it would have at least found TIMETREK. It did not.

Anyway, it's good enough for me. At least I've returned this original PET 2001-8 internal datasette to where it can reliably load and save to the cassette. Moreover, it is at an azimuth setting that can load from my other external C2N datasette, so I can use that datasette to make working cassettes for use on my PET 2001-8 (on my PET 2001-32N and PetSD+).

So thanks for all for your help and input. I've definitely learned a lot working on this. Definitely more than I've ever known about cassettes.
 
The TIMETREK tape may be too weak for it. Oh well, you know what to do about that: Make a new copy of it on the other unit. :)
 
Yeah, I am going to try that. I just bought a bunch of new-old-stock cassettes on eBay. I already have lots of unused old cassettes, but they're all 90-120 min, and these old datasette have trouble rewinding them.
 
Back
Top