PDA

Просмотр полной версии : Z80 => 8080 адаптация



NEO SPECTRUMAN
11.02.2021, 09:30
Собственно так как старые средства адаптации z80 кода к 8080 полностью морально устарели заведена эта тема

мне известны ~2 средства адаптации z80 кода:

макросы для tasm (которые надо поискать)
Набор макросов для перевода z80 -> i8080 для ассемблера tasm 3.01
http://sensi.org/~retrocomp/vector06c/z80trans.zip
http://www.mediafire.com/file/g3jc5rectzcd50n/z80trans.zip/file
в котором не все команды и который подозревается в наличии очепяток

и старый досовский рекомпилятор\дизассемблер нето DAO нето PROGRAM RECOMPILE SYSTEM

DAO 08-10-30 (PROGRAM RECOMPILE SYSTEM v1.15)
http://www.mediafire.com/file/59xo9ss4tpl8blo/dao_08-10-30.rar/file
который вроде бы как успешно не работает в win15 х64 :v2_dizzy_roll:
и содержит ошибке как в самом себе (например раз тупо пропустил sub (hl) (который шел после нормальной 8080 команды))
так и в реализации z80 команд
а так же v1.12 с сорцами
https://zx-pk.ru/threads/8712-rekompilyatsiya-z80-gt-kr580vm80a.html?p=1104179&viewfull=1#post1104179



ну а так как все нормальные люди кодят в sjasm-е
и мнемониками z80 а не пиктограммами 8080
а дизассемблируюут идой а не самописными досовскими утилитами
то эти 2 средства сейчас полностью и апсолютно бесполезны...


так же разовая замена всех z80 команд не лучший вариант для большого количества кода
z80 команды имитируются не сильно точно
и получаемый глюкокод состоит из тучи ошибок которые потом требуется долго вылавливать

так что правильнее адаптировать ручками (ну и так жо интересней и в 10 раз дольше : ) плавно и постепенно
при помощи макросов и автозамены
заменяя отдельные группы команды и промежуточно тестируя что отвалилось и из за чего

методику опишу потом она на этапе разработки :)




на данный момент повторно выдрал все опкоды из DAO и оформил в текстовичек
сверил с макросами ivagor-а и позаимствовал от туда некоторые каменты и другие реализации команд

z80_2_8080 r0021
http://www.mediafire.com/file/ylmco5dhjzwemg0/z80_2_8080_r0021.7z/file

z80_2_8080 r0019
http://www.mediafire.com/file/q1ec5k0744wnsgr/z80_2_8080_r0019.7z/file


перевел все на читаемый z80 возможно с косяками
8080 мнемоники оставил рядом в коментах (возможно в процессе их слегка похерил автозаменой)
кому надо легким движением руки (по крайней мере в npp) превратят оно обратно в 8080 only

в комплекте закинул список соответствия 8080 команд командам z80
и список z80 команд отдельно посортированных не то по алфавиту не то по назначению в том же порядке что и основной сорец


пометки в коментах:
mod code - само модифицируемый код (тот что нашёлся при беглом просмотре)


из todo
теперь нужно найти кривые реализации опкодов
и задокументировать какие флаги они не ставят какие они ставят когда не должны

заменить совсем не правильные типа sbc hl,hl

так же есть косяки в командах работающих с SP

еще нужно найти команды которые не могут вызываться при помощи call
и все пометить

в принципе для меньшего думания головой можно сделать включение im2 режима с обработчиком на rst38
который будет читать вектор прерываний и запускать нужный код...

и конечно все это нужно сравнить с макросами tasm-а



так же в тему призываются наши программертролли на подобии Sayman-оа и goodboy-ев
которые глянув одним глазом на 5К строк кода сразу скажут
"а вот тут флаг не так ставится" :)

NEO SPECTRUMAN
11.02.2021, 14:16
все тоже самое пристегнутое прямо к форуму



;================================================= =============================
; Z80 opcodes realisation for i8080 r0021
; copypasted\defcknzed by NS
;================================================= =============================
; tab = 8 chars для (оформлятельства)

; выдрано из нечта называемого dao_08-10-30 оно же PROGRAM RECOMPILE SYSTEM (v1.15)
; не самой последней версии а самой последней которую удалось найти
;
; переключение 8080\8085 и не документированных опкодов не дало других реализаций команд
;
; полнсостью сверено с макросами ivagor-а последней? версии от 09.11.2000


; ACHTUNG!!!
; некоторые команды ставят\не ставят нужные флаги!
; некоторые команды дают совершенно неправильный результат!!

;------------------------------------------------------------------------------

; обозначения в каментах справа:
;
; mod code самомодифицируемый код
; ERROR команда содержит критические ошибки
;
; DAO команда выдрана из DAO (тоже самое если ничего не указано)
; TASM команда выдрана из макросов для TASM или полностью с ними совпадает
;

; обозначения в каментах снизу:
;
; (TASM) камент позаимствован из макросов для TASM и не проверялся на истинность

; так же закоментированные ;ret снизу обозначают что скорей всего
; команду можно использовать как процедуру вызываемую посредством call
; отсутствие закоментированного ret-а пока ничего не означает

;------------------------------------------------------------------------------

; некоторые оригинальные копирайты взятые из DAO от Tim0xA

; PROGRAM RECOMPILE SYSTEM (v1.15)

; (C) 1995 by FRIENDS Software
; (C) 2008 by TIMSoft (i8080/i8085 rebuild)


; некоторые оригинальные копирайты взятые из макросов ivagor-а

; Набор макросов для перевода z80 (ограниченное подмножество команд) -> i8080
; для ассемблера tasm 3.01 (Table Driven Assembler)
; (С) Иван Городецкий



;------------------------------------------------------------------------------
; 2do
; просматривая менять tmp\tmpb на tmp8 а temp на tmp16
;================================================= =============================




;================================================= =============================
;собственно дополнительные регистры z80 теперь живут где то в памяти

rAF1 defw $0000
rBC1 defw $0000
rDE1 defw $0000
rHL1 defw $0000

rIX defw $0000
rIY defw $0000

rI defb $00
rR defb $00

TEMP defw $0000 ;word

TMP8
TMP defw $0000 ;byte (перепроверить)

;================================================= =============================






;================================================= =============================

; 8080 adc a ;adc a ;
; 8080 adc b ;adc b
; 8080 adc c ;adc c
; 8080 adc d ;adc d
; 8080 adc e ;adc e
; 8080 adc h ;adc h
; 8080 adc l ;adc l

;------------------------------------------------------------------------------
: ADC A,ixh
push hl ;push h ; adc A,IXH
ld hl,(rIX) ;lhld rIX ;
adc h ;adc h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADC A,ixl
push hl ;push h ; adc A,IXL
ld hl,(rIX) ;lhld rIX ;
adc l ;adc l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADC A,iyh
push hl ;push h ; adc A,IYH
ld hl,(rIY) ;lhld rIY ;
adc h ;adc h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADC A,iyl
push hl ;push h ; adc A,IYL
ld hl,(rIY) ;lhld rIY ;
adc l ;adc l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 adc $22 ;aci $22

; 8080 adc a,(hl) ;adc m

;------------------------------------------------------------------------------
: ADC A,(IX+d)
push hl ;push h ; adc A,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
adc a,(hl) ;adc m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADC A,(IY+d)
push hl ;push h ; adc A,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
adc a,(hl) ;adc m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADC HL,BC
ld (TMP),a ;sta TMP ; adc HL,BC
ld a,l ;mov a,l ;
adc c ;adc c ;
ld l,a ;mov l,a ;
ld a,h ;mov a,h ;
adc b ;adc b ;
ld h,a ;mov h,a ;
jp c,$+7 ;jc $+7 ;
or l ;ora l ;
jp $+5 ;jmp $+5 ;
or l ;ora l ;
scf ;stc ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: ADC HL,DE
ld (TMP),a ;sta TMP ; adc HL,DE
ld a,l ;mov a,l ;
adc e ;adc e ;
ld l,a ;mov l,a ;
ld a,h ;mov a,h ;
adc d ;adc d ;
ld h,a ;mov h,a ;
jp c,$+7 ;jc $+7 ;
or l ;ora l ;
jp $+5 ;jmp $+5 ;
or l ;ora l ;
scf ;stc ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: ADC HL,HL
ld (TMP),a ;sta TMP ; adc HL,HL
ld a,l ;mov a,l ;
adc l ;adc l ;
ld l,a ;mov l,a ;
ld a,h ;mov a,h ;
adc h ;adc h ;
ld h,a ;mov h,a ;
jp c,$+7 ;jc $+7 ;
or l ;ora l ;
jp $+5 ;jmp $+5 ;
or l ;ora l ;
scf ;stc ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: ADC HL,SP
ld (TMP),a ;sta TMP ; adc HL,SP
push de ;push d ;
ex de,hl ;xchg ;
ld hl,$0000 ;lxi h,$0000 ;
add hl,sp ;dad sp ;
ex de,hl ;xchg ;
ld a,l ;mov a,l ;
adc e ;adc e ;
ld l,a ;mov l,a ;
ld a,h ;mov a,h ;
adc d ;adc d ;
ld h,a ;mov h,a ;
jp c,$+7 ;jc $+7 ;
or l ;ora l ;
jp $+5 ;jmp $+5 ;
or l ;ora l ;
scf ;stc ;
pop de ;pop de ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
; 8080 add a ;add a
; 8080 add b ;add b
; 8080 add c ;add c
; 8080 add d ;add d
; 8080 add e ;add e
; 8080 add h ;add h
; 8080 add l ;add l

;------------------------------------------------------------------------------
: ADD A,ixh
push hl ;push h ; add A,IXH
ld hl,(rIX) ;lhld rIX ;
add h ;add h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD A,ixl
push hl ;push h ; add A,IXL
ld hl,(rIX) ;lhld rIX ;
add l ;add l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD A,iyh
push hl ;push h ; add A,IYH
ld hl,(rIY) ;lhld rIY ;
add h ;add h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD A,iyl
push hl ;push h ; add A,IYL
ld hl,(rIY) ;lhld rIY ;
add l ;add l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 add $22 ;adi $22

; 8080 add (hl) ;add m

;------------------------------------------------------------------------------
: ADD A,(IX+d)
push hl ;push h ; add A,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
add (hl) ;add m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD A,(IY+d)
push hl ;push h ; add A,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
add (hl) ;add m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 add hl,bc ;dad b
; 8080 add hl,de ;dad d
; 8080 add hl,hl ;dad h
; 8080 add hl,sp ;dad sp

;------------------------------------------------------------------------------
: ADD IX,BC
push hl ;push h ; add rIX,BC
ld hl,(rIX) ;lhld rIX ;
add hl,bc ;dad b ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD IX,DE
push hl ;push h ; add rIX,DE
ld hl,(rIX) ;lhld rIX ;
add hl,de ;dad d ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD IX,SP
push hl ;push h ; add rIX,SP
ld hl,(rIX) ;lhld rIX ;
push af ;push psw ;
add hl,sp ;dad sp ;
pop af ;pop psw ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD IX,IX
push hl ;push h ; add rIX,IX
ld hl,(rIX) ;lhld rIX ;
push af ;push psw ;
add hl,hl ;dad h ;
pop af ;pop psw ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD IY,BC
push hl ;push h ; add rIY,BC
ld hl,(rIY) ;lhld rIY ;
add hl,bc ;dad b ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD IY,DE
push hl ;push h ; add rIY,DE
ld hl,(rIY) ;lhld rIY ;
add hl,de ;dad d ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD IY,SP
push hl ;push h ; add rIY,SP
ld hl,(rIY) ;lhld rIY ;
push af ;push psw ;
add hl,sp ;dad sp ;
pop af ;pop psw ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: ADD IY,IY
push hl ;push h ; add rIY,IY
ld hl,(rIY) ;lhld rIY ;
push af ;push psw ;
add hl,hl ;dad h ;
pop af ;pop psw ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 and a ;ana a
; 8080 and b ;ana b
; 8080 and c ;ana c
; 8080 and d ;ana d
; 8080 and e ;ana e
; 8080 and h ;ana h
; 8080 and l ;ana l

;------------------------------------------------------------------------------
: AND ixh
push hl ;push h ; and IXH
ld hl,(rIX) ;lhld rIX ;
and h ;ana h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: AND ixl
push hl ;push h ; and IXL
ld hl,(rIX) ;lhld rIX ;
and l ;ana l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: AND iyh
push hl ;push h ; and rIYH
ld hl,(rIY) ;lhld rIY ;
and h ;ana h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: AND iyl
push hl ;push h ; and L
ld hl,(rIY) ;lhld rIY ;
and l ;ana l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 and $22 ;ani $22
; 8080 and (hl) ;ana m

;------------------------------------------------------------------------------
: AND (IX+d)
push hl ;push h ; and (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
and (hl) ;ana m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: AND (IY+d)
push hl ;push h ; and (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
and (hl) ;ana m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 0,A
ld (TMP),a ;sta TMP ; bit 0,A
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,B
ld (TMP),a ;sta TMP ; bit 0,B
ld a,b ;mov a,b ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,C
ld (TMP),a ;sta TMP ; bit 0,C
ld a,c ;mov a,c ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,D
ld (TMP),a ;sta TMP ; bit 0,D
ld a,d ;mov a,d ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,E
ld (TMP),a ;sta TMP ; bit 0,E
ld a,e ;mov a,e ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,H
ld (TMP),a ;sta TMP ; bit 0,H
ld a,h ;mov a,h ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,L
ld (TMP),a ;sta TMP ; bit 0,L
ld a,l ;mov a,l ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,(HL)
ld (TMP),a ;sta TMP ; bit 0,(HL)
ld a,(hl) ;mov a,m ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 0,(IX+d)
push hl ;push h ; bit 0,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 0,(IY+d)
push hl ;push h ; bit 0,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $01 ;ani $01 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 1,A
ld (TMP),a ;sta TMP ; bit 1,A
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,B
ld (TMP),a ;sta TMP ; bit 1,B
ld a,b ;mov a,b ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,C
ld (TMP),a ;sta TMP ; bit 1,C
ld a,c ;mov a,c ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,D
ld (TMP),a ;sta TMP ; bit 1,D
ld a,d ;mov a,d ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,E
ld (TMP),a ;sta TMP ; bit 1,E
ld a,e ;mov a,e ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,H
ld (TMP),a ;sta TMP ; bit 1,H
ld a,h ;mov a,h ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,L
ld (TMP),a ;sta TMP ; bit 1,L
ld a,l ;mov a,l ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,(HL)
ld (TMP),a ;sta TMP ; bit 1,(HL)
ld a,(hl) ;mov a,m ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 1,(IX+d)
push hl ;push h ; bit 1,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 1,(IY+d)
push hl ;push h ; bit 1,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $02 ;ani $02 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 2,A
ld (TMP),a ;sta TMP ; bit 2,A
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,B
ld (TMP),a ;sta TMP ; bit 2,B
ld a,b ;mov a,b ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,C
ld (TMP),a ;sta TMP ; bit 2,C
ld a,c ;mov a,c ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,D
ld (TMP),a ;sta TMP ; bit 2,D
ld a,d ;mov a,d ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,E
ld (TMP),a ;sta TMP ; bit 2,E
ld a,e ;mov a,e ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,H
ld (TMP),a ;sta TMP ; bit 2,H
ld a,h ;mov a,h ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,L
ld (TMP),a ;sta TMP ; bit 2,L
ld a,l ;mov a,l ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,(HL)
ld (TMP),a ;sta TMP ; bit 2,(HL)
ld a,(hl) ;mov a,m ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 2,(IX+d)
push hl ;push h ; bit 2,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 2,(IY+d)
push hl ;push h ; bit 2,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $04 ;ani $04 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 3,A
ld (TMP),a ;sta TMP ; bit 3,A
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,B
ld (TMP),a ;sta TMP ; bit 3,B
ld a,b ;mov a,b ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,C
ld (TMP),a ;sta TMP ; bit 3,C
ld a,c ;mov a,c ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,D
ld (TMP),a ;sta TMP ; bit 3,D
ld a,d ;mov a,d ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,E
ld (TMP),a ;sta TMP ; bit 3,E
ld a,e ;mov a,e ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,H
ld (TMP),a ;sta TMP ; bit 3,H
ld a,h ;mov a,h ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,L
ld (TMP),a ;sta TMP ; bit 3,L
ld a,l ;mov a,l ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,(HL)
ld (TMP),a ;sta TMP ; bit 3,(HL)
ld a,(hl) ;mov a,m ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 3,(IX+d)
push hl ;push h ; bit 3,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 3,(IY+d)
push hl ;push h ; bit 3,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $08 ;ani $08 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 4,A
ld (TMP),a ;sta TMP ; bit 4,A
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,B
ld (TMP),a ;sta TMP ; bit 4,B
ld a,b ;mov a,b ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,C
ld (TMP),a ;sta TMP ; bit 4,C
ld a,c ;mov a,c ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,D
ld (TMP),a ;sta TMP ; bit 4,D
ld a,d ;mov a,d ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,E
ld (TMP),a ;sta TMP ; bit 4,E
ld a,e ;mov a,e ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,H
ld (TMP),a ;sta TMP ; bit 4,H
ld a,h ;mov a,h ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,L
ld (TMP),a ;sta TMP ; bit 4,L
ld a,l ;mov a,l ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,(HL)
ld (TMP),a ;sta TMP ; bit 4,(HL)
ld a,(hl) ;mov a,m ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 4,(IX+d)
push hl ;push h ; bit 4,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 4,(IY+d)
push hl ;push h ; bit 4,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $10 ;ani $10 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 5,A
ld (TMP),a ;sta TMP ; bit 5,A
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,B
ld (TMP),a ;sta TMP ; bit 5,B
ld a,b ;mov a,b ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,C
ld (TMP),a ;sta TMP ; bit 5,C
ld a,c ;mov a,c ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,D
ld (TMP),a ;sta TMP ; bit 5,D
ld a,d ;mov a,d ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,E
ld (TMP),a ;sta TMP ; bit 5,E
ld a,e ;mov a,e ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,H
ld (TMP),a ;sta TMP ; bit 5,H
ld a,h ;mov a,h ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,L
ld (TMP),a ;sta TMP ; bit 5,L
ld a,l ;mov a,l ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,(HL)
ld (TMP),a ;sta TMP ; bit 5,(HL)
ld a,(hl) ;mov a,m ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 5,(IX+d)
push hl ;push h ; bit 5,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 5,(IY+d)
push hl ;push h ; bit 5,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $20 ;ani $20 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 6,A
ld (TMP),a ;sta TMP ; bit 6,A
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,B
ld (TMP),a ;sta TMP ; bit 6,B
ld a,b ;mov a,b ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,C
ld (TMP),a ;sta TMP ; bit 6,C
ld a,c ;mov a,c ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,D
ld (TMP),a ;sta TMP ; bit 6,D
ld a,d ;mov a,d ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,E
ld (TMP),a ;sta TMP ; bit 6,E
ld a,e ;mov a,e ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,H
ld (TMP),a ;sta TMP ; bit 6,H
ld a,h ;mov a,h ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,L
ld (TMP),a ;sta TMP ; bit 6,L
ld a,l ;mov a,l ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,(HL)
ld (TMP),a ;sta TMP ; bit 6,(HL)
ld a,(hl) ;mov a,m ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 6,(IX+d)
push hl ;push h ; bit 6,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 6,(IY+d)
push hl ;push h ; bit 6,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $40 ;ani $40 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 7,A
ld (TMP),a ;sta TMP ; bit 7,A
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,B
ld (TMP),a ;sta TMP ; bit 7,B
ld a,b ;mov a,b ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,C
ld (TMP),a ;sta TMP ; bit 7,C
ld a,c ;mov a,c ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,D
ld (TMP),a ;sta TMP ; bit 7,D
ld a,d ;mov a,d ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,E
ld (TMP),a ;sta TMP ; bit 7,E
ld a,e ;mov a,e ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,H
ld (TMP),a ;sta TMP ; bit 7,H
ld a,h ;mov a,h ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,L
ld (TMP),a ;sta TMP ; bit 7,L
ld a,l ;mov a,l ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,(HL)
ld (TMP),a ;sta TMP ; bit 7,(HL)
ld a,(hl) ;mov a,m ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: BIT 7,(IX+d)
push hl ;push h ; bit 7,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: BIT 7,(IY+d)
push hl ;push h ; bit 7,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
and $80 ;ani $80 ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 call L3333 ;call L3333
; 8080 call c,L3333 ;cc L3333
; 8080 call m,L3333 ;cm L3333
; 8080 call nc,L3333 ;cnc L3333
; 8080 call nz,L3333 ;cnz L3333
; 8080 call p,L3333 ;cp L3333
; 8080 call pe,L3333 ;cpe L3333
; 8080 call po,L3333 ;cpo L3333
; 8080 call z,L3333 ;cz L3333

;------------------------------------------------------------------------------
rst $00 ;rst 0
rst $08 ;rst 1
rst $10 ;rst 2
rst $18 ;rst 3
rst $20 ;rst 4
rst $28 ;rst 5
rst $30 ;rst 6
rst $38 ;rst 7

;------------------------------------------------------------------------------
; 8080 ret ;ret
; 8080 ret c ;rc
; 8080 ret m ;rm
; 8080 ret nc ;rnc
; 8080 ret nz ;rnz
; 8080 ret pe ;rpe
; 8080 ret po ;rpo
; 8080 ret p ;rp
; 8080 ret z ;rz

;------------------------------------------------------------------------------
: RETI
ret ;ret ; reti

: RETN
ret ;ret ; retn

;------------------------------------------------------------------------------
; 8080 ccf ;cmc
; 8080 scf ;stc
; 8080 cpl ;cma
; 8080 daa ;daa

;------------------------------------------------------------------------------
: NEG
cpl ;cma ; neg
add $01 ;adi $01 ; DAO

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: NEG (TASM Version)
cpl ;cma ;
inc a ;inr a ; TASM

;------------------------------------------------------------------------------

; 8080 nop ;nop

; 8080 cp a ;cmp a
; 8080 cp b ;cmp b
; 8080 cp c ;cmp c
; 8080 cp d ;cmp d
; 8080 cp e ;cmp e
; 8080 cp h ;cmp h
; 8080 cp l ;cmp l

;------------------------------------------------------------------------------
: CP ixh
push hl ;push h ; cp IXH
ld hl,(rIX) ;lhld rIX ;
cp h ;cmp h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: CP ixl
push hl ;push h ; cp IXL
ld hl,(rIX) ;lhld rIX ;
cp l ;cmp l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: CP iyh
push hl ;push h ; cp IYH
ld hl,(rIY) ;lhld rIY ;
cp h ;cmp h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: CP iyl
push hl ;push h ; cp IYL
ld hl,(rIY) ;lhld rIY ;
cp l ;cmp l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 cp $22 ;cpi $22

; 8080 cp (hl) ;cmp m

;------------------------------------------------------------------------------
: CP (IX+d)
push hl ;push h ; cp (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
cp (hl) ;cmp m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: CP (IY+d)
push hl ;push h ; cp (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
cp (hl) ;cmp m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------

: CPDR
cp (hl) ;cmp m ; cpdr
jp z,$+21 ;jz $+21 ;
dec hl ;dcx h ;
dec bc ;dcx b ;
ld (TMP8),a ;sta TMP8 ;
ld a,b ;mov a,b ;
or c ;ora c ;
ld a,(TMP8) ;lda TMP8 ;
jp nz,$-14 ;jnz $-14 ;
xor a ;xra a ;
inc a ;inr a ; DAO
ld a,(TMP8) ;lda TMP8 ; TASM

; ret ;ret

; CPDR (TASM)
; - В случае нахождения нужного байта не определено состояние флага четности
; (оно зависит от значения искомого байта, а это не соответствует Z80).
; - Если нужный байт не найден, то флаг знака всегда будет сброшен.
; Это не совсем правильно.

;------------------------------------------------------------------------------
: CPD
cp (hl) ;cmp m ; cpd
dec hl ;dcx h ;
dec bc ;dcx b ;

;------------------------------------------------------------------------------
: CPIR
cp (hl) ;cmp m ; cpir
jp z,$+21 ;jz $+21 ;
inc hl ;inx h ;
dec bc ;dcx b ;
ld (TMP8),a ;sta TMP8 ;
ld a,b ;mov a,b ;
or c ;ora c ;
ld a,(TMP8) ;lda TMP8 ;
jp nz,$-14 ;jnz $-14 ;
xor a ;xra a ;
inc a ;inr a ; DAO
ld a,(TMP8) ;lda TMP8 ; TASM

; ret ;ret ;

; CPIR (TASM)
; - В случае нахождения нужного байта не определено состояние флага четности
; (оно зависит от значения искомого байта, а это не соответствует Z80).
; - Если нужный байт не найден, то флаг знака всегда будет сброшен.
; Это не совсем правильно.

;------------------------------------------------------------------------------
: CPI
cp (hl) ;cmp m ; cpi
inc hl ;inx h ;
dec bc ;dcx b ;

;------------------------------------------------------------------------------
; 8080 dec a ;dcr a
; 8080 dec b ;dcr b
; 8080 dec c ;dcr c
; 8080 dec d ;dcr d
; 8080 dec e ;dcr e
; 8080 dec h ;dcr h
; 8080 dec l ;dcr l

;------------------------------------------------------------------------------
: DEC ixh
push hl ;push h ; dec IXH
ld hl,(rIX) ;lhld rIX ;
dec h ;dcr h ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: DEC ixl
push hl ;push h ; dec IXL
ld hl,(rIX) ;lhld rIX ;
dec l ;dcr l ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: DEC iyh
push hl ;push h ; dec IYH
ld hl,(rIY) ;lhld rIY ;
dec h ;dcr h ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: DEC iyl
push hl ;push h ; dec IYL
ld hl,(rIY) ;lhld rIY ;
dec l ;dcr l ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 dec (hl) ;dcr m

;------------------------------------------------------------------------------
: DEC (IX+d)
push hl ;push h ; dec (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
dec (hl) ;dcr m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: DEC (IY+d)
push hl ;push h ; dec (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
dec (hl) ;dcr m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 dec bc ;dcx b
; 8080 dec de ;dcx d
; 8080 dec hl ;dcx h
; 8080 dec sp ;dcx sp

;------------------------------------------------------------------------------
: DEC IX
push hl ;push h ; dec rIX
ld hl,(rIX) ;lhld rIX ;
dec hl ;dcx h ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: DEC IY
push hl ;push h ; dec rIY
ld hl,(rIY) ;lhld rIY ;
dec hl ;dcx h ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

; 8080 ei ;ei
; 8080 di ;di
; 8080 halt ;hlt

;------------------------------------------------------------------------------
; im0 ;im0 ; im 0
; im1 ;im1 ; im 1
; im2 ;im2 ; im 2

;------------------------------------------------------------------------------
: DJNZ e
push af ;push psw ; djnz L0123
dec b ;dcr b ;
jp z,$+7 ;jz $+7 ;
pop af ;pop psw ;
jp L0123 ;jmp L0123 ;
pop af ;pop psw ; DAO

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: DJNZ e (TASM Version)
dec b ;dcr b ;
jp nz,L0123 ;jnz L0123 ;TASM

;------------------------------------------------------------------------------
: EX AF,AF'
push hl ;push h ; ex AF,AF'
push af ;push psw ;
ld hl,(rAF1) ;lhld AF ;
ex (sp),hl ;xthl ;
ld (rAF1),hl ;shld AF ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: EXX
push hl ;push h ; exx
ld hl,(rDE1) ;lhld rDE1 ;
ex de,hl ;xchg ;
ld (rDE1),hl ;shld rDE1 ;
push bc ;push b ;
ld hl,(rBC1) ;lhld rBC1 ;
ex (sp),hl ;xthl ;
ld (rBC1),hl ;shld rBC1 ;
pop bc ;pop B ;
ld hl,(rHL1) ;lhld rHL1 ;
ex (sp),hl ;xthl ;
ld (rHL1),hl ;shld rHL1 ;
pop hl ;pop h ; DAO

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: EXX (TASM Version)
push hl ;push h ;
push de ;push d ;
ld hl,(rDE1) ;lhld rDE1 ;
ex (sp),hl ;xthl ;
ld (rDE1),hl ;shld rDE1 ;
pop de ;pop d ;
push bc ;push b ;
ld hl,(rBC1) ;lhld rBC1 ;
ex (sp),hl ;xthl ;
ld (rBC1),hl ;shld rBC1 ;
pop bc ;pop b ;
ld hl,(rHL1) ;lhld rHL1 ;
ex (sp),hl ;xthl ;
ld (rHL1),hl ;shld rHL1 ;
pop hl ;pop h ; TASM

; ret ;ret

;------------------------------------------------------------------------------
; 8080 ex de,hl ;xchg
; 8080 ex (sp),hl ;xthl

;------------------------------------------------------------------------------
: EX (SP),IX
push hl ;push h ; ex (SP),IX
ld hl,(rIX) ;lhld rIX ;
ex (sp),hl ;xthl ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: EX (SP),IY
push hl ;push h ; ex (SP),IY
ld hl,(rIY) ;lhld rIY ;
ex (sp),hl ;xthl ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: IN A,(C)
ld a,c ;mov a,c ; in A,(C)
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ; mod code

;------------------------------------------------------------------------------
: IN B,(C)
push af ;push psw ; in B,(C)
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: IN C,(C)
push af ;push psw ; in C,(C)
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: IN D,(C)
push af ;push psw ; in D,(C)
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: IN E,(C)
push af ;push psw ; in E,(C)
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: IN H,(C)
push af ;push psw ; in H,(C)
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: IN L,(C)
push af ;push psw ; in L,(C)
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
; 8080 in a,($22) ;in $22

;------------------------------------------------------------------------------
: IN F,(C)
; in (C) ; in (C) ; in L01AC,(C)

;нет реализации ?

;------------------------------------------------------------------------------
: INDR
ld (TMP8),a ;sta TMP8 ; indr
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld (hl),a ;mov m,a ;
dec hl ;dcx h ; DAO
dec b ;dcr b ; TASM
jp nz,$-9 ;jnz $-9 ;
ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; INDR (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
: IND
ld (TMP8),a ;sta TMP8 ; ind
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld (hl),a ;mov m,a ; DAO
dec hl ;dcx h ; TASM
dec b ;dcr b ;
ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; IND (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
: INIR
ld (TMP8),a ;sta TMP8 ; inir
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld (hl),a ;mov m,a ;
inc hl ;inx h ; DAO
dec b ;dcr b ; TASM
jp nz,$-9 ;jnz $-9 ;
ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; INIR (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
: INI
ld (TMP8),a ;sta TMP8 ; ini
ld a,c ;mov a,c ;
ld ($+4),a ;sta $+4 ;
in a,($00) ;in 0 ;
ld (hl),a ;mov m,a ; DAO
inc hl ;inx h ; TASM
dec b ;dcr b ;
ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; INI (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
; 8080 inc a ;inr a
; 8080 inc b ;inr b
; 8080 inc c ;inr c
; 8080 inc d ;inr d
; 8080 inc e ;inr e
; 8080 inc h ;inr h
; 8080 inc l ;inr l

;------------------------------------------------------------------------------
: INC ixh
push hl ;push h ; inc IXH
ld hl,(rIX) ;lhld rIX ;
inc h ;inr h ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: INC ixl
push hl ;push h ; inc IXL
ld hl,(rIX) ;lhld rIX ;
inc l ;inr l ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: INC iyh
push hl ;push h ; inc IYH
ld hl,(rIY) ;lhld rIY ;
inc h ;inr h ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: INC iyl
push hl ;push h ; inc IYL
ld hl,(rIY) ;lhld rIY ;
inc l ;inr l ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 inc (hl) ;inr m

;------------------------------------------------------------------------------
: INC (IX+d)
push hl ;push h ; inc (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
inc (hl) ;inr m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: INC (IY+d)
push hl ;push h ; inc (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
inc (hl) ;inr m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 inc bc ;inx b
; 8080 inc de ;inx d
; 8080 inc hl ;inx h
; 8080 inc sp ;inx sp

;------------------------------------------------------------------------------
: INC IX
push hl ;push h ; inc IX
ld hl,(rIX) ;lhld rIX ;
inc hl ;inx h ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: INC IY
push hl ;push h ; inc IY
ld hl,(rIY) ;lhld rIY ;
inc hl ;inx h ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 jp L3333 ;jmp L3333

; 8080 jp (hl) ;pchl

;------------------------------------------------------------------------------
: JP (IX)
push hl ;push h ; jp (IX)
ld hl,(rIX) ;lhld rIX ;
ex (sp),hl ;xthl ;
ret ;ret ;

;------------------------------------------------------------------------------
: JP (IY)
push hl ;push h ; jp (IY)
ld hl,(rIY) ;lhld rIY ;
ex (sp),hl ;xthl ;
ret ;ret ;

;------------------------------------------------------------------------------
; 8080 jp c,L3333 ;jc L3333
; 8080 jp m,L3333 ;jm L3333
; 8080 jp nc,L3333 ;jnc L3333
; 8080 jp nz,L3333 ;jnz L3333
; 8080 jp p,L3333 ;jp L3333
; 8080 jp pe,L3333 ;jpe L3333
; 8080 jp po,L3333 ;jpo L3333
; 8080 jp z,L3333 ;jz L3333

;------------------------------------------------------------------------------
: JR e
jp L0123 ;jmp L0123 ; jr L0123
: JR C,e
jp c,L0123 ;jc L0123 ; jr c,L0123
: JR NC,e
jp nc,L0123 ;jnc L0123 ; jr nc,L0123
: JR NZ,e
jp nz,L0123 ;jnz L0123 ; jr nz,L0123
: JR Z,e
jp z,L0123 ;jz L0123 ; jr z,L0123

;------------------------------------------------------------------------------
; 8080 ld (bc),a ;stax b

; 8080 ld (de),a ;stax d

; 8080 ld (hl),a ;mov m,a
; 8080 ld (hl),b ;mov m,b
; 8080 ld (hl),c ;mov m,c
; 8080 ld (hl),d ;mov m,d
; 8080 ld (hl),e ;mov m,e
; 8080 ld (hl),h ;mov m,h
; 8080 ld (hl),l ;mov m,l

;------------------------------------------------------------------------------
: LD (IX+d),A
push hl ;push h ; ld (IX+011h),A
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IX+d),B
push hl ;push h ; ld (IX+011h),B
ld hl,(rIX) ;lhld rIX ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld (hl),b ;mov m,b ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IX+d),C
push hl ;push h ; ld (IX+011h),C
ld hl,(rIX) ;lhld rIX ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld (hl),c ;mov m,c ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IX+d),D
push hl ;push h ; ld (IX+011h),D
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),d ;mov m,d ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IX+d),E
push hl ;push h ; ld (IX+011h),E
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),e ;mov m,e ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IX+d),H
ex de,hl ;xchg ; ld (IX+011h),H
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),d ;mov m,d ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
: LD (IX+d),L
ex de,hl ;xchg ; ld (IX+011h),L
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),e ;mov m,e ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
: LD (IY+d),A
push hl ;push h ; ld (IY+011h),A
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IY+d),B
push hl ;push h ; ld (IY+011h),B
ld hl,(rIY) ;lhld rIY ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld (hl),b ;mov m,b ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IY+d),C
push hl ;push h ; ld (IY+011h),C
ld hl,(rIY) ;lhld rIY ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld (hl),c ;mov m,c ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IY+d),D
push hl ;push h ; ld (IY+011h),D
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),d ;mov m,d ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IY+d),E
push hl ;push h ; ld (IY+011h),E
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),e ;mov m,e ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IY+d),H
ex de,hl ;xchg ; ld (IY+011h),H
push hl ;push h ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),d ;mov m,d ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
: LD (IY+d),L
ex de,hl ;xchg ; ld (IY+011h),L
push hl ;push h ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),e ;mov m,e ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
; 8080 ld (hl),$22 ;mvi m,$22

;------------------------------------------------------------------------------
: LD (IX+d),n
push hl ;push h ; ld (IX+011h),$22
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),$22 ;mvi m,$22 ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (IY+d),n
push hl ;push h ; ld (IY+011h),$22
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (hl),$22 ;mvi m,$22 ;
pop hl ;pop h ;

; 8080 ld ($3333),a ;sta $3333

;------------------------------------------------------------------------------
: LD (nn),BC
push hl ;push h ; ld (L3333),BC
ld h,b ;mov h,b ;
ld l,c ;mov l,c ;
ld ($3333),hl ;shld $3333 ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (nn),DE
ex de,hl ;xchg ; ld (L3333),DE
ld ($3333),hl ;shld $3333 ;
ex de,hl ;xchg ; DAO \ TASM

;------------------------------------------------------------------------------
; 8080 ld ($3333),hl ;shld $3333

;------------------------------------------------------------------------------
: LD (nn),SP
push hl ;push h ; ld (L3333),SP
ld hl,$0000 ;lxi h,$0000 ;
push af ;push psw ;
add hl,sp ;dad sp ;
pop af ;pop psw ;
ld ($3333),hl ;shld $3333 ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (nn),IX
push hl ;push h ; ld (L3333),IX
ld hl,(rIX) ;lhld rIX ;
ld ($3333),hl ;shld $3333 ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD (nn),IY
push hl ;push h ; ld (L3333),IY
ld hl,(rIY) ;lhld rIY ;
ld ($3333),hl ;shld $3333 ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 ld a,a ;mov a,a
; 8080 ld a,b ;mov a,b
; 8080 ld a,c ;mov a,c
; 8080 ld a,d ;mov a,d
; 8080 ld a,e ;mov a,e
; 8080 ld a,h ;mov a,h
; 8080 ld a,l ;mov a,l

;------------------------------------------------------------------------------
: LD A,ixh
ld a,(rIX+1) ;lda rIX+1 ; ld A,IXH

;------------------------------------------------------------------------------
: LD A,ixl
ld a,(rIX) ;lda rIX ; ld A,IXL

;------------------------------------------------------------------------------
: LD A,iyh
ld a,(rIY+1) ;lda rIY+1 ; ld A,IYH

;------------------------------------------------------------------------------
: LD A,iyl
ld a,(rIY) ;lda rIY ; ld A,IYL

;------------------------------------------------------------------------------
; 8080 ld a,$22 ;mvi a,$22

; 8080 ld a,(bc) ;ldax b
; 8080 ld a,(de) ;ldax d
; 8080 ld a,(hl) ;mov a,m

;------------------------------------------------------------------------------
: LD A,(IX+d)
push hl ;push h ; ld A,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD A,(IY+d)
push hl ;push h ; ld A,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 ld a,($3333) ;lda $3333

; 8080 ld b,a ;mov b,a
; 8080 ld b,b ;mov b,b
; 8080 ld b,c ;mov b,c
; 8080 ld b,d ;mov b,d
; 8080 ld b,e ;mov b,e
; 8080 ld b,h ;mov b,h
; 8080 ld b,l ;mov b,l

;------------------------------------------------------------------------------
: LD B,ixh
ld (TMP),a ;sta TMP ; ld B,IXH
ld a,(rIX+1) ;lda rIX+1 ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD B,ixl
ld (TMP),a ;sta TMP ; ld B,IXL
ld a,(rIX) ;lda rIX ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD B,iyh
ld (TMP),a ;sta TMP ; ld B,IYH
ld a,(rIY+1) ;lda rIY+1 ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD B,iyl
ld (TMP),a ;sta TMP ; ld B,IYL
ld a,(rIY) ;lda rIY ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
; 8080 ld b,$22 ;mvi b,$22

; 8080 ld b,(hl) ;mov b,m

;------------------------------------------------------------------------------
: LD B,(IX+d)
push hl ;push h ; ld B,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld b,(hl) ;mov b,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD B,(IY+d)
push hl ;push h ; ld B,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld b,(hl) ;mov b,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 ld c,a ;mov c,a
; 8080 ld c,b ;mov c,b
; 8080 ld c,c ;mov c,c
; 8080 ld c,d ;mov c,d
; 8080 ld c,e ;mov c,e
; 8080 ld c,h ;mov c,h
; 8080 ld c,l ;mov c,l

;------------------------------------------------------------------------------
: LD C,ixh
ld (TMP),a ;sta TMP ; ld C,IXH
ld a,(rIX+1) ;lda rIX+1 ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD C,ixl
ld (TMP),a ;sta TMP ; ld C,IXL
ld a,(rIX) ;lda rIX ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD C,iyh
ld (TMP),a ;sta TMP ; ld C,IYH
ld a,(rIY+1) ;lda rIY+1 ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD C,iyl
ld (TMP),a ;sta TMP ; ld C,IYL
ld a,(rIY) ;lda rIY ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
; 8080 ld c,$22 ;mvi c,$22

; 8080 ld c,(hl) ;mov c,m

;------------------------------------------------------------------------------
: LD C,(IX+d)
push hl ;push h ; ld C,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld c,(hl) ;mov c,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD C,(IY+d)
push hl ;push h ; ld C,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push de ;push d ;
ld de,$0011 ;lxi d,$0011 ;
push af ;push psw ;
add hl,de ;dad d ;
pop af ;pop psw ;
pop de ;pop d ;
ld c,(hl) ;mov c,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 ld d,a ;mov d,a
; 8080 ld d,b ;mov d,b
; 8080 ld d,c ;mov d,c
; 8080 ld d,d ;mov d,d
; 8080 ld d,e ;mov d,e
; 8080 ld d,h ;mov d,h
; 8080 ld d,l ;mov d,l

;------------------------------------------------------------------------------
: LD D,ixh
ld (TMP),a ;sta TMP ; ld D,IXH
ld a,(rIX+1) ;lda rIX+1 ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD D,ixl
ld (TMP),a ;sta TMP ; ld D,IXL
ld a,(rIX) ;lda rIX ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD D,iyh
ld (TMP),a ;sta TMP ; ld D,IYH
ld a,(rIY+1) ;lda rIY+1 ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD D,iyl
ld (TMP),a ;sta TMP ; ld D,IYL
ld a,(rIY) ;lda rIY ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
; 8080 ld d,$22 ;mvi d,$22

; 8080 ld d,(hl) ;mov d,m

;------------------------------------------------------------------------------
: LD D,(IX+d)
push hl ;push h ; ld D,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld d,(hl) ;mov d,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD D,(IY+d)
push hl ;push h ; ld D,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld d,(hl) ;mov d,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 ld e,a ;mov e,a
; 8080 ld e,b ;mov e,b
; 8080 ld e,c ;mov e,c
; 8080 ld e,d ;mov e,d
; 8080 ld e,e ;mov e,e
; 8080 ld e,h ;mov e,h
; 8080 ld e,l ;mov e,l

; 8080 ld e,$22 ;mvi e,$22

;------------------------------------------------------------------------------
: LD E,ixh
ld (TMP),a ;sta TMP ; ld E,IXH
ld a,(rIX+1) ;lda rIX+1 ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD E,ixl
ld (TMP),a ;sta TMP ; ld E,IXL
ld a,(rIX) ;lda rIX ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD E,iyh
ld (TMP),a ;sta TMP ; ld E,IYH
ld a,(rIY+1) ;lda rIY+1 ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD E,iyl
ld (TMP),a ;sta TMP ; ld E,IYL
ld a,(rIY) ;lda rIY ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
; 8080 ld e,(hl) ;mov e,m

;------------------------------------------------------------------------------
: LD E,(IX+d)
push hl ;push h ; ld E,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld e,(hl) ;mov e,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD E,(IY+d)
push hl ;push h ; ld E,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld e,(hl) ;mov e,m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 ld h,a ;mov h,a
; 8080 ld h,b ;mov h,b
; 8080 ld h,c ;mov h,c
; 8080 ld h,d ;mov h,d
; 8080 ld h,e ;mov h,e
; 8080 ld h,h ;mov h,h
; 8080 ld h,l ;mov h,l

; 8080 ld h,$22 ;mvi h,$22

; 8080 ld h,(hl) ;mov h,m

;------------------------------------------------------------------------------
: LD H,(IX+d)
ex de,hl ;xchg ; ld H,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld d,(hl) ;mov d,m ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
: LD H,(IY+d)
ex de,hl ;xchg ; ld H,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld d,(hl) ;mov d,m ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
; 8080 ld l,a ;mov l,a
; 8080 ld l,b ;mov l,b
; 8080 ld l,c ;mov l,c
; 8080 ld l,d ;mov l,d
; 8080 ld l,e ;mov l,e
; 8080 ld l,h ;mov l,h
; 8080 ld l,l ;mov l,l

; 8080 ld l,$22 ;mvi l,$22

; 8080 ld l,(hl) ;mov l,m

;------------------------------------------------------------------------------
: LD L,(IX+d)
ex de,hl ;xchg ; ld L,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld e,(hl) ;mov e,m ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
: LD L,(IY+d)
ex de,hl ;xchg ; ld L,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld e,(hl) ;mov e,m ;
pop hl ;pop h ;
ex de,hl ;xchg ;

;------------------------------------------------------------------------------
: LD ixh,A
ld (rIX+1),a ;sta rIX+1 ; ld IXH,A

;------------------------------------------------------------------------------
: LD ixh,B
ld (TMP),a ;sta TMP ; ld IXH,B
ld a,b ;mov a,b ;
ld (rIX+1),a ;sta rIX+1 ;
ld a,(TMP) ;lda TMP ; можно заюзать стек

;------------------------------------------------------------------------------
: LD ixh,C
ld (TMP),a ;sta TMP ; ld IXH,C
ld a,c ;mov a,c ;
ld (rIX+1),a ;sta rIX+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixh,D
ld (TMP),a ;sta TMP ; ld IXH,D
ld a,d ;mov a,d ;
ld (rIX+1),a ;sta rIX+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixh,E
ld (TMP),a ;sta TMP ; ld IXH,E
ld a,e ;mov a,e ;
ld (rIX+1),a ;sta rIX+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixh,ixh
ld (TMP),a ;sta TMP ; ld IXH,IXH
ld a,(rIX+1) ;lda rIX+1 ;
ld (rIX+1),a ;sta rIX+1 ;
ld a,(TMP) ;lda TMP ; заменять пустотой же

;------------------------------------------------------------------------------
: LD ixh,ixl
ld (TMP),a ;sta TMP ; ld IXH,IXL
ld a,(rIX) ;lda rIX ;
ld (rIX+1),a ;sta rIX+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixh,n
push af ;push psw ; ld IXH,0DDh
ld a,$22 ;mvi a,$22 ;
ld (rIX+1),a ;sta rIX+1 ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: LD ixl,A
ld (rIX),a ;sta rIX ; ld IXL,A

;------------------------------------------------------------------------------
: LD ixl,B
ld (TMP),a ;sta TMP ; ld IXL,B
ld a,b ;mov a,b ;
ld (rIX),a ;sta rIX ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixl,C
ld (TMP),a ;sta TMP ; ld IXL,C
ld a,c ;mov a,c ;
ld (rIX),a ;sta rIX ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixl,D
ld (TMP),a ;sta TMP ; ld IXL,D
ld a,d ;mov a,d ;
ld (rIX),a ;sta rIX ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixl,E
ld (TMP),a ;sta TMP ; ld IXL,E
ld a,e ;mov a,e ;
ld (rIX),a ;sta rIX ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixl,ixh
ld (TMP),a ;sta TMP ; ld IXL,IXH
ld a,(rIX+1) ;lda rIX+1 ;
ld (rIX),a ;sta rIX ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD ixl,ixl
ld (TMP),a ;sta TMP ; ld IXL,IXL
ld a,(rIX) ;lda rIX ;
ld (rIX),a ;sta rIX ;
ld a,(TMP) ;lda TMP ; заменять пустотой же

;------------------------------------------------------------------------------
: LD ixl,n
push hl ;push h ; ld IXL,0FDh
ld hl,(rIX) ;lhld rIX ;
ld l,$22 ;mvi l,$22 ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD iyh,A
ld (rIY+1),a ;sta rIY+1 ; ld IYH,A

;------------------------------------------------------------------------------
: LD iyh,B
ld (TMP),a ;sta TMP ; ld IYH,B
ld a,b ;mov a,b ;
ld (rIY+1),a ;sta rIY+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyh,C
ld (TMP),a ;sta TMP ; ld IYH,C
ld a,c ;mov a,c ;
ld (rIY+1),a ;sta rIY+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyh,D
ld (TMP),a ;sta TMP ; ld IYH,D
ld a,d ;mov a,d ;
ld (rIY+1),a ;sta rIY+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyh,E
ld (TMP),a ;sta TMP ; ld IYH,E
ld a,e ;mov a,e ;
ld (rIY+1),a ;sta rIY+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyh,iyh
ld (TMP),a ;sta TMP ; ld IYH,IYH
ld a,(rIY+1) ;lda rIY+1 ;
ld (rIY+1),a ;sta rIY+1 ;
ld a,(TMP) ;lda TMP ; заменять пустотой же

;------------------------------------------------------------------------------
: LD iyh,iyl
ld (TMP),a ;sta TMP ; ld IYH,IYL
ld a,(rIY) ;lda rIY ;
ld (rIY+1),a ;sta rIY+1 ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyh,n
push af ;push psw ; ld IYH,0FDh
ld a,$22 ;mvi a,$22 ;
ld (rIY+1),a ;sta rIY+1 ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: LD iyl,A
ld (rIY),a ;sta rIY ; ld IYL,A

;------------------------------------------------------------------------------
: LD iyl,B
ld (TMP),a ;sta TMP ; ld IYL,B
ld a,b ;mov a,b ;
ld (rIY),a ;sta rIY ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyl,C
ld (TMP),a ;sta TMP ; ld IYL,C
ld a,c ;mov a,c ;
ld (rIY),a ;sta rIY ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyl,D
ld (TMP),a ;sta TMP ; ld IYL,D
ld a,d ;mov a,d ;
ld (rIY),a ;sta rIY ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyl,E
ld (TMP),a ;sta TMP ; ld IYL,E
ld a,e ;mov a,e ;
ld (rIY),a ;sta rIY ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyl,iyh
ld (TMP),a ;sta TMP ; ld IYL,IYH
ld a,(rIY+1) ;lda rIY+1 ;
ld (rIY),a ;sta rIY ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: LD iyl,iyl
ld (TMP),a ;sta TMP ; ld IYL,IYL
ld a,(rIY) ;lda rIY ;
ld (rIY),a ;sta rIY ;
ld a,(TMP) ;lda TMP ; заменять пустотой же

;------------------------------------------------------------------------------
: LD iyl,n
push hl ;push h ; ld rIYL,0EDh
ld hl,(rIY) ;lhld rIY ;
ld l,$22 ;mvi l,$22 ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD A,I
ld a,(rI) ;lda I ; ld A,I

;------------------------------------------------------------------------------
: LD A,R
ld a,(rR) ;lda R ; ld A,R
inc a ;inr a ;
ld (rR),a ;sta R ;

;------------------------------------------------------------------------------
: LD I,A
ld (rI),a ;sta I ; ld I,A

;------------------------------------------------------------------------------
: LD R,A
ld (rR),a ;sta R ; ld R,A

;------------------------------------------------------------------------------
; 8080 ld sp,hl ;sphl

;------------------------------------------------------------------------------
: LD SP,IX
ld (TEMP),hl ;shld TEMP ; ld SP,IX
ld hl,(rIX) ;lhld rIX ;
ld sp,hl ;sphl ;
ld hl,(TEMP) ;lhld TEMP ;

;------------------------------------------------------------------------------
: LD SP,IY
ld (TEMP),hl ;shld TEMP ; ld SP,IY
ld hl,(rIY) ;lhld rIY ;
ld sp,hl ;sphl ;
ld hl,(TEMP) ;lhld TEMP ;

; 8080 ld bc,$3333 ;lxi b,$3333
; 8080 ld de,$3333 ;lxi d,$3333
; 8080 ld hl,$3333 ;lxi h,$3333
; 8080 ld sp,$3333 ;lxi sp,$3333

;------------------------------------------------------------------------------
: LD IX,nn
push hl ;push h ; ld IX,$3333
ld hl,$3333 ;lxi h,$3333 ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD IY,nn
push hl ;push h ; ld IY,$3333
ld hl,$3333 ;lxi h,$3333 ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD BC,(nn)
push hl ;push h ; ld BC,(L3333)
ld hl,($3333) ;lhld $3333 ;
ld b,h ;mov b,h ;
ld c,l ;mov c,l ; DAO
pop hl ;pop h ; TASM

;------------------------------------------------------------------------------
: LD DE,(nn)
ex de,hl ;xchg ; ld DE,(L3333)
ld hl,($3333) ;lhld $3333 ;
ex de,hl ;xchg ; DAO \ TASM

;------------------------------------------------------------------------------
; 8080 ld hl,($3333) ;lhld $3333

;------------------------------------------------------------------------------
: LD SP,(nn)
ld (TEMP),hl ;shld TEMP ; ld SP,(L3333)
ld hl,($3333) ;lhld $3333 ;
ld sp,hl ;sphl ;
ld hl,(TEMP) ;lhld TEMP ;

;------------------------------------------------------------------------------
: LD IX,(nn)
push hl ;push h ; ld IX,(L3333)
ld hl,($3333) ;lhld $3333 ;
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LD IY,(nn)
push hl ;push h ; ld IY,(L3333)
ld hl,($3333) ;lhld $3333 ;
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: LDDR
push af ;push psw ; lddr
ld a,(hl) ;mov a,m ;
ld (de),a ;stax d ;
dec hl ;dcx h ;
dec de ;dcx d ;
dec bc ;dcx b ;
ld a,b ;mov a,b ;
or c ;ora c ;
jp nz,$-7 ;jnz $-7 ; DAO
pop af ;pop psw ; TASM

; ret ;ret

; LDDR (TASM)
; - не сбрасывается флаг четности

;------------------------------------------------------------------------------
: LDD
push af ;push psw ; ldd
ld a,(hl) ;mov a,m ;
ld (de),a ;stax d ;
dec hl ;dcx h ;
dec de ;dcx d ;
dec bc ;dcx b ; DAO
pop af ;pop psw ; TASM

; ret ;ret

; LDD (TASM)
; - флаг четности не устанавливается в зависимости от результата операции.

;------------------------------------------------------------------------------
: LDIR
push af ;push psw ; ldir
ld a,(hl) ;mov a,m ;
ld (de),a ;stax d ;
inc hl ;inx h ;
inc de ;inx d ;
dec bc ;dcx b ;
ld a,b ;mov a,b ;
or c ;ora c ;
jp nz,$-7 ;jnz $-7 ; DAO
pop af ;pop psw ; TASM

; ret ;ret

; LDIR (TASM)
; - не сбрасывается флаг четности

;------------------------------------------------------------------------------
: LDI
push af ;push psw ; ldi
ld a,(hl) ;mov a,m ;
ld (de),a ;stax d ;
inc hl ;inx h ;
inc de ;inx d ;
inc bc ;inx b ; DAO
pop af ;pop psw ; TASM

; ret ;ret

; LDI (TASM)
; - флаг четности не устанавливается в зависимости от результата операции.

;------------------------------------------------------------------------------
; 8080 or a ;ora a
; 8080 or b ;ora b
; 8080 or c ;ora c
; 8080 or d ;ora d
; 8080 or e ;ora e
; 8080 or h ;ora h
; 8080 or l ;ora l

;------------------------------------------------------------------------------
: OR ixh
push hl ;push h ; or IXH
ld hl,(rIX) ;lhld rIX ;
or h ;ora h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: OR ixl
push hl ;push h ; or IXL
ld hl,(rIX) ;lhld rIX ;
or l ;ora l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: OR iyh
push hl ;push h ; or IYH
ld hl,(rIY) ;lhld rIY ;
or h ;ora h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: OR iyl
push hl ;push h ; or IYL
ld hl,(rIY) ;lhld rIY ;
or l ;ora l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 or $22 ;ori $22

;------------------------------------------------------------------------------
; 8080 or (hl) ;ora m

;------------------------------------------------------------------------------
: OR (IX+d)
push hl ;push h ; or (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
or (hl) ;ora m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: OR (IY+d)
push hl ;push h ; or (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
or (hl) ;ora m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: OUT (C),A
push af ;push psw ; out (C),A
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
pop af ;pop psw ;
out ($00),a ;out 0 ; mod code

;------------------------------------------------------------------------------
: OUT (C),B
push af ;push psw ; out (C),B
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,b ;mov a,b ;
out ($00),a ;out 0 ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: OUT (C),C
push af ;push psw ; out (C),C
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,c ;mov a,c ;
out ($00),a ;out 0 ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: OUT (C),D
push af ;push psw ; out (C),D
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,d ;mov a,d ;
out ($00),a ;out 0 ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: OUT (C),E
push af ;push psw ; out (C),E
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,e ;mov a,e ;
out ($00),a ;out 0 ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: OUT (C),H
push af ;push psw ; out (C),H
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,h ;mov a,h ;
out ($00),a ;out 0 ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: OUT (C),L
push af ;push psw ; out (C),L
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,l ;mov a,l ;
out (0),a ;out 0 ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
: OUT (C),0
push af ;push psw ; out (C),0
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
xor a ;xra a ;
out ($00),a ;out 0 ;
pop af ;pop psw ; mod code

;------------------------------------------------------------------------------
; 8080 out ($22),A ;out $22

;------------------------------------------------------------------------------
: OTDR
ld (TMP8),a ;sta TMP8 ; otdr
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,(hl) ;mov a,m ;
out ($00),a ;out 0 ;
dec hl ;dcx h ;
dec b ;dcr b ; DAO
jp nz,$-9 ;jnz $-9 ;
ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: OTDR (TASM Version)
; ld (TMP8),a ;sta TMP8
; ld a,c ;mov a,c
; ld ($+4),a ;sta $+4
; out ($00),a ;out 0
; ld (hl),a ;mov m,a ; ERROR
; dec hl ;dcx h ;
; dec b ;dcr b ; TASM
; jp nz,$-9 ;jnz $-9 ;
; ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; OTDR (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
: OTIR
ld (TMP8),a ;sta TMP ; otir
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,(hl) ;mov a,m ;
out ($00),a ;out 0 ;
inc hl ;inx h ;
dec b ;dcr b ; DAO
jp nz,$-9 ;jnz $-9 ;
ld a,(TMP8) ;lda TMP ; mod code

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: OTIR (TASM Version)
; ld (TMP8),a ;sta TMP8 ;
; ld a,c ;mov a,c ;
; ld ($+4),a ;sta $+4 ;
; out ($00),a ;out 0 ;
; ld (hl),a ;mov m,a ; ERROR
; inc hl ;inx h ;
; dec b ;dcr b ; TASM
; jp nz,$-9 ;jnz $-9 ;
; ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; OTIR (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
: OUTD
ld (TMP8),a ;sta TMP8 ; outd
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,(hl) ;mov a,m ;
out ($00),a ;out 0 ;
dec hl ;dcx h ; DAO
dec b ;dcr b ;
ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: OUTD (TASM Version)
; ld (TMP8),a ;sta TMP8 ;
; ld a,c ;mov a,c ;
; ld ($+4),a ;sta $+4 ;
; out ($00),a ;out 0 ;
; ld (hl),a ;mov m,a ; ERROR
; dec hl ;dcx h ; TASM
; dec b ;dcr b ;
; ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; OUTD (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
: OUTI
ld (TMP8),a ;sta TMP8 ; outi
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,(hl) ;mov a,m ;
out ($00),a ;out 0 ;
inc hl ;inx h ; DAO
dec b ;dcr b ;
ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: OUTI (TASM Version)
; ld (TMP8),a ;sta TMP8 ;
; ld a,c ;mov a,c ;
; ld ($+4),a ;sta $+4 ;
; out ($00),a ;out 0 ;
; ld (hl),a ;mov m,a ; ERROR
; inc hl ;inx h ; TASM
; dec b ;dcr b ;
; ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret

; OUTI (TASM)
; - Учитывется только младший байт адреса внешнего устройства, находящийся в C

;------------------------------------------------------------------------------
; 8080 pop af ;pop psw
; 8080 pop bc ;pop b
; 8080 pop de ;pop d
; 8080 pop hl ;pop h

;------------------------------------------------------------------------------
: POP IX
ex (sp),hl ;xthl ; pop IX
ld (rIX),hl ;shld rIX ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: POP IY
ex (sp),hl ;xthl ; pop IY
ld (rIY),hl ;shld rIY ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 push af ;push psw
; 8080 push bc ;push b
; 8080 push de ;push d
; 8080 push hl ;push h

;------------------------------------------------------------------------------
: PUSH IX
push hl ;push h ; push IX
ld hl,(rIX) ;lhld rIX ;
ex (sp),hl ;xthl ;

;------------------------------------------------------------------------------
: PUSH IY
push hl ;push h ; push IY
ld hl,(rIY) ;lhld rIY ;
ex (sp),hl ;xthl ;

;------------------------------------------------------------------------------
: RES 0,A
push af ;push psw ; res 0,A
and $FE ;ani $FE ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 0,B
push af ;push psw ; res 0,B
ld a,b ;mov a,b ;
and $FE ;ani $FE ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 0,C
push af ;push psw ; res 0,C
ld a,c ;mov a,c ;
and $FE ;ani $FE ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 0,D
push af ;push psw ; res 0,D
ld a,d ;mov a,d ;
and $FE ;ani $FE ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 0,E
push af ;push psw ; res 0,E
ld a,e ;mov a,e ;
and $FE ;ani $FE ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 0,H
push af ;push psw ; res 0,H
ld a,h ;mov a,h ;
and $FE ;ani $FE ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 0,L
push af ;push psw ; res 0,L
ld a,l ;mov a,l ;
and $FE ;ani $FE ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 0,(HL)
push af ;push psw ; res 0,(HL)
ld a,(hl) ;mov a,m ;
and $FE ;ani $FE ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 0,(IX+d)
push hl ;push h ; res 0,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $FE ;ani $FE ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 0,(IX+d),A ;нет реализации?
: RES 0,(IX+d),B
: RES 0,(IX+d),C
: RES 0,(IX+d),D
: RES 0,(IX+d),E
: RES 0,(IX+d),H
: RES 0,(IX+d),L

;------------------------------------------------------------------------------
: RES 0,(IY+d)
push hl ;push h ; res 0,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $FE ;ani $FE ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 0,(IY+d),A ;нет реализации?
: RES 0,(IY+d),B
: RES 0,(IY+d),C
: RES 0,(IY+d),D
: RES 0,(IY+d),E
: RES 0,(IY+d),H
: RES 0,(IY+d),L

;------------------------------------------------------------------------------
: RES 1,A
push af ;push psw ; res 1,A
and $FD ;ani $FD ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 1,B
push af ;push psw ; res 1,B
ld a,b ;mov a,b ;
and $FD ;ani $FD ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 1,C
push af ;push psw ; res 1,C
ld a,c ;mov a,c ;
and $FD ;ani $FD ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 1,D
push af ;push psw ; res 1,D
ld a,d ;mov a,d ;
and $FD ;ani $FD ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 1,E
push af ;push psw ; res 1,E
ld a,e ;mov a,e ;
and $FD ;ani $FD ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 1,H
push af ;push psw ; res 1,H
ld a,h ;mov a,h ;
and $FD ;ani $FD ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 1,L
push af ;push psw ; res 1,L
ld a,l ;mov a,l ;
and $FD ;ani $FD ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 1,(HL)
push af ;push psw ; res 1,(HL)
ld a,(hl) ;mov a,m ;
and $FD ;ani $FD ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 1,(IX+d)
push hl ;push h ; res 1,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $FD ;ani $FD ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 1,(IX+d),A ;нет реализации?
: RES 1,(IX+d),B
: RES 1,(IX+d),C
: RES 1,(IX+d),D
: RES 1,(IX+d),E
: RES 1,(IX+d),H
: RES 1,(IX+d),L

;------------------------------------------------------------------------------
: RES 1,(IY+d)
push hl ;push h ; res 1,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $FD ;ani $FD ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 1,(IY+d),A ;нет реализации?
: RES 1,(IY+d),B
: RES 1,(IY+d),C
: RES 1,(IY+d),D
: RES 1,(IY+d),E
: RES 1,(IY+d),H
: RES 1,(IY+d),L

;------------------------------------------------------------------------------
: RES 2,A
push af ;push psw ; res 2,A
and $FB ;ani $FB ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 2,B
push af ;push psw ; res 2,B
ld a,b ;mov a,b ;
and $FB ;ani $FB ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 2,C
push af ;push psw ; res 2,C
ld a,c ;mov a,c ;
and $FB ;ani $FB ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 2,D
push af ;push psw ; res 2,D
ld a,d ;mov a,d ;
and $FB ;ani $FB ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 2,E
push af ;push psw ; res 2,E
ld a,e ;mov a,e ;
and $FB ;ani $FB ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 2,H
push af ;push psw ; res 2,H
ld a,h ;mov a,h ;
and $FB ;ani $FB ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 2,L
push af ;push psw ; res 2,L
ld a,l ;mov a,l ;
and $FB ;ani $FB ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 2,(HL)
push af ;push psw ; res 2,(HL)
ld a,(hl) ;mov a,m ;
and $FB ;ani $FB ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 2,(IX+d)
push hl ;push h ; res 2,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $FB ;ani $FB ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 2,(IX+d),A ;нет реализации?
: RES 2,(IX+d),B
: RES 2,(IX+d),C
: RES 2,(IX+d),D
: RES 2,(IX+d),E
: RES 2,(IX+d),H
: RES 2,(IX+d),L

;------------------------------------------------------------------------------
: RES 2,(IY+d)
push hl ;push h ; res 2,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $FB ;ani $FB ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 2,(IY+d),A ;нет реализации?
: RES 2,(IY+d),B
: RES 2,(IY+d),C
: RES 2,(IY+d),D
: RES 2,(IY+d),E
: RES 2,(IY+d),H
: RES 2,(IY+d),L

;------------------------------------------------------------------------------
: RES 3,A
push af ;push psw ; res 3,A
and $F7 ;ani $F7 ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 3,B
push af ;push psw ; res 3,B
ld a,b ;mov a,b ;
and $F7 ;ani $F7 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 3,C
push af ;push psw ; res 3,C
ld a,c ;mov a,c ;
and $F7 ;ani $F7 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 3,D
push af ;push psw ; res 3,D
ld a,d ;mov a,d ;
and $F7 ;ani $F7 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 3,E
push af ;push psw ; res 3,E
ld a,e ;mov a,e ;
and $F7 ;ani $F7 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 3,H
push af ;push psw ; res 3,H
ld a,h ;mov a,h ;
and $F7 ;ani $F7 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 3,L
push af ;push psw ; res 3,L
ld a,l ;mov a,l ;
and $F7 ;ani $F7 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 3,(HL)
push af ;push psw ; res 3,(HL)
ld a,(hl) ;mov a,m ;
and $F7 ;ani $F7 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 3,(IX+d)
push hl ;push h ; res 3,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $F7 ;ani $F7 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 3,(IX+d),A ;нет реализации?
: RES 3,(IX+d),B
: RES 3,(IX+d),C
: RES 3,(IX+d),D
: RES 3,(IX+d),E
: RES 3,(IX+d),H
: RES 3,(IX+d),L

;------------------------------------------------------------------------------
: RES 3,(IY+d)
push hl ;push h ; res 3,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $F7 ;ani $F7 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 3,(IY+d),A ;нет реализации?
: RES 3,(IY+d),B
: RES 3,(IY+d),C
: RES 3,(IY+d),D
: RES 3,(IY+d),E
: RES 3,(IY+d),H
: RES 3,(IY+d),L

;------------------------------------------------------------------------------
: RES 4,A
push af ;push psw ; res 4,A
and $EF ;ani $EF ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 4,B
push af ;push psw ; res 4,B
ld a,b ;mov a,b ;
and $EF ;ani $EF ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 4,C
push af ;push psw ; res 4,C
ld a,c ;mov a,c ;
and $EF ;ani $EF ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 4,D
push af ;push psw ; res 4,D
ld a,d ;mov a,d ;
and $EF ;ani $EF ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 4,E
push af ;push psw ; res 4,E
ld a,e ;mov a,e ;
and $EF ;ani $EF ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 4,H
push af ;push psw ; res 4,H
ld a,h ;mov a,h ;
and $EF ;ani $EF ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 4,L
push af ;push psw ; res 4,L
ld a,l ;mov a,l ;
and $EF ;ani $EF ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 4,(HL)
push af ;push psw ; res 4,(HL)
ld a,(hl) ;mov a,m ;
and $EF ;ani $EF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 4,(IX+d)
push hl ;push h ; res 4,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $EF ;ani $EF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 4,(IX+d),A ;нет реализации?
: RES 4,(IX+d),B
: RES 4,(IX+d),C
: RES 4,(IX+d),D
: RES 4,(IX+d),E
: RES 4,(IX+d),H
: RES 4,(IX+d),L

;------------------------------------------------------------------------------
: RES 4,(IY+d)
push hl ;push h ; res 4,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $EF ;ani $EF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 4,(IY+d),A ;нет реализации?
: RES 4,(IY+d),B
: RES 4,(IY+d),C
: RES 4,(IY+d),D
: RES 4,(IY+d),E
: RES 4,(IY+d),H
: RES 4,(IY+d),L

;------------------------------------------------------------------------------
: RES 5,A
push af ;push psw ; res 5,A
and $DF ;ani $DF ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 5,B
push af ;push psw ; res 5,B
ld a,b ;mov a,b ;
and $DF ;ani $DF ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 5,C
push af ;push psw ; res 5,C
ld a,c ;mov a,c ;
and $DF ;ani $DF ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 5,D
push af ;push psw ; res 5,D
ld a,d ;mov a,d ;
and $DF ;ani $DF ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 5,E
push af ;push psw ; res 5,E
ld a,e ;mov a,e ;
and $DF ;ani $DF ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 5,H
push af ;push psw ; res 5,H
ld a,h ;mov a,h ;
and $DF ;ani $DF ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 5,L
push af ;push psw ; res 5,L
ld a,l ;mov a,l ;
and $DF ;ani $DF ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 5,(HL)
push af ;push psw ; res 5,(HL)
ld a,(hl) ;mov a,m ;
and $DF ;ani $DF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 5,(IX+d)
push hl ;push h ; res 5,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $DF ;ani $DF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 5,(IX+d),A ;нет реализации?
: RES 5,(IX+d),B
: RES 5,(IX+d),C
: RES 5,(IX+d),D
: RES 5,(IX+d),E
: RES 5,(IX+d),H
: RES 5,(IX+d),L

;------------------------------------------------------------------------------
: RES 5,(IY+d)
push hl ;push h ; res 5,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $DF ;ani $DF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 5,(IY+d),A ;нет реализации?
: RES 5,(IY+d),B
: RES 5,(IY+d),C
: RES 5,(IY+d),D
: RES 5,(IY+d),E
: RES 5,(IY+d),H
: RES 5,(IY+d),L

;------------------------------------------------------------------------------
: RES 6,A
push af ;push psw ; res 6,A
and $BF ;ani $BF ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 6,B
push af ;push psw ; res 6,B
ld a,b ;mov a,b ;
and $BF ;ani $BF ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 6,C
push af ;push psw ; res 6,C
ld a,c ;mov a,c ;
and $BF ;ani $BF ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 6,D
push af ;push psw ; res 6,D
ld a,d ;mov a,d ;
and $BF ;ani $BF ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 6,E
push af ;push psw ; res 6,E
ld a,e ;mov a,e ;
and $BF ;ani $BF ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 6,H
push af ;push psw ; res 6,H
ld a,h ;mov a,h ;
and $BF ;ani $BF ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 6,L
push af ;push psw ; res 6,L
ld a,l ;mov a,l ;
and $BF ;ani $BF ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 6,(HL)
push af ;push psw ; res 6,(HL)
ld a,(hl) ;mov a,m ;
and $BF ;ani $BF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 6,(IX+d)
push hl ;push h ; res 6,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $BF ;ani $BF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 6,(IX+d),A ;нет реализации?
: RES 6,(IX+d),B
: RES 6,(IX+d),C
: RES 6,(IX+d),D
: RES 6,(IX+d),E
: RES 6,(IX+d),H
: RES 6,(IX+d),L

;------------------------------------------------------------------------------
: RES 6,(IY+d)
push hl ;push h ; res 6,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $BF ;ani $BF ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 6,(IY+d),A ;нет реализации?
: RES 6,(IY+d),B
: RES 6,(IY+d),C
: RES 6,(IY+d),D
: RES 6,(IY+d),E
: RES 6,(IY+d),H
: RES 6,(IY+d),L

;------------------------------------------------------------------------------
: RES 7,A
push af ;push psw ; res 7,A
and $7F ;ani $7F ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RES 7,B
push af ;push psw ; res 7,B
ld a,b ;mov a,b ;
and $7F ;ani $7F ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 7,C
push af ;push psw ; res 7,C
ld a,c ;mov a,c ;
and $7F ;ani $7F ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 7,D
push af ;push psw ; res 7,D
ld a,d ;mov a,d ;
and $7F ;ani $7F ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 7,E
push af ;push psw ; res 7,E
ld a,e ;mov a,e ;
and $7F ;ani $7F ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 7,H
push af ;push psw ; res 7,H
ld a,h ;mov a,h ;
and $7F ;ani $7F ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 7,L
push af ;push psw ; res 7,L
ld a,l ;mov a,l ;
and $7F ;ani $7F ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 7,(HL)
push af ;push psw ; res 7,(HL)
ld a,(hl) ;mov a,m ;
and $7F ;ani $7F ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: RES 7,(IX+d)
push hl ;push h ; res 7,(IX+011h)
push af ;push psw ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $7F ;ani $7F ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 7,(IX+d),A ;нет реализации?
: RES 7,(IX+d),B
: RES 7,(IX+d),C
: RES 7,(IX+d),D
: RES 7,(IX+d),E
: RES 7,(IX+d),H
: RES 7,(IX+d),L

;------------------------------------------------------------------------------
: RES 7,(IY+d)
push hl ;push h ; res 7,(IY+011h)
push af ;push psw ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
and $7F ;ani $7F ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RES 7,(IY+d),A ;нет реализации?
: RES 7,(IY+d),B
: RES 7,(IY+d),C
: RES 7,(IY+d),D
: RES 7,(IY+d),E
: RES 7,(IY+d),H
: RES 7,(IY+d),L

;------------------------------------------------------------------------------
; 8080 rla ;ral
; 8080 rra ;rar
; 8080 rlca ;rlc
; 8080 rrca ;rrc

;------------------------------------------------------------------------------
: RL A
rla ;ral ; rl A

;------------------------------------------------------------------------------
: RL B
ld (TMP),a ;sta TMP ; rl B
ld a,b ;mov a,b ;
rla ;ral ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RL C
ld (TMP),a ;sta TMP ; rl C
ld a,c ;mov a,c ;
rla ;ral ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RL D
ld (TMP),a ;sta TMP ; rl D
ld a,d ;mov a,d ;
rla ;ral ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RL E
ld (TMP),a ;sta TMP ; rl E
ld a,e ;mov a,e ;
rla ;ral ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RL H
ld (TMP),a ;sta TMP ; rl H
ld a,h ;mov a,h ;
rla ;ral ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RL L
ld (TMP),a ;sta TMP ; rl L
ld a,l ;mov a,l ;
rla ;ral ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RL (HL)
ld (TMP),a ;sta TMP ; rl (HL)
ld a,(hl) ;mov a,m ;
rla ;ral ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RL (IX+d)
push hl ;push h ; rl (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rla ;ral ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RL (IX+d),A ;нет реализации?
: RL (IX+d),B
: RL (IX+d),C
: RL (IX+d),D
: RL (IX+d),E
: RL (IX+d),H
: RL (IX+d),L

;------------------------------------------------------------------------------
: RL (IY+d)
push hl ;push h ; rl (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rla ;ral ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RL (IY+d),A ;нет реализации?
: RL (IY+d),B
: RL (IY+d),C
: RL (IY+d),D
: RL (IY+d),E
: RL (IY+d),H
: RL (IY+d),L

;------------------------------------------------------------------------------
: RLC A
rlca ;rlc ; rlc A

;------------------------------------------------------------------------------
: RLC B
ld (TMP),a ;sta TMP ; rlc B
ld a,b ;mov a,b ;
rlca ;rlc ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RLC C
ld (TMP),a ;sta TMP ; rlc C
ld a,c ;mov a,c ;
rlca ;rlc ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RLC D
ld (TMP),a ;sta TMP ; rlc D
ld a,d ;mov a,d ;
rlca ;rlc ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RLC E
ld (TMP),a ;sta TMP ; rlc E
ld a,e ;mov a,e ;
rlca ;rlc ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RLC H
ld (TMP),a ;sta TMP ; rlc H
ld a,h ;mov a,h ;
rlca ;rlc ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RLC L
ld (TMP),a ;sta TMP ; rlc L
ld a,l ;mov a,l ;
rlca ;rlc ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RLC (HL)
ld (TMP),a ;sta TMP ; rlc (HL)
ld a,(hl) ;mov a,m ;
rlca ;rlc ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RLC (IX+d)
push hl ;push h ; rlc (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rlca ;rlc ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RLC (IX+d),A ;нет реализации?
: RLC (IX+d),B
: RLC (IX+d),C
: RLC (IX+d),D
: RLC (IX+d),E
: RLC (IX+d),H
: RLC (IX+d),L

;------------------------------------------------------------------------------
: RLC (IY+d)
push hl ;push h ; rlc (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rlca ;rlc ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RLC (IY+d),A ;нет реализации?
: RLC (IY+d),B
: RLC (IY+d),C
: RLC (IY+d),D
: RLC (IY+d),E
: RLC (IY+d),H
: RLC (IY+d),L

;------------------------------------------------------------------------------
: RR A
rra ;rar ; rr A

;------------------------------------------------------------------------------
: RR B
ld (TMP),a ;sta TMP ; rr B
ld a,b ;mov a,b ;
rra ;rar ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RR C
ld (TMP),a ;sta TMP ; rr C
ld a,c ;mov a,c ;
rra ;rar ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RR D
ld (TMP),a ;sta TMP ; rr D
ld a,d ;mov a,d ;
rra ;rar ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RR E
ld (TMP),a ;sta TMP ; rr E
ld a,e ;mov a,e ;
rra ;rar ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RR H
ld (TMP),a ;sta TMP ; rr H
ld a,h ;mov a,h ;
rra ;rar ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RR L
ld (TMP),a ;sta TMP ; rr L
ld a,l ;mov a,l ;
rra ;rar ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RR (HL)
ld (TMP),a ;sta TMP ; rr (HL)
ld a,(hl) ;mov a,m ;
rra ;rar ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RR (IX+d)
push hl ;push h ; rr (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rra ;rar ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RR (IX+d),A ;нет реализации?
: RR (IX+d),B
: RR (IX+d),C
: RR (IX+d),D
: RR (IX+d),E
: RR (IX+d),H
: RR (IX+d),L

;------------------------------------------------------------------------------
: RR (IY+d)
push hl ;push h ; rr (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rra ;rar ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RR (IY+d),A ;нет реализации?
: RR (IY+d),B
: RR (IY+d),C
: RR (IY+d),D
: RR (IY+d),E
: RR (IY+d),H
: RR (IY+d),L

;------------------------------------------------------------------------------
: RRC A
rrca ;rrc ; rrc A

;------------------------------------------------------------------------------
: RRC B
ld (TMP),a ;sta TMP ; rrc B
ld a,b ;mov a,b ;
rrca ;rrc ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RRC C
ld (TMP),a ;sta TMP ; rrc C
ld a,c ;mov a,c ;
rrca ;rrc ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RRC D
ld (TMP),a ;sta TMP ; rrc D
ld a,d ;mov a,d ;
rrca ;rrc ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RRC E
ld (TMP),a ;sta TMP ; rrc E
ld a,e ;mov a,e ;
rrca ;rrc ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RRC H
ld (TMP),a ;sta TMP ; rrc H
ld a,h ;mov a,h ;
rrca ;rrc ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RRC L
ld (TMP),a ;sta TMP ; rrc L
ld a,l ;mov a,l ;
rrca ;rrc ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RRC (HL)
ld (TMP),a ;sta TMP ; rrc (HL)
ld a,(hl) ;mov a,m ;
rrca ;rrc ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: RRC (IX+d)
push hl ;push h ; rrc (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rrca ;rrc ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RRC (IX+d),A ;нет реализации?
: RRC (IX+d),B
: RRC (IX+d),C
: RRC (IX+d),D
: RRC (IX+d),E
: RRC (IX+d),H
: RRC (IX+d),L

;------------------------------------------------------------------------------
: RRC (IY+d)
push hl ;push h ; rrc (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rrca ;rrc ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: RRC (IY+d),A ;нет реализации?
: RRC (IY+d),B
: RRC (IY+d),C
: RRC (IY+d),D
: RRC (IY+d),E
: RRC (IY+d),H
: RRC (IY+d),L

;------------------------------------------------------------------------------
: RLD
push de ;push d ; rld
ld e,(hl) ;mov e,m ;
ld d,$00 ;mvi d,0 ;
ex de,hl ;xchg ;
add hl,hl ;dad h ;
add hl,hl ;dad h ;
add hl,hl ;dad h ;
add hl,hl ;dad h ;
ex de,hl ;xchg ;
ld (hl),a ;mov m,a ;
and $0F ;ani 00Fh ;
or e ;ora e ;
ld e,(hl) ;mov e,m ;
ld (hl),a ;mov m,a ;
ld a,$F0 ;mvi a,0F0h ;
and e ;ana e ;
or d ;ora d ;
pop de ;pop d ; DAO

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: RLD (TASM Version)
push de ;push d ;
ld e,(hl) ;mov e,m ;
ld d,$00 ;mvi d,0 ;
ex de,hl ;xchg ;
add hl,hl ;dad h ;
add hl,hl ;dad h ;
add hl,hl ;dad h ;
add hl,hl ;dad h ;
ex de,hl ;xchg ;
ld (TMP),a ;sta TMP ;
and $0F ;ani 0Fh ;
or e ;ora e ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
and $F0 ;ani 0F0h ;
or d ;ora d ;
pop de ;pop d ; TASM

; ret ;ret

; RLD (TASM)
; - флаг С будет всегда сброшен,
; на Z80 при выполнении этих команд не изменяется

;------------------------------------------------------------------------------
: RRD
push bc ;push b ; rrd
ld b,a ;mov b,a ;
and $0F ;ani 00Fh ;
ld c,a ;mov c,a ;
ld a,(hl) ;mov a,m ;
and $F0 ;ani 0F0h ;
or c ;ora c ;
rrca ;rrc ;
rrca ;rrc ;
rrca ;rrc ;
rrca ;rrc ;
ld c,(hl) ;mov c,m ;
ld (hl),a ;mov m,a ;
ld a,$F0 ;mvi a,0F0h ;
and b ;ana b ;
ld b,a ;mov b,a ;
ld a,$0F ;mvi a,00Fh ;
and c ;ana c ;
or b ;ora b ;
pop bc ;pop b ; DAO

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: RRD (TASM Version)
push de ;push d ;
push bc ;push b ;
ld c,a ;mov c,a ;
ld a,(hl) ;mov a,m ;
ld d,a ;mov d,a ;
and $F0 ;ani 0F0h ;
ld e,a ;mov e,a ;
ld a,c ;mov a,c ;
and $0F ;ani 0Fh ;
or e ;ora e ;
rrca ;rrc ;
rrca ;rrc ;
rrca ;rrc ;
rrca ;rrc ;
ld (hl),a ;mov m,a ;
ld a,c ;mov a,c ;
and $F0 ;ani 0F0h ;
ld e,a ;mov e,a ;
ld a,d ;mov a,d ;
and $0F ;ani 0Fh ;
or e ;ora e ;
pop bc ;pop b ;
pop de ;pop d ; TASM

; ret ;ret

; RRD (TASM)
; - флаг С будет всегда сброшен,
; на Z80 при выполнении этих команд не изменяется

;------------------------------------------------------------------------------
; 8080 sbc a ;sbb a
; 8080 sbc b ;sbb b
; 8080 sbc c ;sbb c
; 8080 sbc d ;sbb d
; 8080 sbc e ;sbb e
; 8080 sbc h ;sbb h
; 8080 sbc l ;sbb l

;------------------------------------------------------------------------------
: SBC A,ixh
push hl ;push h ; sbc A,IXH
ld hl,(rIX) ;lhld rIX ;
sbc h ;sbb h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SBC A,ixl
push hl ;push h ; sbc A,IXL
ld hl,(rIX) ;lhld rIX ;
sbc l ;sbb l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SBC A,iyh
push hl ;push h ; sbc A,IYH
ld hl,(rIY) ;lhld rIY ;
sbc h ;sbb h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SBC A,iyl
push hl ;push h ; sbc A,IYL
ld hl,(rIY) ;lhld rIY ;
sbc l ;sbb l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 sbc $22 ;sbi $22

; 8080 sbc (hl) ;sbb m

;------------------------------------------------------------------------------
: SBC A,(IX+d)
push hl ;push h ; sbc A,(IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
sbc (hl) ;sbb m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SBC A,(IY+d)
push hl ;push h ; sbc A,(IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
sbc (hl) ;sbb m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SBC HL,BC
ld (TMP),a ;sta TMP ; sbc HL,BC
ld a,l ;mov a,l ;
sbc c ;sbb c ;
ld l,a ;mov l,a ;
ld a,h ;mov a,h ;
sbc b ;sbb b ;
ld h,a ;mov h,a ;
jp c,$+7 ;jc $+7 ;
or l ;ora l ;
jp $+5 ;jmp $+5 ;
or l ;ora l ;
scf ;stc ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SBC HL,DE
ld (TMP),a ;sta TMP ; sbc HL,DE
ld a,l ;mov a,l ;
sbc e ;sbb e ;
ld l,a ;mov l,a ;
ld a,h ;mov a,h ;
sbc d ;sbb d ;
ld h,a ;mov h,a ;
jp c,$+7 ;jc $+7 ;
or l ;ora l ;
jp $+5 ;jmp $+5 ;
or l ;ora l ;
scf ;stc ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SBC HL,HL
ld hl,$0000 ;lxi h,$0000 ; sbc HL,HL
;совсем не правильно !!! ; ERROR

;------------------------------------------------------------------------------
: SBC HL,SP
ld (TMP),a ;sta TMP ; sbc HL,SP
push de ;push d ;
ex de,hl ;xchg ;
ld hl,$0000 ;lxi h,$0000 ;
add hl,sp ;dad sp ;
ex de,hl ;xchg ;
ld a,l ;mov a,l ;
sbc e ;sbb e ;
ld l,a ;mov l,a ;
ld a,h ;mov a,h ;
sbc d ;sbb d ;
ld h,a ;mov h,a ;
jp c,$+7 ;jc $+7 ;
or l ;ora l ;
jp $+5 ;jmp $+5 ;
or l ;ora l ;
scf ;stc ;
pop de ;pop d ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 0,A
push af ;push psw ; set 0,A
or $01 ;ori $01 ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 0,B
push af ;push psw ; set 0,B
ld a,b ;mov a,b ;
or $01 ;ori $01 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 0,C
push af ;push psw ; set 0,C
ld a,c ;mov a,c ;
or $01 ;ori $01 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 0,D
push af ;push psw ; set 0,D
ld a,d ;mov a,d ;
or $01 ;ori $01 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 0,E
push af ;push psw ; set 0,E
ld a,e ;mov a,e ;
or $01 ;ori $01 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 0,H
push af ;push psw ; set 0,H
ld a,h ;mov a,h ;
or $01 ;ori $01 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 0,L
push af ;push psw ; set 0,L
ld a,l ;mov a,l ;
or $01 ;ori $01 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 0,(HL)
push af ;push psw ; set 0,(HL)
ld a,(hl) ;mov a,m ;
or $01 ;ori $01 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 0,(IX+d)
push af ;push psw ; set 0,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $01 ;ori $01 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 0,(IX+d),A ;нет реализации?
: SET 0,(IX+d),B
: SET 0,(IX+d),C
: SET 0,(IX+d),D
: SET 0,(IX+d),E
: SET 0,(IX+d),H
: SET 0,(IX+d),L

;------------------------------------------------------------------------------
: SET 0,(IY+d)
push af ;push psw ; set 0,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld IY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $01 ;ori 001h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 0,(IY+d),A ;нет реализации?
: SET 0,(IY+d),B
: SET 0,(IY+d),C
: SET 0,(IY+d),D
: SET 0,(IY+d),E
: SET 0,(IY+d),H
: SET 0,(IY+d),L

;------------------------------------------------------------------------------
: SET 1,A
push af ;push psw ; set 1,A
or $02 ;ori 002h ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 1,B
push af ;push psw ; set 1,B
ld a,b ;mov a,b ;
or $02 ;ori $02 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 1,C
push af ;push psw ; set 1,C
ld a,c ;mov a,c ;
or $02 ;ori $02 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 1,D
push af ;push psw ; set 1,D
ld a,d ;mov a,d ;
or $02 ;ori $02 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 1,E
push af ;push psw ; set 1,E
ld a,e ;mov a,e ;
or $02 ;ori $02 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 1,H
push af ;push psw ; set 1,H
ld a,h ;mov a,h ;
or $02 ;ori $02 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 1,L
push af ;push psw ; set 1,L
ld a,l ;mov a,l ;
or $02 ;ori $02 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 1,(HL)
push af ;push psw ; set 1,(HL)
ld a,(hl) ;mov a,m ;
or $02 ;ori $02 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 1,(IX+d)
push af ;push psw ; set 1,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $02 ;ori $02 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 1,(IX+d),A ;нет реализации?
: SET 1,(IX+d),B
: SET 1,(IX+d),C
: SET 1,(IX+d),D
: SET 1,(IX+d),E
: SET 1,(IX+d),H
: SET 1,(IX+d),L

;------------------------------------------------------------------------------
: SET 1,(IY+d)
push af ;push psw ; set 1,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $02 ;ori 002h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 1,(IY+d),A ;нет реализации?
: SET 1,(IY+d),B
: SET 1,(IY+d),C
: SET 1,(IY+d),D
: SET 1,(IY+d),E
: SET 1,(IY+d),H
: SET 1,(IY+d),L

;------------------------------------------------------------------------------
: SET 2,A
push af ;push psw ; set 2,A
or $04 ;ori 004h ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;может можно оптимизировать по размеру?

;------------------------------------------------------------------------------
: SET 2,B
push af ;push psw ; set 2,B
ld a,b ;mov a,b ;
or $04 ;ori $04 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 2,C
push af ;push psw ; set 2,C
ld a,c ;mov a,c ;
or $04 ;ori $04 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 2,D
push af ;push psw ; set 2,D
ld a,d ;mov a,d ;
or $04 ;ori $04 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 2,E
push af ;push psw ; set 2,E
ld a,e ;mov a,e ;
or $04 ;ori $04 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 2,H
push af ;push psw ; set 2,H
ld a,h ;mov a,h ;
or $04 ;ori $04 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 2,L
push af ;push psw ; set 2,L
ld a,l ;mov a,l ;
or $04 ;ori $04 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 2,(HL)
push af ;push psw ; set 2,(HL)
ld a,(hl) ;mov a,m ;
or $04 ;ori $04 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 2,(IX+d)
push af ;push psw ; set 2,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $04 ;ori $04 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 2,(IX+d),A ;нет реализации?
: SET 2,(IX+d),B
: SET 2,(IX+d),C
: SET 2,(IX+d),D
: SET 2,(IX+d),E
: SET 2,(IX+d),H
: SET 2,(IX+d),L

;------------------------------------------------------------------------------
: SET 2,(IY+d)
push af ;push psw ; set 2,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld IY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $04 ;ori 004h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 2,(IY+d),A ;нет реализации?
: SET 2,(IY+d),B
: SET 2,(IY+d),C
: SET 2,(IY+d),D
: SET 2,(IY+d),E
: SET 2,(IY+d),H
: SET 2,(IY+d),L

;------------------------------------------------------------------------------
: SET 3,A
push af ;push psw ; set 3,A
or $08 ;ori 008h ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 3,B
push af ;push psw ; set 3,B
ld a,b ;mov a,b ;
or $08 ;ori $08 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 3,C
push af ;push psw ; set 3,C
ld a,c ;mov a,c ;
or $08 ;ori $08 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 3,D
push af ;push psw ; set 3,D
ld a,d ;mov a,d ;
or $08 ;ori $08 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 3,E
push af ;push psw ; set 3,E
ld a,e ;mov a,e ;
or $08 ;ori $08 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 3,H
push af ;push psw ; set 3,H
ld a,h ;mov a,h ;
or $08 ;ori $08 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 3,L
push af ;push psw ; set 3,L
ld a,l ;mov a,l ;
or $08 ;ori $08 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 3,(HL)
push af ;push psw ; set 3,(HL)
ld a,(hl) ;mov a,m ;
or $08 ;ori $08 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 3,(IX+d)
push af ;push psw ; set 3,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $08 ;ori $08 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 3,(IX+d),A ;нет реализации?
: SET 3,(IX+d),B
: SET 3,(IX+d),C
: SET 3,(IX+d),D
: SET 3,(IX+d),E
: SET 3,(IX+d),H
: SET 3,(IX+d),L

;------------------------------------------------------------------------------
: SET 3,(IY+d)
push af ;push psw ; set 3,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld IY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $08 ;ori 008h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 3,(IY+d),A ;нет реализации?
: SET 3,(IY+d),B
: SET 3,(IY+d),C
: SET 3,(IY+d),D
: SET 3,(IY+d),E
: SET 3,(IY+d),H
: SET 3,(IY+d),L

;------------------------------------------------------------------------------
: SET 4,A
push af ;push psw ; set 4,A
or $10 ;ori 010h ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 4,B
push af ;push psw ; set 4,B
ld a,b ;mov a,b ;
or $10 ;ori $10 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 4,C
push af ;push psw ; set 4,C
ld a,c ;mov a,c ;
or $10 ;ori $10 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 4,D
push af ;push psw ; set 4,D
ld a,d ;mov a,d ;
or $10 ;ori $10 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 4,E
push af ;push psw ; set 4,E
ld a,e ;mov a,e ;
or $10 ;ori $10 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 4,H
push af ;push psw ; set 4,H
ld a,h ;mov a,h ;
or $10 ;ori $10 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 4,L
push af ;push psw ; set 4,L
ld a,l ;mov a,l ;
or $10 ;ori $10 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 4,(HL)
push af ;push psw ; set 4,(HL)
ld a,(hl) ;mov a,m ;
or $10 ;ori $10 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 4,(IX+d)
push af ;push psw ; set 4,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $10 ;ori $10 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 4,(IX+d),A ;нет реализации?
: SET 4,(IX+d),B
: SET 4,(IX+d),C
: SET 4,(IX+d),D
: SET 4,(IX+d),E
: SET 4,(IX+d),H
: SET 4,(IX+d),L

;------------------------------------------------------------------------------
: SET 4,(IY+d)
push af ;push psw ; set 4,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld IY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $10 ;ori 010h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 4,(IY+d),A ;нет реализации?
: SET 4,(IY+d),B
: SET 4,(IY+d),C
: SET 4,(IY+d),D
: SET 4,(IY+d),E
: SET 4,(IY+d),H
: SET 4,(IY+d),L

;------------------------------------------------------------------------------
: SET 5,A
push af ;push psw ; set 5,A
or $20 ;ori 020h ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 5,B
push af ;push psw ; set 5,B
ld a,b ;mov a,b ;
or $20 ;ori $20 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 5,C
push af ;push psw ; set 5,C
ld a,c ;mov a,c ;
or $20 ;ori $20 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 5,D
push af ;push psw ; set 5,D
ld a,d ;mov a,d ;
or $20 ;ori $20 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 5,E
push af ;push psw ; set 5,E
ld a,e ;mov a,e ;
or $20 ;ori $20 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 5,H
push af ;push psw ; set 5,H
ld a,h ;mov a,h ;
or $20 ;ori $20 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 5,L
push af ;push psw ; set 5,L
ld a,l ;mov a,l ;
or $20 ;ori $20 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 5,(HL)
push af ;push psw ; set 5,(HL)
ld a,(hl) ;mov a,m ;
or $20 ;ori $20 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 5,(IX+d)
push af ;push psw ; set 5,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $20 ;ori $20 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 5,(IX+d),A ;нет реализации?
: SET 5,(IX+d),B
: SET 5,(IX+d),C
: SET 5,(IX+d),D
: SET 5,(IX+d),E
: SET 5,(IX+d),H
: SET 5,(IX+d),L

;------------------------------------------------------------------------------
: SET 5,(IY+d)
push af ;push psw ; set 5,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld IY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $20 ;ori 020h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 5,(IY+d),A ;нет реализации?
: SET 5,(IY+d),B
: SET 5,(IY+d),C
: SET 5,(IY+d),D
: SET 5,(IY+d),E
: SET 5,(IY+d),H
: SET 5,(IY+d),L

;------------------------------------------------------------------------------
: SET 6,A
push af ;push psw ; set 6,A
or $40 ;ori 040h ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 6,B
push af ;push psw ; set 6,B
ld a,b ;mov a,b ;
or $40 ;ori $40 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 6,C
push af ;push psw ; set 6,C
ld a,c ;mov a,c ;
or $40 ;ori $40 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 6,D
push af ;push psw ; set 6,D
ld a,d ;mov a,d ;
or $40 ;ori $40 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 6,E
push af ;push psw ; set 6,E
ld a,e ;mov a,e ;
or $40 ;ori $40 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 6,H
push af ;push psw ; set 6,H
ld a,h ;mov a,h ;
or $40 ;ori $40 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 6,L
push af ;push psw ; set 6,L
ld a,l ;mov a,l ;
or $40 ;ori $40 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 6,(HL)
push af ;push psw ; set 6,(HL)
ld a,(hl) ;mov a,m ;
or $40 ;ori $40 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 6,(IX+d)
push af ;push psw ; set 6,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $40 ;ori $40 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;
;------------------------------------------------------------------------------

: SET 6,(IX+d),A ;нет реализации?
: SET 6,(IX+d),B
: SET 6,(IX+d),C
: SET 6,(IX+d),D
: SET 6,(IX+d),E
: SET 6,(IX+d),H
: SET 6,(IX+d),L

;------------------------------------------------------------------------------
: SET 6,(IY+d)
push af ;push psw ; set 6,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld IY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $40 ;ori 040h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 6,(IY+d),A ;нет реализации?
: SET 6,(IY+d),B
: SET 6,(IY+d),C
: SET 6,(IY+d),D
: SET 6,(IY+d),E
: SET 6,(IY+d),H
: SET 6,(IY+d),L

;------------------------------------------------------------------------------
: SET 7,A
push af ;push psw ; set 7,A
or $80 ;ori 080h ;
ld (TMP),a ;sta TMP ;
pop af ;pop psw ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SET 7,B
push af ;push psw ; set 7,B
ld a,b ;mov a,b ;
or $80 ;ori $80 ;
ld b,a ;mov b,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 7,C
push af ;push psw ; set 7,C
ld a,c ;mov a,c ;
or $80 ;ori $80 ;
ld c,a ;mov c,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 7,D
push af ;push psw ; set 7,D
ld a,d ;mov a,d ;
or $80 ;ori $80 ;
ld d,a ;mov d,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 7,E
push af ;push psw ; set 7,E
ld a,e ;mov a,e ;
or $80 ;ori $80 ;
ld e,a ;mov e,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 7,H
push af ;push psw ; set 7,H
ld a,h ;mov a,h ;
or $80 ;ori $80 ;
ld h,a ;mov h,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 7,L
push af ;push psw ; set 7,L
ld a,l ;mov a,l ;
or $80 ;ori $80 ;
ld l,a ;mov l,a ;
pop af ;pop psw ; DAO \ TASM

;------------------------------------------------------------------------------
: SET 7,(HL)
push af ;push psw ; set 7,(HL)
ld a,(hl) ;mov a,m ;
or $80 ;ori $80 ;
ld (hl),a ;mov m,a ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 7,(IX+d)
push af ;push psw ; set 7,(IX+011h)
push hl ;push h ;
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $80 ;ori $80 ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 7,(IX+d),A ;нет реализации?
: SET 7,(IX+d),B
: SET 7,(IX+d),C
: SET 7,(IX+d),D
: SET 7,(IX+d),E
: SET 7,(IX+d),H
: SET 7,(IX+d),L

;------------------------------------------------------------------------------
: SET 7,(IY+d)
push af ;push psw ; set 7,(IY+011h)
push hl ;push h ;
ld hl,(rIY) ;lhld IY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,00011h ;
add hl,bc ;dad b ;
pop bc ;pop b ;
ld a,(hl) ;mov a,m ;
or $80 ;ori 080h ;
ld (hl),a ;mov m,a ;
pop hl ;pop h ;
pop af ;pop psw ;

;------------------------------------------------------------------------------
: SET 7,(IY+d),A ;нет реализации?
: SET 7,(IY+d),B
: SET 7,(IY+d),C
: SET 7,(IY+d),D
: SET 7,(IY+d),E
: SET 7,(IY+d),H
: SET 7,(IY+d),L

;------------------------------------------------------------------------------
: SLA A
or a ;ora a ; sla A
rla ;ral ;

;------------------------------------------------------------------------------
: SLA B
ld (TMP),a ;sta TMP ; sla B
ld a,b ;mov a,b ;
or a ;ora a ;
rla ;ral ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLA C
ld (TMP),a ;sta TMP ; sla C
ld a,c ;mov a,c ;
or a ;ora a ;
rla ;ral ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLA D
ld (TMP),a ;sta TMP ; sla D
ld a,d ;mov a,d ;
or a ;ora a ;
rla ;ral ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLA E
ld (TMP),a ;sta TMP ; sla E
ld a,e ;mov a,e ;
or a ;ora a ;
rla ;ral ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLA H
ld (TMP),a ;sta TMP ; sla H
ld a,h ;mov a,h ;
or a ;ora a ;
rla ;ral ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLA L
ld (TMP),a ;sta TMP ; sla L
ld a,l ;mov a,l ;
or a ;ora a ;
rla ;ral ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLA (HL)
ld (TMP),a ;sta TMP ; sla (HL)
ld a,(hl) ;mov a,m ;
or a ;ora a ;
rla ;ral ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLA (IX+d)
push hl ;push h ; sla (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
or a ;ora a ;
rla ;ral ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SLA (IX+d),A ;нет реализации?
: SLA (IX+d),B
: SLA (IX+d),C
: SLA (IX+d),D
: SLA (IX+d),E
: SLA (IX+d),H
: SLA (IX+d),L

;------------------------------------------------------------------------------
: SLA (IY+d)
push hl ;push h ; sla (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
or a ;ora a ;
rla ;ral ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SLA (IY+d),A ;нет реализации?
: SLA (IY+d),B
: SLA (IY+d),C
: SLA (IY+d),D
: SLA (IY+d),E
: SLA (IY+d),H
: SLA (IY+d),L

;------------------------------------------------------------------------------
: SLL A
rlca ;rlc ; sll A
or $01 ;ori $01 ;

;------------------------------------------------------------------------------
: SLL B
ld (TMP),a ;sta TMP ; sll B
ld a,b ;mov a,b ;
rlca ;rlc ;
or $01 ;ori $01 ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLL C
ld (TMP),a ;sta TMP ; sll C
ld a,c ;mov a,c ;
rlca ;rlc ;
or $01 ;ori $01 ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLL D
ld (TMP),a ;sta TMP ; sll D
ld a,d ;mov a,d ;
rlca ;rlc ;
or $01 ;ori $01 ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLL E
ld (TMP),a ;sta TMP ; sll E
ld a,e ;mov a,e ;
rlca ;rlc ;
or $01 ;ori $01 ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLL H
ld (TMP),a ;sta TMP ; sll H
ld a,h ;mov a,h ;
rlca ;rlc ;
or $01 ;ori $01 ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLL L
ld (TMP),a ;sta TMP ; sll L
ld a,l ;mov a,l ;
rlca ;rlc ;
or $01 ;ori $01 ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLL (HL)
ld (TMP),a ;sta TMP ; sll (HL)
ld a,(hl) ;mov a,m ;
rlca ;rlc ;
or $01 ;ori $01 ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SLL (IX+d) ;нет реализации?
;мусор
; ld (TMP),a ;sta TMP ; rl C
; ld a,(hl) ;mov a,m ;
; rlca ;rlc ;
; or $01 ;ori 001h ;
; ld (hl),a ;mov m,a ;
; ld a,(TMP) ;lda TMP ;
; ld (hl),$00 ;mvi m,000h

;------------------------------------------------------------------------------
: SLL (IX+d),A ;нет реализации?
: SLL (IX+d),B
: SLL (IX+d),C
: SLL (IX+d),D
: SLL (IX+d),E
: SLL (IX+d),H
: SLL (IX+d),L

;------------------------------------------------------------------------------
: SLL (IY+d) ;нет реализации?
;мусор
; ld (TMP),a ;sta TMP ; rl C
; ld a,(hl) ;mov a,m ;
; rlca ;rlc ;
; or $01 ;ori 001h ;
; ld (hl),a ;mov m,a ;
; ld a,(TMP) ;lda TMP ;
; ld (hl),$00 ;mvi m,000h

;------------------------------------------------------------------------------
: SLL (IY+d),A ;нет реализации?
: SLL (IY+d),B
: SLL (IY+d),C
: SLL (IY+d),D
: SLL (IY+d),E
: SLL (IY+d),H
: SLL (IY+d),L

;------------------------------------------------------------------------------
: SRA A
ld (TMP),a ;sta TMP ; sra A
rla ;ral ;
ld a,(TMP) ;lda TMP ;
rra ;rar ;

;------------------------------------------------------------------------------
: SRA B
ld (TMP),a ;sta TMP ; sra B
ld a,b ;mov a,b ;
rla ;ral ;
ld a,b ;mov a,b ;
rra ;rar ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRA C
ld (TMP),a ;sta TMP ; sra C
ld a,c ;mov a,c ;
rla ;ral ;
ld a,c ;mov a,c ;
rra ;rar ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRA D
ld (TMP),a ;sta TMP ; sra D
ld a,d ;mov a,d ;
rla ;ral ;
ld a,d ;mov a,d ;
rra ;rar ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRA E
ld (TMP),a ;sta TMP ; sra E
ld a,e ;mov a,e ;
rla ;ral ;
ld a,e ;mov a,e ;
rra ;rar ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRA H
ld (TMP),a ;sta TMP ; sra H
ld a,h ;mov a,h ;
rla ;ral ;
ld a,h ;mov a,h ;
rra ;rar ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRA L
ld (TMP),a ;sta TMP ; sra L
ld a,l ;mov a,l ;
rla ;ral ;
ld a,l ;mov a,l ;
rra ;rar ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRA (HL)
ld (TMP),a ;sta TMP ; sra (HL)
ld a,(hl) ;mov a,m ;
rla ;ral ;
ld a,(hl) ;mov a,m ;
rra ;rar ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRA (IX+d)
push hl ;push h ; sra (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rla ;ral ;
ld a,(hl) ;mov a,m ;
rra ;rar ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SRA (IX+d),A ;нет реализации?
: SRA (IX+d),B
: SRA (IX+d),C
: SRA (IX+d),D
: SRA (IX+d),E
: SRA (IX+d),H
: SRA (IX+d),L

;------------------------------------------------------------------------------
: SRA (IY+d)
push hl ;push h ; sra (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
ld (TMP),a ;sta TMP ;
ld a,(hl) ;mov a,m ;
rla ;ral ;
ld a,(hl) ;mov a,m ;
rra ;rar ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SRA (IY+d),A ;нет реализации?
: SRA (IY+d),B
: SRA (IY+d),C
: SRA (IY+d),D
: SRA (IY+d),E
: SRA (IY+d),H
: SRA (IY+d),L

;------------------------------------------------------------------------------
: SRL A ;уточнить !!!
or a ;ora a ; srl A
rra ;rar ;

;------------------------------------------------------------------------------
: SRL B
ld (TMP),a ;sta TMP ; srl B
ld a,b ;mov a,b ;
or a ;ora a ;
rra ;rar ;
ld b,a ;mov b,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRL C
ld (TMP),a ;sta TMP ; srl C
ld a,c ;mov a,c ;
or a ;ora a ;
rra ;rar ;
ld c,a ;mov c,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRL D
ld (TMP),a ;sta TMP ; srl D
ld a,d ;mov a,d ;
or a ;ora a ;
rra ;rar ;
ld d,a ;mov d,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRL E
ld (TMP),a ;sta TMP ; srl E
ld a,e ;mov a,e ;
or a ;ora a ;
rra ;rar ;
ld e,a ;mov e,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRL H
ld (TMP),a ;sta TMP ; srl H
ld a,h ;mov a,h ;
or a ;ora a ;
rra ;rar ;
ld h,a ;mov h,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRL L
ld (TMP),a ;sta TMP ; srl L
ld a,l ;mov a,l ;
or a ;ora a ;
rra ;rar ;
ld l,a ;mov l,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRL (HL)
ld (TMP),a ;sta TMP ; srl (HL)
ld a,(hl) ;mov a,m ;
or a ;ora a ;
rra ;rar ;
ld (hl),a ;mov m,a ;
ld a,(TMP) ;lda TMP ;

;------------------------------------------------------------------------------
: SRL (IX+d) ;нет реализации?
;мусор
; ld (TMP),a ;sta TMP ; rl C
; ld a,(hl) ;mov a,m ;
; or a ;ora a ;
; rra ;rar ;
; ld (hl),a ;mov m,a ;
; ld a,(TMP) ;lda TMP ;
; ld a,$00 ;mvi a,000h

;------------------------------------------------------------------------------
: SRL (IX+d),A ;нет реализации?
: SRL (IX+d),B
: SRL (IX+d),C
: SRL (IX+d),D
: SRL (IX+d),E
: SRL (IX+d),H
: SRL (IX+d),L

;------------------------------------------------------------------------------
: SRL (IY+d) ;нет реализации?
;мусор
; ld (TMP),a ;sta TMP ; rl C
; ld a,(hl) ;mov a,m ;
; or a ;ora a ;
; rra ;rar ;
; ld (hl),a ;mov m,a ;
; ld a,(TMP) ;lda TMP ;
; ld a,$00 ;mvi a,000h

;------------------------------------------------------------------------------
: SRL (IY+d),A ;нет реализации?
: SRL (IY+d),B
: SRL (IY+d),C
: SRL (IY+d),D
: SRL (IY+d),E
: SRL (IY+d),H
: SRL (IY+d),L

;------------------------------------------------------------------------------
; 8080 sub a ;sub a
; 8080 sub b ;sub b
; 8080 sub c ;sub c
; 8080 sub d ;sub d
; 8080 sub e ;sub e
; 8080 sub h ;sub h
; 8080 sub l ;sub l

;------------------------------------------------------------------------------
: SUB ixh
push hl ;push h ; sub IXH
ld hl,(rIX) ;lhld rIX ;
sub h ;sub h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SUB ixl
push hl ;push h ; sub IXL
ld hl,(rIX) ;lhld rIX ;
sub l ;sub l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SUB iyh
push hl ;push h ; sub IYH
ld hl,(rIY) ;lhld rIY ;
sub h ;sub h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SUB iyl
push hl ;push h ; sub IYL
ld hl,(rIY) ;lhld rIY ;
sub l ;sub l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 sub $22 ;sui $22

; 8080 sub (hl) ;sub m
;при первой попытке DAO вообще не выдал никакой команды!!!

;------------------------------------------------------------------------------
: SUB (IX+d)
push hl ;push h ; sub (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
sub (hl) ;sub m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: SUB (IY+d)
push hl ;push h ; sub (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
add hl,bc ;dad b ;
pop bc ;pop b ;
sub (hl) ;sub m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 xor a ;xra a
; 8080 xor b ;xra b
; 8080 xor c ;xra c
; 8080 xor d ;xra d
; 8080 xor e ;xra e
; 8080 xor h ;xra h
; 8080 xor l ;xra l

;------------------------------------------------------------------------------
: XOR ixh
push hl ;push h ; xor rIXH
ld hl,(rIX) ;lhld rIX ;
xor h ;xra h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: XOR ixl
push hl ;push h ; xor rIXL
ld hl,(rIX) ;lhld rIX ;
xor l ;xra l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: XOR iyh
push hl ;push h ; xor rIYH
ld hl,(rIY) ;lhld rIY ;
xor h ;xra h ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: XOR iyl
push hl ;push h ; xor rIYL
ld hl,(rIY) ;lhld rIY ;
xor l ;xra l ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
; 8080 xor $22 ;xri $22

; 8080 xor (hl) ;xra m

;------------------------------------------------------------------------------
: XOR (IX+d)
push hl ;push h ; xor (IX+011h)
ld hl,(rIX) ;lhld rIX ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
xor (hl) ;xra m ;
pop hl ;pop h ;

;------------------------------------------------------------------------------
: XOR (IY+d)
push hl ;push h ; xor (IY+011h)
ld hl,(rIY) ;lhld rIY ;
push bc ;push b ;
ld bc,$0011 ;lxi b,$0011 ;
push af ;push psw ;
add hl,bc ;dad b ;
pop af ;pop psw ;
pop bc ;pop b ;
xor (hl) ;xra m ;
pop hl ;pop h ;

;================================================= =============================

Denn
11.02.2021, 14:29
[#2]-> Начало было хорошее, но после этого


ну а так как все нормальные люди кодят в sjasm-е
и мнемониками z80 а не пиктограммами 8080
а дизассемблируюут идой а не самописными досовскими утилитами
то эти 2 средства сейчас полностью и апсолютно бесполезны...

у причастных к 8080 сразу весь интерес на полшестого(



а тут раздел про спектрумы

Казалось бы, где спектрумы и где 8080..)

NEO SPECTRUMAN
11.02.2021, 14:37
у причастных к 8080
у причастных к 8080 есть своя тема в очетественных компутерах :v2_tong2:
https://zx-pk.ru/threads/8712-rekompilyatsiya-z80-gt-kr580vm80a.html
и дето еще обсуждалось...

а тут раздел про спектрумы :v2_lol:
и адаптации спектрумистами

а так для криптоаналитиков 8080 пиктограммы с боку оставлены



Казалось бы, где спектрумы и где 8080..)
ты отстал от жизни :)
https://zx-pk.ru/threads/32131-daungrejd-kompyutera-quot-leningrad-quot.html

- - - Добавлено - - -


сразу весь интерес на полшестого(
и опять же единственный нормальный компилятор из всех существующих вообще это sjasm
8080 кракозябры он не поддержуит...
только z80 подобные
пользоваться после него другими убогими асмами не реально
так что увы
лавочка только для белых :)

нормального средства для перевода z80 <=> 8080 не нашлось...

Denn
11.02.2021, 14:54
единственный нормальный компилятор из всех существующих вообще это sjasm
...
пользоваться после него другими убогими асмами не реально

IBM-PC единственный нормальный ПК из всех существующих вообще, пользоваться после него другими убогими (8-битками) не реально

- - - Добавлено - - -

Английский язык единственный нормальный в мире из всех существующих вообще, пользоваться после него другими убогими нет смысла

- - - Добавлено - - -

Омериканские разработчики единственные нормальные из всех существующих вообще, после них все другие - убогие

- - - Добавлено - - -

и т.д. до "вся наша возня здесь не имеет смысла"

NEO SPECTRUMAN
12.02.2021, 03:47
в тасме тоже не без ошибок

все set и res пушат af а потом восстанавливают в hl...



;.ADDINSTR SET 4,H F16710F67CF5 6 NOP 1; push psw\ mov a,h
\ ori 10h\ mov h,a\ pop h

;.ADDINSTR RES 0,H F167FEE67CF5 6 NOP 1; push psw\ mov a,h
\ ani 0feh\ mov h,a\ pop h



хотя видимо это ошибка в коментариях
hex значения вроде бы делают push af pop af

еще OTIR OTDR пишут в память...

Sayman
12.02.2021, 06:09
так же в тему призываются
8080 не интерисует. делай как хошь...

ivagor
12.02.2021, 07:27
еще OTIR OTDR пишут в память...
Там много кто пишет в память, главное, что otir и otdr пишут в порт

NEO SPECTRUMAN
12.02.2021, 10:43
Там много кто пишет в память, главное, что otir и otdr пишут в порт
нет

это скорей всего сложность в понимании своих 8080 клинописей



: OTIR
ld (TMP8),a ;sta TMP ; otir
ld a,c ;mov a,c ;
ld ($+5),a ;sta $+5 ;
ld a,(hl) ;mov a,m ;
out ($00),a ;out 0 ;
inc hl ;inx h ;
dec b ;dcr b ; DAO
jp nz,$-9 ;jnz $-9 ;
ld a,(TMP8) ;lda TMP ; mod code

; ret ;ret

; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
: OTIR (TASM Version)
; ld (TMP8),a ;sta TMP8 ;
; ld a,c ;mov a,c ;
; ld ($+4),a ;sta $+4 ;
; out ($00),a ;out 0 ;
; ld (hl),a ;mov m,a ; ERROR
; inc hl ;inx h ;
; dec b ;dcr b ; TASM
; jp nz,$-9 ;jnz $-9 ;
; ld a,(TMP8) ;lda TMP8 ; mod code

; ret ;ret



тупо перепутана mov m.a и mov a,m (для меня вообще это выглядит как 2 одинаковых строчки и нужно всматриваться)
и не в том месте
в z80 четка видно ld (hl),a и ld a,(hl) и перепутать чтение и запись физически нельзя
и не сливается в сплошной столб мракобесия как на 6502 и 8080 за который глазу не как заципится

mvx 5
ewr y
fje w
rfi f
hwe l
rjf n
ewr f

мало того это во всей INIR, INDR, OTIR, OTDR, INI, IND, OUTI, OUTD группе....
и видимо ошибка скопипастилась потом еще 6 раз и даже не заметилась...
ну и в данном случае реабилитирующих hex значений рядом найдено не было

ivagor
12.02.2021, 11:08
мало того это во всей INIR, INDR, OTIR, OTDR, INI, IND, OUTI, OUTD группе....
Неправильные: OTIR, OTDR, OUTI, OUTD; правильные: INIR, INDR, INI, IND.

NEO SPECTRUMAN
12.02.2021, 11:14
до вроде так

значит otir-ы делались из inir-оа
а суть прозевали...
но не важно это io часть и она скорей всего будет меняться при адаптации
и наверно по этому и прозевалось


в dao вон вообще прозевали

: SBC HL,HL
ld hl,$0000 ;lxi h,$0000 ; sbc HL,HL
вот это может закончится фиаском....
...конечно эта команда может использовать и для быстрого зануления hl
но для этого нужно иметь подготовленный carry флаг...

ivagor
12.02.2021, 12:23
Несмотря на некоторый негатив мне все же приятно, что кто-то заинтересовался, не не только dao Tim0xи (к которому я тоже немного приложил руку), но даже моей поделкой 20 летней давности, но думаю стоит добавить небольшой исторический экскурс для прояснения ситуации с трансляцией z80->8080 и с багами.
В 2000 у Tim0xи и у меня решение заняться рекомпиляцией z80->8080 дошло до практической стадии, но мы сначала пошли немного разными путями. Он взял рекомпилятор z80->8086 Валерия Бостана и стал переделывать его с использованием макросов из игр рекомпилированных на Вектор, Корвет, ПК8000 и ПК8002 в московском Счетмаше. А я сделал таблицу для tasm. Можно проследить по датам, что свой вариант я поддерживал несколько месяцев, потом полностью переключился на dao Tim0xи. Поэтому в тасмовской табличке не исправлены в частности outi, outd, otir, otdr, которые исправлены в dao. И возможно у меня там есть еще ошибки. И в dao есть ошибки. Но надо отметить, что выложенная версия 1.15 не является последней, была следующая версия (а может не одна, я уже не помню) с серьезной переработкой, которая понадобилась при рекомпиляции очередной игры. Проект (dao) по ретрокомпьютерным меркам сравнительно большой и сложный, поэтому ошибки в нем были и есть, исправляли их по мере нахождения, когда пользовались этим пакетом. Когда находил ошибки в dao сообщал Tim0xе, пока сотрудничали с ним, потом просто исправлял вручную. О полезности проекта говорит и то, что несмотря на недостатки, ты не стал делать все с нуля, а воспользовался dao, значит в нем до сих пор есть некоторый толк.

NEO SPECTRUMAN
12.02.2021, 12:40
О полезности проекта говорит и то, что несмотря на недостатки, ты не стал делать все с нуля, а воспользовался dao, значит в нем до сих пор есть некоторый толк.
ну толк есть только в его командах
и к сожалению они проста так с него не вырываемые

лучше б это был адаптер уже готовых текстовых сорцов а не все в одном
после тупого проглатывания одной команды
я ему теперь полностью не доверяю как дизасму

ivagor а не осталось более новой версии dao? сорцов?

версия твоих макросов последняя? (в первом посте ссылка)

я сверяю оба варианта и добавляю отличающийся себе

- - - Добавлено - - -


но даже моей поделкой 20
в отличии от DAO тут есть коменты
в которых указаны отличия

а dao мы получаем голый сорец без намеков где могут быть косяки

- - - Добавлено - - -


Проект (dao) по ретрокомпьютерным меркам сравнительно большой и сложный,
кстате обращаю внимание что этот проект теряется во времени
и его бывает тяжело нагуглить опять...
...ну а твои макросы вообще попадаются чисто случайно
в этот раз их подкинул zx_

ivagor
12.02.2021, 13:07
лучше б это был адаптер уже готовых текстовых сорцов
С самого начала агитировал Tim0xу именно за этот вариант, но он не сагитировался, а я сам так и не занялся.


не осталось более новой версии dao? сорцов?
Последней версии dao у меня нет, что немного иронично, т.к. я тогда нашел проблему и предложил решение. Сорцы были только у Tim0xи.


в отличии от DAO тут есть коменты
в которых указаны отличия
Подход был правильный, но комменты к сожалению не исчерпывающие, их надо было дополнять.


версия твоих макросов последняя?
Да, последняя, дальше занимался только dao. Макросы в таком виде имеют только историческую ценность (и то сомнительную), для практического использования надо пройтись, найти и исправить ошибки, внести доработки, дополнить комментарии.

NEO SPECTRUMAN
12.02.2021, 16:12
Подход был правильный,
мало того программка ссылается на z80code.asm
(ну в принципе и так есно что там должно быть)

а в инструкции упомянуты
v06code.asm
msxbios.asm
z80msx.asm

но самих их в комплекте нету :v2_lol:

ivagor
12.02.2021, 18:14
но самих их в комплекте нету
Это вопрос к выложившему архив с dao на форум. Сам Tim0xA в архивах на своем сайте выкладывал полные комплекты.

Еще должен признать ошибку, Tim0xA все же присылал мне исходники, правда версия не последняя и даже не предпоследняя. Ну и он не давал мне права выкладывать его исходники в открытый доступ.

NEO SPECTRUMAN
12.02.2021, 18:38
Ну и он не давал мне права выкладывать его исходники в открытый доступ.
исходники циликом не давал

но выдрать таблицу с реализованными командами он наверно не запрещал (если там такая есть)
в придачу ее я уже выдрал или почти всю или всю продизасмив бинарник
и выложил результат сего действия выше...

но вдруг там что то осталось еще
может режимы 8080\8085 таки работают или не работают но команды для них уже есть
или около того

конечно оно может быть в перемешку с кодом...
(как тут у нас писали эмуляторы проверяющие каждую команду 100500-ма if-ами : )
тогда что то выдрать от туда будет не так просто

- - - Добавлено - - -


и он не давал мне права выкладывать его исходники в открытый доступ.
ну тогда ты б мог поправить имеющийся баги
если их получитсо найти...

- - - Добавлено - - -


правда версия не последняя и даже не предпоследняя
даже не последняя это что v1.15?
или не последняя которая допилянная v1.15+ потом?

если больше v1.15
ты б мог ее собрать и выложить бинарник тк оригинал потерялся

или исходников у тебя уже нет?

- - - Добавлено - - -


Это вопрос к выложившему архив с dao на форум. Сам Tim0xA в архивах на своем сайте выкладывал полные комплекты
если его сайт http://vector06c.narod.ru/
то в веб архиве на 2012 год на вид именно этот файл (правда его копии там нет...)

на более старом http://timsoft.chat.ru/ в 2001...2002
был http://timsoft.chat.ru/dao112.zip
но где его добыть...

а что больше всего бесит
в конченном вебархиве лежит 100500 старых сайтов и куча файлов +промежуточных версий
но с него хрен их скачаешь... (массово)
дебилы уроды просто...

ivagor
12.02.2021, 19:07
может режимы 8080\8085 таки работают или не работают но команды для них уже есть
Для 8085 в dao только rim и sim, без недокументированных.


даже не последняя это что v1.15?
1.12


ну тогда ты б мог поправить имеющийся баги
dao я дорабатывать не буду.

marinovsoft
12.02.2021, 19:24
Думаю, что исходники 1.12 можно выкладывать. Цитата из архива сайта:
http://web.archive.org/web/20010423035240if_/http://timsoft.chat.ru/util.html


"PROGRAM RECOMPILE SYSTEM" v1.12, автор Тимошенко А. (TIMSoft), Чернигов - 2000
программа для рекомпиляции программ, написанных под Z80 в код i8080. "Заточена" под MSX, но это не есть ее ограничение, а скорее достоинство. Программа написана на базе рекомпилятора MSX2PC (автор Валерий Бостан). Часть макросов для замены команд Z80 на i8080 написал Иван Городецкий. Прилагаются исходники на языке Pascal


PS.
Архив dao_08-10-30.rar мной был сохранен 04.02.11. Содержимое его не менялось.

NEO SPECTRUMAN
12.02.2021, 19:53
еще из более древних вариантов http://timsoft.chat.ru/recomp.zip
опять же архив не найти


(с исходниками). Желающие дописывать его - берите и дописывайте, только известите об этом меня
http://web.archive.org/web/20010501050658if_/http://timsoft.chat.ru/newsarch.html

на http://vector06c.narod.ru/ сразу появился последний dao_08-10-30.rar
прочесал все до 2009 года

OrionExt
13.02.2021, 14:04
Ох, только ради переноса софта Z80, но не натягивания совы ВМ80 на глобус ZX (Z80).

vivat
13.06.2021, 20:43
а как читать ассемблерный код 8080 и как читать код з80? слева направо или справа налево? как перенос или как присваивание? ld a,b это что? перенос a=b =>b:=a или присвоение (то есть справа налево) a:=b? вот читаю STA=STore in A(я верно понял?) (допустим чисто 100) - это надо понимать как a:=100, да? то есть присвоение.
если отпиннете на ресурсик где на пальцах для дилетанта этот момент будет объяснен - тоже будет просто великолепно.

nzeemin
22.06.2021, 18:12
Запустил DAO 1.15 под DOSbox - просто в Windows 10 она не работает, ей дос нужен.
Скриншоты:

https://pic.maxiol.com/thumbs2/1624374232.1845257517.dao115scr1.png (https://pic.maxiol.com/?v=1624374232.1845257517.dao115scr1.png&dp=2) https://pic.maxiol.com/thumbs2/1624374245.1845257517.dao115scr2.png (https://pic.maxiol.com/?v=1624374245.1845257517.dao115scr2.png&dp=2)

Штука интересная, но текстовый режим 80x25 это конечно крайне неудобно.