'CONVER-Commander V 4.23 pro' часть вторая Описание работы программы в режиме дис- кового 'Доктора'. Этот режим работы 'Commander'а практи- чески не уступает по своим возможностям самостоятельным программам этого класса,а кое в чем даже превосходит их. Внешний вид передней панели ......................................... '██'-обозначает положение курсора в теле сектора. Aдрес начала строки внутри сектора в HEX /в Dec виде Значения байта в HEX,в символьном виде #00____0__62 6F 6F 74 20 20 20 20 boot представление байт #08___8__42 5F 67 03 53 06 00 01 B███████ в символьном виде: #10___16__01 6F 6D 61 6E 64 65 72 █omander 0- 31 #18__24__42 33 41 00 AA 5E 06 01 B████ красный квадрат #20__32__52 6F 62 6F 6B 6F 70 31 Robocop1 32-127 #28___40__42 12 35 6A 3E BA 0A 05 B██████ симв. на зел. фоне #30___48__00 00 00 00 00 00 00 00 ███████ 128-159 #38___56__00 00 00 00 00 00 00 00 ███████ красный квадрат #40___64__00 00 00 00 00 00 00 00 ███████ 160-255 #48___72__00 00 00 00 00 00 00 00 ███████ симв.на красн.фоне #50___80__00 00 00 00 00 00 00 00 ███████ #58___88__00 00 00 00 00 00 00 00 ███████ #60___96__00 00 00 00 00 00 00 00 ███████ #68__104__00 00 00 00 00 00 00 00 ███████ #70__112__00 00 00 00 00 00 00 00 ███████ #78__120__00 00 00 00 00 00 00 00 ███████ ──────────────────бт.в предст. BASICа Курсор 27 (254) RETURN С─регистр ввода симв. │ 0│ 1│ 2│ 3│ 4│ 5│ 6│ 7│ 8│ 9│...│ E│ F данные о чтении A Дорожка:0 сектор:0 └──────────┴─────────┴тек.-диск/дор./сект окно для служебн. информации ......................................... В полях редактирования синхронно переме- щаются ДВА курсора,один по НЕХ-полю, дру- гой по символьному. При этом один являет- ся ГЛАВНЫМ (мигающий, черного цвета), другой (серого цвета) как-бы его тень на другом поле. Редактирование информации возможно только под главным курсором.Пос- ле слова "Курсор" находится адрес курсора в секторе в десятичном (Dec) или шестнад- цатиричном (HEX) виде,в зависимости от того какой режим Вы выбрали клавишей [Graphics].Затем значение этого байта в десятичном виде, в скобках, и далее представление этого байта в формате BASI- Cа. При этом значения 0-31 интерпретиру- ются как 'упр.символ', а 128-164 как 'UDG символ'. Правее выводится состояние ре- гистра ввода символов - заглавные/строч- ные (С/L). Ниже находиться строка досто- верности считанной информации с номерами секторов (0-F), где цветом показано сос- тояние информации на диске в текущей до- рожке. В этой строке номер текущего сек- тора (в котором находиться курсор) выде- лен мерцанием.В следующей строке показаны текущие; -номер дисковода (A-D), дорож- ка/сектор.Сектор при выводе на экран де- лится на две страницы: 0-127 и 128-255 байты.Непосредственно выполняемые коман- ды: * клавиши курсора-перемещение курсора внутри дорожки (при этом курсор перемеща- ется только внутри ТЕКУЩЕЙ дорожки и для перемещения на следующую пользуйтесь ко- мандами "страница вперед" и "страница на- зад".); * [Inv.video]-страница вперед (+128 байт); * [True video]-страница назад (-128 байт); * [Delete]-восстановление первоначального значения байта СЛЕВА от курсора; * [Graphics]-переключение режима вывода цифр. информ.- Dec/HEX * [Caps lock]-переключение регистра ввода символов- ЗАГЛ./стр; * [SS]/[W]-установка/сброс 7-го бита в байте под курсором; * [SS]/[Q]-установка главного курсора в НЕХ поле; * [SS]/[E]-установка главного курсора в символьное поле; * [Enter]-информация о диске и положении в нем курсора;(нажатие в режиме просмотра информации на [Graphics] приводит к смене режима вывода информации на экран); В Н И М А Н И Е: изменения, которые Вы совершите в 8 секторе системной дорожки не будут показаны в 'информации' до тех пор, пока Вы не запишите их на диск! * [Edit]-смена диска / дисковода. Отмена команды клавишами [Break] или [Edit]; * [SS]/[A]-возврат в 'Commander'; Если главный курсор находится в 'HEX' части дампа, то байты редактируются в 'HEX' виде (действуют клавиши 0-9 и A-F), неправильный ввод первого нибла редакти- руемого байта (т.е., если Вы хотели наб- рать '8A' и случайно набрали первый сим- вол [9],то нажав [Delete] можно его отме- нить. При редактировании в символьном по- ле производится непосредственное редакти- рование символьными клавишами (символами с кодами 32-122). Ввод байт с кодами от 0 до 31 и от 123 до 255 возможен только в 'HEX' виде. Программа не даст Вам покинуть текущую дорожку, если Вы редактировали ее и не записали полученный результат на диск ко- мандами:'Записать сектор' или 'Записать дорожку'. При этом следует запрос: "Записать изменения Y/N ?" При отрицательном ответе все изменения теряются, при положительном, на диск за- писываются те СЕКТОРА, в которых были сделаны изменения. ========================================= * выход в режим дополнительных командкла- виша [Extend mode] ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ: ───────────────────────────────────────── [R]:'Считать дорожку'-перезагрузка теку- щей дорожки с диска.При чтении дорожки программа пользуется непосредственным доступом к диску, минуя процедуру 15635. Это дает возможность прочитать информацию с дорожки даже при ее частичном разруше- нии, но времени на эту процедуру уходит от 1.5 сек. и более, в зависимости от ка- чества информации на диске.Результаты от- ражаются в виде строки: │ 0│ 1│ 2│ 3│ 4│ 5│ 5│ 7│ 8│ 9│ A│...│ F цифры отражают порядковый номер сектора, цвет сектора показывает достоверность ин- формации при чтении: * черная цифра на синем фоне______дорожка не форматирована * красная цифра на черном фоне____сектор с таким номером не найден * черная цифра на фиолетовом фоне_сектор восстановлен после прямого чтения дорожки * черная цифра на белом фоне______длина сектора не равна 256 байт * черная цифра на красном фоне____сектор считан с ошибкой в CRC * черная цифра на желтом фоне_____сектор считан не с первого раза * черная цифра на голубом фоне____нестан- дартная метка IAM * черная цифра на зеленом фоне____сектор считан с первого раза (ОК) Совсем не обязательно стараться запом- нить все это. При нажатии на [Enter] Программа информирует Вас о данных диска, положении курсора на диске и,Вы увидите расшифровку данных о качестве прочтения сектора под курсором. ───────────────────────────────────────── [S]:'Записать дорожку'-записать текущую дорожку на диск. После стандартного зап- роса на подтверждение выполнения команды, если ДОКТОР считает, что обычная запись на дорожку не приведет к положительным результатам (т.е. при чтении дорожки часть секторов была прочитана с фатальны- ми ошибками, следует запрос: ┌─────────────────┐ │Переформатировать│ │ дорожку Y/N ? │ └─────────────────┘ при положительном ответе на который, до- рожка перед записью будет отформатирова- на. При этом для форматирования будет выбрано расположение секторов: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 если Вы не выберите форматирование, прог- рамма запишет только те сектора, которые были прочитаны без фатальных ошибок! ───────────────────────────────────────── [P]:'Записать сектор'-записать текущий сектор на диск ┌────────────────────────────────────────┐ │Если записывается 0 дорожка или сектора │ │0-8, этой-же дорожки и если на диске на │ │160 дорожке есть копия каталога и в 8-м │ │секторе 0 дорожки стоит метка 'COMMAN- │ │DER'а, копия каталога будет обновлена! │ └────────────────────────────────────────┘ ───────────────────────────────────────── [T]:'Смена дорожки/сектора'-ввод новых значений дорожки/сектора и перемещение туда курсора. По умолчанию остаются пре- дыдущие дорожка/сектор. Если Вы хотите использовать текущую дорожку или сектор, то вместо ввода числа нажмите [Edit].Ввод данных в 'HEX' или 'Dec' виде,в зависи- мости от Вашего желания.Дорожка с номером более 175 и номер сектора более 15 не принимаются! ───────────────────────────────────────── [О]:'Поиск файла'-на диске ищется файл с заданным именем и типом. Курсор устанав- ливается в первом секторе искомого файла. ───────────────────────────────────────── [G]:'Перейти на файл под курсором'-если курсор находится на 0 дорожке в секторах 0-7 и располагается над дескриптором ре- ально существующего файла (обычный файл или DEL-файл), то происходит перемещение в начало первого сектора этого файла.Пос- ледующие выполнения этой команды из ЛЮБО- ГО места диска будут снова перемещать курсор в начало этого файла. Если произ- вести перезагрузку диска или выйти из Доктора и вновь вернуться, команда 'G' будет обнулена и начнет игнорироваться при попытке выполнить ее находясь вне ре- ального каталога диска. ───────────────────────────────────────── [0]:(ноль)'Перейти на 0 дорожку 0 сектор' -здесь, я думаю, все и так понятно. ───────────────────────────────────────── [C]:'Калькулятор'-обыкновенный калькуля- тор для вычислений, с некоторыми необык- новенными возможностями. Может работать с числами с плавающей запятой. Выполняет 5 арифметических действий: + сложить - вычесть * умножить / делить ^ возвести в степень Вычисления производятся строго слева направо без соблюдения приоритета опера- ций. Данные могут быть заданы в: 234 236.56 5.89562Е+8 -56.55 -десятичном # (это 0) #A #55 #c002 -шестнадцатиричном %11101 %1000010001000001 -двоичном "a" "F" -символьном видах Естественно, что шестнадцатиричные и дво- ичные данные могут быть только в диапазо- не 0-65535. Запись: 25*-3 означает-умно- жить 25 на (-3). Есть, так называемый, 'подкалькулятор'. Если в начале строки поставить '?', то результат, если он укладывается в диапа- зон 0-65535, будет выдан в трех видах; десятичном, шестнадцатиричном и двоичном: ?25+#c0-86 = 131 #83 %10000011 или ?"F" = 70 #46 %01000110 если в результате вычислений подкалькуля- тора будет получен отрицательный резуль- тат в диапазоне 1-127, то его ШЕСТНАДЦА- ТИРИЧНОЕ значение будет выдано в дополни- тельном виде (как отрицательное смещение (-1 -127): ?32-64 = -32 #E0 %00100000 -а это двоичное 32 ! └──!!! шестнадцатиричное -32 Теперь самая специфическая команда: 56'10 означает: дорожка 56,сектор 10 (можно 56'#A) если Вы наберете это, то результат будет: = 906 56'10 #38'#0А ,где 906,это расстояние в секторах данного места на диске от его начала (дор.0 сект.0). Например, если начало файла до- рожка 10 сектор 1 и его длина 129 секто- ров, то Вы можете узнать, где начинается следующий файл: 10'1+129 = 290 18'2 #12'#02 или зная на- чало некого файла и начало следующего за ним файла можно вычислить его длину в секторах: 15'1-10'0 = 81 5'1 #05'#01 здесь длина файла 81 сектор,а дорож- ка/сектор не имеют практического значе- ния, хотя с другой стороны они показывают длину файла в дорожках/секторах. Для выхода из Калькулятора нужно нажать клавишу 'Break', при этом, если строка пуста, Вы сразу попадаете в основной ре- жим Доктора. Если-же в строке что-нибудь есть, Вас спросят, не хотите-ли Вы запом- нить результат вычислений в одной из де- вяти ячеек памяти М1-М9.При нажатии '1'-'9' число запоминается и Вы возвраща- етесь в Калькулятор, нажатие любой другой клавиши возвращает Вас в основной режим Доктора. Следует отметить, что у Кальку- лятора есть еще одна ячейка памяти М0. Она заполняется автоматически, после каж- дого вычисления. Использовать содержимое этих ячеек можмо следующим образом: 25+15+м0-59-м1 = результат зависит от пе- ременных М0 и М1. ВНИМАНИЕ ! В ячейке памяти можно запом- нить ТОЛЬКО число (простое или с плаваю- щей запятой). Невозможно запомнить в па- мяти значение "дорожка/сектор". ───────────────────────────────────────── [F]:'Поиск'-поиск на диске,в заданных пределах, последовательности байт. Вы мо- жете задавать данные для поиска в деся- тичном,шестнадцатиричном и символьном ви- дах. Знак '.' (точка) означает возмож- ность присутствия на этом месте любого байта. В символьном виде можно задать, как одиночный байт: "F" так и стринг: "Game is over" ┌────────────────────────────────────────┐ │Символьная информация ДОЛЖНА быть огра- │ │ничена кавычками! │ └────────────────────────────────────────┘ В шестнадцатиричном виде может быть за- дан, как одиночный байт: #77 #C3 #c3 #A так и адрес: #C000 #c000 #A76 #0056 (#c3 #0056 = JP #56) т.е. если Вы набираете #C3 #C033,это зна- чит, что на диске будет искаться последо- вательность байт #C3 #33 #C0.В десятичном виде также можно задать одиночный байт (0-255) или адрес (0-65535),причем адрес, если он меньше 255, должен начинаться с нуля: #c3 49152 = JP 49152 #c3 056 = JP 56 НО! #c3 56 -может дать самый неожиданный результат, если Вы имели ввиду адрес 56! Вы также имеете возможность использовать 'свободную маску', поставив вместо зада- ваемого байта точку: #22 . . 40 здесь программа будет искать байты 34 и 40 между которыми могут находиться любые 2 байта! Теперь о корректности ввода данных. Же- лательно, но не обязательно, отделять ис- комые данные друг от друга пробелами: #c3 49150 16 7 17 0 19 1 "Disk Error" или #20 #20 #20 . . . . . "over" более компактный вариант (но не более же- лательный во избежание ошибок ): #c3 49152 16 7 17 0 19 1"Disk Error" или #20#20#20....."over" После ввода последовательности и возмож- ного редактирования нажмите [Enter] и введите сначала начальную дорожку для по- иска (включительно) (если Вы вместо ввода числа нажмете [Edit], то будет использо- ван текущий номер дорожки). После этого введите конечную дорожку (тоже включи- тельно), ну а затем начнется собственно поиск. Если ничего не будет обнаружено,то выдается соответствующее сообщение. Заданную Вами последовательность прог- рамма запоминает и при следующем входе в эту команду, если прошлые данные для по- иска Вам не нужны придется сначала очис- тить строку командой [Graphics]. ───────────────────────────────────────── [N]:'Продолжить поиск'-программа ищет за- данную Вами последовательность байт от текущего положения курсора до заданной Вами конечной строки.Перед началом поиска последовательность выводится на экран, что-бы Вы знали, чего собственно ищете. ───────────────────────────────────────── [I]:'индексные данные текущей дорожки'-в правом верхнем углу показывается физичес- кие N цилиндра и N стороны диска далее в столбик данные заголовков секторов этой дорожки, начиная от индексной метки: лог. N цилиндра лог. N стороны N сектора его длина При нажатии на клавишу [Graphics], можно сменить режим вывода информации на экран - HEX/Dec. ───────────────────────────────────────── [D]:'Дизассемблировать код'-начиная от положения курсора на экран выводиться листинг дизассемблирования.При выполне- нии, в заголовке указывается имя файла и, программа запрашивает, какое реальное по- ложение занимает в ОЗУ дизассемблируемый код. В качестве своего варианта программа предлагает: для BASIC-файлов:'23867'+' расстояние от курсора до начала файла, для других типов файла:'адрес загрузки'+ 'расстояние...' и если курсор располага- ется на ТR00 или за пределами занятой об- ласти диска: '0'+'расстояние...'. Ввод информации возможен в HEX или десятичном видах.Листинг выдается построчно при на- жатии на любую клавищу, кроме [BREAK] или [M]. Дизассемблируются ВСЕ команды процессора Z80 фирмы Zilog. Справа от команд выдается их значение в HEX-виде желтого цвета,если все нормально и красного цвета, если нахождение данного байта в данном месте бессмысленно. Цифровая информация выводиться в HEX или Dec-виде, в зависимости от соответствую- щего состояния 'Доктора' (установленного клавишей [Graphics]). ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ функции 'D': [BREAK]-прерывает вывод листинга. [М]-устанавливает курсор в 'Докторе' на байт начала последней команды на экране. ───────────────────────────────────────── [B]:'просмотр BASIC файла'-функция пред- назначена для облегчения работы с BASIC программами. Действует только в файлах типа 'В' (BASIC файлах)! При выполнении, в заголовке указывается имя файла и, справаот него, номер строки автостарта программы, если он конечно есть. При выдаче на экран листинга прог- раммы, управляющие символы, встреченные в строке, игнорируются. При обнаружении в строке недопустимых в BASIC программах символов вывод листинга прерывается с вы- дачей сообщения "Конец программы". При обнаружении таких символов в строках пос- ле оператора REM, на экран выводиться не- которое число байт в символьном виде фио- летового цвета (в виде символа в диапазо- не 32-127 и как '.',если значение не по- падает в этот диапазон) и листинг продол- жается со следующей строки программы. Каждое число в листинге сопровождается его дубликатом во внутреннем представле- нии BASICа (число красного цвета в скоб- ках),что предоставляет дополнительные возможности. Листинг программы происходит построчно. Выдача следующей строки происходит лишь после того, как будет нажата любая клави- ша кроме: [[BREAK], [M] или [S]. По окон- чании программы выдается сообщение "Конец программы", возврат в основной режим 'Доктора' происходит только после нажатия клавиши [Y]. ДОПОЛНИТЕЛЬНЫЕ КОМАНДЫ функции 'В': [BREAK]-прерывает вывод листинга. [S]-устанавливает курсор в 'Докторе' на младший байт автостарта программы в слу- жебной области файла, что дает Вам вомож- ность изменить его при желании. Номер строки автостарта программы представляет- ся в двухбайтовом виде мл./ст., при ра- венстве его нулю,автостарт с программы снимается. [М]-устанавливает курсор в 'Докторе' на первый оператор в последней, выданной на экран, строке листинга (чтобы увидеть это,надо разумеется,вернуться в основной режим).КАЖДОЕ нажатие на 'М' переориенти- рует курсор по новому! В Н И М А Н И Е имейте ввиду, что [М] и [S] взаимоисключают друг друга (т. к. Вы сами понимаете, курсор не может оказаться одновременно в двух разных местах файла). Также эти операторы действуют и тогда, когда на экране присутствует сообщение "Конец программы". ----------------------------------------- ┌────────────────────────────────────────┐ │ Юрий Ковалевский 'CONVER-Utility' │ │ г.Санкт-Петербург │ └────────────────────────────────────────┘ Текст набран в ZXWord'e 2.5+(mouse) Mihail (MIHEICH)