Z80Next Only Instruction Table: Difference between revisions
From SpecNext Wiki
starting the selection of Z80N specific instructions page with a query |
next only plain table |
||
| Line 1: | Line 1: | ||
{ | {| class="wikitable" style="margin:auto" | ||
|+ Next-only (Z80N) Instructions | |||
|- | |||
! Mnemonic !! Status !! Addressing Mode 1 !! Addressing Mode 2 || Flags || T-States || Summary | |||
|- | |||
| ADD HL/DE/BC, A || E || Register || Register || ? - - - - - || 8 || rr+=unsigned A | |||
|- | |||
| ADD HL/DE/BC, nn || E || Register || Immediate || - - - - - - || 16 || rr+=nn | |||
|- | |||
| BRLC DE,B || E || - || - || - - - - - - || 8 || DE:=DE<<(B&15) OR DE>>(16-B&15) | |||
|- | |||
| BSLA DE,B || E || - || - || - - - - - - || 8 || DE:=DE<<(B&31) | |||
| | |- | ||
| BSRA DE,B || E || - || - || - - - - - - || 8 || DE:=signed(DE)>>(B&31) | |||
|- | |||
| BSRF DE,B || E || - || - || - - - - - - || 8 || DE:=~(unsigned(~DE)>>(B&31)) | |||
|- | |||
| BSRL DE,B || E || - || - || - - - - - - || 8 || DE:=unsigned(DE)>>(B&31) | |||
|- | |||
| JP (C) || E || Register || - || ? ? ? ? ? ? || 13 || PC:=PC&$C000+IN(C)<<6 | |||
|- | |||
| LDDRX || E || - || - || - - - - - - || 21/16 || do LDDX while(BC>0) | |||
|- | |||
| LDDX || E || - || - || - - - - - - || 16 || {if HL*!=A DE*:=HL*;} DE++; HL--; BC-- | |||
|- | |||
| LDIRX || E || - || - || - - - - - - || 21/16 || do LDIX while(BC>0) | |||
|- | |||
| LDIX || E || - || - || - - - - - - || 16 || {if HL*!=A DE*:=HL*;} DE++; HL++; BC-- | |||
|- | |||
| LDPIRX || E || - || - || - - - - - - || 21/16 || do{t:=(HL&$FFF8+E&7)*; {if t!=A DE*:=t;} DE++; BC--}while(BC>0) | |||
|- | |||
| LDWS || E || - || - || - 0 ! S S S || 14 || DE*:=HL*; INC L; INC D; | |||
|- | |||
| MIRROR A || E || Register || - || - - - - - - || 8 || A[76543210]:=A[01234567] | |||
|- | |||
| MUL d,e || E || - || - || - - - - - - || 8 || DE:=D*E | |||
|- | |||
| NEXTREG n, A || E || Immediate || Accumulator || - - - - - - || 17 || HwNextReg_n:=A | |||
|- | |||
| NEXTREG n,n' || E || Immediate || Immediate || - - - - - - || 20 || HwNextReg_n:=n' | |||
|- | |||
| OUTINB || E || - || - || ? ? ? ? ? ? || 16 || out(BC,HL*); HL++ | |||
|- | |||
| PIXELAD || E || - || - || - - - - - - || 8 || HL:=$4000+((D&$C0)<<5)+((D&$07)<<8)+((D&$38)<<2)+(E>>3) | |||
|- | |||
| PIXELDN || E || - || - || - - - - - - || 8 || if(HL&$0700!=$0700) HL+=256; else if(HL&$e0!=$e0) HL:=HL&$F8FF+$20; else HL:=HL&$F81F+$0800 | |||
|- | |||
| PUSH nn || E || Immediate || - || - - - - - - || 23 || SP-=2; SP*:=nn | |||
|- | |||
| SETAE || E || - || - || - - - - - - || 8 || A:=unsigned($80)>>(E&7) | |||
|- | |||
| SWAPNIB || E || - || - || - - - - - - || 8 || A:=A[3210]<<4 OR A[7654]>>4 | |||
|- | |||
| TEST n || E || Immediate || - || S ? P S S S || 11 || A&n? | |||
|- | |||
|} | |||
Revision as of 14:31, 20 January 2025
| Mnemonic | Status | Addressing Mode 1 | Addressing Mode 2 | Flags | T-States | Summary |
|---|---|---|---|---|---|---|
| ADD HL/DE/BC, A | E | Register | Register | ? - - - - - | 8 | rr+=unsigned A |
| ADD HL/DE/BC, nn | E | Register | Immediate | - - - - - - | 16 | rr+=nn |
| BRLC DE,B | E | - | - | - - - - - - | 8 | DE:=DE<<(B&15) OR DE>>(16-B&15) |
| BSLA DE,B | E | - | - | - - - - - - | 8 | DE:=DE<<(B&31) |
| BSRA DE,B | E | - | - | - - - - - - | 8 | DE:=signed(DE)>>(B&31) |
| BSRF DE,B | E | - | - | - - - - - - | 8 | DE:=~(unsigned(~DE)>>(B&31)) |
| BSRL DE,B | E | - | - | - - - - - - | 8 | DE:=unsigned(DE)>>(B&31) |
| JP (C) | E | Register | - | ? ? ? ? ? ? | 13 | PC:=PC&$C000+IN(C)<<6 |
| LDDRX | E | - | - | - - - - - - | 21/16 | do LDDX while(BC>0) |
| LDDX | E | - | - | - - - - - - | 16 | {if HL*!=A DE*:=HL*;} DE++; HL--; BC-- |
| LDIRX | E | - | - | - - - - - - | 21/16 | do LDIX while(BC>0) |
| LDIX | E | - | - | - - - - - - | 16 | {if HL*!=A DE*:=HL*;} DE++; HL++; BC-- |
| LDPIRX | E | - | - | - - - - - - | 21/16 | do{t:=(HL&$FFF8+E&7)*; {if t!=A DE*:=t;} DE++; BC--}while(BC>0) |
| LDWS | E | - | - | - 0 ! S S S | 14 | DE*:=HL*; INC L; INC D; |
| MIRROR A | E | Register | - | - - - - - - | 8 | A[76543210]:=A[01234567] |
| MUL d,e | E | - | - | - - - - - - | 8 | DE:=D*E |
| NEXTREG n, A | E | Immediate | Accumulator | - - - - - - | 17 | HwNextReg_n:=A |
| NEXTREG n,n' | E | Immediate | Immediate | - - - - - - | 20 | HwNextReg_n:=n' |
| OUTINB | E | - | - | ? ? ? ? ? ? | 16 | out(BC,HL*); HL++ |
| PIXELAD | E | - | - | - - - - - - | 8 | HL:=$4000+((D&$C0)<<5)+((D&$07)<<8)+((D&$38)<<2)+(E>>3) |
| PIXELDN | E | - | - | - - - - - - | 8 | if(HL&$0700!=$0700) HL+=256; else if(HL&$e0!=$e0) HL:=HL&$F8FF+$20; else HL:=HL&$F81F+$0800 |
| PUSH nn | E | Immediate | - | - - - - - - | 23 | SP-=2; SP*:=nn |
| SETAE | E | - | - | - - - - - - | 8 | A:=unsigned($80)>>(E&7) |
| SWAPNIB | E | - | - | - - - - - - | 8 | A:=A[3210]<<4 OR A[7654]>>4 |
| TEST n | E | Immediate | - | S ? P S S S | 11 | A&n? |