ATARI用 Ethernetアダプタ EtherNEC製作&ドライバ作成記
http://hardware.atari.org/ether/ のドライバ書いてくれるなら俺の余ってる奴を送ってやるぜ! とまたまたドイツからメールが
2010-02-21 10:21:09こっちはVMEバスじゃなくてROMカートリッジスロットに差すタイプ。作るならこっちのほうが超簡単だけど、ポーリングonlyなのと、スロットにあう2mmピッチ?のカードエッジ部分基板を自分で作らないと世間には無さそうだったのでパスしてたんだけど。
2010-02-21 10:25:19回路図を見ると、データバスのリード側は8bitで直結。ROMカートリッジというだけあってライトはデータバスに出ないらしく、書き込みは別アドレスでアクセスしてアドレスバスのA1-A8をバスバッファを介してデータバスにつなぐという荒技な実装っぽい。
2010-02-21 10:31:10割り込みはないので送受信はポーリングのみ。dreamcastのNE2000の初期はcallout(9)でポーリングだったけど速度的に結構つらかったような。しかもatariだとCPUが10倍以上遅いし。
2010-02-21 10:34:12atariのbus_space(9)は全部関数ポインタなので書こうと思えば原理的にそんなに難しくないと思うけど、結構トリッキーだから適当に書いてこれで試して、っとリモートデバッグするのはつらいかも
2010-02-21 10:36:35パターンのデータはあるっぽいので http://hardware.atari.org/images/snap0.jpg の一番右の挿すとこだけ誰か作って下さい。残りは自分で作るから。ってダメか。
2010-02-21 10:41:19http://www.asamnet.de/~hilgarte/ether_e.php こういうのがちゃんと売られていたりしたのかしら。性能は 30〜100KB とやはり結構つらい感じ。
2010-02-21 11:12:38Atari界でメジャーなEthernetデバイスはどれなのだろうか。先に書いたEtherNECがx68kでのNeptune-Xのような存在で、例のSMC ISAなカードを使って作る方はマイナーだったりするのだろうか
2010-02-21 19:11:53回路規模、GALライタ、機械加工等々の手間からすると後者のほうが圧倒的にめんどくさいからみんな前者のROMカートリッジポートNE2000なのかなあ。後者はWebページすら存在しないし。
2010-02-21 19:14:50今の時代は個人で基板を起こすのもそんなに大変じゃないとは聞きますが、この規模のを1,2枚作る場合っていくらくらいなんですかね。
2010-02-21 19:17:41360DPIのビットマップのパターン図はあるんですが、そもそもそういうので受け付けてくれるのかとか。聞いてみればそれなりのCADのデータも存在するんでしょうけど
2010-02-21 19:18:12ドライバを書くためにデバイスを買うのは普通のことだという人はいるかもしれないけれど、ドライバを書くためにデバイスを作るのはどうなのだろうか
2010-02-21 19:23:03EtherNEC is the most used and most available network solution on Atari. らしい。うーむ
2010-02-21 23:30:38http://www.amy.hi-ho.ne.jp/shimada/neptune/data.html のNeptune-Xの資料によれば、NE2000を8bitのXTバスのみに接続した場合、自動でバス幅が検出されて8bitモードになるはず。
2010-02-22 19:18:26NE1000とNE2000とではバス幅以外にメモリの量も違うようなので、NE2000 in 8bit bus mode の検出手段を新たに用意してやらないといけないのだろうか。
2010-02-22 19:20:31さらに dmawidth は外部のバス幅と連動しないのであれば外部 8bit で DMA 16bit なんてややこしい設定にしないといけないのだろうか。
2010-02-22 19:22:22RTL8019ASのデータシートによれば、バス幅の検出はNeptune-Xのページにあるように IOCS16B の端子レベルを起動時に見て判定。
2010-02-22 19:27:50NE2000で dmawidth が 8bit でバス幅は 16bit (=bus_space_*_stream_2() を使用)っていうのはどういうハードですか おしえて nonakap@ さん (´・ω・`)
2010-02-22 19:44:55いつぞやの42円のRTL8019ASなNE2000のIOCS16B端子にテープを貼ってi386に挿して起動。NE2000と認識するが invalid packet length と文句を言われて通信はできないっぽい。
2010-02-22 20:11:02その状態で ne2000.c をいじって無理矢理 dmawidth = NE2000_DMAWIDTH_8BIT にすると動く。うーん。 @nonakap さん、当該ハードの設計上の問題だったりしませんか (´・ω・`)
2010-02-22 20:15:15ちゃんと読んでないけど、 NE2000とNE1000の違いってバス幅とメモリ量だけじゃなくてメモリの配置も違うのかしら。だとするとNE2000 on 8bitの場合はそれなりの検出用コードを ne2000_detect() 関数内に書かないとだめなのかしら
2010-02-22 20:18:01ISA 16bit側の D8-D15 もテープでマスクしてみたけど、なぜかちゃんと NE2000 として認識されて DMAWIDTH_8BIT に設定するだけで動く。あれ?
2010-02-22 20:30:51うーん。D8-15をつないでなくても sc_useword=1 で動いてるってこと? それとも何か一目見ただけではわからない小細工が入ってる? はたまた単にテープが外れてる?
2010-02-22 20:36:48テープは外れてないっぽいけど、いろいろ試すと動いているかと思いきや ftp で get すると invalid packet length を大量に吐く。が、全然動いてないわけではなくて文句を言いながら受信はできてる。うーん。何が起きているんだ。
2010-02-22 20:49:15