プログラムのコーディングは次に与えられてしまった:
/* 第2ハードディスク(0x81)に最初ハードディスク(0x80)のイメージを作るプログラム */
#include<stdio.h>
#include<dos.h>
#include<conio.h>
/* INT 13H延長、機能数0x48を使用してgetdrivegeometry機能が使用される構造。 */
struct geometry
{
unsigned int size ; /* (緩衝の呼出し)サイズ */
unsigned int flags ; /*情報標識 */
unsigned long cyl ; /* ドライブの物理的なシリンダーの数 */
unsigned long heads ;/* ドライブの物理的な頭部の数 */
unsigned long spt ; /* トラックごとの物理的なセクターの数 */
unsigned long sectors[2] ; /* ドライブのセクターの総数 */
unsigned int bps ; /* セクターごとのバイト */
} ;
/* ディスク住所包みのフォーマットの構造、機能、readabsolutesectorsおよびwriteabsolutesectorsによって使用されるため */
struct diskaddrpacket
{
char packetsize ; /* 包み、概要に10Hのサイズ */
char reserved ; /* 予約(0) */
int blockcount ; /* 移るべきブロックの数 */
char far *bufferaddress ; /* 緩衝を移す住所 */
unsigned long blocknumber[2] ; /* 絶対ブロック番号の開始 */
} ;
|