Index of /ukdwk_archive/dwkwebcomplekt/WALK2

[ICO]NameSizeDescription
[PARENTDIR]Parent Directory -  
[   ]WALK2.rar 32K 

Источник - публикация на форуме ZX-PK.RU участником AFZ

ОПИСАНИЕ ПРОГРАММЫ WALK-2 ВЕРСИЯ 2.2 ФТИ ИМ. А.Ф.ИОФФЕ АН СССР КЛОЧКОВ А.В., ТЕЛ. 247-91-52 ЛЕНИНГРАД

Программа WALK-2 предназначена для преобразования файлов форматов .SAV, .REL операционной системы RT-11 версий 3, 4 и 5, а также абсолютного формата - образа памяти (без учета информации, содержащейся в нулевом блоке файла) в текст на языке ассемблера. Сама программа WALK-2 работает под управлением RT-11, версии 5.0 и выше. Могут реассемблироваться не оверлейные и оверлейные программы всех версий, а также программы с оверлеями в расширенной памяти для версий 4 и 5. При ручном определении оверлейной структуры можно реассемблировать любые программы. Программа создает, кроме выходного файла с ассемблерным текстом (расширение .DEC) файл карты (.MPW) и, если указано, файл комментариев (.CMW). Они позволяют полностью запоминать текущее состояние задачи и продолжить процесс реассемблирования после перерыва в работе. Вид расшифровки в директивы ассемблера (команда, директивы .BYTE, .WORD, .RAD50, наличие меток) определяется флажками. Флажки расставляются к каждому слову исходной программы автоматически или вручную. При первом обращении к WALK-2 только с файлом программы ко всем словам установлен только флажок S - слово содержит значение и подлежит рассмотрению. Те слова, которые не имеют флажка S будут пропускаться при автоматической расстановке флажков, на них не могут быть автоматически установлены метки или другие флажки. При отсутствии у слова или группы слов всех флажков они сворачиваются в директиву .BLKB. Перед началом автоматической расстановки флажков рекомендуется снять флажки S в нулевом блоке файла (слова с 0 по 776), исключая, может быть, системную область связи (если она используется в программе). Также, если известны пустые зоны буферов внутри программы, в них полезно снять флажки S. Если заранее известно, что какие-то области программы представляют собой данные, то удобно перед автоматической расстановкой флажков установить ко всем словам этих областей флажок X - слово данных, или комбинацию флажков, в зависимости от необходимого представления данных. Автоматическую расстановку флажков необходимо начинать с команды. Для смены адреса, на котором вы в данный момент находитесь (в дальнейшем будет обозначаться VPC), используйте команду J. Для того, чтобы его узнать - команду L или D без аргументов. ОПИСАНИЕ КОМАНД WALK-2 Предварительные определения < > - В угловые скобки заключается некоторое условное обозначение, используемое в дальнейшем как целое. Вместо угловых скобок и заключенного в них обозначения подставляется то, что определено. [ ] - В квадратные скобки заключаются необязательные элементы команд. Сами квадратные скобки не должны присутствовать в команде WALK-2 - Восьмеричное число - Аргумент команды. Может быть в следующих видах: 1. Пропущен Если в описании команды не оговорено другое, команда относится к VPC 2. Если команда может относиться к интервалу адресов, то интервал между VPC и , если не может, то адрес 3. + Либо интервал VPC+- - VPC, либо - адрес VPC+- 4. / Конец текущего корневого или оверлейного сегмента, или до конца 5. // В оверлейном сегменте то же, что и /, В корневом - до конца всех оверлейных сегментов, если они есть, если нет - то же, что и /. При использовании // как указателя на адрес, а не на интервал указывает на конец текущего сегмента. 6. @ Может быть добавлен перед любым из первых пяти вариантов аргумента. Обозначает косвенность. Используется не во всех командах. Где не используется - игнорируется, ошибки не вызывает. При использовании ` адрес вычисляется следующим образом: сначала вычисляется адрес, указанный остальной частью аргумента, затем берется содержимое этого адреса и используется в качестве значения аргумента. При использовании @ в командах, требующих интервала, интервал, заданный остальной частью аргумента используется в качестве таблицы адресов, по которым проводится указанное в команде действие. - Клавиша ESC дисплея (или АР2, или CTRL/[ - код 33). При наборе нескольких команд в одной строке может возникнуть необходимость ограничить команду (например ввод комментария). В качастве разделителя используется . При вводе как команды игнорируется. СИНТАКСИС И ВЫПОЛНЕНИЕ КОМАНД 1. КОМАНДА L L Вывод на терминал указанного аргументом интервала адресов в виде команд, независимо от установленных флажков. Дополнительно выводятся флажки, счетчик команд, метка и содержимое первого слова всех распечатываемых команд. Косвенность игнорируется. 2. КОМАНДА I I То же, что команда L, но вывод идет в файл .DEC 3. КОМАНДА D D Вывод на терминал указанного аргументом интервала адресов в виде данных, независимо от установленных флажков. Распечатываются флажки, счетчик команд, метка, содержимое слова, байтовое представление, ASCII представление (при этом не учитывается восьмой бит), RADIX-50 представление (если существует), имя (если определено в таблице) или автометка (если слово является ссылкой на помеченное флажком R слово). Косвенность игнорируется. 4. КОМАНДА P P То же, что команда D, но вывод идет в файл .DEC 5. КОМАНДА T T Вывод на терминал указанного аргументом интервала адресов в виде ассемблерного текста с учетом флажков. Выводится метка (если есть), команда или директива ассемблера. При использовании аргумента //, перед выводом оверлейного сегмента будет выводится его заголовок. Косвенность в команде игнорируется. 6. КОМАНДА A A То же, что команда T, но вывод идет в файл .DEC. Текст, полученный в файле пригоден для ассемблирования. Если вы определяли имена (кроме меток), то для того, чтобы файл можно было ассемблировать, перед подачей команды A выведите в него таблицу символов командой O. 7. КОМАНДА J J J<ИМЯ> Команда перехода на другой адрес. Команда J имеет два варианта формата. Первый используется для перехода на указанный адрес, или по указанному адресу (если применяется @). Второй - для перехода только на указанный адрес. <ИМЯ> - имя метки или глобальной метки из таблицы имен. При попытке перейти на нечетный адрес, будет произведен переход на соответствующий ему четный. 8. КОМАНДА B B[] Переход в начало корневого или оверлейного сегмента. Если задан, то переход в указанный сегмент, если нет - в текущем сегменте номер сегмента 0 - корневой сегмент. Косвенность игнорируется. 9. КОМАНДА V V Вывод на терминал заголовков оверлейных сегментов и таблицы символов. Метки оверлейных сегментов помечаются номером сегмента в скобках. 10. КОМАНДА O O То же, что и команда V, но вывод идет в файл .DEC. таблица символов выводится в виде, пригодном для ассемблирования. Все назначения меток снабжены признаком комментария, а остальные назначения определяются через присваивание. В комментариях к ним указывается тип назначения в таблице символов. 11. КОМАНДА F F Установка длины страницы в файле .DEC. При старте программы установлена равной 60 строкам. В конце страницы вставляется . Если равен нулю, то устанавливается режим вывода сплошным текстом. Исключение составляют переходы к новым оверлейным сегментам. 12. КОМАНДА X X Завершение работы с программой. По этой команде дописываются и закрываются все файлы. Если в файл .DEC не производилось никакой записи, то он не будет создан. При ошибке записи в файл .MPW WALK-2 не завершит работу, и останется в командном режиме. Если вы все же хотите завершить работу, то необходима следующая последовательность команд: X. При этом файл .MPW может содержать недостоверную информацию. 13. КОМАНДА W [@]W Автоматическая расстановка флажков. Команда либо не должна иметь аргумента, либо иметь признак косвенности. Во втором случае идет автоматическая расстановка флажков в подпрограммах по таблице адресов подпрограмм. Автоматическая расстановка флажков должна начинаться с команды. Она идет до тех пор, пока не встретится команда, за которой могут идти данные (JMP, BR, JSR, EMT, TRAP и пр.) или пока не встретится переход с данных на неопределенное слово. При этом распечатывается в первом случае: команда, вызвавшая останов и следующая команда в виде команды и в виде данных. Во втором случае распечатывается: последняя команда перед областью данных, но VPC установлен на первом неопределенном слове. WALK-2 переходит в командный режим. Далее можно либо повторить команду W (если дальше команды), либо установить флажки данных. Во время автоматической расстановки флажков пропускаются слова без флажка S и слова данных. 14. КОМАНДА ; ;<комментарий> Ввод комментария. <комментарий> - это любая текстовая строка. Она будет относится к VPC, при котором подана команда ;. Комментарий распечатывается на терминале и выводится в файл при выводе соответствующей команды или слова данных. На терминале комментарий распечатывается в следующей строке, в файле - в той же строке и отделяется табуляцией и точкой с запятой. Один VPC может иметь только один комментарий, но команда, состоящая из 2 или 3 слов - 2 или 3 комментария, соответственно. Для их ввода используйте команду +2J, а затем ;. Выводятся такие комментарии в следующей за командой строке. При вводе комментария к VPC, уже имеющему комментарий, он заменяется. Этим не следует злоупотреблять, т.к. замененный комментарий не удаляется из файла .CMW. Команда ; работает только если в командной строке при запуске WALK-2 был указан файл комментариев. 15. КОМАНДА S S... Установка флажков. Перечисленные в команде флажки устанавливаются в указанном аргументом диапазоне. Если использован флажок A - устанавливаются все флажки. Такого же результата можно достичь, перечислив все флажки, но A - короче. 16. КОМАНДА C C... Очистка флажков. Работает как и команда S. 17. КОМАНДА Y Y Определение и удаление имен. В ответ на команду Y выводится приглашение: + далее можно вводить - конец команды Y, или строки определений вида: <ИМЯ> <ПРИЗНАК> <ЗНАЧЕНИЕ> или строки удалений вида: <ИМЯ> [<ПРИЗНАК>] / Строка определения вводит указанное имя с указанным признаком в таблицу. Не допускается вводить одинаковые имена с одинаковыми признаками и одинаковые значения с одинаковыми признаками. Исключение составляют метки в различных оверлейных сегментах, которые могут совпадать. Этим удобно пользоваться для восстановления правильных ссылок в оверлейных программах. Строка удаления при указанном признаке удаляет из таблицы имя с указанным признаком. Без признака - все указанные имена. Разделителем между именем и признаком может служить пробел, табуляция, или сам признак = или :. В именах можно употреблять все символы, представимые в RADIX-50. Метки для оверлейных сегментов нужно определять находясь в том сегменте, метки для которого определяются. Признаки: : определение метки G определение глобальной метки. По использованию совпадает с меткой. В ассемблерном листинге помечается ::. = прямое присваивание E назначение для кодов команды EMT T назначение для кодов команды TRAP для E и T признаков значение не более 377 I назначение кода операции. При дешифрации команды она сначала ищется в таблице имен. Если найдена, то подставляется заданное имя. Такие команды не могут иметь аргументов. Можно использовать для EMT и TRAP команд с определенными значениями аргументов, или для команд из набора резервных инструкций, используемых в микропроцессорах 1801ВМ1 И 1801ВМ2. 18. КОМАНДА R R Ввод определений имен из файла. Файл должен иметь формат команды Y. В ответ на команду R запрашивается имя файла, из которого следует вводить определения. Расширение имени файла по умолчанию - .TBW. Драйвер устройства, с которого вводится файл должен либо быть загружен перед запуском WALK-2 командой LOAD, либо усторойство должно совпадать с одним из устройств, определенных в командной строке при старте WALK-2, либо с SY:. 19. ГРУППА КОМАНД G Группа команд поиска поиск производится от следующего за VPC слова или байта до конца текущего сегмента. В случае успешного поиска VPC позиционируется на начало найденной последовательности, и происходит печать в виде команды или в виде данных, в зависимости от режима поиска. В противном случае позиция VPC не изменяется и распечатки не происходит. КОМАНДА GA GA<СТРОКА> Поиск текстовой строки. При поиске не учитываются признаки регистров ни во входной строке, ни в искомой. КОМАНДА GB GB[,,....,] Поиск последовательности байтов. КОМАНДА GW GW[,,....,] Поиск последовательности слов. КОМАНДА G# G# Поиск непосредственной адресации, при которой слово данных может представлять собой метку в программе, т.е. находится в пределах программы и соответствующий адрес помечен флажком S. 20. КОМАНДА H H Вывод на терминал краткого справочного текста о командах WALK-2. ИСПОЛЬЗУЕМЫЕ ФЛАЖКИ И ИХ КОМБИНАЦИИ S Слово содержит информацию и подлежит рассмотрению I Первое слово команды. Флажок наиболее приоритетный при выводе в виде ассемблера X Второе или третье слово команды или слово данных B Байтовые данные. Если этим флажком помечено отдельно стоящее слово данных, то будет выведена директива .BYTE, если второе или третье слово команды при непосредственной адресации к нему, то либо ASCII - представление в команде, либо директива .BYTE после команды (со сменой адресации на (PC)+). L Слово имеет символьную метку. Флажок автоматически устанавливается при вводе метки в таблицу. Флажок имеет приоритет перед R. R На слово имеется ссылка. Будет генерироваться автометка. Если имеется комбинация RB, то автометки будут генерироваться к каждому байту. C Данные представляют собой числовую константу. Флажок устанавливается только вручную. D Если C не установлен, то определяет приоритет поиска в таблице имен. При отсутствии флажка сначала ищется метка с данным значением, затем прямое присваивание. При наличии - наоборот. При отсутствии в таблице имени флажок не влияет на результат - распечатывается константа. Флажок устанавливается только вручную. CD Слово данных представить в виде директивы .RAD50 CB Преобразовать байты данных в ASCII представление, если это возможно. CBD Представить байты данных в виде восьмеричных чисел. Остальные комбинации флажков не дают каких-либо специфических эффектов, и работают как отдельно взятые флажки. О РАСШИФРОВКЕ КОМАНД Если код команды не определен по команде Y с признаком I, то он поступает на дешифратор команд. Для большинства команд результат однозначен. Исключения составляют FPP - команды, для которых всегда идет расшифровка в инструкции одинарной точности, т.к. они по коду операции совпадают с инструкциями двойной точности, а выполнение зависит от текущего состояния FPP - процессора, а также команды BCS и BCC, которые имеют по две мнемоники. Для них выполняется следующее правило: если предыдущая команда была двухадресной - идет расшифровка в мнемоники BHIS и BLO, в остальных случаях BCC и BCS. Команды JSR PC... всегда расшифровываются в мнемонику CALL..., команды RTS PC - RETURN. При расшифровке операндов, если оказывается, что при непосредственной или абсолютной адресации операнд помечен как команда, или имеющий метку, то в команде будет использована адресация (PC)+, или @(PC)+, а слово будет реассемблироваться в соответствии с его флажками. Исключение составляет следующая комбинация: первый операнд с непосредственной или абсолютной адресацией, а второй - с индексной или косвенно-индексной. В этом случае первый операнд никогда не будет расшифровываться в отдельное слово, т.к. это вызывает ошибку ассемблирования. ОПРЕДЕЛЕНИЕ ТОЧКИ СТАРТА Если в программе определена точка старта - слово 40 нулевого блока файла отлично от единицы, то в таблицу символов автоматически вводится глобальная метка START, со значением, равным стартовому адресу. При этом в директиве .END будет записана метка START. Если по каким-то причинам стартовый адрес не нужен, то метку START нужно удалить из таблицы. В директиве .END уже не будет метки START. Однако, если метку поставить снова (в любое место программы), то она появиться в директиве .END. РАБОТА С ПРОГРАММОЙ При вызове WALK-2 печатает * и ждет команды. При вводе он печатает HELP и опять переходит к вводу. Формат входной строки: FILE[/OPT.../OPT] FILE - Входной файл в стандартном формате RT-11. Тип файла по умолчанию - стандартный .SAV формат, программа может быть оверлейной. Указывать это не нужно. Устройство по умолчанию - DK:, расширение по умолчанию определяется ключами: БЕЗ КЛЮЧЕЙ .SAV /M .SAV /R .REL /A .ROM Ключи: /R - файл .REL формата. /M - ручное определение оверлейной структуры программы. /A - абсолютный файл образа памяти. /V: - задание номера версии операционной системы, под которой была сделана реассемблируемая программа. Для неоверлейной программы безразлично. По умолчанию устанавливается /V:5. Дальнейшие ключи могут определять имена файлов в стандартном формате RT-11. Имена и устройства для файлов по умолчанию совпадают с именем и устройством входного файла, расширения определяются ключами: /N, /O .MPW /C .CMW /N[:FILE] - новый файл карты /O[:FILE] - старый файл карты /C[:FILE] - файл комментариев Если не задан никакой файл карты, то создается новый по умолчанию. Если задан только старый - идет работа только с ним. При этом длина таблицы символов определяется величиной, введенной при его создании. Если задан и старый и новый файл - длина таблицы символов может быть увеличена. Работа с файлом комментариев описана ниже. После ввода командной строки в случае создания нового файла карты WALK-2 запрашивает длину таблицы символов. Можно ответить числом или - максимально возможная длина. Она определяется свободной оперативной памятью. При использовании SJ - монитора длина таблицы больше. Размер файла карты увеличивается с увеличением длины таблицы. Рекомендуется задавать примерно необходимый размер таблицы, тем более, что ее всегда можно увеличить, задав новый и старый файлы карты. Если был использован ключ /M, то будет запрашиваться ввод оверлейной структуры: адрес сегмента в памяти, адрес сегмента на диске (в блоках от начала файла), количество слов в сегменте для каждого оверлейного сегмента, начиная с корневого (номер 0). Три эти параметра вводятся через запятую. Если известно количество байтов, а не слов, то можно третьим параметром ввести его, добавив в конце букву B. Затем WALK-2 входит в командный режим, печатая подсказку #. В командном режиме запрещен выход в монитор по CTRL/C. Для выхода используйте команду X. В командном режиме разрешен ввод кириллицы, буквы совпадают с соответствующими латинскими везде, кроме комментариев. РАБОТА С ФАЙЛОМ КОММЕНТАРИЕВ При использовании ключа /C во входной строке происходит работа с файлом комментариев. Только в этом случае можно использовать команду ;. Файл комментариев создается новый или используется старый в зависимости от режима, заданного для файла карты. При создании нового файла карты - создается новый файл комментариев, при использовании старого файла карты - используется старый, при расширении - расширяется. Не рекомендуется при использовании старого файла комментариев вводить новые комментарии. Если у вас не хватит места в каталоге комментариев могут возникнуть серьезные ошибки. Если вы уже начали реассемблировать программу без файла комментариев, а затем захотели его иметь, то можно сделать следующее. Вызвать WALK-2 и задать на вход любой .SAV файл с ключом /C. После входа в командный режим тут же завершить работу. Созданный пустой файл комментариев можно использовать в качестве исходного для любой другой программы. СООБЩЕНИЯ ОБ ОШИБКАХ Сообщения при вводе командной строки: COMMAND STRING ERROR. FOR HELP PRESS Любая ошибка в синтаксисе командной строки. Наберите строку снова. FILE NOT FOUND Не найден один из файлов, заданных в командной строке. Наберите строку с существующими именами. PROTECTED FILE FOUND При попытке создать новый файл был обнаружен защищенный файл с тем же именем. Выйдите по CTRL/C и переименуйте файл или снимите защиту. NO VN OVERLAY STRUCTURE - ASSUME ABS MODE Программа имеет в JSW бит оверлейности, но не отвечает соглашениям версии N операционной системы об оверлейных программах. Программа реассемблируется в виде абсолютного файла. Если это не устаривает завершите работу и при повторном входе установите правильную версию системы ключом /V. NO .REL FILE - ASSUME ABS MODE Программа не имеет .REL структуры. Реассемблируется в виде абсолютного файла. Если это не устраивает завершите работу и при повторном входе не используйте ключ /R. INVALID VECTOR Неверный ввод параметров при ручном определении оверлейной структуры. Сообщения, которые могут появиться в любой момент: READ ERROR Аппаратная ошибка считывания файла MAP FILE ERROR Ошибка в файле карты (аппаратная или неверный формат) COMMENT FILE ERROR Аппаратная ошибка в файле комментариев Сообщения в командном режиме: ? Любая ошибка в синтаксисе команды. Все команды после ошибочной до конца строки игнорируются INVALID OVERLAY SEGMENT NUMBER Попытка перейти в неопределенный оверлейный сегмент FETCH ERROR Попытка обращения к адресу вне программы. Как правило возникает при попытке распечатать данные в конце сегмента в виде команды, причем второе или третье слово команды находится вне сегмента WRONG ADRESS Попытка обращения к адресу вне программы SYMBOL TABLE FULL Переполнение таблицы символов. Завершите работу и запустите WALK-2 снова с ключами /N и /O DUBLE DEFINITION Попытка повторно определить имя командой Y или R. С существующими совпадают либо имя и тип, либо значение и тип. Имя игнорируется SYMBOL FILE ERROR Аппаратная ошибка чтения таблицы символов HANDLER MUST BY LOAD Драйвер устройства для файла, задаваемого в команде R должен быть предварительно загружен DECODE FILE WRITE ERROR Ошибка записи в выходной файл. Мало места на диске или аппаратная ошибка IM-STACK OVF Переполнение стека при выполнении команды W. Слишком много неудовлетворенных ссылок назад. Следует выполнить команду еще раз, возможно с другого места программы