On-Line #82
16 мая 1997
  ATM Turbo  
  Железо  

Система - Персональный компьютер АТМ-Тurbo 2+ : Техническое описание и руководство программиста: Spectrum 128.Системный порт. Порт телефонной линии. Порт чтения АЦП. Порт музыкального синтезатора. Порт принтера и ЦАП. Порт атрибутов. Порт клавиатуры. Порт бордюра.

<b>Система</b> - Персональный компьютер АТМ-Тurbo 2+ : Техническое описание и руководство программиста: Spectrum 128.Системный порт. Порт телефонной линии. Порт чтения АЦП. Порт
 музыкального синтезатора. Порт принтера и ЦАП. Порт
 атрибутов. Порт клавиатуры. Порт бордюра.
╔══════════════════════════════════════════════════════════════╗
│			     СИСТЕМА			       │
╚══════════════════════════════════════════════════════════════╝

(C) MicroArt
(C) MaxSoft 1995

		Персональный компьютер TURBO 2+
		     Платы версии 7.00-7.10
	Техническое описание и руководство программиста.

	    Структура памяти и портов ввода вывода.

		 3. SPECTRUM-128 Системный порт

		      Адрес доступа: #7FFD
		  Выборка:A15=0,A9=1,A1=0,WR=0

   Этот порт используется,  в основном,  в режиме  SPECTRUM-128,
однако	в  CP/M  он  нужен  для  быстрой  смены  карты	  памяти
CPM-system<>CPM-users.	Разработчики пытались сделать это  место
как можно более совместимым с фирменным ZX,  однако это не  сов-
сем удалось (см. главу "аппаратные ошибки").

D0-PAGE0  \
D1-PAGE1   определяют какая страница впечатана в режиме
D2-PAGE2  /  Spectrum-128 c адреса #C000

D3-SCREEN - этот разряд определяет в какой странице будет нахо-
	    диться экранное озу.

	  в режиме "SPECTRUM": 0 - 5-я страница (с адреса #4000)
			       1 - 7-я страница.
	  в режиме CP/M:  0 - 5-я страница пикселы, 1-я атрибуты
			  1 - 7-я страница пикселы, 3-я атрибуты

D4-ROM2 - этот сигнал  путем  переключения  диспетчера	выбирает
	  BASIC-128 (1) или  BASIC-48 (0).  В  CP/M  переключает
	  CPM-system (1) или CPM-user (0)

D5-LOCK - записав в этот разряд "1", мы запрещаем дальнейшую ра-
	  боту с портом #7FFD (это сделано для полной  совмести-
	  мости с SPECTRUM-48).


		    4. Порт телефонной линии

		      Адрес доступа: #7FFD
		  Выборка:A15=0,A9=1,A1=0,RD=0

   Порт #7FFD доступен по чтению как флаговый.

D7 - готовность  ацп:  1 - ацп готово,	0 - идет  преобразование
     данных.

D6 - 1 указывает, что HDD закончил выполнение последней  команды
     (позиционирование,запись и.т.п.)


D5 - в плате версии 7.0 не задействован
D4 - в плате версии 7.0 не задействован


		       5. Порт чтения ацп

		      Адрес доступа:#7DFD
		  Выборка:A15=0,A9=0,A1=0,RD=0

   Используется для чтения состояния АЦП.    (Данные  достоверны
только в состоянии АЦП "готово" (см. выше).


	       6. Порты музыкального синтезатора

		   Адрес доступа:#BFFD,#FFFD
		    Выборка:A15=1,A9=1,A1=0

   Используются для  программирования  музыкального  синтезатора
AY-8910(12).


		    7. Порт принтера и цап.

		       Адрес доступа:#FB
		     Выборка:A0=1,A1=1,A2=0

   На плате реализован стандартный интерфейс CENTRONIX.   Он  не
требует никакой предварительной инициализации.	По  чтению  этот
порт копирует состояние сигнала BUSY принтера в BIT 7  аккумуля-
тора.

  Стандартный драйвер вывода на принтер символа из регистра C.

OUT_PRN: IN	 A,(#FB)
	 RLCA
	 RET	 C	   ;C FLAG=1 возврат (принтер не готов)
	 LD	 A,C
	 OUT	 (#FB),A   ;выводим данные
	 OUT	 (#7B),A   ;импульс строб
	 OUT	 (#FB),A   ;сброс строба
	 RET		   ;C FLAG=0  байт послан

   Необходимо помнить что к этому-же порту подключен  цифро-ана-
логовый преобразователь.

			8. MISC I/O PORT

		       Адрес доступа:#FA
		     Выборка:A0=0,A1=1,A2=0

   Стробы IOWR,  IORD этого порта выведены на  системный  разъем
компьютера. С помощью этого порта и порта CENTRONIX к  компьюте-
ру можно подключить 256 устройств ввода и 256  устройств  вывода
при сохранении полной совместимости с оригиналом. При этом,  ад-
рес порта записывается в CENTRONIX по команде OUT  (#FB),A,    а
данные считываются по команде IN A,(#FA) или записываются по ко-
манде OUT (#FA),A.  Шина данных на разъеме буферизирована.   Для
сохранения совместимости все новые разработки рекомендуется под-
ключать, используя исключительно этот порт.

		       9. Порт атрибутов

		       Адрес доступа:#FF
 Выборка:A0=1,A1=1,A2=1,A3=1,A4=1,A5=1,A6=1,A7=1,DOSEN=OFF,RD=0

   Этот порт позволяет прочитать текущий, выводимый на экран ат-
рибут.

		      10. Порт клавиатуры

		       Адрес доступа:#FE
		  Выборка:A0=0,A1=1,A2=1,RD=0

   Про этот порт следует рассказать подробнее. В стандартном ре-
жиме (без IBM клавиатуры) этот порт имеет следующее назначение.

D0 - KD1\
D1 - KD2 \
D2 - KD3  клавиатурные входы данных
D3 - KD4 /
D4 - KD5/
D5 - Z	 системный сигнал от ПЛМ,  На этом сигнале построена за-
	 щита от копирования плат.  Сигнал активизируется  через
	 определенное количество тактов после  прихода	прерыва-
	 ния (точно не помню какое). Программа,  подсчитывая это
	 количество, получает байт, который является ключем рас-
	 паковки BIOS и BDOS...  но в последней версии с 8031 от
	 этого отказались.

D6 - TIN сигнал чтения с магнитофона.
D7 - не используется


A8  - KA0\
A9  - KA1 \
A10 - KA2  \
A11 - KA3   \ адресные линии клавиатуры
A12 - KA4   /
A13 - KA5  /
A14 - KA6 /
A15 - KA7/

   Начиная с версии 7.00, в компьютере появилась мс.  8031,  что
кардинально изменило работу порта #FE и дало возможность подклю-
чить IBM XT клавиатуру.

   При попытке прочитать содержимое клавиатуры,  процессор  дает
команду IN A,(#FE), взводится спец. триггер и процессор останав-
ливается сигналом WAIT. При этом в микроконтроллере 8031 генери-
руется прерывание.  После необходимых процедур трансляции адрес-
ных линий, микроконтроллер выдает на шину данных процессора сос-
тояние клавиатуры,  сигнал WAIT сбрасывается и процессор продол-
жает свою работу.

   Наличие 8031 и расширенной клавиатуры (101 клавиша)	позволи-
ло упростить опрос клавиатуры в CP/M  до  простого  чтения  кода
клавиши, однако,  это потребовало введения дополнительных команд
для управления 8031,  и поскольку единственно  возможный  способ
передать данные в 8031,  это состояние старшей половины шины ад-
реса Z80 в момент чтения порта #FE, этот способ и используется.

   Управляющие последовательности клавиатуры:

	_#55_ - указывает, что	следующий  байт  является  кодом
		команды для клавиатуры.  В ответ клавиатура воз-
		вращает код #AA -  это	можно  использовать  для
		проверки наличия 8031.

  LD	A,#55
  IN	A,(#FE)
  CP	#AA
  JR	NZ,NO_XT
  LD	A,COMM	 ;команда (см ниже)
  IN	A,(#FE)
  LD	A,ARG1	 ;дополнительные параметры (могут отсутствовать)
  IN	A,(#FE)
  LD	A,ARG2	 ;дополнительные параметры (могут отсутствовать)
  IN	A,(#FE)


	_#00_  - Читает код нажатой клавиши.

  XOR	  A
  IN	  A,(#FE)
  ;в аккумуляторе код клавиши (список кодов приводится ниже)


	_#80_  - читает 1-й байт флагов клавиатуры
	LD	A,#80
	IN	A,(#FE)

	_#40_  - читает 2-й байт флагов клавиатуры
	LD	A,#40
	IN	A,(#FE)

   Коды команд (Внимание!  Перед записью кода команды необходимо
дать упр. код _#55_ для перевода 8031 в режим ввода команды):

1	  получить 1 байт номера версии программы
#41	  получить 2 байт номера версии программы
#81	  получить 3 байт номера версии программы
#C1	  получить 4 байт номера версии программы
7	  стереть буфер клавиатуры и все флаги
8 DATA	  установка режима работы:
	 bit 0,1 - устанавливается режим работы
	   0 - эмуляция синклер клавиатуры
	   1 - чтение кода клавиши (флаги не обрабатываются)
	   2 - режим CP/M
	   3 - прямое чтение кода с последовательного порта кла-
	       виатуры

	  bit 7 - режим 0-lat 1-rus (только для CP/M)

9	  получить содержимое ячейки памяти 1
#49	  получить содержимое ячейки памяти 2
#89	  получить содержимое ячейки памяти 3
#C9	  получить содержимое ячейки памяти 4
#0A	  переключится в режим ввода русских букв
#0B	  переключится в режим ввода латинских букв
#0C	  программная пауза
#0D	  перезапуск компьютера
#10	  получить секунды
#50	  получить минуты
#90	  получить часы
#11 DATA  установить секунды
#51 DATA  установить минуты
#91 DATA  установить часы
#12	  получить число
#52	  получить месяц
#92	  получить год
#13 DATA  установить число
#53 DATA  установить месяц
#93 DATA  установить год
#14 DATA  принудительно устанавливает некоторые сигналы
	 (установка происходит если соответствующий бит равен 1)
	  bit 0 = 0
	  bit 1 = 0
	  bit 2 = 0
	  bit 3 DTR
	  bit 4 RTI
	  bit 5 = 0
	  bit 6 = 0
	  bit 7 = 0

#15  DATA  принудительно  сбрасывает  некоторые  сигналы  (сброс
	   происходит, если соответствующий бит равен 1 (см. ком
	   #14)

#16	  прочитать содержимое порта P3
	  bit 0  -
	  bit 1  -
	  bit 2  -
	  bit 3  -
	  bit 4  VE1
	  bit 5  -
	  bit 6  -
	  bit 7  -

#17	  прочитать состояние RS232
	  bit 0  CD
	  bit 1  CTS
	  bit 2  RI
	  bit 3  -
	  bit 4  -
	  bit 5  -
	  bit 6  -
	  bit 7  -


			11. порт бордюра

		       Адрес доступа:#FE
		  Выборка:A0=0,A1=1,A2=1,WR=0

   Этот порт несколько отличается от стандартного SPECTRUM.  Де-
ло в том что в CP/M бордюр (как и экран) может	иметь  любой  из
шестнадцати цветов (из палитры 64).  Поэтому потребовался допол-
нительный бит цвета, который был заведен на инверсный A3.

D0 - BRD0\
D1 - BRD1 цвет бордюра
D2 - BRD2/
D3 - TAPEOUT Выход на магнитофон
D4 - SOUND   Выход на динамик
D5 - не используется
D6 - не используется
D7 - не используется
A3 - BRD3 - 3-й бит цвета (инверсный)




Другие статьи номера:

B.B.S. Hовости - Новая станция - IMI BBS.

Мозаика - О новой версии Pro Tracker'a (Golden Disk Corp).

На правах рекламы - Red Limited Drunkards Group представляет: Extrem Tracker v1.32 - новый музыкальный редактор. Inter Mode Player v1.2 - проигрыватель мелодий.

Реклама - Реклама и объявления ...

Система - Персональный компьютер АТМ-Тurbo 2+ : Техническое описание и руководство программиста: Spectrum 128.Системный порт. Порт телефонной линии. Порт чтения АЦП. Порт музыкального синтезатора. Порт принтера и ЦАП. Порт атрибутов. Порт клавиатуры. Порт бордюра.


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

Похожие статьи:
Тусовка - истории и стихи.
BBS - список станций BBS ZXNet.
Печатается с продолжением - Бейсикo-вoеннo-пoлевoй слoварь.
Тусовка - From:OPER, No disk, КАКЭТО NO DISK??
Вычисления - организация математических вычислений.

В этот день...   21 ноября