著作一覧 |
確かOSのほうで、Intuiton(AmigaのWindowシステム)ではなかったと思うが、最初にa4レジスタ(68000マシンだから)にベースアドレスを設定するcallを行った後は、すべてa4に対するオフセットとしてシステムコールを呼ぶというような仕組みだったと思った。(確かa4〜a6はシステムコール内で保存するということと、a5とa6はメタコムコのBCPL(AmigaOSの記述言語はなぜかBCPL)がスタックポインタ(a7だったかな?)とフレームポインタに使うってのが理由でa4だったような気がするが書いているうちにa7をスタックポインタとして利用していたような気がしてきたから、もしかしたら1個ずれてるかも)
というのを、JNIをいじってて思い出したといっても、今だけど。
だからAmigaOS(Intuitionのほうかも)は、最初からマルチタスクシステムとしてできていたような気がする。
つまり、コンテキスト(この場合はプロセス)を同時に複数共存させるには、それぞれを異なる位置に配置しなければならないし、そのためにはそのコンテキストのポインタとオフセットという形でアクセスできるように用意しておくということだ。
#何を最初に考えていたか思い出しているうちに忘れてしまった。
ジェズイットを見習え |
68000がスタック用に使うのはa7です。byte単位のpre decrement/post incrementでもword単位で行われるという。<br>たしか、MacOSだとアプリ用はa5 worldで、DA用のa4だったようなおぼろげな記憶。
そう思い出した。move.lとか長さが決められるオペランドで(a7)+みたいに書くような(全然、思い出してないや)。<br>ところでDAってなんでしょう?
Desk Accessoryだったかな? アプリと同時に使えるツール類。
あ、なるほど。palmにDAってのがあるけどあれと同じなんだ。