アカウント名:
パスワード:
"Advice to dear Peeping Tom.Good programmer never copies other guy's code !This message is for YOU !!!"
PC-8801のマシン語モニタ逆アセンブルしてたら日電のマルシーとともにありがたいメッセージが書かれてた思い出。
これは知らなかったなあ。当時はまだ「1バイトは血の一滴」の時代だったはずなのにずいぶんと豪気なことで。
当該メッセージをI/Oだったかな、雑誌で見てダンプしてみてへーっと思った口です。
当時からソフトウェアの無断コピーが問題化していたことを示すとともに、PC-8801が当時としてはリソースが潤沢だったことを象徴する事例でもありますね。機械語モニタはN88-BASIC ROMとは別バンクの、N-BASIC ROMのの余り領域(メモリバンクサイズが32KBでN-BASICが24KB、残りの0x6000-7fff番地を機械語モニタが占めてた)にあり、機能を足すには足りない半端な空きがあったんではないかと想像します。
PC-8801 は Z80相当品を積んでるくせに、ROM は 8080 の機能しか使ってないぐらいですし。
マシン語モニタのアセンブル・逆アセンブルもインテルニーモニック形式だったのでZ80慣れした自分にはすごく使いづらかったですが、それでROMをつらつらと逆アセンブルして眺めて、「Z80なコードを書けばらもうちょっとコンパクトにできそうなのになー」と思った覚えがあります。
40kBあるN88-BASICのROMのなかで8080由来の絶対ジャンプ命令は約1000箇所で使われているが、Z80の命令である相対ジャンプ命令はそれより多い約1800箇所で使われてる。他、
SBC HL,DELD DE,(nn)IN A,(C)OUT (C),ALDIR
これらのZ80の命令も2桁以上の箇所で使われてるし、EX AF,AF'やEXXで裏レジスタも使われてるよ。インデクスレジスタIXとIYは完全に未使用だけど。
そうだったんですか…ちゃんとZ80命令は使われてたんですね。
8080命令しか使っないと考えた根拠は、網羅的に調べたわけではなく、マシン語モニタの逆アセンブラを使って、そのときそのときにピンポイントでつらつら眺めた程度での推測だったんですが、後に、「Microsoft BASIC にはZ80版がなく、N-BASIC/N88-BASICは8080版の移植だから、Z80命令は使われてない」って説明を聞いて納得してたんですよね…
NECが独自に実装した拡張部分なんかはZ80コードで書かれてたってことかな。
PC-8801のマシン語モニタ組み込みアセンブラ/逆アセンブラは、インテルニーモニックにも拘らず相対ジャンプだけは使えたはず。(JMPRとか、DJNZとか)なので、モニタで逆アセンブルした場合には、Z80命令があっても意外と気づかないかもです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家
親愛なる出歯亀君へ (スコア:0)
"Advice to dear Peeping Tom.Good programmer never copies other guy's code !This message is for YOU !!!"
PC-8801のマシン語モニタ逆アセンブルしてたら日電のマルシーとともにありがたいメッセージが書かれてた思い出。
Re: (スコア:0)
これは知らなかったなあ。
当時はまだ「1バイトは血の一滴」の時代だったはずなのにずいぶんと豪気なことで。
Re: (スコア:0)
当該メッセージをI/Oだったかな、雑誌で見てダンプしてみてへーっと思った口です。
当時からソフトウェアの無断コピーが問題化していたことを示すとともに、PC-8801が当時としてはリソースが潤沢だったことを象徴する事例でもありますね。機械語モニタはN88-BASIC ROMとは別バンクの、N-BASIC ROMのの余り領域(メモリバンクサイズが32KBでN-BASICが24KB、残りの0x6000-7fff番地を機械語モニタが占めてた)にあり、機能を足すには足りない半端な空きがあったんではないかと想像します。
Re: (スコア:1)
PC-8801 は Z80相当品を積んでるくせに、
ROM は 8080 の機能しか使ってないぐらいですし。
マシン語モニタのアセンブル・逆アセンブルもインテルニーモニック形式だったので
Z80慣れした自分にはすごく使いづらかったですが、
それでROMをつらつらと逆アセンブルして眺めて、
「Z80なコードを書けばらもうちょっとコンパクトにできそうなのになー」と思った覚えがあります。
Re: (スコア:0)
40kBあるN88-BASICのROMのなかで8080由来の絶対ジャンプ命令は約1000箇所で使われているが、Z80の命令である相対ジャンプ命令はそれより多い約1800箇所で使われてる。他、
SBC HL,DE
LD DE,(nn)
IN A,(C)
OUT (C),A
LDIR
これらのZ80の命令も2桁以上の箇所で使われてるし、EX AF,AF'やEXXで裏レジスタも使われてるよ。インデクスレジスタIXとIYは完全に未使用だけど。
Re: (スコア:1)
そうだったんですか…ちゃんとZ80命令は使われてたんですね。
8080命令しか使っないと考えた根拠は、網羅的に調べたわけではなく、マシン語モニタの逆アセンブラを使って、そのときそのときにピンポイントでつらつら眺めた程度での推測だったんですが、
後に、「Microsoft BASIC にはZ80版がなく、N-BASIC/N88-BASICは8080版の移植だから、Z80命令は使われてない」って説明を聞いて納得してたんですよね…
NECが独自に実装した拡張部分なんかはZ80コードで書かれてたってことかな。
Re:親愛なる出歯亀君へ (スコア:1)
PC-8801のマシン語モニタ組み込みアセンブラ/逆アセンブラは、インテルニーモニックにも拘らず相対ジャンプだけは使えたはず。
(JMPRとか、DJNZとか)
なので、モニタで逆アセンブルした場合には、Z80命令があっても意外と気づかないかもです。