うさちゃんと一緒(31) Z80の魔改造?Rabbit4000で ECHO 再び

wiresharkECHO2flow
Joseph Halfmoon

前回「素の」telnetでラズパイ4からうさちゃんRabbit4000へ通信してみました。裏でtelnetが通信条件など双方向でネゴっていることを学びました。でも実際のデータ転送は一方通行でした。うさちゃんからのお返事はなし。今回はうさちゃん側からのお返事あり、としてみとうございます。

“うさちゃんと一緒(31) Z80の魔改造?Rabbit4000で ECHO 再び” の続きを読む

うさちゃんと一緒(30) Z80の魔改造? Rabbit4000でtelnetその2

TelnetSessionMark0
Joseph Halfmoon

前回うさちゃんRabbit4000とラズパイ4の間でtelnet接続成功したものの、通信の様子を「遠くから眺めた」だけで終わってました。今回は例によってwireshark使ってパケット毎に観察していきます。生のパケットの中身を覗くとうさちゃんが「あれはやるな、これもダメ」と文句垂れてることに気づきました。わがまま?

“うさちゃんと一緒(30) Z80の魔改造? Rabbit4000でtelnetその2” の続きを読む

うさちゃんと一緒(29) Z80の魔改造? Rabbit4000でtelnetその1

telnetFlowGraph
Joseph Halfmoon

前回はうさちゃんとftpでした。そういえばftpよりももっと簡単?telnetもやっとくべきだな~と。しかし最近「素の」telnetなど使ったことないです。普通sshだよね。実際うさちゃんの対向機ラズパイ4にはtelnetインストールしてなかったです。今回はインストールから初めて、ひさしぶりに「素の」telnet。

“うさちゃんと一緒(29) Z80の魔改造? Rabbit4000でtelnetその1” の続きを読む

うさちゃんと一緒(28) Z80の魔改造? Rabbit4000でftpクライアントその2

ftp_wireshark11
Joseph Halfmoon

前回はうさちゃんRabbit4000上のftpクライアントとラズパイ4上のftpサーバ間でファイルの転送ができるようになりました。今回は前回のftp接続の様子をラズパイ4上のwiresharkで観察してみたいと思います。前々回のDNSのようにUSPのパケット一発というわけにはいきませぬ。裏じゃいろいろやってるftp?

“うさちゃんと一緒(28) Z80の魔改造? Rabbit4000でftpクライアントその2” の続きを読む

うさちゃんと一緒(27) Z80の魔改造?Rabbit4000でftpクライアントその1

RpiFTPlog
Joseph Halfmoon

前回は、うさちゃんRabbit4000とラズパイ4の間でDNSのやり取りでした。今回からはftpしてみます。うさちゃんがクライアント、ラズパイ4がサーバという役回りです。今回はうさちゃんに書き込んだftpクライアントのサンプルプログラムで、ラズパイ4上のvsftpdサーバからファイルをゲットできることを確かめるまで。

“うさちゃんと一緒(27) Z80の魔改造?Rabbit4000でftpクライアントその1” の続きを読む

うさちゃんと一緒(26) Z80の魔改造?Rabbit4000でDNSクエリその2

resDNS
Joseph Halfmoon

前回はうさちゃんRabbit4000の投げたDNSクエリをRaspberry Pi 4上のDNSサーバでレスポンス。「行ってこい」できたところでその中身は良く見てなかったです。今回は前回と同じ設定のまま、クエリとレスポンスの中身をwiresharkで観察したいと思います。だいたいDNSパケットってUDPだったけ?わかってないデス。

“うさちゃんと一緒(26) Z80の魔改造?Rabbit4000でDNSクエリその2” の続きを読む

うさちゃんと一緒(25) Z80の魔改造? Rabbit4000でDNSクエリその1

Rabbit400DNStestBLKDIAG
Joseph Halfmoon

前回までうさちゃんRabbit4000自身を調査。今回から再びうさちゃんを使役してネットワークのロウレベルなところを直接触っていきたいとおもいます。DNS(Domain Name System)から。Raspberry Pi 4上のDNSサーバに向かってうさちゃんからQueryを投げ、ラズパイからお返事してもらうと。
“うさちゃんと一緒(25) Z80の魔改造? Rabbit4000でDNSクエリその1” の続きを読む

うさちゃんと一緒(24) Z80の魔改造?Rabbit4000でアセンブラその2

ASM2_debugger
Joseph Halfmoon

前回Rabbit4000のアセンブラをちょいと触ってみました。インラインでもインラインでなくてもCのソースと混然一体。Cからアセンブラへの敷居がとても低かったです。今回はインラインアセンブラのコードの中にCのステートメントを書ける「インラインC?」に始まって独特なところをまた触ってみたいと思います。

“うさちゃんと一緒(24) Z80の魔改造?Rabbit4000でアセンブラその2” の続きを読む

うさちゃんと一緒(23) Z80の魔改造? Rabbit4000でアセンブラしてみる

addA_asm
Joseph Halfmoon

前回までの4回でRabbit4000のオペコードマップに色を塗って「理解」したつもり。かなりな大拡張ですがアセンブラレベルでは「ほぼほぼ」Z80の上位互換にみえないこともないです(バイナリ互換ではないです。)今回からRabbit4000上でアセンブリ言語ルーチンを動作させていきたいと思います。敷居が低いんだ、これが。 “うさちゃんと一緒(23) Z80の魔改造? Rabbit4000でアセンブラしてみる” の続きを読む

うさちゃんと一緒(22) Z80の魔改造? Rabbit4000のオペコードマップその4

6DpageEC
Joseph Halfmoon

最強?のZ80後継機、Rabbit4000のオペコードマップを見てきましたが、ようやく完結です。今回はオペコードの第1バイトが0x6Dで始まるRabbit4000独自命令の面です。この面は「しがらみ」が無い分うさちゃんの「意思」がありあり。この面の全命令のニーモニックはLDなのですが、実は転送だけでもない、と。 “うさちゃんと一緒(22) Z80の魔改造? Rabbit4000のオペコードマップその4” の続きを読む

うさちゃんと一緒(21) Z80の魔改造?Rabbit4000のオペコードマップその3

rabbit 4000 Opcode Map ED
Joseph Halfmoon

最強(最恐)のZ80後継機、Rabbit4000のオペコードマップを前々回前回とみてきた3回目です。今回は、オペコードの第1バイトが0xEDで始まるZ80の拡張命令(i8080に対しての拡張)面です。第1バイトでは命令の移転先を作ったりして殊勝なうさちゃんもED面では手厳しいです。自由自在どころが傍若無人な勢い。 “うさちゃんと一緒(21) Z80の魔改造?Rabbit4000のオペコードマップその3” の続きを読む

うさちゃんと一緒(20) Z80の魔改造?Rabbit4000のオペコードマップその2

DD_EC
Joseph Halfmoon

前回は、Rabbit4000の、Z80「魔改造」第1バイトのオペコードマップを眺めてみました。しかしZ80にはDD、FDなどの第1バイトによって「拡張」されるオペコードマップも存在します。Rabbit4000の場合、DD,FD系も期待に違わぬ大拡張です。ただしここではZ80の元の命令には手は加えてません。

“うさちゃんと一緒(20) Z80の魔改造?Rabbit4000のオペコードマップその2” の続きを読む

うさちゃんと一緒(19) Z80の魔改造?Rabbit4000のオペコードマップ その1

OpcodeMainPage
Joseph Halfmoon

Rabbitシリーズ(販売元Digi社)のプロセッサはZ80「オマージュ」製品といっていいでしょう。しかし、Z80の盲腸化した仕様をチマチマ活用して拡張していた3000シリーズまでと比べると、4000シリーズ以降では大胆に拡張してます。そのレベル、もはや魔改造。Z80大好きな「中の人」が好き勝手やり放題でなかったかと。 “うさちゃんと一緒(19) Z80の魔改造?Rabbit4000のオペコードマップ その1” の続きを読む

うさちゃんと一緒(18) Rabbit4000のCPUレジスタを一覧にしてみた

RegistersEC
Joseph Halfmoon

うさちゃんRabbit4000のDynamic Cのライブラリを読んでいるとインライン・アセンブラ・コードに迷いこみます。RabbitシリーズはZ80愛に溢れているCPU、Z80上位互換です。Z80のつもりで大体読めますが、時々「知らない」レジスタなどに遭遇します。今回はCPUレジスタを図にまとめてみました。

“うさちゃんと一緒(18) Rabbit4000のCPUレジスタを一覧にしてみた” の続きを読む