Да, нужна
Нет, не нужна
Нужна, но не в таком виде
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Да, если самый базовый вариант ставите на место ПЗУ принтера 537ру10 (или аналогичную статику), при этом на плате отрезаете ногу 21 от +5в, и туда подаете /WR
Для того что бы по кнопке magic попасть в эту память по адресу #66 надо на вывод 10 D67 (предварительно отрезав его от 5в.) подать сигнал /NMI ,
Софт под это в шапке пункт 3. там же исходник.
Как пользоваться показано на видео в шапке.
- - - Добавлено - - -
Трактат о прерываниях, или почему ни кто не увидел.
Собрав свою доработку она как мне показалось прекрасно заработала и в обычном режиме и в турбо, мультиколорные демо прекрасно шли, немного игрушек потестил, все ок.
Но вглядываясь в свою схему, как еще можно использовать определение запрета прерываний закралось сомнение, что она не совсем верно работает.
Снятие осциллограмм подтвердили мои сомнения.
Теперь немного отступлю, я не видел других схем подтверждения прерываний кроме этой - тема
Свою я еще более упростил, но если мы внимательно разберем схему выше (она неправильная !!!) то выяснится такой момент, в случае запрещенных прерываний, у нас после фронта кадрового импульса который стробирует (C) и устанавливает вывод 6 (новый INT) триггера в (0), не происходит подтверждение прерывания (сейчас DI) и вход (R) не сбрасывает
триггер, и на INT весит (0) весь кадровый импульс !!! Для практически всех программ на прерываниях это не очень катастрофично, но я написал свой тест, который выявил очень неприятный момент.
Ситуация для схемы выше - после HALT запрещаем прерывания, что то делаем не очень долго в пределах например быстрого атрибутного скролла, на который уходит после прерывания например 10 вертикальных строк или 2240 такта , а кадровый импульс который задействован для стробирования схемы выше идет 16 вертикальных строк или 3584 такта , и разрешаем прерывания, и вот у нас на выходе триггера лог (0) и он после EI тут же опрашивается в каждом 4 такте, а ведь INT уже был 10 линий 2240 такта назад, и у нас происходит второе прерывание за один кадр !!!
Программы редко написаны так что бы ото произошло, и я написал специально тест что бы выявить этот баг, и он есть и на схеме выше, и на моей он еще хуже, из за
упрощения у меня двойное прерывание могло произойти не только по всей длительности кадрового импульса, но и практически в течении всего кадра.
Я тут же у себя это исправил, и как говорил моя схема построена проще один элемент ЛЛ1 и пол ТМ2, я не люблю усложнять, решение простое сбрасывать принудительно триггер после наступления прерывания, если не было подтверждения прерывание от процессора, то есть в режиме DI. В моей схеме добавится два диода.
Схема выше увы не правильна и кто делал явно в каких то прогах которые не висят на прерываниях будут иметь проблемы с двойными, тройными и т.д. прерываниями за один кадр.
Вот осциллограмма которая частично проясняет ситуацию со схемой выше, мы видим, что при определенных условиях (тут мой тест работает)
прерывание наступает черте где(отмечено красным)
Вот рабочая схема, без вышеперечисленных глюков.
PS перезалил схему.
Если у кого то есть инфа по другим доработкам INT, кто то ранее делал может нечто подобное, пишите, интересно посмотреть.
-----------
Последний раз редактировалось JV-Soft; 11.01.2017 в 14:33.
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
легко.в Профи 3+ (версия плат 5.0х) INT сделан так:
почти как у тебя, только тактируется триггер сигналом со счетчика, и он определяет длину INT. на вход D тм2 подается активный INT c нулем. сигнал BL_INT в этот момент в 0 и INT поступает на ЛЛ1 и через неё на проц, как только приходит m1 c iorq, то тригер сбрасывается и сигнал bl_int становится равным 1це, также при приходе DA3 в 1 тригер переключается и инверсный D подается на BL_INT собственно собой блокирует INT через ЛЛ1.
те же три элемента логики. кондер можно и не ставить, резистор внедрен, т.к. есть еще вход INT c системного разъема. для блокировки внешними устройствами.
Profi must live!
Моё железо...
1. Profi 5.06/1Mb(DRAM)+Profi5.06(UP)/HDD/3`5FDD/CF512Mb/SD-CARD
3. Profi 6.2 Rev. B/1Mb/3`5FDD/HDD3.2Gb
4. Profi 5.05(down)/1Mb+Profi 5.03(UP)/Pentagon_Fix
Все укомплектованы:
Profi_ZX-BUS/ZXMC2/NemoIDE/SounDrive[свернуть]
Ссылка на Telegram-канал поддержки пользователей Profi.
У меня лаконичнее
Олег и по моему она не лишена того же бага, что я описал при DI. какова длительность INT приходящая на (D) ТМ2 ? Или полную схему кинь.
Вспомнился анекдот армян про авто, - сирень видел, - да, вот такой же только белый
В этой схеме INT делают по спаду КСИ, в пентагоне это нельзя, нехорошо все будет.
И в это схеме главный баг , INT после разрешения прерывание будет где попало ловится в течении всего кадра.
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
Я делал такие доработки
https://app.box.com/s/9uwbv4oja2993j1ywsa1vckb5bz46a1s
https://app.box.com/s/503lwm9zbj0fomnydj3bh0i0tym1zo8k
Единственное (про WAIT) нужно отключать её при обращении к BETA DISK
(сервис картинок подтупливает к сожалению)
- - - Добавлено - - -
Обновил пост
Последний раз редактировалось USERHOME; 10.11.2020 в 05:22.
Amiga 1200+Blizzard 1260 72 Mb+Mtek 68030,Compozit 128, Leningrad 2,
Atari STE 1040,ZX Spectrum +2,Pentagon 48, Speccy2007 - 2 , ATAS 256k.
ZX Evo 4Mb- в строю.
Speccy2010 v1
Специалист (пока готовлюсь к восстановлению).
Это все мое!
Родное!
Все люблю на свете я! Это родина моя!
balu_dark, я же ответил на всё ТУТ
Magic стандартный.
- - - Добавлено - - -
И для этого всего желательно 512к памяти, так как STS грузится в неё, алгоритм -
Софт что приложен грузит STS в памать выше 128, резидент в КЕШ, при reset они не отчищаются естественно
Загрузили то, что хотите ломануть, нажали magik, с доработкой попадаем в КЕШ на #66, там наш резидент сохраняет 128к страницу в область страниц 512к , а от туда
перекидывает STS в 128к память и переходит на него, далее делаете в STS то, что нам надо, по выходу из STS он перейдет в экран где резидент кинул наш маленький код,
этот код возвращает из 512к страниц в 128к страницы сохраненные ранее (тем самым мы не нарушаем остановленную 128к программу) и далее идет возврат в программу на точку ее останова и она продолжает работать.
- - - Добавлено - - -
solegstar Олег если очень интересно по этой схеме,
http://savepic.ru/12603515.htm
проверить очень легко, нажми и держи reset, на 3D33 поставь щуп осцила , кинь фото или скиншот осциллограммы что бы длительность развертки была понятна
- - - Добавлено - - -
Из имеющейся на плате свободной логики вырисовался Kempston с дешифрацией всех трех бит.
![]()
Последний раз редактировалось JV-Soft; 12.01.2017 в 08:25.
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
BetaDisc его опрашивать не-будет ?
(вспоминаю что на плату AY+JOY именно на пентагоне кидался доп.проводок)
и может за стандарт взять разводку джойстика от сеги ?
(как в ленинград2012) http://zx-pk.ru/threads/17338-lening...l=1#post503695
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)