日記 (2009年12月)。
$Id: 200912.php,v 1.36 2012/01/27 04:43:03 isaki Exp $

2009/12/01 (火)
◎ [NetBSD/x68k] ん、今日の com(4) (PSX16550) は panic するほうの日か。 わけわからん。 今日の backtrace は全部 comwrite で spl0 で trap で panic だった気がする。
◎ [NetBSD/x68k] NetBSD/x68k 5.99.22 のインストールフロッピーはちゃんと 起動してきたので記録メモ。ある意味すげーな。 でも、最初のメニューの枠が文字化けつーか、 x とか k とかの文字になってた。 以前 (いつだよ?) はもうちょいちゃんとした枠じゃなかったっけな。

2009/12/02 (水)
◎ [アニメとか] 少し前に ARIA を全部見終わってからやっと、 9月か10月には届いていた
ARIA The BOXを聞いてみた。 アリスちゃん (広橋涼) の「ルーミス エテルネ」が最高にやばい。 劇中ではこの歌が出てきたシーンは原作知ってるし 原作にも劣らない出来だし歌そっちのけで感動するシーンなんだけど、 改めて歌だけじっくり聞くとよい。 さらに歌詞カードにある裏話を読むと ARIA スタッフの 意気込みみたいなものが伝わってくるのでもっとよい。 そう、これはアリスちゃんが歌うことにこそ意義がある。 アリスちゃんの声の人すごい。
◎ [アニメとか] 「ルーミス エテルネ」とその歌詞 (の1番) はエスペラント語らしい。 エスペラント語の存在は子供の頃から知ってたけど遭遇したのは初めて。 歌は1番がエスペラント語、2番が日本語のロゼッタストーンになっている から訳は不要だけど、エスペラント語についての詳しい解説はこちら → なかきよ「ルーミス エテルネ」はすばらしい。 しかしエスペラント語ってわざわざ作った人工言語のくせに ISO-8859-3 (Latin-3) なのな…。 この方の解説ページでもそうだけど、Ĉ (Ĉ) を C^ と書いて代用してたりして、これじゃ普及しねーよな。 なぜ ASCII で足りる集合にしなかったのかと小一時間(ry。 と思って Wiki 見たらやっぱフランス語あたりの影響を受けてるらしい。 まあそうだろうな。 ヨーロッパ人の言語(文字集合?)に対する発想はおワットるからな。

2009/12/04 (金)
◎ [XM6改] あー、040 専用ってことはスタックフレームとか全部違うんだった。 ギャース (藍華ちゃん風に)。 ← もっと早く気付けよ。
◎ [X680x0] 菅原さんところに X68060 が来たらしいので見に行ってみる。 まあ外から見ると X68030 だけど。 あと中見ても 68060 はファンの下だから見えないけど。 そしてまだ届いたばっかだったので 060 が本領発揮してるところは見れなかった。 てか、世間はもうすぐ西暦2010年なんだけど、X68030 純正の箱て…。 ある意味本体より希少価値。 初めて見たよ (← X68030 はオークションで手に入れた人)。

で、NetBSD/x68k のインストールフロッピーを持参してみたんだけど、 メディアの相性が悪かったのか2麻衣目の途中で固まったので dmesg は見れず。残念。


2009/12/05 (土)
◎ [XM6改] ということで、気を取り直して素の UAE に手を出してみる。
◎ Google 日本語入力を入れてみた。
Google日本語入力 ここでは着物を脱いでください ここで履物を脱いでください 何を変換させてみるのが面白いか思いつかなかったのでとりあえず やってみたんだけど、うん、まあ、そりゃあそうかも知れんが…。
Google日本語入力 涼宮ハルヒ 涼宮ハルヒの憂鬱 何文字目で候補を出すかと思ってやってみた。
Google日本語入力 朝比奈みくる おいおい、朝比奈の候補はみくるちゃん以外にいないのかよ。
ちなみに「ながと」では長門市しか出てこなかった。
Google日本語入力 宇宙戦艦ヤマト 宇宙船 宇宙線 まさかとは思ったが…。
Google日本語入力 戦場のヴァルキュリア 戦場のメリークリスマス 戦場のピアニスト なんか総じて候補の優先順位が偏ってませんかね。
Google日本語入力 勇者のくせ 勇者のくせになまいきだ なんだこれ?

2009/12/06 (日)
◎ [XM6改] XM6 + UAE。 UAE のほうが Aranym より随分読みやすかったので、 わりとなんとかメモリアクセスとは接続できて、 解釈実行のループ自体はそこそこ回ってると思う。 ただ UAE もプログラム領域アクセスとデータ領域アクセスを そんなに区別してないので STARSCREAM_*REGION は やっぱり活用できない感じ。 それはさておき、UAE コアは CPU サイクルをちゃんと持ってるっぽいので、 割り込みとかつなげる前に 今度こそ XM6 クオリティに近づけるため、 先に CPU サイクルをきちんと数えてみることにする。 って、IPL ROM の1命令目 MOVE #$2700,SR は 16クロックのはずなのに 12 と返してきたし、 3命令目の RESET (132クロック) も 4クロックで終わりやがった。 StarScream のソースはちゃんと RESET は 132 と書いてあるな。 えーっと、全部この調子でやっていくんすかね?。 あー、違うな。最初の PC から命令をフェッチするタイミングと方法が StarScream とは違うから最初の命令だけ読めてなかったのか…。 ふみゅー、デバッガで見るとちゃんと MOVE to SR 命令だったのに 実際には $0000 が読めて ORI.B (12クロック) を実行してたと…。 これに気付くのにまた数時間かかったよ。 UAE の CPU デバッガって実行モジュールとはかなり独立してるから、 こういう低レベルなところでは デバッガで見えてるものと実際の動作が違うことがわりとあって、 これじゃデバッガにならねーじゃん…。
◎ [アニメとか] とりあえず貼っておこう。 『KIDDY GiRL-AND キディ・ガーランド』第2話がニコニコネタオンパレードなど色々酷かった件。 自分は幸い原作だか前作だかを何も知らないので 素直にネタアニメとして楽しんでますが。

2009/12/08 (火)
◎ [XM6改] XM6 つーか StarScream。 CPU サイクル周りにカウンタが 4つくらいあって どこで誰が何しとるんかさっぱり分からんぽ。orz
◎ [X680x0] X680x0 (と MSX) の部屋 復活。 もう今どき需要はないだろうと思っていつぞやの引越しの際に しれーっと削除してたんですが、 ami.x とか今でも使ってくださっている方がわりといるようなので。 あと、急に X68060 を手に入れても 5インチドライブも 5インチフロッピーも Nereid もない場合、まさかの JOYCOM 15年ぶり復活か? とか(何。

2009/12/10 (木)
◎ 去年の車検直後から、 ファンベルトだか知らんけど寒いとキュルキュル音が するようになってて、いよいようるさくなってきたので、 今日は点検とタイヤ交換も兼ねてディーラへ。
◎ [涼宮ハルヒ]
小説涼宮ハルヒの溜息。 アニメで見てるので特別新しくはないけど、 キョンの心の中のツッコミとかが微妙に面白くて、 移動中の電車とかで読んでると笑いをこらえるのが大変。 レーザーとビームのくだりとか、 単独で出てきたホイミスライム並みにザコとか。 レベル低いうちは単独ホイミスライムはあまりザコじゃないけど。

2009/12/12 (土)
◎ [XM6改] gXM6。CPU を UAE (68000) に差し替えて、 ようやく割り込みをつなげることが出来たので SRAM においてある SxSI までは走った。 SUGEEEEEE (C)そーりょ。記念パピコ。 ここでフロッピー入れるとバスエラー周りで死ぬけど。

サイクル周りはよく分からんのでいんちき実装。 というか UAE、IPL の先頭から 18命令実行したうちの 3つの命令でサイクル数が違ってたよ…。 先頭から18個くらいだからデータシートと突き合わせることは出来たけど、 こりゃサイクル揃えるのはむりぽ。 まあ命令サイクル数なんてどうせ 030 になると(自粛。

◎ [NetBSDとか] arch/playstation2 が消えたのな。残念。 最近はもう減るほうが多いような…。
◎ [NetBSDとか] in kernel の portalfs も消されたらしい。puffs 使えと。 ドキュメント、ドキュメント(AA略
◎ [XM6改] XM6 + UAE。バスエラーで死んでるんじゃなくて、 バスエラーで例外処理に移ったんだけど戻る時になぜか 例外スタックを巻き戻さずに普通のサブルーチンみたく(?) MOVE.W -(A7),SR して RTS してるから、 SR 破壊、PC 破壊してもう一度バスエラーが出そうだが、 PC でバスエラーになるところは実装してない。 つーかそもそもなんでこんなことになるのかと CPU デバッガを駆使してたら、ユーザ権限で ROM にアクセスして 仮想マシンのバスエラーに飛んだり。 あー、デバッガのアクセスが仮想マシンに干渉しちゃってるよ(汗。 あー、何か分からんから無視してたあのルーチンはデバッガ用の メモリアクセスルーチンだったのか。スマンカッタ。 てか、もうちょい分かりやすい関数名にしとけよ…。 で、よく目を凝らして見たところ、 バスエラー例外のベクタから拾ったアドレスは 00e2bc なのに PC が 00e2be から実行再開しとるな。 あー、00e2bc (1命令飛ばしたところ) は MOVEA.L A6,A7 って、 これちゃんと処理の先頭で例外スタックを取り消してあるわー。 きょえーー。ええっと、今度は誰が犯人だ?
◎ DENON RCD-M37 買うた。 台所でラジオとして使ってるコンポが調子悪くなってきて、 時々急に電源が入ったり、急にボリュームが上がり続けたり怪奇現象。 夜中にそんなことになると大変なので早急に捨てることにして、 それとは別にうちの部屋の Victor の安っぽいミニコンポは 数年前に間に合わせで買ったので不満だらけで、 いずれは買い換えたいところではあったので、ちょうどよく玉突き。 RCD-M37 は CD、チューナ、USB、外部入力3系統、外部出力1系統。 MD はないものの USB はあるし、外部入力が多いこと、 外部出力があることなど必要な用件は満たしてる。 カーステも MD から USB に変えたし、 いよいようちも MD の再生環境が絶滅寸前なわけだが、もう仕方ない。 てかもう円盤媒体いらないよ、シリコン媒体でいいよ。 それとこれまで外部入力1系統にオーディオ切替器を使ってたのが 本体だけで操作できるようになるのは助かる。 あと Victor のは安っぽいコントラストの低い液晶に 夜は明るすぎるバックライトの組み合わせで見えづらいこと この上なかったんだけど、 RCD-M37 は非表示部の黒さが半端なくてコントラストの高い VFD なのがギザカッコヨス。← VFD 大好き派。
◎ [野球] 赤星引退。残念だけど、こればっかりは仕方ないな。 赤星は通算盗塁数とか桁が違うもんね。 緒方 (今年引退) が22年で 268、石井琢が21年で 357、赤星は9年で381。

2009/12/13 (日)
◎ 「平野綾だけTV」 #9。 初のゲスト(というか講師役)なし。てか毎回こういうほうがよさげだぞ。 野球シーズン終わってから、 CS のフジは平野綾だけTV しか見てないので、 実質月1回1時間番組で1575円。たけぇー。 何年か前に 371 でやってた 「パッパッパッパッパッパッ Perfume」が月1回30分番組で 1260円とかだったからわりと張り合う勢い。orz
◎ [NetBSDとか] NetBSD メール消化中。 筒井さんが m68k の pmap あたりをがりがり直しているっぽい。 atari と amiga も共通になったのかしら。 x68k も動作確認しなきゃ…。(遠い目
◎ [XM6改] XM6 + UAE、バスエラーをなんとかしてみたら フロッピーの Human68k が起動したーーー。
◎ [XM6改] ちゃんと SxSI エミュレーション経由で 自分の HDD イメージも起動できるんだな。 サイクル周りがいい加減な件がどんなもんだろうと思って 立花さんの SI 3.66 を実行してみたら、68000/8.4MHz と表示された。 SI のソースを (この XM6 上で FU を起動して) 読んでみると 1msec に何回 DBRA できるかで測定してるらしい。 ソースが公開されてるって素晴らしい。 って DBRA (DBcc) って状況によってサイクル数が違わなかったっけ。 うむ、状況によって 10、12、14 クロックの場合があって 分岐する場合は 10 クロックだが、 UAE の命令のクロック数はコンパイル時決定なもんだから 12クロック固定になってるよ。 だから 10/12 = 0.83 で約 8.4MHz ってことなのかな。 てかループ回るほうが100万倍実行回数が多いんだから 同じ固定なら 10 で固定しとけばいいんじゃね?

2009/12/14 (月)
◎ 左肩が関節炎だそうで。あいたた。
◎ [XM6改] XM6。DBcc のクロック数を直したら 9.8MHz になった。 まあ、なんつーかソースに対しては正しく動作してるな。 そもそも XM6 がどうして 10MHz 動作の時に CPU を 9.79MHz 相当で駆動させてるのか分かっていないので(汗。

2009/12/16 (水)
◎ [XM6改] XM6。UAE は命令セットとしては 68030 にも対応してるので さくっと UAE を 68EC030 にして起動してみる。 XM6 は X68030 はサポートしていないが、 何故か ROM イメージ周りだけは X68030 にも対応してるみたい。 ああ、X68030 の場合無償公開されてない ROM がいろいろいるのか。 とりあえず無視(ぉ。 うひょ、X68030 の起動ロゴが出た。クロック数の表示が化け化けだ。 XM6 のシステムクロックに 25MHz を追加。 14.6MHz っていう表示が出た。 各命令のクロック数が 68000 相当だからか。 そういえば WinX68030 も UAE コア使ってて クロック数は 5/8 倍してるって書いてあったな。 おー、24.3MHz って表示された。近い近い。
◎ [XM6改] XM6 という素晴らしく完璧でソースも公開されてるエミュレータが あるにも関わらず Windows 用では手も足も出せなかったので、 MFC も GTK も全く分からないのに NetBSD (というか X) に移植して、 386 アセンブラとか 68000 CPU のこととかいまいち分かってないのに アセンブラばりばりで書かれた StarScream コアを C で書かれた UAE コアに載せ替えるところまではなんとか出来た。 どちらもそれなりに高いハードルだったと思うが、 X68000 を X68030 にすることは (細かいことを全部無視すれば ←コラ) そんなに難しくはないと思うので、 残る最大のハードルは 68EC030 → 68030 だけか。 ほんとかよ。 えっと、平成20年代中の開通を目指します、みたいな。
◎ [XM6改] [X680x0] さて、ROM ってどうやって吸い出すんじゃろうか(汗。 ググってもそれっぽいのが出てこないな。 XM6 上の HDD 環境使って久々にアセンブラでプログラム。 DOS_SUPER して DOS_OPEN して ROM の所を DOS_WRITE すれば いいんだっけ。10年ぶりだわ。キャッチャー木村拓也状態。 さて、この XM6 で作った .x をどうやって X68030 実機に 持っていこうかな。orz
◎ [XM6改] 最近は XP 上の VMware の NetBSD で暮らしてたんだけど、 こいつ時々キー入力が連射になるようなことがあって タイミングがおかしいのか知らないけど、ここで gXM6 動かすと しばらくするとスケジューラ周りの assert で落ちる。 実機の NetBSD で gXM6 を動かすとぱにっく見ても MXDRV で BGM 鳴らしてても落ちることはなかったのにな。 XP な PC 1台で NetBSD も賄おう計画は失敗か。
◎ [XM6改] 結局 XM6 から FD イメージに書き出しておいて EDITDISK で取り出して FTP 経由で送る方法しかないな。 X68030 を Human68k でネットワークに繋げるのに3時間くらいかかったけど、 なんとか ROM30.DAT ゲトー。
◎ [XM6改] うひょ、XM68030 キターー。 って VM はほぼ X68000 のまま何もしてないから 画面が化けたりするけど。 ウェイトあたりかしら? てかクロックアップしすぎると画面が化けたりするのは知ってるけど、 それに似た状態がエミュレータで起きるっていうのは、 ここ突っ込むところ?

2009/12/19 (土)
◎ RCD-M37 には外部出力端子がついているので、 ここ数年来の念願かなって久しぶりに ナイナイのオールナイトニッポンを聞いた。 もうリアルタイムで起きとける若さじゃないし(ぉ、 CM がうざいのをなんとかしたかったので HDD レコーダに録画 (録音) しておいて後から聞く。 これなら CM スキップも楽だし、 録り溜めも楽だし、編集も簡単。 にしても、いつ聞いても、変わってないのは安心する。 岡村さんももう40かあ。 もう30だ、どうするよ、みたいな話をしてたのはもう 10年前になるんだな。(遠い目…
◎ [NetBSD/x68k] 筒井さんが m68k 全部の pmap あたりをがりがりなんかされてたが、 水曜日あたりの 5.99.22 GENERIC は無事起動を確認。
◎ [XM6改] XM6 + 68EC030。MPU だけ 68EC030/25MHz 相当にでっちあげたけど、 VM が X68000 相当のままなので X68030 に相当入っているという ウェイトがないためか、ベンチマークはどれも実機と比べて数倍の 値を叩き出す。 てことで、とりあえず X68030 Inside/Out に掲載されている デバイスごとのウェイトの実測値をそのまま真似してみた。 といっても手もとに 68030/25MHz がないので正確に比較しようが ないんだけど、SI 3.66 の system performance も 160% 程度と たぶん実機もこのくらいじゃなかったかと思うし、 別のベンチマークでは一部のデバイスはアクセスパフォーマンスが EXPERT 比 100% になったり、 ぱにっくデータでベンチマークできるやつも 68030/25MHz の値とほぼ同じ程度になったし、 画面が化けてたのも直った。 まだ全部のウェイトを実装したわけでも ちゃんと比較したわけでもないからアレだけど、 なんかたぶんわりとあってるんだよねえ。 XM6 も Inside/Out もどんだけ正確なんだよ…。 すげーな。意味分からん。orz
◎ [アニメとか]
小説 戦う司書と恋する爆弾。 先に10月から始まったアニメ 「戦う司書」を見始めていて、 世界観がハンパなすぎでなかなか理解できなかったところ、 最近になって本屋に小説が平積みになってるのを見付けた。 小説のタイトル (恋する爆弾 → 雷の愚者 → 黒蟻の迷宮) が ここまでのアニメの進行順とあってるような気がして、 特に「恋する爆弾」というようなキーワードの話はアニメの1〜4話目だった。 てか、だからあの厚さの小説をアニメ4話で片付けると、 なんのこっちゃさっぱり分からんことになるのは 「アリソンとリリア」で経験済みなので (02/01 の日記、 11/06 の日記 参照)、 新作アニメをリアルタイムで見てる非常に貴重な途中だけども 急遽、原作小説から読み直すことにした。 あの不思議な世界観はまず文字で十分に説明してくれないと分からない。 まあ不思議すぎて絶対に文字だけでも分からないからアニメは 必要なんだけど (← 脳が退化)。 で、案の定、アニメ、端折りすぎ。 やっぱり小説 (原作) のほうが面白かった。 アニメのほうは端折りすぎてコリオが何に駆り立てられてるのか いまいち伝わらんかったよ。

2009/12/23 (水)
◎ [XM6改] XM6 + UAE。 X68030 の IPLROM では 68030 の MMU を一度動作させて MMU の有無を検出している。なので IPLROM を走らせると わりとすぐに PFLUSHA とかの MMU 命令に出くわす。 ところが UAE の CPU デバッガの逆アセンブラはこれが表示できなくて、 なおかつ表示させるのも構造的に面倒くさそう。 いっそのこと XM6 の逆アセンブラルーチンのほうが上品で ニーモニックも見慣れてるやつだし、手もいれやすそうだしってことで、 UAE CPU デバッガのニーモニックを表示させるところだけ XM6 の cpudebug.c を拝借。
これが UAE の逆アセンブラ。命令サイズを把握してないのでダンプも読みづらい
00ff0038: 46fc 2700 4ff8 2000 4e70  MV2SR.W #$2700
00ff003c: 4ff8 2000 4e70 7a00 b0ba  LEA.L $00002000,A7
00ff0040: 4e70 7a00 b0ba 1ab0 6608  RESET.L
こっちが XM6 の逆アセンブラ。読みやすい。
00FF0038: 46FC 2700                MOVE.W  #$2700,SR
00FF003C: 4FF8 2000                LEA.L   $2000,A7
00FF0040: 4E70                     RESET
◎ [XM6改] で、目的は IPLROM 内の表示できない命令を表示させたいだけ だったんだけど、ついつい、丸1日かかって cpudebug.c に 68010 〜 030 の新設命令を全部デコードさせてみた。 ただし IPLROM に出てこないやつは動作未確認(←無意味)。
UAE の逆アセンブラが MMU 命令にさしかかったところ
00ff0db6: f000 2400 f017 4c00 43fa  MMUOP30A.L D0,#$2400
00ff0dba: f017 4c00 43fa 008e f011  MMUOP30A.L (A7),#$4c00
00ff0dbe: 43fa 008e f011 4000 43f9  LEA.L (PC,$008e) == $00ff0e4e,A1
00ff0dc2: f011 4000 43f9 00f0 0000  MMUOP30A.L (A1),#$4000
XM6 の逆アセンブラを MMU 命令に対応させてみたもの
00FF0DB6: F000 2400                PFLUSHA
00FF0DBA: F017 4C00                PMOVE   (A7),CRP
00FF0DBE: 43FA 008E                LEA.L   $FF0E4E(PC),A1
00FF0DC2: F011 4000                PMOVE   (A1),TC
てか新設命令の配置方法が隙間産業すぎてちょっと驚愕。 NBCD はオペランド An のケースだけなくて空いてるから、 そこに LINK.L An 入れちゃえ、みたいな感じ。おいおい。
◎ [XM6改] XM6 + UAE。 UAE に MMU パッチはあるんだが、これも 040 用なんだな。 もういいや、とりあえずこの 040 MMU に 030 MMU をエミュレートさせてみよう(ぉ。 うむ、とりあえず 030 の PMOVE <ea>,TC を無理やり 040 の TC に見せかけて Enable ビットを上げたら MMU の処理に入ったっぽい。 でも当然 040 と 030 ではわりと互換性がないので MMU エミュレーション内の処理が、 invalid descriptor とかなんとか色々吐きまくって暴走したけど。 さて、どこからが間違いでしょう。
◎ NHK のお天気の半井(なからい)さん、 終わり際にお辞儀した後の最後のキメ顔なのかドヤ顔なのか 知らんけど、いつもバッチリ決めすぎてるのがちょっと面白くて、 半井さんが出るとつい天気そっちのけでそこだけ見てしまう。

2009/12/25 (金)
◎ [XM6改] 030 と 040 の MMU が全然違うってのは知ってたけど、 今更ようやく 030 の解説をさんざん眺めた後ふと 040 の解説を見ると、 きれいな構造してるだろう、嘘みたいだろう、別モノなんだぜ (C)上杉達也 ぐらい違っとるな。 てか TIA・TIB 固定、TID・IS 廃止ってあーた。 ビット配置の違いをなんとかすれば アルゴリズムくらいは拝借できるかと思ってたんだけど、 たぶんむりぽだなあ。
◎ [アニメとか] そういえば、「こばと。」断念。 なんかこれ NHK の朝ドラ (というか天花) のアニメ化ですかね って感じでいまいちだったので4話目くらいで挫折。

2009/12/26 (土)
◎ [XM6改] あれ、そういえば昔、X68030 IPL の MMU 搭載判定をパスするだけの 030 MMU を書いたことあったな (2006/07/18 の日記)。 当時は、仮に100歩譲ってもらって MC68030 エミュレータに MMU を書いたとしても X68030 仮想マシンがないから どっちみち意味ないねってことで頓挫したんだが、 ええっと、3年半かかって追い付いたってことでいいのかしら。
◎ [XM6改] On-Chip MMU、キターーー。 まだこの判定ルーチンを通すのに必要な処理 (1段目のショートディスクリプタテーブルとアーリーターミネーション) しか実装してないから、意味はないんだけど。 3年前はデバッグ表示見ながら、アドレス変換は出来てるから きっとこの表示が出るんだろうなーと思ってたけど、 今回は XM6 で動かしてるのでちゃんと見れるぞ。 XM6、すごいよ XM6。

2009/12/27 (日)
◎ ぐは、MMU で遊んでたら、岡山裕子さんの出るハナサカを見忘れた。orz
◎ [XM6改] 68030。PMOVE $0068D8,TT0 のように 実効アドレスワードを伴うコプロセッサ命令の命令フォーマットは
0000689E: F039 0800 0000 68D8      PMOVE.L $0068D8,TT0
命令ワード ($F039)、コプロセッサコマンドワード ($0800)、 実効アドレスワード ($0000 68D8) の順らしい。 エミュレータ的には 1ワード目の EA == $39 を見て、その実効アドレスワードとして 2ワード目を飛ばして3ワード目からの $0000 68D8 を取得しておいてから、 1ワード目 ($F0xx) を見て MMU 命令に分岐し、 そこで 2ワード目 ($0800) を取り出すっていう順序になる。 ややこしいな。 あー、だからこいつだけ引数に PC 渡して いつもと違う方法で2ワード目をフェッチしてたのか…。 てかそのわりに UAE は実効アドレスワードを一つ飛ばして取得する ってところが実装されてないのな。 まあ 040 の MMU だと必要ないからな。 ふむ、実効アドレスワードを伴う命令のケースと、 ページディスクリプタを実装したので、 Mitsuky さんの MMU テストプログラム 20010730 は動作したっぽい。 ソースも解説もディスクイメージもついてて至れり尽くせり。 ありがたく使わせてもらいます。
◎ 客人が来たようだ。

2009/12/30 (水)
◎ しかしミンスの小沢とか一体どれだけ馬鹿なのかと…。
◎ さーて、MMU 書くぞーと思ってたら、朝から晩まで農作業に連行。orz

2009/12/31 (木)
◎ [お天気] 昨日は雨のまま夜になって今朝は雪。積雪自体は 3cmくらいか。 ただ、気温が低いので (氷点下?) あまり道路には出たくない感じ。 10年前までは毎年数回はこの程度降ってたけど、 ここんところこの程度ですら数年ぶりじゃないかな。
◎ [XM6改] 030 MMU はアドレス変換自体はわりと出来たっぽい。 今のところ未実装なのは透過変換、 ロングディスクリプタのリミット、 ATC の更新(?)くらいかしら。よう知らんけど。 ただしほとんどのケースの動作は未確認(ぉ。
◎ [XM6改] [X680x0] てか、それ以前に VM と UAE コアとの間の アドレスエラー周りの接続がまだいまいちっぽいな。 つーか、その上 68030 だと奇数アドレスへの (フェッチでない) アクセスはアドレスエラーにならないんだよな。 しまった。 てことで1年生みたいなアドレスエラーのサンプルプログラム。 X68030 実機だとしれっと終わったことを確認。 X68000 実機はつなげるのがめんどいので(コラ)、 Windows の本家 XM6 v2.06 でアドレスエラーの白帯を確認。
start:
   move.w  start+1,d0
   DOS     _EXIT
◎ [XM6改] うげ、もっとそれ以前に UAE コアからの メモリアクセスルーチンの接続方法を間違えとる。 エリアセットのスーパーバイザ保護が効いてないや…。 ひゃっほい。

井崎のホームページへ戻る
isaki@NetBSD.org