Difference between revisions of "Z80 in 3 Chips"

From Land Boards Wiki
Jump to navigation Jump to search
 
(13 intermediate revisions by the same user not shown)
Line 35: Line 35:
  
 
== Connectors ==
 
== Connectors ==
 +
 +
[[file:Z80_PSOC_Rev3_CAD.PNG]]
  
 
=== H1 - I2C Interface ===
 
=== H1 - I2C Interface ===
Line 80: Line 82:
  
 
== Software ==
 
== Software ==
 +
 +
=== Software Configuration ===
  
 
* Hardware/Software options are set in the PSoC "Hardware_Config.h" file
 
* Hardware/Software options are set in the PSoC "Hardware_Config.h" file
Line 90: Line 94:
 
*** MULTIBOOT_CPM
 
*** MULTIBOOT_CPM
  
=== Front Panel ===
+
=== Operation ===
 
 
[[file:EightBitFrontPanel720px.JPG]]
 
  
 
* Card waits on USB connection
 
* Card waits on USB connection
 
* Run PuTTY
 
* Run PuTTY
 +
** Baud rate is auto-detected by PSoC
 +
* After PuTTY is running, card boots into Front Panel Control
 +
* LEDs are cycled
 
* Message
 
* Message
 +
 
<pre>
 
<pre>
 
Z80_PSoC - Running Front Panel
 
Z80_PSoC - Running Front Panel
Press SW25 to exit and run Z80
+
 
 +
SW25 SW26 SW27 SW28 SW29 SW30 SW31 SW32
 +
Run  Mon  N/A  N/A  N/A  LDAD STOR INCA
 +
 
 +
SW17 SW18 SW19 SW20 SW21 SW22 SW23 SW24
 +
A15  A14  A13  A12  A11  A10  A9  A8
 +
 
 +
SW9  SW10 SW11 SW12 SW13 SW14 SW15 SW16
 +
A7  A6  A5  A4  A3  A2  A1  A0
 +
 
 +
SW1  SW2  SW3  SW4  SW5  SW6  SW7  SW7
 +
D7  D6  D5  D4  D3  D2  D1  D0
 +
 
 +
Press SW25 (upper left button) to exit Front Panel and run Z80
 
Press SW26 to run Monitor/Test Code
 
Press SW26 to run Monitor/Test Code
 
</pre>
 
</pre>
* Card boots into Front Panel Control
+
 
* SRAM can be examined/changed in SRAM from the Front Panel
 
 
* Options to run Z80 or PSoC Monitor
 
* Options to run Z80 or PSoC Monitor
 
** SW32 (Upper right) = Increment address, read
 
** SW32 (Upper right) = Increment address, read
 
** SW31 = Store data, increment address, read data
 
** SW31 = Store data, increment address, read data
 
** SW30 = Load Address, read memory
 
** SW30 = Load Address, read memory
** SW29 = TBD
 
** SW28 = TBD
 
** SW27 = TBD
 
 
** SW26 = Run Monitor
 
** SW26 = Run Monitor
 
** SW25 (Upper Left) = Run Z80
 
** SW25 (Upper Left) = Run Z80
 +
 +
=== Front Panel ===
 +
 +
[[file:EightBitFrontPanel720px.JPG]]
 +
 +
<pre>
 +
SW25 SW26 SW27 SW28 SW29 SW30 SW31 SW32
 +
Run  Mon  N/A  N/A  N/A  LDAD STOR INCA
 +
 +
SW17 SW18 SW19 SW20 SW21 SW22 SW23 SW24
 +
A15  A14  A13  A12  A11  A10  A9  A8
 +
 +
SW9  SW10 SW11 SW12 SW13 SW14 SW15 SW16
 +
A7  A6  A5  A4  A3  A2  A1  A0
 +
 +
SW1  SW2  SW3  SW4  SW5  SW6  SW7  SW7
 +
D7  D6  D5  D4  D3  D2  D1  D0
 +
</pre>
 +
 +
* Press SW25 (upper left button) to exit Front Panel and run Z80
 +
* Press SW26 to run Monitor/Test Code
  
 
=== Z80_PSoC Monitor ===
 
=== Z80_PSoC Monitor ===
Line 118: Line 154:
 
* Press SW26 button (one in from upper left) button on [[Front Panel For 8 Bit Computers]] to run the Monitor
 
* Press SW26 button (one in from upper left) button on [[Front Panel For 8 Bit Computers]] to run the Monitor
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/PSOC/PSOC_Design_Files/Z80-PSoC-3-Chips_002 PSoC Code Github repo]
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/PSOC/PSOC_Design_Files/Z80-PSoC-3-Chips_002 PSoC Code Github repo]
 +
* SRAM can be examined/changed in SRAM from the Front Panel
  
 
<pre>
 
<pre>
Line 140: Line 177:
  
 
[[file:Z80_PSoC_Monitor_D_Command.PNG]]
 
[[file:Z80_PSoC_Monitor_D_Command.PNG]]
 +
 +
* Type X to exit and run Z80
  
 
=== Multiboot Multicomp (MULTIBOOT_CPM) ===
 
=== Multiboot Multicomp (MULTIBOOT_CPM) ===
Line 149: Line 188:
 
** 115,200 baud
 
** 115,200 baud
 
* Card will power up and cycle through all the LEDs on the Front Panel
 
* Card will power up and cycle through all the LEDs on the Front Panel
 +
* Address = 0x0000, Data is displayed on LEDs
 
* Press SW25 (upper left button) on [[Front Panel For 8 Bit Computers]] to run Multiboot software
 
* Press SW25 (upper left button) on [[Front Panel For 8 Bit Computers]] to run Multiboot software
 
* PuTTY will display
 
* PuTTY will display
Line 155: Line 195:
 
</pre>
 
</pre>
 
* Press SPACE
 
* Press SPACE
* Press H for help menu
+
* Press ? for help menu
 
<pre>
 
<pre>
 
>
 
>

Latest revision as of 11:20, 7 September 2022

Features

Z80 P865-cropped-720px.jpg

  • Z80
    • 12.5 MHz operation
  • 512KB SRAM
  • PSoC5LP
    • Z80_PSoC Datasheet - generated from PSoC Creator
    • PSoC5 LP emulates standard Z80 peripheral chips
      • Serial port with USB
    • Memory Management Unit (MMU)
      • Controls 512KB SRAM
    • Loader moves EPROM code to SRAM
    • Controls CPU reset
  • Optional MCP23017 16-bit port expander
    • I2C Addresses 0x24
  • Optional Front Panel
    • I2C Addresses 0x20-0x23
  • SPI interface for SDHC card

Stackup (top to bottom)

Z80 PSOC P936-CROPPED-720PX.jpg

Connectors

Z80 PSOC Rev3 CAD.PNG

H1 - I2C Interface

  • Connects to Front Panel Card via I2C

Conn H1.PNG

H2 - ISP Download

  • Connects to PSoC programmer

Conn H2.PNG

H3- Serial Port or SPI (SD Card)

Conn H3.PNG

H4 - I/O

Conn H4.PNG

J1 - USB B

  • 5V card Power
  • USB to Serial comm port

J2, J3 - I/O Ports

  • J3 connects to JOYPAD on GPA connector

Conn J2 J3.PNG

J4 - Audio Out

  • DAC is the Analog function generator in the PSoC

Conn J4.PNG

J5 - Z80 Signals

  • Useful for monitoring the CPU lines

Conn J5.PNG

Software

Software Configuration

  • Hardware/Software options are set in the PSoC "Hardware_Config.h" file

Operation

  • Card waits on USB connection
  • Run PuTTY
    • Baud rate is auto-detected by PSoC
  • After PuTTY is running, card boots into Front Panel Control
  • LEDs are cycled
  • Message
Z80_PSoC - Running Front Panel

SW25 SW26 SW27 SW28 SW29 SW30 SW31 SW32
Run  Mon  N/A  N/A  N/A  LDAD STOR INCA

SW17 SW18 SW19 SW20 SW21 SW22 SW23 SW24
A15  A14  A13  A12  A11  A10  A9   A8

SW9  SW10 SW11 SW12 SW13 SW14 SW15 SW16
A7   A6   A5   A4   A3   A2   A1   A0

SW1  SW2  SW3  SW4  SW5  SW6  SW7  SW7
D7   D6   D5   D4   D3   D2   D1   D0

Press SW25 (upper left button) to exit Front Panel and run Z80
Press SW26 to run Monitor/Test Code
  • Options to run Z80 or PSoC Monitor
    • SW32 (Upper right) = Increment address, read
    • SW31 = Store data, increment address, read data
    • SW30 = Load Address, read memory
    • SW26 = Run Monitor
    • SW25 (Upper Left) = Run Z80

Front Panel

EightBitFrontPanel720px.JPG

SW25 SW26 SW27 SW28 SW29 SW30 SW31 SW32
Run  Mon  N/A  N/A  N/A  LDAD STOR INCA

SW17 SW18 SW19 SW20 SW21 SW22 SW23 SW24
A15  A14  A13  A12  A11  A10  A9   A8

SW9  SW10 SW11 SW12 SW13 SW14 SW15 SW16
A7   A6   A5   A4   A3   A2   A1   A0

SW1  SW2  SW3  SW4  SW5  SW6  SW7  SW7
D7   D6   D5   D4   D3   D2   D1   D0
  • Press SW25 (upper left button) to exit Front Panel and run Z80
  • Press SW26 to run Monitor/Test Code

Z80_PSoC Monitor

Land Boards, LLC - Z80_PSoC monitor
I - Initialize SD Card
B - Blink LED
F - Read Front Panel
Rxxxxxxxx - Read sector xxxxxxxx from the SD Card
N - Read next sector from the SD Card
W - Write to the SD Card at 2GB - 1 sector
X - eXit Monitor and run Z80
? - Print this menu
  • Type to check the SD card
R4000
  • Result:

Z80 PSoC Monitor D Command.PNG

  • Type X to exit and run Z80

Multiboot Multicomp (MULTIBOOT_CPM)

  • CP/M Multiboot - Runs MultiComp 512KB SRAM version
  • Insert "M/CPM 512KB" SD card
  • Insert USB B cable
  • Run PuTTY
    • 115,200 baud
  • Card will power up and cycle through all the LEDs on the Front Panel
  • Address = 0x0000, Data is displayed on LEDs
  • Press SW25 (upper left button) on Front Panel For 8 Bit Computers to run Multiboot software
  • PuTTY will display
Press [SPACE] to activate console
  • Press SPACE
  • Press ? for help menu
>
  Available Commands:

  :ccxxxxiibbbbbb       Load Intel-Hex file record
  Rxxxx         Run from address xxxx
  Sddd          System boot
  Iddd          Init: Format directory
  Pddd[,xxxx]   PutSys: write system image[,loadaddress]
                (No address: re-use last loadaddress)
  Gddd[,xxxx]   GetSys: load system track

  Dxxxx[,yyyy]  Dump memory from xxxx [,to yyyy]
                D (no address) shows next block
  Cxxxx         Change/show memory at xxxx
                CR advances "," quits

  ddd is a decimal volume number,
  xxxx, yyyy is a hexadecimal address.
  Leading zeros may be omitted.
  ESC or ^C aborts.

Mount Primary Volume

Mount Additional Volumes

  • Mount additional drives using mount command
    • mount d vol
      • Ex: mount b: 9 will mount ZCPR3 Utilities A-O as drive b:
      • Can (re-)mount different volume to same drive with same command
  • Additional Volumes

Z80 BASIC Ver 4.7b

Running Grants Code scaled.png

Reference Designs

Hackaday Page

Videos

Assembly Sheet