MS-DOS для программиста


Программа DISKINFO


Для иллюстрации описанных выше приемов определения конфигурации дисковой системы компьютера приведем исходные тексты программы DISKINFO (листинг 1.1). Она определяет конфигурацию дисковой подсистемы и отображает основные характеристики используемых дисководов. Программа DISKINFO обращается к таблицам параметров НГМД и НМД.

В процессе своей работы программа вызывает функцию disk_cfg, которая заполняет поля структуры DISK_CONFIG сведениями о конфигурации дисковой системы:

Имя поля Описание
n_floppy Количество НГМД, установленных в системе
n_hard Количество НМД, установленных в системе
t_floppy1 Тип первого НГМД
t_floppy2 Тип второго НГМД
t_hard1 Тип первого НМД
t_hard2 Тип второго НМД

Листинг 1.1. Файл diskinfo\diskinfo.cpp

#include <stdio.h> #include <dos.h>

typedef struct _DISK_CONFIG_ { int n_floppy; int n_hard; int t_floppy1; int t_floppy2; int t_hard1; int t_hard2; } DISK_CONFIG;

typedef struct _DPT _ { unsigned char srt_hut; unsigned char dma_hlt; unsigned char motor_w; unsigned char sec_size; unsigned char eot; unsigned char gap_rw; unsigned char dtl; unsigned char gap_f; unsigned char fill_char; unsigned char hst; unsigned char mot_start; } DPT ;

typedef struct _HDPT _ { unsigned max_cyl; unsigned char max_head; unsigned srwcc; unsigned swpc; unsigned char max_ecc; unsigned char dstopt; unsigned char st_del; unsigned char fm_del; unsigned char chk_del; char reserve[4]; } HDPT ;

void disk_cfg(DISK_CONFIG* cfg); DPT far *get_dpt(void); HDPT far *get_hdp1(void); HDPT far *get_hdp2(void);

void main(void) { DISK_CONFIG cfg; DPT far *dpt_ptr; HDPT far *hdpt1_ptr; HDPT far *hdpt2_ptr;

printf("\n" "\nКонфигурация дисковой подсистемы" "\n (C)Фролов А., 1995\n");

// Определяем конфигурацию дисковой подсистемы disk_cfg(&cfg);

printf("\nУстановлено:" "\n НГМД: %d" "\n НМД: %d", cfg.n_floppy, cfg.n_hard);

printf("\nТип НГМД: A: - %d, B: - %d" "\nТип НМД: C: - %d, D: - %d", cfg.t_floppy1, cfg.t_floppy2, cfg.t_hard1, cfg.t_hard2);




- Начало -  - Назад -  - Вперед -