Difference between revisions of "SIMPLE-Z80"

From Land Boards Wiki
Jump to navigation Jump to search
 
Line 585: Line 585:
 
** Adds srec_cat to combine files into one Intel Hex file
 
** Adds srec_cat to combine files into one Intel Hex file
  
==== NASCOM BASIC - Assembler Source files (for Windows/DOS) ====
+
==== NASCOM BASIC - Code Repository ====
  
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/LB-Z80/NASCOM_BASIC NASCOM BASIC Source Code] - 32KB version
 
* [https://github.com/douggilliland/Retro-Computers/tree/master/Z80/LB-Z80/NASCOM_BASIC NASCOM BASIC Source Code] - 32KB version

Latest revision as of 09:27, 20 September 2024

Tindie-mediums.png

SIMPLE-Z80 P1090251-720pxV.jpg

Features

Memory Map

  • 0x0000-0x1FFF 8KB ROM
  • 0x2000-0xFFFF 56KB SRAM
  • I/O
    • 0x00-0x7F - Free
    • 0x80-0x81 - Serial port (ACIA)

Chip Set

SimpleZ80 Chipset.jpg

Design

CPU

SIMPLE-Z80 U2 CPU.PNG

EPROM

SIMPLE-Z80 U6 EPROM.PNG

SRAM

SIMPLE-Z80 U4 SRAM.PNG

ACIA

  • Requires a FTDI cross-over cable
  • Can only use RS-232 or FTDI - one at a time
    • Put MAX232 in a socket if you want flexibility
    • Remove MAX232 if you want to use FTDI

SIMPLE-Z80 U3 ACIA.PNG

Clock

SIMPLE-Z80 U5 CLK.PNG

Headers / Connectors

SIMPLE-Z80 REV1 CAD.PNG

J1 - RS-232 Serial

  • DB-9 Male
  • Pinout
  1. N/C
  2. Receive
  3. Transmit
  4. Loop to pin 6
  5. GND
  6. Loop to pin 4
  7. RTS
  8. N/C
  9. N/C

J2/J5 - EPROM/EEPROM Select Jumpers

SIMPLE-Z80 J2 J5.PNG

  • J2 - EPROM Pin 1 jumper
    • 1-2 for 28C64, 28C256 (Pull WE to VCC)
    • 2-3 for 27256, 27SF256, 27512 (Pull A14 to GND)
  • J5 - EPROM Pin 27 jumper
    • GND (2-3)

EEPROM Pin Table

27512 27256 27SF256 28C256 27128 2764 28C64 PIN PIN 2764 28C64 27128 28C256 27SF256 27256 27512
A15 VPP VPP A14 VPP VPP N/C 1 28 VCC VCC VCC VCC VCC VCC VCC
A12 A12 A12 A12 A12 A12 A12 2 27 PGM WE* PGM WE* A14 A14 A14
A7 A7 A7 A7 A7 A7 A7 3 26 A13 N/C A13 A13 A13 A13 A13
A6 A6 A6 A6 A6 A6 A6 4 25 A8 A8 A8 A8 A8 A8 A8
A5 A5 A5 A5 A5 A5 A5 5 24 A9 A9 A9 A9 A9 A9 A9
A4 A4 A4 A4 A4 A4 A4 6 23 A11 A11 A11 A11 A11 A11 A11
A3 A3 A3 A3 A3 A3 A3 7 22 OE* OE* OE* OE* OE* OE* OE*
A2 A2 A2 A2 A2 A2 A2 8 21 A10 A10 A10 A10 A10 A10 A10
A1 A1 A1 A1 A1 A1 A1 9 20 CE* CE* CE* CE* CE* CE* CE*
A0 A0 A0 A0 A0 A0 A0 10 19 D7 D7 D7 D7 D7 D7 D7
D0 D0 D0 D0 D0 D0 D0 11 18 D6 D6 D6 D6 D6 D6 D6
D1 D1 D1 D1 D1 D1 D1 12 17 D5 D5 D5 D5 D5 D5 D5
D2 D2 D2 D2 D2 D2 D2 13 16 D4 D4 D4 D4 D4 D4 D4
GND GND GND GND GND GND GND 14 15 D3 D3 D3 D3 D3 D3 D3

J3 - FTDI / TTL Serial

  • Requires a FTDI cross-over cable
  • Can only use RS-232 or FTDI - one at a time
    • Put MAX232 in a socket if you want flexibility
    • Remove MAX232 if you want to use FTDI

SIMPLE-Z80 J3 FTDI.PNG

  • Pinout
  1. GND
  2. N/C
  3. +5V
  4. Transmit (out)
  5. Receive (in)
  6. RTS* (out)

J4 - 5V Power

  • 2x4 header

SIMPLE-Z80 J4 PWR.PNG

First Unit Checkout

  • PCB

SIMPLE-Z80 P1090181-720px.jpg

Install Sockets

  • Machined pin sockets

Install Passives

Power

  • Install 2x4 at J4
  • Power card via J4 with 5V
  • Check power pins on parts

Clock

  • Install Clock parts
    • Install R2, R3
    • Install C5, C6
    • Install 7.3728 MHz crystal
    • Install 74HC04 at U5
  • Measure clock at U5-4
    • 7.32 MHz clock - looks good

Reset

  • Do not install U8 Power Monitor
    • Reset button gets stretched by Power Monitor U9
  • Install pushbutton switch SW1
  • Measure reset at Z80 U2 pin marked RST on silkscreen

SIMPLE-Z80 P1090202-720PX.jpg

EPROM

  • U6 = SST27C256 EEPROM
    • 32 KB part
    • Using first 16KB of EEPROM
    • J2 EEPROM pin 1 = VPP = VCC or GND
      • Jumper J2:2-3
    • J5 EEPROM pin 27 = A14 = GND
      • Jumper J5:2-3

EEPROM Programming

SIMPLE-6502 TL866Plus Program.png

  • Device programmed/verified

Install CPU, ROM, RAM, ACIA

  • U1 - Do not install MAX232 yet

Test FTDI Serial

SIMPLE-Z80 P1090251-720pxV.jpg

Test RS-232 Serial

  • With MAX232
  • Install DB-9 Male
  • Holes don't line up well, but 4-40 screws can fit
  • Connected to FTDI-49MM and DCE cards

FTDI DCE P1090192-720PXV.jpg

  • Works

Netlist

  • First build had six open traces
    • Added wire U2-5 to U4-31
    • Added wire U2-15 to U4-14
    • Added wire U2-20 to U5-5
    • Added wire U2-40 to U4-23
    • Added wire U7-3 to U4-29
    • Added wire U7-11 to U4-30
  • Checked on 2 other boards, not an issue on the boards
  • Card worked with wires
/CPUA0,U2-30,U3-11,U4-12,U6-10,
/CPUA1,U2-31,U4-11,U6-9,
/CPUA2,U2-32,U4-10,U6-8,
/CPUA3,U2-33,U4-9,U6-7,
/CPUA4,U2-34,U4-8,U6-6,
/CPUA5,U2-35,U4-7,U6-5,
/CPUA6,U2-36,U3-9,U4-6,U6-4,
/CPUA7,U2-37,U3-10,U4-5,U6-3,
/CPUA8,U2-38,U4-27,U6-25,
/CPUA9,U2-39,U4-26,U6-24,
/CPUA10,U2-40,U4-23,U6-21,
/CPUA11,U2-1,U4-25,U6-23,
/CPUA12,U2-2,U4-4,U6-2,
/CPUA13,U2-3,U4-28,U6-26,U7-9,
/CPUA14,U2-4,U4-3,U7-10,
/CPUA15,U2-5,U4-31,U7-13,
/CPUCLK,U2-6,U3-3,U3-4,U5-4,
/CPUD0,U2-14,U3-22,U4-13,U6-11,
/CPUD1,U2-15,U3-21,U4-14,U6-12,
/CPUD2,U2-12,U3-20,U4-15,U6-13,
/CPUD3,U2-8,U3-19,U4-17,U6-15,
/CPUD4,U2-7,U3-18,U4-18,U6-16,
/CPUD5,U2-9,U3-17,U4-19,U6-17,
/CPUD6,U2-10,U3-16,U4-20,U6-18,
/CPUD7,U2-13,U3-15,U4-21,U6-19,
/CPUIORQ*,U2-20,U5-5,
/CPUM1,U2-27,U3-8,
/CPUMREQ*,U2-19,U7-2,U7-4,
/CPURD*,U2-21,U7-5,
/CPUWR*,U2-22,U3-13,U7-1,
/EE_PIN1,J2-2,U6-1,
/EE_PIN27,J5-2,U6-27,
/F-RTS*,J3-6,R5-2,
/F_RX,J3-5,R6-2,
/F_TX,J3-4,R7-2,
/IORQ,U3-14,U5-6,
/IRQ*,R4-2,U2-16,U3-7,
/MEMRD*,U4-24,U6-22,U7-6,
/MEMWR*,U4-29,U7-3,
/ROM0RAM1,U4-30,U6-20,U7-11,
/RS_RTS*,J1-7,U1-14,
/RS_RX,J1-2,U1-8,
/RS_TX,J1-3,U1-7,
/RTS*,R5-1,U1-11,U3-5,
/UART_RX,R6-1,U1-9,U3-2,
/UART_TX,R7-1,U1-10,U3-6,
/~{CPURESB},R1-2,SW1-2,U2-26,U8-1,
GND,C10-1,C11-1,C12-1,C13-1,C14-2,C3-2,C4-1,C5-2,C6-2,C7-1,C8-1,C9-1,J1-5,J2-3,J3-1,J4-1,J4-3,J4-5,J4-7,J5-3,SW1-1,U1-15,U2-29,U3-1,U3-23,U3-24,U4-16,U4-2,U4-22,U5-7,U6-14,U7-7,U8-3,
Net-(C5-Pad1),C5-1,R3-1,Y1-2,
Net-(C6-Pad1),C6-1,R2-1,U5-1,Y1-1,
Net-(J1-Pad4),J1-4,J1-6,
Net-(R2-Pad2),R2-2,R3-2,U5-2,U5-3,
Net-(U1-C1+),C1-1,U1-1,
Net-(U1-C1-),C1-2,U1-3,
Net-(U1-C2+),C2-1,U1-4,
Net-(U1-C2-),C2-2,U1-5,
Net-(U1-VS+),C3-1,U1-2,
Net-(U1-VS-),C4-2,U1-6,
Net-(U7-Pad12),U7-12,U7-8,
VCC,C10-2,C11-2,C12-2,C13-2,C14-1,C7-2,C8-2,C9-2,J2-1,J3-3,J4-2,J4-4,J4-6,J4-8,J5-1,R1-1,R4-1,U1-16,U2-11,U2-17,U2-24,U2-25,U3-12,U4-32,U5-11,U5-13,U5-14,U5-9,U6-28,U7-14,U8-2,

Software

Z80 Register Set

Z80 Registers.PNG

NASCOM 2 BASIC

Toolchain

  • TASM.EXE
  • TASM80.TAB
  • Assembler files (for Windows 11/DOS)
  • S Record and Hex file manipulation
  • Combine int32k.hex and BAS32K.HEX into rom32.hex using srec-cat
    • Command line
      • srec_cat.exe int32k.hex -Intel BAS32K.HEX -Intel -fill 0xff 0x0144 0x014f -o rom32.hex -Intel
  • _ASSEMBLE.BAT - double-click in Windows to run the assembly if needed
    • Adds srec_cat to combine files into one Intel Hex file

NASCOM BASIC - Code Repository

Source files

  • intmini.asm - the interupt driven mini startup program needed to boot into BASIC
  • basic.asm - BASIC 4.7b - a conversion of Microsoft BASIC 4.7, as used on the Nascom computers (see below for details)

Output files

  • INTMINI.HEX
  • BASIC.HEX
  • ROM.HEX - the complete 8K ROM ready for burning to an EPROM - the unused contents are filled with FF values.
  • Within the ROM, the serial handler is first (starting at address 0000H), followed by the BASIC interpreter (starting at 0100H).

Acknowledgements

  • BASIC is Microsoft BASIC 4.7 for the NASCOM, heavily modified by Grant to remove references to different monitors, screen handlers and keyboard matrix reading
  • TASM assembler is a partial distribution of the package from Speech Technology Incorporated

References

IntelHexRecordFormat.png

  • ASCII Table

ASCII TABLE.PNG

Performance

  • TeraTerm settings

SIMPLE-6809 TeraTerm Setup.PNG

  • Test software
10 FOR I =1 TO 10000
20 PRINT I
30 NEXT I

Mechanicals

SIMPLE-Z80 REV1 MECHS.PNG

SIMPLE-Z80 Assembly Sheet