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.

On 5/7/23 14:18, smb...@gmail.com wrote:
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: 


On Sunday, 7 May 2023 at 08:54:36 UTC-7 smb...@gmail.com wrote:
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

On Sunday, 7 May 2023 at 01:59:08 UTC-7 Glenn Roberts wrote:
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.

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

On Wednesday, 3 May 2023 at 08:48:13 UTC-7 Glenn Roberts wrote:
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:.

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

On Wednesday, 3 May 2023 at 06:51:28 UTC-7 Norby wrote:

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.

 

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

 

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.

 

On 5/3/23 01:49, norberto.collado 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
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 Resources

 

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

 

On Tue, May 2, 2023 at 6:25 PM norberto.collado koyado.com <norberto...@koyado.com> wrote:

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
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 <norberto...@koyado.com> wrote:



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>
Subject: Re: [sebhc] HDOS Device Driver Resources

 

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:



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

 

 

On Tue, May 2, 2023 at 2:09 AM norberto.collado 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
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] HDOS Device Driver Resources

 

I've not tried your images before -- I'll try them on the weekend, if not sooner.

 

Scott

On Monday, 1 May 2023 at 22:24:42 UTC-7 smb...@gmail.com wrote:

Hmm, interesting that we're overflowing the device table. I thought it was a dynamic size, but maybe there is a limit?

 

Scott

On Monday, 1 May 2023 at 22:17:58 UTC-7 Norby wrote:

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.

 

 

 

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: [sebhc] HDOS Device Driver Resources

 

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:

On Monday, 1 May 2023 at 21:12:12 UTC-7 Norby wrote:

At least mount tries to run…

 

 

From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of norberto.collado 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: Re: [sebhc] HDOS Device Driver Resources

 

Same issue and same error message by just typing "INIT".

On Monday, May 1, 2023 at 8:31:46 PM UTC-7 Joe Travis N6YPC wrote:

Try running INIT without any arguments and follow the prompts until it asks what drive to initialize <SY0:>, then enter RD0:

 

 

On Mon, May 1, 2023 at 11:17 PM norberto.collado koyado.com <norberto...@koyado.com> wrote:

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 smb...@gmail.com
Sent: Monday, May 1, 2023 7:36 PM
To: SEBHC <se...@googlegroups.com>
Subject: Re: [sebhc] HDOS Device Driver Resources

 

Spent a little bit of time improving the documentation and adding code comments.

 

Scott

On Monday, 1 May 2023 at 18:53:57 UTC-7 smb...@gmail.com wrote:

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

On Monday, 1 May 2023 at 16:56:43 UTC-7 Norby wrote:

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


To: SEBHC <
se...@googlegroups.com>
Subject: Re: [sebhc] HDOS Device Driver Resources

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

On Monday, 1 May 2023 at 02:46:55 UTC-7 Glenn Roberts wrote:

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.

 

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: [sebhc] HDOS Device Driver Resources

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

On Sunday, 30 April 2023 at 19:01:48 UTC-7 Norby wrote:

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

 

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: RE: [sebhc] HDOS Device Driver Resources

 

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…

 

  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: Re: [sebhc] HDOS Device Driver Resources

 

Has it been determined whether or not we can use the V2DIP1-32 in place of the VDIP1? 

 

Thanks,

Joe

 

 

On Sun, Apr 30, 2023 at 8:28 PM <glenn.f...@gmail.com> wrote:

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…

 

  1. Glenn

 

 

From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of norberto.collado koyado.com
Sent: Sunday, April 30, 2023 8:19 PM
To: se...@googlegroups.com
Subject: Re: [sebhc] HDOS Device Driver Resources

 

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.

 

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: [sebhc] HDOS Device Driver Resources

Details tonight! I have some more soldering to do first. :)

 

Scott

On Sunday, 30 April 2023 at 12:53:01 UTC-7 Norby wrote:

What kind of device is RD0:?

 

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: Re: [sebhc] HDOS Device Driver Resources

 

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:

 

VOLUME 00027, MOUNTED ON RD0:
LABEL: SCOTTWASHERE

Scott

On Saturday, 29 April 2023 at 16:13:00 UTC-7 smb...@gmail.com wrote:

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

 

On Sat, Apr 29, 2023 at 3:21 AM <glenn.f...@gmail.com> wrote:

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.

 

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: Re: [sebhc] HDOS Device Driver Resources

 

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

On Friday, 28 April 2023 at 13:20:12 UTC-7 Glenn Roberts wrote:

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

 

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: Re: [sebhc] HDOS Device Driver Resources

 

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

On Friday, 28 April 2023 at 08:10:06 UTC-7 Dan Emrick wrote:

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

On Friday, April 28, 2023 at 10:14:34 AM UTC-4 Douglas Miller wrote:

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.

On 4/28/23 08:42, glenn.f...@gmail.com wrote:

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.

 

  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: Re: [sebhc] HDOS Device Driver Resources

 

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)?

 

On 4/28/23 04:35, Glenn Roberts wrote:

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:



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.

 

On 4/27/23 22:59, smb...@gmail.com wrote:

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

On Thursday, 27 April 2023 at 20:18:17 UTC-7 smb...@gmail.com wrote:

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

On Thursday, 27 April 2023 at 19:43:51 UTC-7 Douglas Miller wrote:

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).

On 4/27/23 21:11, Scott Baker wrote:

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

 

On Thu, Apr 27, 2023 at 6:32 PM Douglas Miller <durga...@gmail.com> wrote:

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.

 

On 4/27/23 20:25, smb...@gmail.com wrote:

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

On Wednesday, 26 April 2023 at 20:16:32 UTC-7 smb...@gmail.com wrote:

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

On Wednesday, 26 April 2023 at 04:40:29 UTC-7 Glenn Roberts wrote:

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:



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.

 

On 4/26/23 05:33, glenn.f...@gmail.com wrote:

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!

 

  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: Re: [sebhc] HDOS Device Driver Resources

 

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

On Tuesday, 18 April 2023 at 08:18:51 UTC-7 Glenn Roberts wrote:

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.

 

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: Re: [sebhc] HDOS Device Driver Resources

 

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

On Tuesday, 18 April 2023 at 04:04:16 UTC-7 Glenn Roberts wrote:

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…

 

  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: [sebhc] HDOS Device Driver Resources

 

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

--
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.

--
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.

--
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/14a677bd-3de2-442f-b782-c52c046847ebn%40googlegroups.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/00e701d9782a%2486ddc260%2494994720%24%40gmail.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.

--
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/1146bf92-6089-49ff-8b55-4267549624aen%40googlegroups.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/a5ca207c-68fe-2d2f-e953-08a8a290ff3f%40gmail.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.

--
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/9312c2bf-ee49-4f91-9313-9d6277b6b4f4n%40googlegroups.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/25b42be9-3e47-87ca-2a95-c45acba8a1a5%40gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/E22F0D87-126F-40C2-8A70-3790C765E76E%40gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/528bb1b7-7296-42e7-4336-50906f68dded%40gmail.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.

--
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.

--
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/f65556be-cf72-475d-b227-f7ee4c1a895en%40googlegroups.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.

--
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/e4e47928-da16-4121-b1dd-4dd9ae6fae77n%40googlegroups.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.

--
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/09e60d81-c50d-496a-bdf1-36a7be3a9a08n%40googlegroups.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/BN7PR01MB38447A7EFF14466203D4BC28F76E9%40BN7PR01MB3844.prod.exchangelabs.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/003901d97bc3%24deb1e560%249c15b020%24%40gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CAGQDgBCCtw7U9TLiv73JeU5HzjDCr0HL0JNwPpJQNxcKGfx-aQ%40mail.gmail.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.

--
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/384a4ad7-43cf-414d-9dbe-ae3a25b9f32an%40googlegroups.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.

--
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.

--
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/847b5c60-d38f-4579-b0a1-4e2ee483f745n%40googlegroups.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.

--
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.

--
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.

--
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

--
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/CABvWWgavpW6t6EV1tD4c6WLj-wFweg_9Y2%2B7QrOwco%2BckskG7Q%40mail.gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CC461742-8D7C-4884-B408-8974D74C3704%40gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/SN6PR01MB385553995161116F50E7AEA0F76F9%40SN6PR01MB3855.prod.exchangelabs.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/305F5307-C5A2-4FDE-8D49-BF750C8853C0%40gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CA%2B8qVMO_pKN5XqWYmr6%3DozGtWshHOY2YduZx3Nwz5FEB2Xb2Pg%40mail.gmail.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/SN6PR01MB385543C72E94E02305E06402F76C9%40SN6PR01MB3855.prod.exchangelabs.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.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CA%2B8qVMOF7ibm4iK2KeV%3DYHhi%3DQ3tpONfPKeZOjxDB5rVoef%2Bgw%40mail.gmail.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.

--
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.

--
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.

--
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.

--
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.
--
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.
--
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+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/34221128-1517-480e-ba5d-861fdb288c93n%40googlegroups.com.