home.social

#cpczero — Public Fediverse posts

Live and recent posts from across the Fediverse tagged #cpczero, aggregated by home.social.

fetched live
  1. One challenge was the address bus between multiplexers and DRAM. I'm keep to preserve the layout from the prototype which with the CPU 'plexers at the top (U30, U31) and video 'plexers at the bottom (U40, U41) with RAM in a grid between them.

    The obvious route would have been to fork the signals to run down each column of RAMs. But forks create reflections. And these are driven from either end so I'd end up with loops.

    I ended up snaking them left then right. Not ideal but better.

  2. One challenge was the address bus between multiplexers and DRAM. I'm keep to preserve the layout from the prototype which with the CPU 'plexers at the top (U30, U31) and video 'plexers at the bottom (U40, U41) with RAM in a grid between them.

    The obvious route would have been to fork the signals to run down each column of RAMs. But forks create reflections. And these are driven from either end so I'd end up with loops.

    I ended up snaking them left then right. Not ideal but better.

    #CPCZERO

  3. One challenge was the address bus between multiplexers and DRAM. I'm keep to preserve the layout from the prototype which with the CPU 'plexers at the top (U30, U31) and video 'plexers at the bottom (U40, U41) with RAM in a grid between them.

    The obvious route would have been to fork the signals to run down each column of RAMs. But forks create reflections. And these are driven from either end so I'd end up with loops.

    I ended up snaking them left then right. Not ideal but better.

    #CPCZERO

  4. One challenge was the address bus between multiplexers and DRAM. I'm keep to preserve the layout from the prototype which with the CPU 'plexers at the top (U30, U31) and video 'plexers at the bottom (U40, U41) with RAM in a grid between them.

    The obvious route would have been to fork the signals to run down each column of RAMs. But forks create reflections. And these are driven from either end so I'd end up with loops.

    I ended up snaking them left then right. Not ideal but better.

    #CPCZERO

  5. One challenge was the address bus between multiplexers and DRAM. I'm keep to preserve the layout from the prototype which with the CPU 'plexers at the top (U30, U31) and video 'plexers at the bottom (U40, U41) with RAM in a grid between them.

    The obvious route would have been to fork the signals to run down each column of RAMs. But forks create reflections. And these are driven from either end so I'd end up with loops.

    I ended up snaking them left then right. Not ideal but better.

    #CPCZERO

  6. Over the weekend I routed the main data bus between CPU, expansion port and RAM inputs etc., the RAM data bus, control signals to the expansion port, and signals within the RAM and multiplexers.

    Today I've been adding the long distance signals between I/O and CPU and their origins, as well as those to the 'tape port' connector (to the cassette deck and speaker in a CPC).

  7. Over the weekend I routed the main data bus between CPU, expansion port and RAM inputs etc., the RAM data bus, control signals to the expansion port, and signals within the RAM and multiplexers.

    Today I've been adding the long distance signals between I/O and CPU and their origins, as well as those to the 'tape port' connector (to the cassette deck and speaker in a CPC).

    #CPCZERO

  8. Over the weekend I routed the main data bus between CPU, expansion port and RAM inputs etc., the RAM data bus, control signals to the expansion port, and signals within the RAM and multiplexers.

    Today I've been adding the long distance signals between I/O and CPU and their origins, as well as those to the 'tape port' connector (to the cassette deck and speaker in a CPC).

    #CPCZERO

  9. Over the weekend I routed the main data bus between CPU, expansion port and RAM inputs etc., the RAM data bus, control signals to the expansion port, and signals within the RAM and multiplexers.

    Today I've been adding the long distance signals between I/O and CPU and their origins, as well as those to the 'tape port' connector (to the cassette deck and speaker in a CPC).

    #CPCZERO

  10. Over the weekend I routed the main data bus between CPU, expansion port and RAM inputs etc., the RAM data bus, control signals to the expansion port, and signals within the RAM and multiplexers.

    Today I've been adding the long distance signals between I/O and CPU and their origins, as well as those to the 'tape port' connector (to the cassette deck and speaker in a CPC).

    #CPCZERO

  11. Added:
    CPU and ROM (top)
    Expansion connector (bottom-right)
    RAM (left)
    Control logic (centre)

    And routed the address lines.

    There's more room left that I was expecting so I'm being less stingy with chip spacing. I'm hoping I don't regret that!

    I found there was room to return to a ZIF socket for the ROM, which will be very helpful!

    I'm doing a lot of pin remapping to ease the routing.

  12. Added:
    CPU and ROM (top)
    Expansion connector (bottom-right)
    RAM (left)
    Control logic (centre)

    And routed the address lines.

    There's more room left that I was expecting so I'm being less stingy with chip spacing. I'm hoping I don't regret that!

    I found there was room to return to a ZIF socket for the ROM, which will be very helpful!

    I'm doing a lot of pin remapping to ease the routing.

    #CPCZERO #Amstrad_cpc

  13. Added:
    CPU and ROM (top)
    Expansion connector (bottom-right)
    RAM (left)
    Control logic (centre)

    And routed the address lines.

    There's more room left that I was expecting so I'm being less stingy with chip spacing. I'm hoping I don't regret that!

    I found there was room to return to a ZIF socket for the ROM, which will be very helpful!

    I'm doing a lot of pin remapping to ease the routing.

    #CPCZERO #Amstrad_cpc

  14. Added:
    CPU and ROM (top)
    Expansion connector (bottom-right)
    RAM (left)
    Control logic (centre)

    And routed the address lines.

    There's more room left that I was expecting so I'm being less stingy with chip spacing. I'm hoping I don't regret that!

    I found there was room to return to a ZIF socket for the ROM, which will be very helpful!

    I'm doing a lot of pin remapping to ease the routing.

    #CPCZERO #Amstrad_cpc

  15. Added:
    CPU and ROM (top)
    Expansion connector (bottom-right)
    RAM (left)
    Control logic (centre)

    And routed the address lines.

    There's more room left that I was expecting so I'm being less stingy with chip spacing. I'm hoping I don't regret that!

    I found there was room to return to a ZIF socket for the ROM, which will be very helpful!

    I'm doing a lot of pin remapping to ease the routing.

    #CPCZERO #Amstrad_cpc

  16. Next to see why Kicad isn't drawing the board outline. It turns out the footprint for the audio jack include board edges. It's a low profile socket with the port below board level. But Amstrad mounted the socket slightly forward of the board, cutting some mounting lugs in half.

    I've tweaked the footprint to remove the board edges, and added some 'nibbles' for the mounting lugs.

  17. Next to see why Kicad isn't drawing the board outline. It turns out the footprint for the audio jack include board edges. It's a low profile socket with the port below board level. But Amstrad mounted the socket slightly forward of the board, cutting some mounting lugs in half.

    I've tweaked the footprint to remove the board edges, and added some 'nibbles' for the mounting lugs.

    #CPCZERO

  18. Next to see why Kicad isn't drawing the board outline. It turns out the footprint for the audio jack include board edges. It's a low profile socket with the port below board level. But Amstrad mounted the socket slightly forward of the board, cutting some mounting lugs in half.

    I've tweaked the footprint to remove the board edges, and added some 'nibbles' for the mounting lugs.

    #CPCZERO

  19. Next to see why Kicad isn't drawing the board outline. It turns out the footprint for the audio jack include board edges. It's a low profile socket with the port below board level. But Amstrad mounted the socket slightly forward of the board, cutting some mounting lugs in half.

    I've tweaked the footprint to remove the board edges, and added some 'nibbles' for the mounting lugs.

    #CPCZERO

  20. Next to see why Kicad isn't drawing the board outline. It turns out the footprint for the audio jack include board edges. It's a low profile socket with the port below board level. But Amstrad mounted the socket slightly forward of the board, cutting some mounting lugs in half.

    I've tweaked the footprint to remove the board edges, and added some 'nibbles' for the mounting lugs.

    #CPCZERO

  21. After far too mush hassle the printer port is now routed.

    Amstrad schematics claim it's a 36-way connector, even in a 6128. It's not. It's 34! That gives an off-by-one numbering error on the rear pins. And there's few discrepancies between schematics and PCBs, largely over which pins are grounded. I've copied from an actual machine.

    I've also tightened up the gaps between traces for joystick and printer. They're slow signals and I'd prefer board space for other things.

  22. After far too mush hassle the printer port is now routed.

    Amstrad schematics claim it's a 36-way connector, even in a 6128. It's not. It's 34! That gives an off-by-one numbering error on the rear pins. And there's few discrepancies between schematics and PCBs, largely over which pins are grounded. I've copied from an actual machine.

    I've also tightened up the gaps between traces for joystick and printer. They're slow signals and I'd prefer board space for other things.

    #CPCZERO #Kicad

  23. After far too mush hassle the printer port is now routed.

    Amstrad schematics claim it's a 36-way connector, even in a 6128. It's not. It's 34! That gives an off-by-one numbering error on the rear pins. And there's few discrepancies between schematics and PCBs, largely over which pins are grounded. I've copied from an actual machine.

    I've also tightened up the gaps between traces for joystick and printer. They're slow signals and I'd prefer board space for other things.

    #CPCZERO #Kicad

  24. After far too mush hassle the printer port is now routed.

    Amstrad schematics claim it's a 36-way connector, even in a 6128. It's not. It's 34! That gives an off-by-one numbering error on the rear pins. And there's few discrepancies between schematics and PCBs, largely over which pins are grounded. I've copied from an actual machine.

    I've also tightened up the gaps between traces for joystick and printer. They're slow signals and I'd prefer board space for other things.

    #CPCZERO #Kicad

  25. After far too mush hassle the printer port is now routed.

    Amstrad schematics claim it's a 36-way connector, even in a 6128. It's not. It's 34! That gives an off-by-one numbering error on the rear pins. And there's few discrepancies between schematics and PCBs, largely over which pins are grounded. I've copied from an actual machine.

    I've also tightened up the gaps between traces for joystick and printer. They're slow signals and I'd prefer board space for other things.

    #CPCZERO #Kicad

  26. On the project I've been debating whether to finish designing all the video and interrupt circuitry or whether to do a board as-is with connectors to add video on a daughter board later. The latter potentially needs less board revisions but would add a lot of time while I get the remaining design finished. So I'm going with the first option and starting board layout.

    The other unknown is how much space I'll need. But I know things are going to be tight.

    1/2

  27. On the #CPCZERO project I've been debating whether to finish designing all the video and interrupt circuitry or whether to do a board as-is with connectors to add video on a daughter board later. The latter potentially needs less board revisions but would add a lot of time while I get the remaining design finished. So I'm going with the first option and starting board layout.

    The other unknown is how much space I'll need. But I know things are going to be tight.

    1/2

  28. On the #CPCZERO project I've been debating whether to finish designing all the video and interrupt circuitry or whether to do a board as-is with connectors to add video on a daughter board later. The latter potentially needs less board revisions but would add a lot of time while I get the remaining design finished. So I'm going with the first option and starting board layout.

    The other unknown is how much space I'll need. But I know things are going to be tight.

    1/2

  29. On the #CPCZERO project I've been debating whether to finish designing all the video and interrupt circuitry or whether to do a board as-is with connectors to add video on a daughter board later. The latter potentially needs less board revisions but would add a lot of time while I get the remaining design finished. So I'm going with the first option and starting board layout.

    The other unknown is how much space I'll need. But I know things are going to be tight.

    1/2

  30. On the #CPCZERO project I've been debating whether to finish designing all the video and interrupt circuitry or whether to do a board as-is with connectors to add video on a daughter board later. The latter potentially needs less board revisions but would add a lot of time while I get the remaining design finished. So I'm going with the first option and starting board layout.

    The other unknown is how much space I'll need. But I know things are going to be tight.

    1/2

  31. With the RAM sorted I’m moving onto the 6845 CRTC. One fly in the ointment here: it’s I/O cycle maxes out at 1MHz. I’m running the 6502 at 2MHz. I think the easiest solution is probably to slow the CPU to 1MHz when accessing the 6845 but that will mean a few changes to the sequencer.

    I note this is the solution used by the BBC Micro (which also uses a 2MHz 6502 and 6845).

  32. With the RAM sorted I’m moving onto the 6845 CRTC. One fly in the ointment here: it’s I/O cycle maxes out at 1MHz. I’m running the 6502 at 2MHz. I think the easiest solution is probably to slow the CPU to 1MHz when accessing the 6845 but that will mean a few changes to the sequencer.

    I note this is the solution used by the BBC Micro (which also uses a 2MHz 6502 and 6845).

    #CPCZERO

  33. With the RAM sorted I’m moving onto the 6845 CRTC. One fly in the ointment here: it’s I/O cycle maxes out at 1MHz. I’m running the 6502 at 2MHz. I think the easiest solution is probably to slow the CPU to 1MHz when accessing the 6845 but that will mean a few changes to the sequencer.

    I note this is the solution used by the BBC Micro (which also uses a 2MHz 6502 and 6845).

    #CPCZERO

  34. With the RAM sorted I’m moving onto the 6845 CRTC. One fly in the ointment here: it’s I/O cycle maxes out at 1MHz. I’m running the 6502 at 2MHz. I think the easiest solution is probably to slow the CPU to 1MHz when accessing the 6845 but that will mean a few changes to the sequencer.

    I note this is the solution used by the BBC Micro (which also uses a 2MHz 6502 and 6845).

    #CPCZERO

  35. With the RAM sorted I’m moving onto the 6845 CRTC. One fly in the ointment here: it’s I/O cycle maxes out at 1MHz. I’m running the 6502 at 2MHz. I think the easiest solution is probably to slow the CPU to 1MHz when accessing the 6845 but that will mean a few changes to the sequencer.

    I note this is the solution used by the BBC Micro (which also uses a 2MHz 6502 and 6845).

    #CPCZERO

  36. Old school DRAMs have a lot of timing requirements. I’ve been validating output from the sequencer prototype against them - and everything checks out 🙂

    Comments in my notes are where the timings depend on other components, such as the multiplexers.

  37. Old school DRAMs have a lot of timing requirements. I’ve been validating output from the #CPCZERO sequencer prototype against them - and everything checks out 🙂

    Comments in my notes are where the timings depend on other components, such as the multiplexers.

    #mos6502 #Homebrewcomputer #amstrad

  38. Old school DRAMs have a lot of timing requirements. I’ve been validating output from the #CPCZERO sequencer prototype against them - and everything checks out 🙂

    Comments in my notes are where the timings depend on other components, such as the multiplexers.

    #mos6502 #Homebrewcomputer #amstrad

  39. Old school DRAMs have a lot of timing requirements. I’ve been validating output from the #CPCZERO sequencer prototype against them - and everything checks out 🙂

    Comments in my notes are where the timings depend on other components, such as the multiplexers.

    #mos6502 #Homebrewcomputer #amstrad

  40. Old school DRAMs have a lot of timing requirements. I’ve been validating output from the #CPCZERO sequencer prototype against them - and everything checks out 🙂

    Comments in my notes are where the timings depend on other components, such as the multiplexers.

    #mos6502 #Homebrewcomputer #amstrad

  41. Adding basic 6502 emulation to my gate level logic simulator for the CPC ZERO project. I'm only adding emulation of the various cycle types to validate the rest of the system. Here it's raising an error because the RESET pulse is shorter than the 6502 requires.

  42. Adding basic 6502 emulation to my gate level logic simulator for the CPC ZERO project. I'm only adding emulation of the various cycle types to validate the rest of the system. Here it's raising an error because the RESET pulse is shorter than the 6502 requires.

    #Amstrad #CPCZERO #Kicad #Delphi

  43. Adding basic 6502 emulation to my gate level logic simulator for the CPC ZERO project. I'm only adding emulation of the various cycle types to validate the rest of the system. Here it's raising an error because the RESET pulse is shorter than the 6502 requires.

    #Amstrad #CPCZERO #Kicad #Delphi

  44. Adding basic 6502 emulation to my gate level logic simulator for the CPC ZERO project. I'm only adding emulation of the various cycle types to validate the rest of the system. Here it's raising an error because the RESET pulse is shorter than the 6502 requires.

    #Amstrad #CPCZERO #Kicad #Delphi

  45. Adding basic 6502 emulation to my gate level logic simulator for the CPC ZERO project. I'm only adding emulation of the various cycle types to validate the rest of the system. Here it's raising an error because the RESET pulse is shorter than the 6502 requires.

    #Amstrad #CPCZERO #Kicad #Delphi

  46. The CPC ZERO project has been stalled pending some updates to my gate level simulator. I needed it to be able to handle gate delays so I could properly test the sequencer circuit. Today I've been adding necessary code. All the timing data is currently hard coded into the simulator, rather than loaded from a file, but that's enough for now.

    I found the circuit was starting with the shift registers out of phase but a tweak to the reset circuit appears to have fixed things.

  47. The CPC ZERO project has been stalled pending some updates to my gate level simulator. I needed it to be able to handle gate delays so I could properly test the sequencer circuit. Today I've been adding necessary code. All the timing data is currently hard coded into the simulator, rather than loaded from a file, but that's enough for now.

    I found the circuit was starting with the shift registers out of phase but a tweak to the reset circuit appears to have fixed things.

    #CPCZERO #AmstradCPC

  48. The CPC ZERO project has been stalled pending some updates to my gate level simulator. I needed it to be able to handle gate delays so I could properly test the sequencer circuit. Today I've been adding necessary code. All the timing data is currently hard coded into the simulator, rather than loaded from a file, but that's enough for now.

    I found the circuit was starting with the shift registers out of phase but a tweak to the reset circuit appears to have fixed things.

    #CPCZERO #AmstradCPC

  49. The CPC ZERO project has been stalled pending some updates to my gate level simulator. I needed it to be able to handle gate delays so I could properly test the sequencer circuit. Today I've been adding necessary code. All the timing data is currently hard coded into the simulator, rather than loaded from a file, but that's enough for now.

    I found the circuit was starting with the shift registers out of phase but a tweak to the reset circuit appears to have fixed things.

    #CPCZERO #AmstradCPC

  50. The CPC ZERO project has been stalled pending some updates to my gate level simulator. I needed it to be able to handle gate delays so I could properly test the sequencer circuit. Today I've been adding necessary code. All the timing data is currently hard coded into the simulator, rather than loaded from a file, but that's enough for now.

    I found the circuit was starting with the shift registers out of phase but a tweak to the reset circuit appears to have fixed things.

    #CPCZERO #AmstradCPC

  51. Pixel generation is a lot more fun to work on. It requires parallel in, parallel out shift registers. I thought they'd be difficult to find but the 74LS164 is still available. It can even shift either direction but I don't need that functionality.

  52. Pixel generation is a lot more fun to work on. It requires parallel in, parallel out shift registers. I thought they'd be difficult to find but the 74LS164 is still available. It can even shift either direction but I don't need that functionality.

    #CPCZERO

  53. Pixel generation is a lot more fun to work on. It requires parallel in, parallel out shift registers. I thought they'd be difficult to find but the 74LS164 is still available. It can even shift either direction but I don't need that functionality.

    #CPCZERO

  54. Pixel generation is a lot more fun to work on. It requires parallel in, parallel out shift registers. I thought they'd be difficult to find but the 74LS164 is still available. It can even shift either direction but I don't need that functionality.

    #CPCZERO

  55. Pixel generation is a lot more fun to work on. It requires parallel in, parallel out shift registers. I thought they'd be difficult to find but the 74LS164 is still available. It can even shift either direction but I don't need that functionality.

    #CPCZERO

  56. I needed to do something calming today. Entering schematics is often calming. So I been working on the DRAMs and multiplexers. But doing everything eight times is not the calming I was looking for.

    I still have to assign address lines to DRAM pins but that will depend on board layout so I'll leave for later. The same for address lines to the multiplexers. That requires more concentration than I can muster today.

  57. I needed to do something calming today. Entering schematics is often calming. So I been working on the DRAMs and multiplexers. But doing everything eight times is not the calming I was looking for.

    I still have to assign address lines to DRAM pins but that will depend on board layout so I'll leave for later. The same for address lines to the multiplexers. That requires more concentration than I can muster today.

    #CPCZERO

  58. I needed to do something calming today. Entering schematics is often calming. So I been working on the DRAMs and multiplexers. But doing everything eight times is not the calming I was looking for.

    I still have to assign address lines to DRAM pins but that will depend on board layout so I'll leave for later. The same for address lines to the multiplexers. That requires more concentration than I can muster today.

    #CPCZERO

  59. I needed to do something calming today. Entering schematics is often calming. So I been working on the DRAMs and multiplexers. But doing everything eight times is not the calming I was looking for.

    I still have to assign address lines to DRAM pins but that will depend on board layout so I'll leave for later. The same for address lines to the multiplexers. That requires more concentration than I can muster today.

    #CPCZERO

  60. I needed to do something calming today. Entering schematics is often calming. So I been working on the DRAMs and multiplexers. But doing everything eight times is not the calming I was looking for.

    I still have to assign address lines to DRAM pins but that will depend on board layout so I'll leave for later. The same for address lines to the multiplexers. That requires more concentration than I can muster today.

    #CPCZERO