Page 8 of 9
Re: Hermes status
Posted: Fri Oct 01, 2021 3:11 pm
by Derek_Stewart
I have been repairing a QL board, which is now working. It has a NEC D8749HC installed see picture below:

- NEC D8749HC
Which the Hemes function IPCVER$ returns 0.0
According to the Hermes manual, this means it is non-Hermes.
I am assuming the NEC D8749HC emulates the 8049 and is not updatable.
Re: Hermes status
Posted: Fri Oct 01, 2021 6:30 pm
by Silvester
That's intriguing, it's dated 1987 so may have been programmed by user (8749HC windowless One Time Program chip). But why not just use 8049 that came with QL?, perhaps modified for some reason (my Schon IPC variation was 8049). Be interesting if you can get binary dump and see if it differs from known code.
Re: Hermes status
Posted: Sat Oct 02, 2021 9:09 am
by Derek_Stewart
Silvester wrote:That's intriguing, it's dated 1987 so may have been programmed by user (8749HC windowless One Time Program chip). But why not just use 8049 that came with QL?, perhaps modified for some reason (my Schon IPC variation was 8049). Be interesting if you can get binary dump and see if it differs from known code.
Hi,
Here is a binary image of the NEC D8749HC
Re: Hermes status
Posted: Sat Oct 02, 2021 10:40 am
by Ruptor
Derek_Stewart wrote:Here is a binary image of the NEC D8749HC
Where is the original IPC bin file all I can find is asm? I can do a bin file comparison as an exercise for the student on my complicated programmer software to learn how to work it.

Re: Hermes status
Posted: Sun Oct 03, 2021 8:49 am
by Derek_Stewart
Hi,
I do not think there is a 8049 binary file, my ALL03A programmer does not have a 8049 entry in the software, but the NEC D8749H entry reads the 8049 IPC. On saying that the NEC D8749HC reports IPCVER$ as 0.0 which is a non-Hermes IPC.
Re: Hermes status
Posted: Sun Oct 03, 2021 10:37 am
by Ruptor
Derek_Stewart wrote:I do not think there is a 8049 binary file, my ALL03A programmer does not have a 8049 entry in the software, but the NEC D8749H entry reads the 8049 IPC. On saying that the NEC D8749HC reports IPCVER$ as 0.0 which is a non-Hermes IPC.
My poor little brain is confused.

Are you saying your previous dump of 8749 is wrong? If you can read the 8049 we would have a dump of it that could be tested in an 8749. We could also compare it with the 8749 dump. In the previous 8749 image I noticed there was a byte at 07F1H with value 07H out on its own in the last block. In the Hermes22 dump the values at 07F0H & 07F1H are 02H & 14H. I don't know the 8749 chips so they could be vectors but usually in assembler people put data like version numbers at the end of code.
I did a quick compare of your 8749 code & the Hermes22 dump and I can't see anything that matches but since it only takes a one byte move to change all the addresses etc it would probably require a lot of study to find bits that do the same job with different numbers.

Re: Hermes status
Posted: Sun Oct 03, 2021 1:44 pm
by Pr0f
The 8049 should be readable using 8049/8749 using the HiLo programmer.
However there is an IPC project on GitHub I think, which has a binary file with it.
I compared that with the one Derek put up on the thread - and for the most part it would seem to be the same source, but there is an additional block of code and some earlier addresses are changed (probably jumps with changed addresses) - ignore the message about length - the one from github doesn't have the trailing zero's to make the file 2K in size - but I have checked with hed editor and the file from Derek is all 0's from the last code location on to the end of the 2K image.
These are the changed locations:
00000283: B4 D4 - original IPC code: 0283: B4 C8 CALL $5C8 scan keyboard, entry A (one bit=1), ret A
00000507: B4 D4 - originalIPC code: 0507: B4 C8 CALL $5C8 scan keyboard, entry A (one bit=1), ret A
0000052D: B4 D4 - original IPC code: 052D: B4 C8 CALL $5C8 scan keyboard, entry A (one bit=1), ret A
000005CC: 00 C4
000005CD: 00 80
C480 are 2 new bytes in this routine:
; scan keyboard, entry A (one bit=1), ret A
05C8: 39 OUTL P1,A output A on P1
05C9: AB MOV R3,A
05CA: 80 MOVX A,@R0 put P0 in read mode=HI-Z ??
05CB: 00 NOP wait a bit
05CC: 00 NOP
05CD: 00 NOP
05CE: 00 NOP
05CF: 00 NOP
05D0: 00 NOP
05D1: 08 IN A,P0 get P0 into A
05D2: 93 RETR
And there is all new code from 680 onwards to 6D3, which I presume is linked from the changes above.
It looks as if the changes are all related to keyboard workings.
Re: Hermes status
Posted: Sun Oct 03, 2021 1:59 pm
by Ruptor
Pr0f wrote:I have checked with hed editor and the file from Derek is all 0's from the last code location on to the end of the 2K image.
Don't you see something in 07F1H?
Re: Hermes status
Posted: Sun Oct 03, 2021 2:16 pm
by Pr0f
Ruptor wrote:Pr0f wrote:I have checked with hed editor and the file from Derek is all 0's from the last code location on to the end of the 2K image.
Don't you see something in 07F1H?
you are right - 07 hex is there - I missed that.
Re: Hermes status
Posted: Sun Oct 03, 2021 3:12 pm
by Silvester
Derek_Stewart wrote:Here is a binary image of the NEC D8749HC
Thanks.
Derek_Stewart wrote:I do not think there is a 8049 binary file
Just did some digging through my QL filing system and I can't find where I got the 8049 binary from myself (it's so long ago, nothing found on Dilwyn or Thierry Godefroy's sites - no binary, just the listing). I may even have been guilty of reconstituting the copy I have. I'm in the middle of building MCS-48 programmer for my QL, I also want to read the Schon keyboard IPC version (keybounced, no SER2) and Schon PS/2 keyboard interface 8049.