В принципе классная схема, и я правильно понимаю в 0A000h-0Axxxh перенести FDD и подцепить и дополнительную ВВ55 и ВИ53?
Вид для печати
Уже писал, но так наверное понятней.
В своё время ставил в РК вместо дешифратора адреса 555ИД7 пару ПЗУ К155РЕ3 и проц нормально терпел и работал на УРА. Но, конечно, вы правы и так делать стремно. Только К1533 лучше не ставить. Слаба по выходу и с быстродействием возможны проблемы. Тут лучше импорт SN74НС154. А лучший вариант дешифратора, это ATF22V10B (PALCE22V10H)...гибкость, шустрость, КМОП.
вопрос ещё актуален, может это поможет?
http://www.igorkov.org/pdf/Z80-Centr...essor-Unit.pdf
и, собственно, вопрос, из-за которого я зашёл в эту тему: схема модуля на Z80, полностью заменяющего КР580ВМ80А, существует?
Z80 в РК не нужен
Виктору РК вообще не нужен...
z80, ВМ85... - это интересно, но это больше похоже не на РК, а на его эмуляцию... Это нужно было делать вовремя, как, например, с Орионом, а сейчас - не вижу смысла.
Нужен или нет, давайте каждый при своём мнении останется? :-)
А по теме как?
Схема есть или нет?
Хорошо.
Буду экспериментировать.
Я имел ввиду процессор, так сказать, сердце компьютера. Понятно, что мы сейчас используем современную элементную базу для расширения/улучшения наших старичков. Я сам, например, РКшку собрабрал на ПЛМке, программы загружаю с SD-карточки при помощи микроконтроллера AVR, который во много раз мощнее ВМ80, вместо телевизора - монитор. Но в центре всего этого - КР580ВМ80! Как мне кажется, этот процессор, со всеми его недостатками, как раз и делает наши компьютеры НАШИМИ.
А ИМ1821ВМ85А тоже наш, к тому же потребляет меньше импорта и "ледяной" при тактовой частоте 5МГц.
Извените если не в тему. На Специалисте-МХ была такая схема, может понадобится.
да, эту схему я смотрел, но ведь было ещё вот такое дополнение http://zx-pk.ru/showpost.php?p=582697&postcount=31 и лут http://zx-pk.ru/showpost.php?p=585547&postcount=42
поэтому и возникают дурацкие вопросы о полных начерченных схемах и т.д.
Это для звука эмуляция INTE. Но работает очень хреново.
ОЗУ - какая микруха ? На фото не видно.
При установленной Z80 в Радио-86РК не работают многие программы. Например ассемблер, дизассемблер, отладчик. Но например в Орион-про, хотя там тоже Z80 они работают. Приходит на мысль, что дело в "мониторе". Покопался и чуток поправил в мониторе п/п F818. теперь большинство программ заработали, но не пашет DOS2.95. Может кто копался на предмет работы DOS2.95 с Z80?
- - - Добавлено - - -
Blade оказался совершенно прав.
http://zx-pk.ru/threads/20887-radio-...l=1#post580891
Кажется, единственное место где надо править, - это 'JPO' указанное BLADE. Я в своё время тоже с этим столкнулся, когда делал ROM-BIOS РК86 для эмулятора РК на ОРИОНЕ с Z80 и исправил это место. Написал "кажется", потому, что может быть есть ещё где-то непереностимость Z80, но я этого не знаю. Т.к для эмулятора РК на ОРИОНЕ использовал только стандартные подпрограммы, а командный монитор РК выкинул. Таким образом в стандарных подпрограммах других несовместимостей нет, но надо посмотреть все ли команды RAM-монитора работают.Цитата:
Сообщение от Vladimir_s
Поэтому править надо п/п-мму F809 (COUT_C), а не F818 (MSSG). При коррекциях и перетрансляциях можно произвольно менять код ПЗУ РК86, но некоторые внутренние точки двигать нельзя. Надеюсь Вы посмотрели в моём исходнике монитора РК86 те внутренние входные точки ПЗУ F800 РК86, которые необходимо сохранить для совместимости. На всякий случай привожу их.
Эти точки внутренние и теоретически не обязаны соблюдаться, но к сожалению среди программистов для РК86 нашлось несколько, грубо говоря идиотов, которые не послушались советов авторов РК86 и "лезли" во внутренние точки ПЗУ.Код:.
GETLIN EQU 0F8EEH
CMPDH EQU 0F990H
CRHLBL EQU 0FB78H ; Выводит ВК, вправо на 4 позиции и ADR_BL
RIGHT4 EQU 0F9B0H ; Выводит ВК и вправо на 4 позиции
GETPRM EQU 0F92CH
PUSK_VG EQU 0FACEH
Хотя идея выпустить платы РК86 на Z80 "накрылась" из-за отсутствия интереса у пользователей, но теперь я сам собираюсь починить свой РК86 и поставить туда Z80. Поэтому, на досуге странслировал ПЗУ F800 РК86 для Z80 сохраняющее все указанные внутренние точки. При этом заменой на JR-команды, без труда выиграно 110 байт. Однако пока не проверил на практике. Для начала можно проверить в виде версии для ОЗУ, чтобы не перезашивать ПЗУ.
Привожу фрагмент, чтобы показать как я избавился от неверно используемой команды JPO. Заодно посмотрите на подпрограмму HEX_A (F815). В мониторе РК она дико неэффективна (впрочем, в ПЗУ всех остальных отечественных 8-ми разрядок эта п/п-мма лишь на байт эффективнее). Я применил самый эффективный алгоритм, отчего на 11 байтах выиграл целых 3 байта ! Изменения в ПЗУ заключаются в том, чтобы заменить команду JPO (см.там где точка с запятой закомментирует JPO).
Скрытый текст
Код:.
HEX_A: PUSH AF
RRCA
RRCA
RRCA
RRCA
CALL NIBBLE
POP AF
NIBBLE: AND 0FH
CP 10
CCF
ADC A,30H
DAA
COUT_A: LD C,A
COUT_C: PUSH AF
PUSH BC
PUSH DE
PUSH HL
CALL STATUS
LD HL,TOBACK
PUSH HL
LD HL,(POSX)
EX DE,HL
LD HL,(EK_ADR)
LD A,(ESC_F)
DEC A
JP M,NO_ESC ; если нет ESC-флага
JR Z,BYTE2 ; если ещё не было второго байта 'Y' (1)
; JP PO,AFD73 ; <------ !!!!!! если 3-тий байт
DEC A
JR Z,AFD73 ; если 3-тий байт
LD A,C ; четвёртый байт
SUB 20H
LD C,A
AFCDD: DEC C
JP M,ESCRES ; СБРОС ESC_F И ВЫХОД
PUSH BC
CALL COD18 ; на следующее знакоместо
POP BC
JR AFCDD
; ----------------------------------------------
AFD73: LD A,C ; третий байт
SUB 20H
LD C,A ; номер строки
AFD77: DEC C
LD A,4
JP M,SETESC
PUSH BC
CALL COD1A ; на строку вниз
POP BC
JR AFD77
; ----------------------------------------------
BYTE2: LD A,C
CP 'Y'
JR NZ,ESCRES
CALL HOME
LD A,2 ; ПРИНЯТО 2 БАЙТА ESC,'Y'
JR SETESC
; ----------------------------------------------
COD27: LD A,1 ; НАЧАЛАСЬ ESC-ПОСЛЕД-СТЬ
JR SETESC
; ----------------------------------------------
ESCRES: XOR A
SETESC: LD (ESC_F),A
RET
.
[свернуть]
Кажется Вы выводите звук по INTE ?
Т.к звук в программах РК86 задействован слабо и качество его никудышное, я лично не планирую возиться со звуком по EI/DI на выходе INTE, т.е делать аппаратный эмулятор звука по схеме ОРИОН-СЕРВИС. Я собираюсь иметь звук по 'OUT FF', т.к тогда проще всего переделывать звуковые программы РК86 для Z80.
Меня интересует список игр, которые не работают на Z80, т.к мне надо адаптировать все игры РК86 для ИРИШИ, причём так, чтобы это работало как на КР580 так и на Z80.
Кроме меня никто этого не делал, а я это очень давно сделал. Там не только убрал команды вызывающие несовместимость с Z80, но и убрал работу с сигналом READY (готовность эмулируется из сигнала INDEX). Я ранее публиковал готовый листинг версии RK-DOS для Z80 в варианте для ОРИОНА.Цитата:
Сообщение от Vladimir_s
Чтобы это работало на РК86, надо сменить адреса размещения ДОС (на E000) и базы служебных ячеек (на 7600) и в одном месте вернуть команду инициализации ВГ75. Больше ничего менять не надо, т.к это чисто текстовая программа. Т.е надо изменить 2 цифры и вставить 2 строчки текста.
Если ещё сами не сделали и не хотите этим заниматься, то мне не трудно это для Вас сделать (тем более самому это может пригодиться, если я найду исправный НГМД, контроллер есть, а исправного дисковода нет, все 6 сдохли). Но сначала надо странслировать для ОЗУ и всё проверить. И только, потом странслировать для ПЗУ и прошить. Глупо сразу прошивать ПЗУ. Т.е, если хотите, я Вам странслирую версию RK-DOS для работы из ОЗУ и когда Вы её проверите, то можно странслировать версию для прошивки в ПЗУ.
Когда переделываете ROM-BIOS РК86 для Z80, не обязательно сразу прошивать его в ПЗУ. Гораздо разумнее сначала проверить работу новой версии ROM-BIOS в эмуляторе B2M. Для этого в конфигурационном файле РК86 достаточно указать, что процессор Z80.
NB: Новая версия эмулятора B2M (декабрь 2016) при эмуляции РК86 - не может работать со старым каталогом 'Radio', т.е недостаточно скопировать файл EMU.EXE - надо брать весь новый архив целиком. Кроме того, благодаря эмулятору можно понять какие программы РК86 не работают с Z80. К сожалению, РК-КНГМД эмулятор B2M не эмулирует и проверить RK-DOS в эмуляторе нельзя.
Читали ли Вы исходники Монитора в книге Miller, Alan 8080/Z80 Assembly Language, techniques for improved programming ?
Как я мог это читать? Ведь когда я изучал ассемблер в конце 80-х Интернета не было. Но если Вы мне скинете ссылку, то охотно прочитаю. Вражеский язык не является проблемой. Но зачем такие наводящие вопросы, ответы на которые ясны? Проще сразу написать в чём суть, чтобы не тратить трафик (у меня не безлимитный Интернет).Цитата:
Сообщение от Kolk
Я вообще-то имел в виду сейчас. В Киеве я читал ее в 1988 в бумажном виде. И в последующих правках Монитора применял. В поиске Google качается с archive.org https://archive.org/download/8080_an..._and_Sons.djvu или https://archive.org/download/8080_an...y_and_Sons.pdf
А суть в обсуждаемом hexprint, я его оттуда брал. Поэтому и спросил. Скорее всего, этот вариант ходячий, и мог быть найден в другом месте или переизобретен. А вообще, Монитор РК сильно ужимается выносом в подпрограммы дублирующего кода и повальным IN/OUT (к сожалению, непригодно для Z80).
Оно в конечном итоге так и есть. Я в оболочке своего FDOSa прятал курсор так - записывал в последнюю доступную для монитора ячейку код 8F (черные символы на черном фоне), а потом с помощью директивы F818 (1BH,59H,38H,5EH,0) помещал туда курсор, который становится совершенно невидимым. Так вот с Z80 курсор хаотично прыгал по левому краю экрана. Ошибку я начал искать естественно с F818, где переход на п/п вывода символа с аккумулятора, ну и F809.
Нет, у меня стоит ВИ53. И прекрасно выводит звук.
Я думаю это многим будет полезно. Так что заранее благодарен.
- - - Добавлено - - -
И да - в этих же адресах то же самое нужно править в Апогее.
- - - Добавлено - - -
В каких адресах?
- - - Добавлено - - -
У меня на плате предусмотрена возможность включения как ВМ85, так и Z80. И на них нет вывода INTE.
Привожу перетранслированный для Z80 ROM-BIOS РК86. Здесь более 120 свободных ячеек. Сам код почти оригинал. Если выкинуть из монитора никому ненужные зачатки отладчика, то освободится еще 20-30 байтов. Если флаг ORIG поставить =0, то курсор большой. Но проверить это можно только в реале, т.к эмулятор B2M не точно эмулирует вывод курсора. Данная версия не проверена в реале, а только в эмуляторе B2M с config-файлом РК86 изменённым для Z80.
Речь шла о схеме ловушке, которая используя сигнал /M1 и биты данных, отлавливает команлы EI и DI, соответственно выставляя триггер. Эта схема входила в вариант установки Z80 на ОРИОН от МП ОРИОН-СЕРВИС, позволяя слышать INTE звук на Z80.Цитата:
Сообщение от Vladimir_S
Странный вопрос. Странслировать можно для любого адреса. Изменить цифру в тексте не проблема. Но для совместимости с программами для RK-DOS РК86 ничего изменить нельзя - совместима будет только RK-DOS на E000 (в ПЗУ) с рабочими ячейками ДОС в области 7600H. А для проверки дискетных подпрограмм - годится любой адрес в ОЗУ (например 6000), переделывать внешние SYS-команды для проверки не требуется, т.к команды SAVE, LOAD внутренние.Цитата:
Сообщение от Vladimir_S
Вообще-то РК86 и не может выводить чистые тона, только хриплые. Так как каждые 64 МКСЕК ПДП рвёт вывод звука на 45 МКСЕК. Чтобы программно вывести чистый тон на РК86 надо остановить ПДП (экран погаснет) и регенерировать динамические ОЗУ программно. А вот на ОРИОНЕ аппаратный эмулятор INTE для Z80 работал отлично, выдавая чистые тона.Цитата:
Сообщение от Vladimir_S
Возможно, что я сделал фатальную ошибку при замене на JR-команды. Но изменений в коде я не делал, лишь заменял на JR и переносил куски кода, так что вероятность этого не очень велика.Цитата:
Сообщение от Vladimir_S
Хотелось бы знать подробности о Вашей ДОС, какое железо, принцип работы и используемые подпрограммы ПЗУ. Используются ли п/п-ммы работы с МГ-лентой?
Не могу проверить ROM-BIOS для Z80 в реале (нет такого железа), а в своём эмуляторе РК86 на ОРИОНЕ проверить ROM-BIOS нельзя, т.к он эмулирует КР580 и не допускает использования произвольного кода ПЗУ F800. В эмуляторе B2M даже с конфигом для Z80 также проверить нельзя. Т.к директивы загрузки не работают и программы для проверки не загрузить. Потому что эмулятор B2M жёстко привязан к коду базового ПЗУ F800. Если подпрограммы RDBYTE (FB98) или WRBYTE (FC46) сдвинуть хотя бы на один байт, то при старте директив I или O произойдёт улёт. Причём нельзя сдвигать не только эти входы, но и ещё какие-то другие (долго выяснять какие именно).
Тут нужно знать историю возникновения этой ДОС - я вначале хотел замутить ее на AT29C040, но у некоторых форумчан их не оказалось и тогда остановились на AM29F040. Формат записи файлов как в ОРДОС. Одна микросхема на плате (INT), другая подсоединяется к порту (ЕХТ). Вначале все управление было через командную строку, затем я написал ЧБ оболочку, а потом и раскрасил ее.
http://zx-pk.ru/threads/26099-radio-...l=1#post891189
Перехват этих процедур тоже задан в конфиге, это можно убрать, но тогда придётся грузить так-же долго, как и на реальном РК. Автоматическое конвертирование .rk файлов в эмуляторе есть: нужно только при включении "воспроизведения" на тулбаре выбрать не .wav, а .rk. Правда там скорость фиксированная, подходящая для стандартного РК, так что для Z80 нужно будет поиграть с константой чтения.
Посмотрел скрин-шот Вашей цветной оболочки для ДОС. Цвет на РК86 очень впечатляет. Увы у меня никогда цвета на РК не было (т.к монитор был монохром). А атрибут инверсии (по журналу 'Радиолюбитель' 1993) использовал. Но в итоге отказался от использования атрибутов, в пользу более простого решения, которое не только более удобно для программиста даёт инверсию, но и даёт нормальную псевдографику, что не менее важно. У меня тоже есть оболочка для квазидиска в 64К (из 2-х 62256, подключенных через ППА), причём с рамочками и окнами. И всё достигнуто благодаря наличию альтернативного фонта (расход деталей - кусок проволоки 10 см). А атрибут инверсии RVV выгодно использовать для переключения фонтов. Трёх остальных атрибутов (HLGT,GPA1,GPA2) хватает на 8 цветов.Цитата:
Сообщение от Vladimir_S
В Вашей оболочке желательно было бы изменить режим дисплея, точнее изменить число линий растра на символьную строку. Сделать 8 линий растра вместо 10. Это позволяет выводить вертикальные линии без разрывов. При этом, при числе строк в 25, экран на 20% плющится по вертикали, но зато тогда можно выводить 28 строк и они будут видны. Чтобы избавиться от 2-х пустых линий между строками, есть и другое решение. Можно прошить в ПЗУ вместо фонта 6*8, фонт 6*10, что надо было сделать еще в 1988.
Можно сделать вывод и в 32 строки, но тогда экранную область придётся перенести в иное место. Если оставить экран в вершине ОЗУ, то бОльший размер экрана затрёт служебные ячейки ROM-BIOS (в области 7600) и подпрограмами ПЗУ нельзя будет пользоваться. В этом случае придётся в программе иметь копию стандартных подпрограмм ПЗУ F800 в области ОЗУ. И это выгоднее, чем делать как делают графические РК- игры, которые переносят экран ниже служебных ячеек 7500 (оставляя 7500...7600 для стека). Выгоднее потому-что для оболочки тогда остается всё ОЗУ за вычетом большого экрана и размера стандартных п/п-мм ПЗУ (это менее 1 кб кода). А в случае переноса экрана ради сохранения ячеек 7600 и возможности вызывать стандартные п/п-мы ПЗУ, свободное ОЗУ оказывается на 2 кб меньше. Что сокращает буфер копирования, который и так при размере оболочки в 7 кб (10 кб в случае CP/M и RK-DOS) маленький, что сокращает скорость копирования.
Для меня таких проблем не было, т.к на РК86 я всегда имел самую разумную доработку РК - дополнительное ОЗУ в области 8400...BFFF, т.е 15 кб. В котором прокачивались две страницы доп.ОЗУ по 15К (это ОЗУ просто открывается при РУ5-тых, а при РУ3-тьих ставится 1 корпус 62256). Без этого нельзя иметь ни пригодную к использованию CP/M, ни РК-ДОС с размером более 4К. Поэтому, если надо расширить экран в НОРТОН-е, то его выгоднее перенести в верхнее ОЗУ, где экран не мешает ни служебным ячейкам и не сокращает ОЗУ для буферов НОРТОНА.
Извиняюсь, что чуть не по теме, но хочу рассказать о моём представлении идеальной архитектуры для РК86, реализуемой на базовой плате за 1.5 часа работы паяльником (у меня почти всё это на плате уже давно реализовано)
Планирую иметь на своём РК86 Z80 и ОЗУ 94/124К следующим образом. Две пол-банки по 32К в адресах 0...7FFF на РУ5-тых и еще 30К на 62256 в окне 8400...BFFF. Но надеюсь, что мой РК86 потянет целых 2 штуки 62256 (или W24257) напаянные в 2 этажа. В РК86 всякая доп.нагрузка шины чревата большими проблемами с надёжностью. Но т.к дисковода у меня уже нет (все сдохли), то и РК-КНГМД подключать не надо, за счёт чего я поставлю 62256 (она уже ранее стояла на моей плате РК86 и панелька 28-ног распаяна).
Отчего я и надеюсь, что мой РК без КНГМД потянет на шине ещё две 62256. Конечно, при наличии буферов для РУ5-тых проблемы с перегрузкой шины отпали бы. Но увы, пока не нашлось ни одного крутого аппаратчика, который бы поставил в РК86 буфер для ОЗУ. Что собственно говоря должны были сделать сами авторы РК86, если были они не увлекались "фатальной минимизацией". Две штучки 589АП16 не намного увеличили бы стоимость РК86.
Цельно-полубанковая коммутация тоже удобна, т.к тогда программа работающая во второй пол-банке может использовать все 32К (а при дальнейшем развитии этой идеи и 64К). Экран отображается из пол-банки 0, а программа работает в пол-банке 1.
Без наличия Z80 реально поддержать такую архитектуру программой в ПЗУ нельзя, т.к там просто нет места. Но при наличии Z80 в ПЗУ освобождается 150 байт, куда без труда "засунется" всё что надо. Теоретически РК86 допускает установку второго ПЗУ на F000, но практически это неразумно, т.к нагружает шину и фатально снижает надёжность.
Как я понял, про то почему не работает предложенный ROM-BIOS для Z80 пока информации нет.
Сообщите про Вашу клавиатуру. Вдруг Вы используете ПЛИС, которые привязаны к входным точкам в ПЗУ. Такой метод подключения IBM клавиатуры тоже возможен. Тогда ПЛИС контроллирует доступ в адреса 8000...83FF и дополнительно контроллирует входные точки внутри ПЗУ.
Нашёл в конфиге РК86 такие строчкиЦитата:
Сообщение от B2M
Как задать начальный адрес п/п-мм RDBYTE и WRBYTE из этого ясно. Но зачем указан интервал. Как я понял в этом интервале в РК86 размещаются именно эти подпрограммы (и никакой другой код с другим назначением). Но ведь указанные области перекрываются. Если перехватывать интервал, то как Вы отличаете когда ввод, а когда вывод? Я в подобном случае перехватывал только вход, а выход из процедуры (чтобы закрыть файл) делал по входу PUSK_VG (0FBCEH - это куда делается JMP из входной точки F82D).Код:cas : tape-recorder {
biproc[FB98-FCA4]=rk
boproc[FC46-FCA4]=rk
То есть, если я делаю ROM-BIOS для Z80, то чтобы можно было его проверить в эмуляторе, я обязан полностью повторить код из ПЗУ РК86 (хотя теперь могу размещать RDBYTE и WRBYTE в любых местах ПЗУ).
Но что произойдёт, если мне надо (из экономии для JR-команд) вставить в этот интервал другую подпрограмму. Что, тогда по по входу в эту подпрограмму также произойдёт вылет в диалоговое окно выбора файла?
Интересно каким образом будет читаться звуковой WAV-файл (пусть и медленно), если я уберу эту строчку из конфига? Вероятно, тогда отлавливаются все чтения порта C (где бит магнитофона, а также биты отдельных кнопок УС, СС, РУСЛАТ), но как вы узнаёте, что читается МГ, а не спец.кнопки клавиатуры?
Про возмоэность грузить реальные звуковые файлы *.WAV и даже DAT-файлы в формате файлы *.rk (это те, что почти GAM-формат Пыхонина, но без первого байта E6) я даже и не знал, т.к никакого ДОС-текста по эмулятору B2M до сих пор нет.Цитата:
Сообщение от B2M
Я понял, что как-то эмулируется чтение с МГ (иначе как бы программы попадали в ОЗУ в бездисководном варианте), и попробовал по директиве I грузить GAM-файлы. И это получилось. Я и решил, что эмулятор поддерживает GAM-формат.
У меня есть записи программ РК86, СПЕЦИАЛИСТА и ОРИОНА в WAV-формате с частотой дискретизации 44 КГЦ. Могу ли я их загрузить в соответствующие эмуляторы B2M?
Мой РК собран в корпусе Апогея м соответственно клава у него родная. Я схему так до сих пор и не нарисовал, только начал. Но некоторые доработки там уже есть, так что предварительный вариант могу выложить.
Изначально планировалось, что будет указываться начало и конец процедуры, т.е. второе число - адрес команды RET. Но на практике оказалось, что нужно не только вернуться из процедуры, но иногда и установить флаги. Так что можно считать, что второе число - это просто адрес, куда произойдёт переход после перехвата. Сигнатура после знака "равно" означает, для какого компьютера предназначен перехват, т.к. могут использоваться разные входные и выходные регистры (как правило, либо А, либо С, на входе А может содержать параметр для поиска синхробайта).
- - - Добавлено - - -
biproc - ввод байта, boproc - вывод байта. Есть ещё tproc для пропуска пилот-тона, iproc и oproc для перехвата ввода и вывода блока (сначала был именно такой перехват).
Нет, но нужно соблюдать соглашения по передаче параметров, ну и соответственно указать адрес процедур в конфиге.
Просто изменить адреса в конфиге. Либо вообще удалить эти две строки.
- - - Добавлено - - -
Есть ещё контроль байтов по указанным адресам. Это когда БИОС выключается и на его месте оказывается ОЗУ или другая страница БИОСа. Пример можно подсмотреть в конфиге Вектора: строка, где .check="проверяемые байты".
- - - Добавлено - - -
Вообще, если я хочу поэкспериментировать с конфигом, я просто копирую его под другим именем. Он также появится в списке при запуске эмулятора.
Это-то как раз сразу ясно. Я тоже так делал, позаменяв в конфигах слово 'K580wm80a' на 'Z80' и слово 'BIOS.ROM' на 'ZBIOS.ROM' и записав результат в другой файл.Цитата:
Сообщение от B2M
Спасибо за разъяснение. Меня ввело в заблуждение тире, что указывает на интервал адресов, а на самом деле логичнее иметь там запятую.Цитата:
Сообщение от B2M
Не нашёл в списке конфигов варианта РК86 с РК-КНГМД, а ведь это основной вариант. Это варианты с ORDOS и ROM-диском - экзотические. А вариант с РК-КНГМД - основной, стандартный и всемирно распространённый вариант использования РК86. Почему-же он не поддерживается, тогда как экзотические варианты поддерживаются? А ведь эмуляция программного КНГМД намного проще, чем эмуляция БИС ВГ93. Да и на этом форуме все фанаты РК86 давно обзавелись РК-КНГМД.
Что Вы можете сообщить народу насчёт эмуляции РК-КНГМД и эмуляции ПЗУ в 4 Кб по адресу E000 в Вашем эмуляторе B2M? Нельзя ли это ПЗУ ввести без модификаций EMU.EXE, лишь за счёт изменения конфиг-файла? Если бы эмуляция РК-КНГМД была, то на ней можно было бы проверить версию РК-ДОС для Z80.
Кроме того, нельзя ли простой модификацией конфига ввести в эмулятор B2M ОЗУ по адресу 8400...BFFF. Пусть хотя-бы некоммутируемый кусок ОЗУ (т.е нет двух страниц ОЗУ в окне). Это уже было бы очень удобно и к тому же подтолкнуло-бы владельцев на открытие на своих реальных РК86 ОЗУ по этим адресам (а те у кого ОЗУ не на РУ5, а на РУ3, поставили бы в свои РК86 статическое ОЗУ типа 62256, W24257 или W24512)?
Вопрос про клавиатуру был, чтобы убедиться, что у Вас не клавиатура на ПЛИС, что могло бы стать причиной несовместимости. А раз работает обычный ППА и опрос клавиатуры программный (не эмулированный), т.е опрос делает сам процессор, то это не может быть причиной несовместимости с Вашей ДОС.Цитата:
Сообщение от Vladimir_S
Увидев схему я обнаружил там 8085 без клока. Непонятно зачем он, если есть Z80. 8085 это же тот же самый КР580, лишь под другим соусом. Я в курсе, что там есть 2 излишние команды RIM и SIM и один излишний выходной сигнал. Эти команды, если я верно помню, нужны для последовательного вывода. А нельзя ли применить этот выход как сигнальный, как применили выход INTE в КР580? С его помощью можно было бы быстро переключать полу-банки (например ОЗУ/ПЗУ).
Удобно наличие программно переключаемого клока 1.75, 3.5 и 7 МГЦ. Нет ли сбоев при программном переключении скорости? Для ускорения работы выгодно ВТ57 тактировать более высокой частотой.
Удивился, что ОЗУ на статике, а не на РУ5. Раз у Вас две 62256, то значит есть ОЗУ выше 8000 или же Вы используете две пол-банки по 32 Кб в адресах 0...7FFF. Интересно, как Вы используете это ОЗУ, в смысле какая архитектура его включения (понятно, что вопрос излишний, вероятно это уже описано на предыдущих страницах этой темы, но я пока не читал). С ОЗУ при архитектуре РК особо умного ничего не придумать, а вот огромное ПЗУ 64 Кб включаемое в окне 32К это, видимо, удобно. Интересно, это в нём Вы храните файлы в формате ORDOS? Я бы большое ПЗУ в РК86 стал прокачивать кусками по 8 Кб в окне E000...FFFF.
Я в начале 90-х тоже пытался поставить 62256 в РК86, чтобы избавиться от сбоев ОЗУ. Но у меня ничего не получилось. Сам РК работал, но изображения на экране не было. Пришлось выделять для экрана область 76D0...7FFF из РУ5-тых, а остальное ОЗУ делать из 62266. Но это тоже оказалось не лучшим решением, т.к полно игр, которые меняют адрес экранной области и оттого не работали.
Просто это у меня синтаксис конфига такой. После имени идёт либо другое имя через точку .field, либо индекс в квадратных скобках, либо диапазон индексов через тире.
Я пробовал добавить, но с наскоку как-то не вышло, и я оставил эту идею. Не всегда то, что проще аппаратно, легче реализовать в эмуляторе.
ПЗУ можно добавить в конфиге, а эмуляция НГМД потребует модификации эмулятора.
Можно. В секции CPU обычно указано mem=mm, то есть за раскладку памяти отвечает секция mm (обычно типа MemMap). Вот в ней и задаётся карта памяти. Первый индекс - номер карты (для тех компьютеров, где карта памяти переключается), второй - диапазон адресов (младший байт не учитывается, т.е. нужно задавать в виде xx00-xxFF). То есть нужно добавить памяти (допустим она будет называться mem8400):
а в секции mm добавим строкуКод:mem8400 : Memory {
size=3C00
}
Ну и надо будет убрать или скорректировать адреса устройств, которые попадают в эту область.Код:map[0][8400-BFFF]=mem8400
barsik, Пзу делится пополам потому, что при снятой перемычке П1 это Апогей, а при установленной РК86. И в РК86 в ПЗУ Е000-EFFF ДОС2.9, D000- DAFF FDOS. Ну и пока все. Насчет ОЗУ - D4 по схеме 0000-7FFF, а D5 в режиме Апогея 8000-ЕAFF, А в режиме РКшки 8400-9FFF и А400-BFFF.
Т.е. D4 и D5 расположены линейно друг за другом.
- - - Добавлено - - -
Пробовал пока только директивой М, но думаю проблем не возникнет. С чего бы вдруг сбои появятся?