1 #include "../../../common/typedef.h"
2 #include "../head/realmode.h"
7 /*******************************************************************************
9 *******************************************************************************/
12 "movw $0x0400, %ax \n\t"
14 "movl $0x0, %eax \n\t"
15 "movl %eax, %esp \n\t"
16 "movl %eax, %ebp \n\t"
19 /*******************************************************************************
21 *******************************************************************************/
31 // 関数の途中で抜けるのでスタックを戻しておく
35 /*--------------------------------------------------------------------------------
37 --------------------------------------------------------------------------------*/
38 __asm__("jmp 0x5000");
42 /*******************************************************************************
44 *******************************************************************************/
45 //vo io_debug16() // 画面に何か1つ表示します
50 // "movb $0x0e, %ah \n\t"
51 // "movb $1, %al \n\t"
57 // フロッピーディスクからBIOSの力を借りてデータを読み込みます
58 // biosがつかえなくなったらドライバの力を...
62 "movw $0x500, %di \n\t"
64 "movw $0x00, %bx \n\t"
66 "movb $0x00, %ch \n\t"
67 "movb $0x00, %dh \n\t"
68 "movb $0x02, %cl \n\t"
70 "movw $0x00, %si \n\t" // 失敗カウンタ初期化
74 "movb $0x02, %ah \n\t"
75 "movb $0x08, %al \n\t" // 連続したセクタr
76 "movb $0x00, %dl \n\t"
77 "int $0x13 \n\t" // セクタ読み込み[bios]
79 "jnc io_load_success \n\t"
81 "add $0x01, %si \n\t" // 失敗回数をカウントアップ
82 "cmp $0x05, %si \n\t" // 5回失敗したらエラー終了
83 "jae io_load_error \n\t"
85 "movb $0x00, %ah \n\t"
86 "movb $0x00, %dl \n\t"
88 "jmp io_load_retry \n\t" // 初期化してリトライ
91 __asm__("io_load_error:");
96 __asm__("io_load_success:");