sh-ipl+g
ネタも無いので sh-ipl+g BIOS call の仕方。r0 に機能番号、r4-r7 に引数を設定して trapa 0x3f で起動する。処理結果は r0 に設定される。破壊されるレジスタは r0 のみ。まあ、trap なんであたりまえって言えばあたりまえだけど。
またソースを見るのも嫌なので、よく使うと思われる機能とその引数、戻り値を書き出しておいてみる。
- 機能番号 0: バッファをシリアルへ出力
- r4: 出力バッファアドレス
- r5: 出力サイズ
- 戻り値
- 常に 0
- 機能番号 1: シリアルから一文字入力
- 機能番号 2: 二次記憶からのセクター読みだし
- 機能番号 6: キャッシュ制御。キャッシュ有効時にこの機能を呼び出すとキャッシュのライトバックを行うので、キャッシュのライトバックにも使用可能。
- r4: キャッシュ制御。1 = キャッシュ無効、それ以外の場合、キャッシュ有効。
- 戻り値
- 常に 0
- 機能番号 31: シリアルへ 1 文字出力
- r4: 出力文字(下位 8 ビットのみ有効)
- 戻り値
- 常に 0
- 機能番号 32: 文字列(NUL 終端)をシリアルに出力
- r4: 出力文字列アドレス
- 戻り値
- 常に 0
sh-ipl+g にはこれについてのドキュメント無いんですよね…。