Inferno
#02
01 мая 2001 |
|
For Coderz - Описание персонального компьютера ATM-TURBO 2+.
Персональный компьютер TURBO 2+ Платы версии 7.00-7.10 Техническое описание и руководство программиста. (C) MicroArt (C) MaxSoft 1995 (?) Структура памяти и портов ввода вывода 1. Системный порт Адрес доступа: #77 Выборка: A0=1, A1=1, A2=1, A3=0, A4=1, A7=0, WR=0 Обращение к этому порту осуществляется в режиме dosen=on или из режима CP/M. D0 - RG0 \ D1 - RG1 - код видеорежима D2 - RG2 / D3 - TUR Частота процессора 1-7MHz 0-3.5MHz D4 - Z_M зарезервировано - необходимо устанавливать в 0 D5 - Z_I прерывания от HSYNC (50 гц) 1-разрешены 0- запрещены D6 - VE1 1-запрет функционирования 8031 (все запросы идут к zx клавиатуре) D7 - VE0 в плате 7.10 не используется (по умолчанию необходимо устанавливать в 1) A8 - PEN 0 - откл. диспетчера памяти (системное пзу включается во все окна), 1 - вкл. диспетчера памяти. A9 - CPM 0 - включение dosen разрешение записи в порт страниц, SYS ets. 1 - бло- кировка dosen (запись в порты sys, pgwr, fdd, hdd только из TR-DOS) A14 - PEN2 0 - разрешение записи палит- ры, 1 -запрет записи палитры ; Видеорежимы экрана RG2'&RG1'&RG0 ;Sinclair 3 ;640x200 GRAPH 2 ;320x200 GRAPH 0 ;640x200 Text 6 Программистам необходимо помнить, что при переключении из режима Sinclair эк- рана и экранов высокого разрешения, перепутывается адресное пространство озу а именно A5, A6, A7 и A8, A9, A10 соот- ветственно, т.е. если вы хотите переклю- чить режим экрана - программа переключе- ния должна занимать не более 32 байт и располагаться по адресу с одинаковыми A5, A6, A7 и A8, A9, A10 соответственно, иначе ваша программа зависнет! 2. Мультиплексор страниц Адрес доступа: #F7 Выборка:A0=1, A1=1, A2=1, A3=0, A4=1, A7=1,WR=0 Обращение к этому порту осуществляется в режиме dosen-active или из режима CPM. Применение диспетчера позволило адресо- вать в компьютере до 1024кб RAM и 1024кб ROM. При этом есть возможность включить _ЛЮБУЮ_ страницу памяти (16кб) в _ЛЮБОЕ_ из четырех окон памяти (с адреса: #0000, #4000, #8000, #C000) по 16кб. Диспетчер разделен на две части по 4 байта каждая. Эти части содержат карту страниц при ROM2=0 и при ROM2=1. D0 - RAM'&ROM invert PAGE 0 D1 - RAM'&ROM invert PAGE 1 D2 - RAM'&ROM invert PAGE 2 D3 - RAM'&ROM invert PAGE 3 D4 - RAM'&ROM invert PAGE 4 D5 - RAM'&ROM invert PAGE 5 В этих битах задается инверсный номер страницы D6 - RAM/ROM 1-разрешение RAM, 0-ROM D7 - MX_A 1-разрешить подачу сигналов (PAGE0-PAGE2) от порта #7FFD A14 - window sel 0 A15 - window sel 1 Ну а тут задается выборка окна 0-#0000, 1-#4000, 2-#8000, 3-#C000 Стандартная карта распределения памяти в различных режимах работы компьютера: ┌─────┬────────────┬──────────┬───────┬──────────┬─────────┐ │mode │Spectrum-128│Spectrum48│TR- DOS│CPM-system│CPM-users│ │roms │ ROM2=1 │ ROM2=0 │ROM2= x│ ROM2=1 │ ROM2=0 │ ├─────┼────────────┼──────────┼───────┼──────────┼─────────┤ │#0000│ ROM-#3E │ ROM-#3C │ROM-#3D│ ROM-#3F │ RAM-0 │ │#4000│ RAM-5 │ RAM-5 │ RAM-5 │ RAM-5 │ RAM-4 │ │#8000│ RAM-2 │ RAM-2 │ RAM-2 │ RAM-2 │ RAM-2 │ │#C000│ см. состояние порта #7FFD │RAM-1или 3│ RAM-3 │ └─────┴────────────┴──────────┴───────┴──────────┴─────────┘ В режиме ZX-SPECTRUM в окне с адреса #C000 может быть включена любая страница с 0 по 7 (это зависит от состояния порта #7FFD) CPM-system -режим когда активно пзу с монитором (работа с экраном стандартные процедуры ввода/вывода с дисков, опрос клавиатуры, прерывания) CPM-users -режим когда активна программа пользователя (в окне 0 страница 0 озу) Примечание для любителей использовать все 1024к оперативки в SPECTRUM режиме. Ниже приводится стандартная процедура переключения страниц 1024 к для SPECTRUM. При вызове в A номер страницы 0-3FH (необходимо помнить, что стек и вызы- вающая программа не должны находится в адресах выше #C000) SET_PAGE PUSH AF AND 7 ;выделяем млад- ;шие 3 бита OR #10 ;по усмотрению ;можно выбрать ;пзу и экран. LD BC,#7FFD OUT (C),A POP AF AND #38 ;маскируем все ;биты, кроме ;3-х старших CPL ;инверсия ;данных (бит ;выборки озу ;взводится) LD BC,#2A53;в TR-DOS ;OUT (C),A RET PUSH BC LD BC,#FFF7 JP #3D2F ;переход в ;TR-DOS После любой подобной команды порт #7FFD отключается. Если вы хотите корректно вернутся в SPECTRUM режим - выполните: EXIT_1024: LD A,#FF LD BC,#2A53 PUSH BC LD BC,#FFF7 JP #3D2F дальнейшее управление страницами как обычно по порту #7FFD 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 с адреса #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-й бит цвета (инверсный)
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября