久々に新宿に降りたったので例によってディスクユニオンで物色。HEXENの
"State of Insurgency"、これは80'sスラッシュ好きにはたまらない。てらいな
くかっこよさげなところを押しこんでくる。新人系じゃ一番だ。2,3年前からス
ラッシュが新参、古参問わず本当に豊作だ。10年くらい前はジャンル絶滅の危
機かとも思われたけれど、20年して時代が一周したのか、また俺らの時代がやっ
てきた。確信した。「しかたないから北欧でも...」なんて必要がない。
全部のソースを読み直していたとこ、スレッドにバグを発見。割り込み禁止で スイッチしても、戻ってきた時にはその場で割り込みが開いてしまっていた。 サブルーチンコールからスイッチする時にはjsrでプッシュされたスタックの MSBに明示的にその時のCCRを埋めこんでおかないと、rteで戻してくれない。同 じようなので、rteする前にCCRをいじっても元に戻されてしまう。これはユー ザビットを使う時にうっかりはまる。
CCRのユーザビットはassert()でセットしてNMIのハンドラでクリアされるまで ループという仕様にしてみた。ちょっとしたブレークポイントや、assertで 止まったけどそのまま動かしてみたいという時用。
あと、ロムモニタで使っている割り込みベクタを上書きするかどうかは'v'コマンドを入れて、スイッチできるようにしておいた。これでプロセスモードのプログラムもスタンドアローンタイプのプログラムもロード可能。
H8のRTOSモニタ は、完成ということにしました。
さて、机作りを三ヶ月ぶりに再開。今日は図面をおこしました。本当はここま でやって、荒木取りまでして放置しておけば、いい感じにシーズニングが済ん でいたとこだったのだけど...。ここで荒木取りしてまた2,3週間放置しないと いけない(反りねじれを定常状態にまでもっていくため)。

この程度の図面でも丸一日作業です。(qcad2)
全部のソースを読み直していたとこ、スレッドにバグを発見。割り込み禁止で スイッチしても、戻ってきた時にはその場で割り込みが開いてしまっていた。 サブルーチンコールからスイッチする時にはjsrでプッシュされたスタックの MSBに明示的にその時のCCRを埋めこんでおかないと、rteで戻してくれない。同 じようなので、rteする前にCCRをいじっても元に戻されてしまう。これはユー ザビットを使う時にうっかりはまる。
CCRのユーザビットはassert()でセットしてNMIのハンドラでクリアされるまで ループという仕様にしてみた。ちょっとしたブレークポイントや、assertで 止まったけどそのまま動かしてみたいという時用。
あと、ロムモニタで使っている割り込みベクタを上書きするかどうかは'v'コマンドを入れて、スイッチできるようにしておいた。これでプロセスモードのプログラムもスタンドアローンタイプのプログラムもロード可能。
H8のRTOSモニタ は、完成ということにしました。
stack_start: 0xbfffc
ROM data: 0x53c0-0x59bc
RAM data: 0xbf000-0xbf5fc 1532byte
bss: 0xbf5fc-0xbfdba 1982byte
NMI return address|CCR: 8000052e
delay_div=40
calibrated. delay_div=40
MCU mode: 1
delay_div=40
calibrated. delay_div=40
H8/3052 ud01 Monitor Build Jan 31 2009 12:04:51
vector override off
>> l
~>Local file name? ud01.mot
232 lines transferred in 0 seconds
!
Read 5105 byte. success
skip NMI
skip TRAPA#0
skip IMIA0
skip IMIA1
skip ERI1
skip RXI1
Start address: 0x80002
stack_start: 0xfff0c
ROM data: 0x80618-0x80624
RAM data: 0xfe100-0xfe10c 12byte
bss: 0xfe10c-0xfe7f4 1768byte
NMI return address|CCR: 8001a
MCU mode: 1
Process mode.
>>
>> help
[0] help
6: 480
5: 432
4: 448
3: 256
2: 248
1: 144
---Ready Queue---
<0>:
<1>:
<2>:
<3>: 1
---Thread Status---
id pri(used/total)
[6] W 1 (32/512) test
[5] W 0 (80/512) push_switch
[4] W 1 (64/512) process root
[3] W 1 (128/384) sci send
[2] W 0 (136/384) sci recv
[1] R 3 (240/384) root
---Monitor---
W ringbuffer
lock :
event: 3(sci send)
avaliable command: ledtest help reset kill v g l
>>
さて、机作りを三ヶ月ぶりに再開。今日は図面をおこしました。本当はここま でやって、荒木取りまでして放置しておけば、いい感じにシーズニングが済ん でいたとこだったのだけど...。ここで荒木取りしてまた2,3週間放置しないと いけない(反りねじれを定常状態にまでもっていくため)。

この程度の図面でも丸一日作業です。(qcad2)


















































最近のコメント