Before I do too much digging, I figured I'd throw this question out there. Consider the following code fragment in the SCELBI tape driver. Register B is set to zero before this function is called.
38 77-052 044 017 NDI 017
39 77-054 201 ADB
40 WRIT055:
41 77-055 170 062 077 JTP WRIT062
42 77-060 004 200 ADI 200 ; fix parity
43 WRIT062:
In my examination of actual operation, it appears that input of register A = 000 gives a different result than input of register A = 377. I thought the 8008 parity flag was set when parity of the math result was even, so both values should result in skipping the ADI 200 instruction. In the actual execution, from decoding the audio tape output, it seems that 377 input results in the ADI 200 being executed. Am I missing something obvious?
If not, I'll pursue the possibility that I have some kind of bit problem in the hardware interface.
regards,
Mike Willegal
38 77-052 044 017 NDI 017
39 77-054 201 ADB
40 WRIT055:
41 77-055 170 062 077 JTP WRIT062
42 77-060 004 200 ADI 200 ; fix parity
43 WRIT062:
In my examination of actual operation, it appears that input of register A = 000 gives a different result than input of register A = 377. I thought the 8008 parity flag was set when parity of the math result was even, so both values should result in skipping the ADI 200 instruction. In the actual execution, from decoding the audio tape output, it seems that 377 input results in the ADI 200 being executed. Am I missing something obvious?
If not, I'll pursue the possibility that I have some kind of bit problem in the hardware interface.
regards,
Mike Willegal