そういやすげー昔,中1の頃にX-BASICで政権伝説というクソゲーを作った事を思い出した.当時SQUAREの聖剣伝説が流行っていたというのは言うまでも無い.人は流行に弱いのです.確か宣伝とか賄賂とか計略とか未公開株(
リクルート事件より)とかいうふざけたコマンドを選んでパラメータを変化させて,何故か毎年ある総選挙で議席数を競う内容だった.議会本来の立法という機能をまるで無視してるところがウリです.
検索してみると流石に誰でも思いつくネタだったことが分かる.
某CPUに
IIMP(メモリ保護機能付きuITRON4.0仕様の1実装)を移植した(まだ完全なテストは終わってないけど).ITRONはカーネルは機種依存無いように完全にCで書いてあって,CPU依存部とターゲット依存部をasm/Cで記述してやれば移植完了.しかもuITRON4.0のCPU依存部は既にあってそれを参考に作っていけるので意外と楽,なハズだったんですが結構ハマりまくったなあ.
なんぜITRONの仕様自体全然知らないと言うか,興味なかったからね.けどディスパッチャとか割込みハンドラやサービスコールルーチンのハンドラを書いてるうちに愛着も沸いて来るもんです.とはいえまだ謎はあったりする.ユーザータスクのタスク例外をユーザーモードでスマートに実行する方法とか分からないし.やはり一度トランポリンルーチン(と言うらしい)を介してやるしかないのかな.
何はともあれIIMPクラスを移植するのも一苦労(環境構築含めて一ヶ月強かかった)するわけで,Linuxとかを移植する人って本当に凄いなあ,根性あるなあ,と関心しました.まる.
linuxshだと
kernel/arch/sh/kernel/あたりをポーティングすればいいのかな?まともなasmが
entry.Sくらいしか見当たらないんだが... 中身見てもハンドラの入り口(レジスタ退避とか)が書いてあるだけで,あとは全部Cに逃がしてるぽい.人間楽するのが一番ですからね.しっかし,レジスタの退避だけでも凄いオーバーヘッドだよな,これ.はっ,いかん.いつの間にかasmばっかり書いてたせいか貧乏性になっとる.