Hallo allemaal, I ran into a weird problem. I disassembled the BIOS of a PC20-III and I assembled the resulting source code with NASM. What you have to know on forehand is that there is not a one-to-one translation of an instruction into code. For example: the codes '33 F6' and '31 F6' disassemble both to the same instruction 'xor si,si'. '2B CF' and '29 F9' disassemble both to 'sub cx,di'. You have to study the datasheets to see why it is possible. A disadvantage is that the programmer of an assemblers decides what code to use for a certain instruction. In the above cases the original assembler (MASM ???) chose the first set of codes and NASM the second set. Simply comparing the resulting BIN with the original ROM to see if my generated source code is correct does not work here. So I had to make a program that compares both files and discards equivalent sets. I use this program for years and so far things ran fine. The problem: after doing some upgrades I suddenly noticed my B: drive was gone. To make a long story short: using the sources generated by me and a MDA screen, I have two drives. But if I insert a VGA card, then I have only one drive. Now the weird thing: when using the original EPROM, I have two drives in both cases. Only today I found the part that determines how many drives are in the machine. The only thing I can (I think) is to compare all instructions one by one just in case my tool (or better: I as the programmer) made a mistake. But if you have an idea or suggestion, you are welcome! -- Kind regards / Met vriendelijke groet, Ruud Baltissen www.Baltissen.orgReceived on 2020-05-29 21:38:31
Archive generated by hypermail 2.3.0.