Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:
#include <dos.h>
#include <stdio.h>
#include <malloc.h>
#include <errno.h>
#include "sysp.h"
void main(void);
void main(void) {
union REGS reg;
struct SREGS segreg;
DPB_WR _far *dbp_wr;
char buf[1000];
char buf1[80];
int sectors, i;
// ‡ Є §лў Ґ¬ Ї ¬пвм ¤«п Ў«®Є Ї а ¬Ґва®ў гбва®©бвў ,
// Є®в®ал© Ўг¤Ґв ЁбЇ®«м§®ў ¤«п з⥨п/§ ЇЁбЁ
dbp_wr = malloc(sizeof(DPB_WR));
if(dbp_wr == NULL) {
printf("\nЊ «® ®ЇҐа вЁў®© Ї ¬пвЁ!");
exit(-1);
}
// ‡ ЇЁблў Ґ¬ Ёд®а¬ жЁо ў Ґбв ¤ авл© бҐЄв®а
printf("\n‚ўҐ¤ЁвҐ бва®Єг ¤«п § ЇЁбЁ ў Ґбв ¤ авл© бҐЄв®а,"
"\n¤«Ё бва®ЄЁ Ґ ¤®«¦ ЇаҐўли вм 80 Ў ©в®ў"
"\n->");
gets(buf1);
strcpy(buf,buf1);
// ‡ Ї®«пҐ¬ Ў«®Є Ї а ¬Ґва®ў ¤«п ўлЇ®«ҐЁп
// ®ЇҐа жЁЁ § ЇЁбЁ.
dbp_wr->spec = 0;
dbp_wr->head = 0;
dbp_wr->track = 81;
dbp_wr->sector = 0;
dbp_wr->sectcnt = 1;
dbp_wr->buffer = buf;
// ‚лЇ®«пҐ¬ ®ЇҐа жЁо § ЇЁбЁ
reg.x.ax = 0x440d;
reg.h.bl = 1;
reg.x.cx = 0x0841;
reg.x.dx = FP_OFF(dbp_wr);
segreg.ds = FP_SEG(dbp_wr);
intdosx(®, ®, &segreg);
// Џа®ўҐа塞 д« Ј ЇҐаҐ®б
if(reg.x.cflag != 0) {
printf("\nЋиЁЎЄ ЇаЁ § ЇЁбЁ: %d",reg.x.ax);
exit(-1);
}
// ‡ Ї®«пҐ¬ Ў«®Є Ї а ¬Ґва®ў ¤«п ўлЇ®«ҐЁп
// ®ЇҐа жЁЁ з⥨п.
dbp_wr->spec = 0;
dbp_wr->head = 0;
dbp_wr->track = 81;
dbp_wr->sector = 0;
dbp_wr->sectcnt = 1;
dbp_wr->buffer = buf;
// ‚лЇ®«пҐ¬ ®ЇҐа жЁо звҐЁп ¤®а®¦ЄЁ
reg.x.ax = 0x440d;
reg.h.bl = 1;
reg.x.cx = 0x0861;
reg.x.dx = FP_OFF(dbp_wr);
segreg.ds = FP_SEG(dbp_wr);
intdosx(®, ®, &segreg);
// Џа®ўҐа塞 д« Ј ЇҐаҐ®б
if(reg.x.cflag != 0) {
printf("\nЋиЁЎЄ ЇаЁ з⥨Ё: %d",reg.x.ax);
exit(-1);
}
printf("\nЏа®зЁв ® Ё§ Ґбв ¤ ав®Ј® ᥪв®а :\n%s\n", buf);
// Ћбў®Ў®¦¤ Ґ¬ ЎгдҐа
free(dbp_wr);
exit(0);
}