С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
У реальной обработки прерываний есть ещё один небольшой аспект - запрос прерывания начинает обслуживаться строго через одну команду после его выставления.
Т.е. наличие запроса на прерывание (при разрешённых прерываниях) ещё не означает, что запрос будет обслужен - нужно проверить, сколько команд назад этот запрос был выставлен.
Речь у меня шла немного про другое, про одновременное выставление запросов на прерывание несколькими устройствами, и блок обработки прерываний должен сперва обработать все незамаскированные прерывания, а уж потом исполнять команду.
Но вопрос про задержку поставлен совершенно правильно. В UKNCBTL такой задержки нет. Если по каналу 0 что-то передается для ПП, то после записи со стороны ЦП, со стороны ПП сразу же возникает запрос на прерывание, а не должно, действительно, только при исполнении следующей команды. Аналогично, если байт был прочитан со стороны ПП, то со стороны ЦП требование для записи очередного байта должно возникнуть не сразу.
Тут скорее всего такое дело, что процессор читает регистр запросов на прерывания во время исполнения команды. Поэтому установка бита разрешения прерывания вызовет прерывание не после этой команды, а после следующей. Из-за этого и советуют бит разрешения прерывания очищать при запрещенных прерываниях, чтобы не возникало ситуации ошибки приема адреса вектора прерывания.
Обновил версию до 0.04a.
Изменения такие относительно 0.03a:
Сделан маппинг памяти PPU, поддержка FPU-инструкций, исправлены циклы Write->RMW для байтовых команд (спасибо Alex_K), сделана смена палитры RGB->GRB->Black/White по клавише '~', клавиша АР2 перенесена с '~' на 'ESC'.
Теперь работает Турбобейсик, корректно работает графика в 'спрайтовом режиме' и заливка там, где она не работала.
Однако КЦГД стал ругаться в консоли при нажатии '<--', когда стирать в строке уже нечего. Появилось это после изменения циклов байтовых команд с W на RMW. КЦГД так же работает, но просто ругается.
---------- Post added at 18:41 ---------- Previous post was at 18:31 ----------
Понятно, теперь он читает регистр, в который раньше только писал. Ниче страшного)
Значительно лучше, даже буковка почти перестала пропадать.
Даже могу сказать почему. Ругаться будет и после нажатия неправильной комбинации, которую не поддерживает SL. Просто SL в этом случае выдает звуковой сигнал управляющим кодом 7, а КЦГД сам пищать не умеет, он просто дает клавиатуре МС7004 команду подать звуковой сигнал. Общение с клавиатурой сделано через 1801ВП1-065. У неё регистры данных и читаются и пишутся в обоих направлениях с выдачей RPLY, просто в приемнике запись уходит в никуда, а в передатчике по чтению читается адрес вектора прерывания приемника.
И Так, ES0.04a: заработала ещё одна игра POCKER.SAV - графич. кости со сборника игр для UKNCBTL - раньше вис с чёрным экраном !!!
Titus, предлагаю поправленный вариант дискеты прилагаемой к EmuStudio.
Состав дискеты.
Скрытый текст
Код:Image : ESGames.dsk Format : DSK Size : 800 Kb Volume ID: ES_GAMES Owner : ES0.04a File Blocks Date Bytes ---------- ------ ----------- ---------- SWAP .SYS 27 17-Jun-1997 13'824 RT11SJ.SYS 68 17-Jun-1997 34'816 ME .SYS 2 17-Jun-1997 1'024 TT .SYS 2 17-Jun-1997 1'024 MZ .SYS 4 17-Jun-1997 2'048 LD .SYS 8 17-Jun-1997 4'096 LP .SYS 11 17-Jun-1997 5'632 NC .SYS 29 17-Jun-1997 14'848 SL .SYS 10 19-Jan-1988 5'120 STARTS.COM 1 17-Jun-1997 512 SETGEN.SAV 29 17-Jun-1997 14'848 DIR .SAV 19 17-Jun-1997 9'728 LAND .SAV 30 18-Oct-1987 15'360 LANDD .SAV 9 30-Nov-1989 4'608 GMAN .SAV 52 04-Dec-1989 26'624 MEDRIV.SAV 7 17-Jun-1997 3'584 DF .SAV 10 17-Jun-1997 5'120 SKEY .SAV 34 12-Nov-2011 17'408 CLCDEM.SAV 93 27-May-2009 47'616 FGRDEM.SAV 61 27-May-2009 31'232 KEY .SAV 34 12-Nov-2011 17'408 CAT .SAV 52 07-Dec-1988 26'624 SHERIF.SAV 24 14-May-1987 12'288 SHERI2.SAV 24 26-Dec-1988 12'288 LANDE .SAV 49 17-Jun-1997 25'088 RDWR .SAV 2 17-Jun-1997 1'024 SPEED .SAV 3 17-Jun-1997 1'536 TSGD .SAV 5 17-Jun-1997 2'560 DMP .SAV 2 17-Jun-1997 1'024 FONTUK.SAV 5 17-Jun-1997 2'560 SPD .SAV 20 17-Jun-1997 10'240 PIP .SAV 29 10-Mar-1983 14'848 GRAPH .MAK 17 27-May-2009 8'704 FGRDEM.COM 1 27-May-2009 512 SHRIFT.001 1 27-May-2009 512 SHRIFT.MAK 1 27-May-2009 512 CLCDEM.COM 1 27-May-2009 512 GRAFIK.001 1 27-May-2009 512 GRAFIK.002 1 27-May-2009 512 GRAFIK.MAK 1 27-May-2009 512 GMAN .LST 58 20-Mar-1990 29'696 GRES .BIN 9 04-Dec-1989 4'608 BANK .FNT 68 17-Jun-1997 34'816 DUP .SAV 45 29-Feb-1984 23'040 UCL .SAV 2 31-Dec-1999 1'024 < UNUSED > 625 320'000 ---------- ------ ----------- ---------- 45 Files, 961 Blocks 625 Free blocks[свернуть]
Список изменений
Скрытый текст
Ничего(из игр и программ) не удалено.
Поправил команды загрузки системы, убрал от туда обращение
к отсутствующему на диске SC.SAV - что-бы в конце загрузки
не ругался. Добавил системные PIP.SAV,DUP.SAV,UCL.SAV ;-)
Заменил версию драйвера SL.SYS и настроил в ней две очень
удобных команды
; = Dir/Fu/Vo/Bl в режиме < auto
? = Run в режиме < auto
Добавил в стартовые команды (самой последней) показать
все .SAV на системном диске.
[свернуть]
-----------------------------------------------------------
!!! Обновил образ дискеты - запрос даты на загрузке выключен !!!
(и почему я его сразу не отключил ?)
Скрытый текст
[свернуть]
Последний раз редактировалось hobot; 05.02.2012 в 20:41. Причина: обновил образ дискеты !!!!!!!!!!!!!!!!!
Интересно теперь собрать список программ, которые НЕ работаю или работают глючно. Преимущественно интересуют меня игры, но и вообще программы.
Titus, планируется ли добавление какого-нибудь интерфейса в эмулятор, ну хоть самого простого ?
а то вводить команды через консоль это ужас какой-то.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)