Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cassette issues #1

Open
nateo87 opened this issue Jun 26, 2023 · 13 comments
Open

Cassette issues #1

nateo87 opened this issue Jun 26, 2023 · 13 comments

Comments

@nateo87
Copy link

nateo87 commented Jun 26, 2023

First of all, great project, I'm having lots of fun with it.
Second, I'm struggling a bit with regards to saving to tape. I think something needs to be done to massage the signal coming out of PB7. The output of that signal, (according to my oscilloscope) seems to have a HIGH of 5v no problem, but the LOW only goes halfway to GND, and thus will not trigger the NAND gate.
Can you confirm if this issue is due to my RIOT, or perhaps something needs to be done to attenuate the signal?
20230626_140102

@tebl
Copy link
Owner

tebl commented Jun 26, 2023 via email

@nateo87
Copy link
Author

nateo87 commented Jun 26, 2023

No, I think you were extremely close with getting the cassette to work - I build a separate cassette interface off of the original schematics using the original parts, and the issue was the exact same. I wonder if the difference is between using a 6532 instead of the original 6530, as the datasheets tall about the output of PB5 - PB7 differently. Something about a "darlington drive"? Anyways, I'm gonna do some more digging around and see what I can figure out.

@nateo87
Copy link
Author

nateo87 commented Jun 27, 2023

With some help from the Minimalist Computing FB group, we were able to suss out what's been impeding both this and the serial signals. The NAND gates feeding back into peripheral bus I/O lines are normal 74LS00 NANDs, whereas in the original KIM schematic, these are the open collector 74LS38 variant. This allows the full signal to go out against output of that gate and thus, travel through the rest of the circuit. Unfortunately, I don't have any LS38s currently on hand, but I'm anxious to get a hold of some and see if this truly does solve the issue.

@nateo87
Copy link
Author

nateo87 commented Jun 27, 2023

Here are pictures comparing the two schematics:
Screenshot_20230627_131436_Adobe Acrobat
Screenshot_20230627_141320_Chrome

@tebl
Copy link
Owner

tebl commented Jun 29, 2023 via email

@nateo87
Copy link
Author

nateo87 commented Jul 4, 2023

Et voilà, we're getting cassette output!
Here's a video showing successful output.

@tebl
Copy link
Owner

tebl commented Jul 7, 2023 via email

@nateo87
Copy link
Author

nateo87 commented Jul 20, 2023

Hey! Sorry it has been a while, I've been on vacation and then I needed to catch up on the work backlog. Anyway, I did not try to load back, I should have some time tonight to give it a go. I'm anxious to find out if it works!

BTW, I did try the serial connection, but I was only getting a single garbage signal back from the KIM. I think the signals might need more massaging looking at how other clones achieve it? Anyway, I'll start digging into that next after I confirm that the tape works.

@jvangorkom
Copy link

I have been able to get the TTY connection working, though it took some time to model and understand how the connection and its interface circuitry worked.

U4 needs to be a 74LS38 not a 74LS00.
R23 and R25 need to be shorted / 0 ohms not 1k ohms.

U4 pin 6/9 need a 10k pull up resistor.
U4 pin 8 needs a 10k pull up resistor.

The frustrating part is realizing that the analog circuity used to connect the 78LS38 to the TTY port actually invert the signal.

So I made a small pc board with the 74LS00 on it and connected as follows:

com_pwr jumpered.

Daughter board.
2 - 6 pin headers for off board connections. (J3-RC1 and J3-TTL)
1 - 74LS00 (U1)

U1 pin 7 - gnd
U1 pin 14 - +5
U1 pins 9 and 10 shorted.
U1 pins 4 and 5 shorted.

J3-RC1 pin 1 goes to J3-TTY pin 1.
J3-RC1 pin 2 goes to U1 pin 9.
J3-RC1 pin 3 goes to U1 pin 6.
J3-RC1 pin 4 goes to +5.
J3-RC1 pin 5 goes to J3-TTY pin 5.
J3-RC1 pin 6 goes to gnd.

J3-TTY pin 2 goes to U1 pin 8.
J3-TTY pin 3 goes to U1 pin 4.
J3-TTY pin 6 goes to gnd.

Note J3-TTY pin 4 is not connected to prevent a power conflict between the two systems.

Tested using 2400, 8N1

@jvangorkom
Copy link

Make the 2 pull up resistors 5.1k, 10k was giving me intermittent results

@nateo87
Copy link
Author

nateo87 commented Sep 21, 2023

Very excited to try this out for myself, alas, I have a large backlog of projects first to get through. Getting the TTY working along with the cassette is gonna be really satisfying.

@jvangorkom
Copy link

Right now, I am using oTerminal on a MAC to talk to the computer.

The New Line and Carriage Return commands are working perfectly. But so far I have been unable to go to a specific address or change the value in an address. Not yet sure what is going on. At to eliminate a case issue I tried using only numeric addresses and sent the ASCII codes for space and dot directly.

@jvangorkom
Copy link

IMG_1075
IMG_1073
IMG_1072
IMG_1067
IMG_1069

IMG_1074

The weirdness mentioned in the notes causes an automatic echo of text being sent to the Kim-1 to be sent back to the terminal

Nice for what is really just 2 logic gates and some inverters

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants