RetroBrew Computers Forum
Discussion forum for the RetroBrew Computers community.

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 Go to next message
plasmo is currently offline  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 #6932 is a reply to message #6931] Sat, 18 January 2020 21:09 Go to previous messageGo to next message
b1ackmai1er is currently offline  b1ackmai1er
Messages: 396
Registered: November 2017
Senior Member
Hi Bill.

What was the run time on asciiart? Possibly limited by terminal speed?

Regards Phil
Re: CB030, A 68030 SBC for hobbyists [message #6935 is a reply to message #6932] Sun, 19 January 2020 00:27 Go to previous messageGo to next message
rwiker is currently offline  rwiker
Messages: 14
Registered: February 2016
Junior Member
According to the "CB030 Development Blog" https:// www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:c b030, it was 24s.
Re: CB030, A 68030 SBC for hobbyists [message #6937 is a reply to message #6935] Sun, 19 January 2020 04:35 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
The BASIC compiler, CB68, running in CP/M68K is quite inefficient. It takes 70 seconds to run the same program that ran in 24 seconds with EhBasic. The speedup over 8MHz 68000 is only about 3 times. I think there are a number of performance issues I need to work on such as wait state accessing DRAM, enable I & D cache and enable cache burst fill.
Bill
Re: CB030, A 68030 SBC for hobbyists [message #6938 is a reply to message #6937] Sun, 19 January 2020 06:05 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Look into the DRAM wait state and able to reduce the wait state from 2 to 0, and just barely meet timing requirements of 60ns DRAM with 24MHz 68030. With 0 wait state, ASCII mandelbrot runs 18 seconds in EhBasic and 51 seconds in CP/M68K's BASIC. At 18 seconds, the 38.4Kbaud serial starts to have an impact on the benchmark value. Another reason for the difference in performance is the instruction cache is turned on in EhBasic, but I still unable to turn on I cache in CP/M68K without getting privilege violation.
Bill
Re: CB030, A 68030 SBC for hobbyists [message #6941 is a reply to message #6938] Mon, 20 January 2020 07:52 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
You can only play with the caches in supervisor mode, so you either need to do it before CP/M starts up or through the CP/M traps to run your own supervisor stuff from a CP/M app.

You also have to be careful because the 68030 has a most spectacular hardware misfeature in the data cache. If you write to something like a device address and then read from it then even if the CIIN pin is asserted by the glue logic it will end up reading from the cache if the write itself can be stored (eg a 32bit aligned 32bit write with write allocate enabled). Setting sections of memory uncacheable using the MMU does work.

The 030 isn't actually much faster than an 020 unless you are using the new bus features or the MMU where it removes the MMU cost of the 68851 so your numbers sound sensible.

Alan
Re: CB030, A 68030 SBC for hobbyists [message #6942 is a reply to message #6941] Mon, 20 January 2020 10:24 Go to previous messageGo to next message
jcoffman is currently offline  jcoffman
Messages: 332
Registered: October 2015
Senior Member
Regarding use of /CIIN to disable the cache, the KISS-68030 asserts the signal as soon as /IORQ is decoded. Whether it works to disable the cache or not, no one has experienced troubles with CP/M-68 or Linux. If you say the signal does not work, then perhaps we've just been lucky; or the usage is such that there is no readback of anything that is output before the cache is overwritten.
Re: CB030, A 68030 SBC for hobbyists [message #6944 is a reply to message #6941] Mon, 20 January 2020 20:39 Go to previous messageGo to next message
plasmo is currently offline  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 #6945 is a reply to message #6944] Tue, 21 January 2020 07:23 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
If it traps on move.w ccr then the CPU is seeing move.w sr still so I think you are right - CP/M is self modifying the instruction and restarting it. For 68030 you also need to ensure the data cache is written back before the instruction cache is flushed or your modification might not be seen by the i cache. Unlike x86 there is not a lot of coherency done in hardware on a 68K.

@jcoffman: I guess you've got no 32bit aligned/32bit wide I/O or you don't turn on WA ? It's very dependent upon what you are doing - when the Commodore Amiga went 68030 it caused a good deal of chaos.

Alan
Re: CB030, A 68030 SBC for hobbyists [message #6946 is a reply to message #6945] Tue, 21 January 2020 12:47 Go to previous messageGo to next message
jcoffman is currently offline  jcoffman
Messages: 332
Registered: October 2015
Senior Member
RE: I/O & /CIIN

Correct. There is no 32-bit I/O on the KISS-68030. All I/O is 8-bit in CP/M. Will would have to speak for Linux, but I believe the situation is the same.

--John
Re: CB030, A 68030 SBC for hobbyists [message #6949 is a reply to message #6946] Thu, 23 January 2020 20:17 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Status of CB030 and a question:

I received a couple 64 meg DRAM today and plug them in. They both work fine and pass memory diagnostic. These are 60nS DRAM so I'm able to run 0 wait state at 24MHz.

In term of producibility of rev0 CB030. I found it easy to build, in about 1 hour, and I've built 4 boards and got 4 working boards so the design seem to be producible.

Once I understood the privilege violation in CP/M68K with cache enabled, I just turn off 68030 cache when in CP/M68K. With cache off, it still run about 4 times faster than 8MHz 68000. I'm not too motivated to optimize CP/M68K for 68030 because I think it really should run more modern OS.

I'm ready to revise the board to fix known problems. The question I have is whether a FPU is absolutely needed to port Linux or other OS and how much RAM they need? I'm like fish out of water when it comes to Linux and BSD and modern OS in general.

Bill
Re: CB030, A 68030 SBC for hobbyists [message #6950 is a reply to message #6949] Fri, 24 January 2020 00:23 Go to previous messageGo to next message
rwiker is currently offline  rwiker
Messages: 14
Registered: February 2016
Junior Member
Steve Chamberlin used uCLinux for his 68-Katy - https://www.bigmessowires.com/68-katy/ - project, which used a 68000. It is likely that the MMU (which the 68030 has) is more important in terms of OS support than the FPU, although uCLinux was explicitly created for microcontrollers without MMUs.

Re: CB030, A 68030 SBC for hobbyists [message #6951 is a reply to message #6949] Fri, 24 January 2020 00:25 Go to previous messageGo to next message
tobster is currently offline  tobster
Messages: 11
Registered: June 2016
Location: Denmark
Junior Member
Hi Bill

I can provide a couple of answers regarding Linux, as I do have some experience from my T030 project.

You don't need a FPU since FPU emulation is available in the Linux m68k port. It works fine albeit slow, but some of the more advanced functions like log10 and logn is not implemented and will throw a kernel message if called.

With the first prototype I have been able to get away with as little as 16 MB RAM with a simple BusyBox based root filesystem. The current version of the board (see my builder page) has 64 MB RAM. On one of my finished boards I have currently a PostgreSQL 9.6 database running on a dialed down Debian distribution. It is not fast but it works just fine.

With a modern OS you will probably want a network interface at some point. Do you have any ideas for that on CB030 or will you perhaps just use SLIP on the second serial port?

Regards,
Tobias
Re: CB030, A 68030 SBC for hobbyists [message #6952 is a reply to message #6951] Fri, 24 January 2020 06:08 Go to previous messageGo to next message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
I did sort of port Linux 5.x to the Tiny68K but the kernel is upwards of 5MB and it was clearly not going to be useful - going back to 2.0.x like 68-Katy did probably makes sense. Also picking a smaller core user space. On the 68K Mac 2.0.x with a user space from that period ran fine on a Mac II with 8MB RAM. It's not just the kernel that has grown hugely, the userspace - particularly the GNU command line tools are horribly bloated and full of features that nobody ever uses or needs but which in a world of gigabytes of RAM might as well be there.

For an MMU capable system given the fact you want it to run in what today is considered miniscule RAM it might actually be easier to use NetBSD.

It's certainly doable though, because it used to work long ago - 8Mb was enough to run X11 plus user space just about.

Alan
Re: CB030, A 68030 SBC for hobbyists [message #6953 is a reply to message #6952] Fri, 24 January 2020 07:05 Go to previous messageGo to next message
plasmo is currently offline  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 Go to previous messageGo to next message
lowen is currently offline  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 #6955 is a reply to message #6954] Fri, 24 January 2020 21:15 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
lowen,
Thanks for the feedback. Good to know that 68030 can have a meaningful OS even with a cheap 16 meg RAM. The design works well with 64meg RAM and should also work with 128meg RAM. I am not going to worry too much about getting a 128Meg RAM and test it out before commit to next pc board revision.
Bill
Re: CB030, A 68030 SBC for hobbyists [message #6956 is a reply to message #6955] Sat, 25 January 2020 01:07 Go to previous messageGo to next message
rwiker is currently offline  rwiker
Messages: 14
Registered: February 2016
Junior Member
A few more datapoints: I ran NetBSD on a pc532 (NS32532) with 8MB of RAM, but that was text-only, via serial ports. I also ran FreeBSD on a 386DX with 16MB of RAM (I think - it may have been 64MB), running X11, Emacs, Apache and MySql relatively smoothly.

So, by picking the "right" version of an OS, it should be possible get something running well on the CB030 with a smallish amount of RAM.
Re: CB030, A 68030 SBC for hobbyists [message #7052 is a reply to message #6931] Thu, 06 February 2020 14:44 Go to previous messageGo to next message
mikesmith is currently offline  mikesmith
Messages: 80
Registered: March 2018
Member
A quick question about the CB030 address map: did the EEPROM base address and RAM/ROM swap behaviour change to support 128M? There's not room to swap all 128M to 0 without having the EEPROM go somewhere else...
Re: CB030, A 68030 SBC for hobbyists [message #7054 is a reply to message #7052] Thu, 06 February 2020 19:14 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
The swap register is a hack. I didn't want to deal with MMU translation initially, so I use swap register to exchange first 64meg memory with 2nd 64 meg memory. The first 64 meg is EPROM and DRAM starts from 2nd 64 meg. So if I do have 128meg of DRAM, then the memory map after swap is
lower half DRAM at 1st 64meg (0-3FFFFFF)
EPROM at 2nd 64 meg (4000000-7FFFFFF)
upper half DRAM at 3rd 64 meg (8000000-BFFFFFF)

The reason I don't just swap the first 128meg with 2nd 128 meg is because I ran out of pins so the total decoded memory space is 256meg and the top 64 meg is I/O space. I don't want to change I/O mapping when swapping.

Swap register probably won't be in use once MMU translation is turned on.

Bill
Re: CB030, A 68030 SBC for hobbyists [message #7055 is a reply to message #7054] Thu, 06 February 2020 19:29 Go to previous messageGo to next message
mikesmith is currently offline  mikesmith
Messages: 80
Registered: March 2018
Member
That makes sense. Since you can relocate the vectors, I guess the only real reason for the swap would be to deal with software that assumes RAM at zero.
Re: CB030, A 68030 SBC for hobbyists [message #7056 is a reply to message #7054] Fri, 07 February 2020 10:09 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Hi Bill,

So .... there is no VBR in the 6830x????

Roger
Re: CB030, A 68030 SBC for hobbyists [message #7057 is a reply to message #6931] Fri, 07 February 2020 10:22 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Roger,
68030 has VBR along with MMU that can remap address anywhere. It was because I'm not confident about programming the MMU and want to run CPM68K to prove the design, so it is easier for me to add a swap register in CPLD than figuring out all the new things that I'm not sure about. CPM68K is working, so I'll probably work on MMU next and then remove the swap register when all is working.
Bill
Re: CB030, A 68030 SBC for hobbyists [message #7058 is a reply to message #6944] Fri, 07 February 2020 17:19 Go to previous messageGo to next message
UhClem is currently offline  UhClem
Messages: 19
Registered: November 2015
Junior Member
I worked on a replacement for except10.s a while back but never tested it on a real 68020. This should provide you with a starting point for adding 68030 support to CP/M-68K.
  • Attachment: except20.s
    (Size: 12.50KB, Downloaded 454 times)


Re: CB030, A 68030 SBC for hobbyists [message #7060 is a reply to message #6931] Fri, 07 February 2020 23:39 Go to previous messageGo to next message
mikesmith is currently offline  mikesmith
Messages: 80
Registered: March 2018
Member
One more memory map question:

CFdata  equ $FFFFE000       * CF data register
CFerr   equ $FFFFE001       * CF error reg

is the plan to stick with an 8-bit CF interface (I'm guessing pin restrictions again?Wink

Re: CB030, A 68030 SBC for hobbyists [message #7063 is a reply to message #7060] Sat, 08 February 2020 06:36 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
It is not so much a pin limitation than having more noise problem with 16-bit transfer. I have yet to achieve a 16-bit transfer arrangement that can handle all brands of CF disks. I have much better noise immunity and wider selection of CF disks with a 8-bit interface.
Bill
Re: CB030, A 68030 SBC for hobbyists [message #7142 is a reply to message #7063] Thu, 27 February 2020 20:29 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
This is rev1 of CB030: https://www.retrobrewcomputers.org/doku.php?id=builderpages: plasmo:cb030:cb030_rev1

I built up 5 boards and all 5 are working. While the CF interface works with many brands of CF disks, it still won't work with all brands that I have on hand.

Made change to the way SIMM72 memory is interfacing so now it can handle 4/8/16/32/64/128 meg SIMM72 modules seamlessly, although for 8 and 32 meg memory, there are two blocks of non-contiguous memories that I still don't know how to fix automatically. I'm relying on 68030's MMU to fix that.

CP/M68K is ported, in fact, 384K of the 512K EPROM is a ROM disk containing few important CP/M68K files to allow a new CF disk to be initialized and uploaded with CP/M68K software. Lee Davison's EhBasic is ported as well.

Power consumption with 16meg SIMM72 is about 650mA at 5V.

Bill

Re: CB030, A 68030 SBC for hobbyists [message #7143 is a reply to message #7142] Sat, 29 February 2020 08:31 Go to previous messageGo to next message
rwiker is currently offline  rwiker
Messages: 14
Registered: February 2016
Junior Member
Very, very nice... are you planning to sell this (in either kit or assembled form)?
Re: CB030, A 68030 SBC for hobbyists [message #7144 is a reply to message #7143] Sat, 29 February 2020 19:02 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
rwiker wrote on Sat, 29 February 2020 09:31
Very, 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 #7145 is a reply to message #7144] Sun, 01 March 2020 09:35 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Hi Bill,

Please put me down for one of those partially assembled kits (ver 1.1??Wink. I'd like to play with the '030. *grin*

Roger
Re: CB030, A 68030 SBC for hobbyists [message #7146 is a reply to message #7145] Mon, 02 March 2020 16:57 Go to previous messageGo to next message
mikemac is currently offline  mikemac
Messages: 250
Registered: March 2017
Senior Member
What's the largest compact flash card you've been able to get to work? Make and model please so I can try to acquire one.


Mike
Re: CB030, A 68030 SBC for hobbyists [message #7147 is a reply to message #7146] Mon, 02 March 2020 17:51 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Mike,
Most of CF I have on hand are 512Meg or smaller. I do have a 2G Verbatim that does NOT work. The 256 meg SanDisk seems most reliable so is 64 meg Toshiba. I will ship you another 256 meg SanDisk for backup.
Bill
Re: CB030, A 68030 SBC for hobbyists [message #7148 is a reply to message #7147] Mon, 02 March 2020 19:24 Go to previous messageGo to next message
plasmo is currently offline  plasmo
Messages: 916
Registered: March 2017
Location: New Mexico, USA
Senior Member
Verbatim 2G CF is readily available from Amazon for $13, so I'll make it a priority for CB030 to work correctly with Verbatim 2G CF disk.
Bill
Re: CB030, A 68030 SBC for hobbyists [message #7149 is a reply to message #7146] Mon, 02 March 2020 19:45 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
Senior Member
Hi Mike,

>> What's the largest compact flash card you've been able to get to work? Make and model please so I can try to acquire one.

You might want to give Transcend a try? I've had pretty good luck with their 2 and 4 GB models (133x). Can't vouch for the CB030, because I don't have one .... yet. BUT, I use Transcend on homebrew Z80's and 68000. In fact, I'm running a 4 GB one on Plasmo's "Tiny68k" and another 4 GB one on his "re-purposed Soneplex". Work great. No problems.

Roger
Re: CB030, A 68030 SBC for hobbyists [message #7150 is a reply to message #7149] Mon, 02 March 2020 20:33 Go to previous messageGo to next message
mikemac is currently offline  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 #7151 is a reply to message #7150] Mon, 02 March 2020 20:56 Go to previous messageGo to next message
norwestrzh is currently offline  norwestrzh
Messages: 196
Registered: November 2015
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?

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
Re: CB030, A 68030 SBC for hobbyists [message #7152 is a reply to message #7150] Mon, 02 March 2020 20:58 Go to previous messageGo to next message
plasmo is currently offline  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 Go to previous messageGo to next message
mikemac is currently offline  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 Go to previous messageGo to next message
mikemac is currently offline  mikemac
Messages: 250
Registered: March 2017
Senior Member
plasmo wrote on Mon, 02 March 2020 21:58
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
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. : Shocked

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
Re: CB030, A 68030 SBC for hobbyists [message #7156 is a reply to message #7154] Tue, 03 March 2020 04:46 Go to previous messageGo to previous message
etchedpixels is currently offline  etchedpixels
Messages: 333
Registered: October 2015
Senior Member
If you are paranoid also try copying some worst case patterns in files (FF FF 00 00 repeated for 16bit and FF 00 FF 00 for 8bit) but it should find anything.

You should be able to use up to a 128GB card with most systems, above that needs LBA48 addressing which I've not seen supported by a CP/M BIOS. You'd still be able to access the lower 128GB but after that it'll silently wrap and corrupt.
Previous Topic: ZRC, A Z80 SBC for ROMWBW
Next Topic: Neat '040 boot ROM setup


Current Time: Tue Jul 15 12:40:52 PDT 2025

Total time taken to generate the page: 0.01065 seconds