HDOS Device Driver Resources

279 views
Skip to first unread message

smb...@gmail.com

unread,
Apr 17, 2023, 9:57:42 PM4/17/23
to SEBHC
I'm looking for resources on writing HDOS device drivers. I think Glenn may have posted something a while ago. Specifically, could use a tutorial if such a thing exists, and also if there are any examples of simple storage type drivers that would be good too.

Thanks,
Scott

glenn.f...@gmail.com

unread,
Apr 18, 2023, 7:04:16 AM4/18/23
to se...@googlegroups.com

The “go to” tutorial is in Issue 20 of REMark.  Recommend you start there.  It has a simple CK: device driver for a 2-ms interrupt-driven clock.

remark-issue20-1981.pdf (pestingers.net)

 

HDOS included source for the print and serial drivers with the HDOS 2 distribution disks. There are multiple copies of these in the SEBHC.ORG disk archive, for example see the disk (confusingly) labelled “HDOS3.H8D” in Vol 1.

HDOS3.H8D
HDOS 2.0 Driver Source  (Copyright(C) Heath Co 1980)890-104
======== === ==== =========
  FILE   EXT SIZE   DATE   
======== === ==== =========
ATH44    ASM   68 07-Oct-80
ATH84    ASM   34 29-Oct-80
DDDVD    ASM   31 29-Oct-80
DDINIT   ASM   64 03-Dec-80
LPH24    ASM   46 07-Oct-80
MAKMSD   ASM   11 07-Oct-80
ND       ASM   10 07-Oct-80
SYDVD    ASM   34 07-Oct-80
SYINIT   ASM   37 08-Oct-80
GLASSTTY ASM   16 07-Oct-80
TBRA     ACM    2 07-Oct-80
TYPTX    ACM    2 07-Oct-80
U8250    ACM    9 07-Oct-80
U8251    ACM    5 07-Oct-80
ZEROS    ACM    1 07-Oct-80
RGT      SYS    1 07-Oct-80
GRT      SYS    1 07-Oct-80
DIRECT   SYS    8 07-Oct-80
======== === ==== =========
Files 18, Total 380, Free 2

 

 

HUG also released an enhanced “SY:” (H17) driver on 885-1095 (also in Vol. 1 on SEBHC site):

885-1095_SY_DEVICE_DRIVER.H8D
HUG SY: DEVICE DRIVER P/N 885-1095
======== === ==== =========
  FILE   EXT SIZE   DATE   
======== === ==== =========
README   DOC   14 15-Jun-81
SY       DVD   12 15-Jun-81
DKH17    ASM   23 15-Jun-81
DKH17I   ASM   16 15-Jun-81
DKH17    REL    6 15-Jun-81
DKH17I   REL    6 15-Jun-81
DVDDKGEN ABS    3 15-Jun-81
DVDDKGEN ASM    6 15-Jun-81
MFREADY  ACM    7 15-Jun-81
MFDVD    ACM   49 15-Jun-81
MFINIT   ACM   33 15-Jun-81
INITAUTO ABS   28 15-Jun-81
SYDVD    DOC   84 16-Jun-81
RGT      SYS    1 21-Oct-80
GRT      SYS    1 21-Oct-80
DIRECT   SYS    6 21-Oct-80
======== === ==== =========
Files 16, Total 295, Free 88

 

And there’s 885-1105 there as well which has a few more print drivers plus enhancements to CK.DVD:

 

885-1105_HDOS_2-0_DEVICE_DRIVERS.H8D
DEVICE DRIVERS FOR HDOS 2.0  HUG P/N 885-1105
======== === ==== =========
  FILE   EXT SIZE   DATE   
======== === ==== =========
README   DOC   26 22-Oct-81
LPMX80   ABS    7 22-Oct-81
LPMX80   ASM   55 22-Oct-81
DEMOMX   BAS    6 22-Oct-81
PT560    ABS    6 22-Oct-81
PT560    ASM   77 22-Oct-81
PT560    DOC   13 22-Oct-81
DEMO560  BAS   24 22-Oct-81
GRAPH560 BAS   17 22-Oct-81
LADVD    ABS    6 22-Oct-81
LADVD    ASM   51 22-Oct-81
CKDVD    ABS    5 22-Oct-81
CKDVD    ASM   48 22-Oct-81
OCKDVD   ABS    4 22-Oct-81
SETTIME  ABS    1 22-Oct-81
SETTIME  ASM   10 22-Oct-81
RGT      SYS    1 22-Oct-81
GRT      SYS    1 22-Oct-81
DIRECT   SYS   18 22-Oct-81
======== === ==== =========
Files 19, Total 376, Free 4

 

There are generally two pieces to any disk device driver: the core driver and the “INIT” portion. You don’t *have* to write an INIT piece but if you don’t you will not be able to initialize any media. You can weld the core and init portions together with MAKEMSD.ASM (from HDOS 2.0 tools disk) or I think there’s a “COMBINE.ASM” on the second SY: disk?

 

If it’s useful I’ve included my VD.ASM which is my jukebox driver.  I didn’t do an INIT because I simply populate jukebox slots with already-formatted images…

 

There are multiple SEBHCers with DD experience so feel free to ask or post your code for analysis…

 

  • Glenn

--
You received this message because you are subscribed to the Google Groups "SEBHC" group.
To unsubscribe from this group and stop receiving emails from it, send an email to sebhc+un...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/b0597887-ee8b-44be-983d-5c738b006e9an%40googlegroups.com.

VD.ASM

smb...@gmail.com

unread,
Apr 18, 2023, 11:02:26 AM4/18/23
to SEBHC
Excellent Glenn, these resources will be a big help.

What did you use for a development environment for VD.ASM ? Did you use an emulator, a cross-compiler, or build it on the H8 itself?

Scott

glenn.f...@gmail.com

unread,
Apr 18, 2023, 11:18:51 AM4/18/23
to se...@googlegroups.com

I do all my development on my H8 (at 10Mhz cpu speed).  Old fashioned that way I guess…  I do code editing, backup and archiving on my PC, then use VPIP to transfer the files to the H8 for assembly and test.

smb...@gmail.com

unread,
Apr 26, 2023, 2:09:28 AM4/26/23
to SEBHC
Thanks Glenn. Assuming I make some progress on my C and assembly adventure this weekend, where is a good place to get the C compiler? I'm assuming there's multiple places to find various versions of various C compilers.

Scott

glenn.f...@gmail.com

unread,
Apr 26, 2023, 6:33:28 AM4/26/23
to se...@googlegroups.com

Scott: The article "A Small C Compiler for the 8080's" by Ron Cain in the May 1980 issue of Dr. Dobb’s Journal was a watershed event for C lovers. Small C compiles C source into 8080 assembly language, so building an application is a two-step process: compile code to .ASM and assemble that to produce an executable. With the addition of "A Runtime Library for the Small C Compiler" in the September issue Small C became a decent way for people to get their feet wet with C.

 

Small C was available on HUG 885-1134 as a 4-disk set

https://sebhc.github.io/sebhc/software/Applications/SEBHCArchive_Vol1_20090625.zip

 

It’s valuable from a historical perspective, but there are better implementations for daily use (keep reading…)

 

Importantly, Small C was a starting point for other implementations. The one I’m most familiar with is Walt Bilofsky’s C/80 from Software Toolworks. This is a very usable and reliable C compiler, built on the Small C foundation but with enough professional features to qualify as a full-fledged development environment. The final version was rev 3.1. It is available for HDOS and CP/M.

Home · sebhc/sebhc Wiki (github.com)

 

If you plan to do any work with floating point or long values also grab the Mathpak. We only have rev 3.0 for that but it works fine with the 3.1 compiler:

Home · sebhc/sebhc Wiki (github.com)

 

Another version we have for HDOS is Aztec C, from Manx Software Systems.  I have less personal experience with this compiler.

Home · sebhc/sebhc Wiki (github.com)

Rick Davis was instrumental in obtaining this software and may have more knowledge/experience.

 

There are two ways to configure C/80.  In the default (and original a-la Ron Cain) version you compile a single C file into a single .ASM file and use the provided assembler to produce the .ABS file.  This is fine for learning mode and for small projects, but most people will want to configure the product to be used with either M80 (Microsoft) or RMAC (Digital Research) assemblers. This lets you produce modular code and allows for much more sophisticated uses.

 

If you end up using C/80 I can be of further assistance. I’ve written a great deal of code for the H8 using this compiler and (shamefully) haven’t yet posted too much of it (but plan to!)  My Vinculum utilities are published if you’d like to look at some reference code

sebhc/vdip-utilities: Utility programs for use with the FTDI VDIP1 (github.com)

 

Joe Travis has done some work pulling together utility libraries for C/80 and may be able to help in that regard…

 

I’ve developed quite a bit of C/80 code for the HA-8-3 graphics board and plan to publish that on our github repository once I get a chance to finish cleanup and documentation…

 

Good luck!

Douglas Miller

unread,
Apr 26, 2023, 6:54:18 AM4/26/23
to se...@googlegroups.com

I've also been using C/80 for the HDOS Network utilities, which leverages the modularity afforded by M80/L80.  https://github.com/durgadas311/hdos-net

Be aware that C code produces much larger executables than assembly. It is probably not suitable for writing device drivers, for that and other reasons.

Glenn Roberts

unread,
Apr 26, 2023, 7:40:29 AM4/26/23
to se...@googlegroups.com
And I’ll add that with proper attention to detail you can produce code that rivals assembly code in size and performance. To take a trivial example: avoid printf() 😀

But agree in general with Doug that your programs are going to be larger. Fortunately the days of having only 8 or 16K of RAM are gone for most of us.

Sent from my iPad

On Apr 26, 2023, at 6:54 AM, Douglas Miller <durga...@gmail.com> wrote:



smb...@gmail.com

unread,
Apr 26, 2023, 11:16:32 PM4/26/23
to SEBHC
Thanks Glenn for the list of compilers,

Understood about not writing device drivers in C. I was thinking of that first H8 speech board I designed, the SP0256 / SC-01A speech synthesizers. I have the text-to-speech algorithm sitting in C somewhere.

Also, I got a chance to play around with Douglas's "standalone" vdip1 bootable programs and reintroduce myself to Z80 / 8080 assembly programming. Those work pretty well, and a fast development cycle. At least for non-HDOS things.

Scott

smb...@gmail.com

unread,
Apr 27, 2023, 9:25:46 PM4/27/23
to SEBHC
Am I correct in assuming that an HDOS2 driver will generally work on HDOS3?

I've had some success with Douglas's virtualhdos. Haven't tried assembling a driver with it yet, but if it works for that, it'll be a real time saver!

Scott

Glenn Roberts

unread,
Apr 27, 2023, 9:32:11 PM4/27/23
to se...@googlegroups.com
I believe in general yes. I believe HDOS3 modified DIRECT.SYS format to include time stamping? But that shouldn’t be an issue?

Sent from my iPad

On Apr 27, 2023, at 9:25 PM, smb...@gmail.com <smb...@gmail.com> wrote:

Am I correct in assuming that an HDOS2 driver will generally work on HDOS3?

Douglas Miller

unread,
Apr 27, 2023, 9:32:23 PM4/27/23
to se...@googlegroups.com

I never did figure out how to make HDOS device drivers using HDOS tools (didn't try very hard). I used zmac and a customized version of ld80 to create the DVD file I used for exploring the network HDOS driver (which never did pan-out, but the device drivers worked).

The ld80 I'm using is here: https://github.com/durgadas311/ld80.git. Let me know if you want to go that route.

Scott Baker

unread,
Apr 27, 2023, 10:11:24 PM4/27/23
to se...@googlegroups.com
Thanks Douglas. I did see the network driver example using zmac.

Glenn, The HUG H17 driver tells me to assemble .REL files from the .ASM files. I have assemble the .ASM files, but I end up with .ABS files instead. I'm doing this:

    asm dk0:dkh17,dk0:dkh17=dk0:dkh17,sy1:/err

Is there a way to generate .REL (which I'm assuming is relocatable, rather than absolute) instead?

Scott

Douglas Miller

unread,
Apr 27, 2023, 10:43:51 PM4/27/23
to se...@googlegroups.com

M80 will produce REL files, but I never found the HDOS L80 manual to see how to turn that into what's needed for a DVD (a special file that contains code followed by a list of all the relocatable addresses in the code).

smb...@gmail.com

unread,
Apr 27, 2023, 11:18:17 PM4/27/23
to SEBHC
I've followed http://koyado.com/heathkit/H-89_Speed_Mod_files/SpdMod.HugSYDVD.pdf which is as close as I've found to instructions to tell me exactly what command to run to build the HUG driver, and it produces a .REL file that is about 500 bytes smaller than the one that comes on the HUG driver disk. Presumably this is the missing relocation table.

I'm going to try running the commands on the actual computer rather than in vhdos, but I don't see why it would make a difference. Maybe there's a similar compatibility issue to the one in your notes about PIP not working right in vhdos.

Scott

smb...@gmail.com

unread,
Apr 27, 2023, 11:59:36 PM4/27/23
to SEBHC
Not a problem with vhdos. My HDOS3.02 installation produced a 1536 byte DKH17.REL that's bit-for-bit identical to the one produced in the vhdos environment.

It looks like additional 500 bytes on the .REL files extracted from the HUG disk are just junk padded out from random other files on the disk. One of them is padded out with a chunk of a DOC file, and the other one is padded out with a chunk of an ASM file. Maybe h8dutility isn't extracting the files properly.  Les, can you remind me where I'm supposed to find the latest h8dutility? I appear to have 1.51 on this machine.

Scott

Douglas Miller

unread,
Apr 28, 2023, 2:41:34 AM4/28/23
to se...@googlegroups.com

Note that the standard .REL file is not a DVD file, it is an intermediate format invented by MicroSoft. Zmac also produces .REL files, as does CP/M's RMAC (and the CP/M version of M80).

Looking at those instructions, that method (which is similar to what one used to have to do on CP/M before RMAC came along) has you assembling two copies of the same program but ORGed at different addresses, then running a special program that compares those two copies in order to determine where there are relocatable addresses and build the relocation list from that. These instructions are for using the native HDOS assembler ASM and ABS files (and that special program DVDDKGEN), not MicroSoft's M80 and REL files. It is unfortunate that the instructions tell you to name the ASM output file with the .REL suffix, since that suffix already has a very different meaning. In this case ".REL" is an arbitrary string used in place of ".ABS", and has no association to the .REL files produced by zmac, M80, and RMAC.

Glenn Roberts

unread,
Apr 28, 2023, 5:35:49 AM4/28/23
to se...@googlegroups.com
Scott: the standard procedure is to use the Heath assembler ASM, which produces .ABS files. For “mass storage” devices (really any kind of disk device driver) you need two pieces: the main driver code plus an “INIT” code body. Both are assembled to produce, for example MYSY.ABS and MYSYINIT.ABS. then the MAKMSD (“make mass storage device”) command combines the two sections into one device driver. Rename the output from MAKMSD to be something .DVD and your driver is done.

You can install the driver by copying it to a disk as SY.DVD and booting that disk, but beware that the boot code on track 0 of that disk was installed from whatever version of SY.DVD was in place at the time the disk was INITted, so the best approach is (once you’ve booted from the disk with the new driver) to INIT and SYSGEN a second disk, which will install the correct boot track. 


Sent from my iPad

On Apr 28, 2023, at 2:41 AM, Douglas Miller <durga...@gmail.com> wrote:



Les Bird

unread,
Apr 28, 2023, 7:29:31 AM4/28/23
to SEBHC
Scott, the latest H8DUTILITY is on the Wiki here: https://github.com/sebhc/sebhc/wiki#h8dutility

Les

Douglas Miller

unread,
Apr 28, 2023, 7:36:50 AM4/28/23
to se...@googlegroups.com

Glenn, this has raised my curiosity. What is it that makes ASM produce the relocation table for MYSY.ABS (to be carried over to the DVD by MAKMSD)?

Darrell Pelan

unread,
Apr 28, 2023, 8:42:00 AM4/28/23
to SEBHC
Scott,


I recently added the ability to add and delete files from an HDOS image

  Darrell

glenn.f...@gmail.com

unread,
Apr 28, 2023, 9:42:32 AM4/28/23
to se...@googlegroups.com

So the pseudo-op “CODE PIC” causes the assembler to start generating a relocation table. Every time the assembler encounters an address (e.g. instructions like JMP, CALL, LXI, SHLD, STA, etc.) it adds the appropriate offset of the code that needs to be patched to the table. The header information is defined in PICDEF.ACM:

 

PICDEF     SPACE 3,10

**   PIC FORMAT EQUIVALENCES.

 

     ORG  0

 

PIC.ID     DS   1          377Q = BINARY FILE FLAG

     DS   1          FILE TYPE (FT.PIC)

PIC.LEN    DS   2          LENGTH OF ENTIRE RECORD

PIC.PTR    DS   2          INDEX OF START OF PIC TABLE

 

PIC.COD    DS   0          CODE STARTS HERE

 

The relocation table is simply appended to the file (with the pointer to it defined in the code header as shown above).

 

When HDOS LOADs the file (.LOADD or .LOADO syscalls) and sees the ‘1’ in the second byte it reads the PIC table and then adds the appropriate offset to each affected instruction, based on where the program is being loaded at run time.  This is how HDOSOVL1, HDOOVL2 and device drivers are loaded.

smb...@gmail.com

unread,
Apr 28, 2023, 10:08:53 AM4/28/23
to SEBHC
Thanks everyone. I think the REL file / relocation question I brought up was a bit of a red herring. I had assumed those extra ~ 500 bytes that I was missing was the relocation data, when it was not -- it was a problem with file extraction from the H8D image. I'll try Les's latest h8dutility today, as well Darrell's disk imaging tool and see if I can get a clean copy of the REL files from the HUG disk. Once I do that, I assume the DVD I'm creating using vhdos will be identical to the one on the HUG disk. I am using the DCDDKGEN process outlined on the HUG disk, which differs slightly from the MAKMSD process.

Scott

Douglas Miller

unread,
Apr 28, 2023, 10:14:34 AM4/28/23
to se...@googlegroups.com

Thanks, that clears up a mystery for me. If I ever go back to building HDOS device drivers, I can try and use the "normal" HDOS tools (with vhdos), instead of zmac/ld80 on Linux.

Dan Emrick

unread,
Apr 28, 2023, 11:10:06 AM4/28/23
to SEBHC
Good discussion of device driver development.   I found the CK.DVD article very helpful "way back when."

Where might I find details of writing the INIT portion of a driver?

Dan

smb...@gmail.com

unread,
Apr 28, 2023, 3:45:17 PM4/28/23
to SEBHC
Les, I tried H8dutility3 from the wiki and had the same issues extracting files from 888-1095.

Darrell, I tried Disk Image Utility 1.1g, but whenever I press the <File List> button, on any H8D disk image that I've tried, it says the image has 0 files.

Scott

Darrell Pelan

unread,
Apr 28, 2023, 4:10:32 PM4/28/23
to SEBHC
Scott,

The zip file and GitHub repository on the wiki should have provided version 1.2. I haven't updated the GitHub repository yet. The Wiki is SO much easier. I have one slipware update to deal with HDOS free space which I can upload shortly. 

glenn.f...@gmail.com

unread,
Apr 28, 2023, 4:20:12 PM4/28/23
to se...@googlegroups.com

Scott: I’ve extracted the files from 885-1095 (HUG SY: driver) and sent you a link to a folder in my google drive…

smb...@gmail.com

unread,
Apr 28, 2023, 4:39:59 PM4/28/23
to SEBHC
Glenn, your extracted copy has the same issue. Take a look at DKH17I.REL. The last 512 bytes of that file contain a chunk of SYDVD.DOC. The extracted file should be 6 blocks in size = 1536 bytes, not 2048 bytes.

It's easy enough to correct it by lopping off the last 512 bytes, but it also seems like a bug. h8dutility knows what size the file is supposed to be.

Scott

Darrell Pelan

unread,
Apr 28, 2023, 4:46:24 PM4/28/23
to SEBHC
Scott,
 Disk Image Utility extracts the file with 1536 bytes. Please let me know if you get a different result.

  Darrell

smb...@gmail.com

unread,
Apr 28, 2023, 5:02:14 PM4/28/23
to SEBHC
I can only take a quick look until the weekend, but at first glace 1.2 displays the disk contents correctly and extracts the files to the correct size. Thanks, Darrell!

Scott

glenn.f...@gmail.com

unread,
Apr 28, 2023, 5:47:12 PM4/28/23
to se...@googlegroups.com

Can’t immediately explain the issue.  These were extracted via H8DUtility3. It might be interesting to re-create the  H8D and see what the file looks like..  if I get time later I’ll examine the H8D file directly in dump mode.

smb...@gmail.com

unread,
Apr 28, 2023, 11:39:05 PM4/28/23
to SEBHC
Silly question, is there a way to reboot HDOS ? I can halt it (with BYE or QUIT), but to reboot it I have to walk from one side of the office to the other.

Scott

Joseph Travis

unread,
Apr 29, 2023, 12:34:52 AM4/29/23
to se...@googlegroups.com
Using HDOS2, you can just press the <RETURN> key to reboot.

Using HDOS3, you have to reset the computer to reboot.

Joe


glenn.f...@gmail.com

unread,
Apr 29, 2023, 6:15:45 AM4/29/23
to se...@googlegroups.com

Good question. Not silly.  You probably want BOOT.ABS (attached)

 

Just say BOOT SY0: and your system will reboot (or specify any device you want – if no device given, you’ll be prompted).  If you’ve used AUTOINIT to initialize the volume, you’ll skip the “Action: boot?” prompt (in all my years I don’t think I’ve ever had to do anything but boot at this prompt!)  You can alternatively patch the disk boot track to remove that, but I’d have to search a bit for the patch.  I think there’s a HUG app that does that for you too…

BOOT.ABS
boot.lst
boot.asm

glenn.f...@gmail.com

unread,
Apr 29, 2023, 6:21:37 AM4/29/23
to se...@googlegroups.com

So I mounted the disk image in the Jukebox and it shows the file using 6 sectors (which is consistent with what I saw when I examined the H8D image DIRECT.SYS).  When I DUMP it I get what’s expected and none of the mysterious extra 2 sectors in the version I extracted via H8DUtility3.

 

Les: you might want to check to see why when we extract via H8DUtility3 we get the extra garbage. Suggests a possible bug in the extraction code.

Scott Baker

unread,
Apr 29, 2023, 7:13:00 PM4/29/23
to se...@googlegroups.com
It's almost working!!! I've written my first HDOS device driver.

One thing confuses me though. When I mount my device, I'm getting the following:

DEBUG: READ REGARDLESS BLK=0009 DEST=1C00 COUNT=0100

VOLUME 00000, MOUNTED ON RD0:
LABEL: 

There is a label sector at block 9, and it does contain a volume number and a label, and my debug message shows that sector was read by mount. Is anyone familiar with the MOUNT driver entry point? I'm implementing a no-op here and merely clearing the carry to indicate the mount is successful. Am I supposed to return some information, or place the label into memory somewhere?

Scott

smb...@gmail.com

unread,
Apr 29, 2023, 11:00:51 PM4/29/23
to SEBHC
Never mind the previous message -- not some obscure undocumented task I needed to do inside of the device driver's MOUNT code, but an ordinary run-of-the-mill bug in my code. I'm working now:

VOLUME 00027, MOUNTED ON RD0:
LABEL: SCOTTWASHERE

Scott

Glenn Roberts

unread,
Apr 30, 2023, 6:09:32 AM4/30/23
to se...@googlegroups.com
I guess you’re ready for your device drivers license! Nicely done…

Sent from my iPad

On Apr 29, 2023, at 11:00 PM, smb...@gmail.com <smb...@gmail.com> wrote:

Never mind the previous message -- not some obscure undocumented task I needed to do inside of the device driver's MOUNT code, but an ordinary run-of-the-mill bug in my code. I'm working now:

Joseph Travis

unread,
Apr 30, 2023, 8:46:11 AM4/30/23
to se...@googlegroups.com
If Scott is willing to write about it, it may make a good article for REMarks...

Glenn Roberts

unread,
Apr 30, 2023, 8:50:05 AM4/30/23
to se...@googlegroups.com
I need to get back to those. You’re right Joe that my hoped-for model was to have contributors from across SEBHC help but so far my only volunteer has been Paul Laba…

There’s no shortage of topics or material to write up!

Sent from my iPad

On Apr 30, 2023, at 8:46 AM, Joseph Travis <jtravi...@gmail.com> wrote:



norberto.collado koyado.com

unread,
Apr 30, 2023, 3:53:01 PM4/30/23
to se...@googlegroups.com

What kind of device is RD0:?

smb...@gmail.com

unread,
Apr 30, 2023, 7:48:57 PM4/30/23
to SEBHC
Details tonight! I have some more soldering to do first. :)

Scott

norberto.collado koyado.com

unread,
Apr 30, 2023, 8:19:32 PM4/30/23
to se...@googlegroups.com

One ask that I will like to see under HDOS and eventually under CP/M, is for VDIP1 on second USB port to be able to connect a USB 3.5” floppy drive to read and write to it.  That will be cool to have.

glenn.f...@gmail.com

unread,
Apr 30, 2023, 8:28:41 PM4/30/23
to se...@googlegroups.com

FTDi does make a firmware package that supports a “BOMS” (“bulk only mass storage”) device on the second USB port (actually it’s port 1, the one built onto the board is port 2). We normally use their VDAP firmware (default) but the VF2F provides for some disk-to-disk copying ability. I haven’t read up on it.  Terry looked at some of these firmware options so he may know a bit more…

 

  • Glenn

 

image001.png

Joseph Travis

unread,
Apr 30, 2023, 9:12:18 PM4/30/23
to se...@googlegroups.com
Has it been determined whether or not we can use the V2DIP1-32 in place of the VDIP1? 

Thanks,
Joe


glenn.f...@gmail.com

unread,
Apr 30, 2023, 9:44:12 PM4/30/23
to se...@googlegroups.com

Not the 32. I believe we need V2DIP1-48  *** Terry: please verify?  ***

 

I have to make a small modification to my vinculum utilities to accommodate a slight difference in the firmware output format for this chip. 

 

Unfortunately I was so busy with VCF that I let the opportunity slip to get one and now I haven’t been able to find a source (everyone seems to have zero stock).  Once I have one I can modify and test my vinculum utilities.  If you manage to get one you could contact terry who has made a small mod to the vinculum firmware to go back to the output format for the VDIP-1…

image001.png

norberto.collado koyado.com

unread,
Apr 30, 2023, 10:01:48 PM4/30/23
to se...@googlegroups.com

Per Terry:

 

The V2DIP1-48 is a drop-in replacement for the VDIP1, with one exception.  VDIP1 firmware inserts a blank line before the DIRT command results, V2 firmware does not.  I modified the V2 firmware to include the extra line and Glenn's utilities work without issue with the V2DIP1-48 module.  FTDI provides the Vinculum-II firmware source and a full IDE which makes firmware customization straightforward.

 

Norby

smb...@gmail.com

unread,
Apr 30, 2023, 10:27:09 PM4/30/23
to SEBHC
I tested the V2DIP1-48 on my Pinculum board as well, following instructions here on flashing the firmware to it. Worked fine for me.

Scott

norberto.collado koyado.com

unread,
Apr 30, 2023, 10:33:44 PM4/30/23
to se...@googlegroups.com

They are all for backordering.

Image removed by sender.

Glenn Roberts

unread,
May 1, 2023, 3:41:27 AM5/1/23
to se...@googlegroups.com
The difference in output format is trivial but does confuse my software. I was hoping to fix my code to work out-of-the-box with either VDPI-1 or V2DIP1-48 rather than have everyone have to reprogram the firmware, but missed the opportunity to get my hands on one. Mouser claims they’ll have VDIP1s by next October but I don’t think FTDI is still making them(?) … so I’m skeptical. V2DIP1-48s are supposed to be available in July, which seems more believable…. The V2DIP1-48 uses square header style pins so won’t work with a machined 24-pin socket.

Sent from my iPad

On Apr 30, 2023, at 10:33 PM, norberto.collado koyado.com <norberto...@koyado.com> wrote:



Glenn Roberts

unread,
May 1, 2023, 5:46:55 AM5/1/23
to se...@googlegroups.com
So Scott: do I understand that you’ve built a RAM drive device driver that should work with the existing 512K RAM board? This was actually on the SEBHC “to do” list. Looking forward to learning more and making this available to the group. Let me know how I can help…

Sent from my iPad

On Apr 30, 2023, at 10:33 PM, norberto.collado koyado.com <norberto...@koyado.com> wrote:



They are all for backordering.

smb...@gmail.com

unread,
May 1, 2023, 9:50:28 AM5/1/23
to SEBHC
Yes, I and it finally gave me the motivation to build up my 512K RAM board (the new full-size one Norberto sent me) last night. Tested and working last night, but I could really use a second person to try it out.

Also, writing a REMark article was mentioned above. I'd be happy to do that, and happy to spiff up the driver into something that can be used as a teaching tool. It already has an option to emit a debug message for every driver operation (I had to "teach" myself how to make a driver, after all!). The driver has to do a lot of things that weren't in the article on the CK driver, such as handling INIT to initialize the disk.

Scott

norberto.collado koyado.com

unread,
May 1, 2023, 7:56:43 PM5/1/23
to se...@googlegroups.com
My system is setup right now with the 512KB RAM board. I can retest here. Just send me the driver and any documentation. 

Sent: Monday, May 1, 2023 6:50:28 AM

smb...@gmail.com

unread,
May 1, 2023, 9:53:57 PM5/1/23
to SEBHC
Okay, Norberto. You can be the first test subject.


Please only use rd0: on the 512K board. There's no guardrails to prevent you from using RD1-RD7.

Scott

smb...@gmail.com

unread,
May 1, 2023, 10:35:30 PM5/1/23
to SEBHC
Spent a little bit of time improving the documentation and adding code comments.

Scott

norberto.collado koyado.com

unread,
May 1, 2023, 11:17:44 PM5/1/23
to se...@googlegroups.com

I booted from my H8 CF controller and system will get stuck during the “INIT RD0:” command. Then, I had to reset to get system back.

 

 

Norberto

From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of norberto.collado koyado.com

Joseph Travis

unread,
May 1, 2023, 11:31:46 PM5/1/23
to se...@googlegroups.com
Try running INIT without any arguments and follow the prompts until it asks what drive to initialize <SY0:>, then enter RD0:


Norby

unread,
May 1, 2023, 11:45:30 PM5/1/23
to SEBHC
Same issue and same error message by just typing "INIT".

norberto.collado koyado.com

unread,
May 1, 2023, 11:51:25 PM5/1/23
to se...@googlegroups.com

Take it back! Same issue with different error message. System hangs after printing the last message.

norberto.collado koyado.com

unread,
May 2, 2023, 12:12:12 AM5/2/23
to se...@googlegroups.com

At least mount tries to run…

 

smb...@gmail.com

unread,
May 2, 2023, 12:47:53 AM5/2/23
to SEBHC
Hmm, well it looks like I have my work cut out for me for next weekend! :D

This is with HDOS2, correct? I have only tested with HDOS 3.02. Specifically,  https://github.com/sebhc/sebhc/blob/master/software/HDOS/HDOS_3-02_H17_Distribution.zip.  Maybe there is a difference in the INIT parameters between HDOS versions that is causing issues.

The other thing to double check is that your page registers (address on the 512K-MMU board) is set to 000Q. I'm assuming it is, as that's the default. I don't think this is the problem, as I think INIT is failing before it ever tries to do anything with the disk.

For what it's worth, below is a capture of all debug info from me running INIT, MOUNT, and DIR:

H8 Monitor v2.0(beta32)

H8:

ACTION? <BOOT> BOOT

CF1 STATUS=50

CF2 STATUS=50

HDOS, VERSION 3.0
 ISSUE # 50.07.00

SYSTEM HAS 64K OF RAM

DRIVERS FOUND - TT: SY: HB: CK: ND: RD: FD:

VOLUME 33000, MOUNTED ON SY0:
LABEL: MTC00


S: INIT RD0:

CF1 STATUS=50

CF2 STATUS=50

RD: LOAD

DISMOUNTING ALL DISKS:

VOLUME 33000, DISMOUNTED FROM SY0:
LABEL: MTC00

REMOVE THE DISK(S). HIT RETURN WHEN READY:

 INSERT THE VOLUME YOU WISH TO INITIALIZE INTO RD0:;
 REMEMBER, ANY DATA ON THIS VOLUME WILL BE DESTROYED.

HIT RETURN WHEN READY.
READY?

RD: READY

RD: MOUNT

THE VOLUME NOW IN THE DRIVE ...

RD: READ REGARDLESS UNI=00 BLK=0009 DEST=3E00 COUNT=0100
    PAGE=01 ADDR=0900
IS VOLUME # 00500
 LABEL = "RD0                                                         "
TYPE NO TO CANCEL, TYPE YES TO ERASE AND INITIALIZE THE DISK. (YES/NO) ?YES

ENTER A UNIQUE VOLUME SERIAL NUMBER FROM 0 TO 65535: 500
ENTER A VOLUME LABEL OF 60 CHARACTERS OR LESS:
RD0                                                         <

RD: READY

RD: MOUNT

RD: WRITE UNI=00 BLK=0000 SRC=2280 COUNT=0900
    PAGE=01 ADDR=0000

ENTER THE NUMBERS OF THE BAD SECTORS ONE AT A TIME.  HIT RETURN
AFTER EACH ENTRY, AND WHEN FINISHED.
SECTOR?

RD: MOUNT

RD: WRITE UNI=00 BLK=0010 SRC=3E00 COUNT=0100
    PAGE=01 ADDR=1000

RD: MOUNT

RD: WRITE UNI=00 BLK=0009 SRC=3911 COUNT=0100
    PAGE=01 ADDR=0900

RD: MOUNT

RD: WRITE UNI=00 BLK=0260 SRC=3D00 COUNT=0100
    PAGE=01 ADDR=2000

RD: WRITE UNI=00 BLK=0248 SRC=3A11 COUNT=0200
    PAGE=01 ADDR=0800

RD: WRITE UNI=00 BLK=024A SRC=3A11 COUNT=0200
    PAGE=01 ADDR=0A00

RD: WRITE UNI=00 BLK=024C SRC=3A11 COUNT=0200
    PAGE=01 ADDR=0C00

RD: WRITE UNI=00 BLK=024E SRC=3A11 COUNT=0200
    PAGE=01 ADDR=0E00

RD: WRITE UNI=00 BLK=0250 SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1000

RD: WRITE UNI=00 BLK=0252 SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1200

RD: WRITE UNI=00 BLK=0254 SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1400

RD: WRITE UNI=00 BLK=0256 SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1600

RD: WRITE UNI=00 BLK=0258 SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1800

RD: WRITE UNI=00 BLK=025A SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1A00

RD: WRITE UNI=00 BLK=025C SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1C00

RD: WRITE UNI=00 BLK=025E SRC=3A11 COUNT=0200
    PAGE=01 ADDR=1E00

 DISK INITIALIZATION COMPLETE.

 INSERT THE VOLUME YOU WISH TO INITIALIZE INTO RD0:;
 REMEMBER, ANY DATA ON THIS VOLUME WILL BE DESTROYED.

HIT RETURN WHEN READY.
READY?
DEVICE <SY0:> ?
DO YOU HAVE ANY MORE DISKS TO INITIALIZE (YES/NO) <NO> ?NO
VOLUME 33000, MOUNTED ON SY0:
LABEL: MTC00

S: MOU RD0:

RD: READY

RD: MOUNT

RD: READ REGARDLESS UNI=00 BLK=0009 DEST=1C00 COUNT=0100
    PAGE=01 ADDR=0900

RD: MOUNT

RD: WRITE UNI=00 BLK=0000 SRC=0260 COUNT=0000

RD: READ UNI=00 BLK=0010 DEST=D600 COUNT=0100
    PAGE=01 ADDR=1000

RD: READ UNI=00 BLK=0260 DEST=1C00 COUNT=0100
    PAGE=01 ADDR=2000

RD: READ UNI=00 BLK=0248 DEST=F600 COUNT=0200
    PAGE=01 ADDR=0800

RD: READ UNI=00 BLK=024A DEST=F600 COUNT=0200
    PAGE=01 ADDR=0A00

RD: WRITE UNI=00 BLK=0260 SRC=D600 COUNT=0100
    PAGE=01 ADDR=2000

RD: READ UNI=00 BLK=024A DEST=F600 COUNT=0200
    PAGE=01 ADDR=0A00

RD: WRITE UNI=00 BLK=024A SRC=F600 COUNT=0200
    PAGE=01 ADDR=0A00

RD: READ REGARDLESS UNI=00 BLK=0009 DEST=1C00 COUNT=0100
    PAGE=01 ADDR=0900
VOLUME 00500, MOUNTED ON RD0:
LABEL: RD0

S: DIR RD0:

RD: READ UNI=00 BLK=0248 DEST=F600 COUNT=0200
    PAGE=01 ADDR=0800

RD: READ UNI=00 BLK=024A DEST=F600 COUNT=0200
    PAGE=01 ADDR=0A00

RD: READ UNI=00 BLK=0248 DEST=F600 COUNT=0200
    PAGE=01 ADDR=0800

RD: READ UNI=00 BLK=024A DEST=F600 COUNT=0200
    PAGE=01 ADDR=0A00

NAME    .EXT  SIZE   CREATED    TIME   FLAGS---         DATE: 02-MAR-82


  0 FILES, USING 0 SECTORS (1728 FREE)

S:

norberto.collado koyado.com

unread,
May 2, 2023, 1:17:58 AM5/2/23
to se...@googlegroups.com

Yes, I was using HDOS2. With HDOS3, it will not hang, but still get the table overflow message, so I cannot init under HDOS3.

 

Image I’m using here: http://koyado.com/heathkit/New-H8-Website/download/hcf_32kmonitor_20230330_1930.zip

 

Image boot format:

    H8: Boot FF-0: ; boot HDOS 2.0

    H8: Boot FF-0:1 ;boot HDOS 3.0

       H8: Boot FF-0:2 ;boot Heath CP/M.

 

 

smb...@gmail.com

unread,
May 2, 2023, 1:24:42 AM5/2/23
to SEBHC
Hmm, interesting that we're overflowing the device table. I thought it was a dynamic size, but maybe there is a limit?

Scott

smb...@gmail.com

unread,
May 2, 2023, 1:26:32 AM5/2/23
to SEBHC
I've not tried your images before -- I'll try them on the weekend, if not sooner.

Scott

norberto.collado koyado.com

unread,
May 2, 2023, 1:47:37 AM5/2/23
to se...@googlegroups.com

Did try booting from my Z67-IDE+ controller HDOS2 and it fails in a different manner and system went back to the H8: monitor.

 

 

Also booted from another HDOS2 image and still fails and it goes back to the OS…

norberto.collado koyado.com

unread,
May 2, 2023, 2:08:39 AM5/2/23
to se...@googlegroups.com

The previous email capture looks like the HDOS got corrupted, just ignore it. I did try on Glenn’s Rusty image and I get the following under HDOS2.

Douglas Miller

unread,
May 2, 2023, 7:58:46 AM5/2/23
to se...@googlegroups.com

For what it's worth...

I saw a similar-looking problem when I was experimenting with HDOS device drivers for networking, where HDOS was getting corrupted and crashing. What I believe was happening was that the device driver was getting relocated twice, the second time causing corruption of all the addresses. Everything starting working correctly when I changed the initialization callback (DC.LOD, etc) so that it set the DEV.RES flags DR.PR+DR.IM. Without this, it appears that HDOS kept thinking the driver needed to be relocated.

Richard Davis Jr.

unread,
May 2, 2023, 9:07:53 AM5/2/23
to se...@googlegroups.com
INIT can only handle 3 or 4 drivers. i.e. *.dvd files.
You need to temporarily rename the drivers you don't need to <name>.sav and reboot.

Rick

Glenn Roberts

unread,
May 2, 2023, 9:15:26 AM5/2/23
to se...@googlegroups.com
My convention is to add “OFF” to the driver name to disable

PIP RDOFF.DVD=RD.DVD/REN

then reboot. 

I would caution against loading up lots of device drivers - they do suck up RAM. Also I personally rarely configure drivers for more than 4 units since each unit adds buffer space. This is an issue if you’re doing code development as c80, m80 and l80 can be rather RAM hungry…

Sent from my iPad

On May 2, 2023, at 9:08 AM, Richard Davis Jr. <rickdav...@gmail.com> wrote:



norberto.collado koyado.com

unread,
May 2, 2023, 4:26:17 PM5/2/23
to se...@googlegroups.com
I went down to 2 dvd devices and still same issue.

From: se...@googlegroups.com <se...@googlegroups.com> on behalf of Glenn Roberts <glenn.f...@gmail.com>
Sent: Tuesday, May 2, 2023 6:15:10 AM
To: se...@googlegroups.com <se...@googlegroups.com>

Glenn Roberts

unread,
May 2, 2023, 6:09:38 PM5/2/23
to se...@googlegroups.com
I can try later this evening

Sent from my iPad

On May 2, 2023, at 4:26 PM, norberto.collado koyado.com <norberto...@koyado.com> wrote:



Scott Baker

unread,
May 2, 2023, 7:13:48 PM5/2/23
to se...@googlegroups.com
I got it working with both Norberto’s hdos3 and hdos2 images last night. For hdos3 I removed every disk driver except SY.

For hdos2 it will require a code change.

Will provide more details tonight.

Scott

norberto.collado koyado.com

unread,
May 2, 2023, 9:24:57 PM5/2/23
to se...@googlegroups.com
Thanks Scott!

From: se...@googlegroups.com <se...@googlegroups.com> on behalf of Scott Baker <smb...@gmail.com>
Sent: Tuesday, May 2, 2023 4:12:43 PM

Scott Baker

unread,
May 2, 2023, 10:53:03 PM5/2/23
to se...@googlegroups.com
https://github.com/sbelectronics/h8/raw/master/h8-8meg/ramdisk/rd.dvd is ready to try again. See below instructions about renaming some of the drivers.

The RD driver init module has been patched to make it a few bytes bigger, which triggers an extra 256-byte block to be added to the file. My investigation showed that INIT was failing here:

   073.330  052 372 074 05267           LHLD    FDPE+PIC.LEN
   073.333  104         05268           MOV     B,H
   073.334  115         05269           MOV     C,L             BC = byte count
   073.335  041 341 074 05270           LXI     H,FDPB
   073.340  315 076 077 05271           CALL    $FREAB.
   073.343  332 062 074 05272           JC      FDP7            Error


It apparently reads past the end of the file when the file ends very close to a sector boundary. So I pushed it over and caused an extra sector to be allocated to the file.

I'm using it on your images Norberto, with both HDOS2 and HDOS3.

* on HDOS2 I renamed HB.DVD -> HBOFF.DVD and then rebooted. SY.DVD and RD.DVD are the only two storage drivers.

* on HDOS3 I renamed all three extra drivers (HA.DVD -> HAOFF.DVD, HB.DVD -> HBOFF.DVD, DK.DVD -> DKOFF.DVD). SY.DVD and RD.DVD are the only two storage drivers.

If that works on HDOS3, then try putting up to two of them back. I think HDOS3 will tolerate four storage drivers total (including RD). I could only get two to work on HDOS2.

Very curious to know if this resolves your issues.

Scott

norberto.collado koyado.com

unread,
May 3, 2023, 12:11:38 AM5/3/23
to se...@googlegroups.com

Thanks for fixing HDOS2.0 RD0 driver issue. I just added the driver and It worked fine. No need to rename existing drivers. I have 4 dvd drivers running. Attached is the trace…

 

 

Runs fine at 8MHz.

 

This is a great addition to the 512KB board and the new 8GB Memory board. Better than Trionyx mass memory for the H8: http://koyado.com/Heathkit/Z-H8_CPU_Board_files/TRIONYX-MASS-MEMORY-FOR-THE-H8-05092017.pdf.  

 

Let me know once schematics are up for the 8GB board and thanks for making it backwards compatible with the 512KB board; ingenuous. 😊

 

Norberto

SCOTT_HDOS_RD0_DRIVER.txt

norberto.collado koyado.com

unread,
May 3, 2023, 12:22:01 AM5/3/23
to se...@googlegroups.com

Sysgen worked fine as well. Now, how I boot from it?

 

Douglas, what it will take to enable the “H8: BOOT MM-0:” command to boot from the 512KB memory board instead of the MMS77318 ramdisk?

 

 

 

Sysgen:

 

 

Norby

smb...@gmail.com

unread,
May 3, 2023, 2:07:13 AM5/3/23
to SEBHC
Excellent, great to hear it's working Norberto.

The new boards arrived from jlcpcb today and I've started building one up. I'll have it tested and (assuming all is well) have schematics and gerbers ready by the weekend.

If the boot is straightforward enough, I can take a look at that. By "straightforward", I mean just load a handful of sectors from memory. If it needs to parse directories or anything fancy like that, then might need some help.

Scott

norberto.collado koyado.com

unread,
May 3, 2023, 2:49:51 AM5/3/23
to se...@googlegroups.com

It is straight forward and Douglas can guide you thru the process.

Douglas Miller

unread,
May 3, 2023, 8:07:50 AM5/3/23
to se...@googlegroups.com

One thing we should consider is some sort of checksum to validate that the ramdisk has actually been "sysgened". I'll need to review what the MMS 77318 did for that, and see if it is worth following. It also creates the need to standardize the boot area of the ramdisk somehow. Right now, the start of the ramdisk is decided by the OS (CP/M 3 or HDOS) and is probably different, so we'll need some standard way of determining where to boot from. Although, I guess making the CP/M 3 ramdisk bootable is probably not desired?

Also, if a machine is being used for both CP/M 3 and HDOS then booting CP/M 3 will trash the ramdisk for HDOS. Just some things to consider. The MMS 77318 was only bootable for CP/M 2.2, but one still needs to know where the ramdisk starts (and where OS RAM ends). Probably that is 64K for everything except CP/M 3, although some of the "Z" variants of CP/M might also be different.

The "need" for booting from ramdisk may be diminished by solid-state storage options, too (Z67-IDE, CF, SDCard). Booting from MMS 77318 compared to H17 was mind-blowing, but it may not be very noticeable compared to CF.

Joseph Travis

unread,
May 3, 2023, 9:15:35 AM5/3/23
to se...@googlegroups.com
Very cool, Congrats!


image001.png
image002.png

norberto.collado koyado.com

unread,
May 3, 2023, 9:51:28 AM5/3/23
to se...@googlegroups.com

Thanks Douglas for such great feedback. It might not be worth for the 512KB board as CP/M3 will trash it, but it might be good for the 8MB board above the 512KB range.

smb...@gmail.com

unread,
May 3, 2023, 10:44:25 AM5/3/23
to SEBHC
Another thing I want to look into this weekend is autodetecting the type of board (512K or 8MB) and the presence of the board and installing some guardrails. I think this would be simple enough, just writing some strategic values and see any making sure they change in the correct page (and don't change main memory and/or the incorrect page). Right now if you load RD0: without an MMU-capable board, it will probably just crash the computer, and if you use RD1: - RD7: on the 512K board it will just overwrite RD0:.

As to whether we need to be able to boot it, I don't think there's a compelling "need", but there is some fun in booting as fast as possible. Just see how far we can push it.

Scott

Glenn Roberts

unread,
May 3, 2023, 11:48:13 AM5/3/23
to se...@googlegroups.com
Don’t forget that there’s the SET option for device drivers. Could let you explicitly set things like the starting offset of the RAM drive area. This could let you deconflict with CPM 3.  

Sent from my iPad

On May 3, 2023, at 10:44 AM, smb...@gmail.com <smb...@gmail.com> wrote:

Another thing I want to look into this weekend is autodetecting the type of board (512K or 8MB) and the presence of the board and installing some guardrails. I think this would be simple enough, just writing some strategic values and see any making sure they change in the correct page (and don't change main memory and/or the incorrect page). Right now if you load RD0: without an MMU-capable board, it will probably just crash the computer, and if you use RD1: - RD7: on the 512K board it will just overwrite RD0:.

smb...@gmail.com

unread,
May 7, 2023, 3:48:25 AM5/7/23
to SEBHC
Glenn, I've implemented the SET command for a few options already SET DEBUG and SET TINY (for the the 512K board). Adding to it to offset the start of the Ramdisk would be easy enough.

I finished up a few things today:

1) Built out the respin of the 8meg board, which was successful. One small issue will need another respin, but it only causes trouble for those who wish to use more than one 8meg RAM board. I'll post gerbers and schematics soon.

2) Finalized a few development tools, including the `RDCOPY` utility which can copy the binary image of one ramdisk to another. It can recognize if a Ramdisk bank is populated with 39SF040 flash ICs rather than AS6C4008 RAM chips, and will probably the 39SF040 accordingly. This allows you to have easy non-volatile backup, at the expense of having an inconvenient workflow for writes. You can, for example, copy from FLASH to RAM, make some changes, then copy from RAM back to FLASH. If you want to do that sort of thing...

3) Fixed the bug that was causing me problems at 8MHz. Tested the 8meg board to 10MHz.

If I get time, then I'll record the youtube video and make the blog post on this Sunday.

Next up on my list is implementing boot. The changes to NEWMON look like they'll be simple enough, but the more complicated part is to add the necessary boot code to INIT. By looking at the H17 driver, I determined the standard practice is to write a readonly driver (ROD). This goes in the INIT module between addresses 042.240 and 044.200. This code must setup the SYDD vector and MOUNT function to point to itself. The last thing it does is JMP 044.200 which continues the boot process.

... and ... we have some success!

S: BOOT

DEVICE<SY0:>? RD0:

VOLUME 33000, DISMOUNTED FROM SY0:
LABEL: MTC00


ACTION? <BOOT> BOOT


HDOS, VERSION 3.0
 ISSUE # 50.07.00

SYSTEM HAS 64K OF RAM

DRIVERS FOUND - TT: SY: RD:

VOLUME 00500, MOUNTED ON SY0:
LABEL: RD0



S:

Scott

Glenn Roberts

unread,
May 7, 2023, 4:59:08 AM5/7/23
to se...@googlegroups.com
This is great Scott. How does the 8m RAM board retain contents on power off? Battery backup? ATX standby power? Or both? Have you done any speed tests? Wondering how it compares the compact flash SSD…

Sent from my iPad

On May 7, 2023, at 3:48 AM, smb...@gmail.com <smb...@gmail.com> wrote:

Glenn, I've implemented the SET command for a few options already SET DEBUG and SET TINY (for the the 512K board). Adding to it to offset the start of the Ramdisk would be easy enough.

smb...@gmail.com

unread,
May 7, 2023, 11:54:36 AM5/7/23
to SEBHC
I think my initial test was that at 2MHz  a RAM-to-RAM PIP command took about half the time of a CF-TO-RAM PIP command. It's been a while, and the code has got a little bloated dealing with corner cases so some of that performance may have been given back. It's possible I could get another 10%-20% out of it if I optimized the code (I'm working on correctness first, performance later). If I wrote a Z80-specific version of the driver, it could be even faster, as a single Z80 LDIR instruction can replace a half-dozen 8080 instructions. There's also other Z80 instructions, like bit shifts that would make a difference.

Scott

smb...@gmail.com

unread,
May 7, 2023, 3:18:11 PM5/7/23
to SEBHC
Well that was easy...

H8 Monitor v2.1(beta1)

H8: Boot RR-3



ACTION? <BOOT> BOOT

HDOS, VERSION 3.0
 ISSUE # 50.07.00

SYSTEM HAS 64K OF RAM

DRIVERS FOUND - TT: SY: HA:

VOLUME 00503, MOUNTED ON SY0:
LABEL: RD3


S: 


Douglas Miller

unread,
May 7, 2023, 4:29:13 PM5/7/23
to se...@googlegroups.com
Great!

I'm wondering if we can go ahead use the 'M' device for this, since any
version of the new ROM on an H89 would be using the H8x512K (or variant)
anyway (and not the MMS 77318). I can't think of any other use for 'R'
yet, either, but just seems like 'M' could be reused for this. I don't
have strong feelings either way, though.
>>> *From:* se...@googlegroups.com
>>> <se...@googlegroups.com> *On Behalf Of *Douglas Miller
>>> *Sent:* Wednesday, May 3, 2023 5:08 AM
>>> *To:* se...@googlegroups.com
>>> *Subject:* Re: [sebhc] HDOS Device Driver Resources
>>> <http://koyado.com> wrote:
>>>
>>> It is straight forward and Douglas can guide you
>>> thru the process.
>>>
>>> Norberto
>>>
>>> *From:* se...@googlegroups.com
>>> <se...@googlegroups.com> *On Behalf Of
>>> *smb...@gmail.com
>>> *Sent:* Tuesday, May 2, 2023 11:07 PM
>>> *To:* SEBHC <se...@googlegroups.com>
>>> *Subject:* Re: [sebhc] HDOS Device Driver Resources
>>>
>>> Excellent, great to hear it's working Norberto.
>>>
>>> The new boards arrived from jlcpcb today and
>>> I've started building one up. I'll have it
>>> tested and (assuming all is well) have
>>> schematics and gerbers ready by the weekend.
>>>
>>> If the boot is straightforward enough, I can
>>> take a look at that. By "straightforward", I
>>> mean just load a handful of sectors from memory.
>>> If it needs to parse directories or anything
>>> fancy like that, then might need some help.
>>>
>>> Scott
>>>
>>> On Tuesday, 2 May 2023 at 21:22:01 UTC-7 Norby
>>> wrote:
>>>
>>> Sysgen worked fine as well. Now, how I boot
>>> from it?
>>>
>>> Douglas, what it will take to enable the
>>> “H8: BOOT MM-0:” command to boot from the
>>> 512KB memory board instead of the MMS77318
>>> ramdisk?
>>>
>>> Sysgen:
>>>
>>> Norby
>>>
>>> *From:* se...@googlegroups.com
>>> <se...@googlegroups.com> *On Behalf Of
>>> *norberto.collado koyado.com <http://koyado.com>
>>> *Sent:* Tuesday, May 2, 2023 9:11 PM
>>> *To:* se...@googlegroups.com
>>> *Subject:* RE: [sebhc] HDOS Device Driver
>>> Resources
>>>
>>> Thanks for fixing HDOS2.0 RD0 driver issue.
>>> I just added the driver and It worked fine.
>>> No need to rename existing drivers. I have 4
>>> dvd drivers running. Attached is the trace…
>>>
>>> Runs fine at 8MHz.
>>>
>>> This is a great addition to the 512KB board
>>> and the new 8GB Memory board. Better than
>>> Trionyx mass memory for the H8:
>>> http://koyado.com/Heathkit/Z-H8_CPU_Board_files/TRIONYX-MASS-MEMORY-FOR-THE-H8-05092017.pdf.
>>>
>>>
>>> Let me know once schematics are up for the
>>> 8GB board and thanks for making it backwards
>>> compatible with the 512KB board; ingenuous. 😊
>>>
>>> Norberto
>>>
>>> *From:* se...@googlegroups.com
>>> <se...@googlegroups.com> *On Behalf Of
>>> *Scott Baker
>>> *Sent:* Tuesday, May 2, 2023 7:53 PM
>>> *To:* se...@googlegroups.com
>>> *Subject:* Re: [sebhc] HDOS Device Driver
>>> <http://koyado.com> <norberto...@koyado.com>
>>> wrote:
>>>
>>> Thanks Scott!
>>>
>>> Get Outlook for iOS <https://aka.ms/o0ukef>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> *From:*se...@googlegroups.com<se...@googlegroups.com>
>>> on behalf of Scott Baker <smb...@gmail.com>
>>> *Sent:* Tuesday, May 2, 2023 4:12:43 PM
>>> *To:*
>>> se...@googlegroups.com<se...@googlegroups.com>
>>> *Subject:* Re: [sebhc] HDOS Device
>>> Driver Resources
>>>
>>> I got it working with both Norberto’s
>>> hdos3 and hdos2 images last night. For
>>> hdos3 I removed every disk driver except SY.
>>>
>>> For hdos2 it will require a code change.
>>>
>>> Will provide more details tonight.
>>>
>>> Scott
>>>
>>> On Tue, May 2, 2023 at 3:09 PM Glenn
>>> Roberts <glenn.f...@gmail.com> wrote:
>>>
>>> I can try later this evening
>>>
>>> Sent from my iPad
>>>
>>> On May 2, 2023, at 4:26 PM,
>>> norberto.collado koyado.com
>>> <http://koyado.com>
>>> <norberto...@koyado.com> wrote:
>>>
>>> 
>>>
>>> I went down to 2 dvd devices and
>>> still same issue.
>>>
>>> Get Outlook for iOS
>>> <https://aka.ms/o0ukef>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> *From:*se...@googlegroups.com<se...@googlegroups.com>
>>> on behalf of Glenn Roberts
>>> <glenn.f...@gmail.com>
>>> *Sent:* Tuesday, May 2, 2023
>>> 6:15:10 AM
>>> *To:*
>>> se...@googlegroups.com<se...@googlegroups.com>
>>> *Subject:* Re: [sebhc] HDOS
>>> <http://koyado.com>
>>> <norberto...@koyado.com> wrote:
>>>
>>> The previous email
>>> capture looks like the
>>> HDOS got corrupted, just
>>> ignore it. I did try on
>>> Glenn’s Rusty image and
>>> I get the following
>>> under HDOS2.
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On Behalf Of
>>> *norberto.collado
>>> koyado.com
>>> <http://koyado.com>
>>> *Sent:* Monday, May 1,
>>> 2023 10:47 PM
>>> *To:* se...@googlegroups.com
>>> *Subject:* RE: [sebhc]
>>> HDOS Device Driver Resources
>>>
>>> Did try booting from my
>>> Z67-IDE+ controller
>>> HDOS2 and it fails in a
>>> different manner and
>>> system went back to the
>>> H8: monitor.
>>>
>>> Also booted from another
>>> HDOS2 image and still
>>> fails and it goes back
>>> to the OS…
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On Behalf Of
>>> *smb...@gmail.com
>>> *Sent:* Monday, May 1,
>>> 2023 10:27 PM
>>> *To:* SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:* Re: [sebhc]
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On Behalf Of
>>> *smb...@gmail.com
>>> *Sent:* Monday,
>>> May 1, 2023 9:48 PM
>>> *To:* SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:* Re:
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On Behalf
>>> Of
>>> *norberto.collado
>>> koyado.com
>>> <http://koyado.com>
>>> *Sent:*
>>> Monday, May
>>> 1, 2023 8:51 PM
>>> *To:*
>>> se...@googlegroups.com
>>> *Subject:*
>>> RE: [sebhc]
>>> HDOS Device
>>> Driver Resources
>>>
>>> Take it
>>> back! Same
>>> issue with
>>> different
>>> error
>>> message.
>>> System hangs
>>> after
>>> printing the
>>> last message.
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On Behalf
>>> Of *Norby
>>> *Sent:*
>>> Monday, May
>>> 1, 2023 8:46 PM
>>> *To:* SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> <http://koyado.com>
>>> Norberto
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *smb...@gmail.com
>>> *Sent:*
>>> Monday,
>>> May
>>> 1,
>>> 2023
>>> 7:36 PM
>>> *To:*
>>> SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> <https://aka.ms/o0ukef>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> *From:*se...@googlegroups.com<se...@googlegroups.com>
>>> on
>>> behalf
>>> of
>>> smb...@gmail.com<smb...@gmail.com>
>>>
>>> *Sent:*Monday,
>>> May
>>> 1,
>>> 2023
>>> 6:50:28
>>> AM
>>>
>>>
>>> *To:*
>>> SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> <http://koyado.com>
>>> <norberto...@koyado.com>
>>> wrote:
>>>
>>> 
>>>
>>>
>>> They
>>> are
>>> all
>>> for
>>> backordering.
>>>
>>>
>>> *From:
>>> *se...@googlegroups.com<se...@googlegroups.com>
>>> on
>>> behalf
>>> of
>>> smb...@gmail.com<smb...@gmail.com>
>>> *Date:
>>> *Sunday,
>>> April
>>> 30,
>>> 2023
>>> at
>>> 7:27
>>> PM
>>> *To:
>>> *SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:
>>> *Re:
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *glenn.f...@gmail.com
>>> *Sent:*
>>> Sunday,
>>> April
>>> 30,
>>> 2023
>>> 6:44
>>> PM
>>> *To:*
>>> se...@googlegroups.com
>>> *Subject:*
>>> 1. Glenn
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *Joseph
>>> Travis
>>> *Sent:*
>>> Sunday,
>>> April
>>> 30,
>>> 2023
>>> 9:12
>>> PM
>>> *To:*
>>> se...@googlegroups.com
>>> *Subject:*
>>> 1. Glenn
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *norberto.collado
>>> koyado.com
>>> <http://koyado.com>
>>> *Sent:*
>>> Sunday,
>>> April
>>> 30,
>>> 2023
>>> 8:19
>>> PM
>>> *To:*
>>> se...@googlegroups.com
>>> *Subject:*
>>> *From:
>>> *se...@googlegroups.com<se...@googlegroups.com>
>>> on
>>> behalf
>>> of
>>> smb...@gmail.com<smb...@gmail.com>
>>> *Date:
>>> *Sunday,
>>> April
>>> 30,
>>> 2023
>>> at
>>> 4:49
>>> PM
>>> *To:
>>> *SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:
>>> *Re:
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *Glenn
>>> Roberts
>>> *Sent:*
>>> Sunday,
>>> April
>>> 30,
>>> 2023
>>> 3:09
>>> AM
>>> *To:*
>>> se...@googlegroups.com
>>> *Subject:*
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *smb...@gmail.com
>>> *Sent:*
>>> Friday,
>>> April
>>> 28,
>>> 2023
>>> 4:40
>>> PM
>>> *To:*
>>> SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *smb...@gmail.com
>>> *Sent:*
>>> Friday,
>>> April
>>> 28,
>>> 2023
>>> 3:45
>>> PM
>>> *To:*
>>> SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> <http://PIC.ID>    
>>> 1. Glenn
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *Douglas
>>> Miller
>>> *Sent:*
>>> Friday,
>>> April
>>> 28,
>>> 2023
>>> 7:37
>>> AM
>>> *To:*
>>> se...@googlegroups.com
>>> *Subject:*
>>> <https://github.com/sebhc/sebhc/wiki#c-80-v31>
>>> <https://github.com/sebhc/sebhc/wiki#c-80-v30>
>>> <https://github.com/sebhc/sebhc/wiki#manx-software-systems>
>>> <https://github.com/sebhc/vdip-utilities>
>>> 1. Glenn
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *smb...@gmail.com
>>> *Sent:*
>>> Wednesday,
>>> April
>>> 26,
>>> 2023
>>> 2:09
>>> AM
>>> *To:*
>>> SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *smb...@gmail.com
>>> *Sent:*
>>> Tuesday,
>>> April
>>> 18,
>>> 2023
>>> 11:02
>>> AM
>>> *To:*
>>> SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> <http://pestingers.net/pdfs/remark-scans/1981/remark-issue20-1981.pdf>
>>>
>>> HDOS
>>> included
>>> source
>>> for
>>> the
>>> print
>>> and
>>> serial
>>> drivers
>>> with
>>> the
>>> HDOS
>>> 2
>>> distribution
>>> disks.
>>> There
>>> are
>>> multiple
>>> copies
>>> of
>>> these
>>> in
>>> the
>>> SEBHC.ORG
>>> <http://SEBHC.ORG>
>>> disk
>>> archive,
>>> for
>>> example
>>> see
>>> the
>>> disk
>>> (confusingly)
>>> labelled
>>> “HDOS3.H8D”
>>> in
>>> Vol
>>> 1.
>>>
>>> *HDOS3.H8D*
>>> HDOS 2.0 Driver Source  (Copyright(C) Heath Co 1980)890-104
>>> ======== === ==== =========
>>>   FILE   EXT SIZE   DATE
>>>
>>> ======== === ==== =========
>>> *ATH44    ASM   68 07-Oct-80*
>>> *ATH84    ASM   34 29-Oct-80*
>>> *DDDVD    ASM   31 29-Oct-80*
>>> *DDINIT   ASM   64 03-Dec-80*
>>> *LPH24    ASM   46 07-Oct-80*
>>> *MAKMSD   ASM   11 07-Oct-80*
>>> *ND       ASM   10 07-Oct-80*
>>> *SYDVD    ASM   34 07-Oct-80*
>>> *SYINIT   ASM   37 08-Oct-80*
>>> *GLASSTTY ASM   16 07-Oct-80*
>>> *TBRA     ACM    2 07-Oct-80*
>>> *TYPTX    ACM    2 07-Oct-80*
>>> *U8250    ACM    9 07-Oct-80*
>>> *U8251    ACM    5 07-Oct-80*
>>> *ZEROS    ACM    1 07-Oct-80*
>>> *RGT      SYS    1 07-Oct-80*
>>> *GRT      SYS    1 07-Oct-80*
>>> *DIRECT   SYS    8 07-Oct-80*
>>> ======== === ==== =========
>>> *Files 18, Total 380, Free 2*
>>>
>>> HUG
>>> also
>>> released
>>> an
>>> enhanced
>>> “SY:”
>>> (H17)
>>> driver
>>> on
>>> 885-1095
>>> (also
>>> in
>>> Vol.
>>> 1
>>> on
>>> SEBHC
>>> site):
>>>
>>> *885-1095_SY_DEVICE_DRIVER.H8D*
>>> HUG SY: DEVICE DRIVER P/N 885-1095
>>> ======== === ==== =========
>>>   FILE   EXT SIZE   DATE
>>>
>>> ======== === ==== =========
>>> *README   DOC   14 15-Jun-81*
>>> *SY       DVD   12 15-Jun-81*
>>> *DKH17    ASM   23 15-Jun-81*
>>> *DKH17I   ASM   16 15-Jun-81*
>>> *DKH17    REL    6 15-Jun-81*
>>> *DKH17I   REL    6 15-Jun-81*
>>> *DVDDKGEN ABS    3 15-Jun-81*
>>> *DVDDKGEN ASM    6 15-Jun-81*
>>> *MFREADY  ACM    7 15-Jun-81*
>>> *MFDVD    ACM   49 15-Jun-81*
>>> *MFINIT   ACM   33 15-Jun-81*
>>> *INITAUTO ABS   28 15-Jun-81*
>>> *SYDVD    DOC   84 16-Jun-81*
>>> *RGT      SYS    1 21-Oct-80*
>>> *GRT      SYS    1 21-Oct-80*
>>> *DIRECT   SYS    6 21-Oct-80*
>>> ======== === ==== =========
>>> *Files 16, Total 295, Free 88*
>>>
>>> And
>>> there’s
>>> 885-1105
>>> there
>>> as
>>> well
>>> which
>>> has
>>> a
>>> few
>>> more
>>> print
>>> drivers
>>> plus
>>> enhancements
>>> to
>>> CK.DVD:
>>>
>>> *885-1105_HDOS_2-0_DEVICE_DRIVERS.H8D*
>>> DEVICE DRIVERS FOR HDOS 2.0  HUG P/N 885-1105
>>> ======== === ==== =========
>>>   FILE   EXT SIZE   DATE
>>>
>>> ======== === ==== =========
>>> *README   DOC   26 22-Oct-81*
>>> *LPMX80   ABS    7 22-Oct-81*
>>> *LPMX80   ASM   55 22-Oct-81*
>>> *DEMOMX   BAS    6 22-Oct-81*
>>> *PT560    ABS    6 22-Oct-81*
>>> *PT560    ASM   77 22-Oct-81*
>>> *PT560    DOC   13 22-Oct-81*
>>> *DEMO560  BAS   24 22-Oct-81*
>>> *GRAPH560 BAS   17 22-Oct-81*
>>> *LADVD    ABS    6 22-Oct-81*
>>> *LADVD    ASM   51 22-Oct-81*
>>> *CKDVD    ABS    5 22-Oct-81*
>>> *CKDVD    ASM   48 22-Oct-81*
>>> *OCKDVD   ABS    4 22-Oct-81*
>>> *SETTIME  ABS    1 22-Oct-81*
>>> *SETTIME  ASM   10 22-Oct-81*
>>> *RGT      SYS    1 22-Oct-81*
>>> *GRT      SYS    1 22-Oct-81*
>>> *DIRECT   SYS   18 22-Oct-81*
>>> ======== === ==== =========
>>> *Files 19, Total 376, Free 4*
>>>
>>> There
>>> are
>>> generally
>>> two
>>> pieces
>>> to
>>> any
>>> disk
>>> device
>>> driver:
>>> the
>>> core
>>> driver
>>> and
>>> the
>>> “INIT”
>>> portion.
>>> You
>>> don’t
>>> **have**
>>> 1. Glenn
>>>
>>> *From:*
>>> se...@googlegroups.com
>>> <se...@googlegroups.com>
>>> *On
>>> Behalf
>>> Of
>>> *smb...@gmail.com
>>> *Sent:*
>>> Monday,
>>> April
>>> 17,
>>> 2023
>>> 9:58
>>> PM
>>> *To:*
>>> SEBHC
>>> <se...@googlegroups.com>
>>> *Subject:*
>>> <https://groups.google.com/d/msgid/sebhc/b0597887-ee8b-44be-983d-5c738b006e9an%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/d9d25f31-a807-4096-8d73-f26b3911e241n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/d9d25f31-a807-4096-8d73-f26b3911e241n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/14a677bd-3de2-442f-b782-c52c046847ebn%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/14a677bd-3de2-442f-b782-c52c046847ebn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/00e701d9782a%2486ddc260%2494994720%24%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/00e701d9782a%2486ddc260%2494994720%24%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/7524f4a3-6f03-9b05-21c5-7c924f1d7251%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/7524f4a3-6f03-9b05-21c5-7c924f1d7251%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/1146bf92-6089-49ff-8b55-4267549624aen%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/1146bf92-6089-49ff-8b55-4267549624aen%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/a5ca207c-68fe-2d2f-e953-08a8a290ff3f%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/a5ca207c-68fe-2d2f-e953-08a8a290ff3f%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/CA%2B8qVMNdjTHnf1kF1Q9Swr3VCQ5-PT2uUzaJ%2BaiPrL4LrqrTqg%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/CA%2B8qVMNdjTHnf1kF1Q9Swr3VCQ5-PT2uUzaJ%2BaiPrL4LrqrTqg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/9312c2bf-ee49-4f91-9313-9d6277b6b4f4n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/9312c2bf-ee49-4f91-9313-9d6277b6b4f4n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/25b42be9-3e47-87ca-2a95-c45acba8a1a5%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/25b42be9-3e47-87ca-2a95-c45acba8a1a5%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/E22F0D87-126F-40C2-8A70-3790C765E76E%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/E22F0D87-126F-40C2-8A70-3790C765E76E%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/528bb1b7-7296-42e7-4336-50906f68dded%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/528bb1b7-7296-42e7-4336-50906f68dded%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/037b01d979d7%2446237a40%24d26a6ec0%24%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/037b01d979d7%2446237a40%24d26a6ec0%24%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/1a43b329-4390-4442-81b2-2d9660b86209n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/1a43b329-4390-4442-81b2-2d9660b86209n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/f65556be-cf72-475d-b227-f7ee4c1a895en%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/f65556be-cf72-475d-b227-f7ee4c1a895en%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/05ff01d97a84%245f716900%241e543b00%24%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/05ff01d97a84%245f716900%241e543b00%24%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/e4e47928-da16-4121-b1dd-4dd9ae6fae77n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/e4e47928-da16-4121-b1dd-4dd9ae6fae77n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/C2C70BA8-F0DD-43EE-AED6-0E2D2977604F%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/C2C70BA8-F0DD-43EE-AED6-0E2D2977604F%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/09e60d81-c50d-496a-bdf1-36a7be3a9a08n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/09e60d81-c50d-496a-bdf1-36a7be3a9a08n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/BN7PR01MB38447A7EFF14466203D4BC28F76E9%40BN7PR01MB3844.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/BN7PR01MB38447A7EFF14466203D4BC28F76E9%40BN7PR01MB3844.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/003901d97bc3%24deb1e560%249c15b020%24%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/003901d97bc3%24deb1e560%249c15b020%24%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/CAGQDgBCCtw7U9TLiv73JeU5HzjDCr0HL0JNwPpJQNxcKGfx-aQ%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/CAGQDgBCCtw7U9TLiv73JeU5HzjDCr0HL0JNwPpJQNxcKGfx-aQ%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/000201d97bce%246a961380%243fc23a80%24%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/000201d97bce%246a961380%243fc23a80%24%40gmail.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/384a4ad7-43cf-414d-9dbe-ae3a25b9f32an%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/384a4ad7-43cf-414d-9dbe-ae3a25b9f32an%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/SN6PR01MB38550602EE8CAD31BDC8024DF76E9%40SN6PR01MB3855.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/SN6PR01MB38550602EE8CAD31BDC8024DF76E9%40SN6PR01MB3855.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/02d5cc52-ff17-4164-9b2d-22bac11f9852n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/02d5cc52-ff17-4164-9b2d-22bac11f9852n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/847b5c60-d38f-4579-b0a1-4e2ee483f745n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/847b5c60-d38f-4579-b0a1-4e2ee483f745n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>> https://groups.google.com/d/msgid/sebhc/SN6PR01MB38553D98F428296736AEAF2EF76F9%40SN6PR01MB3855.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/SN6PR01MB38553D98F428296736AEAF2EF76F9%40SN6PR01MB3855.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received
>>> this message
>>> because you
>>> are
>>> subscribed
>>> to the
>>> Google
>>> Groups
>>> "SEBHC" group.
>>> To
>>> unsubscribe
>>> from this
>>> group and
>>> stop
>>> receiving
>>> emails from
>>> it, send an
>>> email to
>>> sebhc+un...@googlegroups.com.
>>> To view this
>>> discussion
>>> on the web
>>> visit
>>> https://groups.google.com/d/msgid/sebhc/94a1e278-fa7a-4bda-af48-0ee58e326ac2n%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/94a1e278-fa7a-4bda-af48-0ee58e326ac2n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received
>>> this message
>>> because you
>>> are
>>> subscribed
>>> to the
>>> Google
>>> Groups
>>> "SEBHC" group.
>>> To
>>> unsubscribe
>>> from this
>>> group and
>>> stop
>>> receiving
>>> emails from
>>> it, send an
>>> email to
>>> sebhc+un...@googlegroups.com.
>>>
>>> To view this
>>> discussion
>>> on the web
>>> visit
>>> https://groups.google.com/d/msgid/sebhc/SN6PR01MB385538FEB9370926D0328F0BF76F9%40SN6PR01MB3855.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/SN6PR01MB385538FEB9370926D0328F0BF76F9%40SN6PR01MB3855.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>> <https://groups.google.com/d/msgid/sebhc/CABvWWgavpW6t6EV1tD4c6WLj-wFweg_9Y2%2B7QrOwco%2BckskG7Q%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message
>>> because you are subscribed to
>>> the Google Groups "SEBHC" group.
>>> To unsubscribe from this group
>>> and stop receiving emails from
>>> it, send an email to
>>> sebhc+un...@googlegroups.com.
>>> To view this discussion on the
>>> web visit
>>> https://groups.google.com/d/msgid/sebhc/CC461742-8D7C-4884-B408-8974D74C3704%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/CC461742-8D7C-4884-B408-8974D74C3704%40gmail.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message
>>> because you are subscribed to
>>> the Google Groups "SEBHC" group.
>>> To unsubscribe from this group
>>> and stop receiving emails from
>>> it, send an email to
>>> sebhc+un...@googlegroups.com.
>>> To view this discussion on the
>>> web visit
>>> https://groups.google.com/d/msgid/sebhc/SN6PR01MB385553995161116F50E7AEA0F76F9%40SN6PR01MB3855.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/SN6PR01MB385553995161116F50E7AEA0F76F9%40SN6PR01MB3855.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because
>>> you are subscribed to the Google
>>> Groups "SEBHC" group.
>>> To unsubscribe from this group and
>>> stop receiving emails from it, send
>>> an email to
>>> sebhc+un...@googlegroups.com.
>>> To view this discussion on the web
>>> visit
>>> https://groups.google.com/d/msgid/sebhc/305F5307-C5A2-4FDE-8D49-BF750C8853C0%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/305F5307-C5A2-4FDE-8D49-BF750C8853C0%40gmail.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you
>>> are subscribed to the Google Groups
>>> "SEBHC" group.
>>> To unsubscribe from this group and stop
>>> receiving emails from it, send an email
>>> to sebhc+un...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/CA%2B8qVMO_pKN5XqWYmr6%3DozGtWshHOY2YduZx3Nwz5FEB2Xb2Pg%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/CA%2B8qVMO_pKN5XqWYmr6%3DozGtWshHOY2YduZx3Nwz5FEB2Xb2Pg%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you
>>> are subscribed to the Google Groups
>>> "SEBHC" group.
>>> To unsubscribe from this group and stop
>>> receiving emails from it, send an email
>>> to sebhc+un...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/SN6PR01MB385543C72E94E02305E06402F76C9%40SN6PR01MB3855.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/SN6PR01MB385543C72E94E02305E06402F76C9%40SN6PR01MB3855.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you are
>>> subscribed to the Google Groups "SEBHC" group.
>>> To unsubscribe from this group and stop
>>> receiving emails from it, send an email to
>>> sebhc+un...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/CA%2B8qVMOF7ibm4iK2KeV%3DYHhi%3DQ3tpONfPKeZOjxDB5rVoef%2Bgw%40mail.gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/CA%2B8qVMOF7ibm4iK2KeV%3DYHhi%3DQ3tpONfPKeZOjxDB5rVoef%2Bgw%40mail.gmail.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you are
>>> subscribed to the Google Groups "SEBHC" group.
>>> To unsubscribe from this group and stop
>>> receiving emails from it, send an email to
>>> sebhc+un...@googlegroups.com.
>>>
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/SN6PR01MB38555F36DC796AD6D9080482F76C9%40SN6PR01MB3855.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/SN6PR01MB38555F36DC796AD6D9080482F76C9%40SN6PR01MB3855.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you are
>>> subscribed to the Google Groups "SEBHC" group.
>>> To unsubscribe from this group and stop
>>> receiving emails from it, send an email to
>>> sebhc+un...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/c95aa5b6-a035-44bc-bb98-c5930f961cebn%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/c95aa5b6-a035-44bc-bb98-c5930f961cebn%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you are
>>> subscribed to the Google Groups "SEBHC" group.
>>> To unsubscribe from this group and stop
>>> receiving emails from it, send an email to
>>> sebhc+un...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/SN6PR01MB385533E0B7363824B37A3E79F76C9%40SN6PR01MB3855.prod.exchangelabs.com
>>> <https://groups.google.com/d/msgid/sebhc/SN6PR01MB385533E0B7363824B37A3E79F76C9%40SN6PR01MB3855.prod.exchangelabs.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you are subscribed
>>> to the Google Groups "SEBHC" group.
>>> To unsubscribe from this group and stop receiving
>>> emails from it, send an email to
>>> sebhc+un...@googlegroups.com.
>>>
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/3122a284-7b63-f442-acdd-b6f2fe90b4f1%40gmail.com
>>> <https://groups.google.com/d/msgid/sebhc/3122a284-7b63-f442-acdd-b6f2fe90b4f1%40gmail.com?utm_medium=email&utm_source=footer>.
>>>
>>> --
>>> You received this message because you are subscribed to
>>> the Google Groups "SEBHC" group.
>>> To unsubscribe from this group and stop receiving emails
>>> from it, send an email to sebhc+un...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/sebhc/d1bdd742-60da-4ebf-b246-d8e80c3e46fan%40googlegroups.com
>>> <https://groups.google.com/d/msgid/sebhc/d1bdd742-60da-4ebf-b246-d8e80c3e46fan%40googlegroups.com?utm_medium=email&utm_source=footer>.
>>
>> --
>> You received this message because you are subscribed to the
>> Google Groups "SEBHC" group.
>> To unsubscribe from this group and stop receiving emails from
>> it, send an email to sebhc+un...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/sebhc/5f66e760-853d-4f59-a9f5-a630d98330a5n%40googlegroups.com
>> <https://groups.google.com/d/msgid/sebhc/5f66e760-853d-4f59-a9f5-a630d98330a5n%40googlegroups.com?utm_medium=email&utm_source=footer>.
>
> --
> You received this message because you are subscribed to the Google
> Groups "SEBHC" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to sebhc+un...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sebhc/34221128-1517-480e-ba5d-861fdb288c93n%40googlegroups.com
> <https://groups.google.com/d/msgid/sebhc/34221128-1517-480e-ba5d-861fdb288c93n%40googlegroups.com?utm_medium=email&utm_source=footer>.

smb...@gmail.com

unread,
May 7, 2023, 4:34:57 PM5/7/23
to SEBHC
I don't have strong feeling either for `M` versus `R` and I'd be happy to change it to M if folks feel that is the way to go. I just tried to pick an unused letter. :)

I might not revise again until next week, and I could probably at some point use some testing from Norberto or someone else who has a 512K board handy. So far I've only tested bootability using the 8meg board with HDOS3.

Scott

Douglas Miller

unread,
May 7, 2023, 4:39:50 PM5/7/23
to se...@googlegroups.com

Sure, and submit it so I can add to the github repo. At some point, we'd want this to work for Heath CP/M, too. I don't think we need to try and make a CP/M 3 boot option, for several reasons.

norberto.collado koyado.com

unread,
May 7, 2023, 4:57:18 PM5/7/23
to se...@googlegroups.com

Sure, just send me the files with high level instructions to test it out on the Z80/512KB with V2.1 FW. What changes are needed to run on the Z180 that has 1MB of RAM?

 

Norby

 

From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of smb...@gmail.com
Sent: Sunday, May 7, 2023 1:35 PM
To: SEBHC <se...@googlegroups.com>

Douglas Miller

unread,
May 7, 2023, 5:05:00 PM5/7/23
to se...@googlegroups.com

The Z180 will require a different boot method, which we can work on once this version is stable.

smb...@gmail.com

unread,
May 8, 2023, 8:42:34 PM5/8/23
to SEBHC
Douglas, PR sent your way with a couple of questions. It still bound to the 'R' key (which pairs nicely with 'rD' on the display). Of course, feel free to make any modifications.

Norberto, will try to send out some notes tonight.

Scott

smb...@gmail.com

unread,
May 8, 2023, 9:32:39 PM5/8/23
to SEBHC
Norberto:

1) Download and run https://github.com/sbelectronics/h8/raw/master/h8-8meg/ramdisk/rddiag.abs. Strictly speaking, you don't need to do this, but I'd like to know what it reports your drive as. Eventually I will use this code to autodetect the presence and type of board.

2) Download and install the latest RD driver: https://github.com/sbelectronics/h8/raw/master/h8-8meg/ramdisk/rd.dvd

3) INIT and SYSGEN on RD0:

4) Download and burn the ROM for the Z80 board: https://github.com/sbelectronics/h8/raw/master/h8-8meg/ramdisk/rom/h8mon2.rom (this is Douglas's current build plus my new boot module)

5) Reboot and either `0-8-0` from the front panel or `B-R-0` from the serial monitor.

Scott

norberto.collado koyado.com

unread,
May 8, 2023, 11:54:09 PM5/8/23
to se...@googlegroups.com

Here is the output of the rddiag file. Tested the new rd.dvd and so far so good. Next step is to download the new monitor.

 

 

Norberto

norberto.collado koyado.com

unread,
May 9, 2023, 1:00:09 AM5/9/23
to se...@googlegroups.com

This is so cool! I was able to boot from it. Then, Powered down the H8 system, removed the 512KB board, put it back after 10 minutes, and it booted from RAM without any issues.

 

From the serial monitor selected 8MHz and it booted into HDOS within a second. Now my Z67-IDE+ feels slow when compared with the RAM board and the CF controller.

 

I’m impressed Scott and thank you for doing this. You just recreated Trionyx Mass Storage Controller and much better. Back then in the mid 80’s I had my 256KB memory board doing the same with Trionyx drivers (http://koyado.com/Heathkit/256K_Memory_Board_Bank_SW.html) which I still have.

 

On the 8MB board, can we get the capability to boot from drive 1 as well? Eventually we need to boot from Heath CP/M using the same procedure that Rick/Joe’ developed on the CF controller.

 

I did test booting from the front panel and no issues.

 

 

 

Thanks,

Norberto

smb...@gmail.com

unread,
May 9, 2023, 2:53:19 AM5/9/23
to SEBHC
Great! I'm glad to see it working.

Yes, the 8MB board will boot off of any of the Ramdisks.

Scott

Douglas Miller

unread,
May 9, 2023, 7:42:29 AM5/9/23
to se...@googlegroups.com

Can we establish some sort of "signature" so we can tell whether the ramdisk has been sysgened? Either some "magic cookie" in the first 256 bytes, or else a convention for checksumming that area. This will require changes to the way the ramdisk is made bootable (whatever program "sysgen"s it). I think this is important because it is far too easy to wipe out the boot pages, for example by booting CP/M 3 or running a memory test.

One issue with booting other ramdisk drives ("partitions") is the same as with harddisks - there's no way to tell where the subsequent ramdisks start. This could also be part of signing the bootstrap sector, too, by placing some sort of partition information in that sector (i.e. a Master Boot Record). since the H8-512K will never have more than one ramdisk, it may make sense to keep whatever we do here simple so that it doesn't take up any more space than absolutely necessary.

For CP/M we have the same problem as with harddisks: If the partitioning can be customized then the DPB (filesystem configuration) also needs to customized and probably stored on the ramdisk somewhere. MMS put that information in the "MBR", I'm not sure what Heath or QuikStor did.

An alternative here is to be less "flexible" about how the ramdisk is used. I don't know what is being done right now to create multiple ramdisk drives, so can't comment on how flexible it is and whether it needs to be that way. If one wanted to create RD1:, how does that happen and who chooses what size RD0: and RD1: are? (etc for RD2: and so forth).

Douglas Miller

unread,
May 9, 2023, 8:29:31 AM5/9/23
to se...@googlegroups.com

As I ponder this, I'm thinking we should handle this the same as harddisks. The ROM only reads the bootstrap off the first physical sectors of the media, and whatever it reads is responsible for any partitioning the user may have setup. If the ramdisk is partitioned into multiple drives, then a different bootstrap is used than for the simple case of the entire ramdisk being one drive. This means that the boot command "unit" will always be "0", but an optional partition may be specified to select which ramdisk drive (partition) to boot - and the "primary" bootstrap is responsible for interpreting that and continuing the boot using the selected partition. This is how harddisks are booted (although not all partitioning bootstraps honor the partition number specified in the boot command, instead requiring the user to select the partition from a menu).

It is loading more messages.
0 new messages