Я проводил ЛУТом 2 дороги между пинами 2,5/2,54 и еще оставалось место под пятачки.
Вид для печати
Я проводил ЛУТом 2 дороги между пинами 2,5/2,54 и еще оставалось место под пятачки.
Ну профи.Вот как это сделать если тех не налажена. И принтеры последние лоу кост можно уже в мусору выбрасывать
- - - Добавлено - - -
НР P1102. Снова. Мя понесло. Ну, почти в тему.
Наболело. Это чудо даже поджаривает криво:D
- - - Добавлено - - -
Отсюда вывод китайцы нам помогут, с двумя дорогами между ногами. НР, ху.. , зажразились
- - - Добавлено - - -
Точно. Набираю нр украина. Захожу на сайт. Жму поддержка. И я в послан в лес). Вот такая сказка большие детки.
:v2_dizzy_roll:Z80(КР1858ВМ3) заработал ,пока 2Мгц чистая картинка ,4Мгц с мусором . :v2_dizzy_roll:
К выходным надеюсь доделаю . Ждите отчёт.
Вот обещанная схема CPU Z80 https://yadi.sk/i/yY08Bszoxqpcg в схеме оснвной платы небольшие изменения для быстрого перехода с i8085 на Z80 и обратно.
Видео (не сжато и не обработано . Как есть) работы на Z80 2/4/8 Мгц с прошивкой на 16Мгц https://yadi.sk/i/OtaWKlYlxqpgk
Отключаю Z80 подключаю i8085 https://yadi.sk/i/KZqCIa3Gxqpjy
На 8Мгц ВВ55 уже не работают :v2_dizzy_facepalm:.Так-же бейсики на Z80 не пашут . Нужно вводить порт для управления этим богатством (TURBO , BTURBO , 384/512) и порт для чтения конфигурации чтоб софт новый если будет мог понимать с чем имеет дело (TURBO , BTURBO ,384/512 , Z80 ,i8085 ,ВМ80). Я считаю лучше вынести новые порты лучше на IN/OUT так конфликта не будет со старым ПО и доступ к портам будет из любой конфигурации STD или MX/MX2.
- - - Добавлено - - -
И ещё думаю не лишнее будет добавить переключалку экранных областей .
- - - Добавлено - - -
Смотрица красиво . Сигнальные дорожки согласен можно и по две протянуть , а питание надо как можно толще . Чтоб не ловить глюки по питанию как на плате MX2.
Посмотрел схему CPU Z80. Неиспользуемые входы /NMI, /INT, /WAIT и /BUSRQ может подтянуть к питанию?
Да конечно резисторы дорисую . На макетке они стоят . Так что всё таки на счёт портов ?
Зачем вводить порты? Я не думаю, что в линейке времени так уж необходимо меня скорость или размер экрана. Поставить жёсткие переключатели. В Специалисте МХ2 переключатель STD/МX сделан программно, правда толку от него? При включении перейти из STD в МХ и всё. Для чего? Чтобы было? Я старонник жёстких режимов. А вот определение типа микропроцессора есть программная, где-то у меня коды завалялись.
На дворе уже 1/5 21-го века ,а Вам всё тумблеры-джамперы :v2_cry: .
Конечно существующий софт понятия не имеет о TURBO и 512 , и работает из расчёта 2Мгц . Ему по барабану на чём его запустили (8080 или 8085) . Если поиграться в старые игрушки то можно и джамперами TURBO щёлкать , типа заставки быстрей прогонять . Я же хочу дать максимум возможностей и комфорта программистам . Иначе зачем тогда все эти потуги ?
FIFAN , я ужеписал http://zx-pk.ru/threads/25424-spetsi...l=1#post881336.
А под Специалист уже почти никто не пишет , только потому , что ни кто нового не изобретает за последнее десятилетие (кроме Vinxru и HardWareMan ). Будет новое/современное/интересное - несколько красивых демок с демонстрацией возможностей (расчитываю на Вас) и народ подтянется и софт появится или ремейки с других компиков.
Ну-ну, за последние несколько лет у меня сложилось противоположное мнение.
Если изобретаемый велосипед не будет с квадратными колесами, то с ПО проблема решаема. Просто писать надо не под Спец, а надо Спец влить в семейство где что-то еще пишут. Как вариант - FUZIX/UZIX. Но для них железо должно уметь Z80 с вменяемой частотой (уж никак не 2Мгц), много ОЗУ и маппер ОЗУ с большими страницами - минимум по 32к, а лучше по 60к (или их разновидности с несколькими последовательно расположенными "окнами" меньшего размера). В этом случае единократно адаптируется ядро, а дальше и готовое со стороны приходит, и сам пописываешь и отдаешь людям - двойное удовольствие.
Запугали автора компьютера все мы. Тьфу, тьфу, чтоб не сглазить. SYR-ALEX, как дела?
Прорабатываю варианты с портами по IN/OUT для трёх процессоров . В STD и в MX/MX2 будет порт SYS на чтение и на запись 1-н адрес возможно 00H .
- - - Добавлено - - -
В альтернативном мапере возможно реализовать любую конфигурацию . Z80 на прошивке атмеги на 16Мгц работает 2/4/8Мгц с экраном 384х256. На 20Мгц соотв.2,5/5/10 с экраном 384/480х256 . На 22,118 МГц 2,76/5,529/11,059 с экраном 384/512х256. С частотами проца по-моему всё в шеколаде . Опишите более подробно желаемую конфигурацию памяти.
В Орине для UZIX применялась конфигурация маппера памяти с окном в 60к, выше 60к - "склеенная область" common (собственно, конфигурация стандартная для Ориона из журнала Радио 90/1), насколько я помню, и в FUZIX автор тоже начинал именно на такой же конфигурации (а сейчас их там уже более двух десятков вариантов для разных платформ).
А можно еще в двух словах про Мегу и зависимость разрешения дисплея от ее частот (можно ссылкой на посты ранее)? Дисплейное ОЗУ этого клона в общем ОЗУ или вынесено под управление Меги? Что-нибудь еще повешено на Мегу (например, обслуга SD-карты)?Код:CP/M 64k bank Subsequent 64k banks
FFFF +------------+ +------------+
Common | Common | | Common |+
F000 +------------+ +------------+|+
| CP/M | | |+|+
+------------+ | Process ||+|
Banked | Kernel | | Code |||+
| Code | | & Data ||||
| | | ||||
0100 +------------+ +------------+|||
| Reserved | | Reserved |+||
0000 +------------+ +------------+|+|
+------------+|+
+------------+|
- - - Добавлено - - -
Вот кстати говоря, обратил внимание что FUZIX портирован именно на те процы, которые ты ставил в "миникомп на Z80". Если в твои компики ставить ОЗУ-ху на 512кб (что не сильно усложнит), то FUZIX там самое место.
Опять из Сябра, очередного клона Специалиста хотят сделать велосипед, потеряв неповторимость. Сейчас ПО на Специалист совместимо с Сябром и наоборот, а скоро возникнет обратная несовместимость. Печально.
СЯБР именно так и задумывался " лёгким движением руки ..." . Ставим любимый проц , мапер и входим в нирвану.
Портирование FUZIX и подобных систем только расширит ориал обитания СПЕЦИАЛИСТОВ . А про ПО именно для СЯБРа я ещё не слыхал :v2_dizzy_stupid:
ATMEGA88 в схеме https://yadi.sk/i/j_JhvOp3wY2CF СЯБРа U1 выполняет роль синхрогенератора ТВ сигнала , то есть заменяет родной синхрогенератор с разрешением 384Х256 при PCLK 8Мгц . На этой частоте картинка ровненько вмещается в экран ТВ. В прошивке атмеги на 16Мгц реализован только стандартный экран Специалиста с 9000H по BFFFH (мохром , цвет в теневом ОЗУ через порт) но можно добавить и ещё какойнебуть в пределах 384Х256 ( места во флеше ещё хватает ).В прошивке на 20Мгц PCLK уже 10Мгц , что позволяет вписать в ТВ экран 480 точек по горизонтали и в прошивке на 22,118Мгц PCLK равен 11,059Мгц это 512 точек . Стандартный экран 384Х256 присутствует во всех прошивках по указанному выше адресу . Дополнительные разрешения экрана я придумал сам они конечно же несовместимы со стандартным Специалистом так как перекрывают рабочие ячейки монитора . 480Х256 занимает 8400H-BFFFH и 512Х256 8000H-BFFFH . Экранные облости ростут в низ потому что BFFFH это самый верхний (последний) адрес ОЗУ для стандартного Специалиста 48К. Для сохранения совместимости решил добавить порт-переключалку экранных облостей на подобие Ориона-128 . О этом порте упоминал здесь http://zx-pk.ru/threads/25424-spetsi...l=1#post889717.
Для PC/2 и SD-карты опционалино используются две ATMEGA8 от VINXRU https://github.com/vinxru?tab=repositories.
Подробней о Специалистах у FIFAN http://www.spetsialist-mx.ru/
Архитектура СЯБРа позволяет встроенный STD (стандартный ) мапер заменить на альтернативный MX/MX2 или любую другую конфигурацию памяти и портов без перепайки и резания основной платы за счёт слотовой конструкции .
Для FUZIX конфигурацию понимаю так :CPU Z80, верхняя память (Common) F000H-FFFFH 4K общяя (не переключаемая) для всех страниц ОЗУ , порты на IN/OUT (fool RAM),ПЗУ одна из переключаемых страниц ,экранное (видео) ОЗУ следующая из перключаемых . То есть стр 0-ПЗУ ,стр 1-видео ОЗУ ,стр 2 и 2++ ОЗУ (Process Code & Data и Reserved).
Как то так?
Может, и порт тогда выбрать совместимый? 0FAh -
D0,D1 - номер экрана (0-3): 3=0000..3FFF, 2=4000..7FFF, 0=1=8000..BFFF,
D7 (0/1) - экран 384/512 точек по горизонтали
Да, примерно так.
Можно было бы сделать дополнительный порт (предлагаю 0F9h для совместимости) для страниц по 60к.
Конфигурация по сбросу - Специалист : страница 0 - {48к ОЗУ + 16к ПЗУ}. Работает всё штатное ПО Спеца. С MX видимо как-то посложнее, но принцип тот же - по сбросу режим полной совместимости.
Первая (и соответственно все последующие) запись в порт 0F9h включает в окне 0000...EFFF ОЗУ 64к-страницы, соответствующей выданному номеру порта страницы, а в области F000...FFFF - ОЗУ всегда одной и той же страницы (выбери сам из какой страницы удобнее) - то самое "склеенное ОЗУ". Надо ли делать возможность доступа к 4к-кусочкам из других страниц (которые "накрыты "склеенным") - не знаю, на пример на Орионе я при наличии такой опции ей пока что не пользовался.
Отдельно отмечу: даже в режиме full RAM (всё ОЗУ c "склеенными" верхними 4к), комп все равно остается полностью совместим с классическим Специалистом с той лишь разницей, что выше С000 не ПЗУ, а ОЗУ, в которое если программно скопировать содержимое тех ПЗУ, то пользовательские программы со Cпеца вообще не заметят разницы, зато в дополнительных страницах появляется возможность работы в CP/M и других ОС, которым нужно больше ОЗУ чем 32к. Уменьшается самое главное и почти никак не решаемое ограничение 8080/Z80 - борьба за ОЗУ в адресуемом мизере в 64к (которое в классическом Спеце еще и подрезали до 32к если вычесть экран).
Я правильно понимаю, что всегда надо два корпуса ОЗУ ставить (и тогда надо ставить 512к+512к)? Или это только для конфига MX (где нужна вторая страница ОЗУ на 64к + цвет)?
В МХ 64 кБайт - основное ОЗУ + 16 кБайт - ОЗУ цвета + до 512 кБайт - RAM-диск.
Жаль, конечно. Такая схема как у МХ для "многостраничных" программ, да еще с прерываниями, подходит плохо. Страницы по 48к оставляют мало места для "сплошного" кода (и их всего две), а страницы по 63,9 к имеют слишком малую область перекрытия ("склеенное ОЗУ" - 32байта) - в ней ни кода с серьезной логикой не поместить, ни стек. Максимум, переход на п.п. в другой странице или п.п. по доставанию байта из другой страницы (что видимо и делалось). Оптимально иметь "перекрывающуюся область" ("склеенное ОЗУ") в 1-2 килобайта. 4кб в добавляемом маппере я запросил для совместимости с Орионом (плюс там же выше - с F800 - будет эмулятор Монитора, опять же для совместимости, чтобы меньше кода адаптировать). А так то CР/M и Юзиксу для обслуги межбанка и прерываний хватает 1к в "склеенной области". Но если этого 1к CP/M хватает c запасом, то Юзиксу этих 1к уже впритык-впритык, часть неосновных обработчиков вынесена в ОЗУ доп. страниц.
А между тем CP/M на МХ есть, только вот мапинг его в описаниях я не встречал.
Error404, глупо, да. Я когда над МХ2 работал, думал что создателю МХа было бы проще все-же откусить под шлюз весь блок FFxx, таким образом, общее озу FF00-FFDF + FFE0-FFFF под порты. Это было бы полезнее в разы, чем тупо 32 байта. Но, у рамфоса там только "достать байт из другой страницы" и соответственно "положить байт в другую страницу". И из-за ограничения места - без учета номера страницы, хотя в коде есть поддержка до 16 страниц (как выяснил и подправил Vinxru).
Для обычной CP/M модель MX приспособить можно - код выполнять в странице эл.диска (любой из), а в страницу 48к (экран) лазить подпрограммой "положить байт в экран". Но не получится нормально сделать поддержку "межбанковый CALL/RET" и нормальную поддержку прерываний, т.к. стек в каждой странице обособлен (общая область мала), и придется часто запрещать прерывания, например каждый раз при выполнении подпрограммы "положить байт в экран", при скроллингах и т.п., а это большой %% времени для графического экрана. В-общем, надо немало выкручиваться, и не факт что все получится красиво.
- - - Добавлено - - -
Я уж не говорю про мелочи мелочи типа блочной пересылки за два LDIR по 128 байт (размер блока в CP/M), а не в цикле по-байтно где время пересылки этих же 128 байт больше на порядок (в случае если таки разместили драйвер или буфер в дополнительной странице).
Все в наших руках)
Стартовать нужно не по д хотелки MX. А Специалист дорабатывать в на ше время.
MX – это истрия
И комерческая жилка. Новый бизмесмен (а почему не стартонуть, пипл хавает). Хи
Набросал предварительную схемку под FUZIX https://yadi.sk/i/cXL_NbHGysA6b
Порты повторяют адресацию Специалист MX только по IN/OUT .
FCH управляет памятью:
D0 - ROM\RAM
D1 - EXT_RAM ON (1)
D2 - A16 EXT_RAM
D3 - A17 EXT_RAM
D4 - A18 EXT_RAM
D5 - A19 EXT_RAM
D6 - A16 ROM
D7 - A17 ROM
FAH управляет экранами :
D0 - SCR0
D1 - /SCR1
D7 - 384\512
F8H управляет цветом.
ECH 580ВИ53.
E4H 580ВВ55 (программатор SD-контролер VINXRU)
E0H 580ВВ55 (клавиатура)
Карта памяти FULRAM:
0000H - EFFFH переключаемая область .
F000H - FFFFH склеенная находится в основном ОЗУ СЯБРа .
В переключаемой области (размер страниц 60К) по сбросу сразу работает ПЗУ . Далее по надобности софт выберает ПЗУ - ВИДЕО ОЗУ - РАСШИРЕННОЕ ОЗУ. ПЗУ 240К (4 стр. по 60К) . Если конечно столько нужно ? ВИДЕО ОЗУ на основной содержит 3 экранных области . РАСШИРЕННОЕ ОЗУ 1М (16 стр. по 60К)находится на плате мапера ,в принципе может иметь любой размер кратно 60К.
На первый взгляд, удобно, а там жизнь покажет. Все же идеология позволяет вносить изменения.
Такой вопрос: какие блочные устройства (носители) имеются/планируются? Желательно приличных размеров (десятки мегабайт). SD/IDE?
SD от vinxru же ЕМНИП работает через эмуляцию ввода с магнитофона с некой управлялкой? И не может считаться нормальным блочным устройством?
Еще такой вопрос: как адресуется базовая страница (где экраны)? Она в общем поле адресов A16_EXT_RAM...A19_EXT_RAM?
SD от VINXRU через магнитофон грузит короткий загрузчик boot.rks размером 100 байт, дальше магнитофон не используется . VINXRU прошивал его в ПЗУ тогда маг. вообще не используется . Обмен данными происходит блоками (по моему по 256 байт, если не ошибаюсь). Из носителей конечно SD .
Базовая страница - это ОЗУ на основной плате , она же видео ОЗУ и склеенная область , выберается по LD A, {D0=1,D1=0,D++=XX} OUT FCH . Но на мой взгляд её лучше использовать для видео и меж страничного обмена , а всё остальное в EXT_RAM (LD A, {D0=X,D1=1,D2 - D5 = номер страници EXT_RAM} OUT FCH).
Выложенная схема мапера не финалиная , отражат только концепцию , и конечно будет допиливаться .
Как то так.
- - - Добавлено - - -
По случаю появления новой конфигурации может и звук не на ВИ53 ,а на AY8912 или эмуляторе http://www.avray.ru/ru/ ?
По SD от Vinxru уточняю: работа с файлами, размер буфера ограничено регистровой парой (наверное 64 кБайт) - см. файл описания системы.
На счёт звука из AY8912. Как предполагается выводить звук уже написанный для ВИ53? Есть драйвер перекодировки?
Так как рассматриваемый мапер под FUZIX/UZIX наверное в этих системах нет поддержки ВИ53 , то AY вероятно будет более уместен . Всё ровно ПО новое адаптировать.
- - - Добавлено - - -
ВИ53 пусть останется в мапере МХ/МХ2.
Просто с точки зрения программирования (да и запоминания), неудобно иметь разный набор аппаратных портов для управления одними и теми же сущностями, удобнее использовать "сквозные нумерации" и унификацию портов, а уже в коде ПО делать карты памяти где будет указано что чем занято и куда коду лазить а куда - нет. Т.е. раз уж память в добавляемом режиме всегда представлена как 60+4, то и адресовать ее всю портом номеров страниц (0,1,2...) для всего имеющегося ОЗУ, а то, что в странице 0 еще и экраны - так это частности: средствами ОС промаркировать эту область служебной, как и области драйверов, процедур ОС и т.п. в программном маппере памяти (процедурах ОС).
Также, нет никакого удобства от хранения адресов расширенного ОЗУ (A16..A19) и адресов расширенного ОЗУ (A16..A17) в общем байте: биты придется выставлять по отдельности, а значит надо или порт делать читаемым (что на рассыпухе не экономно или требует применения ВВ55 вместо регистров как сделали на Орионе-ПРО), или хранить копию содержимого порта в ОЗУ. В обоих случаях любое обращение будет выливаться в "прочитали регистр/ячейку"->"наложили маску"->"сдвинули входящий 0-based адрес в требуемые биты"->"заORили c отмаскированным"->OUT. Т.е. вместо одного OUT это выливается в целую подпрограмму. Поэтому удобнее или два регистра (раздельно под адреса ПЗУ и ОЗУ). Либо что мне больше нравиться ввиду экономности - общий регистр расширенного адреса (страниц) и для ОЗУ и для ПЗУ (я бы предложил под страницы порт 0F9h для совместимости) - ведь расширенное ПЗУ и расширенное ОЗУ не включается одновременно (для их раздельного включения уже есть отдельные биты управления как я понимаю). Плюс остается опция увеличения памяти (ext.адрес становится 8 битным, а не 4)
Под регистр управления я бы предложил порт 0FBh для совместимости, в нем:
D7=1 и D5=0 (всегда ставить при программировании),
D6=включение прерываний {забыли же что прерываниями тоже надо управлять},
остальные биты использовать как надо для управления маппером Сябра:
D0 - ROM\RAM
D1 - EXT_RAM ON (1)
D2..D4 под прочие нужды конфигурации портов.
Про звук судить не берусь, равнодушен к этой теме, но если соберетесь ставить AY, то лучше делать совместимо по протам либо со Спеком, либо с MSX.
SYR-ALEX, схема основной платы окончательная ? можно начинать собитать ?
буду собирать на макетках и цанговых колодках ( только дождусь их из китая )
Если устраивает "классический" вариант без портов по IN/OUT можете собирать , последняя схема рабочая . Требуется не большая доработка для нормальной работы Z80 в турбо режимах. Если же хотите новый функционал : порты ,программное управление плюшками , прерывания то лучше подождите . Паять на макетках большие схемы дело очень хлопотное . Но в готовом прототипе относительно легко вносить изменения . У меня ушло примерно 15-17 метров МГТФ . Огромного Вам терпения.
- - - Добавлено - - -
На следующей неделе выложу пакет с рабочими (возможно последними) схемами основной платы и модулей CPU .
SYR-ALEX, неплохо бы, еще буду ставить память на цвет W24256, а системную W24010, и еще хочу чтоб был православный модуль CPU на i8080 с преобразователем питания -5в и +12в
и еще МГТФ не проблема, есть довольно тонкий, рассыпуха будет SMD-0805
В каком виде Вы его желаете ? Классический вариант (когда к портам обращается как к ячейкам памяти) ? Если делать поры по IN/OUT то без ВК28/38 или замены не обойтись .
SYR-ALEX, по классической схеме, а зачем ВКшки ? просто буферов не достаточно ?