Привет, Два-ч. В общем, так сложились обстоятельства, что мне нужен код программы на Си или С++. Суть такова: Программа должна сохранить системную область жесткого диска (Master Boot Record, загрузочный сектор и таблтцу FAT) на дискету, а потом восстановить с нее. Подскажите хотя-бы, где найти можно. Гугл не находит.
>и таблтцу FAT) на дискетуДа ты совсем, блядь, пизданулся
>и таблтцу FAT) на дискету
Да ты совсем, блядь, пизданулся
>>1085Нет, все имеенно так; причем FAT12.
>>1086фат12 на жестком диске? Слушай, ты где живешь? А то могли бы вместе уебывать.
>>1087В БашкирииЯ уверен, должен быть где-нибудь код для считывания этих областей диска и сохранении в файл, потом записи обратно. И от ФС это не должно особо зависеть. FAT12 потому, что другие фаты на дискету уже не влезут.
>>1088Нет, ты не понял: таблица файлов жесткого диска на дискету просто не влезет.
>>1089Если FAT12, то влезет; если FAT16 или 32, то они уже больше 1,44МБ. Единственный приемлемый вариант. Про NTFS вообще молчу.
>>1089Лол, особенно если учесть что там ДВЕ таблицы. Сурпрайз?
>>1089
Лол, особенно если учесть что там ДВЕ таблицы. Сурпрайз?
Подскажите книги или сайты по теме. Очень надо.ОП
>>1092Ты вообще на Си умеешь кодить?
>>1093Не очень, в основном на LISP и хаскеле.
>>1093
Не очень, в основном на LISP и хаскеле.
>>Не очень, в основном на LISP и хаскеле.>>на LISP и хаскеле>>LISP и хаскелекодить умею, но как название языка пишется по английски не знаю
>>Не очень, в основном на LISP и хаскеле.>>на LISP и хаскеле>>LISP и хаскеле
кодить умею, но как название языка пишется по английски не знаю
>>1095Си.
>>1095
Си.
>>1093Си/С++ умею, но c железом никогда не работал. Знаю только, что через dos.h это все должно работать. Я думал, в инете подобных исходников должно быть дохуя, но нет ничего.ОП>>1094>>1095 — это кто такие?
Си/С++ умею, но c железом никогда не работал. Знаю только, что через dos.h это все должно работать. Я думал, в инете подобных исходников должно быть дохуя, но нет ничего.ОП
>>1094>>1095 — это кто такие?
>>1098Тут все зависит от твоих знаний. Могу сказать лишь следущее: все это делается фунциями Read\Write, в качестве имени файла указываешь "\\.\C:" или "\dev\sda0\" под винду и линух соответственно, под питухом я не знаю, куда у тебя там что примонтированно. А, тебе вроде под дос. Ну, значит придется исепользовать прерывгин 13h. Короче, читаешь первый сектро, оттуда берешь размер фат.А если ты нихуя не знаешь, проше найти кодера за деньги
>>1099Если все действительно через Read и Write работает, то, думаю, разберусь что к чему.
>>1099
Если все действительно через Read и Write работает, то, думаю, разберусь что к чему.
>>LISP и хаскелеОП, ты троллишь? Или мне уже мерещится.
>>LISP и хаскеле
ОП, ты троллишь? Или мне уже мерещится.
>>1103это не ОП писал
>Программа должна сохранить системную область жесткого диска (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). │↓│└────────────────────────────────────────────────────────────────────────────┴─┘
>Программа должна сохранить системную область жесткого диска (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). │↓│└────────────────────────────────────────────────────────────────────────────┴─┘
┌─────────────────────────┤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). │↓│└────────────────────────────────────────────────────────────────────────────┴─┘
алсо, работает всё это только на нищебродских IDE, т.к. DOS по-умолчанию не держит SATA. если тебе нужно сатовский хард спасти&сохранить, используй Linux на флешке и dd.
>>1105>>1106>>1107Благодарю, но мне бы код программы на Си.ОП
>>1105>>1106>>1107
Благодарю, но мне бы код программы на Си.ОП
>>1107Хуинукс твой не нужен. Всё отлично делается в винде и досе.
>>1107
Хуинукс твой не нужен. Всё отлично делается в винде и досе.
1111-get
>>1111fail
>>1108для доса? напиши обертки для функций прерывания, и далее по манулу для фат12.
>>1109да? Из-под доса? Сата? Шоуми, толстожопый хуисос! А венда зачем? Чтобы поставить на нее какую-нибудь левую хуиту и поиметь дистр весом в 600мб? Не проще ли использовать Damn Small, или свой собрать по-быстрому?
>>1136Ты очень туп, разговор окончен.
>>1140а ты - тролль, пошёл нахуй.даже капча cheatter говорит кто ты есть.
>>1140>>1147>тролли троллят троллей
>>1140>>1147
>тролли троллят троллей
>>1153елси быдляк неспособен чета понять то ему проще назвать ето тролингом и не портить свой идеальный без извили мозг
>>1180Я могу одно сказать: "идеальный без извили мозг" только у тебя.
>>1187 без единой извили!
- wakaba 3.0.8 + futaba + futallaby -