Generic 8-bit uP SBC for RC2014

1,047 views
Skip to first unread message

Bill Shen

unread,
Nov 14, 2018, 9:13:02 AM11/14/18
to RC2014-Z80
I was going to lay out a pc board for the Z80SBCRC(https://github.com/Plasmode/Z80SBCRC), but then I thought it may be more interesting to do a "Generic 8-bit uP SBC for RC2014" that has the CPLD + RAM + nonvolatile controller + CF + RC2014 pre-wired, but leave a 48-pin 600-mil socket with jumper pads so it is easy to wire in Z80, 680x, 6502, 8085, and some 16-bit uP like 68008, and 32008.  The board may be as small as 50mm x 100mm, but no bigger than 75mm x 100mm.  What other processors should I include in this generic design? 

I dimly recall reading about a general 8-bit uP monitor/debuger IDE.  It is a commercial tool, but fairly inexpensive.  Is such tool still around?
  Bill

Alan Cox

unread,
Nov 14, 2018, 9:46:54 AM11/14/18
to rc201...@googlegroups.com
For Motorola there is a pretty good range of monitor and asm stuff
(Motorola got the open thing a long long time ago) so things like
Buffalo and as* are freely available.)

For a truely generic design I would have said

Motorola:
6800 (and 1/3) plus the 630x equivalents (much easier to find)
6809/6309 perhaps
68HC11
68008

Mostek/Rockwell/WDC/Etc
6502
65C02
[and of course there are subtle pin differences between 6502 variants]
65C816 with some kind of socket adapter

Intel:
8051
8085
801C88 or similar


The 68HC11 comes in all sorts of shapes and pinouts but the generic
68HC11Ax stuff is available in 48pin PDIP and has enough GPIO pins to
drive an SD card etc as well as having some left over to use as high
address lines (A16+ equivalent), plus the usual Motorola multipliexed
bus and uart.

The 6809 I am less sure is useful. A normal 6809 system has some kind
of MMU in order to run OS/9 or NitrOS9 and actually be useful.

The 6800 runs Flex, the 6801/3 is much nicer but won't properly do so.

Would you be intending to also do all the needed glue to turn motorola
bus protocols into Intel ones for the RC2014 backplane and devices ?

Bill Shen

unread,
Nov 14, 2018, 10:14:22 AM11/14/18
to RC2014-Z80
The CPLD has enough logic to do simple MMU so I think it can work with 6809.

Yes, I plan to convert Motorola timing to Intel timing to be compatible with RC2014 bus. 

I'm not sure I want to figure out all the different assembly languages, so a generic 8-bit uP software tool with common user interface would be very nice.
  Bill

On Wednesday, November 14, 2018 at 7:46:54 AM UTC-7, Alan Cox wrote:

Alan Cox

unread,
Nov 14, 2018, 10:43:06 AM11/14/18
to rc201...@googlegroups.com
> I'm not sure I want to figure out all the different assembly languages, so a generic 8-bit uP software tool with common user interface would be very nice.

I remember people spending years failing to make a useful one 8) The
nearest I ever saw was stuff that booted forth and then used common
forth code between the systems.

There are not too many architectures here 8)

For 6800/6801/6803/68HC11 it's basically the same (they keep adding
bits but all speak base 6800)

6809 is unique (but beautiful)

All the 6502/65C816 etc variants speak the same basic 6502 so that's 1

8085/Z80/8080 all speak the 8080 subset and CP/M

Whilst not quite the same as a universal monitor there are complete
monitors generally available for

6800: EXBUG, SWTBUG (and the OS layer FLEX and MDOS). FLEX is the
CP/M parallel for 6800. In some ways not so good but quite usable
6809: CamelForth or a million other booters and then FLEX09, OS/9, CUBIX etc
68HC11 traditionally uses BUFFALO. It's even available burned into the
ROM of some parts.

6502: SyMon is the fancy one, The original WOZ Apple I monitor is
another option, and there is CMON, which is so tiny most people assume
it's not an entire monitor 8)
http://biged.github.io/6502-website-archives/lowkey.comuf.com/cmon.htm
plus BASIC and of course stuff like DOS/65

Apart from the 6502 I've never found it too hard. The 6502 is a pain.
It never seems to have the instruction you want but it always has a
way to do it.

Alan

Bill Shen

unread,
Nov 25, 2018, 10:01:01 PM11/25/18
to RC2014-Z80
Another board design to Seeed Studio.  This is G8PP, Generic 8-bit processor prototype board.  It is about 70mm x 100mm with CPLD + 512K RAM + CF interface for RC2014 bus.  The first processor to try out is Z80 then 8080/8085, then 68008.  I reserved enough prototype space so I can prototype the NS32008 with NS32201 timing controller--I have tubes of them since forever.  If my brain doesn't burst first, I'll also try 680x and 6502!  There are no ROM on board; I'm quite smitten with Z280's UART bootstrap feature and implemented the same function in the CPLD.
  Bill
G8PP_r0_scm.pdf
G8PP_Seeed.jpg

Mark T

unread,
Dec 2, 2018, 11:32:24 AM12/2/18
to RC2014-Z80
Hi Bill, are GOE and GIN input only pins on epm7128s, would they not need to be IO for mreq and Iorq ?

Mark

Bill Shen

unread,
Dec 2, 2018, 12:53:14 PM12/2/18
to RC2014-Z80
Mark,
Yes, you are right.  I'll need to wire in spare test points for MREQ and IORQ so I can drive those signals out.  Thanks for checking out the schematic.
  Bill

Bill Shen

unread,
Dec 2, 2018, 12:57:51 PM12/2/18
to RC2014-Z80
I'm still waiting on the pc board to arrive.  I'm writing down my thoughts on G8PP here:
https://github.com/Plasmode/G8PP
  Bill

Greg Holdren

unread,
Dec 3, 2018, 12:07:09 PM12/3/18
to RC2014-Z80

Bill,

I'm guessing a 7160, with extra logic, will work too. Not sure if the pin out is the same as the 7128.What version of the Altera tools do you use?

Greg

Bill Shen

unread,
Dec 3, 2018, 1:25:58 PM12/3/18
to RC2014-Z80
7160S will give you room to add more logic, if needed.  7160S is not available in 100-pin PQFP, however

I'm using 15-year old Quartus version 8.1 only because I have permanent full license with that version.  Altera is very good in keeping their design tools compatible so the designs should port to later version without problems.  The latest version that support MAX7000 family is 13.0.
  Bill

Greg Holdren

unread,
Dec 3, 2018, 4:53:35 PM12/3/18
to RC2014-Z80
Digging around it looks like Altera discontinued them a few years ago. Looks like sellers on ebay and brokers still have them. I have 13.1 which is the last Cyclone III supported version. :) Looks I will have to install 13.0 too.

Greg

Bill Shen

unread,
Dec 7, 2018, 9:22:50 AM12/7/18
to RC2014-Z80
This is the basic G8PP board without any processor on it.  RAM is battery-backed (battery not inserted in the picture).  The prototype area is large enough to handle processors in 40/48 pin DIP plus a specialized support chip, usually a clock chip.  The CPLD can handle the rest.
  Bill

DSC_40691207.jpg

Bill Shen

unread,
Dec 8, 2018, 8:51:16 PM12/8/18
to RC2014-Z80
The first processor for G8PP is Z80, which is nothing new since the Z80SBCRC design is basically G8PP + Z80.  This is really a test circuit to make sure the board is designed properly.

There are still quite a number of manual wiring required.  Because the targeted processors all have different pin assignments, the 40/48-pin socket for processor is completely uncommitted, so there is 40 jumper wires right there.  There are another 10 or so jumper wires for flexibility considerations, so that's about 50 wires to be done manually, something that can be done in an evening.

The design works.  This is the StarTrek program running under BASIC under SCMonitor.  I run it so often that I made a special edition of SCMonitor with StarTrek program already loaded.

The ASCII Mandrobot running under CP/M 2.2 benchmarked at 52 seconds, that is the expected number for 22MHz Z80.

Lastly I ran the ZEXALL.COM instruction set test to make sure the overclocked Z80 can still execute all the instructions correctly.  It does.

The CF interface is quite robust.  The CF disk in the photo is a particular brand of disk that I've had problems with in many of my SBC.  It runs problem free in this particular circuit.
  Bill

-------------------------------------------------------------------------------------------------
>go to address: 0x0000 press Return to execute command

Small Computer Monitor - Z280RC
*wbasic
Ok
run


THE USS ENTERPRISE
--- NCC-1701

                                                         
,------*------,
                                         
,-------------   '---  ------'
                                         
'-------- --'      / /
                                             
,---' '-------/ /--,
                                               
'----------------'

YOUR ORDERS ARE AS FOLLOWS
:
--------------------------
   DESTROY THE
23 KLINGON WARSHIPS WHICH HAVE INVADED
   THE GALAXY BEFORE THEY CAN ATTACK FEDERATION HEADQUARTERS
   ON STARDATE
2931. THIS GIVES YOU 31 DAYS. THERE ARE
   
3 STARBASES IN THE GALAXY FOR RESUPPLYING YOUR SHIP.

PRESS Y TO ACCEPT COMMAND
? y


YOUR MISSION BEGINS WITH YOUR STARSHIP LOCATED
IN THE GALACTIC QUADRANT
, 'DENEB III'.

     COMBAT AREA      CONDITION RED
         SHIELDS DANGEROUSLY LOW

   
+--1---2---3---4---5---6---7---8-+
 
1 |                                | 1         STARDATE           2900
 
2 |             <E>  *             | 2         CONDITION          *RED*
 
3 |                                | 3         QUADRANT            2, 7
 
4 |                                | 4         SECTOR              2, 4
 
5 |                      *  +K+    | 5         PHOTON TORPEDOES   10
 
6 |                                | 6         TOTAL ENERGY       3000
 
7 |                                | 7         SHIELDS            0
 
8 |                                | 8         KLINGONS REMAINING 23
   
+--1---2---3---4---5---6---7---8-+

COMMAND
?

mbasic80 asciiart.txt
BASIC
-80 Rev. 5.21
[CP/M Version]
Copyright 1977-1981 (C) by Microsoft
Created: 28-Jul-81
32824 Bytes free
000000011111111111111111122222233347E7AB322222111100000000000000000000000000000
000001111111111111111122222222333557BF75433222211111000000000000000000000000000
000111111111111111112222222233445C      643332222111110000000000000000000000000
011111111111111111222222233444556C      654433332211111100000000000000000000000
11111111111111112222233346 D978 BCF    DF9 6556F4221111110000000000000000000000
111111111111122223333334469                 D   6322111111000000000000000000000
1111111111222333333334457DB                    85332111111100000000000000000000
11111122234B744444455556A                      96532211111110000000000000000000
122222233347BAA7AB776679                         A32211111110000000000000000000
2222233334567        9A                         A532221111111000000000000000000
222333346679                                    9432221111111000000000000000000
234445568  F                                   B5432221111111000000000000000000
                                             
864332221111111000000000000000000
234445568  F                                   B5432221111111000000000000000000
222333346679                                    9432221111111000000000000000000
2222233334567        9A                         A532221111111000000000000000000
122222233347BAA7AB776679                         A32211111110000000000000000000
11111122234B744444455556A                      96532211111110000000000000000000
1111111111222333333334457DB                    85332111111100000000000000000000
111111111111122223333334469                 D   6322111111000000000000000000000
11111111111111112222233346 D978 BCF    DF9 6556F4221111110000000000000000000000
011111111111111111222222233444556C      654433332211111100000000000000000000000
000111111111111111112222222233445C      643332222111110000000000000000000000000
000001111111111111111122222222333557BF75433222211111000000000000000000000000000
000000011111111111111111122222233347E7AB322222111100000000000000000000000000000
Ok


Z80SBC Monitor v0.52 10/31/18


>boot CP/M
2--CP/M2.2:
2 press Return to execute command

a>dir
A: XMODEM   COM : DEPKG    COM : PKG          : CBIOS    ASM
A: ASM      COM : BIOS     ASM : XSUB     COM : DDT      COM
A: DEBLOCK  ASM : DISKDEF  LIB : DUMP     ASM : DUMP     COM
A: ED       COM : LOAD     COM : MOVCPM   COM : PIP      COM
A: STAT     COM : SUBMIT   COM : SYSGEN   COM : ZEXALL   COM
a>zexall
Z80 instruction exerciser
<adc,sbc> hl,<bc,de,hl,sp>....  OK
add hl,<bc,de,hl,sp>..........  OK
add ix,<bc,de,ix,sp>..........  OK
add iy,<bc,de,iy,sp>..........  OK
aluop a,nn....................  OK
aluop a,<b,c,d,e,h,l,(hl),a>..  OK
aluop a,<ixh,ixl,iyh,iyl>.....  OK
aluop a,(<ix,iy>+1)...........  OK
bit n,(<ix,iy>+1).............  OK
bit n,<b,c,d,e,h,l,(hl),a>....  OK
cpd<r>........................  OK
cpi<r>........................  OK
<daa,cpl,scf,ccf>.............  OK
<inc,dec> a...................  OK
<inc,dec> b...................  OK
<inc,dec> bc..................  OK
<inc,dec> c...................  OK
<inc,dec> d...................  OK
<inc,dec> de..................  OK
<inc,dec> e...................  OK
<inc,dec> h...................  OK
<inc,dec> hl..................  OK
<inc,dec> ix..................  OK
<inc,dec> iy..................  OK
<inc,dec> l...................  OK
<inc,dec> (hl)................  OK
<inc,dec> sp..................  OK
<inc,dec> (<ix,iy>+1).........  OK
<inc,dec> ixh.................  OK
<inc,dec> ixl.................  OK
<inc,dec> iyh.................  OK
<inc,dec> iyl.................  OK
ld <bc,de>,(nnnn).............  OK
ld hl,(nnnn)..................  OK
ld sp,(nnnn)..................  OK
ld <ix,iy>,(nnnn).............  OK
ld (nnnn),<bc,de>.............  OK
ld (nnnn),hl..................  OK
ld (nnnn),sp..................  OK
ld (nnnn),<ix,iy>.............  OK
ld <bc,de,hl,sp>,nnnn.........  OK
ld <ix,iy>,nnnn...............  OK
ld a,<(bc),(de)>..............  OK
ld <b,c,d,e,h,l,(hl),a>,nn....  OK
ld (<ix,iy>+1),nn.............  OK
ld <b,c,d,e>,(<ix,iy>+1)......  OK
ld <h,l>,(<ix,iy>+1)..........  OK
ld a,(<ix,iy>+1)..............  OK
ld <ixh,ixl,iyh,iyl>,nn.......  OK
ld <bcdehla>,<bcdehla>........  OK
ld <bcdexya>,<bcdexya>........  OK
ld a,(nnnn) / ld (nnnn),a.....  OK
ldd<r> (1)....................  OK
ldd<r> (2)....................  OK
ldi<r> (1)....................  OK
ldi<r> (2)....................  OK
neg...........................  OK
<rrd,rld>.....................  OK
<rlca,rrca,rla,rra>...........  OK
shf/rot (<ix,iy>+1)...........  OK
shf/rot <b,c,d,e,h,l,(hl),a>..  OK
<set,res> n,<bcdehl(hl)a>.....  OK
<set,res> n,(<ix,iy>+1).......  OK
ld (<ix,iy>+1),<b,c,d,e>......  OK
ld (<ix,iy>+1),<h,l>..........  OK
ld (<ix,iy>+1),a..............  OK
ld (<bc,de>),a................  OK
Tests complete
a>



Bill Shen

unread,
Dec 8, 2018, 8:52:43 PM12/8/18
to RC2014-Z80
Forgot to include the photos of G8PPZ80

DSC_40781208.jpg
DSC_40801208.jpg

Bill Shen

unread,
Dec 28, 2018, 9:57:28 AM12/28/18
to RC2014-Z80
The second processor for G8PP is the 6502 from the 5 pcs W65C02S8P-10 I received a couple weeks ago that I ordered from eBay.  This is actually my first experience with 6502 and I ran into some strange behavior I don't understand.  Basically, the tri-state control signal (BE) is not releasing the address bus and CPU control signals are "weird" at 7.37MHz.  Fortunately there is a very active 6502 community (6502.org) with many helpful members.  I learned that what I received are not W65C02S8P-10, they are much lower speed 6502 parts from other manufacturers, another word, they are 'fake' parts but are functioning parts.  Once I reduced the clock to 3.68MHz, it starts to work according to data sheets.  The tri-state control still does not release the bus which indicates it may be earlier NMOS version of 6502.  I worked around that by inserting 160 ohms series resistors between 6502 addresses and Altera CPLD (EPM7128S) which is the alternate bus master during serial bootstrap stage.  With the help of 160 ohms current limiting resistors, Altera CPLD has sufficient drives to overcome 6502 and write data correctly to RAM.  Once the serial bootstrap phase is completed, the CPLD releases the bus to 6502 CPU and bus contention is no longer an issue.

I wrote a simple serial bootstrap routine that is basically an Intel Hex file loader and use it to load Lee Davison's EhBasic into memory and execute it.  With 3.68MHz clock, it is able to run the ASCII mandelbrot benchmark in 5 minutes and 55 seconds
  Bill

6502 EhBASIC [C]old/[W]arm ?

Memory size ?

48383 Bytes free

Enhanced BASIC 2.22p4


Ready
10 MAXITER=20
20 LET C$=" .,'~!^:;[/<&?oxOX#  "
30 FOR Y=-39 TO 39
40 FOR X=-39 TO 39
50 CREAL=X/20
70 CIMAG=Y/20
80 ZREAL = CREAL
90 ZIMAG = CIMAG
95 COUNT = 1
100 ZM = ZREAL*ZREAL
105 ZN = ZIMAG*ZIMAG
107 ZL = ZM+ZN
110 IF ZL>4 THEN GOTO 170
120 ZR2=ZM-ZN+CREAL
130 ZIMAG=ZREAL*ZIMAG*2+CIMAG
140 ZREAL=ZR2
150 COUNT=COUNT+1
160 IF COUNT<MAXITER THEN GOTO 100
170 PRINT MID$(C$,1+COUNT,1);
180 NEXT X
185 PRINT ""
190 NEXT Y
200 END
RUN
...............................,,,,,,,,,,,,,,,,,...............................
...........................,,,,,,,,,,,,,,,,,,,,,,,,,...........................
........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........................
......................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................
....................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....................
..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~..................
.................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,';~~'.................
................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'~~~''~................
..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
~~~''~',,..............
.............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
~~~~''~',,,,.............
............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
^~~~''~',,,,,,............
...........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
!~~~''!'',,,,,,,...........
..........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'~!~~!'';'',,,,,,,,,..........
.........'''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''^!~~:~~^!',,,,,,,,,,,.........
........'''''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'~:!~~^~~!^'',,,,,,,,,,,,........
........'''''''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'':!!~~^~~^!'',,,,,,,,,,,,,........
.......!^~''''''',,,,,,,,,,,,,,,,,,,,,,,,,''~[!!~!;~~^!'',,,,,,,,,,,,,,,.......
......''!:~'''''''''
,,,,,,,,,,,,,,,,,,,'''~//!!!!:~~^:~'',,,,,,,,,,,,,,,,......
.....'''
^!:~~'''''''''',,,,,,,,,,,,,''''~<;^!!!;:~~^!;'',,,,,,,,,,,,,,,,,,.....
.....''''^!:~~~''''''''''''''''''''''~~ : :!!!#:!~;!:''',,,,,,,,,,,,,,,,,,.....
....''''''^![!~~~~'''''''''''''''~~~~?[ &&::;/:^!:O!~'',,,,,,,,,,,,,,,,,,,,....
....'''''''
;![!~~~~~~~~~~~~~~~~~~~~/x       ?; /:/ &''',,,,,,,,,,,,,,,,,,,,....
...,'''''''':![^~~~~~~~~~~~~~~~~! O         <  :?<[~'''
,,,,,,,,,,,,,,,,,,,,,...
...,''''''''<:!<^!~~~~~~~~~~~~!:             [x?X^ '''',,,,,,,,,,,,,,,,,,,,,...
..,,,''''''''<:!?^!~~~~~~~~~!^;                 /[&''',,,,,,,,,,,,,,,,,,,,,,,..
..,,,''''''''<::!?;^!!~~~~!!^^                  /:^'''
,,,,,,,,,,,,,,,,,,,,,,,..
..,,,''''''''':::! /^^^!!!^^^[                  [:;''',,,,,,,,,,,,,,,,,,,,,,,..
.,,,''''''''''!: :: ?;^^^^^:/                    : ~''',,,,,,,,,,,,,,,,,,,,,,,.
.,,,''''''''''!x[ :/<<[;;;;&                      : ~'',,,,,,,,,,,,,,,,,,,,,,,.
.,,,'''''''''''
<     <?<//&                       <^</!,,,,,,,,,,,,,,,,,,,,,,,.
.,,'''''''''''!:      xxOx                         [ :^!,,,,,,,,,,,,,,,,,,,,,,.
,,,'''''''''''
![                                    &:!~,,,,,,,,,,,,,,,,,,,,,,,
,,'''''''''''~!                                   [ ~~''',,,,,,,,,,,,,,,,,,,,,,
,,''''''''''~!!                                  X/~~'''',,,,,,,,,,,,,,,,,,,,,,
,~~~~~~'~~~~!!                                     ~'''''',,,,,,,,,,,,,,,,,,,,,
,~^~~~~~~~!!!                                       '''''',,,,,,,,,,,,,,,,,,,,,
~~~&^~~~!!!!?                                    &!!'''''''
,,,,,,,,,,,,,,,,,,,,
~~~^:^^!!!:<                                     <~~''''''',,,,,,,,,,,,,,,,,,,,
!![^&:;;::?                                    [!!~~~'''''',,,,,,,,,,,,,,,,,,,,
                                             &;:^!~~~'''''''
,,,,,,,,,,,,,,,,,,,
!![^&:;;::?                                    [!!~~~'''''',,,,,,,,,,,,,,,,,,,,
~~~^:^^!!!:<                                     <~~''''''',,,,,,,,,,,,,,,,,,,,
~~~&^~~~!!!!?                                    &!!'''''''
,,,,,,,,,,,,,,,,,,,,
,~^~~~~~~~!!!                                       '''''',,,,,,,,,,,,,,,,,,,,,
,~~~~~~'~~~~!!                                     ~'''''',,,,,,,,,,,,,,,,,,,,,
,,''''''''''~!!                                  X/~~'''',,,,,,,,,,,,,,,,,,,,,,
,,'''''''''''
~!                                   [ ~~''',,,,,,,,,,,,,,,,,,,,,,
,,,'''''''''''
![                                    &:!~,,,,,,,,,,,,,,,,,,,,,,,
.,,'''''''''''!:      xxOx                         [ :^!,,,,,,,,,,,,,,,,,,,,,,.
.,,,'''''''''''
<     <?<//&                       <^</!,,,,,,,,,,,,,,,,,,,,,,,.
.,,,''''''''''!x[ :/<<[;;;;&                      : ~'',,,,,,,,,,,,,,,,,,,,,,,.
.,,,''''''''''!: :: ?;^^^^^:/                    : ~''',,,,,,,,,,,,,,,,,,,,,,,.
..,,,'''''''''
:::! /^^^!!!^^^[                  [:;''',,,,,,,,,,,,,,,,,,,,,,,..
..,,,''''''''<::!?;^!!~~~~!!^^                  /:^'''
,,,,,,,,,,,,,,,,,,,,,,,..
..,,,''''''''<:!?^!~~~~~~~~~!^;                 /[&''',,,,,,,,,,,,,,,,,,,,,,,..
...,''''''''<:!<^!~~~~~~~~~~~~!:             [x?X^ '''',,,,,,,,,,,,,,,,,,,,,...
...,'''''''':![^~~~~~~~~~~~~~~~~! O         <  :?<[~'''
,,,,,,,,,,,,,,,,,,,,,...
....''''''';![!~~~~~~~~~~~~~~~~~~~~/x       ?; /:/ &''',,,,,,,,,,,,,,,,,,,,....
....''''''^![!~~~~'''''''''''''''~~~~?[ &&::;/:^!:O!~'',,,,,,,,,,,,,,,,,,,,....
.....''''^!:~~~''''''''''''''''''''''~~ : :!!!#:!~;!:'''
,,,,,,,,,,,,,,,,,,.....
.....'''^!:~~'''''''''',,,,,,,,,,,,,''''~<;^!!!;:~~^!;'',,,,,,,,,,,,,,,,,,.....
......''!:~'''''''''
,,,,,,,,,,,,,,,,,,,'''~//!!!!:~~^:~'',,,,,,,,,,,,,,,,......
.......!^~'''''''
,,,,,,,,,,,,,,,,,,,,,,,,,''~[!!~!;~~^!'',,,,,,,,,,,,,,,.......
........''''''',,,,,,,,,,,,,,,,,,,,,,,,,,,,,'':!!~~^~~^!'',,,,,,,,,,,,,........
........'''''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'~:!~~^~~!^'',,,,,,,,,,,,........
.........'''
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,''^!~~:~~^!',,,,,,,,,,,.........
..........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
~!~~!'';'',,,,,,,,,..........
...........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'!~~~''!'',,,,,,,...........
............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
^~~~''~',,,,,,............
.............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
~~~~''~',,,,.............
..............,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
~~~''~',,..............
................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'
~~~''~................
.................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,';~~'.................
..................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,~~..................
....................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,....................
......................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,......................
........................,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,........................
...........................,,,,,,,,,,,,,,,,,,,,,,,,,...........................
...............................,,,,,,,,,,,,,,,,,...............................

Ready



DSC_41271222.jpg
DSC_41281222.jpg
G8PP6502_scm.pdf

Mike, K8LH

unread,
Dec 29, 2018, 11:22:05 AM12/29/18
to RC2014-Z80
Bill, congrats' on overcoming your 65C02 problems.  

Does your CPLD require different firmware for each CPU, and if so, how difficult is it to load the firmware?

Mike, K8LH

unread,
Dec 29, 2018, 11:59:08 AM12/29/18
to RC2014-Z80
Bill, you might also consider the RCA / Harris CDP1802/5/6 processors.  I've included the 1802/5/6 in my 'Pocket CPU' series, along with 65C02, 63C09, and Z80 versions, all of which use a microcontroller 'blind loader' method using ~11 pins (doesn't require tri-stating and driving the address bus & data bus) to load RAM from a pseudo ROM image in microcontroller flash memory.  If you're interested, here's what my 'Pocket 1802' prototype looks like;

Cheerful regards, Mike, K8LH


On Wednesday, November 14, 2018 at 9:13:02 AM UTC-5, Bill Shen wrote:
1802 4-chip #2.jpg
1802 4-chip #3.jpg
1802 4-chip #4.jpg

Bill Shen

unread,
Dec 29, 2018, 12:05:51 PM12/29/18
to RC2014-Z80
Mike,
Yes, the CPLD requires a different firmware for each CPU.  The Altera EPM7128S can be programmed in-situ.  On the board is a 2x5 header for the programmer to plug in.  Reprogramming the CPLD is a matter of power up the board, upload the new firmware that takes about 30 seconds or less.  The Altera USB Blaster clone can be purchased from eBay for lesser than $5.
  Bill

Bill Shen

unread,
Dec 29, 2018, 12:23:00 PM12/29/18
to RC2014-Z80
Mike,
I've read several designs of I/O processor for vintage processors.  They are tightly-coupled hetergenous multiprocessor configuration and frankly too challenging for me!  I'm having enough problem with one processor doing normal things.
I'll add 1802 to my list of vintage processors, in fact I have several silver-ceramic1802 IC dated in 1970's.  I'm redoing the G8PP so instead of single-board computer for every processor, it is a common I/O board plus a simple CPU board connected via RC2014 backplane.  This save me the hassel of wiring up a new G8PP board for every processor.  I think my current to-do list has 8 processors (1802 just added) and there are lot more processors from 1970's!  This is a picture of the new configuration with 6502 CPU board in the foreground.
  Bill
DSC_41451228.jpg

Bill Shen

unread,
Dec 29, 2018, 12:41:17 PM12/29/18
to RC2014-Z80
Added a compact flash adapter to the common I/O board, changed out the oscillator to 14.7MHz, uploaded a new CPLD and swapped in Z80 CPU card.  Now it is running CP/M.
  Bill
DSC_41491229.jpg

Mark T

unread,
Dec 29, 2018, 2:04:38 PM12/29/18
to RC2014-Z80
Hi Bill,
I'd be interested to see that list of processors.

I think its a good plan to separate the processor and IO to avoid having to recreate the memory and IO for every processor. I was also thinking of making it simpler to swap in different processors as there is a lot of pin to pin wiring in your G8PP. It should be possible to put most of the configuration to map the 40 pins of the processor to the RC2014 internal to the EPM7128S. Using a ZIF for the processor and a row of pin headers on either side to select pins tied to Vcc or Gnd. This probably wouldn't work for 48 pin chips as there is not enough IO.

I'll probably use 102mm x 102mm and lay the board flat from the edge of a modular backplane, due to the weight of the ZIF and size of the board.

Still very much a work in progress but screenshot so far should show the intention:-

New Bitmap Image.png



Mark

Bill Shen

unread,
Dec 29, 2018, 2:52:37 PM12/29/18
to RC2014-Z80
The list of processors are: Z80, 6502, 8085, 6809, 68008 and 32008.  To that I added 8080 (because a person has a 8080 in-circuit emulator and wanted to try it out) and lastly 1802.  I'm working on 8085 and 6809 right now.

It took me a while to move to the two-board approach because I was hoping to convert all the various processor's timing to Z80 timing compatible with RC2014 modules.  This way the various processors can reuse the existing RC2014 modules.  That's more difficult than I've expected.  Beside, the G8PP already has CF, paged memory, clock and a basic serial port plus prototype area for RTC, I2C and SPI, so reuse the existing RC2014 modules may not be that important.

As I gained more experience, the baseline configuration of G8PP should not have any manual wirings.  The five RC2014 control signals (nM1, nMREQ, nRD, nWR, nIORQ) plus the 4 spare pins are reassigned different signals depending on the processor card in use.  Reprogramming the CPLD should handle the different signal assignments.

What I hope to achieve when changing processor is
* Reprogram the CPLD on G8PP,
* Change oscillator,
* Plug in the targeted processor card,
* Serially load bootstrap associated with the processor,
* Load applications and run. 
* No manual wiring changes and no EPROM burning.
  Bill

Bill Shen

unread,
Jan 3, 2019, 12:30:03 AM1/3/19
to RC2014-Z80
Two more processors come alive, 8085 and 68008.  Lesson-learned from 6502: I want to make sure the processors I have on hand are good and the common G8PP hardware configuration is flexible enough to handle different processors.  For 8085 and 68008 I only have the basic monitor software to check out the hardware.  They worked well enough for me to feel good about the generic prototype concept.  Both processors are CP/M capable so that will be the end points of their development.

So far I'm pleased with the common G8PP support board where paged memory, serial port, bootstrap function and compact flash are reused with minimal reconfiguration of the glue logic.  The CPLD can be easily reprogrammed without moving the hardware and new software can be serially uploaded and ran without the hassle of PROM programming.  Hardware debugging process is greatly accelerated in this setup.

Software development remain the big challenge, at least for me.  At this bare metal level they are all assembly languages. 8085 and Z80 are similar but have enough differences to muddle the water.  6502, 68008, 6809 and 1802  are all different so it is quite a mental acrobatic to keep them all in order.  I'm attempting the spiral development approach--touching all major hardware/software/tools of all major CPU fairly quickly, document & think about lessons-learned and then iterate all over again.  Let see how well that works, I'm not a spring chicken anymore...
  Bill

DSC_41501231.jpg
DSC_41520102.jpg

Bill Shen

unread,
Jan 9, 2019, 5:20:29 PM1/9/19
to RC2014-Z80
First 5 pc boards of this glad new year.  Sent off the designs to JLCPCB in the afternoon of Jan 6 and received the boards back morning of Jan 9 for $22 PCB + $20 DHL shipping from China to USA, trade-war notwithstanding.  Very impressive!  This is the 2nd times I used JLCPCB, mainly because I want to have a full 40-pin RC2014 bus (102mm wide pc board), but now I'm sold on JLCPCB.

The boards are 6809, 68008, Z80, 6502, and 8085.  I added a RC2014 header for 90-degree female socket opposite to the RC2014 connector so G8PP can plug directly into the CPU card without the backplane.
  Bill

DSC_41740109.jpg
DSC_41730109.jpg

Steve Cousins

unread,
Jan 10, 2019, 5:50:00 AM1/10/19
to RC2014-Z80
Hi Bill

Designs looking great.

I really like JLCPCB. They are not normally quite that quick. Usually about 6 days from order to delivery using DHL. I sent off some Gerbers last night and noticed the production tracking indicates they are progressing faster than usual, so perhaps they are not as busy at the moment.

You seem to get much better DHL pricing than I get in the UK. For that size order I would expect to pay about $28.

I've also been experiencing the UK charging huge import duty on some orders. It seems random when/if they charge and how much. When they charge the amount varies incredibly. I can see no pattern to it. Anyone else in the UK having this problem or able to explain how this works?

Steve

Mike Strange

unread,
Jan 10, 2019, 6:19:10 AM1/10/19
to RC2014-Z80
I have seen huge differences but I think it depends on how well the sender's customs decalration is completed. The rules are:

VAT

You pay VAT on goods sent from non-European Union (EU) countries and EU special territories (eg the Canary Islands) if they’re:

  • gifts worth more than £39
  • other goods worth more than £15

You’ll be charged at the VAT rate that applies to your goods. VAT is charged on the total value, including:

  • the price paid for the goods
  • postage, packaging and insurance
  • any duty you owe

Customs Duty

You’ll be charged Customs Duty on gifts and other goods sent from outside the EU if they’re above a certain value.
The value includes:
    the price paid for the goods
    postage, packaging and insurance

Type and value of goods     Customs Duty
Anything under £135           No charge
Gifts worth £135-£630         2.5%, but rates are lower for some goods - call the helpline
Gifts above £630 and other goods above £135     The rate depends on the type of goods and where they came from - call the helpline

Marten Feldtmann

unread,
Jan 10, 2019, 7:07:29 AM1/10/19
to RC2014-Z80
Here in Germany, the limit for VAT consideration is around €25 - INCLUDING postage and packaging. The problem with DHL is, that in their contract rules, they allow themselves to manage my VAT issues and they get a minimum fee for this work (in addition to the VAT you have to pay) - so you might order PCBs for around €10, pay postage €20 and then here in Germany additional €12 for their VAT-management and then VAT on top of that.

So I switched now to registered AirMail transfer - its much cheaper but takes at least 3-4 weeks. At JLCPCB it seems, that they are all produced on the same priority - but with registerd AirMail they have a different carrier to the airport and this carrier comes not every day to them.

Bill Shen

unread,
Jan 10, 2019, 8:26:10 AM1/10/19
to RC2014-Z80
Steve,
My boards are small, 36mm x 102mm.  The JLCPCB software calculate the weight based on the board size and thickness, so my order is probably lighter than most, thus the lower shipping cost.  DHL service to Albuquerque, NM is reliably speedy, well worth the extra money.

I don't have to pay tariff, at least not yet.  Death & tax are matter of time.
  Bill

Steve Cousins

unread,
Jan 10, 2019, 12:03:13 PM1/10/19
to RC2014-Z80
Mike, thanks for info. It doesn't seem to account for my charges.

None of my orders are anywhere near £135 so none should attract Customs Charges.

Some of my orders would be subject to VAT, but that does not account for the variations.

Here are some examples for JLCPCB:
Goods £24.95, Shipping £26.65, Total £51.60 -> Customs charged £4.92 (seems reasonable)
Goods £13.25, Shipping £22.27, Total £35.52 -> Customs charged £17.00 (wow)
Goods £13.25, Shipping £26.50, Total £39.75 -> Customs charged ZERO (suits me!)

JLCPCB's paperwork seem of consistent detail and quality, so I think it looks like customs charge whatever they fancy.

Steve

Steve Cousins

unread,
Jan 10, 2019, 12:06:44 PM1/10/19
to RC2014-Z80
Bill, I did try to account for the weight of the boards, but hadn't spotted the boards are smaller (36mm rather than 50mm) so as you say that could account for the difference.
Steve

brwella...@gmail.com

unread,
Jan 11, 2019, 3:37:59 AM1/11/19
to RC2014-Z80
Steve,

Here in France I have used JLCPCB for over 40+ packages and to date have not paid a single penny in Custom Duty or VAT. 

The only times I have had to pay any extra charges were for a single large purchase direct from Digikey in the USA and once for some specialized electronic components which also came direct from Australia. They were each well over 200 Euro (about £180). In both cases the imposed duty was almost the same as the declared value on the CN22 form (ie the original purchase value) which hurt but not really totally unexpected..

As Mike Strange has detailed earlier you should not be paying any customs duty as your examples are all well under £135 and similarly for the possible imposition of VAT. 

Maybe now that you are trading some of these items as part of a commercial enterprise they are viewing your purchases using some other rules where it is left to individual discretion as to whether it should be applied or not hence the variations.

Brian

Steve Cousins

unread,
Jan 11, 2019, 8:35:53 AM1/11/19
to RC2014-Z80
Hi Brian,

Thanks for sharing your experience here. 

I had my first customs charge of a £50 (including delivery) order well before I sold any boards, so I don't think that is the reason.

I'm sure I read somewhere ages ago that customs will weigh packages and charge based on a scale for the type of contents. So heavy boards deemed to be electronics equipment will attract a high charge. EasyEDA include good accurate paperwork so if customs don't except what it says I think they should take it up with EasyEDA, as they are actually assuming EasyEDA are making a false customs declaration.

I wonder how difficult it is to challenge a charge. 

Steve

Alan Cox

unread,
Jan 11, 2019, 10:12:26 AM1/11/19
to rc201...@googlegroups.com
> I'm sure I read somewhere ages ago that customs will weigh packages and charge based on a scale for the type of contents. So heavy boards deemed to be electronics equipment will attract a high charge. EasyEDA include good accurate paperwork so if customs don't except what it says I think they should take it up with EasyEDA, as they are actually assuming EasyEDA are making a false customs declaration.

The parcel company should be charging you based upon the customs
label. HMRC are entitled to check packages with dubious valuations but
the matter is solely for HMRC who if appropriate will charge you or
the supplier in a totally different manner involving a judge. If HMRC
had decided the customs label was false then it would have other
paperwork/stickers.

> I wonder how difficult it is to challenge a charge.

Unless you are willing to drag them to small claims in my experience
they don't care. They will lie to you about whether it can be fixed,
deny responsibility for things they did, be magically unable to find
the paperwork etc. They don't care and they know they don't have to.
It's the usual UK large company farce. You could maybe wind them up by
asking for a copy of all the paperwork for the transaction using data
protection and telling their DP not to miss anything as it may be used
in a future court case. Not tried with the parcel folks but it works
wonders with telcos.

Even funnier is if they didn't charge you when they should and you try
and get that fixed (because it's actually something where you need a
paper trail and to show the error was reported). Oh boy. HMRC had *no
idea* what to do about it and told me to go away.

I reckon on average its about right, with all the stuff they don't
bother with 8)

Might as well get used to it - we are going to be doing a lot more of from April

Alan

Mark T

unread,
Jan 11, 2019, 10:34:19 AM1/11/19
to RC2014-Z80

Delivery here in Canada, the import duty is 13% of the the value of the goods, but then DHL add $10.50 processing and another $4.75 transaction fee, which are also both taxed. There might be a threshold at which this is charged, but I think DHL always declares and charges tax because its an extra income stream for them. I might try Fedex next time to see if its any better.

Mark

Mike Strange

unread,
Jan 11, 2019, 10:55:30 AM1/11/19
to RC2014-Z80
It doesn't make sense Steve; I wonder if the carrier has been different as I have found Parcel 'Farce' to be the lot most likely to raise a demand.
I know I read somewhere that there is a charge for making the charge but I haven't been able to locate the reference; I remember it seemed steep last time I was hammered.
I see there is a claim system:

If you’re charged too much or return your goods

Ask for a refund of VAT or Customs Duty if you:

  • return your goods
  • think you’ve been charged too much

Download and fill in:

  • form BOR 286 if Royal Mail or Parcelforce delivered the goods
  • form C285 if a courier or freight company delivered the goods
Mike

Bill Shen

unread,
Jan 18, 2019, 7:32:56 PM1/18/19
to RC2014-Z80
I like the combination of G8PP+processor.  It makes a nice, compact system that feels like a re-configurable single-board computer.

CP/M68K is running on G8PP+68K8.  Screenshot of CP/M68K booting up, compiling & running "Hello World" C program.  However, it is slow compare to Tiny68K. This is because 68008 data bus is 8-bit instead of 16-bit and the compact flash interface is 8-bit instead of 16-bit.  This exercise reminds me that G8PP can also accommodate a class of 32-bit processors with dynamic bus sizing function like 80386 or 68020/030.  Although to maintain reasonable performance of the 32-bit processor, some 32-bit RAM should reside on the CPU board.

Hmmm, It is entirely possible to have 68030 on RC2014 which should make it the fastest RC2014 processor--something worth bragging about...
  Bill
DSC_41790115.jpg
CPM68K_running_G8PP_68K8.jpg

Alan Cox

unread,
Jan 20, 2019, 8:13:30 AM1/20/19
to rc201...@googlegroups.com
> CP/M68K is running on G8PP+68K8. Screenshot of CP/M68K booting up, compiling & running "Hello World" C program. However, it is slow compare to Tiny68K. This is because 68008 data bus is 8-bit instead of 16-bit and the compact flash interface is 8-bit instead of 16-bit. This exercise reminds me that G8PP can also accommodate a class of 32-bit processors with dynamic bus sizing function like 80386 or 68020/030. Although to maintain reasonable performance of the 32-bit processor, some 32-bit RAM should reside on the CPU board.

It's interesting how it reflects the S100 world. Everyone ended up
making S100 boards with RAM either on them or on a second board with a
magic extra connector, and as it got faster less and less could be
stuck across the bus.

68008 isn't IMHO a great processor. The 8088/80188 and friends have an
asynchronous BIU (bus interface unit) and are actually much more
effective at using the memory bandwidth for instructions.

Alan

Bill Shen

unread,
Jan 20, 2019, 8:55:40 AM1/20/19
to RC2014-Z80
The 680x0 instruction set is inefficient (but elegant).  I struggled to put a simple file loader in 255 bytes bootstrap.  Z80 is quite a bit more efficient, and folks from 6502.org repeatedly reminded me that Steve Wozniak wrote a functioning monitor for 6502 in 256 bytes.  I agree cutting down the memory bandwidth for 68008 is not a good idea.
  Bill

7alken

unread,
Sep 15, 2025, 8:09:58 AM (7 days ago) Sep 15
to RC2014-Z80
wow, guys, just now reading this entire thread... I totally overlooked g8pp since I am here, only few weeks ago noticed it while browsing yours plasmo retro designs and quickly skipped that it is something I must peek into ... but only today I dig into details and this all here - and I am entire time learning from you Bill a lot, totally ... and sure from all others too; so as 7xsys is in fact indpendent and more for retro-comp group, you were here doing almost the same journey, ya; I only wanted since start 3V3 (or below) and something with smaller boards and sepaarte memory modules, near CPU, so that "magic extra connector" (as 7xmem, or now also my "new" mostly testing "DIP32+16" (and I wa in fact checking your designs Bill, if it fits, and in many cases not, as your boards are very tight already, plus btw, for fast SRAMs, you are using custom SOJs etc, gotcha... but I relly wanted to have linear memory modules, interchangeable (the more if SRAMs are expensive) or having also possibility of sdram/edo (dragonball ez in mind, and my wish to include here also PPC, so mpc823e, mostly) - that g8pp approach is likeable for me, sure, a lot, perfect from you, as expected - but what I wonder is that nobody mentioned g8pp in recent months/years I am intruding here )) ... Nevermind; so, I found it and have great time reading this ... (except the customs "fun", sure - and I also almost forget when brexit happened ... quite sad, still) ... so, the monitor and software, again, my idea was since some John Winans video about rv32 weirdo binary encoding about "cleaner" rv32-alike VM (despite that acronym itself may autoload guns to somebody...)) ... it grew slowly to profiles and maybe types  up to fs/tui support (in spec still only) and I had drown myself into hw design too, okay )) btw, John Winans discord was initially about testing how to compile C stdio code for CP/M and then I built Z80Retro! board at least ... (not knowing rc2014 nor RomWBW) ... plus I have here batch of some tiny yamaha audio chip I wanted to spread more anywhere too; and to write some code/drivers for it some generic way ... so vmex was born (and aslix idea too) - only recently I found CVbasic, probably great also (around pico9918 generic config code also) - it has not filesystem support, but its simple compiler, something very near to aslix ideas too ... only few compilers exists till now, but here are experts in compilers, sure (I am not, in anything) ... ya, forth of course mentioned also, exactly; (but as I about month ago read panasonic HHC manuals of their system, its interesting, but not much readable, but interesting how it is expected to work, respond only to events always and sleeping all the time (without daemons though, and they occur quickly...) ... so its all about question if you dont want to support vmex/aslix too for some generic code/tools, settling on rv32em-alike as "intermediate representation/language" (but also moving target, as I want it to be more ciscy to have vm more effective, at least slightly - and sure, it expect context switches at level of vmex core, so cheap and on aligned pages, as static code size, small things, but many of them - and lot of things is not even drafted yet, ... day has quite static timeframe also and only one head here still ))) ... uff, so, enjoying to read this all, guys, thanks again...

keep hacking
 -Petr

Bill Shen

unread,
Sep 15, 2025, 3:40:43 PM (7 days ago) Sep 15
to RC2014-Z80
G8PP used the classic 40-pin RC2014 connector and signal assignments for Z80, but  signal definitions were changed for 8085, 6502, 6809, and 68008.  So much so, I no longer feel it should be in the RC2014 forum anymore, so I’ve moved it to retro-comp forum.  Most of G8PP works were done in years 2018-2019 and it was experimental as the name implied.  Around 2022, I revived the generic processor’s architecture, but with more systematic approach called GRC.  The backplane is similar to your 7xsys with 40mmX100mm pc boards and motherboard with 2x25 connectors.  You can find information about G8PP and GRC in my homepages and design blogs on retrobrewcomputers forum


https://www.retrobrewcomputers.org/forum/index.php?t=msg&th=348&goto=5707&#msg_5707


https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:g8pp


https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:prcc


https://www.retrobrewcomputers.org/forum/index.php?t=msg&goto=10296&&srch=Grc#msg_10296

7alken

unread,
Sep 15, 2025, 7:07:23 PM (6 days ago) Sep 15
to RC2014-Z80
thanks Bill, really overlooked even in retro-comp, or if I skipped it mostly because of 5V by design... don't know; sure it doesn't fit here; will check it all, still learning;
Petr
Reply all
Reply to author
Forward
0 new messages