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

}

 

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


 

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

71814. НАЛОГ КАК КАТЕГОРИЯ НАЛОГОВОГО ПРАВА 92 KB
  Одной из актуальных проблем налогового права выступает необходимость скорейшего совершенствования и унификации понятийного аппарата в сфере правового регулирования налогообложения. Обращаясь в связи с этим к рассмотрению налогово-правовой категории налога необходимо...
71815. ЭВОЛЮЦИЯ НАЛОГОВО-ПРАВОВЫХ МЕТОДОВ РЕГУЛИРОВАНИЯ ЭКОНОМИКИ СУБЪЕКТА РОССИЙСКОЙ ФЕДЕРАЦИИ С НАЧАЛА 90-Х ГОДОВ XX ВЕКА 145 KB
  В начале 90-х годов произошло существенное изменение роли налогов в экономике России. наделение субъектов Федерации самостоятельными источниками доходов и самостоятельными направлениями их расходования.
71816. ОРГАНИЗАЦИОННО-ТАКТИЧЕСКИЕ ОСНОВЫ РАБОЧЕГО И ЗАКЛЮЧИТЕЛЬНОГО ЭТАПОВ НАЛОЖЕНИЯ АРЕСТА НА ИМУЩЕСТВО 103.5 KB
  Рабочий этап наложения ареста на имущество складывается из трех последовательно сменяющих друг друга стадий предварительной обзорной и детальной. Предварительная стадия включает в себя ряд последовательно выполняемых действий в число которых входят: прибытие на место производства...
71817. Банковская система и её роль в национальной экономике. Особенности её развития в РБ 483.22 KB
  Объект исследования банковская система в Республике Беларусь. Предмет исследования деятельность банков в рамках национальной банковской системы. Цель работы: изучить состояние а также выявить перспективы банковской системы в Республике Беларусь.
71818. Проектирование системы отопления в доме отдыха поездных бригад на узловой станции 361 KB
  Исходные данные для проектирования Теплотехническая часть Наружная стена (НС) Наружные и входные двери (НДВ) Бесчердачное перекрытие-потолок (ПТ) Перекрытие над неотапливаемым подвалом (ПЛ) Окна и балконные двери (ОК) Результаты теплотехнических расчетов Определение потерь теплоты помещениями...
71819. Тяговый электродвигатель НБ-514 70.46 KB
  Двигатель тяговый НБ-514 предназначен для индивидуального привода колесных пар электровозов переменного тока через двухстороннюю жесткую косозубую передачу. Подвеска тягового электродвигателя опорно-осевая.
71820. Разработка САУ процессом копчения продуктов 156.5 KB
  В данном курсовом проекте описывается анализ и синтез САУ процессом копчения продуктов с регулятором в контуре управления. Составляются математическое описание объекта управления исполнительных и измерительных устройств.
71821. Понятия информационной технологии, эволюция их роль в развитии экономики и обществе 93.8 KB
  Целью исследования является определение роли информационных технологий в формировании социальное пространства. Достижение цели работы обусловило постановку и решение следующих взаимосвязанных задач: охарактеризовать этапы развития компьютерных технологий...
71822. Разработка алгоритма преобразования латинского прямоугольника в латинский квадрат 206 KB
  Латинские квадраты существуют для любого n достаточно взять таблицу Кэли аддитивной группы кольца : lij= ij1 mod n Число латинских квадратов Точная формула для числа Ln латинских квадратов nго порядка неизвестна. Пример нормализованного латинского квадрата: Число Rn...