City
#20
14 июля 1999 |
|
Планета Шелезяка - ДОПОЛНИТЕЛЬНОЕ ОЗУ КЕШ.
▒ ▒ ▒▒ ▒ ▒ ▒ ▒ ▒ ▒ ▒▒▒ ▒▒ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ░░ ░ ░ ░░░░ ░░ ░░░ ░░░ ░ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▓ ▒ ▒ ▒▒ ▒ ▒ ▒ ▒ ▒▒▒ ▒ ▒▒ ─── ЕЩЕ ОДНА ─── ─── ПЛАНЕТА ШЕЛЕЗЯКА ─── Вашему вниманию предлагается статья из журнала 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 - зарезервирован. * * *
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября