OUTI does not change the C flag!!! :-(
ZXNet echo conference «code.zx»
From Kirill Frolov → To All 25 December 1998
Greetings, All!
begin of file: OUTI .C
-+-------------------------------------------------------
|
ORG #6000
D.I.
LD BC,#00FE
XOR A
LD(DATA0),A
LD(DATA1),A
LD HL,0
LD DE,#8000
L1 LD A,E
OUTI
JR C,ERR0
DEC DE
BIT 7,D
JR Z,L1
LD HL,0
SCF
LD DE,#8000
L2 LD A,E
OUTI
JR NC,ERR1
DEC DE
BIT 7,D
JR Z,L2
EI
RET
ERR0 LD (DATA0),A
EI
RET
ERR1 LD (DATA1),A
EI
RET
DATA0 DB 0
DATA1 DB 0
|
-+-------------------------------------------------------
end of file: OUTI .C
I launched it many times, struggled with STS.... EVERYTHING IS USELESS.
FLAG C DOES NOT CHANGE BY OUTI TEAM!!!
And if someone changes, then this percentage means it’s completely buggy!
My Z80H THESYS works as it should (according to the book). How do I get it
glitch it so that it starts changing the flag??? Maybe it's all bad
Are the emulators buggy?
I checked the INI command in the same way - the flag also does not change!
But with the fact that OUTI, and probably INI, first decrement register B,
and then they work with the port - true! All this also applies to cyclic commands.
There is no doubt about a processor glitch with the command LD A,I or LD A,R, I fixed it
checked too.I want to know what problems there might be with the OUT (C),0 command?
IMHO there are 2 options possible: OUT (C),0 and OUT (C),#FF.
Ultimately, one thing is clear - there are inaccuracies in the description, in the emulators
most likely everything works as in the processor, protection from the emulator
only possible based on the LD A,I or LD A,R commands. You can also use
(and it is necessary!) work with VG93 directly, to check its reality.
In the case of a screw on a scorpion, it’s probably easy to check its presence,
in the case of all kinds of ramdisks, everything is somewhat more complicated :-(
With best wishes, Kirill Frolov.