Добавил:
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[2000];
int sectors, i;
printf("\nЏа®Ја ¬¬ гЁз⮦Ёв ᮤҐа¦Ё¬®Ґ"
"\n20-© ¤®а®¦ЄЁ ¤ЁбЄ Ђ:."
"\n†Ґ« ҐвҐ Їа®¤®«¦Ёвм? (Y,N)\n");
// Ћ¦Ё¤ Ґ¬ ®вўҐв ®ЇҐа в®а Ё «Ё§Ёа㥬 ҐЈ®
i = getch();
if((i != 'y') && (i != 'Y')) exit(-1);
// ‡ Є §лў Ґ¬ Ї ¬пвм ¤«п Ў«®Є Ї а ¬Ґва®ў гбва®©бвў ,
// Є®в®ал© Ўг¤Ґв ЁбЇ®«м§®ў ¤«п з⥨п/§ ЇЁбЁ
dbp_wr = malloc(sizeof(DPB_FORMAT));
if(dbp_wr == NULL) {
printf("\nЊ «® ®ЇҐа вЁў®© Ї ¬пвЁ!");
exit(-1);
}
// ‡ Ї®«пҐ¬ Ў«®Є Ї а ¬Ґва®ў ¤«п ўлЇ®«ҐЁп
// ®ЇҐа жЁЁ з⥨п.
// Њл Ўг¤Ґ¬ зЁв вм ЇҐаўлҐ ¤ў ᥪв®а
// г«Ґў®© ¤®а®¦ЄҐ, Ј®«®ўЄ 0.
dbp_wr->spec = 0;
dbp_wr->head = 0;
dbp_wr->track = 0;
dbp_wr->sector = 0;
dbp_wr->sectcnt = 2;
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);
}
// ‡ Ї®«пҐ¬ Ў«®Є Ї а ¬Ґва®ў ¤«п ўлЇ®«ҐЁп
// ®ЇҐа жЁЁ § ЇЁбЁ.
// ’®«мЄ® зв® Їа®зЁв лҐ ¤ў ᥪв®а г«Ґў®©
// ¤®а®¦ЄЁ Ўг¤гв § ЇЁб л 20-о ¤®а®¦Єг.
dbp_wr->spec = 0;
dbp_wr->head = 0;
dbp_wr->track = 20;
dbp_wr->sector = 0;
dbp_wr->sectcnt = 2;
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);
}
// Ћбў®Ў®¦¤ Ґ¬ ЎгдҐа
free(dbp_wr);
exit(0);
}