2017-01-01から1年間の記事一覧

30日でできるOS自作入門_DAY5

harib02a bootpack.cのここの処理が void HariMain(void) { char *vram; int xsize, ysize; init_palette(); vram = (char *) 0xa0000; xsize = 320; ysize = 200; 以下のように書き換わった。 void HariMain(void) { char *vram; int xsize, ysize; short *…

30日でできるOS自作入門_DAY4

harib01a 画面に出力を行うために、 naskfunc.nasに以下の関数が追加された メモリ番地を指定して書き込むのが目的とのこと _write_mem8: ; void write_mem8(int addr, int data); MOV ECX,[ESP+4] ; [ESP+4]にaddrが入っているのでそれをECXに読み込む MOV …

30日でできるOS自作入門_DAY3

harib00a ; ディスクを読む MOV AX,0x0820 MOV ES,AX MOV CH,0 ; シリンダ0 MOV DH,0 ; ヘッド0 MOV CL,2 ; セクタ2 MOV AH,0x02 ; AH=0x02 : ディスク読み込み MOV AL,1 ; 1セクタ MOV BX,0 MOV DL,0x00 ; ドライブ番号0x00 = Aドライブ INT 0x13 ; ディス…

30日でできるOS自作入門_DAY1 & DAY2

DAY1 バイナリファイル自体は2進数だが、それでは冗長になるので、 以下のように2進数⇒16進数に変換することで情報量を減らしている DB命令 : data byte命令、ファイルの内容を1byteだけ直接書く。文字列も書けるよ! PRESS命令 : reserve byte 、引数 x byt…

30日でできるOS自作入門_環境構築編

掲題の本に従ってチュートリアルを進めようとしたログになります。 2018年の正月で終わらなかったので、次はGWにチャレンジか。。 Ref: 各種データがダウンロード可能な公式ページ 先人の方のBlog 環境構築 Refのページを参考に進めていく Windows10です。 C…

/* https://sunrise033.com/entry/hatena-blog-how-to-hierarchicalize-categories */