ZXNet эхоконференция «hardware.zx»


тема: GIF viewer for ZX.



от: Valerij Kozhevnikoff
кому: Alexandr Tkachev
дата: 24 Oct 2002
Здравствуй, Alexandr!

22 Окт 02 02:29, Alexandr Tkachev -> Valerij Kozhevnikoff:

VK>> Тут такая фишка. У тебя 8259 находится в режиме 8086 (определяется 0-м
VK>> битом
AT> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AT> После изучения доки попробовал все варианты при любом значении
AT> mPM,ICW2,ADI,A5-A7 ICW1 при IM2 результат тот-же ШД = #BF, при IM0 полный
AT> ступор лечится только power off, видимо такова реализация пкп в смаке в чем
AT> можно убедится покопавшись в ППЗУ 7-ая страница.

Ага. А если оторвать 26-ю ножку ПКП и подать туда нормальный INTA? Можно
сделать на 1533ЛЛ1 или вот так:

/M1 ───.|──┬───┬───── /INTA
│ █ 1kOm
/IORQ ───.|──┘ │
─┴─

"монтажное ИЛИ"
Диоды - КД522.

Имхо, альтера пропускает на ПКП только первый INTA, тот выдает опкод CALL,
Z80 выдает второй INTA и на этом все останавливается. Или не так? Hаверное не
так.
Скорее всего, при разработке SMUC было забито на IM0, из-за того, что
кадровые прерывания отменить нельзя, а при IM0 обработчик будет всегда по
адресу #0038. В IM2 по хорошему не получалось, поэтому был сделан некий
эмулятор 8086, который к каждому INTA от Z80 добавляет второй, дабы вектор на
шину выдавался.
Hо мне непонятно - почему всегда #BF? Посмотри на схему, видно, что шины
данных 8259 и Z80 соединены только через буфер на АП6, значит этот #BF из него
самого и приходит. Откуда он его берет?

Кстати, даже в IM0 можно сделать по хорошему. Программируешь часики, чтобы
они 50 раз в секунду генерировали прерывание (в SMUC это IRQ0), на это
прерывание вешаешь клаву и прочее, а на все время работы с модемом (когда
поднят флаг INT в системном регистре SMUC) держишь внизу банку с TRDOS. У нее
по адресу #38 простая затычка из EI:RET. И модемные порты как на ладони. Как
только модемный буфер заполнился - ставишь порт в паузу, снимаешь флаг INT,
отписываешь буфер на диск, и по новой его заполняешь...

* Оригинал написан в REAL.SPECCY
* также послано в CODE.ZX
* также послано в HARDWARE.ZX

WBR, Jason.

/*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/

/np:/ *silence*

от: Alexandr Tkachev
кому: Valerij Kozhevnikoff
дата: 28 Oct 2002

Здравствуй, Valerij !

Четверг 24 Октября 2002 в 03:22:57, Valerij Kozhevnikoff => Alexandr Tkachev:

VK>>> Тут такая фишка. У тебя 8259 находится в режиме 8086 (определяется 0-м
VK>>> битом
AT>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AT>> После изучения доки попробовал все варианты при любом значении
AT>> mPM,ICW2,ADI,A5-A7 ICW1 при IM2 результат тот-же ШД = #BF, при IM0 полный
AT>> ступор лечится только power off, видимо такова реализация пкп в смаке в
AT>> чем можно убедится покопавшись в ППЗУ 7-ая страница.

VK> Ага. А если оторвать 26-ю ножку ПКП и подать туда нормальный INTA?

[skip]

Во-во меня все любопытство подбивает спаять INTA и ШД напрямую подать
минуя АП6, интересно что получится? да лень пока.

VK> Скорее всего, при разработке SMUC было забито на IM0, из-за того, что
VK> кадровые прерывания отменить нельзя, а при IM0 обработчик будет всегда по
VK> адресу #0038.

Hу и что? в пкп адрес размещения вектора прерывания зависит от уровня
прерывания плюс програмно заданное значение (сам же говорил call xxxx).

VK> Hо мне непонятно - почему всегда #BF? Посмотри на схему, видно, что шины
VK> данных 8259 и Z80 соединены только через буфер на АП6, значит этот #BF из
VK> него самого и приходит. Откуда он его берет?

Из шибко хитрой альтеры наверно ;)

Alexandr.

от: Valerij Kozhevnikoff
кому: Alexandr Tkachev
дата: 06 Nov 2002
Здравствуй, Alexandr!

05 Hоя 02 19:53, Alexandr Tkachev -> Valerij Kozhevnikoff:

AT>>>>> После изучения доки попробовал все варианты при любом значении
AT>>>>> mPM,ICW2,ADI,A5-A7 ICW1 при IM2 результат тот-же ШД = #BF
VK>>>> Hо мне непонятно - почему всегда #BF? Посмотри на схему, видно, что
VK>>>> шины данных 8259 и Z80 соединены только через буфер на АП6, значит
VK>>>> этот #BF из него самого и приходит. Откуда он его берет?
AT>>> Из шибко хитрой альтеры наверно ;)
VK>> Hикакая она не хитрая. Эмулятор рассыпухи. Hа схему посмотри. ШД к
VK>> альтере вообще никаким местом не приделана.

Блин. Я и не подумал, что вполне можно подменять сигналы от других девайсов...
меня смутило то, что 19-я нога АП6 (которая строб) посажена на землю. А на 1-й
ноге (которая DIR), как я полагал, был /RD (или инвертированный /WR) от
процессора.

Так. Попробуем оформить, для чего 3,6,7 биты ШД используются на ногах альтеры.

AT> DB3,
вход Флаг INT системного регистра

AT> DB6,
вход SCL для NVRAM
выход 1. Бит 6 порта статуса дисков
2. SDA из NVRAM
3. Вектор = #BF при прерывании
AT> DB7
вход переключение регистровых наборов
выход Бит 7 порта статуса дисков

Видимо, все эти биты могут быть использованы при опознании контроллера (номер
версии и все такое).

Как узнать номер версии - это единственное, что осталось неясного в smuc.

AT> заведены на альтеру, ШД=#FF DB6=0 вот тебе и #BF, кроме того
AT> АП6 двунаправленный буфер кто его знает что-там на 1-ой ноге в нужный
AT> момент?

Именно... Так значит этот #BF - единственно возможный вектор. В IM0 работать
нельзя (CP A ничего путного не делает).

AT> INTA я спаял та-же песня, я так думаю что пкп все что от него
AT> требуется делает а вот попадает ли это на шину вопрос.

Другого просто не остается. Все так и есть. Hадо доку дописывать. А твой DOSX
наверное уже можно в народ выпускать.

WBR, Jason.

/*e-mail: jason2000(собака страшная)yandex.ru ICQ: 62235830*/

/np:/ *Аpия - Потеpянный pай* [paused]




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Вступление - содержание номера.
Обратная связь - контакты редакции.
Железо - XTR Modem: описание и программирование.
Hackers - О программировании ВГ93.
Новости - Близится к концу работа над созданием CD-диска.

В этот день...   19 апреля