HDOS driver info

110 views
Skip to first unread message

Richard Davis Jr.

unread,
Jan 11, 2022, 10:31:22 AM1/11/22
to SEBHC
All,

I am creating, via wire wrap, a board that has both the HA8-3 graphics card as well as an IDE interface.
The graphics side is using the RC2014 TMS9918 board. It passes the diags test and the Kaleidoscope program works. I will be adding the sound and A/Ds in the future.

I based the IDE interface off of Norby's IDE interface on the Z67 board. I connected the 8255 to the H8 bus.
The interface is working. I wrote some test code in 'C' and am able to read drive info via the IDE drive ident command. Data returned looks valid.

I will be converting the code to assembly for driver use.

My question is, where is any documentation on creating HDOS device drivers.
I would like to be able to mount the IDE drive. Booting from it would be nice but not sure that's possible.

Rick

graphics_ide.jpg

Dan Emrick

unread,
Jan 11, 2022, 12:52:47 PM1/11/22
to SEBHC
Hi, Rick,

I have a copy of a REMark article on just this issue.  I'll dig around for it.  I think it was REMark #20, but I'm not sure.

I'd be happy to assist in any way I can.  Can even gin up a skeleton of an HDOS device driver for you to modify.

Will advise on locating the article.

Dan

norberto.collado koyado.com

unread,
Jan 11, 2022, 1:16:48 PM1/11/22
to SEBHC
Thank you, Dan!

We have the following controllers that needs HDOS boot support:

  • H8- Dual SD card controller
  • H8 Dual GIDE Compact Flash controller
Controllers with bootable HDOS support;
  • H8 - H17 by Heath
  • H8 - H37 by Heath
  • H8 - H67 by Heath
  • H89-SBC 4MB SSD by Dan.
Thanks,
Norberto


From: se...@googlegroups.com <se...@googlegroups.com> on behalf of Dan Emrick <dsem...@gmail.com>
Sent: Tuesday, January 11, 2022 9:52 AM
To: SEBHC <se...@googlegroups.com>
Subject: [sebhc] Re: HDOS driver info
 
--
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/5cf14afe-5392-4b82-ac09-a40badb8bacfn%40googlegroups.com.

Richard Davis Jr.

unread,
Jan 11, 2022, 1:19:21 PM1/11/22
to SEBHC
Dan,

Thanks. I will look on the sebhc site also. There are some REMarks there.

Rick

norberto.collado koyado.com

unread,
Jan 11, 2022, 1:23:11 PM1/11/22
to SEBHC
Please check the bottom of this link: http://koyado.com/Heathkit/H89-SBC_4MB_SSD.html

There are some files there for HDOS boot support



H89-SBC 4MB SSD User Guide By Dan. H89_SBC_SSD_V0_2.zip. Test FW by Stanley Webb (H89...@comcast.net)
Norby


From: se...@googlegroups.com <se...@googlegroups.com> on behalf of Richard Davis Jr. <rickdav...@gmail.com>
Sent: Tuesday, January 11, 2022 10:19 AM

To: SEBHC <se...@googlegroups.com>
Subject: [sebhc] Re: HDOS driver info
--
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.

Richard Davis Jr.

unread,
Jan 11, 2022, 1:37:02 PM1/11/22
to SEBHC
Dan,

Found REMark issue #20. Has HDOS driver programmers guide.
The SEBHC.org site under documentation has a link to a site that has scans.

Rick


On Tuesday, January 11, 2022 at 12:52:47 PM UTC-5 Dan Emrick wrote:

Richard Davis Jr.

unread,
Jan 11, 2022, 1:38:18 PM1/11/22
to SEBHC
Norby,

Thanks

Rick

glenn.f...@gmail.com

unread,
Jan 11, 2022, 5:14:59 PM1/11/22
to se...@googlegroups.com

Rick: there is a fair amount of HDOS device driver experience in the group.

 

I did the original reverse engineering of PREP, PART and the H67 device driver.  The driver and PREP are attached.

 

The H67 uses the MRX101D disk controller; spec is here:

 

http://koyado.com/Heathkit/Z67-IDE_files/MRX101D.controller.pdf

 

so the device driver just translates HDOS I/O calls into the appropriate interface to the MRX101D…  I’ve also written a “C” encapsulation of this API and a number of utilities that use that.

 

happy to answer any questions or help if I can…

 

  • Glenn

 

 

From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of Richard Davis Jr.
Sent: Tuesday, January 11, 2022 1:37 PM
To: SEBHC <se...@googlegroups.com>
Subject: [sebhc] Re: HDOS driver info

 

Dan,

--

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.

PREP67.asm
hd67.asm
hd67init.asm

Dan Emrick

unread,
Jan 11, 2022, 7:34:37 PM1/11/22
to SEBHC
Glenn's post points out something that I had overlooked. Device drivers for storage media usually have an included or associated program with the smarts  to initialize a new or completely blank storage device.  So far my drivers have not had this code.

The drivers I've written have been for "creative" storage media such as Norberto's 4 MB SSD for the H89-SBC or for the FT245 link to disk images on a PC via USB.  In the case of the 4 MB SSD, a separate program "initializes" the card.  In the case of the FT245 link, the images accessed have been built by numerous other means.  I never wrote an Init function to use the H8/H89 to create a new image on the PC, thus none of my drivers so far have the init code, such as Glenn's hd67init.asm.

Years ago I wrote code to transfer files between two H89 computers using an 8255 on each machine.  It would be interesting to put 8255 code into a device driver.

Dan

norberto.collado koyado.com

unread,
Jan 11, 2022, 9:30:35 PM1/11/22
to se...@googlegroups.com
Rick, 

This is the new H8 HA8-3 graphics card that we have in the queue. It was prototype by Terry S. to get a working board. It looks intimidating but it works fine.

I will like to suggest to focus in getting your IDE working with HDOS.



From: se...@googlegroups.com <se...@googlegroups.com> on behalf of Richard Davis Jr. <rickdav...@gmail.com>
Sent: Tuesday, January 11, 2022 7:31 AM
To: SEBHC <se...@googlegroups.com>
Subject: [sebhc] HDOS driver info
 
--
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.

Richard Davis Jr.

unread,
Jan 19, 2022, 6:54:14 PM1/19/22
to SEBHC
Glenn,

Thanks for the info.
Looking at the driver code, how does UNITBL get populated?
Is it in one of the XTEXT files?

Regards,
Rick


On Tuesday, January 11, 2022 at 5:14:59 PM UTC-5 Glenn wrote:

Richard Davis Jr.

unread,
Jan 21, 2022, 6:51:27 PM1/21/22
to SEBHC
All,

Can some one send me or point me to where I can get the following acm files

comp.acm
bcrc.acm

Could there be others?
I found the rest that were included.

They are used by the prep utility.

Thanks,
Rick


On Tuesday, January 11, 2022 at 5:14:59 PM UTC-5 Glenn wrote:

Glenn Roberts

unread,
Jan 27, 2022, 9:46:55 PM1/27/22
to se...@googlegroups.com

Catching up on your work here Rick as I dig stuff out of the Spam folder…

 

Is the unpopulated 40-pin socket on your proto board for the DS89C430-MNL+ microcontroller to run Norberto’s Z67-IDE+ code?.  presumably you had to do some mods to talk to the 8255?

 

 

  • Glenn

 

From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of Richard Davis Jr.
Sent: Tuesday, January 11, 2022 10:31 AM
To: SEBHC <se...@googlegroups.com>

--

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.

Richard Davis Jr.

unread,
Jan 28, 2022, 11:38:40 AM1/28/22
to SEBHC
Glenn,

The empty 40 pin socket is for the AY sound chip that is on the HA8-3 board. Once I get the IDE going, I am going to wire that in. Once that works, I will be adding the A/D mux and A/D converter.
I do have decode logic for the 8255. It is connected directly to the H8 bus through the 74244 data bus drivers.
I am using an ATMEL FLASH chip I had laying around as my IO chip select decoder as well as controlling the direction of the 74244 data bus drivers.

Rick

Glenn Roberts

unread,
Jan 28, 2022, 1:13:49 PM1/28/22
to se...@googlegroups.com

Tx Rick.  I’m trying to understand where the controller logic resides. The Z67 uses a Data Technology Corporation MRX101D controller board which talks to the interface board in the H8/89.  The command protocol is specified here

 

http://koyado.com/Heathkit/Z67-IDE_files/MRX101D.controller.pdf

 

the “Commands” section of the document outlines the command protocol implemented in the H67 HDOS device driver we’ve been discussing (e.g. see the OUTCOM routine in the driver).  I believe that in Norberto’s implementation of the Z67-IDE he has reverse engineered the MRX101D and implemented it in a DS89C430-MNL+ microcontroller, which talks to the IDE side.

 

Where in your approach are the “smarts” to translate the MRX101D commands to IDE?  Or is the raw IDE interface the same as (or a superset of) the MRX101D command structure?

Richard Davis Jr.

unread,
Jan 28, 2022, 1:36:18 PM1/28/22
to SEBHC
Glenn,

I am removing all of the controller specific code and replacing it with calls to my IDE command set. Right now I have IDENT, sector read and sector write.. I kept the command block as is and just use that and create an LBA address for the IDE interface. I take the requested sector, add 1 to it since LBA starts at 1 and use the sector number as LBA low and LBA middle bytes. Right now I force the LBA upper byte to 0. In the future I am thinking of making the LBA upper byte the unit number being used. i.e.xx0: xx1: xx2:
I am also only going to use the lower 256 bytes of each 512 byte sector. A waste of space but simplifies the code for now.

I'm sure it will be slower than the Z67 but it will run on a basic 8080 system. I don't have a Z80 board. I have the original 8080.

I did have to use the double sided sy driver in the HUG software. 100K disks just don't get it for doing this. I had previously wire wrapped the extended config board and 64K static RAM and upgraded the ROM to XCON8. I made the double sided mod to the H17 to allow double sided floppies. I was initially afraid to do it but, it ended very easy to do. Only downside was regenerating the disks for the double sided operation. I already had DS drives since the original SS drive smoked. EBAY had some new old stock TM100-2 drives that work great.

I am hoping to get the IDE working so I have much more disk space.

Thanks for your interest in this,
Rick

Glenn Roberts

unread,
Jan 28, 2022, 2:02:51 PM1/28/22
to se...@googlegroups.com

Wow. very nice.  Heath required a Z80 for the Z67 but I found very little Z80-specific code in the driver. I’m sure you’ve found it and replaced (if not, search for “MI.” for my Machine Instruction definitions).

 

Good luck!

Richard Davis Jr.

unread,
Jan 28, 2022, 2:14:44 PM1/28/22
to SEBHC
Glenn,

Yup, found 'em. Simple to get around them. They used very little of it.
I have done this before. When I got an H8 back around 77/78 I bought the Sargon II Chess book which had the source code.
I converted it to 8080 and hand assembled all of it on paper. Modified it to use the H8 fron-t pane instead of the fancy graphics they had. It ran great. You could use levels 1 and 2 but, when you used level 3, it took 45 minutes to compute a move sometimes. I never tried above level 3.
My H8 was a basic H8 with RAM and the H8-5 serial/cassette interface.

Rick

glenn.f...@gmail.com

unread,
Jan 28, 2022, 8:12:16 PM1/28/22
to se...@googlegroups.com

Hand assembled!?  Wow! 

 

One of my favorite old computer books is David Levy’s “Computer Gamesmanship – Elements of Intelligent Game Design”.

 

https://www.amazon.com/Computer-Gamesmanship-David-N-Levy/dp/4871878058

 

It’s quite a classic.  Chess, Bridge, Backgammon, card games etc…  no code but lots of guidance on how to program games.

norberto...@koyado.com

unread,
Jan 28, 2022, 11:03:52 PM1/28/22
to se...@googlegroups.com

Hello Rick,

 

The IDE-CF board that you are trying to create, we already have an improved version called “H8-GIDE CF Storage Controller. Once you get your IDE-CF card board initializing from HDOS and to be able to copy files back and forth under HDOS, I will like to do the following:

 

  1. Send you one of my H8-GIDE-CF prototype board so that you can make it work with HDOS for Drive 0 and Drive 1.
    1. We have such board at this time booting from the H8 CP/M, thanks to Terry G. (CP/M) and Douglas (CP/M3). Either one can provide code to help you out to boot from such controller.

 

Attached is a picture of a working controller.

 

On the HA-8-3 board:

 

  1. A copy of the HA-8-3 board design is in progress with the joystick, using RC2014 TMS9918, AY sound, APU, wait states generator + other enhancements (schematics attached). Eventually you will be able to order one for your system from Todd.

 

So, my request to you is to focus and learned on how to get your IDE-CF wire-wrap controller working with HDOS, so that you can get easily the H8-GIDE CF controller doing the same thing. Then later add the option to boot from it. HDOS boot on new controllers is our weakest area that I will like to minimized, so that we have more boot options.

 

I think I night have an spare old H8-Z80 with 64KB on board that I can share with you to break the limitations on the 8080 board. I will check my stash this weekend.

 

Thanks for all your help,

 

Norberto

H8-IDE-CF Controller.jpg
HA-8-3.pdf

Richard Davis Jr.

unread,
Jan 29, 2022, 12:23:16 PM1/29/22
to SEBHC
Norby,

I am definitely focused on my IDE driver.
I would be willing to work with the H8-GIDE once I get this running.
Big learning curves for my with respect to HDOS drivers. I've done Windows, Linux, vxWorks so I am familiar with low level code. Just a little harder with fragmented documentation.
Having some issues with MAKMSD. Complains about not enough memory. May be a bogus error. I added some extra debug output to see what it is complaining about.

Rick

norberto...@koyado.com

unread,
Jan 29, 2022, 2:57:53 PM1/29/22
to se...@googlegroups.com

Thanks Rick! 😊

Reply all
Reply to author
Forward
0 new messages