Is SC114 a good choice?

703 views
Skip to first unread message

Eightbitswide

unread,
Oct 18, 2022, 12:46:45 PM10/18/22
to RC2014-Z80
Looking at the SC114 kit from tindie as a budget build to wade into the RC2014.  Interested in running CP/M as well as doing to board protyping.  It looks like this kit will do both given the proper upgrades at some point.

Anyone had experience with these or is there a newer option that is best for budget builders?

-8b

Randy Mongenel

unread,
Oct 18, 2022, 12:59:24 PM10/18/22
to rc201...@googlegroups.com
You'll need more bits to really get going with the SC114 kit. It's *super* bare-bones and the serial port is software driven.
I'd suggest going for the SC126 or SC130 kits that have a lot of hardware integrated, plus SD card via SPI port that can be used in CP/M.
Well, once they're back in-stock, at least.

My SC126 is my most-used RC2014-compatible board.

-Randy

--
You received this message because you are subscribed to the Google Groups "RC2014-Z80" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rc2014-z80+...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/rc2014-z80/ba02d1bd-cc7b-4f69-a419-99a649ad5845n%40googlegroups.com.

Spencer Owen

unread,
Oct 18, 2022, 1:11:17 PM10/18/22
to rc201...@googlegroups.com
I might be a bit biassed, but I think the RC2014 Mini (https://z80kits.com/shop/rc2014-mini/) is an excellent place to start, and maybe add the RC2014 Mini CP/M Upgrade Kit (https://z80kits.com/shop/rc2014-mini-cp-m-upgrade-kit/) when you're ready.

Spencer

--

Brian Welland

unread,
Oct 19, 2022, 4:36:12 AM10/19/22
to rc201...@googlegroups.com
Hi,

Having built several of the SC114 in the past it provides an easy start and works well.

If you add a SC139 then it is a true RC2014 platform with the potential to add more standard RC2014 modules as it has 3 standard expansion slots together with a horizontal one so you can expand the backplane if desired.

To run CPM you can just add a suitable form of storage such as a RC2014 CF or SD Module to hold the software and the SCM S2 ROM provides the required built-in loader.

I have used the Mini together with the upgrade kit in the past and it works well so have no real bias in what to recommend but have found that the assembled combination to be a bit mechanically limiting when trying to expand the system compared to the SC114 format.

If initial cost is not a major factor then the RC2014 Pro is naturally a better longer term choice if you want the maximum flexibility that this can offer.


mree...@googlemail.com

unread,
Oct 19, 2022, 6:52:31 AM10/19/22
to RC2014-Z80
Hi,
I have a Zed Pro from Spencer and recently got some SC kit as well, the SC114 is a standard bus, which means you might be limited to what modules you can expand into, also being a board with the processor built into the board, you cant expand to a enhanced bus afterwards, but for the some of the fun is in the soldering so don’t mind multiple kits.

I went for a more modular approach, enhanced backplane from Z80 kits initially then a few other boards, memory, clock, serial, vga, some of these are enhanced so wouldn’t work on the SC114.  I then got an SC112 backplane, which means i could still all of Spencers modules and provides an upgrade path to the Z180 processor at a later date.  That later date ended up being a couple of days later :)

This is not the cheapest way forward, but might workout to be the cheapest in the long term as you get more into everything.

Hope this helps.

Matthew

Paul Bigwood

unread,
Oct 22, 2022, 4:32:34 PM10/22/22
to RC2014-Z80
I guess it depends on what you want to use your RC2014 for? I'm a techie, so like to tinker and use mine for building protype boards or testing software. I've built a RC2014 original on 5 slot backplane and also a couple of Mini's with the CPM add-on board and the Mini with CP/M option is my preferred one. its got two expansion slots, one which has the digital I/o board plugged in all the time for debugging, and the other one is used for protype or testing boards etc. Currently testing the Dr Baker's Sound card. 
I've fixed a Raspberry Pi Zero W underneath the Mini that links to the serial port, so I can SSH from my laptop  via WiFi into the Pi and use minicom to connect to the Mini, which boots to SCM. I've also got a python script driving one of the GPIO port to drive the Reset line low via a transistor, which I can run from minicon to remotely reset the Mini if it crashes. I also use  the Raspberry Pi as a local development platform and storage location, using the save and load functions of minicom to load or save when using SCM or XModem if using CP/M. 
I use Nano editor on the Raspberry to write assembler or Basic programs and then assemble using a Linux version of ZASM to assemble a Hex file that I upload to SCM or CP/M as reqd.
The Raspberry Pi is powered via a USB charger lead and its 5v also powers the Mini, so there is only one cable to the Mini for power.
PaulB

kurt....@web.de

unread,
Oct 28, 2022, 11:16:42 AM10/28/22
to RC2014-Z80
Hi,

the SC114 is a good board. With a CF adapter and a 128MB CF card, the way to CPM is open.
Very good to start with.

Built with the SC112 Basic Board I have a 20MHz Z80 card from Karl (kalab.no) with CF adapter, memory module 42a
and Serial IO Card 33e in use.

The second configuration is my favorite.

I also have the SC126, a Z280 system and a few other Adons. All work!

My recommendation is the SC114 with Compact Fash Storage (rc2014.co.uk) or equivalent board.

greeting
Kurt

Bill Shen

unread,
Dec 3, 2022, 10:42:46 AM12/3/22
to RC2014-Z80
Colin McArthur gave me lots of RC2014 blank boards couple year ago, one of them is SC114 v1.0.  This is my build with modifications:
1.  modified the serial port connector to direct connect CP2102 USB-serial adapter
2.  Add voltage supervisor MCP130 (easy to do, practically a direct connect)
3.  Overclock to 20MHz.  Unfortunately it can't run 22MHz to reach serial port of 28.8kps, but 20MHz is stable--run CP/M and passing zexall.com diagnostic.
4.  Modified SCMonitor so it does console I/O over KIO and run KIO version of CP/M.
  Bill
SC114+KIO+CF.jpg

Peter Willard

unread,
Dec 5, 2022, 11:39:58 AM12/5/22
to RC2014-Z80
My 2Cents.   I love mine and it's one of my favorite boards.

kurt....@web.de

unread,
Dec 6, 2022, 4:27:13 AM12/6/22
to RC2014-Z80
Hello Bill,

iso as I remember the zexall test ran 2 years ago on my Z80 (20 Mhz) without any problems.
Started again today at 10:10.

Let's see.

Kurt
zexall_start.png

kurt....@web.de

unread,
Dec 6, 2022, 4:59:05 AM12/6/22
to RC2014-Z80
Test - End
zexall_end.png

kurt....@web.de

unread,
Dec 6, 2022, 5:37:38 AM12/6/22
to RC2014-Z80
Hi, here is the technical information. Measured with handheld OWON HDS242 (40Mhz) see photo channel A.

See bottom left F:=20.24Mhz.

This board is from Karl (carlab). Unfortunately he is no longer active at the moment.
I assume he's fishing and catching salmon. this is a joke

Nice greetings from Germany
Right on the Rhine
Kurt
IMG_1720.JPG

Bill Shen

unread,
Dec 6, 2022, 8:47:28 AM12/6/22
to RC2014-Z80
Yep, confirmed.  zexall.com ran 28 minutes on SC114+CF+KIORC with 20MHz oscillator.
  Bill

Bill Shen

unread,
Dec 6, 2022, 9:09:26 AM12/6/22
to RC2014-Z80
Here is an interesting question:

How to run a CP/M application like zexall.com on SC114?  I mean a bare-bone SC114 without any plug-in boards.
  Bill

mree...@googlemail.com

unread,
Dec 6, 2022, 9:37:47 AM12/6/22
to RC2014-Z80
Bill you might want to edit your messages the zexall link goes to a Chinese porn site 🥴

kurt....@web.de

unread,
Dec 6, 2022, 9:40:58 AM12/6/22
to RC2014-Z80

Hi Bill,

no idea.

It doesn't get any faster!
I think it needs to be loaded to addr 0x8000 and started directly.
Ask Stephen Cousins a question.

Kurt

Alan Cox

unread,
Dec 6, 2022, 9:41:04 AM12/6/22
to rc201...@googlegroups.com
On Tue, 6 Dec 2022 at 14:09, Bill Shen <coinst...@gmail.com> wrote:
>
> Here is an interesting question:
>
> How to run a CP/M application like zexall.com on SC114? I mean a bare-bone SC114 without any plug-in boards.

The madcap answer is that you port the CP/N ROM to the SC114 and you
write a serial multiplexing protocol both ends to send console I/O and
CP/NET packets over the same bitbang serial port, and undo it on the
other end into a CP/NET server and a terminal.

Probably easier to use the CF adapter - they seem to run fine at high
speed although they are violating PIO0 timing. Alternatively (although
you'd need to write a new BIOS) you could use an SC129 and an SD card
bitbanged - that definitely doesn't mind the speed, and if you wanted
to go silly speed you could even use 74AHCT parts on it 8)

kurt....@web.de

unread,
Dec 6, 2022, 9:49:43 AM12/6/22
to RC2014-Z80
Hi
Running a CPM program directly from a Z80 cannot work.
Various calls are used by the zexall.com program, for example.
Anyone who rewrites the program with their own screen output routine etc. could succeed.
Kurt

Bill Shen

unread,
Dec 6, 2022, 10:54:02 AM12/6/22
to RC2014-Z80
My attempt is to demonstrate that you can run selected CP/M programs on a CP/M-capable computer that has no CF or SD disk or RAM/ROM disk.  Considering how many people are having problems getting the CF board to work, installing CP/M and struggling with DOWNLOAD.COM, this may be a worthwhile goal.  So here is the basic idea:

1.  load platform-specific BDOS/CCP/BIOS into high memory
2.  use bin2hex to convert .com file into hex file with offset of 0x100, i.e., "bin2hex /o0x100 filename.com filename.hex"
3.  load the converted .hex file into memory
4.  initialize location 0x0 and 0x3 (warm boot and BDOS entries)
5.  jump to 0x100 to execute the CP/M application.  It should run since BDOS and BIOS are loaded in memory, but it may crash when program terminated.

The hurdles I'm facing are:
*  No loadable SC114 BDOS/CCP/BIOS, but there is "PutSys_SC_BitBang_CF128_code8000.hex" that contains SC114 BDOS/CCP/BIOS.  I *think* I can do a block copy to the correct destination.
*  SCMonitor resides in ROM from 0-$7fff.  At power-up $0-$7FFF are ROM and I need SCMonitor to load .hex file.  So I need a helper program that flips the ROM page to RAM, copy .hex file to its destination in 0x100, initialize 0x0 and 0x3 and then jump to $100.

Yep, that's the plan...until reality punches me in the mouth
  Bill

Steve Cousins

unread,
Dec 6, 2022, 2:04:54 PM12/6/22
to RC2014-Z80
Interesting question indeed.

As the program is a CP/M COM file it will need to load into RAM at 0x0100 and then make calls to CP/M (via address 0x0005) for console output etc.

To run under SCM the code would normally need to be assembled to start at 0x8000 and be patched to use the SCM API for console output etc.

I can think of devious alternatives that would be a whole lot of hassle but might just work:
* Create a version of SCM to run in RAM at say 0xA000 instead of ROM at 0x0000, and download HEX to SCM
* The relocated SCM would need to fill the very bottom of paged RAM with suitable data and jump instructions as required by CP/M and SCM 
* Add a loader to the COM code such that it can be loaded to upper RAM (as HEX file) and then be relocated to paged RAM at 0x0100
* Write a code shim to intercept calls to CP/M (via address 0x0005) and call equivalent SCM API functions
Worth it? I think not.

If there is an easy way I'd like to hear it.

Interesting aside, SCM source code includes a code stub to redirect calls made to 0x0005 (CP/M entry) and use SCM's API to provide equivalent functions. The idea was to make it relatively easy to run CP/M programs under SCM. Of course, life being the way it is I never finished that code so it never made it into the SCM distribution.

Steve

Steve Cousins

unread,
Dec 6, 2022, 2:24:34 PM12/6/22
to RC2014-Z80
Hi Bill,

Your proposed solution arrived as I was typing mine!

I have been considering including CP/M in SCM ROMs where there is adequate space. This would solve the problem of selecting the correct version of CP/M and installing it on a CF card.

If SCM also had a method of receiving a COM file, then automatically copying it to paged RAM at 0x0100 and copying CP/M to upper RAM, it would be easy for a user to run a simple CP/M program without a Compact Flash card. CP/M would probably need a little patch to allow it to initialise and then auto run the COM program already loaded to 0x0100.

As none of these pie-in-the-sky ideas actually exist I think all the steps in your solution need to be written. Good luck.

Producing a version of CP/M that could be downloaded to SCM as a HEX file should be manageable, but having it in the ROM would be even better.

Steve

Tadeusz Pycio

unread,
Dec 6, 2022, 2:37:24 PM12/6/22
to RC2014-Z80
Another way to achieve this is possible - rework CCP to load programmes in HEX. :-)

Bill Shen

unread,
Dec 6, 2022, 3:50:50 PM12/6/22
to RC2014-Z80
I love hearing the various ideas!

So this is what I did:
1.  "PutSys_SC_BitBang_CF128_code8000.hex" is indeed the bit-bang CP/M version for SC114 with offset at $9000-$AC00, so it is matter of saving the image with offset of $d000-$ec00.  In this case CCP starts at $d000, BDOS at $d806, and BIOS at $e600--important constants to remember.
2.  use bin2hex to convert zexall_dot_com to zexall.hex with $8000 offset
3.  create a small helper program at $f000 that page out ROM, copy $8000 to $100, initialize location 5 (BDOS), then jump to $100

;Prepare CP/M application to run
;expect CP/M application to be loaded at $8000 to $d000
;program invoked with SCMonitor 'gf000'
bdos    equ 0d806h    ;BDOS entry
    org 0f000h
    ld a,1        ;page out ROM
    out (38h),a
    ld hl,8000h    ;source is $8000
    ld de,100h    ;destination $100
    ld bc,5000h    ;copy from $8000 to $d000
    ldir
    ld a,0c3h        ;jump instruction
    ld (0),a
    ld (5),a
;    ld hl,wboote
;    ld (1),hl
    ld hl,bdos
    ld (6),hl
    jp 100h

Concatenate the three .hex files into one .hex file, runzexall.hex (attached); load it (big file, take a while) then type 'gf000' to start zexall.

An easier solution is to have a RAM-based monitor located below CP/M at, oh say, $B000-$BFFF which can load CP/M to top of memory and CP/M application to low RAM at 0x100--CP/M application such as XMODEM.HEX.  After they are all loaded, run the program at BIOS boot entry point and type "save 17 xmodem.com" to create the first program on on new CF disk.    XMODEM is far more efficient than download.com transferring files from PC to CF disk. 
  Bill
zexall_running_barebone_S114.jpg
runzexall_hex.zip

Doug Jackson

unread,
Dec 6, 2022, 4:45:14 PM12/6/22
to rc201...@googlegroups.com
The RC2014 style platforms are awesome.

This is my favourite machine using that form factor:

image.png

It uses a SC112 backplane
SC111 z180 cpu card
SC119  z80 memory
RC2014 Compact Flash Storage card
RC2014 Am9511 APU Math Module (wow does that chip get hot)
RC2014 RTC module
And RC2014 Digital I/O module

I feel the combination of cards embodies what RC2014 is about - and it is JUST SO CUTE....

But, looking at the SC126, that's a pretty neat kit - lacking the small cube factor of my boardset :-)

I have my N8 SBC for more reliable CP/M work.

Kindest regards,

Doug Jackson

ph: 0414 986878

Check out my awesome clocks at www.dougswordclocks.com
Follow my amateur radio adventures at vk1zdj.net






--

Alan Cox

unread,
Dec 6, 2022, 5:08:25 PM12/6/22
to rc201...@googlegroups.com
Some nascom/gemini setups had a thing called RPM which is a 4K monitor
that provided a tiny subset of CP/M functionality and faked the basic
disk ops with cassette - sufficient to fool MBASIC !

https://nascom.files.wordpress.com/2017/10/rp-m-manual.pdf

Being able to unpack CP/M from ROM would probably be more useful and
not that big if fed through the exomizer first.

Kande Laber

unread,
Dec 7, 2022, 6:42:41 AM12/7/22
to RC2014-Z80
In my opinion installing CP/M on SC114 is actually easy as long as you follow Steve Cousins nicely written procedures.
There is one difficult thing though: That is the selction of the right CF card. My experience is, that not all of them work for the purpose.

Phillip Stevens

unread,
Dec 7, 2022, 8:52:14 AM12/7/22
to RC2014-Z80
Bill wrote:
My attempt is to demonstrate that you can run selected CP/M programs on a CP/M-capable computer that has no CF or SD disk or RAM/ROM disk.  Considering how many people are having problems getting the CF board to work, installing CP/M and struggling with DOWNLOAD.COM, this may be a worthwhile goal.

This would be pretty straightforward to do with the CP/M-IDE platform as it stands today. I'll walk through the pieces towards the steps you've outlined.
 
So here is the basic idea:

1.  load platform-specific BDOS/CCP/BIOS into high memory

The CCP/BDOS/BIOS for the SC114 / RC2014 Pro already exists. Though for this application the CCP is unnecessary, and could be later overwritten by an application.
The boot sequence (preamble) for CP/M-IDE puts the CP/M CCP/BDOS/BIOS into the right place first, as the drivers found in the BIOS are used by the shell, from the routines stored in ROM.
 
2.  use bin2hex to convert .com file into hex file with offset of 0x100, i.e., "bin2hex /o0x100 filename.com filename.hex"

z88dk produces .hex files as a side effect of generating .com files. But, the conversion tools can also be used as you've suggested.
 
3.  load the converted .hex file into memory

A hexload function needs to be stashed into the BDOS space, using the preloaded BIOS serial drivers. There is some free space following the CP/M-IDE BDOS when finally located, as the BIOS is spaced out to start on a new page. I'd have to check how much, but anyway the hexload is very small and could be broken into pieces and fitted in anywhere.

The hexload would toggle the RAM out, and write in the normal CP/M page zero, before loading the CP/M .com file at the desired location (can be anywhere the hex file says), and then launching the file.

Then the C shell would need to be extended to launch the hexload process. It looks a lot like the existing mkcpm function, except it is not reading a file LBA and the cpmboot function would have to check a flag to launch the application, rather than the CCP.

It would also be possible to do the same thing by directly launching hex files stored on a FAT drive, but that's not the point of this exercise.
 
4.  initialize location 0x0 and 0x3 (warm boot and BDOS entries)
5.  jump to 0x100 to execute the CP/M application.  It should run since BDOS and BIOS are loaded in memory, but it may crash when program terminated.
 
On termination, the program would return to the C shell, as there is no valid disk present (the LBA for Disk A: is still set to zero), which is what is needed for a sensible return.

Do you thing there's much application for this process?
I'm guessing that most people are silent on this, because it is not really a problem?

Cheers, Phillip

Alan Cox

unread,
Dec 7, 2022, 9:07:06 AM12/7/22
to rc201...@googlegroups.com
For the Simple80 which is a bit different but not much I implemented a
small ROM based file system + CP/M in the ROM space and used the
second memory bank as a ram disk. Enough space for a couple of small
tools and BBC Basic in ROM.

Not sure you'd get CP/M and SCM and a useful rom disc in the SC114 but
if not you could certainly Exomizer CP/M and a file system that was
unpacked into the RAM disc at boot.

Bill Shen

unread,
Dec 7, 2022, 11:20:25 AM12/7/22
to RC2014-Z80
I think every CP/M capable computer should be able to run CP/M program one time without disk hardware.  It is somewhat useful capability to check the baseline, diskless hardware is setting up properly.  For CP/M development on a new hardware platform it is helpful to check out intermediate results.  I regularly use the ability to load XMODEM image to 0x100 followed by "save 17 XMODEM.COM" to bring up a new CF disk, but, as you can see, it is specialized feature of limited interests.

  Bill

Bill Shen

unread,
Dec 7, 2022, 12:19:07 PM12/7/22
to RC2014-Z80
Alan,
Interesting that you mentioned Simple80.  Your Simple80 implementation of small ROM disk and CP/M may be quite applicable to a modified SC114.  This is a rather long story but let me explain:

I found a second SC114 blank board yesterday and decided to do a couple "unauthorized hacks" for several reasons:
1.  Reach 29.5MHz CPU clock with bit-bang serial at 38.4bps.  The existing decode logic is limiting the top speed to 20MHz, or in practice, 14.7MHz with serial port at 19.2bps.  I know that combination of Z80/RAM/EPROM can do 29.5Mhz comfortably, possibly 33-36MHz if the decoding logic is eliminated.
2.  Expand ROM to 64K with 45nS W27C512 which is inexpensive and re-programmable.
3.  Implement "shadow write" feature to change bank0 or bank1 RAM contents while in ROM mode.

The method is similar to Simple80 which used SIO's discrete output registers.  In SC114, there are several spare I/O registers that can be used.  Schematic and photos of the modification are attached.

Here is a quick description:
1.  At power on or reset, ROM is in control of the entire 64K memory space
2.  Disable RAM read, but enable RAM chip select enable RAM to be written by ROM such that LDIR of the entire memory space will copy entire ROM content to RAM.
3.  Once RAM is same as ROM, I can enable both RAM & ROM briefly without data contention and then disable ROM.  I need to do that because I can only modify one register at a time.  Z80 is now running entirely in RAM.

The 3 steps above are executed first before SC114 execute its normal initialization routine by patching in this short routine:

;12/7/22
;prepare the hardware for SCMonitor
;copy ROM to RAM
;disable ROM
;I/O addresses:
;  0x38    ROM chip select, 0=ROM selected
;  0x8    LED, 0= LED on
;  0x10    RAM output enable, 0=RAM read enabled
;  0x18    RAM chip select, 1= RAM chip selected
;everything low at reset
    org 7f00h        ;patch this near top of SCMonitor
    ld a,1
    out (10h),a    ;disable RAM output
    out (18h),a    ;select RAM for shadow write
;shadow write to self for entire 64K
    ld hl,0
    ld de,0
    ld bc,0
    ldir
    xor a
    out (10h),a    ;enable RAM read
    inc a
    out (38h),a    ;disable ROM
    jp 1ccbh        ;reset vector of SCMonitor


It all works, I now have a SC114 running 29.5MHz with 38.4kbps serial port.  So I'm interested in your small ROM disk and 2nd RAM bank concept.
  Bill
DSC_71251207.jpg
DSC_71261207.jpg
Mod_29M_SCC114.jpg

Mark T

unread,
Dec 7, 2022, 12:58:37 PM12/7/22
to RC2014-Z80

Hi Bill,
That looks like you are relying on the /WE to the ram to override the /OE. There might be a short period of bus contention during every memory write cycle as the Z80 will drive the data bus before /WE is asserted. 

Mark

Bill Shen

unread,
Dec 7, 2022, 1:47:18 PM12/7/22
to RC2014-Z80
Mark,
You are right.  In simple80 rev0 I used 8 100-ohm current limiting resistor and in rev1 Simple80 I used an OR gate (nRD + flipflop).  I do have a spare OR gate in SC114 so that’s a possible solution, although that’ll slow down the RAM access somewhat.  I also recall measured it with scope, but didn’t see significant issues, I’ll check with scope again.  Thanks for your input.
  Bill

Colin MacArthur

unread,
Dec 7, 2022, 6:26:46 PM12/7/22
to RC2014-Z80
Love how you did the  MCP130...

CM

Bill Shen

unread,
Dec 7, 2022, 8:21:29 PM12/7/22
to RC2014-Z80
Hey Colin,
Thanks for all the boards you've sent me.  I've used about 20% of them.

Yea, the placement of components were just right to drop in MCP130, so it is one of those rare moments when stars are all lined up.
  Bill

Phillip Stevens

unread,
Dec 8, 2022, 8:14:02 AM12/8/22
to RC2014-Z80
Bill  wrote:
I think every CP/M capable computer should be able to run CP/M program one time without disk hardware.  It is somewhat useful capability to check the baseline, diskless hardware is setting up properly.  For CP/M development on a new hardware platform it is helpful to check out intermediate results.  I regularly use the ability to load XMODEM image to 0x100 followed by "save 17 XMODEM.COM" to bring up a new CF disk, but, as you can see, it is specialized feature of limited interests.

On Wednesday, December 7, 2022  Phillip wrote:
Do you thing there's much application for this process?
I'm guessing that most people are silent on this, because it is not really a problem?

So I've added a hload function into CP/M-IDE, which should work for any of RC2014 Pro (SC114), RC2014 Pro + ACIA, or RC2014 8085 Module.
Although it doesn't influence this function, both 16-bit IDE and 8-bit CF interfaces are supported.

Because of the way that CP/M-IDE works it was a fairly simple matter to build it, just relying on subverting the normal CP/M boot process. Firstly to halt cold boot and load up the HEX for the function into the TPA, and then using the first (presumably lowest, but not necessarily so) address as the initial address for the program to subvert a second warm boot which would normally go off to run the CCP.
Fitted into some free space in BDOS. So it is worth having I guess.

Type hload at the prompt and then cat the hex file into the console port. For the sio builds whichever port is the console will be selected.
To early exit the function type : CR CR CR CR CR CR CR, where CR is any character. This is just some invalid HEX, which will cause the function to quit.
The loaded HEX function will reload itself on exit, so power cycle to cold boot.

Attached is the familiar startrek.hex to test.

Cheers, Phillip

startrek.hex

Bill Shen

unread,
Dec 8, 2022, 12:35:11 PM12/8/22
to RC2014-Z80
Let me see if I can fill in the gaps... I'm guessing that you've created a new CP/M built-in command 'hload'.  Because the barebone SC114 has no CF disk and only has SCMonitor, the user can load the updated CP/M hex file into appropriate place in SC114's memory and then go to BIOS cold boot start location, to display the CP/M prompt.  At which point, the user types 'hload' to load a hex file (such as the attached startrek.hex) to memory starting from 0x100.   Does the user get a CP/M prompt after hload is done?  If so, the user can do a "save xx startrek.com" (assuming there is a CF disk, but there isn't one), or somehow the user can run startrek program in the memory, but I'm not clear on how to do that.  Am I on the right track?
  Bill

Phillip Stevens

unread,
Dec 8, 2022, 7:29:42 PM12/8/22
to RC2014-Z80
Bill  wrote:
Let me see if I can fill in the gaps... I'm guessing that you've created a new CP/M built-in command 'hload'.

Not quite. The new hload command is initiated from the shell, not in CP/M, although it is located in spare BDOS space. The shell does similar things to a monitor, but is loaded after CP/M is loaded (not before). There is no separate CP/M loader for CP/M-IDE.

What I've done is to prepare new 32kB ROMs for the RC2014 Pro with either ACIA or SIO, with either CF or PPIDE, with Z80 or 8085 CPU, options. The SC114 bit bang serial is not supported, but the 64kB shadow RAM toggled by 0x30 is supported (but I've disabled it by default).

I've written elsewhere about how it works, but the key point is that CCP/BDOS and BIOS are both loaded by a crt0 preamble and are already in place before there's any shell command prompt. The CP/M BIOS actually provides the drivers (SIO or ACIA, CF or PPIDE) which support the shell. Besides a few fairly trivial memory and disk dump tools, the main job of the shell is to list which CP/M drive files are on the FATFS drive (noting that there could be thousands of CP/M drive files available), and then start CP/M with the selected 4 drive files the user wants.

So all the hload command is doing is subverting the normal CP/M initialisation with a disk by loading a file directly into memory, and then starting it. That's why it was easy to implement.

Because the barebone SC114 has no CF disk and only has SCMonitor, the user can load the updated CP/M hex file into appropriate place in SC114's memory and then go to BIOS cold boot start location, to display the CP/M prompt.  At which point, the user types 'hload' to load a hex file (such as the attached startrek.hex) to memory starting from 0x100.   Does the user get a CP/M prompt after hload is done?

In this case, CP/M is being started without any usable disk or disk hardware, so it doesn't make sense to start from a CP/M prompt.
The hload command will start the program it has just uploaded, by jumping to the first address found in the HEX file.

Cheers, Phillip

Phillip wrote:
Bill  wrote:
I think every CP/M capable computer should be able to run CP/M program one time without disk hardware.  It is somewhat useful capability to check the baseline, diskless hardware is setting up properly.  For CP/M development on a new hardware platform it is helpful to check out intermediate results.

Bill Shen

unread,
Dec 8, 2022, 10:14:25 PM12/8/22
to RC2014-Z80
Your "CPM-IDE for RC2014" is an excellent introduction setting the stage and define terms for the CPM-IDE environment.  I'll spent more time going over it carefully.

I don't have the original RC2014Pro hardware but I thought I have a fairly accurate hardware emulation, but currently I'm not able to run CPM-IDE for RC2014Pro nor RC2014Pro+ACIA.  The problem is likely my hardware emulation so I'll need to study it more.  One area of difference is how ROM paging is handled between SC108 and the original paged ROM; I thought I've accounted for it, but I may be wrong.

startrek.hex actually illustrates why it may be interesting to run CP/M once on a platform that has no disk.  There are many interesting CP/M programs and there are also many CP/M-capable hardware platforms that are struggling to overcome the technical issues of CF/SD/RAMdisk.  Getting CP/M program to run even once is great motivation toward solving the CF/SD/RAMdisk problems; it shows what success look like and validates much of the existing hardware are working.  Case in point, I was able to load and run the startrek.hex you provided by a different process on a different platform, so I now know the problem to concentrate on is how CPM-IDE is running (rather not running) on my current hardware.

Thanks for your help, I'm sure I'll have more questions.
  Bill

kurt....@web.de

unread,
Dec 9, 2022, 3:50:22 AM12/9/22
to RC2014-Z80
Is SC114 a good choice?

that was the question.
Sorry I can't follow the thread.

Yes, for the beginner this board is good to use.

Bill Shen

unread,
Dec 9, 2022, 7:02:34 AM12/9/22
to RC2014-Z80
Oops, the topic certainly has drifted way off!

SC114 is one of many great starter hardware for beginners, but for more advanced users it also offers many possibilities in hardware/software expansion as documented in Steve Cousin's excellent page about SC114.

I recently built up 2 SC114 and was too caught up with interesting hardware/software modifications far beyond the original intent of SC114.  I'm sorry about that.
  Bill

kurt....@web.de

unread,
Dec 9, 2022, 12:16:03 PM12/9/22
to RC2014-Z80
Hello Bill,

Yes it is.

The skills of some writers is already enormous.
SC114 is for beginners.

Thanks for your info.

Kurt
Reply all
Reply to author
Forward
0 new messages