20948

Запис і читання інформації диска с зміною чергуванням секторів

Лабораторная работа

Информатика, кибернетика и программирование

h Номер форматируемой дорожки define TRK 20 Код размера сектора 1024 байт define SEC_SIZE 2 таблица параметров дискеты 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; union REGS inregs outregs; char _far diskbuf[1024]; void mainvoid; void mainvoid { struct diskinfo_t di; unsigned status; unsigned char...

Украинкский

2013-08-01

51.33 KB

6 чел.

Міністерство освіти, науки, молоді та спорту України

Національний технічний Університет “ХПІ”

“ХАРКІВСКИЙ ПОЛІТЕХНІЧНИЙ ІНСТИТУТ”

Кафедра “ Обчислювальна техніка та програмування ”

Лабораторна робота №3

по курсу “Захист інформації у комп’ютерних системах та мережах”

 

                                                                                                Виконав:

                                                                                                      ст. гр КІТ 39

 Родін С.І

                                                                                                 Перевірив:

Межерицький С.Г

Харків 2012

“Запис і читання інформації диска с зміною чергуванням секторів”

за курсом “Захист інформації у комп’ютерних системах та мережах”

Ціль роботи : придбання навичок роботи з нестандартними можливостями дисків на низькому рівні. Використання зміни чергування секторів на гнучкому диску.

Постановка задачі: необхідно розробити і налагодити програму що дозволяє виконати форматування інженерних секторів дискети зі зміненим чергуванням секторів, запис, читання і перевірку якості виконання мітки з цими секторами.

Індивідуальні завдання

Програма форматування доріжки дискети з нестандартним чергуванням секторів і запис інформації в заданий сектор, виконана на низькому рівні.

 Порядок проходження секторів

 

1,9,4,3,6,7,2,8

Номер доріжки

Сторона

Довжна сектора

81\43

1

1024

Номер сектора в який виконується запис СЕКТ

СЕКТ = 1

#include <stdio.h>

#include <conio.h>

#include <dos.h>

#include <stdlib.h>

#include <bios.h>

#include "sysp.h"

// Номер форматируемой дорожки

#define TRK 20

// Код размера сектора - 1024 байт

#define SEC_SIZE 2

/* таблица параметров дискеты */

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;

union REGS inregs, outregs;

char _far diskbuf[1024];

void main(void);

void main(void) {

struct diskinfo_t di;

unsigned status;

unsigned char old_sec_size, old_fill_char, old_eot;

int i, j;

DPT _far *dpt_ptr;

printf("\nПрограмма уничтожит содержимое"

"\n20-й дорожки диска А:."

"\nЖелаете продолжить? (Y,N)\n");

// Ожидаем ответ оператора и анализируем его

i = getch();

if((i != 'y') && (i != 'Y')) exit(-1);

// Получаем адрес таблицы параметров дискеты

dpt_ptr = get_dpt();

// Сохраняем старые значения из таблицы параметров

old_sec_size = dpt_ptr->sec_size;

old_fill_char = dpt_ptr->fill_char;

old_eot = dpt_ptr->eot;

// Устанавливаем в таблице параметров дискеты

// код размера сектора, символ заполнения при

// форматировании, количество секторов на дорожке

dpt_ptr->sec_size = SEC_SIZE;

dpt_ptr->fill_char = 0xf6;

dpt_ptr->eot = 15;

// Устанавливаем тип диска

inregs.h.ah = 0x17;

inregs.h.al = 3;

inregs.h.dl = 0;

int86(0x13, &inregs, &outregs);

// Устанавливаем среду для форматирования

inregs.h.ah = 0x18;

inregs.h.ch = TRK;

inregs.h.cl = dpt_ptr->eot;

inregs.h.dl = 0;

int86(0x13, &inregs, &outregs);

// Подготавливаем параметры для функции форматирования

di.drive = 0;

di.head = 0;

di.track = TRK;

di.sector = 1;

di.nsectors = 15;

di.buffer = diskbuf;

// Подготавливаем буфер формата для 15-ти секторов

// Используем обратный порядок расположения секторов

// на дорожке

for(i=0, j=15; j>0; i += 4, j--) {

diskbuf[i] = TRK;

diskbuf[i+1] = 0;

diskbuf[i+2] = j;

diskbuf[i+3] = SEC_SIZE;

}

// Вызываем функцию форматирования дорожки

status = _bios_disk(_DISK_FORMAT, &di) >> 8;

printf("\nФорматирование завершилось с кодом: %d",status);

// Восстанавливаем старые значения в

// таблице параметров дискеты

dpt_ptr->sec_size = old_sec_size;

dpt_ptr->fill_char = old_fill_char;

dpt_ptr->eot = old_eot;

exit(0);

}

 

Висновки: придбав навички роботи з нестандартними можливостями дисків на низькому рівні. Використав зміни чергування секторів на гнучкому диску.


 

А также другие работы, которые могут Вас заинтересовать

13088. Классный час «Час знакомства» 24.47 KB
  Тема: Час знакомства Цель: познакомиться с учениками школы №90 3 Б класса узнать интересы детей взаимоотношения в коллективе способствовать развитию отношений между детьми и практикантами. создать условия которые способствуют быстрому и благоприятному зна...
13089. Виховна година. Чорнобильська катастрофа, її причини та наслідки 64.5 KB
  Виховна година: Чорнобильська катастрофа її причини та наслідки Мета. Розширити знання дітей про Чорнобильську трагедію наголосити про потенційну небезпеку радіації для усього живого розповісти про ліквідаторів аварії на Чорнобильській АЕС показати що чужої б
13090. Правила школьной жизни. Классный час для первокласников 34 KB
  Классный час для первоклассников Правила школьной жизни Проходя сложный путь социализации ребенок подвергается частым воздействиям окружающей действительности которая выступает как стрессор длительного действия истощающий запас адаптационной энергии. Пробл...
13091. Классный час «Что такое толерантность» 39 KB
  Классный час Что такое толерантность /15 классы/ Классный час проводится волонтёрами-старшеклассниками. Цель: Знакомство и работа с понятием толерантная личность. Здравствуйте дети Меня зовут. Сегодня я пришла пришёл к вам чтобы рассказать вам о дружбе
13092. Классный час «Дружба» 50 KB
  Классный час по теме Дружба 1 класс . ТЕМА: Трудно одному на свете жить. ОБОРУДОВАНИЕ И МАТЕРИАЛЫ: сердечки из бумаги с правилами дружбы доверяй прощай уважай будь внимателен будь верным береги и одно пустое 7 шт.; белые звёздочки; цветные фл
13093. Классный час «Интернет: да или нет» 91 KB
  Классный час Интернет: да или нет Цели: Формирование информационной культуры школьников представления о плюсах и минусах Интернета на основе игрового диспута. Развитие познавательного интереса творческой активности учащихся. Воспитание уважени...
13094. Классный час «А ну-ка, мальчики!» 70.5 KB
  Классный час к 23 Февраля А нука мальчики Цель: Создать атмосферу праздника в игресоревновании. Задачи: Познакомить детей с родами войск. Развитие памяти внимания организованности самостоятельности умений согласовывать интересы в процессе преодолен...
13095. Классный час «Сталинградская битва в военных фотографиях» 54.5 KB
  Классный час на тему Сталинградская битва в военных фотографиях Цели: Познакомить обучающихся с основными этапами Сталинградской битвы. Подвести обучающихся к пониманию значения героической обороны Сталинграда. Оборудование: проектор экр...
13096. Сталинградская битва. Ты хочешь мира? Помни о войне!. Сталинградская битва 24.89 KB
  Литературно-исторический вечер Ты хочешь мира Помни о войне. Сталинградская битва Цели: углубить знания учащихся о ходе Сталинградской битвы; развивать чувство гордости и сопричастности к прошлому своего народа своей страны; воспитывать патриотические ч