OUTI не меняет флаг C !!! :-( — ZXNet «code.zx»

OUTI не меняет флаг C !!! :-(

ZXNet echo conference «code.zx»



from: Kirill Frolov
to: All
date: 25 December 1998
Приветствую тебя, All ! begin of file: OUTI .C -+------------------------------------------------------- | ORG #6000 DI 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 Много раз запускал, с STS-ом мучался.... ВСЕ БЕСПОЛЕЗHО. ФЛАГ C HЕ МЕHЯЕТСЯ КОМАHДОЙ OUTI !!! А если у кого и меняется - то это проц значит совсем глючный ! У меня Z80H THESYS работает как и положено (по книжке). Как мне его заглючить так, чтобы он флаг начал менять ??? Может это все нехорошие эмуляторщики наглючили ? Проверил аналогичным образом команду INI - тоже флаг не меняется ! А вот с тем, что OUTI, и наверное INI, вначале декрементируют регистр B, a потом работают с портом - правда ! Все это касается и циклических команд. Глюк процессора с командой LD A,I или LD A,R сомнений не вызывает, я его проверил тоже. Хочу знать, какие проблемы могут быть с командой OUT (C),0 ? Имхо там возможно 2 варианта: OUT (C),0 и OUT (C),#FF. В конечном счете ясно одно - в описании есть неточности, в эмуляторах скорее всего все работает как и в процессоре, защита от эмулятора возможна только на основе команд LD A,I или LD A,R. Taкже можно использовать (и нужно !) работу с ВГ93 напрямую, для проверки ее на реальность. В случае с винтом на скорпионе - легко проверить, наверное, и его наличие, в случае всевозможных рамдисков все несколько сложнее :-( With best wishes, Kirill Frolov.