Diarys2007
2007年の日記
2006年以前 2007年 2008年 2009年 2010年 2011年 2012-16年
2007-12-14
オープンソースが好きっ!
ドヂでノロマなカメの私で良ければ、ソース・メンテしまーす。バイナリパッチするのも好きですけど、ソース直した方がきっと後々の為になりますしね。
#とは言え、自分のむか〜し作ったソフトのソースは恥ずかしくて出せない…(^^;
2007-12-9
PS/2マウス変換アダプタを作ってみた
随分と前からですが、今使っている68のマウス・トラックボールの動きが、かなり怪しげになってきてました。
もちろん、Nereid で USBマウスを使う方が快適なマウス環境になるのですが、標準マウスポートにもそれなりに利用価値があるので、Kum's Page さんとこのPS/2 MOUSE Adapterを作ってみました(Delux版でなくシンプル版で)。
ソフトは今のMPASMで通るように、ヘッダ部の書式変更、定数10進表記を 16 -> D'16' のように変更、EEPROM 用データの定義のorg 位置を 0 -> 0x2100, 0x30 -> 0x2120 と変更、edata -> de と変更しただけで、あとはほぼそのままです。
※2009/6/30補足: MPLAB8.33で通した際のソース修正点
- レジスタ名の変更 (OPTIO → OPTION_REG)
- ソース末尾への end 行の追加
- 即値の書式変更 (10進数: 255 → D'255' , 2進数: 0bxxxxxxxx → B'xxxxxxxx')
list P=PIC16F84A include "P16F84A.inc" __CONFIG _HS_OSC & _PWRTE_ON & _WDT_ON & _CP_OFF
org 0x2100 E_SPEED: de D'0' ;スピードの初期値 ・・・(以下、省略)・・・
かくして、こちらが完成した PS/2 mouse to X68 mouse 変換アダプタ
miniDin6pinメスをケースに留めるナットが結構大きいので、ケースはオリジナルより一回り大きい物を使いましたが、これでもあんまり余裕なかったかも・・・。回路は小さいんですけどね。
ほとんどコネクタだけのようなスリムな変換アダプタもあったそうですが、私の物理加工はこのくらいが関の山かも(^^;。小さく収めて作るのって難しいですねぇ・・・。
#でも、動いてるから良いことにしよう。
[カテゴリ:x68]
2007-11-20
windry.sys 経由で AVIファイルが開けなかった理由
実機じゃないから放置・・・と書きましたが、やっぱり気になったので調べてました(^^;
泥臭い方法ですが、こんな感じです。
- AVI2ISD.X を dis.x にかけてソースファイル化
- 「AVIファイルではありません。」から追ってみる
- やはりファイルの読み込みに問題がありそうなので、_read 周辺を見る
- Windows上の成功ドライブ(h:)、失敗ドライブ(k:)に test.avi を用意
- EX68 を起動し、成功例を DB.X で追っていく
C>DB.X AVI2ISD.X h:test.avi h:test.isd ps _read --- _read のアドレスを調べる $000FAB5E:_read b1 fab5e --- ブレークポイントの設定 g --- _read の位置まで実行 l --- この位置からリスト表示 b2 xxxxx --- read から戻る位置にブレークポイント設定 d xxxxx --- SP位置からダンプして、スタックに詰まれた引数を得る d yyyyy --- 引数の読み込み領域のアドレスからダンプ g --- _read から戻る位置まで実行 d yyyyy --- 何が読み込まれたかを確認 ... --- 繰り返し
- 同様に、失敗例を DB.X で追っていく
C>DB.X AVI2ISD.X h:test.avi h:test.isd ps _read $000FAB5E:_read b1 fab5e ...
- 両者を比較したところ、読み込み結果が異なる事がわかった。
- 再度、失敗例で _read の位置からステップ実行して見ていく。
- 結果、fab7e の tst.l $0c(a0,d0.l) が 0 なら正常, 1 なら異常と確認
- これは __fddb 内 だということで…あれ、これ isatty() の判定フラグ?
- ファイルオープン時点で問題がありそうなので、__open 周りを調べる
C>DB.X AVI2ISD.X h:test.avi h:test.isd ps _open --- __open のアドレスを調べる $000FA958:__open b1 fa958 --- ブレークポイントの設定 g --- __open の位置まで実行 l --- この位置からリスト表示 ...
- 順に見ていくと…ドライブのデバイス情報が怪しい…
$000FA984 move.w d3,-(a7) $000FA986 clr.w -(a7) $000FA988 DOS __IOCTRL $000FA98A addq.w #4,a7 $000FA98C move.l d0,($0010,a3) (中略) $000FA9CC moveq.l #$00,d1 $000FA9CE move.l ($0010,a3),d0 $000FA9D2 and.l #$00008004,d0 <-- chk1: bit15 と bit2 が落ちてるか? $000FA9D8 beq $000FA9E4 $000FA9DA moveq.l #$03,d0 $000FA9DC and.l ($0010,a3),d0 <-- chk2: bit0,1 が落ちてるか? $000FA9E0 beq $000FA9E4 $000FA9E2 moveq.l #$01,d1 $000FA9E4 move.l d1,($000c,a3) <-- ここで値を書き込んでいる
- $FA98C にブレークポイントを設定し、d0 の値を調べると…
b fa98c (止まる度に d0の値 をチェック) NG例 OK例 内蔵HDD 1回目 80c1 80c1 80c1 2回目 80c2 80c2 80c2 3回目 80c2 80c2 80c2 4回目 c0c0 c0c0 c0c0 5回目 80c0 80c0 80c0 6回目 2027 202a 0002 <--- NG例では、chk1,2 共に流れる値が返ってる 7回目 - 206a 0042
- 肝心のデバイス属性の意味(ぷにぐらま〜ずマニュアルより)
bit15 0:ブロックデバイス 1:キャラクタデバイス bit14 0:IOCTRL 不可 1:可能 bit11 0:特殊 IOCTRL 不可 1:可能 bit 5 0:COOKED MODE 1:RAW MODE bit 3 1:CLOCK デバイス bit 2 1:NUL デバイス bit 1 1:標準出力デバイス bit 0 1:標準入力デバイス (bit0〜5 は bit15 が 1 の場合のみ有効)
・・・という事で、どうもドライブのデバイス情報を得た時に、キャラクタデバイスと誤認されてしまう事が問題ではないかと思われるのと、bit0〜5は bit15 が 1 の時のみ有効という事で、$000FA9D2 のand.l #$00008004,d0 を and.l #$00008000,d0 に書き換えてみることにした。
- 実際のファイルの書き換え
ジャンプする命令じゃないので、そのまま C0BC 0000 8004 を検索して、C0BC 0000 8000 に書き換えてあげます。DB 使って書き換えてみました。
C>db X68k Debugger version 3.00 Copyright 1987-1993 SHARP/Hudson Micro Processor Unit:16bit MC68000 Floating Poing Co Processor:Software emulation. -p Micro Processor Unit:16bit MC68000 Floating Poing Co Processor:Software emulation. debug program from $000B7A40 user program from $000EE4B0 -r AVI2ISD.X,$100000 -p Micro Processor Unit:16bit MC68000 Floating Poing Co Processor:Software emulation. debug program from $000B7A40 user program from $000F0110 end $0010D96E exec $00100000 symbol table from $000EE3C0 -msw 00100000 0010D96E C0BC 0000 8004 0010A902 -d 0010a902 -l 0010a902 -mew 10a906 0010A906 8004 :8000 0010A908 670A :. -w avi2isdK.x,$100000 $10D96D -q C>fc /b AVI2ISD.X avi2isdK.x 0000A907: 04 00 C>
さて、こうして 1byte 書き換えた avi2isdK.x で、先の NG例 のドライブのAVIファイルを試してみたところ・・・Wow! AVIファイルじゃない!なんて言われずにちゃんと走ってくれました(^^)
まぁ、戻ってくるデバイス属性値が変だから仕方ないところではありますが、何はともあれこれで動くようになって良かった良かった。
[カテゴリ:x68]
2007-11-17
失敗、失敗
昨日の、変換できるAVIファイルと変換できないAVIファイルがあった件ですが、とりあえず何とかなりました。
実は、変換時間短縮のために、エミュレータ上で windrv.sys 経由でAVIファイルを読ませていたのですが、あれこれ試してみると、ファイルではなく、置いていたドライブにより成功/失敗となる事がわかりました(要は、E: に置くと失敗するが、I: に置くと成功するという…)。
深く追求はしていませんが、問題のドライブの場合にはRIFFヘッダが読めてないんですよねぇ・・・。
もっとも、実機には関係ないし動くドライブでは変換できているから、まぁいいやと今は放置してます(^^;
[カテゴリ:x68]
2007-11-16
動画に感動
今日はちょっと一息入れて、X68で自然画の動画を見ています。
実のところ、今まで自然画の動画を X68 上で見たことはありませんでした…と言うのは、当時は充分なディスク容量が無かった事と、040turbo も 060turbo も積んでなく、とても無理だろうなぁと思い込んでいたから(^^;;
しかし、x68ch の情報を見ると、128x128 位の ISD形式なら 10MHzマシンでも10fps 位いけるって書かれているじゃぁないですか。030 + Mach-2 なら 30fps も!?
これはやってみなくちゃ!という事で、手元の EXPERT改 17.5MHz でとりあえず音声無しの画像だけで試してみました(AVIファイルは Windows 上で無圧縮にして LAN経由で実機に持ってきました)。
(数時間後)
・・・うまい、うますぎる・・・
今更、何を言ってるんだ?とお思いでしょうが、実機で自然動画がびしばし動いている様子はまさに圧巻です。未見の方は、ぜひ実機で味わってみてください(^O^)/
[今日お世話になったソフトご一行様] avi2isd.x --- AVI無圧縮ファイルからISD形式へコンバート isdplayr.x --- X68上で ISD ファイルを再生
※ちなみに、まだ手元の動画全てが使えているわけじゃなく、幾つかのファイルはうまくコンバートできない(AVIファイルではありません。と言われる)ので、その辺りもうちょっと試してみたいなと思っています。
[カテゴリ:x68]
2007-11-14
EIZO GAWIN M-10
愛用の CRTディスプレイ CZ-612D も、最近は時々画面が明るくなったり暗くなったりと調子が悪いご様子。そこで今使ってるのが ナナオ(EIZO) の液晶モニタ M-10。アナログTVも見れるし、31kHz 時に画面下部 32dot (512-480=32) が切れないので結構重宝してます。
31kHz ノンインタレースでは、次のように画面いっぱいに 768x512dotで表示されます。
24kHz インタレースだと、小さくはなりますが大体表示されますね(実用じゃないですが)。
15kHzだと、一部しか表示されませんが、画面見てモード変えるくらいなら何とか使えますね。
マイコンソフトの XRGB-3を使ったら、15kHz も綺麗に表示されるのかなぁ。いつか試してみたいなぁ(^^)。
[カテゴリ:x68]
2007-11-12
押入れがさがさ
週末冷え込んだので風邪をひいてしまったかも知れず(汗)。ともあれ、色々と環境を整えつつぼちぼちいこうかと企み中でございまする(やはりロジアナも欲しいなぁ・・・)。
さて、あれこれ資料を探して押入れかきまわしてたら、こんなお宝を発見しちゃいました!せっかくなので、アドエスのカメラで記念撮影(ぱしゃ)。
う・・・ぴかぴか光る物体って周りが映りこんで撮影激難(T-T)。これが精一杯。
てなわけで、写真で見るだけでも楽しめるマグカップの次期生産楽しみにしてまーす!
[カテゴリ:x68]
2007-11-9
魂のマグカップ
ありゃっ、一ヶ月以上も前にマグカップの受け付けをしてたのですねん!?いかん、冬眠(夏眠?)してる間にこうも世の中が進んでいたとは…迂闊ですた(汗)。
オリフェスの時に見たのはちょっと小ぶりのものでしたけど、これは大きめなんですね(^^)。取っ手も持ちやすそうだし、いぃなぁ〜…って既に時祭イヴ遅しですか(^^;;
[カテゴリ:x68]
2007-11-8
ただいま追いかけ中
半年間の流れを追いかけようとしていますが、なかなか進まず(^^;。とりあえず先にバナーだけ貼らせてもらいます〜。
月はでこぼこ
JAXA(http://www.jaxa.jp/)で公開されている、かぐや撮影の月面映像を見ながら。
打ち上げ成功だけでも大変なのに、こうして遙か彼方の月まで行って地球や月を撮影してくるんだから、すごいとしか言いようがないです。素直に感動。
それにしても、どうして TVではあまり かぐやのニュースを流さないんかなぁ。各ポイント、ポイントでの制御は手に汗にぎる・・・というか、ちゃんと動いてくれるかドキドキして見れない(^^;くらいドラマチックなのに。
国も、税金を無駄に使ってないで、基礎的な研究やこうした技術の積み重ねに金をかけて欲しいものです。
2007-11-7
半年間のご無沙汰です
色々とありまして、気づいたら半年近くも過ぎてしまいました。
人生には様々な転機が訪れるものなのでしょうが、あいかわらず道に迷っているばかりの自分に少々嫌気がさしてきたので、なんとか動き出そうかと GPSロガー WBT-201 を買ってみました(オイ)
今更あれですが、自分の歩いた軌跡が後からちゃんと見れるのって面白いですね〜(^^)。
現在地を表示できるように PDA と組み合わせてっと、こりゃいいや。これなら方向音痴の自分でもどこでも迷わずに行けるかも〜。
てなとこで、そろそろ活動開始といきたいもんです。
2007-5-3
オリゲー・フェスタ☆68 第10回前夜
いよいよ明日に迫ったオリフェス68 (^^)/
生の MC68060RC75 も見てみたいし、ごった煮CD、ネレイド全部載せ、ワイヤレスUSB joypad とかFPGA版MZ-700デモ等々、どれも興味をそそられますね〜。
朝から行けるように、今から移動しますです(^^;。
2007-3-26
オリゲー・フェスタ☆68
3月もあと少しで終わり・・・きっとあと少しで平和な日常が戻るはず・・・。
それはさておき、オリゲー・フェスタ☆68 もいよいよあと1ヶ月少々に迫りましたね。
実のところ、こうしたイベントには行ったことがないので、一度行ってみたかったのです(^^ゞ
1人より2人がether、2人より3人がe〜 ってなとこで、『みんなでいこう! オリフェス☆68』
#68本体持ってミアカフェ・・・って、それは違〜う<そっちも行ったことないけど(^^;;
2007-2-13
夢を超えた(ぃ)
少しずつ現世に復帰しようと努力しているトラップです。
060turboXプロジェクト:重要なお知らせを掲載(XPS.JP)
そういえば、去年、030用のPGAソケット探してまわったんですが、どこに行っても見つから無くて断念した覚えがあります。060用のPGAソケットもそうなのですね。060 を愛機で動かしたかったのは山々ですが、久々に半田ごて握ったり、オシロ繋いで修理したりと、楽しい時間を過ごせたので良かったと思います。
#でも、いつかは 060 とか思ったり
・・・で、MCF5475のスペック等を見ると・・・あ、面白そ(笑)
や、何もしてない身で何を言う?というのはありますが、FM-7 はサブCPU にグラフィックをまかせていたじゃないですか。MZ-2500 に至っては、CPU より周りの石がよく働いているという、あぁ、管理職になったらこんな風に優秀な部下(石)を使って、自分は楽したいな〜っていうのが夢で(現実は多分違う)、便利な周辺というのは有りだと思うのですよ。
獣を超え、人を超え、そして神となる・・・ってことで、面白そうな Prj. は試してみたいな〜なのです。
つか、私も何かせんとあかんのですが(^^;;
[カテゴリ:x68]
2007-1-8
新年生存表明
何やらどたばたしている内に暮れて明けてしまいましたが、とりあえず生きております(^^;
仕事の環境が変わって早や5ヶ月、私生活まで仕事に侵食されている気が気がするこの頃ですが、ホワイトカラーエグゼンプションとやらが動き出すと、更に劣悪な労働環境になるのでしょうね(--;
とりあえず2007年、皆様過労死しませんように (-人-)
#なんちゅー年始の挨拶なんだか(^^;