[a / aa / ad / au / b / bg / bo / c / d / dg / di / ew / f / fa / fd / fg / fi / fl / g / gg / h / ho / hr / ja / k / ls / m / ma / me / mo / mu / n / ne / o / p / pa / ph / pr / r / re / s / sp / t / td / tr / tv / u / vg / w / wh / wm / wp / y] - [Главная]

[Назад]
Ответ
(оставьте это поле пустым)
Имя (оставьте это поле пустым)
E-mail
Тема
Комментарий
Файл
Перейти к
Подтверждение обновить captcha
Пароль (чтобы удалить пост или файл)
  • Разрешённые типы файлов: GIF, JPG, PNG
  • Максимальный размер файла 1536 килобайт и 2048×2048.
  • Изображения размером более 200x200 точек будут уменьшены.

Файл: 1245403430100.jpg -(36кб, 430x485) Показана уменьшенная копия, оригинал по клику.
36 №1084  

Привет, Два-ч.
В общем, так сложились обстоятельства, что мне нужен код программы на Си или С++.
Суть такова:
Программа должна сохранить системную область жесткого диска (Master Boot Record, загрузочный сектор и таблтцу FAT) на дискету, а потом восстановить с нее.
Подскажите хотя-бы, где найти можно. Гугл не находит.

>> №1085  
>и таблтцу FAT) на дискету

Да ты совсем, блядь, пизданулся

>> №1086  

>>1085
Нет, все имеенно так; причем FAT12.

>> №1087  

>>1086
фат12 на жестком диске? Слушай, ты где живешь? А то могли бы вместе уебывать.

>> №1088  

>>1087
В Башкирии
Я уверен, должен быть где-нибудь код для считывания этих областей диска и сохранении в файл, потом записи обратно. И от ФС это не должно особо зависеть. FAT12 потому, что другие фаты на дискету уже не влезут.

>> №1089  

>>1088
Нет, ты не понял: таблица файлов жесткого диска на дискету просто не влезет.

>> №1090  

>>1089
Если FAT12, то влезет; если FAT16 или 32, то они уже больше 1,44МБ. Единственный приемлемый вариант. Про NTFS вообще молчу.

>> №1091  

>>1089

Лол, особенно если учесть что там ДВЕ таблицы. Сурпрайз?

>> №1092  

Подскажите книги или сайты по теме. Очень надо.
ОП

>> №1093  

>>1092
Ты вообще на Си умеешь кодить?

>> №1094  

>>1093

Не очень, в основном на LISP и хаскеле.

>> №1095  
>>Не очень, в основном на LISP и хаскеле.
>>на LISP и хаскеле
>>LISP и хаскеле

кодить умею, но как название языка пишется по английски не знаю

>> №1097  

>>1095

Си.

>> №1098  

>>1093

Си/С++ умею, но c железом никогда не работал. Знаю только, что через dos.h это все должно работать. Я думал, в инете подобных исходников должно быть дохуя, но нет ничего.
ОП

>>1094>>1095 — это кто такие?

>> №1099  

>>1098
Тут все зависит от твоих знаний. Могу сказать лишь следущее: все это делается фунциями Read\Write, в качестве имени файла указываешь "\\.\C:" или "\dev\sda0\" под винду и линух соответственно, под питухом я не знаю, куда у тебя там что примонтированно. А, тебе вроде под дос. Ну, значит придется исепользовать прерывгин 13h.
Короче, читаешь первый сектро, оттуда берешь размер фат.
А если ты нихуя не знаешь, проше найти кодера за деньги

>> №1102  

>>1099

Если все действительно через Read и Write работает, то, думаю, разберусь что к чему.

>> №1103  
>>LISP и хаскеле

ОП, ты троллишь? Или мне уже мерещится.

>> №1104  

>>1103
это не ОП писал

>> №1105  
>Программа должна сохранить системную область жесткого диска (Master Boot Record, загрузочный сектор и таблтцу FAT) на дискету, а потом восстановить с нее.

ололо, решил попробовать вишмастер?
Прерывание 13h,
AH=02h для чтения, AH=03h для записи. держи копипасту.

┌─────────────────────────┤INT 13H 02H: Read Sectors├────────────────────────┬─┐
│ [PC] [XT] [AT]│↑│
│ Expects: AH 02H ▐█▌
│ AL sector count (see notes) │░│
│ CH track (cylinder) number (0-n) ◄═╗ │░│
│ CL sector number (1-n) ◄═══════════╩══ (see notes) │░│
│ DL drive: 0-3=diskette; 80H-81H=hard disk │░│
│ DH head number │░│
│ ES:BX caller's buffer address │░│
│ 0:078 Diskette Parameter Table (for diskette operations) │░│
│ 0:104 Hard Disk Parameter Table (for hard disk operations) │░│
│ ──────────────────────────────────────────────────────────────────│░│
│ Returns: AH BIOS disk error code if CF is set to CY │░│
│ ES:BX caller's buffer will contain requested data (if no error) │░│
│ ──────────────────────────────────────────────────────────────────│░│
│ Info: This reads the specified sectors into memory at ES:BX. │░│
│ │░│
│ Notes: ■ CX is actually used as a 6-bit and 10-bit field to specify │░│
│ sector and cylinder (this is important on hard disks with more │░│
│ than 256 cylinders). CX is laid out as: │░│
│ │░│
│ ┌────── CH ─────┬───── CL ──────┐ │░│
│ 1 1 1 1 1 1 │░│
│ ╓5┬4┬3┬2┬1┬0┬9┬8╥7┬6┬5┬4┬3┬2┬1┬0╖ │░│
│ CX: ║c c c c c c c c C c S s s s s s║ │░│
│ ╙─┴─┴─┴─┴─┴─┴─┴─╨─┴─┴─┴─┴─┴─┴─┴─╜ │░│
│ ╚═╩═══► high bits of cylinder number │░│
│ │░│
│ Note that this imposes a "hard stop" low-level limit on the │░│
│ number of cylinders on a disk (1024). Some BIOSs may support │░│
│ larger values by simulating additional heads and translating │░│
│ each request. │░│
│ │░│
│ ■ On diskette reads, this function stops a multi-sector read at │░│
│ the last sector in a track. │░│
│ │░│
│ ■ On hard disks (with XT and AT BIOSes), a multi-sector read │░│
│ continues on the next higher head of the same cylinder and if │░│
│ necessary, advances to the next higher cylinder on the first │░│
│ head. │░│
│ │░│
│ ■ Parameters are the same as for INT 13H 03H (write sectors). │░│
│ │░│
│ ■ Use INT 13H 0aH (extended read to read data+ECC). │↓│
└────────────────────────────────────────────────────────────────────────────┴─┘
>> №1106  
┌─────────────────────────┤INT 13H 03H: Write Sectors├───────────────────────┬─┐
│ [PC] [XT] [AT]│↑│
│ Expects: AH 03H ▐█▌
│ AL sector count (see notes) │░│
│ CH track (cylinder) number (0-n) ◄═╗ │░│
│ CL sector number (1-n) ◄═══════════╩══ (see notes) │░│
│ DL drive: 0-3=diskette; 80H-81H=hard disk │░│
│ DH head number │░│
│ ES:BX caller's buffer, containing data to write │░│
│ 0:078 Diskette Parameter Table (for diskette operations) │░│
│ 0:104 Hard Disk Parameter Table (for hard disk operations) │░│
│ ──────────────────────────────────────────────────────────────────│░│
│ Returns: AH BIOS disk error code if CF is set to CY │░│
│ ──────────────────────────────────────────────────────────────────│░│
│ Info: This writes the data at ES:BX to the specified sectors. │░│
│ │░│
│ Notes: ■ CX is actually used as a 6-bit and 10-bit field to specify │░│
│ sector and cylinder. The maximum cylinder number is 1023 │░│
│ but some BIOSes support larger values via translation. See │░│
│ INT 13H 02H for details. │░│
│ │░│
│ ■ On diskette writes, this function stops a multi-sector write at │░│
│ the last sector in a track. │░│
│ │░│
│ ■ On hard disks (with XT and AT BIOSes), a multi-sector write │░│
│ continues on the next higher head of the same cylinder and if │░│
│ necessary, advances to the next higher cylinder on the first │░│
│ head. │░│
│ │░│
│ ■ Parameters are the same as for INT 13H 02H (read sectors). │↓│
└────────────────────────────────────────────────────────────────────────────┴─┘
>> №1107  

алсо, работает всё это только на нищебродских IDE, т.к. DOS по-умолчанию не держит SATA. если тебе нужно сатовский хард спасти&сохранить, используй Linux на флешке и dd.

>> №1108  

>>1105>>1106>>1107

Благодарю, но мне бы код программы на Си.
ОП

>> №1109  

>>1107

Хуинукс твой не нужен. Всё отлично делается в винде и досе.

>> №1111  

1111-get

>> №1112  
Файл: 1245439888500.gif -(1кб, 32x22) Показана уменьшенная копия, оригинал по клику.
1

>>1111
fail

>> №1132  

>>1108
для доса? напиши обертки для функций прерывания, и далее по манулу для фат12.

>> №1136  

>>1109
да? Из-под доса? Сата? Шоуми, толстожопый хуисос! А венда зачем? Чтобы поставить на нее какую-нибудь левую хуиту и поиметь дистр весом в 600мб? Не проще ли использовать Damn Small, или свой собрать по-быстрому?

>> №1140  

>>1136
Ты очень туп, разговор окончен.

>> №1147  

>>1140
а ты - тролль, пошёл нахуй.
даже капча cheatter говорит кто ты есть.

>> №1153  

>>1140>>1147

>тролли троллят троллей
>> №1180  

>>1153
елси быдляк неспособен чета понять то ему проще назвать ето тролингом и не портить свой идеальный без извили мозг

>> №1187  

>>1180
Я могу одно сказать: "идеальный без извили мозг" только у тебя.

>> №1190  

>>1187
без единой извили!



Удалить пост []
Пароль
[a / aa / ad / au / b / bg / bo / c / d / dg / di / ew / f / fa / fd / fg / fi / fl / g / gg / h / ho / hr / ja / k / ls / m / ma / me / mo / mu / n / ne / o / p / pa / ph / pr / r / re / s / sp / t / td / tr / tv / u / vg / w / wh / wm / wp / y] - [Главная]