Omnimaga
Calculator Community => TI Calculators => ASM => Topic started by: Hot_Dog on December 29, 2010, 09:39:46 am
-
Why did the Z80 producers leave some code operations undocumented? Did they not have time to "test" these instructions, did they come about accidentally in the design of the processor, or what?
-
Why did the Z80 producers leave some code operations undocumented? Did they not have time to "test" these instructions, did they come about accidentally in the design of the processor, or what?
Did TI not want to release them?
-
Why did the Z80 producers leave some code operations undocumented? Did they not have time to "test" these instructions, did they come about accidentally in the design of the processor, or what?
Did TI not want to release them?
TI didn't make the Z80. The Z80 is used in many different devices, not just TI calcs.
-
:O Didn't know about it, then no idea.
-
Maybe TI didn't know about them, or they did not want us to know about them? I don't really know, though.
-
I'm not exactly sure why the instructions are undocumented. The best guess I can make is that they are optionally supported. So, it's common knowledge that they are there, but if the very early models or late models don't support them, then they won't be disobeying the z80 spec.
I think I remember reading something to that extent somewhere some time ago.
-
Well, obviously they didn't used all the opcodes from 00 to FF, so all the unused numbers are undocumented and do random things they don't know about. That's my guess.
-
There's a couple of reasons I can suggest as to why they're undocumented.
First and probably the main reason, instructions that weren't originally in the instruction set worked predictably due to the logic that the Z80 performed. The Z80 is quite a logical chip, so under most circumstances, logic would dictate a few things that weren't intended. Like being able to load the high and low bytes of the IX/IY registers independently.
Well, I guess I don't have a second reason.
There was a site that explained all this clearly, but it was on the Geocities thing that got shut down like last year or so. Wished I could've saved it.
-
First and probably the main reason, instructions that weren't originally in the instruction set worked predictably due to the logic that the Z80 performed. The Z80 is quite a logical chip, so under most circumstances, logic would dictate a few things that weren't intended. Like being able to load the high and low bytes of the IX/IY registers independently.
And that makes a lot of sense
-
@ Iambian: So basically, you're saying that the undocumented ones worked based upon how the Z80 is structured?
-
That makes sense to me, i was writing a CPU in Logisim once and i didn't use every single opcode, and using the ones that i had not implemented sure would do *something* but probably weird things that would be weird and not useful, but consistent.
-
There's a couple of reasons I can suggest as to why they're undocumented.
First and probably the main reason, instructions that weren't originally in the instruction set worked predictably due to the logic that the Z80 performed. The Z80 is quite a logical chip, so under most circumstances, logic would dictate a few things that weren't intended. Like being able to load the high and low bytes of the IX/IY registers independently.
Well, I guess I don't have a second reason.
There was a site that explained all this clearly, but it was on the Geocities thing that got shut down like last year or so. Wished I could've saved it.
Could it be the RichFiles? I think it's still available elsewhere, but I forgot the link.