H8(その19)

6thステップ、プログラム動いた。

 

f:id:Aluminium:20170515215237j:plain

 

ここまでが準備でこれからOS作成が始まる。

えー。

 

昨日の疑問

・256バイト空ける理由だけど、あまり意味はないのかもしれない。

 

・void (*f)(void)は、関数ポインタか。

エントリポイントのポインタをfに渡して、f()で実行みたいな感じかな。

 

 

 

H8(その18)

6thステップ読み終わりました。

 

メモリ上にロードしたプログラムを解析して、

再度RAMのメモリ上に展開している所が頭がごちゃごちゃになって苦戦した。

 

分からなかった部分は、

207ページのvoid(*f)(void);の文法。

213ページのRAMの先頭アドレスから256バイト空きを作っている理由。

 

ちょっと調べてみる。

それと、プログラムを打ち込んでみよう。

 

H8(その16)

4thステップ終了。

f:id:Aluminium:20170512230929j:plain

 

分からないと言っていた、エコーバックの所を消してみたら、

確かに端末エミュレータに文字が表示されなくなった。

エンターを押してないのに、文字が送られているってことなのか?

では、loadとかdumpとか文字を打った瞬間に実行されないのはなぜなのか?

わからない。

 

追記

loadとかdumpとかの文字を打った瞬間実行されないのは、

getcでdo while文でエンターが押されるまで、捕まえているからだ!

では、エンターを押してなくても文字が送られるのか?

ちょっと調べる。

 

追記2

エコーバックの件は、よくわからなかった。

まあ、そういうものなんだろう。

 

ということで、5thステップに進もう。

H8(その15)

4thステップのプログラムをポチポチ打ち込んでいる。

 

getsのreturn i-1って何なんだろうか?

それと、エコーバックのところが分からない。

端末側から文字を入れた瞬間に送信されているのだろうか?

頭を悩ませている。

プログラムを動かせば少しは理解できるだろうか?