"Сделай сам" & MOA Spectrum +3 Компьютер Spectrum +3 (ниже - +3) появился в 1987 году и в настоящее время не выпускается. Однако объем программного обеспечения для него достаточно велик (к сожалению, только на западе). Распространение в Советском Союзе Spectrum +3 нача- лось только в последнее время. Hиже кратко приводится его внутреннее устройство. Spectrum +3 собран на микропроцессоре Z80A фирмы Zilog и имеет 64 K ROM (ПЗУ) и 128 K RAM (ОЗУ). Как и в Spectrum +2 здесь примененена страничная органи- зация RAM и ROM, все адресное пространство микропроцессора (64 K) разбито на четыре банка по 16 K. В свою очередь 128 K RAM разбито на 8 банков по 16 K, а 64 K ROM - на 4 16 K банка. Обозначим банки с RAM0 по RAM7 и с ROM0 по ROM3. В зависимости от содержимого системных регистров компьютера (у Spectrum +3 их два) микропроцессор, адресуясь к своим четырем банкам, бу- дет выбирать некоторые банки RAM и ROM. Hа рисунке представле- но, что и в каком банке может находится. address Z80 +=========+ 0000h | | | BANK 0 | ROM0...ROM3, RAM0, RAM4 3FFFh | | |---------+ 4000h | | | BANK 1 | RAM1, RAM5, RAM7 7FFFh | | |---------+ 8000h | | | BANK 2 | RAM2, RAM6 BFFFh | | |---------+ C000h | | | BANK 3 | RAM0...RAM7 FFFFh | | +=========+ . - 2 - Hиже будут рассмотрены адреса внешних устройств +3. +--------+--------+-----------------------------------------+ | | | | | 0FFDh | 4093 | При записи: данные параллельного | | | | порта, используемого стандартным прог- | | | | раммным обеспечением, как порт для па- | | | | раллельного принтера; посдедовательный | | | | интерфейс, как и в +2, реализован с ис- | | | | пользованием звукового процессора | | | | AY-3-8912. | | | | При чтении: bit 0 - готовность | | | | CENTRONIX: | | | | 0 - состояние on line | | | | 1 - состояние off line. | | 1FFDh | 8189 | Системный регистр 2, это новый | | | | относительно +2, регистр; назначение его| | | | разрядов будет приведено ниже. | | 2FFDh | 12285 | Регистр команд контроллера гибких | | | | дисков mA765. Эта микросхема поддержи- | | | | вается встроенной дисковой операциооной | | | | системой +3 DOS. | | 3FFDh | 16381 | Регистр данных контроллера гибких | | | | дисков. | | 7FFDh | 32765 | Системный регистр 1, аналог системно-| | | | го регистра Spectrum +2 (различия в | | | | в адресации страниц ROM). | | BFFDh | 49149 | Регистры SOUND - аналогичны +2 и | | FFFDh | 65533 | здесь рассматриваться не будут. | +--------+--------+-----------------------------------------+ Рассмотрим назначение битов первого системного регистра (7FFDh): bit 0...2 значение определеяет номер банка RAM, кото- рый будет адресоваться в третьем банке CPU. bit 3 определяет положение активного экрана (0 - RAM5, 1 - RAM7). bit 4 определяет (совместно с bit 2 второго сис- темного регистра) какой банк ROM (0 - ROM0/ 2, 1 - ROM1/3) адресуется сейчас в банке CPU 0. bit 5 установка этого бита приведет систему в конфигурацию '48 K BASIC', сброс бита не- возможен. Реристр может только записываться, в области системных переменных BASICа хранится копия в ячейке 23388 (5B5Ch). . - 3 - Конфигурация '48 K BASIC' выглядит так: address Z80 +=========+ 0000h | | | ROM3 | 3FFFh | | Так же выглядит |---------+ конфигурация памяти, 4000h | | если Вы выполнили ко- | RAM5 | манду BASICа 'RANDOMIZE 7FFFh | | USR address'. |---------+ 8000h | | | RAM2 | BFFFh | | |---------+ C000h | | | RAM0 | FFFFh | | +=========+ Hазначение битов второго системного регистра (1FFDh) при- ведено ниже. bit 0 определяет, что будет адресоваться в нижний банк CPU: 0 - ROM, 1 - RAM. В зависимости от значения компьютер принимает одну из двух возможных конфигураций 0 банка процес- сора - есть/нет ROM, изменяются и значение следующих двух битов этого регистра. bit 1...2 определяют конфигурацию памяти +3. Hазначе- ние этих битов ясно из приведенной ниже таблицы. bit 3 управление приводом HГМД. bit 4 STROB-signal для CENTRONIX (активный - низ- кий уровень). Этот регистр может быть только записан, в системных пере- менных BASICа хранится его копия по адресу 23399 (5B67h). Если bit 0 регистра 1FFDh установлен в 0, то в банке 0 процессора может быть установлен один из четырех банков ROM, согласно следующей таблице: +-------------+--------------+--------------+------------+ | bit 2 1FFDh | bit 4 7FFDh | Hомер банка | Функция | +-------------+--------------+--------------+------------| | 0 | 0 | ROM0 | Editor | | 0 | 1 | ROM1 | Syntax | | 1 | 0 | ROM2 | DOS | | 1 | 1 | ROM3 | 48 BASIC | +-------------+--------------+--------------+------------+ . - 4 - Если bit 0 регистра 1FFDh находится в 1, то все 64K памя- ти процессора будет занимать RAM. Состояние памяти в этом слу- чае определяют bit 1 и 2 : +-------------+-------------+---------------------------------+ | bit 2 1FFDh | bit 1 1FFDh | Страницы RAM в адресах CPU | | | | 0000h...3FFFh,4000h...7FFFh,... | +-------------+-------------+---------------------------------| | 0 | 0 | RAM0, RAM1, RAM2, RAM3 | | 0 | 1 | RAM4, RAM5, RAM6, RAM7 | | 1 | 0 | RAM4, RAM5, RAM6, RAM3 | | 1 | 1 | RAM4, RAM7, RAM6, RAM3 | +-------------+-------------+---------------------------------+ Последние состояние (4,7,6 и 3) используется программой загрузчика +3 DOS. Тактовая частота CPU в +3 равна 3.54 MHz. При работе программы в банках RAM4...7, конфликтующих с видеоконтролер- ром, тактовая частота снижается примерно на 25%. Физически ROM состоит из двух кристаллов по 32 K каждый (подобно 27256). RAM собрано из четырех кристаллов 4164, имею- щих организацию 64K * 4. Частота музыкального процессора - 1.7734 MHz. Особенности и возможности встроенной дисковой операцион- ной системы +3: - поддерживает встроенный касетный накопитель (для +3 внешний), электронный диск, и встроенный дисковый накопитель (для +2A внешний). - совместима по формату данных с системами CP/M Plus и CP /M 2.2. - может записывать и считывать данные в любую страницу RAM. - может считывать загрузчики внешних операционных систем. - поддерживает два логических диска на одном физическом устройстве. - поддерживает групповые операции с файлами. Распайка разъемов +3 Joystick(s) +---+------------------+ | 1 | не используется | | 2 | common (общий) | 1 5 | 3 | не используется | . . . . . | 4 | fire (огонь) | . . . . | 5 | up (вверх) | | 6 | right (вправо) | 6 9 | 7 | left (влево) | | 8 | common (общий) | | 9 | down (вниз) | +---+------------------+ . - 5 - Video +---+----------------------------+ | 1 | +12 v | | 2 | GND | 7 6 | 3 | audio out | . 8 . | 4 | composite sync (инверсный) | 3 . . . 1 | 5 | +12 v | 5 . . 4 | 6 | green (зеленый) | . | 7 | red (красный) | 2 | 8 | blue (синий) | +---+----------------------------+ RS232 +---+---------+ | 1 | GND | | 2 | TXD | 6 1 | 3 | RXD | ---=-=-=-=-=-=- | 4 | DTR | | 5 | CTS | | 6 | +12 v | +---+---------+ MIDI +---+------------------+ | 1 | RETURN | | 2 | не используется | | 3 | не используется | | 4 | не используется | 6 1 | 5 | DATA OUT | ---=-=-=-=-=-=- | 6 | не используется | +---+------------------+ AUX (sound) +---+-----------------+ | 1 | GND | | 2 | OUTPUT BIT 0 | | 3 | INPUT BIT 4 | | 4 | OUTPUT BIT 1 | 6 1 | 5 | INPUT BIT 5 | ---=-=-=-=-=-=- | 6 | +12 v | +---+-----------------+ Printer +---+---------------------+-----+--------------------+ | 1 | STROBE | 19 | GND | | 2 | D0 | 20 | GND | | 3 | D1 | 21 | GND | | 4 | D2 | 22 | GND | | 5 | D3 | 23 | GND | | 6 | D4 | 24 | GND | | 7 | D5 | 25 | GND | | 8 | D6 | 26 | GND | | 9 | D7 | 27 | не задействован | | 10| не задействован | 28 | GND | | 11| BUSI (готовность) | 29 | не задействован | | 12| не задействован | 30 | не задействован | | 13| не задействован | 31 | не задействован | | 14| GND | 32 | не задействован | | 15| не задействован | 33 | GND | | 16| GND | 34 | не задействован | | 17| не задействован | 35 | не задействован | | 18| отсутствует | 36 | отсутствует | +---+---------------------+-----+--------------------+ 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 +=--=--=--=--=--=--=--=--=--=--=--=--=+-=--=--=--=+ +=--=--=--=--=--=--=--=--=--=--=--=--=+-=--=--=--=+ 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20 19 EXPANSION I/O +---+-------------------+----------------------+ | | Upper row (U) | Lower row (L) | +---+-------------------+----------------------| | 1 | A15 | A14 | | 2 | A13 | A12 | | 3 | D7 | +5 v | | 4 | ROM 1 oe (inv) | не используется | | 5 | D0 | GND | | 6 | D1 | GND | | 7 | D2 | CLK | | 8 | D6 | A0 | | 9 | D5 | A1 | | 10| D3 | A2 | | 11| D4 | A3 | | 12| INT (inv) | не используется | | 13| NMI (inv) | GND | | 14| HALT (inv) | ROM 2 oe (inv) | | 15| MREQ (inv) | DISK RD (inv) | | 16| IORQ (inv) | DISK WR (inv) | | 17| RD (inv) | MOTOR ON (inv) | | 18| WR (inv) | BUSRQ (inv) | | 19| не используется | RESET (inv) | | 20| WAIT (inv) | A7 | | 21| +12 v | A6 | | 22| -12 v | A5 | | 23| M1 (inv) | A4 | | 24| RFSH (inv) | не используется | | 25| A8 | BUSACK (inv) | | 26| A10 | A9 | | 27| RESET | A11 | +---+-------------------+----------------------+ U 27 26 25 24 23 22 21 20 19 11 10 9 8 7 6 5 4 3 2 1 +=--=--=--=--=--=--=--=--=-- ---=--=--=--=--=--=--=-+=--=--=--=+ +=--=--=--=--=--=--=--=--=-- ---=--=--=--=--=--=--=-+=--=--=--=+ L 27 26 25 24 23 22 21 20 19 11 10 9 8 7 6 5 4 3 2 1