
Сообщение от
Black_Cat
а ты не мог бы её дать для каждого порта с учётом внесённых доделок
Вот базовые порты ZXMC1:
Код:
;======================================================
; 1) Клавиатура AT -> ZX-kbd
; 0xXXFE - порты клавиатуры (256 портов чтения)
;======================================================
; 2) Mouse PS/2->Kempston Mouse
; Адреса портов (адресация полная)
; 0xFADF (64223) = A8=0,A10=0 - buttons
; 0xFEDF (65247) = A8=0,A10=1 - buttons
; d7..d4 = 1111 или Z
; d3 - всегда 1
; d2 - средняя кнопка
; d1 - левая кнопка
; d0 - правая кнопка
; при одновременном нажатии левой и правой кнопки
; их назначение меняется местами.
; 0xFBDF (64479) = A8=1,A10=0 - X
; 0xFFDF (65503) = A8=1,A10=1 - Y
;======================================================
; 2a) Порты скан-кодов клавиатуры (8 портов)
.equ scanbuf =0x80DF ;буфер скан-кодов IBM (6 портов)
.equ statkbd =0x86DF ;текущий статус клавиатуры
; Бит 0 - Scroll Lock
; Бит 1 - Num Lock
; Бит 2 - Caps Lock
; Бит 6 - Shift
; Бит 7 - Флаг нажатия
.equ lastkey =0x87DF ;скан-код последней нажатой клавиши
;=================================================
; 3) Ext Modem -> Модем по Кондратьеву
; Базовый адрес: 0xF8EF (63727) - 8 портов
; Порты модема:
;------ Чтение ------------------
.equ DAT_RS =0xF8EF ;Данные на чтение и запись
.equ INT_IR =0xFAEF ;Идентификаторы прерываний
.equ LIN_CR =0xFBEF ;Line Control registr
.equ STA_RS =0xFDEF ;Регистр статуса RS232
.equ RDY_RX =0 ;бит гот.RX
.equ RDY_TX =5 ;бит гот.Буф.TX
.equ EMP_TX =6 ;Передатчик пуст
.equ MOD_SR =0xFEEF ;Modem Status Registr
.equ CTS =4 ;Clear to Send
.equ DSR =5 ;Data Set Ready
.equ DCD =7 ;Data Carrier Detect
;------ Запись ------------------
.equ DIV_L =0xF8EF ;мл.байт скорости (DLAB=1)
.equ DIV_H =0xF9EF ;ст.байт скорости (DLAB=1)
.equ INT_EN =0xF9EF ;биты прерываний (DLAB=0)
.equ LIN_SW =0xFBEF ;Line Switch
.equ DLAB =7 ;бит упр. скоростью
.equ MOD_CR =0xFCEF ;Modem Control Registr
.equ RTS =1 ;Request to Send
.equ DTR =0 ;Data Terminal Ready
;=================================================
; 3a) RTC - часы реального времени PCF8583
; Базовый адрес: 0xE0EF (57583) - 8 портов
.equ BA_rtc = 0xE0EF ;базовый адрес
.equ t_sta = 0xE0EF ;статус/команда
.equ t_sec = 0xE1EF ;секунды
.equ t_min = 0xE2EF ;минуты
.equ t_hou = 0xE3EF ;часы
.equ t_day = 0xE4EF ;дни месяца
.equ t_mon = 0xE5EF ;месяц
.equ t_yea = 0xE6EF ;год
.equ t_wkd = 0xE7EF ;день недели
;=================================================
Дополнительные порты для ZXMC2 выложу завтра.