Add day1 code

This commit is contained in:
Yourtion
2014-09-04 15:39:40 +08:00
parent 9b5e6f0ced
commit a9f36c6c7c
6 changed files with 56 additions and 0 deletions

1
01_day/!cons_9x.bat Normal file
View File

@@ -0,0 +1 @@
command

1
01_day/!cons_nt.bat Normal file
View File

@@ -0,0 +1 @@
cmd.exe

1
01_day/asm.bat Normal file
View File

@@ -0,0 +1 @@
..\z_tools\nask.exe helloos.nas helloos.img

50
01_day/helloos.nas Normal file
View File

@@ -0,0 +1,50 @@
; hello-os
; TAB=4
; Stand FAT12 format floppy code ?准FAT12格式???用代?
DB 0xeb, 0x4e, 0x90
DB "HELLOIPL" ; ブートセクタの名前を自由に書いてよい8バイト
DW 512 ; 1セクタの大きさ512にしなければいけない
DB 1 ; クラスタの大きさ1セクタにしなければいけない
DW 1 ; FATがどこから始まるか普通は1セクタ目からにする
DB 2 ; FATの個数2にしなければいけない
DW 224 ; ルートディレクトリ領域の大きさ普通は224エントリにする
DW 2880 ; このドライブの大きさ2880セクタにしなければいけない
DB 0xf0 ; メディアのタイプ0xf0にしなければいけない
DW 9 ; FAT領域の長さ9セクタにしなければいけない
DW 18 ; 1トラックにいくつのセクタがあるか18にしなければいけない
DW 2 ; ヘッドの数2にしなければいけない
DD 0 ; パーティションを使ってないのでここは必ず0
DD 2880 ; このドライブ大きさをもう一度書く
DB 0,0,0x29 ; よくわからないけどこの値にしておくといいらしい
DD 0xffffffff ; たぶんボリュームシリアル番号
DB "HELLO-OS " ; ディスクの名前11バイト
DB "FAT12 " ; フォーマットの名前8バイト
RESB 18 ; とりあえず18バイトあけておく
; プログラム本体
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd
; メッセージ部分
DB 0x0a, 0x0a ; 改行を2つ
DB "hello, world"
DB 0x0a ; 改行
DB 0
RESB 0x1fe-$ ; 0x001feまでを0x00で埋める命令
DB 0x55, 0xaa
; 以下はブートセクタ以外の部分の記述
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432

1
01_day/install.bat Normal file
View File

@@ -0,0 +1 @@
..\z_tools\imgtol.com w a: helloos.img

2
01_day/run.bat Normal file
View File

@@ -0,0 +1,2 @@
copy helloos.img ..\z_tools\qemu\fdimage0.bin
..\z_tools\make.exe -C ../z_tools/qemu