IPB

Здравствуйте, гость ( Вход | Регистрация )

> Исходники ПЗУ: Драйверный модуль БК-0010
SuperMax
сообщение 20.10.2009, 15:26
Сообщение #1


Администратор
*****

Группа: Root Admin
Сообщений: 6 286
Регистрация: 7.1.2006
Из: Красноярск
Пользователь №: 1




Код

;  #############################################################
;  #                                                           #
;  #    Д Р А Й В Е Р Н Ы Й    М О Д У Л Ь    Б К - 0 0 1 0    #
;  #                                                           #
;  #############################################################


;  РАЗРАБОТАЛ:  ДЯБИН М.И.
;  МОСКВА,  1983 Г.
;
;  ПОСЛЕДНЯЯ РЕДАКЦИЯ:  МАЙ  1984 Г.



;  ====================================
;  **** АРГУМЕНТЫ КОМАНДЫ EMT DMBK ****
;  ====================================



;    КЛАВИАТУРА
;    ----------

INDKLW    = 4       ;- ИНИЦИАЛИЗАЦИЯ ДРАЙВЕРА КЛАВИАТУРЫ

CTKOD    = 6       ;- ЧТЕНИЕ КОДА С КЛАВИАТУРЫ
           ;  ВЫХОД:    R0 - КОД В МЛ. БАЙТЕ

CTSTR    = 10       ;- ЧТЕНИЕ СТРОКИ С КЛАВИАТУРЫ
           ;  ВХОД:    R1 - АДРЕС БУФЕРА СТРОКИ
           ;        R2 - ДЛИНА СТРОКИ (МЛ.Б.)
           ;           - СИМВОЛ-ОГРАНИЧИТЕЛЬ (СТ.Б.)

USTKLC    = 12       ;- УСТАНОВКА КЛЮЧЕЙ КЛАВИАТУРЫ
           ;  ВХОД:    R0 - НОМЕР КЛЮЧА
           ;        R1 - АДРЕС ТЕКСТА КЛЮЧА


;    TV-МОНИТОР
;    ----------

INDMBK    = 14       ;- ИНИЦИАЛИЗАЦИЯ DMBK

FSIM    = 16       ;- ФОРМИРОВАНИЕ СИМВОЛА
           ;  ВХОД:    R0 - КОД СИМВОЛА В МЛ.Б.

FSTR    = 20       ;- ФОРМИРОВАНИЕ СТРОКИ
           ;  ВХОД:    R1 - АДРЕС СТРОКИ
           ;        R2 - ДЛИНА СТРОКИ (МЛ.Б.)
           ;           - СИМВОЛ-ОГРАНИЧИТЕЛЬ (СТ.Б.)

ZSIMSS    = 22       ;- ЗАПИСЬ СИМВОЛА В СЛУЖЕБНУЮ СТРОКУ
           ;  ВХОД:    R0 - КОД СИМВОЛА (0-СБРОС СТРОКИ)
           ;        R1 - НОМЕР ПОЗИЦИИ В СС

USTKK    = 24       ;- УСТАНОВКА КУРСОРА ПО КООРДИНАТАМ
           ;  ВХОД:    R1 - КООРДИНАТА X
           ;        R2 - КООРДИНАТА Y

SEMKK    = 26       ;- С'ЕМ КООРДИНАТ КУРСОРА
           ;  ВЫХОД:    R1 - КООРДИНАТА X
           ;        R2 - КООРДИНАТА Y

FTCK    = 30       ;- ФОРМИРОВАНИЕ ТОЧКИ
           ;  ВХОД:    R0 - 1-ЗАПИСЬ, 0-СТИРАНИЕ
           ;        R1 - КООРДИНАТА X
           ;        R2 - КООРДИНАТА Y

FWEKT    = 32       ;- ФОРМИРОВАНИЕ ВЕКТОРА
           ;  ВХОД:    R0 - 1-ЗАПИСЬ, 0-СТИРАНИЕ
           ;        R1 - КООРДИНАТА X
           ;        R2 - КООРДИНАТА Y

CTSSD    = 34       ;- ЧТЕНИЕ СЛОВА СОСТОЯНИЯ ДИСПЛЕЯ
           ;  ВЫХОД:    R0 - СЛОВО СОСТ. ДИСПЛ.


;    МАГНИТОФОН
;    ----------

DMAG    = 36       ;- ДРАЙВЕР МАГНИТОФОНА
           ;  ВХОД:    R1 - АДРЕС БЛОКА ПАРАМЕТРОВ


;    TLG-КАНАЛ
;    ---------

INDTLG    = 40       ;- ИНИЦИАЛИЗАЦИЯ ДРАЙВЕРА ТЛГ-КАНАЛА
           ;  ВХОД:    R0 - НОМЕР СКОРОСТИ

PDBYT    = 42       ;- ПЕРЕДАЧА БАЙТА
           ;  ВХОД:    R0 - МЛ.Б. НА ПЕРЕДАЧУ

PRBYT    = 44       ;- ПРИЕМ БАЙТА
           ;  ВЫХОД:    R0 - МЛ.Б. ПРИНЯТ

PDMAS    = 46       ;- ПЕРЕДАЧА МАССИВА
           ;  ВХОД:    R1 - АДРЕС МАССИВА
           ;        R2 - ДЛИНА МАССИВА

PRMAS    = 50       ;- ПРИЕМ МАССИВА
           ;  ВХОД:    R1 - АДРЕС БУФЕРА МАССИВА
           ;        R2 - ДЛИНА МАССИВА


;    РЕЗЕРВ
;    ------

RW1    = 52
RW2    = 54
RW3    = 56
RW4    = 60
RW5    = 62
RW6    = 64
RW7    = 66
RW8    = 70
RW9    = 72
RW10    = 74
RW11    = 76
RW12    = 100
RW13    = 102
RW14    = 104
RW15    = 106
RW16    = 110



;   ======================
;   *** КОНСТАНТЫ DMBK ***
;   ======================


    AWPZAW    = 4       ;- АДР.ВЕКТ.ПРЕР. ПО ЗАВИСАНИЮ
    AWPEMT    = 30       ;- АДР.ВЕКТ.ПРЕР. ПО КОМАНДЕ ЕМТ
    APORT    = 177714   ;- АДРЕС ПОРТА
    ASPORT    = 177716   ;- АДРЕС СИСТЕМНОГО ПОРТА




;  ============================
;  **** ОБЛАСТЬ СВЯЗИ DMBK ****
;  ============================



DMBK:    JMP    MNDMBK       ;- ПЕРЕХОД НА МОНИТОР DMBK


;    -------------------------------
;    ** ВХОДЫ ДРАЙВЕРА КЛАВИАТУРЫ **
;    -------------------------------

WIDKLW:    .WORD    MIDKLW       ;- ВХОД ИНИЦИАЛИЗАЦИИ DKLAW
WCTKOD:    .WORD    MCTKOD       ;- ВХОД ЧТЕНИЯ КОДА
WCTSTR:    .WORD    MCTSTR       ;- ВХОД ЧТЕНИЯ СТРОКИ
WUKLC:    .WORD    MUKLC       ;- ВХОД УСТАНОВКИ КЛЮЧЕЙ


;    --------------------------------
;    ** ВХОДЫ ДРАЙВЕРА TV-МОНИТОРА **
;    --------------------------------

WIDMBK:    .WORD    MIDMBK       ;- ВХОД ИНИЦИАЛИЗАЦИИ DMBK
WFSIM:    .WORD    MFSIM       ;- ВХОД ФОРМИРОВАНИЯ СИМВОЛА
WFSTR:    .WORD    MFSTR       ;- ВХОД ФОРМИРОВАНИЯ СТРОКИ
WZSSS:    .WORD    MZSSS       ;- ВХОД ЗАПИСИ СИМВОЛА В СЛУЖ. СТРОКУ
WUSTKK:    .WORD    MUSTKK       ;- ВХОД УСТАНОВКИ КООРДИНАТ КУРСОРА
WSKK:    .WORD    MSKK       ;- ВХОД С'ЕМА КООРДИНАТ КУРСОРА
WFTCK:    .WORD    MFTCK       ;- ВХОД ФОРМИРОВАНИЯ ТОЧКИ
WFWEKT:    .WORD    MFWEKT       ;- ВХОД ФОРМИРОВАНИЯ ВЕКТОРА
WCTSSD:    .WORD    MCTSSD       ;- ВХОД ЧТЕНИЯ ССД


;    --------------------------------
;    ** ВХОДЫ ДРАЙВЕРА МАГНИТОФОНА **
;    --------------------------------

WDMAG:    .WORD    MDMAG       ;- ВХОД ЗАПИСИ/ЧТЕНИЯ МАССИВА


;    -------------------------------
;    ** ВХОДЫ ДРАЙВЕРА ТЛГ-КАНАЛА **
;    -------------------------------

WIDTLG:    .WORD    MIDTLG       ;- ВХОД ИНИЦИАЛИЗАЦИИ DTLG
WPDBYT:    .WORD    MPDBYT       ;- ВХОД ПЕРЕДАЧИ БАЙТА
WPRBYT:    .WORD    MPRBYT       ;- ВХОД ПРИЕМА БАЙТА
WPDMAS:    .WORD    MPDMAS       ;- ВХОД ПЕРЕДАЧИ МАССИВА
WPRMAS:    .WORD    MPRMAS       ;- ВХОД ПРИЕМА МАССИВА


;    --------------------------
;    ** РЕЗЕРВНЫЕ ВХОДЫ DMBK **
;    --------------------------

RWDM1:    .WORD    160000
RWDM2:    .WORD    160004
RWDM3:    .WORD    160010
RWDM4:    .WORD    160014
RWDM5:    .WORD    160020
RWDM6:    .WORD    160024
RWDM7:    .WORD    160030
RWDM8:    .WORD    160034
RWDM9:    .WORD    160040
RWDM10:    .WORD    160044
RWDM11:    .WORD    160050
RWDM12:    .WORD    160054
RWDM13:    .WORD    160060
RWDM14:    .WORD    160064
RWDM15:    .WORD    160070
RWDM16:    .WORD    160074





; ==============================
; *****  ДИСПЕТЧЕР  Е М Т  *****
; ==============================


DEMT:    MOV    R5,-(SP)

    MOV    2(SP),R5   ;  АДРЕС МОДУЛЯ
    MOV    -(R5),R5
    BIC    #177400,R5
    MOV    DMBK(R5),R5

    JSR    PC,(R5)       ;  ОБРАЩЕНИЕ К МОДУЛЮ

    MOV    (SP)+,R5
    RTI





; =====================================
; ***** МОДУЛЬ ИНИЦИАЛИЗАЦИИ DMBK *****
; =====================================


MIDMBK:    CLR    R1       ;  УСТАНОВКА ВЕКТОРОВ
    MOV    #20,R2
1$:    MOV    #100000,(R1)+
    SOB    R2,1$
    MOV    #MNZAW,@#AWPZAW
    MOV    #DEMT,@#AWPEMT
    MOV    #200,@#AWPEMT+2

    MOV    #120,R2       ;  СБРОС ПРИЗНАКОВ
2$:    CLR    (R1)+
    SOB    R2,2$

    EMT    INDKLW       ;- ИНИЦИАЛИЗАЦИЯ DKLAW

    INC    DSIMB       ;- ИНИЦИАЛИЗАЦИЯ DTVM
    INCB    NMPGT
    COM    MASCW
    COM    MCWSS
    JSR    PC,PPRP1

    MOV    #KDBIT0,DLBIT0   ;- ИНИЦИАЛИЗАЦИЯ DMAG
    MOV    #KDBIT1,DLBIT1

    CLR    R0
    EMT    INDTLG       ;- ИНИЦИАЛИЗАЦИЯ DTLG

    CLR    @#APORT       ;- СБРОС ПОРТА
    MOV    #220,@#ASPORT   ;- УСТАНОВКА СИСТЕМНОГО ПОРТА

    MTPS    R0       ;- РАЗРЕШЕНИЕ ПРЕРЫВАНИЙ

    RTS    PC





; ======================================
; *****  М О Н И Т О Р    D M B K  *****
; ======================================




MNDMBK:    MOV    #1000,SP   ;- УСТАНОВКА СТЕКА
    JSR    PC,MIDMBK

    JSR    PC,@#120000   ;- ЗАПУСК ФОКАЛА
    JSR    PC,MIDMBK   ;- ВЫХОД ИЗ ФОКАЛА

MNKOM:    JSR    R5,PPCT       ;- "МОНИТОР БК-0010"
    .WORD    TMON
MNKOM1:    JSR    R5,PPCT       ;- ">"
    .WORD    TPRIGL

    MOV    SP,R1       ;  ПРИЕМ КОМАНДЫ
    SUB    #100,R1
    MOV    R1,R5
2$:    EMT    CTKOD
    CMPB    R0,#30       ;- АНС
    BNE    1$
    CMP    R5,R1
    BEQ    2$
3$:    CLR    (R5)+
4$:    EMT    FSIM
    BR    2$
1$:    MOV    R0,-(R5)   ;- ЗАПИСЬ КОДА В БУФЕР
    TSTB    R5
    BEQ    3$
    CMPB    R0,#12       ;- "ПС"
    BNE    4$
    EMT    FSIM

    MOV    -(R1),R4   ;  ЧТЕНИЕ КОМАНДЫ
    CLR    R5       ;- ЧИСЛО
    MOV    R4,R3
7$:    CMP    R3,R0       ;- "ПС"
    BEQ    5$
    CMP    R3,#67       ;- ЦИФРА
    BHI    6$
    SUB    #60,R3
    BMI    6$
    ASL    R5
    ASL    R5
    ASL    R5
    ADD    R3,R5
6$:    MOV    -(R1),R3   ;- ЧТЕНИЕ СЛЕД.СИМВ.
    BR    7$

5$:    BIC    #240,R4       ;  АНАЛИЗ КОМАНДЫ
    CMPB    R4,#124       ;- "T"
    BHI    10$
    SUB    #114,R4       ;- "L"
    BMI    11$
    ASL    R4

    MOV    MNKOMT(R4),R1   ;  ПЕРЕДАЧА УПРАВЛЕНИЯ
    JSR    PC,(R1)
    BR    MNKOM1

11$:    ADD    #13,R4       ;- A : K
    BPL    MNDMBK
    BR    MNKOM1

10$:    JSR    PC,@#160110   ;- > T
    BR    MNKOM1

MNKOMT:    .WORD    PCTTLG       ;- "L"
    .WORD    PCTMAG       ;- "M"
    .WORD    160110       ;- "N"
    .WORD    160110       ;- "O"
    .WORD    140000       ;- "P"
    .WORD    160110       ;- "Q"
    .WORD    160104       ;- "R"
    .WORD    PSTART       ;- "S"
    .WORD    160100       ;- "T"



;    -----------------------------------
;    ** 0. ОБРАБОТКА ЗАВИСАНИЯ И СТОП **
;    -----------------------------------

MNZAW:    MOV    #1000,SP
    MOV    #220,@#ASPORT
    EMT    INDKLW
    BR    MNKOM


;    -----------------------------
;    ** 1. ЧТЕНИЕ ФАЙЛА С ЛИНИИ **
;    -----------------------------

PCTTLG:    EMT    PRBYT       ;  УСТАНОВКА СВЯЗИ
    EMT    PDBYT

    MOV    #BUFSTA,R1   ;  ПРИЕМ АДРЕСА И ДЛИНЫ
    MOV    #4,R2
    EMT    PRMAS
    TST    R5
    BEQ    1$
    MOV    R5,BUFSTA

1$:    MOV    BUFSTA,R1   ;  ПРИЕМ МАССИВА
    MOV    BUFDL,R2
    EMT    PRMAS
    JSR    R5,PPCT       ;- ПЕЧАТЬ СООБЩЕНИЯ
    .WORD    TFZ

    RTS    PC


;    -----------------------------------
;    ** 2. ЧТЕНИЕ ФАЙЛА С МАГНИТОФОНА **
;    -----------------------------------

PCTMAG:    MOV    #BPDMAG,R1   ;  ЗАГРУЗКА BPDMAG
    MOV    #3,(R1)+   ;- КОМАНДА
    MOV    R5,(R1)+   ;- АДРЕС
    CLR    (R1)+       ;- ДЛИНА
    JSR    R5,PPCT       ;- "ИМЯ ФАЙЛА?"
    .WORD    TIMF
    MOV    #5020,R2
    EMT    CTSTR
    DEC    R1
2$:    MOVB    #40,(R1)+
    DEC    R2
    BPL    2$

1$:    MOV    #BPDMAG,R1   ;  ЧТЕНИЕ ФАЙЛА
    EMT    DMAG

    MOVB    1(R1),R0   ;  АНАЛИЗ ОТВЕТА
    BEQ    4$
    DEC    R0
    BNE    3$
    JSR    PC,5$       ;- ПЕЧАТЬ ИМ. ТЕК. ФАЙЛА
    MOV    #12,R0
    EMT    FSIM
    BR    1$

3$:    JSR    R5,PPCT       ;- "*ОШИБКА*"
    .WORD    TOH
    BR    KCTMAG

4$:    JSR    R5,PPCT       ;- "ЗАГРУЖЕН ФАЙЛ "
    .WORD    TZF
5$:    ADD    #32,R1
    MOV    #20,R2
    EMT    FSTR

KCTMAG:    RTS    PC


;    --------------
;    ** 3. СТАРТ **
;    --------------

PSTART:    TST    R5
    BNE    1$
    MOV    BUFSTA,R5   ;- СТАРТОВЫЙ АДРЕС
1$:    JSR    PC,(R5)

    RTS    PC


;    ----------------------
;    ** 4. ПЕЧАТЬ ТЕКСТА **
;    ----------------------

PPCT:    MOV    (R5)+,R3
    BR    1$
2$:    EMT    FSIM
1$:    MOVB    (R3)+,R0
    BNE    2$

    RTS    R5



;   =====================
;   *** ДАННЫЕ MNDMBK ***
;   =====================


TMON:    .BYTE    12,355,357,356,351,364,357,362,40   ;  МОНИТОР БК-0010
    .BYTE    342,353,55,60,60,61,60,0
TPRIGL:    .BYTE    12,12,76,40,0               ;  >
TIMF:    .BYTE    351,315,321,40,306,301,312,314,301,77,40,0;  ИМЯ ФАЙЛА?
TZF:    .BYTE    12,372,301,307,322,325,326,305,316,40   ;  ЗАГРУЖЕН ФАЙЛ
    .BYTE    306,301,312,314,40,0
TFZ:    .BYTE    12,346,301,312,314,40           ;  ФАЙЛ ЗАГРУЖЕН
    .BYTE    332,301,307,322,325,326,305,316,0
TOH:    .BYTE    12,52,357,373,351,342,353,341,52,0   ;  *ОШИБКА*
    .EVEN



--------------------
Живы будем - Не помрем !
Пользователь в офлайнеКарточка пользователяОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 23.4.2024, 18:21