でやってたのは主にコレ。
PMC逆アセンブラの機能追加。
マシン語からの変換もできるようにしました。
作った動機としては本スレにあったPowerful (but large!) memory editor for G/Sを読みたかったからです。
金銀版メモリビューアのコードですね。
それを翻訳したものが以下。これが自動で出るので海外の情報もがんがん取り込んでいけるようになりましたね。
これは海外版のアドレスなので日本語版に直さないといけないんですが、
そもそも300B超のスペースってどこにあるんですかね。ボックスの中身とか使っていいのかな。
あとコインケースバグだと入力不能文字ってないのかな。バグの内容を詳しく知らんのだけど。
日本語版だとわざマシンで書いたのをタイプライター式に移していくしかないですかね。しかもlddしかないからケツから書いていくっていう。
000 di 001 ld de,DABC 004 xor a 005 ld (FF26),a 007 ld c,a 008 inc a 009 ld (FFD6),a 011 ld hl,C3BB 014 push de 015 ld b,0B 017 push bc 018 ld a,d 019 call DB38 022 ld a,e 023 call DB38 026 ld a,25 028 ldi (hl),a 029 ld a,(de) 030 call DB38 033 inc de 034 ld bc,000D 037 add hl,bc 038 pop bc 039 dec b 040 jr nz,+E7 042 ld hl,C3BF 045 ld a,c 046 and a 047 jr z,+07 049 ld d,a 050 xor a 051 add a,14 053 dec d 054 jr nz,+FB 056 ld d,00 058 ld e,a 059 add hl,de 060 ld (hl),ED 062 call DB4D 065 pop de 066 ld a,(FFA5) 068 ld b,a 069 bit 0 a 071 call nz,DB90 074 ld a,b 075 bit 6 a 077 jr z,+08 079 ld a,c 080 and a 081 jr z,+03 083 dec c 084 jr +01 086 dec de 087 ld a,b 088 bit 7 a 090 jr z,+09 092 ld a,c 093 cp a,0A 095 jr z,+03 097 inc c 098 jr +01 100 inc de 101 ld a,b 102 bit 1 a 104 jr z,+05 106 xor a 107 dec a 108 ld (FF26),a 110 reti 111 ld a,b 112 bit 4 a 114 jr z,+06 116 ld hl,0010 119 add hl,de 120 ld d,h 121 ld e,l 122 ld a,b 123 bit 5 a 125 jr z,+06 127 ld hl,FFF0 130 add hl,de 131 ld d,h 132 ld e,l 133 ld a,b 134 bit 2 a 136 jr z,+0D 138 xor a 139 ld (FFD6),a 141 dec a 142 ld (FF26),a 144 ei 145 ld h,d 146 ld l,e 147 ld b,00 149 add hl,bc 150 jp (hl) 151 ld a,b 152 bit 3 a 154 call nz,DB5A 157 jp DAA3 160 push bc 161 ld c,02 163 ld b,a 164 swap a 166 and a,0F 168 add a,F6 170 jr nc,+02 172 add a,80 174 ldi (hl),a 175 ld a,b 176 dec c 177 jr nz,+F3 179 pop bc 180 ret 181 push hl 182 push bc 183 push de 184 call 14BB 187 call 08E6 190 pop de 191 pop bc 192 pop hl 193 ret 194 push bc 195 push hl 196 ld a,0E 198 ld (CEAB),a 201 xor a 202 ld (FFDA),a 204 ei 205 ld hl,7EC0 208 ld a,38 210 rst 08 211 di 212 ld c,01 214 ld hl,D934 217 call DB88 220 swap a 222 ld b,a 223 call DB88 226 or b 227 ld b,a 228 dec c 229 jr nz,+03 231 ld d,b 232 jr +EF 234 ld e,b 235 pop hl 236 pop bc 237 xor a 238 ld c,a 239 ret 240 ldi a,(hl) 241 sub a,F6 243 jr nc,+02 245 sub a,80 247 ret 248 push de 249 xor a 250 ld b,a 251 push bc 252 ld a,EC 254 ldi (hl),a 255 push hl 256 ld h,d 257 ld l,e 258 add hl,bc 259 ld d,h 260 ld e,l 261 pop hl 262 ld a,(de) 263 ld c,a 264 call DB4D 267 ld a,(FFA5) 269 ld b,a 270 bit 5 a 272 jr z,+01 274 dec c 275 bit 4 a 277 jr z,+01 279 inc c 280 bit 7 a 282 jr z,+04 284 ld a,c 285 sub a,10 287 ld c,a 288 ld a,b 289 bit 6 a 291 jr z,+04 293 ld a,c 294 add a,10 296 ld c,a 297 ld a,b 298 bit 1 a 300 jr nz,+08 302 ld a,c 303 push hl 304 call DB38 307 pop hl 308 jr +D2 310 ld a,c 311 ld (de),a 312 pop bc 313 pop de 314 ret