Home » RBC Forums » General Discussion » CB030, A 68030 SBC for hobbyists
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10076 is a reply to message #10074] |
Fri, 12 August 2022 09:39   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
mikesmith wrote on Fri, 12 August 2022 02:13RTC working nicely:
Good, I think I will design a small PCB to support the DS1302 RTC. It will have the original 7-segment display connector so the existing display adapter can piggyback over the RTC.
Bill
[Updated on: Fri, 12 August 2022 09:41] Report message to a moderator
|
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10089 is a reply to message #10088] |
Sun, 14 August 2022 20:46   |
mikesmith
Messages: 80 Registered: March 2018
|
Member |
|
|
plasmo wrote on Sun, 14 August 2022 19:11
This message repeats every few seconds. Apparently it is looking for a boot file in the CF disk. So I formatted a CF disk on my PC and copied CB030\CMDS\BOOTOBJS\BOOTFILES\diskboot.bf to the newly formatted CF disk. Power up CB030, but still received the same repeating error message. So what do I need to do to boot OS-9?
romboot will look for a bootfile either in ROM or on a CF disk. On disk it's looking for an OS-9 formatted disk with the bootfile installed; you can see the workflow for this in the dist/deploy.sh script. It depends on having built the toolshed binaries, or a bit of a chicken-and-egg game regenerating the bootfile from modules in RAM. I have a TODO to include Windows toolshed binaries in the package but I'm still tinkering with the workflow and that part's not really ready for primetime yet (I need to switch from a Bash script to a Windows batchfile, specifically).
The easiest way to get started, though, is just to flash a ROM image that contains a built-in bootfile; ports/CB030/CMDS/BOOTOBJS/ROMBUG/romimage.dev is probably the most interesting one. That has many of the interesting modules already loaded.
For more detail on the boot process, chapter 2 "Porting OS-9 for 68K" of MWOS/DOC/PDF/68k_oem.pdf has a pretty reasonable overview. It does rather gloss over the "magic" of building a bootfile (literally just concatenating the modules together), and you have to dig a bit further to get to how the booter knows where to look, but most of it is in there. 
The System Overview chapter of MWOS/DOC/PDF/68k_tech.pdf has some useful conceptual information about modules as well.
[Updated on: Sun, 14 August 2022 21:38] Report message to a moderator
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10095 is a reply to message #10089] |
Mon, 15 August 2022 19:29   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
mikesmith wrote on Sun, 14 August 2022 21:46
The easiest way to get started, though, is just to flash a ROM image that contains a built-in bootfile; ports/CB030/CMDS/BOOTOBJS/ROMBUG/romimage.dev is probably the most interesting one. That has many of the interesting modules already loaded.
I programmed & installed a flash with romimage.dev as you suggested which allows CB030 to boot into OS9 successfully. Not knowing anything about OS9 I tried a number of utility commands described in doc/pdf/68k_use.pdf The CF disk related utilities do not work, but I was able to run "date", "setime", "mfree", "procs", "set" utilities. I'm happy to see setime command can change and display DS1302 RTC values. I assume many utilities are not working because the porting of OS9 is on-going. I'm happy to be a beta tester for your OS9 port to CB030.
Bill

|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10096 is a reply to message #10095] |
Mon, 15 August 2022 21:01   |
mikesmith
Messages: 80 Registered: March 2018
|
Member |
|
|
Which utilities did you try? OS-9 disk stuff is a bit... interesting. More reading may make things clearer, but basically for the CF disk there are two parts; the driver module (cfide) and the descriptor modules (c0, c0_fmt and dd) that configure it.
For a simple test, insert a CF card and type 'dump /c0@'. That should give you a raw hexdump of the contents of the card, starting at block 0. 'c0' is the descriptor name, '/' means to look for a device rather than a file, and '@' means to open it raw rather than to try to mount the filesystem. You can think of '/c0' as a drive specifier like 'A:'.
'dd' is just 'c0' but with the "default" disk name (dd = default disk). c0_fmt is c0 but it allows writing to LBA0, which is required to format the disk or install a bootfile.
Here's a transcript of me formatting a CF card and installing a bootfile on it, with contents from the ROM bootfile. This depends on the 'save' and 'build' commands being in the ROM bootfile that you start with - you can add these by editing ports/CB030/BOOTFILE/dev.bl. I'll add them to the github repo shortly and add a version of this to the README.
$ format c0_fmt
... blah blah ...
Formatting device: c0_fmt
proceed? y
this is a HARD disk - are you sure? y
physical format desired? n
physical verify desired? n
volume name: boot
building media bitmap...
... blah blah ...
writing root directory structure
$ chd /c0_fmt
CompactFlash driver build 39
$ save -f=OS9Boot kernel ioman init syscache ssm fpu tkcb030 rtclock scf null nil pipeman pipe sc68681 term t1 rbf cfide dd sysgo mshell csl pd
$ os9gen -e /c0_fmt -q=OS9Boot
$ makdir SYS
$ chd SYS
$ build startup
? chd /dd
? chx /dd/CMDS
?
$
<<< board reset >>>
OS-9/68K System Bootstrap
Now trying to boot from CompactFlash.
A valid OS-9 bootfile was found.
pd: can't open current directory. $ mdir -e
Addr Size Owner Perm Type Revs Ed # Lnk Module name
-------- -------- ----------- ---- ---- ---- ----- ----- --------------
00007100 28476 0.0 0555 Sys a000 375 2 kernel
0000e03c 5660 0.0 0555 Sys a000 37 1 ioman
0000f658 330 0.0 0555 Sys 8000 51 1 init
0000f7a2 406 0.0 0555 Sys a000 25 1 syscache
0000f938 1908 0.0 0555 Sys a000 41 1 ssm
000100ac 12848 0.0 0555 Sys a000 18 1 fpu
000132dc 276 0.0 0555 Sys a000 11 1 tkcb030
... etc. but see these low addresses - these modules are in RAM where the bootfile was loaded from CF
00038920 4312 1.0 0555 Prog c001 30 0 pd
fe026986 148 0.0 0555 Desc 8000 26 1 c0
fe026a1a 152 0.0 0555 Desc 8000 26 0 c0_fmt
fe0471dc 4838 1.0 0555 Prog c001 39 0 attr
fe0484c2 2756 0.0 0555 Prog c001 10 0 break
fe048f86 2670 1.0 0555 Prog c001 24 0 build
... see how these have been discovered from the bootfile that's in ROM, because the bootloader told the kernel to look there as well. They will run just fine out of the ROM (slowly, of course).
fe0721e6 13838 1.0 0555 Data 8001 1 0 basic68k.stb
... still debugging this one
You can use 'save' to copy program modules from the ROM into /dd/CMDS and then flash NOBUG/romimage.diskboot. When you boot, it will run /SYS/startup which in the example above will change your data directory (chd) to /dd and your execution directory (chx) to /dd/CMDS. At that point, any commands you type will run off the CF rather than from the in-memory sticky copies (the diskboot ROM does have a few emergency commands in it).
[Updated on: Mon, 15 August 2022 21:08] Report message to a moderator
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10100 is a reply to message #10097] |
Wed, 17 August 2022 09:01   |
mikesmith
Messages: 80 Registered: March 2018
|
Member |
|
|
I've been working on a more comprehensive install procedure (updated instructions in README.md in the repo), but having issues with uploads; somewhere between the zip file on my host disk, and reading it back, things are getting corrupted.
I've seen two different sets of errors, but I'm still trying to narrow down where things are going wrong. The archive looks OK on the host, and the ZModem transfer completes without errors so I am assuming that the bytes arrive on the board OK. Something between there and unzip seems to be the problem...
[Updated on: Wed, 17 August 2022 09:16] Report message to a moderator
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10104 is a reply to message #10101] |
Sat, 20 August 2022 21:15   |
mikesmith
Messages: 80 Registered: March 2018
|
Member |
|
|
The OS-9 porting process was 90% learning, and 10% (tops) actually writing any code. I must say that I have a slightly better appreciation of the claim that OSK was killed off because maintaining a system written in assembler was too difficult; debugging things when you mess up is quite hard. Especially without kernel sources.
Hopefully I can work out the corruption problem, but after that there's a short laundry list of things that would be nice to have:
- A copy of the 1.3 SDK.
- An ELF to ROFF converter, or ROFF support ported from old BFD (the Amiga folks have done the work getting support for A5 as frame pointer, so the last missing piece for a working GCC is the ability to produce OS-9 binaries).
- Ports of some newer utilities (I had to scrounge to find a working zip / zmodem).
- A bit-bang SPI driver.
- Some sort of file interchange story.
...
I'm looking for other platforms to add to the to-be-ported list, if folks have suggestions. P90MB is coming along so far; I think it'll be interesting to see how well things run with 512K of RAM...
[Updated on: Sat, 20 August 2022 21:17] Report message to a moderator
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10105 is a reply to message #10104] |
Sun, 21 August 2022 05:37   |
plasmo
Messages: 916 Registered: March 2017 Location: New Mexico, USA
|
Senior Member |
|
|
I can send you a complimentary MPU302 if you like. It is a reverse-engineered commercial board (ADC Soneplex MPU) with 16mhz 68302 (68000 core), 1 Meg RAM, 2.25 meg flash, RTC, 5 serial channels (68692+68302 internal serials), PIO, etc. I've added a CF disk interface to the PIO and ported CPM68K. They used to be dirt cheap as surplus boards, but not any more. Discussion and homepage are here:
https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:spx-mpu
https://www.retrobrewcomputers.org/forum/index.php?t=msg& ;amp ;th=201&prevloaded=1&&start=0
Bill
[Updated on: Sun, 21 August 2022 05:38] Report message to a moderator
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10107 is a reply to message #10104] |
Sun, 21 August 2022 15:03   |
mikesmith
Messages: 80 Registered: March 2018
|
Member |
|
|
mikesmith wrote on Sat, 20 August 2022 21:15
Hopefully I can work out the corruption problem
In all cases, I'm seeing bits geting set in the high nibble: d->f, b->f, 5->7, a->e. No obvious address sensitivity. The rate is low; those are 6 samples out of a 690k file.
Interestingly, it always looks like bits that are getting set were 1s in the previous byte:
50,bb -> 50,fb
24,5f -> 24,7f
56,a3 -> 56,e3
Copying the file many times (i.e. exercising the CF read / write path) doesn't seem to introduce any new corruption, so that seems to exonerate the filesystem / disk.
Now I need to find a way to validate the file transfer path. ZModem is fairly aggressive with its checksumming, so that doesn't leave a whole lot of options.
[edit]
Looks like serial reception is unreliable at 9600bps, and there's enough corruption that occasionally we hit a CRC collision and ZModem lets the corrupted bits through. Uploading at 4800bps is reliable, but obviously that's no fun. Going to have to see if I can work out if the UART FIFO is being overrun, or if something else is going on. I had the UART configured at IPL2, which would have been a problem, but after looking at the CPLD and moving it to 3 that hasn't helped.
[Updated on: Sun, 21 August 2022 21:46] Report message to a moderator
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10111 is a reply to message #10110] |
Mon, 22 August 2022 18:36   |
mikesmith
Messages: 80 Registered: March 2018
|
Member |
|
|
Bill,
Thanks for the thoughts. I did wire up hardware flow and enable it in the OS-9 driver, and I've verified that at least my desktop is respecting the signal by unplugging the wires. That didn't help. I also noticed the OS-9 driver only took one byte from the FIFO per interrupt rather than draining it - patched that too. Still no joy. The driver has a lot of "extra" features (error reporting, Xon/Xoff flow control, etc. that might be making it slow. Tonight's experiment is going to be to save the overflow status somewhere to test the hypothesis that the problem is actually interrupt latency.
I'd definitely be happy to buy a quad serial board off you and add support for it, but for obvious reasons I also want to fix this so that folks that aren't so lucky have a sensible file transfer option.
... and thankyou for reminding me about Kermit. It works fine at 38.4kbps, so go figure. Either it's doing a better job of correcting the errors, or there's something wrong with the ZModem receive app. Either way, victory!
[edit] I've updated the installation instructions and done a little more tinkering. I think things are looking pretty OK. Would be interested to hear how folks are getting along, and whether maybe I should start another thread...
[Updated on: Mon, 22 August 2022 20:31] Report message to a moderator
|
|
|
|
|
|
|
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10131 is a reply to message #10130] |
Tue, 13 September 2022 11:31   |
mikesmith
Messages: 80 Registered: March 2018
|
Member |
|
|
I don't have a Tiny68k port for OS-9 done yet. You could mostly copy the CB030 port, with appropriate changes to use the 68k rather than '030 kernel, etc. The biggest difference will be a new tick driver to use the 68681 timer instead of the CPLD timer. That's not super difficult, but there's a bit of a learning curve involved. You could steal the CPLD timer from CB030 and backport it to the Tiny68k CPLD, if that was more your style.
The Tiny68K EEPROM is very small, so you'll be stuck booting from CF without the ROM-based debugger, and doing a fair bit of plug/unplug cycling with the EEPROM unless you have a SPI ROM emulator / in-circuit programmer.
I'm currently spending my available time on the QuadSer driver. Tiny68k was in the queue sometime after P90MB; I would probably do most of the development in my emulator to avoid lots of ROM bouncing.
[Updated on: Tue, 13 September 2022 11:34] Report message to a moderator
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10266 is a reply to message #10132] |
Tue, 14 March 2023 11:50   |
computerdoc
Messages: 130 Registered: October 2015
|
Senior Member |

|
|
Hi Mike!
I downloaded OS9 68K from your github repository a few minutes ago. I intend to port it to the Tiny68K. Changing '030 to '000 or '010 sounds easy. What I don't yet know how to do is write a tick timer. Back porting the CPLD tick timer from the CB030 sounds doable. How different is the Tiny68K tick timer from the CB030 tick timer?
I'm excited to eventually get a CB030 board! I can almost taste it! Bill, please put me on your list for the 4 layer version of your CB030 board when it is ready!
Is there anything else I need to know to port this thing over to the Tiny68K / MB012?
I feel fun times ahead! 
Oh, by the way, any OS9 68K help you need, let me know. I don't know 68K assembler as of yet, but I'm sure I'm going to find out! I'm sure the loud yell while pulling out hair is coming too I expect. I come from a 6809 background from the days when the Cocos were new! I still remember buying OS/9 v01.00.00 for my Coco 1 F board! Those were great times! Some pointers are always welcome. <big grin>
I'm running Linux Mint on my HP mobile server laptop and if memory serves I have already successfully compiled the OS9 68K rom image a year or two ago. I just didn't have a clue where to go from there. I noticed that your Github repository for OS9 68K is only a few hundred kilobytes so I expect it is just the source code for the rom image?
I have also downloaded the OS9 68K v1.2 sdk from the link Bill provided. I'll be trying my hand at compiling your updates to OS9 68K.
Roger Hanscom has designed and built several iterations of a 68000 SBC with 1MB of flash eeproms and 2MB of SRAM with 2 serial ports, a 68681 I/O port, 2 16-bit parallel ports if memory serves as well as a CF card interface using an 8255 and another drive interface with just 5 pins, but I don't remember the name of the drive. I'm sure I'm leaving something else or 2 out, but I'm writing this from memory as I have built several of them. I would love to see OS9 68K running on these boards as well.
Now that my Dell Poweredge servers are basically completed, I'll have more time to build some more 68K SBCs and run OS9 68K on them. CP/M 68K is currently running on my Tiny68K, but I don't know much about CP/M of any flavor. I cut my computer OS teeth very early on with OS/9 6809 version and there was a long steep learning curve. It was definitely worth learning though. I have never forgotten how I used OS/9 to use my ASR-33 Teletype to print something for the very first time! The Coco didn't output LFs to the serial port! Ugh!
Kip
Kip Koon
computerdoc at sc dot rr dot com
http://www.cocopedia.com/wiki/index.php/User:Computerdoc
|
|
|
|
|
|
Re: CB030, A 68030 SBC for hobbyists [message #10270 is a reply to message #10269] |
Wed, 15 March 2023 04:42   |
marcopolo
Messages: 21 Registered: November 2020 Location: Nancy (FRANCE)
|
Junior Member |
|
|
Hi Bill,
I'm going to start building a CB030, it's a nice card and with OS-9 it's going to be great.
Thank you for providing all the information to build it.
I didn't see any speed indication for the MAX7000 CPLD, are all versions compatible with the CB030?
With the Chinese and the blacktopped circuits, you never know what you're buying ðŸ˜
You suggest UTSource as a supplier, I had quite a few problems with them a long time ago (fake RF transistors and HD63C09).
Did you buy your EPM7128 from them? If so, new or used?
Thanks,
Marc
My Archives (68K, Old logic, SSB radio): marc.retronik.fr
|
|
|
|
|
|
|
|
|
|
|
|
Current Time: Tue Jul 15 12:22:52 PDT 2025
Total time taken to generate the page: 0.01335 seconds
|