PVV wrote:во вложении набор инструментов для сборки, поправленный исходник и конфиг для b2m
Вложение скачал, BAT-файлом транслируется и создаётся MON.BIN размером в 8 кб (кстати, удобнее, если между строками BAT-файла вставлены строки 'pause', чтобы видеть результаты каждого этапа). В LST-файле видно, что на FF00 стоит FAR JMP на F800.
И кстати, обязательно FAR JMP ? Это лишние 2 байта? Я не подумал о сегментах и в первом варианте применил 3-х байтовый NEAR JMP. Не сработает ? Ведь адреса A16 ... A19 в минимальном включении не задействованы и 0FFFF0H (самый старший сегмент) тоже самое, что 00FFF0H (это в самом первом сегменте в начале памяти).
Получается, что по сбросу (по крайней мере не в минимальном включении, процессор загружает регистр CS так, чтобы текущий сегмент кода начинался с адреса 0FFFF0H, обнуляя регистр PC. Или же он ставит сегмент кода на последние 64К, а регистр PC на 0FFF0H. Никогда об этом не задумывался, да и почти 20 лет не программировал для 8086. Даже, если и знал, то забыл. Впрочем, такие нюансы надо знать только при разработке ПО для собственных железок. В ROM-BIOS XT по сбросу делается FAR JMP на F000:E05B, т.е сегмент кода ставится на последние 64К.
Скопировал предложенный конфиг в каталого EMU/CONFIG, а файл ПЗУ MON.BIN в каталог EMU/8086 (куда скопировал все файлы из оригинального каталога EMU/radio). Но всё равно эмулятор B2M не стартует, в смысле, похоже зависает на этапе инициализации. Эмулятор EMU от
b2m не даёт никакой информации и просто виснет, если при старте не находит какой-либо нужный файл, что очень противно при отладке конфигов.
Попробовал просто подставлять MON.BIN в каталог EMU/radio (соответственно указав каталог для поиска файла ПЗУ в Вашем конфиге). Но всё равно не получилось запустить и выйти в отладчик, эмулятор просто виснет при старте с чёрным экраном.
Это не важно, сам отредактирую базовый конфиг для РК86 на КР580 (для чего кажется достаточно просто указать тип процессора 8086). Для меня была проблемой получить код самого ПЗУ без стартёра MSDOS. Если я правильно понял, это делает программка EXE2ROM из Вашего вложения. Полученный MON.BIN почему-то имеет длину 8 кб, а не 2 кб, хотя в коде 6 кб это нули.
В общем, попробую поразбираться с эмулятором и добиться хотя бы выхода в отладчик, а дальше уже можно начать разбираться в программе ПЗУ РК.
Alekcandr wrote:Не понимаю я РАДИО-86РК на х86 процессоре. Зачем это нужно? Ну пускай просто "некий комп на х86 процессоре". РАДИО-86РК тут лишнее.
Кому-то привычно программировать используя традиционные подпрограммы F800. А кому-то это не надо, но если делать совсем новую конструкцию, то для неё надо придумывать стандарты ROM-BIOS и писать этот ROM-BIOS.
Да и для "некоего компа на x86" надо где-то брать внешнюю плату текстового или графического адаптера и писать соответствующий ROM-BIOS. Это долгие хлопоты. Как раз для этого случая отлично подходит плата графич.адаптера ИРИШИ всего на 60 микросхемах, что даёт CGA, и тем самым этот "некий комп на x86" превращается в ПОИСК.
А используя ненужную платку РК86, можно буквально за пару часов наедине с электро паяльником получить из него экспериментальный компьютер на 8088 или на 6502. А вот для CPU 6802 электро-траха больше, т.к у него нет полноценного режима HOLD (называемого DMA), т.к в этом режиме его шина не уходит в Z-состояние, отчего нужно ставить ещё 3 буфера 555 АП6, чтобы полностью освобождать шину для ПДП.
Ну и есть ещё маленький довод, что можно конвертировать некоторые системные программы РК (например текстов редактор МИКРОН-2, а редактор МИКРОН-1 и даром не нужен) и некоторые игры (например, двух килобайтовый ксоникс, который вполне играбелен, лучшего не встречал). Правда, без наличия хотя бы примитивного ассемблера для 8088, текстов редактор не нужен. Написать даже примитивный ассемблер 8088 намного сложнее, чем написать ассемблер КР580. Но это и не надо, если есть доступ к программам MSDOS. Отладчик для 8088, думаю, не очень сложно можно получить переделкой DEBUG.
newold86 wrote:Каким требованиям он должен отвечать, чтобы считаться РК86 ? ... Что должно быть у данного гипотетического компьютера, кроме процессора ххх, чтобы он считался "РК86 на ххх" ?
Неверный вопрос. Компьютер может считаться РК86, если на нём работают программы РК86. Потому компьютер на другом CPU может считаться РК86 только, если в нём стоит V20 и вся адресация совпадает с оригиналом.
Видимо вопрос был, каким должен быть радиолюбительский компьютер и стОит ли для нового РК сохранять даже частичную совместимость с РК86.
Вообще делая комп на базе ВГ75 разумно убрать одну ошибку авторов РК86. Они вынуждены были бордюр по вертикали сделать программным, т.к в противном случае ОЗУ РУ3 не могут работать (регенерация во время аппаратного бордюра ВГ75 прекращается на большее время, чем допустимо). Но вот по горизонтали неверно было делать такой же программный бордюр.
Из-за чего не только впустую теряются байты (в режиме по сбросу 30*14=420 байтов, в базовом граф.режиме 38*14=532 байта, а при графике 192*102 впустую теряется аж 64*14=896 байтов), но главное, нельзя изменить размер строки в байтах (всегда 78), хотя ВГ75 позволяет это программно менять. Авторы РК86 это сделали ради экономии одного ТТЛ-корпуса.
А надо было формировать ССИ из сигнала горизонтального бордюра HRTC с помощью логики, а не использовать сам этот сигнал HRTC в качестве ССИ. Для этого ставится 155 АГ3, в нём два одновибратора. Первый одновибратор взводится по началу бордюра (сигналом HRTC) и формирует задержку до начала ССИ (чтобы ССИ был в центре строчного бланка), а второй одновибратор определяет длительность ССИ.
Имея возможность менять число байтов в строке, можно программно переключать режимы, имея как 64, так и 80 символов в строке и одновременно 40 символов в строке с полноценным цветом (чётные позиции задают символ, нечётные дают 7 битов для цвета знакоместа). Именно такой режим 40 символов в строке с полноценным цветом с учётом задач этого компьютера был самым разумным и в 1985 при проектировании РК86.
Почти все западные бытовые компьютеры до середины 90-тых имели 40 символов в строке (знаю даже один компьютер, где было 13 символов в строке на 8 строках). 64 символа в строке, с учётом низкого разрешения телевизоров и отсутствием необходимости текстообработки (у населения не было принтеров не только тогда, но даже и в последующие 10-15 лет) были просто не нужны для бытового компьютера.
Интересен также 8086, т.к он работает быстрее, чем 8088. Если не волнует совместимость по структуре экрана с РК86, то можно "прицепить" ОЗУ 62256/w24257 и второе ПЗУ РФ2, включив их по нечётным адресам. Тогда ячейки с чётными аресами будут читаться из 32 кб динамического ОЗУ, а нечётные ячейки будут браться из 32 кб дополнительного ОЗУ. Также и с ПЗУ.
А вот видео буфер тогда будет устроен через-байтово, т.к ПДП ВТ57 8-ми разрядный и будет читать только из динамического ОЗУ. 8086 удобно ставить в ОРИОН, там уже есть две параллельные банки ОЗУ.
Если же жалко тратить на экран удвоенный объём ОЗУ или надо обеспечить организацию экрана как в базовом РК86, то придется на входы выходы ОЗУ делать сложный демультиплексор из 16-ти разрядной шины в 8-ми разрядную.
Вот здесь
текущая версия РК-ПЗУ конвертированного для 8088.