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);

}

 

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


 

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

5039. Проектирование металлорежущих инструментов. Проектирование круглого радиального фасонного резца 618.5 KB
  Проектирование круглого радиального фасонного резца Назначение фасонных резцов Фасонный резец - инструмент, предназначенный главным образом для использования в условиях серийного и массового производств, где все больший удельный вес приобрет...
5040. Измерение длины волны излучения лазера интерференционным методом 138 KB
  Измерение длины волны излучения лазера интерференционным методом Цель работы: ознакомиться с принципами работы лазеров измерить длину волны излучения лазера и сравнить спектры его индуцированного и спонтанного излучений. Приборы и принадлежности: г...
5041. Определение длин волн излучения источников дискретного и непрерывного спектров 187 KB
  Определение длин волн излучения источников дискретного и непрерывного спектров Цель работы: градуировка спектроскопа по известному спектру неона, определение длин волн в спектре паров ртути и границ видимого спектра лампы накаливания. Приборы и прин...
5042. Исследование статических характеристик полупроводниковых диодов 129.5 KB
  Исследование статических характеристик полупроводниковых диодов. Цель работы Изучить устройство полупроводникового диода, физические процессы, происходящие в нем, характеристики, параметры, а также типы и применение полупроводниковых диодов...
5043. Кинематический анализ и синтез плоских рычажных, рычажных, кулачковых и зубчатых механизмов 509.5 KB
  Структурный анализ механизма. Число степеней свободы механизма определяем по формуле П. Л. Чебышева. где n- число подвижных звеньев механизма, p5- число кинематических пар пятого класса, p4- число Кинематических пар четвертого класса. В ...
5044. Изучение структуры углеродистых сталей после различных видов термической обработки 94 KB
  Изучение структуры углеродистых сталей после различных видов термической обработки Цель работы - изучение влияния закалки и отпуска на структуру и свойства углеродистых сталей. Оборудование, оснастка, приборы: электрические камерные печи...
5045. Определение длины световой волны при помощи дифракционной решетки 111.5 KB
  Определение длины световой волны при помощи дифракционной решётки Цель работы: определение с помощью дифракционной решётки длины световых волн в различных частях видимого спектра. Приборы и принадлежности: дифракционная решётка плоская шкала со щел...
5046. Определение эффективного коэффициента ослабления космических лучей 119.5 KB
  Определение эффективного коэффициента ослабления космических лучей Цель работы: определение эффективного коэффициента ослабления космических лучей в свинце. Приборы и принадлежности: установка для измерения интенсивности космических лучей ФПК...
5047. Исследование комбинационных логических схем 185 KB
  Исследование комбинационных логических схем. ЧАСТЬ 1. Исследование базового логического элемента ТТЛ. Построить передаточную характеристику. Реализовать с помощью ЛЭ 2И-НЕ схемы И, ИЛИ, НЕ...