512->128

ZXNet эхоконференция «real.speccy»

От Vassili Klimov Кому All 22.05.2001

для тех, кто пропустил...

published in Adventurer magazine #12 issue

(c) J7n/4D'99

апоследок, еще одна мулька -
"защита #FD". аверное многие, сделав
себе расширение памяти Pentagon512,
частенько, ругая кодеров щелкают
переключателем ON/OFF. И все из-за того,
что нынче модно обращаться к #7ffd по
#fd, но с маской #40 (все благодаря
Scorpам с Каями и их системному порту
#1ffd). Пример: LD a,#50:OUT (#FD),A -
врубить 0 банк. у соответсвенно у кого
256/512кб начинaют включаться не те
банки, портится рамдиск и прочая ерунда.
А кое-кто даже специально (вот это уж
совсем зря) переключает память по #fd
(Ultrasonic - digital tracker). Короче
говоря эта проблема решена уже давно (я
не пользуюсь переключателем pent512
on/off полтора года).

Обычно схема расширения выглядит так:

pent512 on/off
/ ┌─┬─┬─┐
┌───────/ └───┬────────────oR│T│ │
│ │ ├─┤ │ │
┴ +5V o──███─┘ ┌──────────/C│ │ │
10К │ D6 ├─┤ │ │
WR7ffd │ ──────┤0│ │0├──
──────────────────┘ D7 ┌─┤1│ │1├──
────┘ │ │ │ │
└─┴─┴─┘

Микросхема-триггер - это обычно пара
элементов ТМ2 или ТМ9 или ТМ8. У ТМ2
входы R (должны быть соединены) - 1 и
13, у ТМ8 и ТМ9 - 1. Входы C у ТМ2
(должны быть соединены) - 3 и 11, у ТМ8
и ТМ9 - 9.

Схема доработки:

D7: 1533ЛЕ1

pent512 on/off
/ ┌─┬─┬─┐
┌───────/ └───┬───┬────────oR│T│ │
│ │ │ ├─┤ │ │
┴ +5V o──███─┘ ┌──────────/C│ │ │
10К │ │ D6 ├─┤ │ │
WR7ffd │ │ ──────┤0│ │0├──
────────┬─────────┘ │ D7 ┌─┤1│ │1├──
│ D7.3 │ ────┘ │ │ │ │
│ ┌──┐ │ └─┴─┴─┘
├─8┤1 │ └─────────────────┐
│ │ o10─┐ D7.2 D7.1 │
└─9┤ │ │ ┌──┐ ┌──┐ │
└──┘ └─6┤1 │ ┌3┤1 │ │
A13 │ o4─┤ │ o1─┤<├┘
────────────────────5┤ │ └2┤ │
└──┘ └──┘

Вместо D7 можно использовать
инвертор и элемент ЛЛ1 (если есть
свободные на плате). Особое внимание
следует уделить сигналу WR7ffd. Здесь
приведен вариант пригодный для Пентагона
и Профи: когда записи в порт нет
WR7ffd=лог.0, если у Вас по другому, то
подавайте WR7ffd без инверсии (без
D7.3). Принцип работы таков:
1. LD BC,#7FFD:LD A,#50:OUT (C),A
адресация полная - A13=bit5,B=1 - на
выходе D7.1 имеем лог.1, триггер не
сбрасывается, включается #50 банк.
2. LD A,#50:OUT (C),A
адресация короткая - A13=bit5,A=0
(напомню, 5й бит A - это блокировка
#7ffd, поэтому он всегда равен 0)
Когда происходит запись WR7ffd=1, то
на выходе D7.1 - лог.0, который
сбрасывает триггер - 6й и 7й биты. Таким
образом включается банк 0.

едостатки: все равно не работает
UFO 2, потому что там перед записью в
#7ffd накладывается маска #c0.

p.s. недавно попался буржуйский Subliminal Extasy #3,
пашет нормально (не виснет), только спрайтов в статьях нет:).
Пришлось запирать тумблер:(.

p.p.s. если у вас пент1024, то можно обращаться к верхним 512к по #fd
(с маской #30)


cYa, J7n/4D.