▒ ▒ ▒▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▒▒ ▒▒
▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓
░░ ░ ░ ░░░░ ░░ ░░░ ░░░ ░
▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓
▒ ▒ ▒▒ ▒ ▒ ▒ ▒ ▒▒▒ ▒ ▒▒
─── ЕЩЕ ОДНА ───
─── ПЛАНЕТА ШЕЛЕЗЯКА ───
Вашему вниманию предлагается статья из
журнала DEJA VU #7.
В.Ковалев
ДОПОЛНИТЕЛЬНОЕ ОЗУ
==========================================
Привет, All !
Ко мне тут PRUSAK принес свою новую ап-
паратную примочку,она стоит у него на Пен-
тагоне 512, и пока что глюков не было...
==========================================
Суть сего девайса состоит в том, что
вместо ПЗУшных BASIC 128 и TR DOS подстав-
ляется ОЗУ типа 62256 (32K), которое эму-
лирует ПЗУ. Таким образом,вместо надоевшей
менюшки 128 Бейсика можно поставить собст-
венный коммандер или что-либо еще, а также
пользоваться собственными версиями DOS'а.
Я, например, уже набрал коллекцию DOS'ов.
Для постановки требуется:
а) Проверить способ дешифрации порта кла-
виатуры #FE. Он должен выбираться при A0=0
и A7=1. В противном случае необходимо про-
извести доработку компьютера.
б) Необходимо ОЗУ 62256-1шт, 15ЗЗЛЛ1-2шт,
15ЗЗЛН1, 15ЗЗЛИЗ, 15ЗЗИР23.
Данная схема приводится для машин с ПЗУ
27512. Под другие типы ПЗУ переделать схе-
му несложно, но приводиться не будет.
Схема представлена на рис.1
RAM 62256 (32K)
┌─┐ ┌────┐
/WR ──────────────────┤1├──────────O/WR │
bitO ──────────────────┤ │┌─────────┤A14 │
└─┘│ │ │
┌─┐│ ┌───────O/CS │
+Up ───┤&││ │ /RD ─O/OE │
bit2 ────────┬─────────┤ ├┘ │ │ │
DOS ────────┼─────────┤ │ │ │ │
/ROMCS ──────┼─────┐ └─┘ │ │ │
│ │ ┌─┐ │ │ │
┌─┐ │ ┌─┐ └─┬─┤1├──┘ └────┘
bit1───┬┤1├──┼─┤&├─┬─┼─┤ │
Чbit───┼┤ │ └─┤ │ │ │ └─┘ ROM 27512
#7FFD │└─┘ ┌┤ │ │ │ ┌────┐
│┌─┐ │└─┘ │ └──┐ ┌─┐ 22│ │
└┤1├───┘ │┌─┐ └─┤ ├───────O/CS │
DOS ────┤ │ └┤1O───┤ │ │ │
└─┘ └─┘ └─┘ │└────┘
Рис.1
Теперь опишу принцип работы схемы.
bitO,bit1,bit2 - это биты порта, на ко-
торый будет повешено это устройство (порт
126 или #7E). Бит 0 разрешает/запрещает
запись в ОЗУ. Бит 1 включает/выключает са-
мо ОЗУ. Бит 2 принудительно включает в ОЗУ
банк, соответствующий DOS. Это необходимо
для того, чтобы при установке DOS в ОЗУ
можно было без проблем записать его. ОЗУ
выключается, если работает 48 BASIC. Это
достигается заведением 4-го бита порта
#7FFD на схему устройства.
Теперь о реализации порта #7E. Порт де-
лается на одной 15ЗЗЛЛ1 и 15ЗЗИР23. Схема
приведена на рис.2
┌─┐
┌─┤1O── b0
┌───┬──┬──┐│ └─┘
D0 ───┤D0 │RG│Q0├┘ ┌─┐
D1 ───┤D1 │ │Q1├──┤1O── b1
D2 ───┤D2 │ │Q2├─┐└─┘
D3 ───┤D3 │ │Q3│ │┌─┐
D4 ───┤D4 │ │Q4│ └┤1O── b2
D5 ───┤D5 │ │Q5│ └─┘
D6 ───┤D6 │ │Q6│
D7 ───┤D7 │ │Q7│
├───┤ │ │
┌─┐ ┌────/C │ │ │
A0 ──┤1├┐ │ ┌──o/CS│ │ │
A7 ──┤ ││ ┌─┐│ ┴ └───┴──┴──┘
└─┘└─┤1├┘
┌─┐ ┌┤ │
IORQ ──┤1├─┘└─┘
WR ──┤ │
└─┘
Рис.2
Инверторы на выходе регистра поставлены
для того, чтобы при включениии компьютера
доработка была выключена. Включить какой-
-либо бит можно, записав в него единицу.
Так, например,установка DOS и BASIC на ас-
семблере будет выглядеть так:
DI
LD A,%00000111 ;включаем принудительно
;DOS и разрешение записи,
;причем, бит 1 можно не
;устанавливать.
OUT (126),A
LD HL,DOS_ADRES ;по этому адресу в памяти
;должен находиться DOS.
LD DE,0
LD BC,16384
LDIR
LD BC,#7FFD
IN A,(C)
PUSH AF ;сохраняем значение порта #7FFD
;(если он у вас не читается, то
;SORRY).
LD A,%00000000
OUT (C),A ;устанавливаем ПЗУ со 128 BASIC
;(потому что при BASIC 48 допол-
;нительная RAM отключается).
PUSH BC
LD A,%00000011 ;включаем разрешение записи
;в RAM и саму RAM.
OUT (126),A
LD HL,BASIC_ADRES ;пересылаем из памяти
;BASIC 128 в RAM.
LD DE,0
LD BC,16384
LDIR
LD A,%00000000 ;выключаем RAM(при желании
;можно установить первый
;бит).
OUT (126),A
POP BC
POP AF
OUT (C),A ;восстанавливаем значение порта
;расширения.
EI
RET
Остальные биты порта 126 (bitЗ-bit7) в
данной доработке не используются, но при
посылке числа в порт их лучше занулять. У
меня на них повешено: на бите 3 - вкл/выкл
теневого ОЗУ (0-вкл), на бите 4 - вкл/выкл
записи в теневое ОЗУ (0-выкл), на бите 5 -
вкл/выкл 512K (0-вкл). Ставя или убирая
инверторы,можно подобрать необходимую кон-
фигурацию при включении машины.
И напоследок даю раскладку выводов мик-
росхемы ОЗУ 62256:
┌───┬───┬───┐
10─┤A0 │RAM│D0 ├─11
9─┤A1 │ │D1 ├─12
8─┤A2 │ │D2 ├─13
7─┤A3 │ │D3 ├─15
6─┤A4 │ │D4 ├─16
5─┤A5 │ │D5 ├─17
4─┤A6 │ │D6 ├─18
3─┤A7 │ │D7 ├─19
25─┤A8 │ │ │
24─┤A9 │ │ │
21─┤A10│ │ │
23─┤A11│ │ │
2─┤A12│ │ │
26─┤A13│ │ │
1─┤A14│ │ │
├───┤ │ │
20─O/CS│ │ │
22─O/OE│ │ │
27─O/WR│ │GNDX─14
│ │ │UccX─28
└───┴───┴───┘
Раскладка порта 126 DEC; #7E HEX
bitO - запись в ОЗУ (1-yes,0-no);
bit1 - ОЗУ (1-вкл,0-выкл);
bit2 - DOS принудительно (1-вкл,0-выкл);
bitЗ - теневое ОЗУ (0-вкл,1-выкл);
bitЧ - запись в теневое ОЗУ (1-вкл,0-выкл)
bitS - 512K Mode (1-off,0-on);
bitб - зарезервирован;
bit7 - зарезервирован.
* * *
Other articles: