ZX-Ревю 1997 №1-2 1997 г.

Читатель - читателю - восстановление утерянной информации.


АШуравин, г.Воткинск

ВОССТАНОВЛЕНИЕ УТЕРЯННОЙ ИНФОРМАЦИИ.

Хотя и не часто, но случается, что ценные данные, доставшиеся пользователям ЭВМ с большим трудом, утеряны. Обидно! Но все-же, так ли уж безвыходно положение? Рассмотрим несколько случаев повреждения информации.

1. Случайное стирание файла.

Это самое безобидное явление, если Вы, конечно, не сделали команду MOVE. Дело в том, что в отличие от системы MS-DOS, в TR-DOS файлы не фрагментиро-ваны, и поэтому стоят строго друг за другом. Так что, при удалении файла на диске останется незанятое место, которое заполнено содержимым стертого файла. Файл никуда не девался. Однако, по команде CAT или LIST Вы его не увидите.

Что же произошло? Сотрем файл, например, tl3++ <С>. Просмотрите в каком-нибудь диск-докторе содержание первых восьми секторов системного (нулевого) трека. Вы сможете увидать примерно такую картину:

54

57

52

42

54

20

TLW.RBT

42

АЕ

02

92

02

03

03

В

01

33

20

20

20

13++

43

86

ВВ

44

45

0F

03

С zDE

Как видим, первый символ файла tl3++ оказался замененный кодом 01 (если файл последний, то символ заменяется кодом 00 - конец каталога). То есть, чтобы восстановить его, нужно просто исправить этот код. И байт номер 244 восьмого логического сектора системного трека уменьшить на единицу (здесь хранится информация о количестве удаленных файлов ).

В случае, когда файл оказался Последним, сложнее. Тогда придется исправить байты 225, 226 - номер первого свободного сектора дорожки; 228 - количество файлов на диске, и 229, 230 - количество свободных секторов. Для этого необходимо знать структуру заголовка файла.

Структура заголовка файла

БАЙТЫ

НАЗНАЧЕНИЕ

0...7

ИМЯ ФАЙЛА ( 8 СИМВОЛОВ )

8

ТИП ФАЙЛА ( В, С, D, # )

9-10

АДРЕС НАЧАЛА ФАЙЛА

11 - 12

ДЛИНА ФАЙЛА

13

КОЛИЧЕСТВО СЕКТОРОВ

14 - 15

СЕКТОР / ТРЕК НАЧАЛА ФАЙЛА

Есть и более быстрый способ восстановить стертый файл - воспользоваться программой CONVER COMMANDER, которая позволяет видеть удаленные файлы в файловой панели. Для их восстановления просто переименуйте файл, подведя к нему курсор и нажав вместе CAPS SHIFT и SYMBOL SHIFT, выбрать пункт меню "переименовать" При включенном режиме "+del файлы" стертые файлы начинаются с красного знака вопроса.

2. Порча системной дорожки. В этом случае можно поступить двумя способами. Или найти где на диске размещены данные файлы и скопировать их, или попытаться восстановить системный трек. Последнее, к сожалению, не всегда возможно.

Несколько советов тем, кто пользуется первым способом.

1. Начните с текстовых файлов. Их найти гораздо легче.

2. Файлы формата GENS обычно начинаются с ORG.

3. Если Вы ищите BASIC - файлы, то обращайте внимание на номера строк, которые имеют такой вид:

• 1 байт - номер строки/256

• 2 байт - остаток от деления на 256.

4. Скопировать файл Вам поможет следующая программа:

LD DE,#NNNN; NNNN - НОМЕР ТРЕКА (СТАРШИЙ

РАЗРЯД), НОМЕР СЕКТОРА НАЧАЛА ФАЙЛА

LD HL,50000

LD ВС,#NN05; ГДЕ NN - КОЛИЧЕСТВО СЕКТОРОВ

ФАЙЛА

LD А,255 CALL 15635 RET

После ее запуска Вам следует войти в TR DOS и дать следующую команду: SAVE "FILENAME"CODE START, LENGHT, где FILENAME - имя вновь созданного файла, START - адрес начала файла (в данном случае 50000), LENGHT - длина файла.

Если Вам необходимо восстановить файл BASICa, данных или ВВОДА/ВЫВОДА, то поменяйте расширение при помощи диск-доктора. Если Вам не понятен смысл этих закорючек, то наберите в BASICe следующие строки: 10 DATA 17,N1,N2,33.80,195,1,5,N3,62,255,205,19,61,201 20 FOR 1=0 ТО 14: READ А: РОКЕ (50000 + I),A:NEXT I 30 RANDOMIZE USR 50000

и запустите программу командой RUN. Вместо N1 следует подставить номер сектора, N2 - номер трека, N3 - количество секторов в файле.

Восстановить саму системную дорожку зачастую бывает сложнее. Если имеет место порча ДЕВЯТОГО физического сектора, то при его восстановлении можно воспользоваться таблицей:

Структура 9-го физического сектора системного трека.

Номер байта

Назначение

225

номер первого свободного сектора

226

номер первой свободной дорожки

227

тип диска #16 - двусторонний, #18 - односторонний

228

количество файлов на диске

229,230

количество свободных секторов

231

количество секторов в дорожке, всегда 16

232,233

#00

234...242

#20

243

#00

244

количество стертых файлов

245...252

имя диска ( 8 символов )

Впрочем, системная дорожка занимает всего 2 килобайта, так что не будет расточительстом сохранить ее где-нибудь в свбод-ном месте, например, на 160 физическом треке. Это можно сделать, набрав в каком-нибудь ассемблере такую программу:

LD

HL,50000

LD

DE,0

LD

ВС,#905

LD

A,255

CALL

15635

LD

HL,50000

LD

DE,#9F07

LD

ВС,#906

XOR

A

CALL

15635

RET

Восстановить сохраненную системную дорожку можно при помощи такой программы: LD HL,50000

LD DE,#907

LD ВС,#906

XOR А

CALL 15635 LD HL,50000 LD DE,0 LD ВС,#905

LD A,255

CALL 15635 RET

На бейсике они будут выглядеть вот так:

10 DATA 33, 80, 195, 17, 0, 0, 1, 5, 9, 62, 255, 205, 19, 61, 33, 80, 195, 17

20 DATA 7,159,1,6,9,175,201 20 FOR 1=0 ТО 24: READ А: РОКЕ (50000+1),A: NEXT I

30 RANDOMIZE USR 15619: REM: SAVE "MIRROR" CODE 50000,100

10 DATA 33, 80, 195, 17, 7, 159, 1, 6, 9, 175, 205, 19, 61, 33, 80, 195, 17

20 DATA 0,0,1,5,9,62,255,201 20 FOR 1=0 TO 24: READ A: POKE (50000+1),A: NEXT I 30 RANDOMIZE USR 50000

Чтобы автоматически сохранять системную дорожку, создайте файл объектного кода MIRROR, и переименовав фойл boot в BOOT, создайте новый файл автозагрузки:

10 RANDOMIZE USR 15619: REM: LOAD "MIRROR" CODE 50000

20 RANDOMIZE USR 50000 30 RANDOMIZE USR 15619: REM: RUN "BOOT" набрав в TR DOS команду SAVE "boot" 3. Порча отдельного сектора.

Здесь Вас может выручить разве что специальная программа восстановления размагниченных секторов (принцип: считать, отформатировать, записать). Такую возможность имеют утилиты типа FUT, ADS, DCU.

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

Иногда такое копирование лучше делать несколько раз в день: никто не гарантирует, что в процессе работы не может произойти сбой, в результате которого испортится диск.

Бывают случаи, когда не читается сектор системного трека. Тогда, если Вы воспользовались рекомендациями п2, сохранив системную дорожку на 160 физическом треке, просто скопируйте весь диск посекторным копировщиком типа D-D FULL COPY, игнорируя копирование запорченного сектора, а затем восстановите системный трек.

И, самое главное, не ленитесь делать резервные копии!

Это сэкономит Ваши время и нервы.

ft************************************

_ jgfe^ftyw» ...............




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Ликбез - полное описание и полный дизассемблер ПЗУ (часть 7).
Открытые письма Nemo №3.2
Советы играющему - King'S Bounty.
HOT GAMES - О планах хаккеров на первую половину 1997 года.
FT'98: Music Compo - Рассмотрение music-работ с Fun Top'а.

В этот день...   25 апреля