Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Aliens Vs Predator |#6| We walk through the tunnels
Aliens Vs Predator |#5| Unexpected meeting
Aliens Vs Predator |#4| Boss fight with the Queen
Aliens Vs Predator |#3| Escaping from the captivity of the xenomorph

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Различные авторы Весь текст 2311.07 Kb

Программирование и кодирование

Предыдущая страница Следующая страница
1 ... 164 165 166 167 168 169 170  171 172 173 174 175 176 177 ... 198

                                      - 12-5 -
         его содержимое.  Позже вы можете объединить этот  файл  с  другими
         частями  восстанавливаемого файла при использовании вашего тексто-
         вого процессора.
              Но что мы должны делать, когда не весь потерянный текст можно
         найти в памяти ОЗУ?  Текстовый редактор  WordStar,  подобно  боль-
         шинству других программ обработки текстов,  постоянно перемешивает
         текст, то занося его в память, то выводя его из памяти по мере ва-
         шей  работы с редактируемым текстом.  Если вы редактируете уже су-
         ществующий файл,  скажем, файл с именем TEST.TXT, текстовый редак-
         тор WordStar создает некий файл с именем TEST.$$$, которое исполь-
         зуется для хранения нового отредактированного текста.  После того,
         как вы закончили редактирование и сохранили результаты своей рабо-
         ты на диске,  программа переименовывает файл TEST.TXT  в  TEST.BAK
         (производя запись поверх старого файла TEST.BAK,  если таковой су-
         ществовал),  а файл TEST.$$$ никогда не будет виден в  каталоге  в
         момент возврата в операционную систему MS-DOS. Если, однако, прог-
         рамма завершится  аварийно, вы обнаружите файл с именем TEST.$$$ в
         каталоге.  Если нельзя будет найти весь текст в памяти,  используя
         программу DEBUG,  проверьте содержимое файла с расширением $$$  на
         наличие  в нем остального текста.  Если нельзя сразу же определить
         состояние вашего файла из  непосредственного  просмотра  каталога,
         возможно,  вам придется обратиться к дисковой утилите (такой,  как
         "Norton-утилита" или "Ultra_утилита",  описанные в предыдущей гла-
         ве),  которая может отображать скрытую на диске информацию прежде,
         чем  делать  это.  Однако, проверьте  состояние  диска  программой
         CHKDSK.  Это позволяет вам узнать, есть ли на диске какие-либо пе-
         ремешанные кластеры.  Если такие кластеры появились на диске после
         неудачно  проведенного  сеанса  редактирования,  часть потерянного
         текста может оказаться в  этих  потерянных  кластерах.  Вы  можете
         восстановить их, задав параметр /F в команде CHKDSK, но делать это
         нужно только после того,  как проверили содержимое  памяти  ОЗУ  и
         сохранили перепутанный текст на диске.
              Как было замечено выше, способы, которыми различные программы
         текстовой обработки и текстового редактирования используют память,
         сильно отличаются друг от друга.  Все они работают с  разными  ад-
         ресами в памяти.  Одни занимают больше места в памяти, чем другие.
         Некоторые программы требуют множества областей памяти для работы с
         текстом, которые иногда называют "буферами", что еще больше услож-
         няет работу.  Если,  однако, вы никогда раньше не пытались восста-
         навливать смешанные данные из памяти,  представленные выше примеры
         предоставят вам полезные для этого инструменты и средства.


                 Восстановление программ на языке Бейсик из памяти

              Проводили ли  вы когда-нибудь широкие и объемные работы с ка-
         кой-нибудь программой,  используя интерпретатор  с  языка  Бейсик,
         чтобы потом обнаружить,  что после тестирования программы встроен-
         ная команда "Return to MS-DOS"  (Возврат  в  операционную  систему
         MS-DOS) завершила работу интерпретатора до того,как вы успели сох-
         ранить программу на диске? Если программа короткая (в 20 строк или
         меньше),  это небольшое огорчение,  но вот если программа длинная,
         непредвиденное завершение работы интерпретатора - беда.
              Как только  мы  сможем  заняться  восстановлением потерянного
         текста из памяти, мы должны будем сразу же заняться и восстановле-
         нием "потерянных" программ на языке Бейсик,  потому что они должны
         целиком располагаться в памяти для удобства работы с ними  интерп-

                                      - 12-6 -
         ретатора.  А для тех интерпретаторов,  которые всегда имеют дело с
         нормальными текстовыми программа в коде ASCII, применяются описан-
         ные ранее технические средства по восстановлению текста из памяти.
         Но это не относится к интерпретаторам,  которые имеют дело с прог-
         раммами, работающими в "защищенном" режиме или с так называемыми,
         "лексемными" программами.  Лексемные программы с точки зрения ин-
         терпретатора  представляют  собой последовательность шестнадцати-
         ричных значений команд и абсолютных целых значений. Так как прог-
         рамма  в коде ASCII состоит из ряда двухцифровых ASCII - значений
         для каждого символа или числа, это значительно увеличивает размер
         файла.
              Интерпретаторы  с  языка  Бейсик  фирмы  "Майкрософт"  -
         - "Microsoft  BASIC"  и  фирмы  "ИБМ" - "IBM BASIC" являются самым
         распространенными примерами интерпретаторов,  работающих с лексем-
         ными программами. И хотя эти интерпретаторы могут читать программы
         в стандартном формате в коде ASCII,  по умолчанию они находятся  в
         состоянии работы с лексемными программами. Интерпретаторы преобра-
         зуют программу в коде ASCII, который затем загружается интерпрета-
         тором.  Проблема,  связанная  с попыткой восстановления потерянной
         лексемной программой на языке Бейсик в памяти,  заключается в том,
         что  в  действительности невозможно ее расшифровать при помощи ко-
         манды D (отобразить на экране) из программы, отладки DEBUG. Поэто-
         му следует пользоваться другим методом.
              В предложенном ниже примере показано,  как следует восстанав-
         ливать  программу,  используя  интерпретаторы с языка Бейсик фирмы
         "Майкрософт" и "ИБМ" в персональном компьютере IBM PC.  Для других
         интерпретаторов  языка  Бейсик  или  для других персональных машин
         требуются разновидности этой же процедуры,  но представленный ниже
         пример предлагает несколько советов по решению проблемы восстанов-
         ления программ в других персональных компьютерах.
              Сразу же после потери программы первым шагом  должна быть за-
         грузка программы DEBUG. Согласно техническому руководству  на  эту
         систему адрес сегмента на языке Бейсик (места, где начинается наша
         программа) может быть найден в позиции 0050:0010.  Используйте ко-
         манду D для вывода на экран дисплея первых двух значений этого ад-
         реса.  Эти значения меняются в зависимости от версии  операционной
         системы MS-DOS, версии интерпретатора языка Бейсик и размера памя-
         ти в вашей системе. Изучите предложенный ниже исходный текст прог-
         раммы и пояснения.

         A>debug
         -d 0050:0010 l2
         0050:0010 73 6B    - адрес сегмента на языке Бейсик
         -d 6b73:30 l2 - изучить сегмент (изменить на обратные байты)
         6B73:0030 EF 11    - это начальный адрес потерянной программы
         -f 6b73:11ee l1 ff - введите значение FF в начальный адрес  (поте-
                              рянной  программы  со смещением) - 1 (и снова
                              измените на обратные два  начальных  адресных
                              байта)
         -d 6b73:358 l2 - найти конечный  адрес  (потерянной  программы  со
                              смещением 0358)
         6B73:0358 88 12    - это конечный адрес
         -h 1288 11ee - вычислить количество байтов,  используемых програм-
                              мой (то же изменить  на  обратный  2-байтовый
                              конечный адрес)
         2476 009А - второе число представляет собой разность,  а  следова-
                              тельно - длину программы

                                      - 12-7 -
         -r cx               - загрузить длину программы в регистр СХ CX000
         -n  %test.bas       - задать характеристику файла, в которой
                              должна сохраняться программа
         -w 6b73:11ee -    записать байты, начиная с начала адреса программы
         Запись 009A байтов
         -q              - возврат в операционную систему MS-DOS
         A>

              После того,  как вы вернулись на подсказку MS-DOS,  проверьте
         восстановленный файл,  загрузив его в интерпретатор с языка Бейсик
         и выведя его на экран.  Содержимое файла должно остаться без изме-
         нений.

                                    Заключение

              В данной главе были представлены некоторые средства,  которые
         можно использовать для восстановления данных, перемешанных в памя-
         ти.  Два описанных типа программ - интерпретаторы с языка Бейсик и
         текстовые процессоры/текстовые редакторы -  чаще  всего  использу-
         ются в таких работах,  когда данные теряются в памяти. Аналогичные
         проблемы с другими программами,  такими как, например, администра-
         торы баз данных или программы связи, могут часто решаться с приме-
         нением этих средств.  Если вы теряете важные данные в памяти из-за
         каких-то причин, отличных от сбоя питания или сброса  системы, за-
         траты вашего времени на предварительное изучение  средств  восста-
         новления данных окупятся с лихвой.



                              ЧАСТЬ IV. СОВМЕСТИМОСТЬ


                        Глава 13. РАЗЛИЧИЯ В ВЕPCИЯХ MS-DOS


              Общие рекомендации по совместимости
              Прерывания MS-DOS
              Вызов функций
              Коды ошибок
              Форматы дисков
              Управление файлами
              Операционная система MS-DOS
              Персональный компьютер фирмы "ИБМ"  IBM  PC  и  персональный
              компьютер фирмы "ИБМ" IBM PS/2
              Совместимость с другими операционными  системами
              Заключение



              Со времени  появления  первой  версии  операционной  системы
         MS-DOS в 1981 году разработка операционных систем  продолжалась в
         сторону  расширения ее возможностей по подключению новых аппарат-
         ных сред,  решения проблем исправления ошибок и общего  улучшения
         ее работы.
              Несмотря на то, что многие из этих улучшений привели к повы-
         шению производительности вычислительных средств, они одновременно
         оказались причиной нескольких осложнений,  поскольку не все новые
         функции  были совместимы со старыми версиями операционной системы
         MS-DOS.  Для того,  чтобы сохранить на будущее все  улучшения,  в
         этой  главе собрана информация,  призванная помочь вам определить
         совместимость разных версий операционной системы MS-DOS между со-
         бой.  Особенно полезна информация, содержащаяся в этой главе, для
         тех, кто занимается разработкой собственных программ на языке Ас-
         семблер.
              За исключением тех команд, которые по своей природе являются
         инструментами программистов (такие команды, как команда отладчика
         DEBUG и команда редактора связей LINK),  новые и расширенные  ко-
         манды операционной системы MS-DOS сравнительно редко используются
         программистами. Изменения, представляющие собой особенный интерес
         для программистов, включают в себя прерывания MS-DOS, вызов функ-
         ций,  коды ошибок,  форматы гибких и жестких дисков и  управление
         файлами. Понять все указанные изменения довольно легко, поскольку
         обращения к функциям присутствуют во всех  реализациях  любой  из
         версий операционной системы MS-DOS.
              Что касается некоторых других моментов (таких,  как управле-
Предыдущая страница Следующая страница
1 ... 164 165 166 167 168 169 170  171 172 173 174 175 176 177 ... 198
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 

Реклама