OSを作って見よう day012

2013-12-11

OSを作って見よう day012

「OS自作入門」の3日目の続き。 エラー処理が上手く行かなかった箇所を乗り越えた後は、スイスイと進む。 リトライ付きのアセンブラも難なくクリア 18セクタ読む箇所もOK、10シリンダ分読みこむのもOK。 うーむ順調杉。USBメモリにはFDDと違って表裏無いんだけど、平気なんだろうか。 とりあえず、10シリンダ読み込めたということは、10シリンダ x 2(ヘッドの裏表) x 18セクタ x 512バイト = 180KBは読み込めたらしい。 だけどUSBメモリなんだがな・・・。まあいいや。 ここでついにIPLは卒業し、OS本体の作成開始 (ToT) ちょっと難しそうなので、続きは明日へ・・・。   参考までに、10シリンダ読み込みのソースのdiffは以下のとおり。 USBメモリで動作するソースdiff

1
2
3
4
5
6
7
8
9
10
11
12
13
$  diff ipl.nas ipl.nas_orig | nkf -w
52c52
< MOV DL,0x80 ; USBメモリ
---
> MOV DL,0x00 ; Aドライブ
59c59
< MOV DL,0x80 ; USBメモリ
---
> MOV DL,0x00 ; Aドライブ
101c101
< RESB 300 ; ビット埋め
---
> RESB 0x7dfe-$ ; 0x7dfeまでを0x00で埋める命令