André's 8-bit Pages  Projects  Code  Resources  Tools  Forum

CS/A65 Auxiliary CPU

This board implements an auxiliary processor for the CS/A65 bus system. The auxiliary CPU watches the bus error conditions signaled via the NOEXEC (no execution allowed, which is checked with the CPU's SYNC line), WPROT (write protection) and NOTMAPD (page not mapped) lines, and in such a case takes over the bus to resolve the problem.

The auxiliary CPU does not have a full MMU, and it does not have own memory either. It uses 32k on the bus for the top and bottom 16k of its address space. Two areas of 4k can be mapped similar to the MMU, and two areas of 4k are set for the bus I/O and the secondary bus I/O.

The auxiliary board has a separate bus socket where another CS/A65 I/O board can be plugged in that the processor can handle independently from the bus I/O.

News:

Table of content

  • Driver
  • AUXCPU test suite
  • Board Revisions
  • 1.0C (ok)
  • 1.0B (prototype with bugs)
  • Driver

    AUXCPU test suite

    This test suite contains nine tests that for the auxcpu board:

    The tests run in a Caspaer setup, but with Commodore PET ROMs, as described in Roll-Your-Own-Fat40. This way the operating system does not fiddle around with the MMU registers necessary for the test.

    driver auxcpu.tar.gz
    photo trace.jpg(Sample trace output (The first poke is specific for my setup - I'm still using an old charrom - you can ignore it))
    memmap memsetup.gif(This shows the memory mapping used in the test cases.)

    Board revisions

    Version: 1.0C

    Status: ok

    Notes

    warn In this board the schematics has been tested, the layout has not been tested, though.
    msg This board has been tested in a test setup. The driver above contains the test programs.
    msg The board itself consists of two boards, where the smaller one is piggy-backed on top of the main Euro-card-sized board. The smaller one is called the "addon" board.
    msg The two timing diagrams show the timing of various signals on the schematics during the operation. They should help in understanding the boards.
    msg Please note that it still uses the v1.0b version of the addon board.

    Files

    desc csaauxcpudesc-v1.0c.txt
    schem csa_auxcpu-v1.0c-sch.png
    schem csa_auxcpu-v1.0c.sch
    schem csa_auxcpu_addon-v1.0b-sch.png(The addon board)
    schem csa_auxcpu_addon-v1.0b.sch(The addon board)
    layout csa_auxcpu-v1.0c-brd.png
    layout csa_auxcpu-v1.0c.brd
    layout csa_auxcpu_addon-v1.0b-brd.png(The addon board)
    layout csa_auxcpu_addon-v1.0b.brd(The addon board)
    photo auxcpubrds.jpg(The complete auxcpu board.)
    photo auxcpubrds-separate.jpg(The two auxcpucessor boards.)
    timing timing1.jpg(Timing sheet 1)
    timing timing2.jpg(Timing sheet 2)

    Version: 1.0B

    Status: prototype with bugs

    Notes

    warn

    The following bugs have been found:

    • The address selection goes to $e8d*/e8f* instead of $e85*/e87*
    • The /MEMSEL and /IOSEL lines on IC1 are messed up.
    • There is no interrupt generation feature.
    It seems that over checking and fixing the timing generation I forgot to check the more trivial parts. The complicated parts all worked out of the box... :-)

    msg This board has been tested in a test setup. The driver above contains the test programs.
    msg The board itself consists of two boards, where the smaller one is piggy-backed on top of the main Euro-card-sized board. The smaller one is called the "addon" board.

    Files

    schem csa_auxcpu-v1.0b-sch.png
    schem csa_auxcpu-v1.0b.sch
    schem csa_auxcpu_addon-v1.0b-sch.png(The addon board)
    schem csa_auxcpu_addon-v1.0b.sch(The addon board)
    layout csa_auxcpu-v1.0b-brd.png
    layout csa_auxcpu-v1.0b.brd
    layout csa_auxcpu_addon-v1.0b-brd.png(The addon board)
    layout csa_auxcpu_addon-v1.0b.brd(The addon board)
    photo auxcpubrds.jpg(The complete auxcpu board.)
    photo auxcpubrds-separate.jpg(The two auxcpucessor boards.)