/var/log/hdk.log

最新 5 日分


13 (土)

%1 どようび

バイクのエンジンオイル交換。 だいたい 10 か月で交換している。 使い方的にはシビアコンディションにはほど遠く、今回は鈴鹿にも行ったけどギリギリ 3,000km 行ってない程度。 ふと思い立って電話して、今日は午後にできるけど時間が掛かります〜というので、じゃあ預けて後で取りに行きますねと言って、持っていったら、「今なら 30 分くらいでできますよ〜」って、あれ!? まぁでも預けて小一時間後に取りに行った。 なかなかね、自分みたいな近所組はひょいひょいと行けてしまうが、八王子とか山梨とか、遠くから来る人達は時間も読めないだろうから、予定が狂ってしまうことはあるんだろうなぁ。 都心のほうは店もいくつかあって恵まれているけど、多摩地区以西の中央道方面はかなり広範囲がここだろうしな。

エンジンオイル交換終わってちょっと旧ランド坂往復してみた。 ランド坂降りたところは住宅街に入って狭い道を抜けるバイクにはいい感じの抜け道があるのだが、まだ覚えられていない。 この先行き止まりってあって、マジかー転回しないとと思いながら先に進むと実は行き止まりじゃないなんて、訳がわからない。

TVer でコナンを見る時に、逆転裁判のテレビアニメがあることに気づいて見てみた。 あのゲームの世界をそのまま持ち込んでいる風なのだが、真宵ちゃんの声はすごく違和感あるなぁー。 なんかこう、頭の中で勝手に作られていたイメージがあって、それとのズレが激しいパターン、BLEACH のルキアもそうだったし、なんでだろ。

テレビでやってた映画『三度目の殺人』。2017 年の邦画。 主人公は福山雅治演ずる弁護士、役所広司演ずる被告人は強盗殺人容疑が掛けられており、殺された人の娘役が広瀬すずで片足が不自由。 主人公と同じ弁護士事務所に他に吉田鋼太郎演ずる弁護人ともう一人いて、あと主人公の父役が橋爪功で、それと検察側の人の役が市川実日子という、有名な役者がたくさんそろっている。 役所広司の表情がいい。 カメラワークがおもしろい。 物語としてはなんだか難しい。 あまり多くを語らない。 主人公は娘との関係があまり良くなく配偶者とは離縁しようとしていて、被告人は鳥を飼っていたが死なせてしまったか何かで 1 羽を除いて外に埋めて、被告人の娘も足が悪く、などいろんな設定が出てくるし、被告人が殺人を犯すシーンに、殺された人の娘も殺人を犯すシーンまでもが出てきたものの、そういった伏線は回収されず、もやもやしたまま終わった感じがする。

2018/10/13 のコメントを読む・書く


14 (日)

%1 DOSBox-X

NyaHaX'93 でビープ音の音程が高い件を調査した。 まずは DEBUG コマンドで 8253A の挙動を確認してみたが、大丈夫そう。(DEBUG コマンドは先日 Microsoft から公開された MS-DOS 2.0 のもので十分。) むしろ Neko Project 21 のほうが間違っている。BCD が無視されているっぽいし、モード 2 にしてもビープ音が鳴っているんだから明らかに変。 その辺はさすがに DOSBox 由来のコードが役に立っているのかも。

で、NyaHaX'93 を逆アセンブルして音程を設定しているコードを探す。3fdbh というのはとても検索のしやすいポート番号で、すぐに見つかる。8 ビットシフトとかなかなか無駄の多いコードだな、C で書いてあったんかな... で、怪しいポート 0042h を見つけた。 システムタイプやシステムクロックを取得するものらしいのだが、なんと DOSBox-X では ffh が出てくる。 未実装かよw そりゃあだめだw

とりあえず 8MHz を選択してみたところ、NyaHaX'93 は正常に動くようになった。 音程と速度が変だったのは単にシステムクロック判定がうまくいっていなかったためということになる。 しかし大貧民はやっぱりなんか速い気がするな。KATALITH は動かないし... ffh だとハイレゾ対応機種扱いになっているおそれもあるな。

%2 レンタルカート

藤野。 久々ワンコインデー。5 回乗ってベストタイムは 39.0 秒くらい。 驚異的な速さの 7 号車。 自分の乗り方では他と 0.9 秒くらい違う。

%3 行き帰り

車で一般道経由で藤野へ行ったのは久しぶりな気がする。 午後のんびり出発したので行きは空いていた。

問題は帰り。 空冷 354cc エンジンの旧車でやってきた人が、教習所のところまで渋滞してましたよと。 渋滞は空冷エンジンの冷却に影響があるので困るというような話をしていた。 しかしなぜ渋滞? スタッフさんに話を聞いてみると、道志みちが一部通行止めになっていると... 台風にやられて土砂崩れがあり、復旧にはかなり時間が掛かりそうな状況らしい。 初めて知った。

相模原市緑区で発生した崖崩れで通行止めとなった国道413号 - YouTube

藤野から山中湖方面には行けるというので、つまり山中湖方面から走ってきた人の、相模原 IC を目指す人達の迂回路が藤野、相模湖 IC なのである。 その証拠に IC までが渋滞していて相模湖駅前や高尾山 IC はほとんど渋滞していないのである。(なお、高速ではなく相模原市街地方面に向かう人達はたぶんプレジャーフォレストの前に出る道を使うと思われる。狭いけど。)

じゃあどこから帰るかな、ということで、狭い隧道からすぐの裏道に抜けることにした。 裏道も見るからに木が倒れてきているところがあって、木のトンネルになっていて通れることは通れたけどたぶんこれも台風被害なんだろうなぁ。

ま、しかし道志みちがそういう状況だと御殿場から帰る道の選択肢がひとつ減ってしまうことになるかも知れないな。3 桁とはいえ国道なので、早急に復旧工事が進められるだろうとは思うけど。

2018/10/14 のコメントを読む・書く


15 (月)

%1 DOSBox-X

ポート 0042h を適当に実装してみた。 常に固定値 0x94 を返すといういい加減きわまりない実装。 これだけで Bio 100% 系ゲームは動くようになる、というか今度は 8MHz に切り替えたらだめなわけだけど。 大貧民は相変わらずだ。 大貧民はなんだか速いのと、「平民」などの文字と Medium などの文字が重なる事象も発生している。

蟹味噌はなぜかテキスト画面が消えない。 そういえば NyaHaX'93 を含めカーソルが消えないのも多い。StormySpace は相変わらず文字が出ないがスピードは 9000 に変えたらかなりスムーズに動くようになった気がする。Studio hero の ASTRON 体験版は EGC をかなり使用しているらしく、DOSBox-X の EGC のエラーが出まくる。 ざ・騎馬戦は遅いのとマウスキャプチャーできないと操作が無理だな。

なお、マウスドライバーは MSZ という ZOBplus のフリーソフト? が騎馬戦と一緒においてあった。NEC 方式も Microsoft 方式もいけるやつ。

%2

先週火曜日を最後に明らかな閉塞感は出ていない気がするのでイソソルビド内用液は飲んでいない。 軽い違和感みたいなのは時々あるような気もするが気にしないことにする。 週末だったっけな、左耳を下にして寝ると、右耳の中で何かがぽたぽたとたれているのかと思うような、小さな音が聞こえていた。

アデホスコーワ顆粒 10% とメチコバール錠 500μg は 1 回減らして朝晩にしてみよう。

2018/10/15 のコメントを読む・書く


16 (火)

%1 DH

大貧民のプログラムを解析する。 圧縮の解き方がわからなかったので DOSBox-X まるごと core dump で中を探すと、それっぽい機械語が見つかる。 例によって 3fdb は検索しやすい。 ビープはモード選択に 76h でなく 7eh を使っている以外は普通っぽい感じ。 まぁどちらでも問題ない。 システムクロックは 0000:0501h から読んでいるらしい。 だから Bio 100% のとは違って影響を受けないソフトがあるんだ。

ビープの近くにポート 0060h を見ているループがあった。 ビット 6 を見ていて、水平帰線信号らしい。0000:054Ch を見て 31kHz 対応もしている。2483 や 3147 は完全に水平走査周波数から来ている数字だ。 垂直帰線じゃないとはなんか面倒なことをしているな。 試しにその回数を数えるプログラムを作った。

/* gcc -m32 -nostdlib -nostdinc -Wl,--oformat=binary,-Ttext,0x100 -fno-PIE a.c */
asm(".code16gcc;call _start;retw");
in60(){unsigned char x;asm("in $0x60,%%al":"=a"(x));return x;}
_start(){
  int d,y,i,l[10];
  for(i=0;i<10;i++){
    for(y=0;;y++){
      do if((d=in60())&040)goto vsync;
      while(!(d&0100));
      do if((d=in60())&040)goto vsync;
      while(d&0100);
    }
  vsync:
    while(in60()&040);
    l[i]=y;
  }
  for(i=0;i<10;i++){ y=l[i];
    char buf[6]={'0'+(y/100)%10,'0'+(y/10)%10,buf[2]='0'+(y/1)%10,
      '\r','\n','$'}; asm("int $0x21"::"a"(0x900),"d"(buf));
  }
}

これはきっちり 400 と出る。 合っているっぽい雰囲気? いや待てよ、画面外の信号は出ないのか? テレビに出せるようなタイプのコントローラーであれば、表示部分以外にもボーダーカラーを出しているわけで、水平帰線もしていないとあんな表示はできない。 あっ、そういえば PC-98 もボーダーカラー設定できたよね。 やっぱり変か? でも T98-Next でも 400 だし、それで T98-Next は大貧民のスピードは合っていそうだから (ビープ音の音程が変わらないんだけど)、これのせいじゃなさそうか? わからん。

2018/10/16 のコメントを読む・書く


17* (水)

%1 整形外科

朝整形外科に行ってみたら、そこまで早く行ったわけでもないのに誰も並んでいないという珍しい体験。 待合室に入る時まで他に誰も来ないというのは初めてだったかも知れない。

頸椎のほうは調子は良い。 電気治療の頻度もだいぶ減らしているけど、病的な痛みは最近は全くない。 軽い違和感は時々あって自宅で低周波治療器を使うけど、それもだいぶ頻度が減った気がするし、それだけで間に合うくらいには良くなっているかも。 まぁその違和感が飲み会の後なんかに良く出るのは変わらないけど。

%2 テトリス風ゲーム

DOSBox-X で試していないゲームがあった。 中学生の時に作ったテトリス風ゲームだ。UI はそっくり市販ミニゲームのパクリなのだが、実装は C とアセンブリ言語による独自実装である。 試してみたらフツーに動いた。

C とアセンブリ言語と言うと普通はハードウェア依存の処理をアセンブリ言語で書いて残りを C で書いたと思うだろう。 あるいは性能的に厳しい部分もアセンブリ言語で書くと思うかも知れない。 実際には初めて C をまともに使ってみたプログラムであり、書きやすい方で書いたという代物である。 キー入力 (割り込み処理)、ジョイスティック (外部常駐プログラム使用)、音 (外部常駐プログラム使用)、グラフィック画面描画、Vsync 割り込み処理、はともかく、時間待ち (sleep, DOS のシステムコールをたたくだけ)、点数などの数字表示、ブロック表示、ブロック表示判定 (重なり、はみ出し判定)、行削除、行挿入、main 関数 (setjmp/longjmp 相当の処理のためのスタックポインター操作を含む) やグラフィックデータなどもアセンブリ言語で書いてある。 そして C のほうにも山盛りのグローバル変数... 我ながらひどいクオリティである。

好みだが、当時アセンブリ言語はほとんど大文字で書いている。C とリンクするところだけ小文字が入っている。 さすがに C は小文字で書いている。 確か一時期 PASM なんかで小文字で書いた頃もあったんだけど、結局大文字のほうが頭に入りやすいというか、Intel/AMD のマニュアルなんかも命令はみんな大文字だしな、未だに。 今もなんとなく Intel 表記は大文字がいい気がする。AT&T 表記は小文字で書く。

当時のコメントは潔く全部日本語だ。 アセンブリ言語のほうは割と丁寧にたくさん書いてあるが時々謎な上から目線な文が見られる。 しかしないよりは遙かにマシだ。 汚い実装なのに今見てもかなり理解できる。

2018/10/17 のコメントを読む・書く


Powered by Tomsoft Diary System 1.7.4

/var/log/hdk.log コメント一覧

トップ / 日記索引 / 日記 (最新 5 日分)

Hideki EIRAKU