#include <dos.h>
#include <stdio.h>
#include <stdlib.h>
#include "sysp.h"

void main(void);

void main(void)
{
	 CVT far *cvt;
	 DDCB far *ddcb;

	 printf("\nБлоки управления дисковыми устройствами (DDCB)"
			  "\nCopyright (C)Frolov A., 1990\n"
			  "\n");

	 cvt=get_mcvt();

	 ddcb=get_fddcb(cvt);

	 for(;;) {

		if(ddcb == (DDCB far *)0) break;

		printf("Адрес DDCB:                          %Fp\n"
				 "Номер устройства:                    %d\n"
				 "Дополнительный номер:                %d\n"
				 "Размер сектора:                      %d\n"
				 "Размер кластера в секторах:          %d\n"
				 "База размера кластера:               %d\n"
				 "Зарезервировано секторов:            %d\n"
				 "Число копий FAT:                     %d\n"
				 "Макс. файлов в корневом каталоге :   %d\n"
				 "Первый кластер данных:               %d\n"
				 "Всего кластеров:                     %d\n"
				 "Размер FAT в секторах:               %d\n"
				 "Первый сектор корневого каталога:    %d\n"
				 "Поле reserv1:                        %01X\n"
				 "Адрес драйвера:                      %Fp\n"
				 "Байт описателя среды носителя:       %01X\n"
				 "Флаг доступа:                        %01X\n"
				 "Адрес следующего DDCB:               %Fp\n"
				 "Поле reserv2:                        %04X\n"
				 "Блок построен:                       %04X\n"
				 "----------------------------------------------------\n\n",
				 ddcb,
				 ddcb->drv_num,
				 ddcb->drv_numd,
				 ddcb->sec_size,
				 ddcb->clu_size,
				 ddcb->clu_base,
				 ddcb->boot_siz,
				 ddcb->fat_num,
				 ddcb->max_dir,
				 ddcb->data_sec,
				 ddcb->hi_clust,
				 ddcb->fat_size,
				 ddcb->root_sec,
				 ddcb->reserv1,
				 ddcb->drv_addr,
				 ddcb->media,
				 ddcb->acc_flag,
				 ddcb->next,
				 ddcb->reserv2,
				 ddcb->built);

		ddcb=get_nddcb(ddcb);

	 }

	 exit(0);
}
