|
|
1.1 ! root 1: ; ! 2: ; nono ! 3: ; Copyright (C) 2022 nono project ! 4: ; Licensed under nono-license.txt ! 5: ; ! 6: ! 7: ; ビットパターンはこの定義順に展開するので、前の行を後の行で上書きする。 ! 8: ; そのためより限定的なほうを後ろ(下)に記述すること。 ! 9: ; それ以外は概ねソートすること。 ! 10: ; ! 11: ; ビットパターン ! 12: ; 0, 1 … 0 または 1 固定のビット ! 13: ; n … 0 および 1 の両方に展開される ! 14: ; rrr,sss … レジスタ (B,C,D,E,H,L,A) に展開 (%110=(HL) は除く) ! 15: ; ixr,ixs なら B,C,D,E, IXH, IXL, A に展開 ! 16: ; ww … レジスタ BC,DE,HL,SP に展開 ! 17: ; zz … レジスタ BC,DE,HL,AF に展開 ! 18: ; fff … 条件に展開 ! 19: ; bbb … ビット番号 0-7 に展開 ! 20: ; ! 21: ; CPU ! 22: ; 0 … Z80 (not supported, reference only) ! 23: ; 1 … HD64*180 ! 24: ; R … R800 (not supported, reference only) ! 25: ! 26: ; ここだけ紛らわしいので注意。 ! 27: ; 00100010 LD (nn),HL ! 28: ; DD:00100010 LD (nn),IX/IY ! 29: ; ED:01ww0011 LD (nn),ww (ww = BC,DE,HL,SP) ! 30: ; と ! 31: ; 00101010 LD HL,(nn) ! 32: ; DD:00101010 LD IX/IY,(nn) ! 33: ; ED:01ww1011 LD ww,(nn) (ww = BC,DE,HL,SP) ! 34: ! 35: ; パターン CPU 関数名 表示名 ! 36: 00ww0001 01R ld_ww_nn LD ww,nn ! 37: 00ww0010 01R ld_wwin_a LD (ww),A ! 38: 00ww0011 01R inc_ww INC ww ! 39: 00rrr100 01R inc_r INC r ! 40: 00110100 01R inc_hlin INC (HL) ! 41: 00rrr101 01R dec_r DEC r ! 42: 00110101 01R dec_hlin DEC (HL) ! 43: 00rrr110 01R ld_r_n LD r,n ! 44: 00110110 01R ld_hlin_n LD (HL),n ! 45: 00ww1001 01R add_hl_ww ADD HL,ww ! 46: 00ww1010 01R ld_a_wwin LD A,(ww) ! 47: 00ww1011 01R dec_ww DEC ww ! 48: ! 49: 00000000 01R nop ! 50: 00000111 01R rlca ! 51: 00001000 01R ex_af_af EX AF,AF' ! 52: 00001111 01R rrca ! 53: ! 54: 00010000 01R djnz DJNZ n ! 55: 00010111 01R rla ! 56: 00011000 01R jr JR n ! 57: 00011111 01R rra ! 58: ! 59: 00100000 01R jr_nz JR NZ,n ! 60: 00100010 01R ld_nnin_hl LD (nn),HL ! 61: 00100111 01R daa ! 62: 00101000 01R jr_z JR Z,n ! 63: 00101010 01R ld_hl_nnin LD HL,(nn) ! 64: 00101111 01R cpl ! 65: ! 66: 00110000 01R jr_nc JR NC,n ! 67: 00110010 01R ld_nnin_a LD (nn),A ! 68: 00110111 01R scf ! 69: 00111000 01R jr_c JR C,n ! 70: 00111010 01R ld_a_nnin LD A,(nn) ! 71: 00111111 01R ccf ! 72: ! 73: 01rrrsss 01R ld_r_s LD r,s ! 74: 01110sss 01R ld_hlin_s LD (HL),s ! 75: 01rrr110 01R ld_r_hlin LD r,(HL) ! 76: 01110110 01R halt ! 77: ! 78: 10000rrr 01R add_a_r ADD A,r ! 79: 10000110 01R add_a_hlin ADD A,(HL) ! 80: 10001rrr 01R adc_a_r ADC A,r ! 81: 10001110 01R adc_a_hlin ADC A,(HL) ! 82: 10010rrr 01R sub_r SUB r ! 83: 10010110 01R sub_hlin SUB (HL) ! 84: 10011rrr 01R sbc_a_r SBC A,r ! 85: 10011110 01R sbc_a_hlin SBC A,(HL) ! 86: 10100rrr 01R and_r AND r ! 87: 10100110 01R and_hlin AND (HL) ! 88: 10101rrr 01R xor_r XOR r ! 89: 10101110 01R xor_hlin XOR (HL) ! 90: 10110rrr 01R or_r OR r ! 91: 10110110 01R or_hlin OR (HL) ! 92: 10111rrr 01R cp_r CP r ! 93: 10111110 01R cp_hlin CP (HL) ! 94: ! 95: 11fff000 01R ret_f RET f ! 96: 11zz0001 01R pop_zz POP zz ! 97: 11110001 01R pop_af POP AF ! 98: 11fff010 01R jp_f_nn JP f,nn ! 99: 11fff100 01R call_f_nn CALL f,nn ! 100: 11zz0101 01R push_zz PUSH zz ! 101: 11110101 01R push_af PUSH AF ! 102: 11vvv111 01R rst RST v ! 103: ! 104: 11000011 01R jp_nn JP nn ! 105: 11000110 01R add_a_n ADD A,n ! 106: 11001001 01R ret ! 107: 11001011 01R cb op_CB ! 108: 11001101 01R call CALL nn ! 109: 11001110 01R adc_a_n ADC A,n ! 110: ! 111: 11010011 01R out_n_a OUT (n),A ! 112: 11010110 01R sub_n SUB n ! 113: 11011001 01R exx ! 114: 11011011 01R in_a_n IN A,(n) ! 115: 11011101 01R dd op_DD ! 116: 11011110 01R sbc_a_n SBC A,n ! 117: ! 118: 11100011 01R ex_sp_hl EX (SP),HL ! 119: 11100110 01R and_n AND n ! 120: 11101001 01R jp_hl JP (HL) ! 121: 11101011 01R ex_de_hl EX DE,HL ! 122: 11101101 01R ed op_ED ! 123: 11101110 01R xor_n XOR n ! 124: ! 125: 11110011 01R di ! 126: 11110110 01R or_n OR n ! 127: 11111001 01R ld_sp_hl LD SP,HL ! 128: 11111011 01R ei ! 129: 11111101 01R fd op_FD ! 130: 11111110 01R cp_n CP n ! 131: ! 132: ! 133: CB:00000rrr 01R rlc_r RLC r ! 134: CB:00000110 01R rlc_hlin RLC (HL) ! 135: CB:00001rrr 01R rrc_r RRC r ! 136: CB:00001110 01R rrc_hlin RRC (HL) ! 137: CB:00010rrr 01R rl_r RL r ! 138: CB:00010110 01R rl_hlin RL (HL) ! 139: CB:00011rrr 01R rr_r RR r ! 140: CB:00011110 01R rr_hlin RR (HL) ! 141: CB:00100rrr 01R sla_r SLA r ! 142: CB:00100110 01R sla_hlin SLA (HL) ! 143: CB:00101rrr 01R sra_r SRA r ! 144: CB:00101110 01R sra_hlin SRA (HL) ! 145: CB:00111rrr 01R srl_r SRL r ! 146: CB:00111110 01R srl_hlin SRL (HL) ! 147: CB:01bbbrrr 01R bit_r BIT b,r ! 148: CB:01bbb110 01R bit_hlin BIT b,(HL) ! 149: CB:10bbbrrr 01R res_r RES b,r ! 150: CB:10bbb110 01R res_hlin RES b,(HL) ! 151: CB:11bbbrrr 01R set_r SET b,r ! 152: CB:11bbb110 01R set_hlin SET b,(HL) ! 153: ! 154: ! 155: ED:00rrr000 -1- in0_r_n IN0 r,(n) ! 156: ED:00110000 -1- in0_f_n IN0 F,(n) ! 157: ED:00rrr001 -1- out0_n_r OUT0 (n),r ! 158: ED:00rrr100 -1- tst_r TST r ! 159: ED:00110100 -1- tst_hlin TST (HL) ! 160: ! 161: ED:01rrr000 01R in_r_c IN r,(C) ! 162: ED:01110000 01R in_f_c IN F,(C) ! 163: ED:01rrr001 01R out_c_r OUT (C),r ! 164: ED:01ww0010 01R sbc_hl_ww SBC HL,ww ! 165: ED:01ww0011 01R ld_nnin_ww LD (nn),ww ! 166: ED:01ww1010 01R adc_hl_ww ADC HL,ww ! 167: ED:01ww1011 01R ld_ww_nnin LD ww,(nn) ! 168: ED:01ww1100 -1- mlt MLT ww ! 169: ! 170: ED:01000100 01R neg ! 171: ED:01000101 01R retn ! 172: ED:01000110 01R im_0 IM 0 ! 173: ED:01000111 01R ld_i_a LD I,A ! 174: ED:01001101 01R reti ! 175: ED:01001111 01R ld_r_a LD R,A ! 176: ! 177: ED:01010110 01R im_1 IM 1 ! 178: ED:01010111 01R ld_a_i LD A,I ! 179: ED:01011110 01R im_2 IM 2 ! 180: ED:01011111 01R ld_a_r LD A,R ! 181: ! 182: ED:01100100 -1- tst_n TST n ! 183: ED:01100111 01R rrd ! 184: ED:01101111 01R rld ! 185: ! 186: ED:01110100 -1- tstio_n TSTIO n ! 187: ED:01110110 -1- slp ! 188: ! 189: ED:10000011 -1- otim ! 190: ED:10001011 -1- otdm ! 191: ED:10010011 -1- otimr ! 192: ED:10011011 -1- otdmr ! 193: ! 194: ED:10100000 01R ldi ! 195: ED:10100001 01R cpi ! 196: ED:10100010 01R ini ! 197: ED:10100011 01R outi ! 198: ED:10101000 01R ldd ! 199: ED:10101001 01R cpd ! 200: ED:10101010 01R ind ! 201: ED:10101011 01R outd ! 202: ! 203: ED:10110000 01R ldir ! 204: ED:10110001 01R cpir ! 205: ED:10110010 01R inir ! 206: ED:10110011 01R otir ! 207: ED:10111000 01R lddr ! 208: ED:10111001 01R cpdr ! 209: ED:10111010 01R indr ! 210: ED:10111011 01R otdr ! 211: ! 212: ED:11rrr001 --R mulub_a_r MULUB A,r ! 213: ED:11000011 --R mulub_hl_bc MULUB HL,BC ! 214: ED:11110011 --R mulub_hl_sp MULUB HL,SP ! 215: ! 216: ED:11111111 -1- syscall SYSCALL ; MSXDOS エミュレーション ! 217: ! 218: ! 219: DD:00ww1001 01R add_hl_ww ADD IX,ww ! 220: DD:00100001 01R ld_ww_nn LD IX,nn ! 221: DD:00100010 01R ld_nnin_hl LD (nn),IX ! 222: DD:00100011 01R inc_ww INC IX ! 223: DD:00101010 01R ld_hl_nnin LD IX,(nn) ! 224: DD:00101011 01R dec_ww DEC IX ! 225: DD:00rrr100 0-R inc_ixr INC ixr ! 226: DD:00110100 01R inc_hlin INC (IX+d) ! 227: DD:00rrr101 0-R dec_ixr DEC ixr ! 228: DD:00110101 01R dec_hlin DEC (IX+d) ! 229: DD:00110110 01R ld_hlin_n LD (IX+d),n ! 230: DD:01rrr110 01R ld_r_hlin LD r,(IX+d) ! 231: DD:01110sss 01R ld_hlin_s LD (IX+d),s ! 232: DD:01rrrsss 0-R ld_r_ixs LD r,ixs ! 233: DD:10000rrr 0-R add_a_ixr ADD A,ixr ! 234: DD:10000110 01R add_a_hlin ADD A,(IX+d) ! 235: DD:10001rrr 0-R adc_a_ixr ADC A,ixr ! 236: DD:10001110 01R adc_a_hlin ADC A,(IX+d) ! 237: DD:10010rrr 0-R sub_ixr SUB ixr ! 238: DD:10010110 01R sub_hlin SUB (IX+d) ! 239: DD:10011rrr 0-R sbc_a_ixr SBC A,ixr ! 240: DD:10011110 01R sbc_a_hlin SBC A,(IX+d) ! 241: DD:10100rrr 0-R and_ixr AND ixr ! 242: DD:10100110 01R and_hlin AND (IX+d) ! 243: DD:10101rrr 0-R xor_ixr XOR ixr ! 244: DD:10101110 01R xor_hlin XOR (IX+d) ! 245: DD:10110rrr 0-R or_ixr OR ixr ! 246: DD:10110110 01R or_hlin OR (IX+d) ! 247: DD:10111rrr 0-R cp_ixr CP ixr ! 248: DD:10111110 01R cp_hlin CP (IX+d) ! 249: DD:11001011 01R dd_cb op_DD_CB ! 250: DD:11100001 01R pop_zz POP IX ! 251: DD:11100011 01R ex_sp_hl EX (SP),IX ! 252: DD:11100101 01R push_zz PUSH IX ! 253: DD:11101001 01R jp_hl JP (IX) ! 254: DD:11111001 01R ld_sp_hl LD SP,IX ! 255: DD_CB:00000110 01R rlc_hlin RLC (IX+d) ! 256: DD_CB:00001110 01R rrc_hlin RRC (IX+d) ! 257: DD_CB:00010110 01R rl_hlin RL (IX+d) ! 258: DD_CB:00011110 01R rr_hlin RR (IX+d) ! 259: DD_CB:00100110 01R sla_hlin SLA (IX+d) ! 260: DD_CB:00101110 01R sra_hlin SRA (IX+d) ! 261: DD_CB:00111110 01R srl_hlin SRL (IX+d) ! 262: DD_CB:01bbb110 01R bit_hlin BIT b,(IX+d) ! 263: DD_CB:10bbb110 01R res_hlin RES b,(IX+d) ! 264: DD_CB:11bbb110 01R set_hlin SET b,(IX+d)
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.