Home » RBC Forums » General Discussion » CB030, A 68030 SBC for hobbyists
CB030, A 68030 SBC for hobbyists [message #6931] |
Sat, 18 January 2020 09:44  |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Having spent 2 years in the Z80 world, I'm returning to the 68K. Currently I'm working on a 68030 SBC, CB030, named after Cecil B. who is really enthusiastic about Tiny030 and want one even with all the jumpers. Unfortunately Tiny030 design is marginal and not producible so I redesigned it and added additional features specifically for Cecil.
I want CB030 to be simple, economical and build-able by hobbyists. For 68030 these are difficult requirements because 68030 is inherently not economical, simple nor easily assembled by hobbyists. However, it may be possible to meet these challenging requirements with a couple design compromises. The compromises are using a modest surface mount CPLD as the glue logic and using inexpensive commercial SIMM 72 as memory. Great deal of expensive and complex logic can be reduced with an economical CPLD; with vertical SIMM memory stick, the pc board shrink to the economical 100mm x 100mm size; the rest of components are all thru-hole technology so assembly become manageable. The one difficult-to-assemble CPLD is designed to be assembled and programmed first and the partially assembled pc board sold for about $15-20 so the end users can source their own components and finish assembling the board.
Here are features of CB030:
* Low cost 25MHz 68030
* 72-pin SIMM 16/64/128 meg DRAM
* CPLD glue logic
* 8-bit 512K boot EPROM
* 68681 DUART
* 44-pin IDE interface
* 8-bit I/O expansion connector
* 100mm X 100mm pc board
* CP/M68K ready
The 512K EPROM contains a simple monitor and CP/M68K BIOS/CCP/BDOS as well as few basic CP/M68K system files, enough to format new CF disk and transfer files from PC to CF using KERMIT. CP/M68K is a place holder operating system, what I hope for is a modern OS for CB030, but that's beyond my ability right now. Perhaps the low cost, hobbyist-friendly 68030 SBC can attract the software talents for more suitable operating systems.
CB030 is currently in rev0 prototype. It is functional, but there are several mistakes that'll require a new board revision. Of particular note is the DiskOnModule shown in the attached picture. The design calls for a CF disk, but because the connector layout was inadvertently mirrored which happens to match the mirrored pin assignment of DOM, the rev0 board uses DOM instead of CF disk for mass storage. Preliminary information:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:cb030spec
Bill
|
|
|
|
|
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #6944 is a reply to message #6941] |
Mon, 20 January 2020 20:39   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Alan,
The BDOS/CCP for CB030 already has the 68010 patch as described here:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: rvumbaca:start
I do enable the instruction cache in the monitor before starting up CP/M68K. The curious thing about the privilege violation is it is flagged when cache is enabled going into CP/M68K, but if I disabled the cache before starting up CP/M, the CP/M program would run just fine. The instruction that's flagged with privilege violation is "move.w ccr,d0", but that is actually not a privileged instruction.
To accommodate 68010, the exception handler supooses to "dynamically change the "move from SR" instruction to the non-privileged "move from CCR" instruction. I need to investigate how that's done, perhaps it is a self modifying instruction that need to flush the cache first...
Thanks for the heads up about 32-bit I/O write that may actually be cache regardless of the CIIN pin. Must be one of those race conditions involving write back of data when the data is also immediately read back. I do use CIIN signal to disable I/O caching, but all my I/O ports are 8-bit wide, so I shouldn't have that problem.
I do plan to turn on 030's synchronous termination along with burst mode filling feature. I'm interested to see what kind of performance improvement possible with that.
Bill
|
|
|
|
|
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #6953 is a reply to message #6952] |
Fri, 24 January 2020 07:05   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
The memory requirement is more consistent with 68030 of the days, 64meg is a lot for a Mac 68030. 16 meg SIMM is so cheap ($2-3) that is no brainer to put it in CB030. 64 meg is a bit more (~$10), but I'm making the 16/64/128 meg selection jumper-able so the board can accommodate different size memory with a jumper change.
OK, it does seems FPU is not absolutely required and I'll do without FPU in the first iteration and keep the board cheap.
@tobster, CB030 has an 8-bit I/O expansion port, so I can add Ethernet and other peripherals. I'm going to try the Quad Serial port based on OX16C954 which has very deep FIFO and capable of megabit serial communication.
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:quadser
@Alan, thanks for suggesting NetBSD, I'll take a look at it, although it will be like a babe-in-the-woods looking under the hood of a broken-down car--I doubt I'll know what I'm looking at.
Bill
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #6954 is a reply to message #6953] |
Fri, 24 January 2020 19:21   |
 |
lowen
Messages: 226 Registered: August 2016 Location: Western NC USA
|
Senior Member |
|
|
Hi plasmo! To give something of a comparison, I had an Apollo DN3500 workstation network, and the typical workstation was an '030 at 25MHz and 8MB of RAM, running Domain/OS 10.2. When I consolidated from six workstations to one, I loaded that one to the gills with four 8MB boards for a whopping 32MB, and it was hard to fill half of that with a full GUI system and a dozen PADs open ( Domain/OS GUI is not X, and a PAD is not an xterm.... ).
--
Bughlt: Sckmud
Shut her down Scotty, she's sucking mud again!
[Updated on: Fri, 24 January 2020 19:22] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #7144 is a reply to message #7143] |
Sat, 29 February 2020 19:02   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
rwiker wrote on Sat, 29 February 2020 09:31Very, very nice... are you planning to sell this (in either kit or assembled form)?
Several people have asked about CB030 as kit or assembled board so I'll answer it here. The rev1 CB030 requires 2 jumpers that are a bit tricky to do, so right now I'm only making the assembled and tested CB030 available for $75 plus $5 shipping in USA. It includes a 16 meg DRAM and a 256meg CF disk with cpm 68k installed. I will make a small modification to the PC board design so I can offer rev1.1 CB030 as a partially assembled kit where CPLD will be soldered and programmed along with all SMT resistors and capacitors; buyer needs to provide his own 68030, 68681, CF disk, DRAM, oscillator and hardware. The partially assembled kits will be available for $15 plus $5 shipping in USA.
I've shipped out 3 rev1 CB030, I still have 5 assembled/tested CB030.
Bill
[Updated on: Sat, 29 February 2020 19:06] Report message to a moderator
|
|
|
|
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #7150 is a reply to message #7149] |
Mon, 02 March 2020 20:33   |
mikemac
Messages: 250 Registered: March 2017
|
Senior Member |
|
|
OK, maybe a simpler question: how do I copy the B: drive to another compact flash so that I can test that device?
I'm a complete CPM newbie. My level of CPM expertise is I can do 'b:<cr>dir<cr>' and that's about it. Is there a site detailing how to make a CPM68k "disk' on a CF? Maybe with some disk images that would work with the CD030?
Mike
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #7152 is a reply to message #7150] |
Mon, 02 March 2020 20:58   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
Mike,
You'll find the following files on drive A: which is a read-only drive reside on the EPROM, so they are always there even without a CF disk
A>dir
A: ME 68K : GKERMIT 68K : AS68SYMB DAT : DDT68000 68K : DDT 68K
A: PIP 68K : INIT 68K : STAT 68K : AS68 68K : LINK68 68K
A: DUMP 68K : LO68 68K : ED 68K : AR68 68K : MORE 68K
A: FIND 68K
A>
The three particularly useful files are PIP, INIT, and GKERMIT. When you insert a new CF disk, you first initialize it with "init b:", "init c:", init d:", and "init e:" to clear out the directories of four 8-meg disks on CF. Then you can do "pip b:=a:*.*[v]" to see if files can be copied correctly from ROM drive to CF drive. If that's successful, then you can use GKERMIT to transfer files from your PC to CF drives.
To use GKERMIT to transfer files from you existing CF disk to PC, type:
a:gkermit -s filename <- the filename can be wildcard, so it can be *.* to transfer the entire disk to PC
on terminal emulator, look for the kermit transfer protocol and enable file receive. For TeraTerm it is File->Transfer->Kermit->Receive
To transfer files from PC to CB030, type:
a:gkermit -r
on the terminal emulator, look for the kermit transfer protocol and select file send. For TeraTerm it is
File->Transfer->Kermit->Send then select the file(s) to send.
Bill
[Updated on: Mon, 02 March 2020 21:00] Report message to a moderator
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #7153 is a reply to message #7151] |
Mon, 02 March 2020 21:44   |
mikemac
Messages: 250 Registered: March 2017
|
Senior Member |
|
|
norwestrzh wrote on Mon, 02 March 2020 21:56>> OK, maybe a simpler question: how do I copy the B: drive to another compact flash so that I can test that device?
The way I do it is with "dd" on a Linux system. I think there are "dd" work-alikes for WinDoze, but I don't know anything about them.
1. figure out the length of your A: drive in 512b sectors. Call it 'X'
2. run "dd" as follows: dd if=<my_CF> ibs=512 of=b_drive obs=512 skip='X' count='X'
3. if your system swaps bytes, you might have to add conv=swab to the above to swap bytes.
4. at that point you have the "B" drive in the file "b_drive" (I'm assuming that the count of 512b sectors in A == B).
5. copy "b_drive" (the file) to a new CF with: dd if="b_drive" ibs=512 of=<new CF> obs=512.
If you can set up the cpmtools application, you could extract the individual files from "b_drive", if you'd like to.
Roger
Thanks. Yeah, I'm an long time Linux user/developer. So 'dd' is quite familiar to me. I was just thrown by the CF still mounting as a vfat partition under Linux when 8 8MB CPM 'disks' are on the CF someplace. And 'fdisk' states the vfat partition starts in the first sector, so either the CPM disks are located somewhere else on the CF or they're occupying the same sectors, which would be 'bad'. Your 'dd' parameters imply the latter.
I'll have to go find cpmtools jus for good measure.
Mike
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #7154 is a reply to message #7152] |
Mon, 02 March 2020 21:53   |
mikemac
Messages: 250 Registered: March 2017
|
Senior Member |
|
|
plasmo wrote on Mon, 02 March 2020 21:58Mike,
You'll find the following files on drive A: which is a read-only drive reside on the EPROM, so they are always there even without a CF disk
A>dir
A: ME 68K : GKERMIT 68K : AS68SYMB DAT : DDT68000 68K : DDT 68K
A: PIP 68K : INIT 68K : STAT 68K : AS68 68K : LINK68 68K
A: DUMP 68K : LO68 68K : ED 68K : AR68 68K : MORE 68K
A: FIND 68K
A>
The three particularly useful files are PIP, INIT, and GKERMIT. When you insert a new CF disk, you first initialize it with "init b:", "init c:", init d:", and "init e:" to clear out the directories of four 8-meg disks on CF. Then you can do "pip b:=a:*.*[v]" to see if files can be copied correctly from ROM drive to CF drive. If that's successful, then you can use GKERMIT to transfer files from your PC to CF drives.
To use GKERMIT to transfer files from you existing CF disk to PC, type:
a:gkermit -s filename <- the filename can be wildcard, so it can be *.* to transfer the entire disk to PC
on terminal emulator, look for the kermit transfer protocol and enable file receive. For TeraTerm it is File->Transfer->Kermit->Receive
To transfer files from PC to CB030, type:
a:gkermit -r
on the terminal emulator, look for the kermit transfer protocol and select file send. For TeraTerm it is
File->Transfer->Kermit->Send then select the file(s) to send.
Bill
OK, thanks. I've used kermit on other non CPM systems before so I'm familiar with the concept. 'pip' is a new one for me. Sounds like a disk to disk copy command.
Copying B: to the PC and then back to a new B: using gkermit sounds like an overnight job. :
Is copying A: to a new B: enough to verify the CF to be working? IE the CF that don't work would be detected by such an exercise?
Mike
|
|
|
|
Current Time: Tue Jul 15 13:19:15 PDT 2025
Total time taken to generate the page: 0.00990 seconds
|