Question for Douglas or maybe Norberto:
I tried using the “XH” function in the Rev. 4 board’s ROM. But have been unsuccessful. I believe my hardware is set up fine as I can boot my saved client from the H17 and transfer files. But when I try to execute the XH function I’m unable to get the client and server to communicate. The documentation for the ROM says the XH runs the H8D Utility bootstrap. So that’s not the full client I guess.
After doing XH on the H8 I run Les’ H89LDR program (v 2.2) and click on “create” and then “status”. It times out and says client is not running but then gives me the “SAVE” option. That causes H89LDR3.BIN to download, which is successful, but then I get “The operation has timed out” if I click on Client Status I get “the client is not running…” message.
I’m able to run the H8D utility just fine from my saved boot disk, which is very fast and easy. Just boot the disk (a few seconds) and then H8D Utility immediately reports “client is ready”.
But if I could figure out how to use XH I might demo it at VCF…
Tx for any help. Undoubtedly operator error 😊
I don't think I was able to test that function, as I think H8DUtility runs only on Windows? But I believe Norberto tested it out. But, we then started work on VH8DUTIL.SYS (http://sebhc.durgadas.com/mms89/h8mon2/vh8dutil.sys) which is run from a VDIP1 USB drive (H8D images also on USB drive). This method quickly became Norberto's favorite. Still room for improvement, but it avoids the whole serial port synchronization issues.
--
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/028301d7ad50%2430f7bcd0%2492e73670%24%40gmail.com.
I will give that a try. Yes being able to pull off of H8D images on the flash drive sounds quite nice… tx.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/0e1c73bc-a0ef-ec78-043c-bfe43c64aa8b%40gmail.com.
This ROM command actually runs in RAM, at the same address as the manually-entered code. In fact, the entire ROM runs in RAM shortly after RESET.
As I recall, there are parts of the H89LDR3 that are intended to over write part of the code that loads it. That is how it switches from the init of the serial to running the loader part. If it is running from ROM, it can't overwrite it. I'm assuming that XH is the part that initializes the serial port.The original code had a small piece of boot strap code that was hand entered to get the serial port initialized and then load the main client H89LDR3. The H89LDR3 is loaded from high to low in memory when it gets to the bootstrap code it overwrites the last instruction with a nop. This transfers the code to the H89LDR3 code that then realigns itself, incase there is an extra byte in the serial buffer that wasn't cleared by simple serial bootstrap.
I'm assuming that that is what is being talked aboThis option runsut.
Dwight--
From: se...@googlegroups.com <se...@googlegroups.com> on behalf of glenn.f...@gmail.com <glenn.f...@gmail.com>
Sent: Sunday, September 19, 2021 5:16 AM
To: se...@googlegroups.com <se...@googlegroups.com>
Subject: [sebhc] H8D Utility in ROM--Question for Douglas or maybe Norberto:
I tried using the “XH” function in the Rev. 4 board’s ROM. But have been unsuccessful. I believe my hardware is set up fine as I can boot my saved client from the H17 and transfer files. But when I try to execute the XH function I’m unable to get the client and server to communicate. The documentation for the ROM says the XH runs the H8D Utility bootstrap. So that’s not the full client I guess.
After doing XH on the H8 I run Les’ H89LDR program (v 2.2) and click on “create” and then “status”. It times out and says client is not running but then gives me the “SAVE” option. That causes H89LDR3.BIN to download, which is successful, but then I get “The operation has timed out” if I click on Client Status I get “the client is not running…” message.
I’m able to run the H8D utility just fine from my saved boot disk, which is very fast and easy. Just boot the disk (a few seconds) and then H8D Utility immediately reports “client is ready”.
But if I could figure out how to use XH I might demo it at VCF…
Tx for any help. Undoubtedly operator error 😊
- 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/028301d7ad50%2430f7bcd0%2492e73670%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/BYAPR01MB5319B05845F8393B2F3FFF06A3DF9%40BYAPR01MB5319.prod.exchangelabs.com.
RAM is still on (stays on after RESET), unless something else
turns it off. It may be that H8Dldr3 is manipulating port 362Q
erroneously. H17 initialization is performed as part of the
command.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/BYAPR01MB53193AC9F43732B270D59D65A3DF9%40BYAPR01MB5319.prod.exchangelabs.com.
It does appear to manipulate port 362Q to control single vs. double sided (below). Not sure if this could be the cause of what I was observing?
SETSID1: ; Set port 362Q bit 6 (40h)
IN 362Q
ORI 40H
OUT 362Q
RET
SETSID2: ; Unset port 362Q bit 6 (0BFh)
IN 362Q
ANI 0BFH
OUT 362Q
RET
From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of Douglas Miller
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/b973b9f1-2a3e-d9dd-f94f-38246ddc2872%40gmail.com.
Ah, that code is not valid... "IN 362Q" reads the dipswitch settings, *NOT* the current value (last) output to 362Q. The "image" of the last "OUT 362Q" is maintained by the ROM at location 2036H (as was done by prior ROMs that support port 362Q). So, that code should be something like:
LDA 2036H
ORI 40H
STA 2036H
OUT 362Q
and should ideally do that with interrupts disabled (or at least 2mS clock OFF).
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/02ac01d7ad65%24254a08b0%246fde1a10%24%40gmail.com.
Glenn,
Please use the VH8UTIL as it doesn’t depend on the use of a laptop. Just put the *.H8D file in the VDIP1 and start the utility as shown below (in this case I have an H8D image called “SAVE”). You can deploy H8D’s or create a backup from the floppy into the VDIP1 if needed. It is very easy to use and it doesn’t use the laptop to download files. The XH command works but there are some specific steps to follow. I will need to find my notes on this as I’m a fan of the VH8UTIL instead.
During the show you can make copies into H17 floppy media easily or copy from someone else floppy media if needed with the VH8UTIL.
Hope this helps.
Norberto
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/aff1b7ba-4130-ab19-11f7-766306fe51aa%40gmail.com.
On Sep 19, 2021, at 5:24 PM, Norberto Collado <norberto...@koyado.com> wrote:
Glenn,
Please use the VH8UTIL as it doesn’t depend on the use of a laptop. Just put the *.H8D file in the VDIP1 and start the utility as shown below (in this case I have an H8D image called “SAVE”). You can deploy H8D’s or create a backup from the floppy into the VDIP1 if needed. It is very easy to use and it doesn’t use the laptop to download files. The XH command works but there are some specific steps to follow. I will need to find my notes on this as I’m a fan of the VH8UTIL instead.
During the show you can make copies into H17 floppy media easily or copy from someone else floppy media if needed with the VH8UTIL.
<image001.png>
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/1A188EDC-1D0A-4B60-9DD5-3E62C4F32A41%40koyado.com.
Just to summarize, whatever variation of H8xLDR that Glenn is using has a bug in it's double-sided support, and is not likely to work (although one could get lucky depending on their dipswitch settings - although I doubt it). The two source code repos I have do not show double-sided support, and the H89LDR9 link on sebhc.github.io is broken. It does appear that Les' code has been forked a few times by various developers, and so we are probably losing track of it. If this variation includes any changes to the bootstrap routine, then it is probably incompatible with the ROM's XH command as well.
VH8DUTIL.SYS does not (yet) support double-sided or double-track drives/media.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/869F75C0-7D37-4C76-92F3-0AF0D969C692%40gmail.com.
Not yet! In the To-Do-List!
Norberto
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/869F75C0-7D37-4C76-92F3-0AF0D969C692%40gmail.com.
Hi Les,
Your code there looks correct - the side 0/1 routines use location 2036H as expected. Glenn must be using some other variation.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/47255fc8-b596-4d84-ba6c-60bbce84b098n%40googlegroups.com.
My bad for posting a comment on an 10-year old file I found on my PC. I shouldn’t have weighed in – caused confusion. And to put any fears of a fork in the code to rest, I’m not using or enhancing this code, just had it from a download way back (dated 4/23/2011).
I’ve always used the “H8D Utility” to image disks. I guess I should take a look at “H8DIMGR”…
For any demo I’ll focus on the VDIP-based VH8DUTIL – looks pretty cool!
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/111623f9-228a-d4d0-2912-6e0255b5478e%40gmail.com.
Hi Glenn,
Do we still have a potential problem with the XH command in the new ROM? Or were you attempting to use this old code with the H8DUtility?
Thanks,
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/002001d7ae0b%2481a8de00%2484fa9a00%24%40gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/1e65aee0-d389-ac58-8335-94fdf9e5dd78%40gmail.com.
I guess we wait and see if it can be reproduced. The source code you sent definitely has a problem, and would likely result in a hang (H8D Utility timeout) as it turns off the 2mS clock (assuming dipswitches are set for Z17). It could also affect CPU speed and possibly ROM/RAM (ORG0). If the H8LDR binary that got "booted" into the H8 was from that source code, it would very likely (almost certainly) hang. I don't know how easy it is to mix-and-match H8D Utility with various H8LDR versions, but it will all depend on what combination you were running.
Again, anything that was built using the source code you shared would likely hang and result in a timeout.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CACkv5mA8mA6AN9rek6D6hRcHWfaUCVR1cYKBjZV8m4tO7FGBgg%40mail.gmail.com.
I will verify again tonight once I get home.
Norberto
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CACkv5mA8mA6AN9rek6D6hRcHWfaUCVR1cYKBjZV8m4tO7FGBgg%40mail.gmail.com.
This is what I did back them on this XH Utility using port 340Q and it worked. I will try again tonight.
On the H8:
On the Laptop:
On the H8 and it booted fine the H17 floppy.
Thanks,
Norberto
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/DC73DAD9-CF43-4248-8691-AAD96203DCC1%40koyado.com.
So here’s what I see
https://photos.app.goo.gl/Uit8mffmtoF2se6S6
console says to start the H8D utility…
https://photos.app.goo.gl/oo77VWYbDHXtGJoJ6
The serial port is COM3 via a USB-to-serial converter. Connected via straight-through cable to port 340 on CPU board. This configuration has been verified to work using the traditional technique of booting the H89LDR software via floppy.
In contrasting this to Norberto’s screen I note that I never receive the “Ready.” Message on the H8 console. I also can’t tell what version of the H8D Utility he is running.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/f6f87425-2758-82b3-a06a-a32dff6a2e9e%40gmail.com.
If you're not getting the "Ready." message on the H8 console, that would imply that the bootstrap did not complete/work. But if H8D Utility reports "H89LDR3.BIN sent successfully" then it seems that that end thinks it sent the loader code.
Seems as though the most likely causes of that are serial port mismatch (port 340Q is not what is connected to the PC) or BAUD is not set the same on both ends. Is the port you are using actually the one at H8 I/O address 340Q? I think it is possible for that UART to be set for a couple different addresses, and maybe the other software you are using isn't configured for port 340Q.
Is H8D Utility hard-coded to 9600 BAUD? I don't see anything in the screenshots to indicate the BAUD being used.
The H8 (XH command) bootstrap code is pretty simple, and has not
been changed since Norberto tried it, so I'm not inclined to think
there is something wrong there - although the load address/size
could be off if the H8D Utility (H89LDR3.BIN) you are using has
changed it's bootstrap requirements. If your version supports
double-side/double-track then I suspect it is a different size and
probably requires a different bootstrap program - which is
incompatible with having this function in ROM.
So here’s what I see
- Turn on the H8 (Rev 4.0 CPU with Beta 24 firmware) and execute XH. LEDs show “H8d rEAdY”
https://photos.app.goo.gl/Uit8mffmtoF2se6S6
console says to start the H8D utility…
https://photos.app.goo.gl/oo77VWYbDHXtGJoJ6
- Run H8D Utility on my Windows 10 PC. This is labelled “Version 2.2 CP/M extract/Add. IMD Read/Extract/Convert”
The serial port is COM3 via a USB-to-serial converter. Connected via straight-through cable to port 340 on CPU board. This configuration has been verified to work using the traditional technique of booting the H89LDR software via floppy.
- Click on “Create” and then click “Client Status”. Receive timeout message, however I believe this is to be expected as the only code on the H8 is the bootstrap, not the full client. The “SAVE” button becomes active…
- Click on the “SAVE” button to download the full client to the H8. Claims to have sent H89LDR3.BIN successfully, however I get operation timeout messages:
In contrasting this to Norberto’s screen I note that I never receive the “Ready.” Message on the H8 console. I also can’t tell what version of the H8D Utility he is running.
- If I now reset the H8, bring out my old H17 floppy disk containing the saved H89LDR bootable client and boot it, all is well and I get the “Client is ready” message:
From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of Douglas Miller
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/03aa01d7ae4c%24b098cb30%2411ca6190%24%40gmail.com.
Well, 818 bytes sounds an alarm... The ROM XH command bootstrap is expecting 825 bytes for the "LDR". It appears to be based on a different version of H89LDR*.BIN. That would certainly cause a hang and failure to complete the bootstrap.
The version that this was built around is located here:
https://github.com/durgadas311/MmsCpm3/blob/master/rom/newmon/src/h8dutil/bin/h89ldr3.bin.
Comparing the two, I see some fixes related to turning on/off the
"counter" a.k.a. the user vector for INT1 - 2mS clock. Older code
was trashing other H8 display "MFlag" bits.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/b4b8d773-ddcc-403a-a38d-8c191093580bn%40googlegroups.com.
Dwight Elvey’s original implementation was clever but fragile – the client program overlays the bootstrap program so the two are joined at the hip.
Having stumbled into this rabbit hole I guess I can plunge a little deeper…
Attached is the listing I re-created some time ago for the bootstrap (this is the program to be keyed into the front panel if you have an H-8-4). I believe I took the source from Dwight’s posting and edited it to assemble with the Heath assembler.
Out of curiosity I control-C’ed out of the XH ROM function and examined memory to see what exactly was there. The code at 2300H (043.000 mostly agreed with Dwight’s listing except for two differences: One is the DBEND parameter which is 7 more than what’s in the attached listing (as noted in the email discussion between Les and Douglas). The other is one I don’t understand. In the original bootstrap is the code:
043.037 333 345 00037 LDR1 IN LSTAT
043.041 037 00038 RAR
043.042 322 037 043 00039 JNC LDR1 Wait for char
But at the address 043.042 I instead found:
043.042 315 212 020 00039 CALL 020.212
And the code at 020.212 appears to be the XH H8d bootstrap code from the ROM…
Anyway when I changed the code back to agree with what’s on Les’ web site as the front panel key-in program (https://sebhc.github.io/sebhc/software/Utilities/H8DUtility/BOOTSTRP.TXT) I was able to complete the download of the client and it gave me the “Client is ready” message and asked me if I wanted to save a copy to a bootable disk.
Les and Darrell are the experts on this and the owners of the code. I provide this information in case it helps enlighten how to use the “XH” function and the appropriate client software to use with it.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/b4b8d773-ddcc-403a-a38d-8c191093580bn%40googlegroups.com.
I think the missing step for using the XH command is to replace H89LDR3.BIN with the one from the URL that I posted.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/041201d7ae7c%24da9b0850%248fd118f0%24%40gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/SN6PR01MB385597549360CA0FE75BB186F7A19%40SN6PR01MB3855.prod.exchangelabs.com.
Yes. This worked. Tx all! Somewhere there’s an action here to synchronize versions. At some point, if useful, I can post an addendum to my instructions in REMarks 3..
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/CAKXh8-tRimCCPvWe_aw87%3DszATm6%3DTRHy6rHLbhfxPyq3hkRUA%40mail.gmail.com.
Anyhow I tested it again and it is working fine.
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/043801d7ae82%24de913a00%249bb3ae00%24%40gmail.com.
Here are my files:
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/00ca01d7ae9c%24b9280d60%242b782820%24%40koyado.com.
But my heart is with the VH8UTIL.SYS utility as I do not need to use a laptop to create/backup an H17 bootable disk. Just the Z80 V4.0 CPU card, H19, H17 controller, and the VDIP1 USB flash device loaded with H8D files.
Perhaps we can have a JUKEBOX.SYS file to read “all” the HDOS *.H8D files from the VDIP1 and load up into the Z67-IDE+ jukebox region. The *.sys files creates a lots of new opportunities to make things easier to do. This is a great tool within the Z80 V4 board.
Norberto 😊
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/00d201d7aea2%245b9f4ae0%2412dde0a0%24%40koyado.com.
But my heart is with the VH8UTIL.SYS utility as I do not need to use a laptop to create/backup an H17 bootable disk. Just the Z80 V4.0 CPU card, H19, H17 controller, and the VDIP1 USB flash device loaded with H8D files.
Perhaps we can have a JUKEBOX.SYS file to read “all” the HDOS *.H8D files from the VDIP1 and load up into the Z67-IDE+ jukebox region. The *.sys files creates a lots of new opportunities to make things easier to do. This is a great tool within the Z80 V4 board.
Norberto 😊
From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of norberto...@koyado.com
Sent: Monday, September 20, 2021 9:37 PM
To: se...@googlegroups.com
Subject: RE: [sebhc] H8D Utility in ROM
Here are my files:
<image001.png>
From: se...@googlegroups.com <se...@googlegroups.com> On Behalf Of norberto...@koyado.com
Sent: Monday, September 20, 2021 8:57 PM
To: se...@googlegroups.com
Subject: RE: [sebhc] H8D Utility in ROM
Anyhow I tested it again and it is working fine.
<image002.png>
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/00da01d7aeb0%24caf43c80%2460dcb580%24%40koyado.com.
Excellent!
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/38860f0e-c4a9-44b1-8cce-61530c53d7cen%40googlegroups.com.
I'd also request that "we" quickly adopt a standard/convention for using the JukeBox index. I saw the beginnings of that in a previous email, but let's have a representative group of people have a discussion and conclude on some format and usage for the index.
I'll work on adding jukebox support to CP/M 3, and we'll also want boot support - I presume (this would also benefit from the index).
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/047e01d7aee3%24478a1580%24d69e4080%24%40gmail.com.
Great! agree 100%. We’ll start with a white paper outlining the design and get a dialog going. Hopefully in October. Thanks!
To view this discussion on the web visit https://groups.google.com/d/msgid/sebhc/86e67c17-fc2b-8e4c-6f26-2557e51c4c13%40gmail.com.