It’s a long time since I did that program Rich and it’s entirely possible there is an error. If you can confirm the error with a small test routine (input a keyboard Hex character, output bits) and correct the code that would be great. I will upload the .asm & .Z80 files if you send them to me.
From: n8vem...@googlegroups.com [mailto:n8vem...@googlegroups.com] On Behalf Of Rich Leary
As I start to build my V2.0a board I have been researching the available software. MYIDE.ASM seems to be the best starting point. I ran the ASMTOZ80 conversion (derived from XLATE2) I use to create a Z80ASM.COM (SLR Systems) compatible file on the single drive version of MYIDE that I downloaded from s100computers.com. I had to make several EQU statement changes to get Z80ASM to accept many of the lines. That is not unusual.
What was unusual was that the code in the subroutine ZBITS (around line 1163) was causing problems. In the .ASM file there are two lines there that express the same Z80 opcode (SLA E) in two different ways. One just uses the byte level definition of SLA E, i.e., DB 0CBH, 23H, while the second uses the Z80LIB macro equivalent of SLAR E. That would be OK but it looks to me like there should be one and only one SLA E line in ZBITS as each execution of that line rolls a bit from E into CY that then gets added to an ASCII '0' to yield an ASCII '0' or '1'. If two SLA E ops are executed then the result will reflect every other bit for four and then zeros for the last four.
Solution is simple - delete the extra SLA E line. I think same issue exists in the non-single version of MYIDE.ASM.
I also found that three DB lines (around 1710, 1739, & 1749) in the source were truncated. It took a little effort to figure out what the end of those lines should be.
I will gladly upload the corrected file (I renamed it to 'MYIDE-S.Z80' so it will load on CP/M) but am not sure where to save it. Suggestions?