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

Try to get this working on all machines #2

Open
SukkoPera opened this issue Nov 21, 2019 · 0 comments
Open

Try to get this working on all machines #2

SukkoPera opened this issue Nov 21, 2019 · 0 comments

Comments

@SukkoPera
Copy link
Owner

SukkoPera commented Nov 21, 2019

AmiBay user eslapion indicates two possible modifications to make this work on all C16's:

  1. The first one is to put a switch on pin 1 (/CE) of the two 4416 of the C16, toggling between ground and 5Vdc - by default they are grounded.

  2. The second one is to use a modified 48 pin socket under the TED which will disconnect CAS from the mainboard and have it on a separate wire going to the 64k RAM cartridge. Just put a pull-up resistor on the 64k RAM cartridge which pulls-up the CAS line of the C16 board.

My opinion:
Solution 1 is well-known but it's not really easy to do, as it requires desoldering the whole chips to get a "clean job".

Solution 2 is more interesting, but I find this would be ok if we wanted to make a board to be sandwiched between the TED and socket, carrying the RAM chips and whatever is needed. An internal expansion that cannot be removed, I mean. This is because the machine would no longer work if the expansion is unplugged at that point (unless you also bring out the /CAS signal going to the chips, add a switch and whatever).

The modification I am looking for would ideally be to add the missing circuitry so that the machine will use the expansion correctly, but so that it will still work correctly if the expansion is unplugged, without any manual intervention. Ideally, this mod would also be easy to install and it shouldn't require to cut any tracks. But I guess the latter is impossible to achieve, as the whole thing implies the splitting of the /RAS (or /CAS) signal in two, one addressing the internal chips and one going to the cartridge slot. Equations are easy:

!ras_int = !ras & (!a14 & !a15) => ras_int = ras | !(!a14 & !a15) => ras_int = ras | a14 | a15
!ras_ext = !ras & (a14 | a15) => ras_ext = ras | !(a14 | a15) => ras_ext = ras | (!a14 & !a15)
ras a14 a15 ras_int ras_ext
0 0 0 0 1
0 0 1 1 0
0 1 0 1 0
0 1 1 1 0
1 0 0 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 1 1

The point here is to rewrite these in order to use the least possible logic gates and to make sure that the memory detection routine in the ROM always does the right thing.

I think it can be done with a single 74253 or 4052 (Dual 4-TO-1 Multiplexers):

Pin 74253 CD4052B
1 /RAS GND
2 a15 Vcc
3 Vcc ras_int (with pull-up to Vcc)
4 Vcc Vcc
5 Vcc Vcc
6 GND /RAS
7 ras_int (with pull-up to Vcc) GND (power)
8 GND (power) GND (power)
9 ras_ext (with pull-up to Vcc) a15
10 Vcc a14
11 GND GND
12 GND Vcc
13 GND ras_ext (with pull-up to Vcc)
14 a14 GND
15 /RAS GND
16 Vcc (power) Vcc (power)

Another possibility is here.

@SukkoPera SukkoPera changed the title Try to get this working Try to get this working on all machines Nov 21, 2019
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

1 participant