Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Операционная система MS-DOS / 1-2 Том / 276 / DBSP1A / LIBSRC / GETBOOT
.C/**
*.Name getboot
*
*.Title ‘зЁв вм § Ја㧮зго § ЇЁбм
*
*.Descr ”гЄжЁп бзЁвлў Ґв § Ја㧮зго § ЇЁбм
* ¤«п гЄ § ®Ј® ЌЊ„.
*
*.Proto int getboot(BOOT _far *boot, int drive);
*
*.Params boot - гЄ § вҐ«м ЎгдҐа, ў Є®в®ал©
* Ўг¤Ґв бзЁв § Ја㧮з п
* § ЇЁбм
*
* drive - ®¬Ґа дЁ§ЁзҐбЄ®Ј® ЌЊ„
* (0 - ЇҐаўл© ЌЊ„, 1 - ўв®а®©,...)
*
*.Return 0 - Ґб«Ё § Ја㧮з п § ЇЁбм бзЁв
* гбЇҐи®;
* 1 - Їа®Ё§®и« ®иЁЎЄ
*
*.Sample bootshow.c
**/
#include <stdio.h>
#include <dos.h>
#include "sysp.h"
int getboot(BOOT *boot, int drive) {
union REGS reg;
struct SREGS segreg;
// ‡ Ї®«пҐ¬ ॣЁбва®ўлҐ бвагЄвгал ¤«п ўл§®ў
// ЇаҐалў Ёп DOS INT 25h
reg.x.ax = drive;
reg.x.bx = FP_OFF(boot);
segreg.ds = FP_SEG(boot);
reg.x.cx = 1;
reg.x.dx = 0;
int86x(0x25, ®, ®, &segreg);
// €§ў«ҐЄ Ґ¬ Ё§ б⥪ ®б⠢襥бп в ¬ Ї®б«Ґ
// ўл§®ў ЇаҐалў Ёп б«®ў®
_asm pop ax
return(reg.x.cflag);
}