Ну вот, результаты начали проявляться.
Надпись на экране соответствует поставленной цели![]()
Ну вот, результаты начали проявляться.
Надпись на экране соответствует поставленной цели![]()
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Да, с внешним.
С буквами есть косячок, объясняется моей ошибкой. Видеобуфер не успевает в одном такте и записать байт и вывести бит на экран. Но это лечится или прямым выводом первого бита (минуя буфер) или предварительным чтением байта и выводом его в следующем знакоместе. Интересно, а как это сделано в оригинале?
Добавлено через 6 минут
А теперь, господа, нужна ваша помощь.
Прежде чем переходить к 128кб, мне нужно точно знать работу с портами ВВ55.
Как я понимаю, никакого суперпрограммирования ВВшек там не производится? Есть ли смысл запихивать в альтеру образы ВВ55 (нехилые кстати) или можно просто приспособить несколько регистров для работы конкретно с ROM-диском и клавиатурой?![]()
Последний раз редактировалось Ewgeny7; 24.03.2009 в 15:38. Причина: Добавлено сообщение
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Для нескольких ВВ55 "внутри CPLD", думаю, тупо не хватит внешних ножек матрицы (наружу - 24 ноги для каждой эмулируемой ВВ55).
Суперпрограммирования не производится.
Однако порт F400 в зависимости от примененной схемы включения клавиатуры (rk86/ms7007) настраивается на прием\передачу по отличающимся портам (т.е. в одном случае: A-передача, B-прием, а в другом зеркально: B-передача, А-прием), порт С используется на разных линиях - при надобности 3-х линий, выводить придется все 8. При этом ПО проверяя содержимое конфигурационого регистра (F403) определяет тип клавиатуры.
Аналогично порт F500 для работы c ROM-диском и он же для работы с IDE настраивается на прием\передачу по отличающимся портам (аналогично как для клавиатур).
Т.е. для каждой из ВВ55 тремя обычными регистрами (+схемой их выборки) не обойтись по-любому, надо как минимум четыре (что уже нивелирует замену ВВ55 на набор из нескольких мелкосхем, не говоря уже о потере универсальности) и при этом двунаправленных.
В принципе, при некоторой потере универсальности решения можно договориться "используем только клавиатуру рк86" - тогда надо только 19 ножек CPLD (матрица 8х11) и можно сделать на регистрах внутри CPLD. Чтение из порта F403 используют только для определения клавиатуры ms7007 по схеме Сугоняко, для рк86 прокатит если этого регистра вообще не будет, и читаться из него (как и любого отсутствующего регистра) будет 0FFh.
Для ППА ROM-диска / IDE такое не прокатит - надо ставить "честный" ВВ55.
Последний раз редактировалось Error404; 24.03.2009 в 16:32.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
В упрощенном виде так.
Полосы исчезнут в 128кб варианте.
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
Если ограничиться только установкой режимов ввод/вывод и отбросить режимы со стробированием приёма/передачи, то ВВ55 должен быть не такой уж и большой. Ну, ещё наверное нужны команды установки битов порта С. Остальное вроде-бы не используется.
ВВшки в альтере не требуют внешних ног...
РОМ-диск, например, располагается в той же ПЗУ что и монитор. Просто при обращении к портам ВВ будем выставлять адрес с выходов ВВ и читать данные в порт ВВ.
Клавиатуру я пока ставлю "реальную" - контроллер Камиля с живой ВВ55. Позже запихну это хозяйство на кристалл, исходники (требующие переработки) есть.
Добавлено через 28 минут
Спасибо, учтем.
Последний раз редактировалось Ewgeny7; 24.03.2009 в 16:57. Причина: Добавлено сообщение
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
В принципе, можно IDE пересадить на F600 ("порт принтера"). В софте поправить equ-константу да перекомпилить
Просто мне казалось, что ORDOS и соответственно ROMDISK настолько малоинтересны, что я изначально использовал порт F500 под что угодно кроме ROMDISK-а, а третьей ВВ55 у меня на реале не было вовсе.![]()
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Ну вы блин, даете
Разумеется, надо разделить. Я на "Скорпионе" без РОМ-диска не представляю себе работы. А для "карманного" Ориона ROM (Flash)-диск тем более актуален. Я даже хотел ввести еще один порт для переключения выбора диска.
Сделай пжжжалллста!
Добавлено через 23 минуты
Разогнал до 10Мгц (на внеэкранной области). Курсор просто колбасит
Нужна ли такая скорость? или ограничиться 5Мгц?
Если верить симулятору, то при внешней памяти 70нс можно попробовать гнать до 20Мгц.![]()
Последний раз редактировалось Ewgeny7; 24.03.2009 в 22:09. Причина: Добавлено сообщение
ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
Speccy-2007 128/AY/TR-DOS
Сайт с документацией к "Scorpion ZS 256"
ОК, про IDE буду иметь ввиду.
Но для "порта принтера" F600 все равно надо подключать "честную" внешнюю 82с55. Хошь - для принтера, хошь - для орионовского программатора ПЗУ, хошь - для IDE.
Что касается ROM-disk-а, я рассуждал так: В отсутствии НГМД он теряет ценность, т.к. содержимое квазидисков ОЗУ (при работе с ORDOS) просто некуда сохранить, и неоткуда загрузить. Если же у нас в качестве "устройства куда сохранить" уже есть дисковод или IDE-устройство (например CompactFlash), то с него можно сразу грузить CPM - куда как лучшую ОС. ORDOS же в этом случае (т.е. и ROM-disk) представляет только естественнонаучный интерес - типа "вот оно как было по бедности то".
Большое ПЗУ (а еще лучше - FLASH) с выборкой более 2к можно более рационально применить, например адаптировавав CP/M для загрузки из ПЗУ, а возможность работы с НГМД и IDE в ней останется.
Более того, такие разработки уже были (хотя и не получили распространение из за отсутствия "в массах" больших ПЗУ), и в архитектуре Z80Card-II даже был порт страниц ПЗУ - порт 0FCh.
Можно будет сделать переключатель (аппаратно или программно каким-то портом)? По-умолчанию 5MHz (с Wait или "честных"), при включени Turbo - гнать по максимуму. Это нужно т.к. большинство ПО не умеет подстраиваться на частоту, и ввод с клавиатуры на высоких частотах станет нереальным. В наиболее продвинутой версии CP/M Ориона (которую надо откуда-то еще загрузить, т.е. только в варианте с НГМД или IDE) есть драйвер, где ввод с клавиатуры синхронизируется на прерываниях 50Гц и не завивит от частоты CPU. Для такой ОС Турба категорически приветствуется. Но это только для архитектуры Z80Card-II, ее пока как я понимаю еще нет. А в стандартном Орионе прерываний нет вообще (зато есть тупой звук по EI/DI - зла не хватает)
Чуть не забыл - на частотах более 5МГц возможно будет не успевать контроллер клавиатуры PS/2 (если используем версию caro на основе меги48). Хотя это в принципе решаемо вводом нескольких тактов ожидания (/WAIT CPU) при обращении на чтение к порту клавиатуры.
Последний раз редактировалось Error404; 25.03.2009 в 12:34.
Лучше сделать и жалеть, чем не сделать и жалеть.
Некоторые из моих поделок тут: https://github.com/serge-404
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)