Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/22: Рейтинг темы: голосов - 22, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 30.08.2009
Сообщений: 24

Запись в сектора на floppy-диске, и чтение с этих секторов

19.10.2006, 21:52. Показов 4464. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте.
Меня интерисует Функция на Си чтоби записывать данные (строку, или часть отдельного файла) в отдельный сектор на флопи диске, и чтение с этого сектора.

Вобщем на флоп надо записать файл(например текстовый), в различные сектора, так чтоб система его не видела. но при помощи програмы его можно было прочитать.
Програма на обычном Си.

Подскажите пожалуйста Функции, для реализации задачи.
Зарание благодарен.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.10.2006, 21:52
Ответы с готовыми решениями:

Чтение секторов на диске
Подскажите, как в приложении Win32 прочитать на дискете сектор с заданным цилидром головкой и поверхностью. Не через CreateFile! ...

Переназначенные сектора, нестабильные сектора и неисправимые ошибки секторов
Решил я как то проверить с помощью Crystal Disk Info и на те сразу три ошибки. Насколько это опасно и можно ли их исправить?

Ошибки о Floppy диске
Когда я вырубаю комп постоянно вибивает ошибки что возможно открыиа дверца и т.п. хотя у меня нету флопи диска, можно как то вообще удалить...

5
 Аватар для palva
4278 / 2970 / 693
Регистрация: 08.06.2007
Сообщений: 9,930
Записей в блоге: 5
20.10.2006, 00:47
Не знаю, можно ли это сделать под Windows. Но на DOS когда-то делал. Вот начало моего модуля для Turbo C
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
#include <stdio.h>
#include <conio.h>
#include <io.h>
#include <fcntl.h>
#include <sysstat.h>
#ifndef __LARGE__
#error LARGE model needed
#endif
#define BUFSIZE 512*18
unsigned char buf[BUFSIZE];
unsigned char disk=0;
int hf;
#pragma inline
typedef unsigned char byte;
int ReadAbsDisk(int disk, int cyl, int head, int sec, int num, byte *buf) {
 int r=0;
 asm {
  MOV  DL,byte ptr disk
  MOV  DH,byte ptr head
  MOV  CL,byte ptr sec
  AND  CL,00111111b
  MOV  AX,cyl
  MOV  CH,AL
  AND  AX,0000001100000000b
  SHR  AX,1
  SHR  AX,1
  OR   CL,AL
  LES  BX,buf
  MOV  AL,byte ptr num
  MOV  AH,2;
  INT  19
  MOV  byte ptr r,AH
 }
 return r;
}
int WriteAbsDisk(int disk, int cyl, int head, int sec, int num, byte *buf) {
 int r=0;
 asm {
  MOV  DL,byte ptr disk
  MOV  DH,byte ptr head
  MOV  CL,byte ptr sec
  AND  CL,00111111b
  MOV  AX,cyl
  MOV  CH,AL
  AND  AX,0000001100000000b
  SHR  AX,1
  SHR  AX,1
  OR   CL,AL
  LES  BX,buf
  MOV  AL,byte ptr num
  MOV  AH,3;
  INT  19
  MOV  byte ptr r,AH
 }
 return r;
}
void ResetDisk(int disk) {
 asm {
  MOV  DL,byte ptr disk
  MOV  AH,0;
  INT  19
 }
}
Конец модуля не привожу, поскольку он не связан с темой. Может быть, это поможет.
0
0 / 0 / 0
Регистрация: 30.08.2009
Сообщений: 24
20.10.2006, 01:34  [ТС]
Спасибо большое.
Ассемблерные вставки это хорошо, но возможно ли реализовать задачу посредставом самого Си?
0
John Paramol
20.10.2006, 03:52
Привет
Что значит "самого Си"? В Си нельзя, можно средствами WinAPI.
Это самое 13h прерывание выполняется через функцию DeviceIoControl, с параметром VWIN32_DIOC_DOS_INT13(=4), но только в Windows 95/98.
Под NT используется метод блочного чтения.
почитать можно здесь http://www.insidepro.com/kk/020/020r.shtml http://www.insidepro.com/kk/020/020r.shtml
Damirjan
22.10.2006, 17:52
А как насчет функций AbsRead AbsWrite
John Paramol
23.10.2006, 19:00
Damirjan,
можно поинтересоваться, из какой они библиотеки?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
23.10.2006, 19:00
Помогаю со студенческими работами здесь

Нестабильные сектора и Неисправимые ошибки секторов
Всем привет, хотелось бы узнать, если ли причины для тревоги? Сколько такой диск может ещё прожить? ...

Неисправимые ошибки секторов, нестабильные сектора
Возможно ли восстановить этот HDD? и как можно это сделать ? главная причина долгая загрузка вех приложений и системы. теряются и...

Неполадки с HDD: нестабильные сектора и неисправимые ошибки секторов
Здравствуйте, прошу помощи в определении причин неисправности. Имеются 2 диска: 1- ST1000DL002 1000gb, работает 7-ой год как часы, 2 -...

Запись и чтение большого файла или области на диске
доброе время суток. если вопрос не по топику то подскажите где могут на него ответить. итак, представьте. что есть миллион...

Нестабильные сектора, неисправимые ошибки секторов и странное поведение харда
Необходим совет по SMART-значениям, которые я получил после проверки своего харда. Имеет смысл делать ремап или легче просто заменить...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru