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