Вложений: 1
Ленинградский монитор 1990 года. Исходники и коды
Ну вот, наконец-то. Получите ленинградский монитор. Антиквариат из 1990 года. Предполагаю, что с тех пор сделали много более крутых мониторов. Но это историческая вещь и лучшая в своё время.
Замучился переделывать исходники из формата ассемблера МИКРОН в формат для макро ассемблера М80. Затруднения в переделке из-за русских имён меток в КОИ-7, причём с недопустимыми символами "знак вопроса" в метках. Из-за этого кракнутый M80 вешается, а не кракнутый - не берёт русские буквы в КОИ-8. Если просто сбросить бит D5, то потеряются комментарии. Вот и приходится "трахаться" вручную. К сожалению все древние исходники, примерно до 1992 года, в основном, именно в идиотском формате ассемблера МИКРОН.
Странслировал, и думаю, получился почти полный оригинал. Отличия только, возможно, в фонтах 6*8 и 8*8, т.к нашёл какие-то подходящие, предположительно те (архив 'Фонты' у меня - 2.8 мб, так что легко подобрать нужный фонт).
Вот как-раз из-за фонтов этот архив вскоре заменю, т.к в листингах нет дампов фонтов. Их приходится вручную подставлять HEX-редактором. Так уж было принято в 80-е. Но теперь легко дизассемблировать фонт с помощью ИДА и встроить полученный исходник фонта прямо в исходник ROM-BIOS, так что сразу будет получаться готовый дамп для прошивки ПЗУ.
В этом ROM-BIOS на месте дампа D800...DFFF стоят коды FF. Здесь должен быть RAMDOS. Но бессмысленно его туда "совать", если на реале ни у кого нет эл.дисков 512 кб, а в эмуляторе нет соответствующей поддержки. Но эмулятор B2M допускает банки ОЗУ, поэтому не проблема сделать конфиг, чтобы было хоть 16 мб ОЗУ с цельно банковой коммутацией (точнее по 48 кб). Тогда можно сделать версию RAMDOS для эмулятора. А т.к программы для RAMDOS не работают на физическом уровне, а лишь стандартными подпрограммами, то без разницы как физически устроен эл.диск. Через пару дней постараюсь набрать текст руководства программиста (это интересно лишь программистам).
Но есть проблема. С этим ROM-BIOS нет проблем с эмулятором B2M при чтении/записи WAV-файлов. Что говорит о том, что сам монитор исправен. Но мне не удалось считать RKS-файлы, т.е уже готовые коды (не звуки WAV). Возможно, по причине того, что "подсовываю" неверный формат RKS, т.к формат RKS представляет большой секрет, отчего пока не смог достать ИНФО по нему. Но даже когда загрузил волковский монитор, работающий в формате РК86, то это тоже не помогло. Хотя С377 - точно вход чтения байта и этот адрес подставлен в конфиге. Но эмулятор B2M не хочет выводить окно с запросом имени файла. Это говорит о том, что на эту точку нет перехода, что странно... Как же тогда грузится. Вряд-ли я посадил "ляп" при конверсии исходника. Надо смотреть отладчиком эмулятора - куда идёт переход по директиве I. Может кто-то разберётся.
А вообще, т.к здесь п/п-ммы ввода/вывода векторизованы, отчего подпрограмм ввода/вывода не одна, - их много, то возникает проблема с эмулятором. Например, когда Вы включили MSX-формат, то по команде I будет работать совсем другая п/п-мма чтения байта и адрес выхода из неё - другой. Отчего эмулятор B2M просто виснет при попытке работать с магнитофоном.
Для начала прочтите все файлы READ_ME.TXT. Прочитайте описания директив и обоих версий монитора. Для V3.3 нет описания команд, но на 80% соответствует описание M27.TXT. А отличия описаны в файле M33.TXT. Зато для V3.3 есть полное описание попрограмм и ячеек, нужная вещь для программиста. Но это есть только на бумаге.
Вот минимальные указания для некомпетентных. Запустите в эмуляторе версию ONLY WAV. Нажмите функциональную клавишу. Появится курсор, - нажмите <ВК> или ещё лучше сразу НР+F2 (НР у B2M это SHift). Это одновременно включит большие буквы. Наберите E<ВК>. Войдёте в редактор, на вопрос NEW (Y/N)? нажмите <Y>. Затем нажмите <F1>. Нажмите АР2 (это Escape у B2M), затем <I>. Запустите магнитофон с записями в формате ED-MICRON и нажмите <ENTER>. Следите за счётчиком в правом верхнем углу. Если он не бежит, значит ввода нет. Первая цифра появлятся по захвату пилотона.
Естественно старые программы надо запускать со шрифтом 6*8, для чего снова нажмите НР+F2 (триггерный эффект). Очень удобно, что есть команда НР+F9 - это выход в монитор из любой программы, что пользуется ПЗУ. Например, если у Орлова запустить большой дамп, то выйти из него нельзя... Если что-то зависло при вводе с МГ тоже жмите НР+F9. Из редактора не читайте и не пишите файлы в эл.диск. Результат не предсказуем (т.к в пустом ПЗУ код FF - команда RST 38H). Чтобы этого не было можно заполнить входы RAMDOS D800...D83F кодом C9 (команда RET), тогда по крайней мере улёта не будет. Полосы по бордюру, Вы увидеть не сможете, т.к в эмуляторе бордюр не отображается.
Если записей в формате ED-MICRON нет, то загружайте в формате монитора Орлова по директиве I, в формате РК86 по директиве Y, или в формате ZX-Spectrum по дирктиве J. Для загрузки записей кооператива SP-580, перед их загрузкой нажмите НР+F3, чтобы включился барнаульский эмулятор. Большинство барнаульских программ будет работать. Для тех что не работают придётся поставить ВИ53 и сделать некоторые доработки железа.
Игры Manic-Miner в виде WAV-файла не нашёл, а инсталлятором или дампом его вообще не было. Много WAV-файлов погибло при крушении винта в конце 90-х, отчего весь архив пришлось считывать заново. Естественно при повторном считывании в 2000 году что-то не нашёл, что-то забыл. Жалко, если Manic-Miner пропал. Попробую поискать кассету, но велика вероятность что на неё была перезапись, т.к все 100 кассет я истратил на другое. В многоблочном виде есть только SP-Copy и RC для RAMDOS. Для них даже есть инсталяторы.
А есть у кого-то Manic-Miner СПЕЦИАЛИСТА одним файлом? Тогда могу сделать новую версию с многоблочной автозагрузкой. Если бы был компоновщик, то это была бы работа на 15 минут. Впрочем, так же сильно защитить от копирования, как было в оригинале, - вряд-ли смогу. Завтра попробую поискать кассеты и считать SP-Copy, чтобы узнать сумеет его кто-нибудь кракнуть или нет. Я в 1989 не сумел кракнуть, хотя специалистовская версия защищена очень слабо.