Image Map Image Map
Results 1 to 8 of 8

Thread: PET ROMs - replacing them all with one 27C256?

  1. #1
    Join Date
    Jul 2017
    Location
    Portland, Oregon, USA
    Posts
    87

    Default PET ROMs - replacing them all with one 27C256?

    Hey guys -- so in thinking about how to deal with possible bad ROM chips on my 4016 PET, I had a thought.

    What if I build a 24 to 28 pin adapter board to hold one single 32k (27C256 eprom), load all of the ROM files into it and stick that into an available ROM socket?

    To do this I would need to:
    - Create a single BIN file with all of the ROMs in one file. I would have to hand build it to ensure the ROM data maps to the appropriate locations in the PET memory space. (The upper 32k address space has the video memory mapped, IO and a couple gaps so just account for this.)
    - Jumper the additional CPU buffered address lines to the EPROM as it will need A0 - A14. (The existing socket is only wired for A0 - A11 so would need to jumper A12, A13 and A14. Could just get these from the RAM expansion header.)
    - Cut the chip select leg on each of the existing ROM chips so they are no longer activated. Can just leave them in place. (Remove the BASIC ROM that is in the one socket.) I would just resolder the to the ROM chip if I ever wanted to revert.
    - Jumper from each existing ROM chip select line to diodes or logic 'OR' (like using a 74LS260) which would go to the new 32k EPROM chip select -- so it is selected when one of the old ROMs is supposed to be used.

    It's just something I could make with parts on hand on a proto board which is why I'm thinking about this. Have you heard of someone doing something like this before?
    -- Adrian

  2. #2

    Default

    Quote Originally Posted by misterblack View Post
    Hey guys -- so in thinking about how to deal with possible bad ROM chips on my 4016 PET, I had a thought.

    What if I build a 24 to 28 pin adapter board to hold one single 32k (27C256 eprom), load all of the ROM files into it and stick that into an available ROM socket?

    To do this I would need to:
    - Create a single BIN file with all of the ROMs in one file. I would have to hand build it to ensure the ROM data maps to the appropriate locations in the PET memory space. (The upper 32k address space has the video memory mapped, IO and a couple gaps so just account for this.)
    - Jumper the additional CPU buffered address lines to the EPROM as it will need A0 - A14. (The existing socket is only wired for A0 - A11 so would need to jumper A12, A13 and A14. Could just get these from the RAM expansion header.)
    - Cut the chip select leg on each of the existing ROM chips so they are no longer activated. Can just leave them in place. (Remove the BASIC ROM that is in the one socket.) I would just resolder the to the ROM chip if I ever wanted to revert.
    - Jumper from each existing ROM chip select line to diodes or logic 'OR' (like using a 74LS260) which would go to the new 32k EPROM chip select -- so it is selected when one of the old ROMs is supposed to be used.

    It's just something I could make with parts on hand on a proto board which is why I'm thinking about this. Have you heard of someone doing something like this before?
    Well, not really.
    Not on a proto-board and not modifying the PET's hardware.
    I just designed my own RAM/ROM replacement that sits on the 6502's socket and is as large as the 6502 itself and a 28 pin EPROM (a 27512 in my case).
    See:
    https://www.youtube.com/watch?v=bjyGk5zoDMs

    It can hold a bit more than two complete ROM sets and each 4K ROM space can be enabled separately.
    Schematics or PCB (populated or not) are available,

    Be aware that the PET universal boards (unlike all the previous PETs) use the second chipe enable of each 2332 ROM as a /NOROM line to completely disable all on-board ROMs, this line goes to PIN 5 of the 6502 which is NC on the CPU. This allows expansions sitting in the 6502 socket to disable original ROMs and provide their own content if needed.
    This is of course a concern only if one day you'd want to use such an extension and wonder why it doesn't work if this /NOROM signal isn't correctly disabling the on board ROMs.

    Frank

  3. #3
    Join Date
    Mar 2012
    Location
    Augusta, Georgia, USA
    Posts
    435

    Default

    If a ROM is bad, it may need to be removed from the board and not just the enable line cut. It could be internally shorted or have other failures that still exist and mess up your plan.

  4. #4
    Join Date
    Dec 2005
    Location
    Toronto ON Canada
    Posts
    6,925

    Default

    +1 to what's already been said, but if you want to try it you'll find a couple of adapters here that will do most of what you want to do; the only issue will be disabling the I/O area at $E800-$EFFF with a couple of gates.

    You can get the upper address lines from the expansion connector or the 74154 address block decoder. If this is a FAT40 4016 as opposed to the 9" screen version you should be able to use the /NOROM line to disable the on-board ROMs instead of cutting anything.

    I did this years ago with a 2001 PET, not just to replace the ROMs but to also have several different selectable ROM versions in the same chip; should be even easier in a 4016.

    m

  5. #5

    Default

    Quote Originally Posted by MikeS View Post
    +1 to what's already been said, but if you want to try it you'll find a couple of adapters here that will do most of what you want to do; the only issue will be disabling the I/O area at $E800-$EFFF with a couple of gates.

    You can get the upper address lines from the expansion connector or the 74154 address block decoder. If this is a FAT40 4016 as opposed to the 9" screen version you should be able to use the /NOROM line to disable the on-board ROMs instead of cutting anything.

    I did this years ago with a 2001 PET, not just to replace the ROMs but to also have several different selectable ROM versions in the same chip; should be even easier in a 4016.

    m
    All correct, but the universal boards allow a 4KB ROM into the $E000 slot, so they only decode I/O from $E800 to $E8FF then from $E900 to $EFFF the ROM is again selected. So it's more than a couple of gates, but not much more
    F

  6. #6

    Default

    I would say a GAL would do fine here. They were made for this kind of problem.
    Dwight

  7. #7
    Join Date
    Jan 2011
    Location
    Vancouver, BC
    Posts
    3,102
    Blog Entries
    1

    Default

    Do you know which ROMs are bad? I bought a stack of PET ROMs years ago from a retired Commodore guy. I might have what you need. If you have the numbers I can check.

  8. #8
    Join Date
    Jul 2017
    Location
    Portland, Oregon, USA
    Posts
    87

    Default

    Thanks for the offer -- In the end no ROMs were bad. I was hoping to replace it all with a temporary 27C256 so I could see if the machine worked.... and I got it working off the 27C256 as well. Here's how I did it:

    I plugged a 28 pin socket into the 24 pin open ROM socket but first bent out:

    PIN 1, 2, 28, 27, 26, 23, 22, and 20.

    Then from the bent out pins I ran these connections:

    - VCC + VPP (PIN 1 and 2 I ran to pin 24 on an adjacent socket. (Power)
    - A11 (Pin 23) A12 (Pin 2) A13 (Pin 26) A14 (Pin 27) I ran to the memory expansion connector
    - CE (Pin 20) I ran to Pin 12 (GND) on an adjacent socket)
    - Under the motherboard soldered wires to pin 20 of each of the 5 ROM sockets that are used to run the computer (UD6-UD10)
    - I ran those to a 74LS11 Quad AND gate -- wiring each chip select into an input and then connecting the AND gates together so in the end I had one single Chip Select output which I ran to OE (Pin 22) on the 27C256 EPROM.
    - I then grounded PIN 21 (CE2 which) which is NOROM -- this disables all the onboard ROMs.
    - I created a 32k image with all the respective PET ROM images in the correct spots using this map:

    ROM -> Location in EPROM
    ------------------------------
    F000 KERNAL -> 7000
    E000-E7FF 2K Editor -> 6000 - 67FF (with 800-FFF filled with zeros)
    D000 -> 5000
    C000 -> 4000
    B000 -> 3000
    I left 0000-2FFF blank and filled with zeros.

    With my adapter plugged into UD12, I had my PET up and running with the single ROM and it was working. I was able to use PETTEST but then flashed another with the stock built in ROMs and it worked. In the end my PET had a bad 6520 PIA (in UB12) and that was crashing things on boot... but I was able to eliminate a possible bad ROM.

    Since no stock roms were bad, I removed my adapter from the system but I may need it in the future if a ROM does ever die!

    Pictures:
    https://imgur.com/a/MiwxMIH

    This could easily be made into a little PCB with the EPROM and 74LS11. You'd just need some connections to the memory expansion connector for the address lines and the chip select lines on the other ROMs.
    -- Adrian

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
  •