IPB

Çäðàâñòâóéòå, ãîñòü ( Âõîä | Ðåãèñòðàöèÿ )

 
Îòâåòèòü â ýòó òåìóÎòêðûòü íîâóþ òåìó
> Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010
SuperMax
ñîîáùåíèå 20.10.2009, 15:26
Ñîîáùåíèå #1


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 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



--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
SuperMax
ñîîáùåíèå 20.10.2009, 15:30
Ñîîáùåíèå #2


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 7.1.2006
Èç: Êðàñíîÿðñê
Ïîëüçîâàòåëü ¹: 1




Êîä






;  **********************************************
;  *                                            *
;  *    Ä Ð À É Â Å Ð    Ê Ë À Â È À Ò Ó Ð Û    *
;  *                                            *
;  **********************************************



;   =======================
;   *** ÊÎÍÑÒÀÍÒÛ DKLAW ***
;   =======================


    AWPKL1    = 60       ;- ÀÄÐÅÑ ÂÅÊÒÎÐÀ ÏÐ. ÊËÀÂ.1
    AWPKL2    = 274       ;- ÀÄÐÅÑ ÂÅÊÒÎÐÀ ÏÐ. ÊËÀÂ.2
    ARSKL    = 177660   ;- ÀÄÐÅÑ ÐÅÃ.ÑÎÑÒÎßÍÈß ÊËÀÂ.
    ARDKL    = 177662   ;- ÀÄÐÅÑ ÐÅÃ.ÄÀÍÍÛÕ ÊËÀÂ.

    ASPORT    = 177716   ;- ÀÄÐÅÑ ÑÈÑÒÅÌÍÎÃÎ ÏÎÐÒÀ
    APRWK    = 262       ;- ÀÄÐÅÑ ÏÐÈÇÍÀÊÀ ÂÊ
    KPOWTS    = 20000       ;- ÊÎÍÑÒÀÍÒÀ ÏÎÂÒÎÐÀ ÑÈÌÂÎËÀ
    KPOWTG    = 4000       ;- ÊÎÍÑÒÀÍÒÀ ÏÎÂÒÎÐÀ ÃÒ





; ======================================
; ***** ÌÎÄÓËÜ ÈÍÈÖÈÀËÈÇÀÖÈÈ DKLAW *****
; ======================================




MIDKLW:    MOV    #BCTKW1,@#AWPKL1   ;- ÓÑÒ. ÂÊË1
    MOV    #200,@#AWPKL1+2

    MOV    #BCTKW2,@#AWPKL2   ;- ÓÑÒ. ÂÊË2
    MOV    #200,@#AWPKL2+2

    CLR    APOPKL       ;- ÑÁÐÎÑ ÐÅÆÈÌÀ ÏÐÅÐÛÂÀÍÈß
    CLR    PRWK       ;- ÑÁÐÎÑ ÏÐÈÇÍÀÊÀ ÊÎÄÀ ÂÊ
    CLR    @#ARSKL       ;- ÑÁÐÎÑ ÌÀÑÊÈ ÏÐÅÐÛÂÀÍÈß

    RTS    PC





; ==============================
; ***** ÌÎÄÓËÜ ×ÒÅÍÈß ÊÎÄÀ *****
; ==============================


MCTKOD:   ;ÂÛÕÎÄ:    R0 - ÊÎÄ Â ÌË.ÁÀÉÒÅ



;   =================================
;   *** 1. ÁËÎÊ ÓÏÐÀÂËÅÍÈß MCTKOD ***
;   =================================


BUMCTK:    MOV    @#ARDKL,R0   ;- ÔÈÊÒÈÂÍÎÅ ×ÒÅÍÈÅ ÊËÀÂ.

1$:    TSTB    PRZKB       ;  ×ÒÅÍÈÅ ÊÎÄÀ Ñ ÊËÀÂÈÀÒÓÐÛ
    BEQ    2$
    CLR    R0
    BISB    BUFKL,R0
    CLRB    PRZKB       ;- ÐÀÇÐÅØÅÍÈÅ ÇÀÏÈÑÈ ÊÎÄÀ Â ÁÓÔÅÐ
    RTS    PC

2$:    TSTB    SCKLC       ;  ÊËÞ×
    BEQ    3$
    JSR    PC,PZKKLC
    BR    1$

3$:    TSTB    SCTAB       ;  ÒÀÁÓËßÖÈß
    BEQ    4$
    JSR    PC,PZKTAB
    BR    1$

4$:    TSTB    PRPOWT       ;  ÏÎÂÒÎÐ
    BEQ    5$
    JSR    PC,PPOWT
    BR    1$

5$:    MTPS    #0       ;- ÐÀÇÐÅØÅÍÈÅ ÏÐÅÐÛÂÀÍÈß
    BR    1$



;   ========================================
;   *** 2. ÁËÎÊ ×ÒÅÍÈß ÊÎÄÀ ÏÎ ÂÅÊÒÎÐÓ 1 ***
;   ========================================


BCTKW1:    JSR    R4,PSREG0
    MOV    R5,-(SP)

    JSR    PC,PCTK       ;  ×ÒÅÍÈÅ ÊÎÄÀ

    CMPB    R0,#20       ;  ÊÎÄÛ ÐÅÆÈÌÎÂ ÊËÀÂ.
    BHI    1$

    MOV    R0,R1       ;  ÂÛÁÎÐ ÊÎÄÀ
    SUB    #12,R1
    BMI    2$
    ASL    R1
    ADD    R1,PC
    BR    3$
    BR    2$
    BR    2$
    BR    4$
    BR    5$
    BR    6$
    BR    7$

3$:    TST    @#APRWK       ;  ÏÑ
    BEQ    2$
    MOV    #15,R0
    BR    2$

5$:    MOVB    #200,PRRUS   ;  ÐÓÑ
    BR    9$

6$:    CLRB    PRRUS       ;  ËÀÒ
9$:    CLR    R0
    CLR    SCKOD
    JSR    PC,PFINDR
    BR    KCTKW1

7$:    CLR    R3       ;- ÑÁÐ. ÒÀÁ.
4$:    JSR    PC,PUTAB   ;- ÓÑÒ. ÒÀÁ.  
    BR    KCTKW1

1$:    CMPB    R0,#77       ;  ÌÎÄÈÔ. ÊÎÄÀ
    BLOS    2$
    BISB    PRRUS,R0

2$:    JSR    PC,PZKBUF   ;  ÇÀÏÈÑÜ ÊÎÄÀ Â ÁÓÔÅÐ

KCTKW1:    MOV    (SP)+,R5
    JSR    R4,PWREG

    RTI


;    ------------------------------
;    ** 2.1. ÓÑÒÀÍÎÂÊÀ ÒÀÁÓËßÖÈÈ **
;    ------------------------------

PUTAB:    JSR    PC,POPSIM   ;  ÎÏÐÅÄ. ÏÎÇ. ÑÈÌÂÎËÀ

    TST    R3       ;  ÓÑÒ. ÒÀÁ.
    BEQ    1$
    BIS    R0,MTAB(R1)
    BR    2$

1$:    BIC    R0,MTAB(R1)   ;  ÑÁÐ. ÒÀÁ.

2$:    JSR    PC,PFINDT   ;  ÓÑÒÀÍÎÂÊÀ ÈÍÄÈÊ.ÒÀÁ.

    RTS    PC



;   ========================================
;   *** 3. ÁËÎÊ ×ÒÅÍÈß ÊÎÄÀ ÏÎ ÂÅÊÒÎÐÓ 2 ***
;   ========================================


BCTKW2:    JSR    R4,PSREG0
    MOV    R5,-(SP)

    JSR    PC,PCTK       ;  ×ÒÅÍÈÅ È ÌÎÄÈÔ. ÊÎÄÀ
    BISB    #200,R0

    CMPB    R0,#277       ;  ÊÎÄÛ ÏÎËÓÃÐÀÔÈÊÈ
    BLOS    1$
    BICB    #100,R0
    BISB    #40,R0
    BR    2$

1$:    CMPB    R0,#271       ;  ÊËÞ×È
    BHI    3$
    MOV    R0,R1
    SUB    #260,R1
    BMI    3$
    TSTB    SCKLC
    BNE    KCTKW2
    ASL    R1
    MOV    AKLC(R1),TAKLC   ;- ÇÀÏÓÑÊ ÊËÞ×À
    BEQ    KCTKW2
    MOVB    @TAKLC,SCKLC
    INC    TAKLC
    JSR    PC,PZKLC1
    BR    KCTKW2

3$:    CMPB    R0,#237       ;  ÊÎÄÛ ÐÅÆÈÌÎÂ ÄÈÑÏËÅß
    BLOS    4$
    BICB    #40,R0
    BISB    #20,R0
    CMPB    R0,#232       ;- ÃÀØ. Ê.
    BEQ    8$
    CMPB    R0,#235       ;- ÈÍÂ. Ý.
    BEQ    8$
    CMPB    R0,#236       ;- ÓÑÒ.ÈÍÄ.
    BNE    2$

8$:    EMT    FSIM       ;- ÈÑÓ,ÁËÐ,ÃÀØ.Ê,ÈÍÂ.Ý,ÓÑÒ.ÈÍÄ
    BR    KCTKW2

4$:    CMPB    R0,#211       ;  ÒÀÁ
    BLO    5$
    BNE    6$
    JSR    PC,PTAB
    BR    KCTKW2

5$:    CMPB    R0,#204       ;  ÁËÐ,ÈÑÓ
    BHI    7$

    CMPB    R0,#201       ;  ÏÎÂÒÎÐ
    BHI    8$
    BNE    7$
    INCB    PRPOWT
    JSR    PC,PPOWT1
    BR    KCTKW2

7$:    BIS    #20,R0       ;  ÃÐÀÔ. ÊÎÄÛ È ØÀÃ
    BR    2$

6$:    CMPB    R0,#212       ;  ÎÑÒÀÍÎÂ
    BNE    9$
10$:    TSTB    @#ARSKL
    BPL    10$
    JSR    PC,PCTK
    BR    KCTKW2

9$:    CMPB    R0,#213       ;  ÑÁÐ.Ê.ÑÒÐ.
    BNE    2$
    MOV    #231,R0

2$:    JSR    PC,PZKBUF   ;  ÇÀÏÈÑÜ ÊÎÄÀ Â ÁÓÔÅÐ


KCTKW2:    MOV    (SP)+,R5
    JSR    R4,PWREG

    RTI


;    ----------------------------
;    ** 3.1. ÇÀÏÈÑÜ ÊÎÄÀ ÊËÞ×À **
;    ----------------------------

PZKKLC:    MOVB    @TAKLC,R0
    JSR    PC,PZKBUF
    INC    TAKLC
    DECB    SCKLC
    BEQ    KZKKLC
PZKLC1:    TST    @#APOPKL   ;- ÐÅÆÈÌ ÏÐÅÐ.
    BNE    PZKKLC

KZKKLC:    RTS    PC


;    --------------------
;    ** 3.2. ÒÀÁÓËßÖÈß **
;    --------------------

PTAB:    JSR    PC,POPSIM   ;  ÎÏÐÅÄ. ÏÎÇ. ÑÈÌÂ.

    MOVB    #1,SCTAB   ;  ÏÎÈÑÊ ÏÎÇÈÖÈÈ
    ASL    R0
    BCS    1$
2$:    BIT    R0,MTAB(R1)
    BNE    PZKT1
    INCB    SCTAB
    ASL    R0
    BCC    2$

1$:    ADC    R0       ;  ÈÇÌÅÍÅÍÈÅ ÀÄÐ. ÑËÎÂÀ
    ADD    #2,R1
    CMP    R1,#4
    BLO    2$
    TSTB    PRCW
    BNE    PZKT1
    CMP    R1,#10
    BNE    2$

PZKT1:    TST    @#APOPKL   ;  ÇÀÏÈÑÜ ÊÎÄÀ ÒÀÁÓËßÖÈÈ
    BEQ    KTAB
PZKTAB:    MOV    #40,R0
    JSR    PC,PZKBUF
    DECB    SCTAB
    BNE    PZKT1

KTAB:    RTS    PC


;    -----------------
;    ** 3.3. ÏÎÂÒÎÐ **
;    -----------------

PPOWT:    JSR    PC,PZKB1
    MOV    BKPOWT,R0   ;- ÇÀÄÅÐÆÊÀ
1$:    SOB    R0,1$
    BIT    #100,@#ASPORT   ;- ÏÐÎÂÅÐÊÀ ÐÅÆ. ÏÎÂÒ.
    BEQ    PPOWT1
    CLRB    PRPOWT
    BR    KPOWT
PPOWT1:    TST    @#APOPKL   ;- ÐÅÆÈÌ ÏÐÅÐ.
    BNE    PPOWT

KPOWT:    RTS    PC





; ================================
; ***** ÌÎÄÓËÜ ×ÒÅÍÈß ÑÒÐÎÊÈ *****
; ================================


;    ÂÕÎÄ:    R1 - ÀÄÐÅÑ ÑÒÐÎÊÈ
;        R2 - ÄËÈÍÀ ÑÒÐÎÊÈ (ÌË.Á.),ÑÈÌÂ.ÎÃÐÀÍÈ×.(ÑÒ.Á.)


MCTSTR:    MOV    R0,-(SP)

    MOV    R2,R5       ;  ÏÎÄÃÎÒÎÂÊÀ ÎÃÐÀÍÈ×.
    SWAB    R5
    BIC    #177400,R2
    MOV    R2,-(SP)

1$:    EMT    CTKOD       ;  ×ÒÅÍÈÅ ÑÈÌÂÎËÀ
    CMPB    R0,#30       ;- ÀÍÑ
    BNE    2$
    CMP    R2,(SP)
    BEQ    1$
    DEC    R1
    ADD    #2,R2
    BR    3$
2$:    MOVB    R0,(R1)+
3$:    EMT    FSIM

    CMPB    R0,R5       ;  ÏÐÎÂÅÐÊÀ ÎÃÐÀÍÈ×.
    BEQ    KCTSTR
    SOB    R2,1$

KCTSTR:    MOV    (SP)+,R0
    MOV    (SP)+,R0
    RTS    PC





; ===================================
; ***** ÌÎÄÓËÜ ÓÑÒÀÍÎÂÊÈ ÊËÞ×ÅÉ *****
; ===================================


;    ÂÕÎÄ:    R0 - ÍÎÌÅÐ ÊËÞ×À
;        R1 - ÀÄÐÅÑ ÒÅÊÑÒÀ ÊËÞ×À


MUKLC:    TST    R0       ;  ÏÐÎÂÅÐÊÀ ÍÎÌÅÐÀ ÊËÞ×À
    BLE    KUKLC
    CMP    R0,#12
    BHI    KUKLC
    BNE    1$
    CLR    R0

1$:    ASL    R0
    MOV    R1,AKLC(R0)   ;  ÓÑÒÀÍÎÂÊÀ ÊËÞ×À

KUKLC:    RTS    PC




;  ======================================
;  **** ÁÈÁËÈÎÒÅÊÀ ÏÎÄÏÐÎÃÐÀÌÌ DKLAW ****
;  ======================================



;    ----------------------
;    ** 0.1. ×ÒÅÍÈÅ ÊÎÄÀ **
;    ----------------------

PCTK:    TST    SCUIND       ;  ÓÑÒ. ÈÍÄÈÊÀÒÎÐÎÂ
    BEQ    4$
    JSR    PC,PUINDR
4$:    MOV    #177777,SCKOD

PSIGN:    MOV    #50,R2       ;  ÑÈÃÍÀË
    MOV    #100,R3
3$:    MOV    #320,@#ASPORT   ;- 1
    MOV    R3,R0
1$:    SOB    R0,1$
    MOV    #220,@#ASPORT   ;- 0
    MOV    R3,R0
2$:    SOB    R0,2$
    DEC    R3
    SOB    R2,3$
    MOV    @#ASPORT,R0   ;- ÑÁÐÎÑ ÏÐÈÇÍ. ÑÒÎÏ

    MOVB    @#ARDKL,R0   ;- ×ÒÅÍÈÅ ÊÎÄÀ
    RTS    PC


;    ------------------------------
;    ** 0.2. ÇÀÏÈÑÜ ÊÎÄÀ Â ÁÓÔÅÐ **
;    ------------------------------

PZKBUF:    TSTB    PRZKB       ;  ÇÀÏÈÑÜ ÊÎÄÀ Â ÁÓÔ.
    BNE    PZKB2
    MOVB    R0,BUFKL
PZKB1:    INCB    PRZKB

PZKB2:    MOV    @#APOPKL,R5   ;  ÏÅÐÅÄÀ×À ÓÏÐ. ÏÎ ÏÐÅÐÛÂÀÍÈÞ
    BEQ    KZKBUF
    JSR    PC,(R5)

KZKBUF:    RTS    PC


;    -----------------------------------------------
;    ** 0.3. ÎÏÐÅÄÅËÅÍÈÅ ÏÎÇÈÖÈÈ ÑÈÌÂÎËÀ Â ÑÒÐÎÊÅ **
;    -----------------------------------------------

POPSIM:    MOV    NOMSIM,R1   ;  ÏÎÄÃ. Ñ×. ÏÎÇ.
    BIC    #177700,R1
    TSTB    PRCW
    BEQ    1$
    ASR    R1

1$:    MOV    R1,R2       ;  ÎÏÐÅÄ. ÏÎÇ. Â ÑËÎÂÅ
    BIC    #177760,R2
    INC    R2
    CLR    R0
    SEC
2$:    ROL    R0
    SOB    R2,2$

    BIC    #177717,R1   ;  ÎÏÐÅÄ. ÑËÎÂÀ
    ASR    R1
    ASR    R1
    ASR    R1

    RTS    PC



--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
SuperMax
ñîîáùåíèå 20.10.2009, 15:30
Ñîîáùåíèå #3


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 7.1.2006
Èç: Êðàñíîÿðñê
Ïîëüçîâàòåëü ¹: 1



Êîä







;  ************************************************
;  *                                              *
;  *    Ä Ð À É Â Å Ð    T V - Ì Î Í È Ò Î Ð À    *
;  *                                              *
;  ************************************************



;   =======================
;   *** ÊÎÍÑÒÀÍÒÛ DTVMN ***
;   =======================

    ARRUL    = 177664   ;- ÀÄÐÅÑ ÐÅÃÈÑÒÐÀ ÐÓËÎÍÀ
    NZRUL0    = 1330       ;- ÍÀ×. ÇÍÀ×ÅÍÈÅ RRUL  ÎÑÍ.ÐÅÆ.
    NZRUL1    = 230       ;- ÍÀ×. ÇÍÀ×ÅÍÈÅ RRUL  ÐÅÆ. ÐÏ

    KSSTR    = 100       ;- ÊÎËÈ×. ÑÈÌÂÎËΠ ÑÒÐÎÊÅ
    KTVSS    = 12       ;- ÊÎËÈ×. TV ÑÒÐÎÊ Â ÑÈÌÂ. ÑÒÐÎÊÅ
    KTVSSS    = 20       ;- ÊÎËÈ×. TV ÑÒÐÎÊ Â ÑËÓÆ. ÑÒÐÎÊÅ

    DTVSTB    = 100       ;- ÄËÈÍÀ TV ÑÒÐÎÊÈ
    DTVSTS    = 40
    DSSTRB    = 1200       ;- ÄËÈÍÀ ÑÈÌÂÎËÜÍÎÉ ÑÒÐÎÊÈ
    DSSTRS    = 500
    DSLSTB    = 2000       ;- ÄËÈÍÀ ÑËÓÆÅÁÍÎÉ ÑÒÐÎÊÈ
    DSLSTS    = 1000





; ========================================
; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÑÈÌÂÎËÎÂ *****
; ========================================


MFSIM:   ;ÂÕÎÄ:    R0 - ÊÎÄ Â ÌË. ÁÀÉÒÅ



;   =================================
;   *** 1. ÁËÎÊ ÓÏÐÀÂËÅÍÈß MFSTVM ***
;   =================================


BUMFS:    JSR    R4,PSREG   ;  ÑÎÕÐÀÍÅÍÈÅ ÐÅÃÈÑÒÐÎÂ
    INC    SCKOD       ;- Ñ×ÅÒ ÊÎÄÎÂ

    TSTB    PRGRAF       ;  ÒÅÊÑÒÎÂÀß ÃÐÀÔÈÊÀ
    BEQ    1$
    JSR    PC,BTG
    BR    KBUMFS

1$:    BIC    #177400,R0   ;  ÃÐÀÔÈ×ÅÑÊÈÅ ÑÈÌÂÎËÛ
    CMPB    R0,#177
    BHI    2$
    CMPB    R0,#37
    BLOS    3$
    SUB    #20,R0
5$:    JSR    PC,BGS
    BR    KBUMFS
2$:    CMPB    R0,#237
    BLOS    4$
    SUB    #60,R0
    BR    5$

3$:    CMPB    R0,#21       ;  ÐÅÄÀÊÒÈÐÓÞÙÈÅ ÑÈÌÂÎËÛ
    BLOS    6$
7$:    JSR    PC,BRS
    BR    KBUMFS

6$:    CMPB    R0,#10       ;  ÓÏÐÀÂËßÞÙÈÅ ÑÈÌÂÎËÛ
    BEQ    7$
    JSR    PC,BUS
    BR    KBUMFS

4$:    JSR    PC,BFS       ;  ÔÓÍÊÖÈÎÍÀËÜÍÛÅ ÑÈÌÂÎËÛ

KBUMFS:    JSR    R4,PWREG
    RTS    PC



;   ====================================
;   *** 2. ÁËÎÊ ÃÐÀÔÈ×ÅÑÊÈÕ ÑÈÌÂÎËΠ***
;   ====================================


BGS:    JSR    PC,PFSIM   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ

    ADD    DSIMB,NOMSIM   ;  ÈÇÌÅÍÅÍÈÅ ÀÄÐÅÑÀ ÑÈÌÂÎËÀ
    JSR    PC,PFASIM

    JSR    PC,PFSK       ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÊÓÐÑÎÐÀ

    RTS    PC


;    --------------------------------------
;    ** 2.1. ÔÎÐÌÈÐÎÂÀÍÈÅ ÀÄÐÅÑÀ ÑÈÌÂÎËÀ **
;    --------------------------------------

PFASIM:    TSTB    R5       ;  ÏÐÈÇÍÀÊ ÏÐÎÈÇÂ. ÀÄÐÅÑÀ
    BEQ    1$

    BIT    #77,NOMSIM   ;  ÏÐÎÂÅÐÊÀ ÍÀ×ÀËÀ ÑÒÐÎÊÈ
    BNE    2$

1$:    TSTB    PRNRUL       ;  ÂÎÑÑÒ. ÑËÓÆ. ÑÒÐÎÊÈ
    BEQ    8$
    JSR    PC,PFSSTR
    CLRB    PRNRUL

8$:    CLR    R3       ;  ÎÏÐÅÄ. ÍÀÏÐÀÂË. ÄÂÈÆ. ÊÓÐÑ.
    MOV    NOMSIM,R5
    BPL    3$
    TST    (R3)+       ;- ÂÂÅÐÕ
6$:    ADD    #KSSTR,R5
    BMI    6$
    BR    4$
3$:    CMP    R5,KSVP       ;- ÂÍÈÇ
    BLO    5$
7$:    SUB    #KSSTR,R5
    CMP    R5,KSVP
    BHIS    7$

4$:    JSR    PC,PRUL       ;  ÎÒÐÀÁÎÒÊÀ ÐÓËÎÍÀ

5$:    MOV    R5,NOMSIM   ;  ÂÛ×ÈÑËÅÍÈÅ AS
    MOV    R5,R4
    BIC    #177700,R4
    BIC    #77,R5
    ASL    R5
    ADD    R5,R4
    ASL    R5
    ASL    R5
    ADD    R5,R4
    ADD    BAZVP,R4
    BIC    #140000,R4
    ADD    ANVP,R4
    MOV    R4,AS
    BR    KFASIM

2$:    ADD    DSIMB,AS   ;  ÂÛ×ÈÑËÅÍÈÅ AS  ÑÒÐÎÊÅ

KFASIM:    RTS    PC


;    -----------------------------
;    ** 2.1.1. ÎÒÐÀÁÎÒÊÀ ÐÓËÎÍÀ **
;    -----------------------------

PRUL:    TSTB    PRRP       ;  ÏÐÈÇÍÀÊ ÐÀÑØÈÐÅÍÍÎÉ ÏÀÌßÒÈ
    BNE    1$

    MOV    KRUL1(R3),R4   ;  ÑÄÂÈÃ ÑËÓÆ. ÑÒÐÎÊÈ
    MOV    BAZVP,R1
    MOV    #KTVSSS,R2
    MOV    #DSSTRB,-(SP)
    TST    R3
    BEQ    2$
    SUB    #DSLSTB,R1   ;- ÑÄÂÈÃ ÂÂÅÐÕ
    NEG    (SP)
2$:    BIC    #140000,R1
    ADD    ANVP,R1
    INCB    PRNRUL
    JSR    PC,(R4)

    MOV    #KTVSS,R4   ;  ÑÄÂÈÃ ÝÊÐÀÍÀ
    MOV    (SP)+,R1
    BPL    3$
    NEGB    R4       ;- ÑÄÂÈÃ ÂÍÈÇ
3$:    ADD    BAZVP,R1
    BIC    #140000,R1
    MOV    R1,BAZVP
    ADD    R4,@#ARRUL
    DECB    PRNRUL
    BR    KRUL

1$:    MOV    #36,R2       ;  ÐÅÆÈÌ ÐÀÑØÈÐ. ÏÀÌßÒÈ
    MOV    #73200,R1   ;- ÑÄÂÈÃ ÝÊÐÀÍÀ ÂÂÅÐÕ
    NEG    R3
    BEQ    4$
    MOV    #75600,R1   ;- ÑÄÂÈÃ ÝÊÐÀÍÀ ÂÍÈÇ
4$:    MOV    KRUL2(R3),R4
    JSR    PC,(R4)

KRUL:    RTS    PC
KRUL1:    .WORD    PSDWN
KRUL2:    .WORD    PSDWW


;    -------------------------------
;    ** 2.2. ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ **
;    -------------------------------

PFSIM:    ASL    R0       ;  ÂÛ×ÈÑËÅÍÈÅ ÀÄÐ. ÈÇÎÁÐ.
    MOV    R0,R1
    ASL    R0
    ASL    R0
    ADD    R0,R1
    ADD    #IZSIM,R1

    MOV    AS,R3       ;  ÏÎÄÃ. ÀÄÐ. È Ñ×ÅÒ×ÈÊÀ
    MOV    #11,R2

    TSTB    PRCW       ;  ×Á/ÖÂ
    BNE    PFCWS

;    ÔÎÐÌÈÐÎÂÀÍÈÅ ×ÅÐÍÎ-ÁÅËÎÃÎ ÑÈÌÂÎËÀ
;    ---------------------------------

    CLR    R0       ;  ÓÑÒ. ÏÐÈÇÍ. ÈÍÂÅÐÑÈÈ
    TSTB    PRINWS
    BEQ    1$
    COM    R0
1$:    TST    FON
    BEQ    2$
    COM    R0

2$:    MOVB    (R1)+,(R3)   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ
    TST    R0
    BEQ    3$
    COMB    (R3)
3$:    JSR    PC,PFTAN
    SOB    R2,2$
    MOVB    (R1)+,(R3)
    TST    R0
    BEQ    4$
    COMB    (R3)

4$:    TSTB    PRPODC       ;  ÏÎÄ×ÅÐÊÈÂÀÍÈÅ
    BEQ    KFSIM
    MOVB    MASCW,(R3)
    BR    KFSIM

;    ÔÎÐÌÈÐÎÂÀÍÈÅ ÖÂÅÒÍÎÃÎ ÑÈÌÂÎËÀ
;    -----------------------------

PFCWS:    CLR    -(SP)

6$:    MOVB    (R1)+,R5   ;  ÏÎÄÃ. ÈÑÕ. ÄÀÍÍ. ÑÒÐÎÊÈ
    BIC    #177400,R5
    MOV    #20,R4
    CLR    R0

    TSTB    PRINWS       ;  ÈÍÂÅÐÑÈß
    BEQ    1$
    COMB    R5

1$:    TSTB    R5       ;  ÐÀÑØÈÐÅÍÈÅ ÑÒÐÎÊÈ
    BEQ    2$
5$:    ASR    R5
    BCC    3$
    BEQ    4$
    BIS    MASPOZ(R4),R0
3$:    SUB    #2,R4
    BNE    5$
4$:    BIS    MASPOZ(R4),R0

2$:    MOV    FON,R5       ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÖÂÅÒÀ
    BIC    R0,R5
    MOV    MASCW,R4
    COM    R0
    BIC    R0,R4
    BIS    R5,R4

    MOV    R4,(R3)       ;  ÇÀÏÈÑÜ ÑÒÐÎÊÈ ÑÈÌÂÎËÀ

    JSR    PC,PFTAN   ;  ÊÎÍÅÖ ÖÈÊËÀ
    SOB    R2,6$

    TST    (SP)       ;  ÂÛÕÎÄ
    BNE    7$
    INC    (SP)
    INC    R2

    TSTB    PRPODC       ;  ÏÎÄ×ÅÐÊÈÂÀÍÈÅ
    BEQ    6$
    MOV    MASCW,(R3)

7$:    MOV    (SP)+,R0

KFSIM:    RTS    PC


;    -------------------------------------------
;    ** 2.3. ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÜÍÎÃÎ ÊÓÐÑÎÐÀ **
;    -------------------------------------------

PFSK:               ;  ÔÎÐÌÈÐÎÂÀÍÈÅ È ÑÒÈÐÀÍÈÅ ÑÈÌÂ. ÊÓÐÑ.
PSTSK:    TSTB    PRGAHK       ;  ÏÐÈÇÍÀÊ ÃÀØ. ÊÓÐÑ.
    BNE    KFSK

    MOV    AS,R3       ;  ÏÎÄÃ. ÏÀÐÀÌ.
    MOV    #KTVSS,R2

    TSTB    PRCW       ;  ×Á/ÖÂ
    BNE    1$

    MOV    #377,R5       ;  ×ÅÐÍÎ-ÁÅËÛÉ
    ASR    R3
    BCC    2$
    SWAB    R5
2$:    ASL    R3
    BR    3$

1$:    MOV    MASCW,R5   ;  ÖÂÅÒÍÎÉ
    MOV    FON,R4
    XOR    R4,R5

3$:    XOR    R5,(R3)       ;  ÈÇÌÅÍÅÍÈÅ ÌÀÐÊÅÐÀ
    JSR    PC,PFTAN
    SOB    R2,3$

KFSK:    RTS    PC



;   ======================================
;   *** 3. ÁËÎÊ ÐÅÄÀÊÒÈÐÓÞÙÈÕ ÑÈÌÂÎËÎÂ ***
;   ======================================


BRS:    TSTB    PRBLR       ;  ÐÅÆÈÌ ÁËÎÊ.ÐÅÄ.
    BEQ    1$
    JSR    PC,PFUS1
    BR    KBRS

1$:    MOV    NOMSIM,R1   ;  ÏÎÄÃ.ÏÀÐÀÌ.
    MOV    DSIMB,R2
    MOV    #KSSTR,R3

    CMPB    R0,#10       ;  ÊË
    BNE    2$
    SUB    R2,R1
    BR    3$

2$:    SUB    #22,R0       ;  ÂÛÁÎÐ ÊÎÄÀ
    ASL    R0
    MOV    4$(R0),R5
    JSR    PC,(R5)
    RTS    PC
4$:    .WORD    22$
    .WORD    PSTRW
    .WORD    PSTRN
    .WORD    25$
    .WORD    PSIML
    .WORD    PSIMP
    .WORD    PANSIM
    .WORD    31$
    .WORD    32$
    .WORD    33$
    .WORD    34$
    .WORD    35$
    .WORD    36$
    .WORD    37$

22$:    CLR    R1       ;  ÊÍÝ
    BR    3$

25$:    ADD    R3,R1       ;  ÊÍÑÑ
    BIC    #77,R1
    BR    3$

31$:    ADD    R2,R1       ;  ÊÏ
    BR    3$

32$:    SUB    R3,R1       ;  ÊÂ
    BR    3$

33$:    ADD    R3,R1       ;  ÊÍ
    BR    3$

34$:    SUB    R3,R1       ;  ÊËÂ
    SUB    R2,R1
    BR    3$

35$:    SUB    R3,R1       ;  ÊÏÂ
    ADD    R2,R1
    BR    3$

36$:    ADD    R3,R1       ;  ÊÏÍ
    ADD    R2,R1
    BR    3$

37$:    ADD    R3,R1       ;  ÊËÍ
    SUB    R2,R1

3$:    MOV    R1,NOMSIM   ;  ÐÅÄÀÊÒÈÐÎÂÀÍÈÅ ÊÓÐÑÎÐÀ
    JSR    PC,PREDSK

KBRS:    RTS    PC


;    -------------------------------
;    ** 3.1. ÀÍÓËÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ **
;    -------------------------------

PANSIM:    JSR    PC,PSTSK
    SUB    DSIMB,NOMSIM
    CLR    R5
    JSR    PC,PFASIM
    JSR    PC,PSBRS
    JSR    PC,PFSK

    RTS    PC


;    ----------------------------------
;    ** 3.2. ÑÌÅÙÅÍÈÅ ÑÈÌÂÎËÎÂ ÂËÅÂÎ **
;    ----------------------------------

PSIML:    MOV    AS,R3       ;  ÏÎÄÃÎÒÎÂÊÀ ÀÄÐÅÑÎÂ
    MOV    R3,R4
    BIS    #76,R4
    BIS    DSIMB,R4
    MOV    #12,R2

3$:    MOV    R3,R1       ;  ÏÎÄÃÎÒÎÂÊÀ ÖÈÊËÀ
    MOV    R1,R5
    ADD    DSIMB,R5

2$:    BIT    #77,R5       ;  ÑÄÂÈÃ ÑÒÐÎÊÈ
    BEQ    1$
    MOVB    (R5)+,(R1)+
    BR    2$

1$:    JSR    PC,PFTAN   ;  ÈÇÌÅÍÅÍÈÅ ÀÄÐ.ÑÒÐÎÊÈ
    SOB    R2,3$

    MOV    AS,-(SP)   ;  ÑÁÐÎÑ ÏÎÑËÅÄÍÅÃÎ ÑÈÌÂ.
    MOV    R4,AS
    JSR    PC,PSBRS
    MOV    (SP)+,AS

    JSR    PC,PFSK

    RTS    PC


;    -----------------------------------
;    ** 3.4. ÑÌÅÙÅÍÈÅ ÑÈÌÂÎËÎÂ ÂÏÐÀÂÎ **
;    -----------------------------------

PSIMP:    JSR    PC,PSTSK

    MOV    AS,R3       ;  ÏÎÄÃ.ÀÄÐÅÑÎÂ
    MOV    #12,R2

2$:    MOV    R3,R5       ;  ÏÎÄÃ.ÖÈÊËÀ
    BIS    #77,R5
    INC    R5
    MOV    R5,R1
    SUB    DSIMB,R1

1$:    MOVB    -(R1),-(R5)   ;  ÑÄÂÈÃ ÑÒÐÎÊÈ
    CMP    R5,R3
    BNE    1$

    JSR    PC,PFTAN   ;  ÈÇÌÅÍÅÍÈÅ ÀÄÐ. ÑÒÐÎÊÈ
    SOB    R2,2$

    JSR    PC,PSBRS   ;  ÑÁÐÎÑ ÒÅÊÓÙÅÃÎ ÑÈÌÂ.

    JSR    PC,PFSK       ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÊÓÐÑÎÐÀ

    RTS    PC


;    -------------------------------
;    ** 3.4. ÑÌÅÙÅÍÈÅ ÑÒÐÎÊ ÂÂÅÐÕ **
;    -------------------------------

PSTRW:    MOV    AS,R1       ;  ÀÄÐÅÑ ÈÑÒÎ×ÍÈÊÀ
    BIC    #77,R1
    ADD    #DSSTRB,R1
    BPL    1$
    SUB    DVPB,R1

1$:    JSR    PC,PSCTVS   ;  ÎÏÐÅÄ.Ñ×.ÒÂ.ÑÒÐÎÊ

    JSR    PC,PSDWW   ;  ÑÄÂÈÃ ÂÂÅÐÕ
    JSR    PC,PFSK

    RTS    PC


;    ------------------------------
;    ** 3.5. ÑÌÅÙÅÍÈÅ ÑÒÐÎÊ ÂÍÈÇ **
;    ------------------------------

PSTRN:    JSR    PC,PSTSK

    MOV    BAZVP,R1   ;  ÀÄÐÅÑ ÈÑÒÎ×ÍÈÊÀ + 1
    ADD    DGPB,R1
    SUB    #DSSTRB,R1
    BIC    #140000,R1
    ADD    ANVP,R1

    JSR    PC,PSCTVS   ;  ÎÏÐÅÄ. Ñ×. ÒÂ. ÑÒÐÎÊ

    JSR    PC,PSDWN   ;  ÑÄÂÈÃ ÂÍÈÇ
    JSR    PC,PFSK

    RTS    PC


;    ---------------------------------------
;    ** 3.6. ÂÛ×ÈÑËÅÍÈÅ Ñ×ÅÒ×ÈÊÀ TV ÑÒÐÎÊ **
;    ---------------------------------------

PSCTVS:    MOV    KSVP,R3       ;  ÄËÈÍÀ ÏÎËß
    MOV    NOMSIM,R2
    BIS    #77,R2
    INC    R2
    SUB    R2,R3

    MOV    #5,R2       ;  ÄÅËÅÍÈÅ ÍÀ 32
1$:    ASR    R3
    SOB    R2,1$

    MOV    R3,R2       ;  ÓÌÍÎÆÅÍÈÅ ÍÀ 5
    ASL    R3
    ASL    R3
    ADD    R3,R2

    RTS    PC



;   ====================================
;   *** 4. ÁËÎÊ ÓÏÐÀÂËßÞÙÈÕ ÑÈÌÂÎËÎÂ ***
;   ====================================


BUS:    CMPB    R0,#12       ;  ÏÑ
    BNE    1$
    JSR    PC,PFUS
    BIT    #77,NOMSIM
    BNE    3$
    TSTB    PRISU
    BNE    KBUS
3$:    BIS    #77,NOMSIM
    INC    NOMSIM
    JSR    PC,PREDSK
    BR    KBUS

1$:    TSTB    PRBLR
    BNE    PFUS

    CMPB    R0,#14       ;  ÑÁÐ
    BNE    2$
    JSR    PC,PSBR
    BR    KBUS

2$:    CMPB    R0,#7       ;  ÇÂ
    BNE    PFUS
    JSR    PC,PSIGN
    BR    KBUS


;    --------------------------------------------
;    ** 4.1. ÔÎÐÌÈÐÎÂÀÍÈÅ ÓÏÐÀÂËßÞÙÅÃÎ ÑÈÌÂÎËÀ **
;    --------------------------------------------

PFUS:    TSTB    PRISU       ;  ÐÅÆÈÌ ÈÍÄ.ÑÓ.
    BEQ    KFUS

PFUS1:    SUB    #20,R0       ;  ÐÅÄ. ÑÈÌÂÎËÛ
    BMI    2$
4$:    JSR    PC,BGS
    BR    KFUS

2$:    CMPB    R0,#-10       ;  ÂØ
    BNE    3$
    MOV    #1,R0
    BR    4$

3$:    ADD    #100,R0       ;  ÑÓ
    COMB    PRINWS
    JSR    PC,BGS
    COMB    PRINWS
    BR    KFUS

KFUS:
KBUS:    RTS    PC



;   =======================================
;   *** 5. ÁËÎÊ ÔÓÍÊÖÈÎÍÀËÜÍÛÕ ÑÈÌÂÎËÎÂ ***
;   =======================================


BFS:    CMPB    R0,#202       ;  ÈÑÓ
    BNE    1$
    COMB    PRISU
    MOV    #3,R0
    BR    11$

1$:    CMPB    R0,#204       ;  ÁËÐ
    BNE    2$
    COMB    PRBLR
    MOV    #4,R0
11$:    BR    BFS1

2$:    CMPB    R0,#214       ;  ÐÏ
    BNE    3$
    JSR    PC,PPRP
    BR    KBFS

3$:    MOVB    PRGRAF,R5
    BNE    BFS0
    TSTB    PRBLR
    BNE    BFS2

BFS0:    SUB    #221,R0       ;  ÂÛÁÎÐ ÊÎÄÀ
    BMI    KBFS
    ASL    R0
    ADD    R0,PC
    BR    21$
    BR    21$
    BR    21$
    BR    21$
    BR    25$
    BR    26$
    BR    27$
    BR    KBFS
    BR    31$
    BR    32$
    BR    33$
    BR    34$
    BR    35$
    BR    36$
    BR    37$

21$:    TSTB    PRCW
    BEQ    KBFS
    MOV    KMASCW(R0),R0   ;  Ê/Ç/Ñ/×
    CLRB    PRINWF
    JSR    PC,PSTK
    MOV    R0,MASCW
    JSR    PC,PFK
    BR    KBFS

25$:    JSR    PC,PPGRAF   ;  ÃÐÀÔ
1$:    MOV    #5,R0
    BR    BFS1

26$:    TST    R5       ;  ÇÀÏ
    BEQ    KBFS
    CLRB    PRSTIR
    COMB    PRZAP
    BR    1$

27$:    TST    R5       ;  ÑÒÈÐ
    BEQ    KBFS
    CLRB    PRZAP
    COMB    PRSTIR
    BR    1$

31$:    TST    R5       ;  ÑÁÐ. Ê. ÑÒÐ.
    BNE    KBFS
    JSR    PC,PSBKST
    BR    KBFS

32$:    JSR    PC,PSTK       ;  ÃÀØ. ÊÓÐÑ.
    COMB    PRGAHK
    JSR    PC,PFK
    BR    KBFS

33$:    JSR    PC,PPCW       ;  ÖÂ
    BR    KBFS

34$:    COMB    PRINWS       ;  ÈÍÂ.Ñ.
    MOV    #2,R0
    BR    BFS1

35$:    JSR    PC,PINWF   ;  ÈÍÂ. Ý.
    BR    KBFS

36$:    MOV    FON,FONSS   ;  ÓÑÒ.ÈÍÄ.
    MOV    MASCW,MCWSS
    MOV    PRPODC,PRPSSS
    MOVB    PRCW,PRCWSS
    JSR    PC,PSTK
    JSR    PC,PFSSTR
    JSR    PC,PFK
    BR    KBFS

37$:    COMB    PRPODC       ;  ÏÎÄ×.
    MOV    #1,R0

BFS1:    JSR    PC,PFINDR   ;  ÔÎÐÌ. ÈÍÄ. ÐÅÆÈÌÀ
    BR    KBFS

BFS2:    JSR    PC,PFFS       ;  ÔÎÐÌ. ÔÓÍÊÖ. ÑÈÌÂ.

KBFS:    RTS    PC


;    ------------------------------------------
;    ** 5.1. ÏÅÐÅÊËÞ×ÅÍÈÅ ÐÀÑØÈÐÅÍÍÎÉ ÏÀÌßÒÈ **
;    ------------------------------------------

PPRP:    COMB    PRRP
    BNE    PPRP2

PPRP1:    MOV    #40000,ANVP   ;  ÍÅ ÐÀÑØÈÐÅÍÍÀß ÏÀÌßÒÜ
    MOV    #40000,DVPB
    MOV    #36000,DGPB
    MOV    #3000,KSVP
    MOV    #NZRUL0,@#ARRUL
    BR    KPRP

PPRP2:    MOV    #70000,ANVP   ;  ÐÀÑØÈÐÅÍÍÀß ÏÀÌßÒÜ
    MOV    #10000,DVPB
    MOV    #5000,DGPB
    MOV    #400,KSVP
    MOV    #NZRUL1,@#ARRUL
    MOV    #77000,R3   ;- ÓÑÒ. ÈÍÄ. ÐÏ.
    MOV    #340,R4
1$:    MOV    FONSS,(R3)+
    SOB    R4,1$
    MOV    MCWSS,R1
    JSR    PC,PZTVSN

KPRP:    MOV    #DSLSTB,BAZVP   ;  ÓÑÒ. ÁÀÇÛ
    JSR    PC,PSBR       ;  ÑÁÐÎÑ ÝÊÐÀÍÀ
    JSR    PC,PFSSTR   ;  ÔÎÐÌ. ÑË. ÑÒÐ.

    RTS    PC


;    -------------------------------------------
;    ** 5.2. ÏÅÐÅÊËÞ×ÅÍÈÅ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÐÅÆÈÌÀ **
;    -------------------------------------------

PPGRAF:    JSR    PC,PSTK
    COMB    PRGRAF
    BEQ    1$

    MOVB    NMPGT,MASPGT   ;  ÓÑÒ. ÃÐÀÔ. ÐÅÆÈÌÀ
    CLR    DGW
    CLR    SCTVS
    MOV    AS,R0
    MOV    R0,AGT
    SUB    ANVP,R0
    SUB    BAZVP,R0
    BPL    2$
    ADD    DVPB,R0
2$:    MOV    R0,AGTVP
    BR    KPGRAF

1$:    CLRB    PRZAP       ;  ÑÁÐÎÑ ÃÐÀÔ. ÐÅÆÈÌÀ
    CLRB    PRSTIR
    TSTB    PRCW       ;- ÂÛ×ÈÑËÅÍÈÅ AS
    BEQ    3$
    BIC    #1,NOMSIM
3$:    CLR    R5
    JSR    PC,PFASIM

KPGRAF:    MOV    #5,R0
    JSR    PC,PFINDR
    JSR    PC,PFK

    RTS    PC


;    -----------------------------
;    ** 5.3. ÑÁÐÎÑ ÊÎÍÖÀ ÑÒÐÎÊÈ **
;    -----------------------------

PSBKST:    MOV    AS,-(SP)

1$:    JSR    PC,PSBRS   ;  ÑÁÐÎÑ
    ADD    DSIMB,AS
    BIT    #77,AS
    BNE    1$

    MOV    (SP)+,AS   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÊÓÐÑÎÐÀ
    JSR    PC,PFSK

    RTS    PC


;    ---------------------------------------
;    ** 5.4. ÏÅÐÅÊËÞ×ÅÍÈÅ ÖÂÅÒÍÎÃÎ ÐÅÆÈÌÀ **
;    ---------------------------------------

PPCW:    JSR    PC,PSTK

    COMB    PRCW
    BNE    1$

    DEC    DSIMB       ;  ×ÅÐÍÎ-ÁÅËÛÉ
    CLR    R5
    TSTB    PRINWF
    BEQ    2$
    COM    R5
2$:    MOV    R5,FON
    COM    R5
    MOV    R5,MASCW
    MOVB    #1,NMPGT   ;- ÃÐÀÔ.
    BICB    #252,MASPGT
    BR    3$

1$:    INC    DSIMB       ;  ÖÂÅÒÍÎÉ
    TSTB    PRGRAF
    BNE    6$
    INC    NOMSIM
    BIC    #1,NOMSIM
    CLR    R5
    JSR    PC,PFASIM
6$:    MOVB    #3,NMPGT   ;- ÃÐÀÔ.
    MOVB    MASPGT,R5
    BITB    #252,R5
    BEQ    4$
    ASRB    R5
    BR    5$
4$:    ASLB    R5
5$:    BISB    R5,MASPGT

3$:    JSR    PC,PFINDT
    JSR    PC,PFK

    RTS    PC


;    ------------------------
;    ** 5.5. ÈÍÂÅÐÑÈß ÔÎÍÀ **
;    ------------------------

PINWF:    COMB    PRINWF

    MOV    MASCW,R0   ;  ÑÌÅÍÀ ÌÀÑÎÊ
    MOV    FON,MASCW
    MOV    R0,FON

    MOV    MASCW,R5   ;  ÏÎÄÃÎÒ. ÏÀÐÀÌ
    XOR    R5,R0
    MOV    BAZVP,R1
    ADD    ANVP,R1
    MOV    DGPB,R2
    ASR    R2

2$:    XOR    R0,(R1)+   ;  ÈÍÂÅÐÑÈß ÔÎÍÀ
    TST    R1
    BPL    1$
    SUB    DVPB,R1
1$:    SOB    R2,2$

    RTS    PC


;    -----------------------------------------------
;    ** 5.6. ÔÎÐÌÈÐÎÂÀÍÈÅ ÔÓÍÊÖÈÎÍÀËÜÍÛÕ ÑÈÌÂÎËÎÂ **
;    -----------------------------------------------

PFFS:    CMPB    R0,#225       ;- Ã
    BNE    1$
    MOV    #267,R0
    BR    2$
1$:    CMPB    R0,#226       ;- Ç
    BNE    3$
    MOV    #312,R0
    BR    2$
3$:    CMPB    R0,#227       ;- C
    BNE    4$
    MOV    #303,R0
    BR    2$

4$:    ADD    #20,R0

2$:    COMB    PRINWS       ;  ÔÎÐÌ. ÑÈÌÂ.
    JSR    PC,PFSIM
    COMB    PRINWS

    ADD    DSIMB,NOMSIM   ;  ÈÇÌ. ÀÄÐÅÑÀ
    JSR    PC,PFASIM
    JSR    PC,PFSK

    RTS    PC



;   =================================
;   *** 6. ÁËÎÊ ÒÅÊÑÒÎÂÎÉ ÃÐÀÔÈÊÈ ***
;   =================================


BTG:    CMPB    R0,#37       ;  ÓÊÀÇÀÒÅËÈ ÍÀÏÐÀÂËÅÍÈß
    BHI    1$
    JSR    PC,PFNGW
    BR    KBTG1

1$:    BIC    #177400,R0
    CMPB    R0,#71       ;  ÖÈÔÐÛ
    BHI    2$
    JSR    PC,PFDGW
    BR    KBTG

2$:    CMPB    R0,#237       ;  ÔÓÍÊÖÈÎÍÀËÜÍÛÅ ÊÎÄÛ
    BHI    KBTG1
    JSR    PC,BFS

KBTG1:    CLR    DGW
KBTG:    RTS    PC


;    --------------------------------------
;    ** 6.1. ÔÎÐÌÈÐÎÂÀÍÈÅ ÍÀÏÐÀÂËÅÍÈß GW **
;    --------------------------------------

PFNGW:    JSR    PC,PSTGK

    CLR    R1       ;  ÏÎÄÃ. ÏÀÐÀÌ.
    CLR    R2
    MOV    #DTVSTB,R4

    MOVB    R0,R3       ;  ÂÛÁÎÐ ÊÎÄÀ
    SUB    #31,R3
    BMI    1$
    ASL    R3
    ADD    R3,PC
    BR    31$
    BR    32$
    BR    33$
    BR    34$
    BR    35$
    BR    36$
    BR    37$

31$:    INC    R1       ;  ÊÏ
    BR    PFNGW2

32$:    SUB    R4,R2       ;  ÊÂ
    BR    PFNGW2

33$:    ADD    R4,R2       ;  ÊÍ
    BR    PFNGW2

34$:    SUB    R4,R2       ;  ÊËÂ
    DEC    R1
    BR    PFNGW2

35$:    SUB    R4,R2       ;  ÊÏÂ
    INC    R1
    BR    PFNGW2

36$:    ADD    R4,R2       ;  ÊÏÍ
    INC    R1
    BR    PFNGW2

37$:    ADD    R4,R2       ;  ÊËÍ
    DEC    R1
    BR    PFNGW2

1$:    CMPB    R0,#10       ;  ÊË
    BNE    2$
    DEC    R1
    BR    PFNGW2

2$:    CMPB    R0,#22       ;  ÊÍÝ
    BNE    3$
    CLR    NOMSIM
    JMP    PSBR1

3$:    CMPB    R0,#14       ;  ÑÁÐÎÑ
    BNE    KFNGW
    JSR    PC,PSBR
    RTS    PC

PFNGW2:    MOV    DGW,R4       ;  ÇÀÃÐÓÇÊÀ DGW
    BNE    PFGW
    CLRB    R0
    SWAB    R0
    INC    R0
    MOV    R0,R4


;    ----------------------------------------------
;    ** 6.1.1. ÔÎÐÌÈÐÎÂÀÍÈÅ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÂÅÊÒÎÐÀ **
;    ----------------------------------------------

PFGW:    TSTB    PRZAP       ;  ÇÀÏ
    BEQ    1$
    MOV    MASCW,R0
    BR    2$

1$:    TSTB    PRSTIR       ;  ÑÒÈÐ
    BEQ    3$
    MOV    FON,R0

2$:    MOVB    MASPGT,R5   ;  ÔÎÐÌÈÐ. ÒÎ×ÊÈ
    BICB    R5,@AGT
    MOV    R0,R3
    COM    R5
    BIC    R5,R3
    BISB    R3,@AGT
    JSR    PC,PFAGT
    SOB    R4,2$
    BR    KFGW

3$:    JSR    PC,PFAGT   ;  ÏÅÐÅÌÅÙÅÍÈÅ
    SOB    R4,3$

KFGW:
KFNGW:    JSR    PC,PFGK
    RTS    PC


;    -------------------------------
;    ** 6.1.1.1. ÔÎÐÌÈÐÎÂÀÍÈÅ AGT **
;    -------------------------------

PFAGT:    MOV    AGTVP,R5
    ADD    R2,R5
    ADD    R2,SCTVS
    MOV    MASPGT,-(SP)
    MOV    #100,R3

    TST    R1       ;  ÏÐßÌÎ/ÂËÅÂÎ/ÂÏÐÀÂÎ
    BEQ    1$
    BMI    2$

    ASLB    (SP)       ;  ÑÄÂÈÃ ÂÏÐÀÂÎ
    BCC    3$
    ADCB    (SP)
    INC    R5
    INC    NOMSIM
    BIT    #77,R5
    BNE    3$
    SUB    R3,R5
    SUB    R3,NOMSIM
3$:    TSTB    PRCW
    BEQ    1$
    ASLB    (SP)
    ADCB    (SP)
    BR    1$

2$:    CLC
    RORB    (SP)       ;  ÑÄÂÈÃ ÂËÅÂÎ
    BCC    4$
    BISB    #200,(SP)
    BIT    #77,R5
    BNE    21$
    ADD    R3,R5
    ADD    R3,NOMSIM
21$:    DEC    NOMSIM
    DEC    R5
4$:    TSTB    PRCW
    BEQ    1$
    CLC
    RORB    (SP)
    BCC    1$
    BISB    #200,(SP)

1$:    MOV    (SP)+,MASPGT
    MOV    #DSSTRB,-(SP)
    TST    SCTVS
    BPL    11$
    NEG    R3
    NEG    (SP)
    BR    12$
11$:    CMP    SCTVS,(SP)
    BLO    13$
12$:    SUB    (SP),SCTVS
    ADD    R3,NOMSIM
    BMI    14$
    CMP    NOMSIM,KSVP
    BLO    13$
14$:    SUB    (SP),R5
    MOV    R5,-(SP)   ;- ÐÓËÎÍ
    JSR    R4,PSREG
    CLR    R5
    JSR    PC,PFASIM
    JSR    R4,PWREG
    MOV    (SP)+,R5
13$:    MOV    (SP)+,R3

PFAGT1:    MOV    R5,AGTVP   ;- AGTVP
    ADD    BAZVP,R5   ;- AGT
    BIC    #140000,R5
    ADD    ANVP,R5
    MOV    R5,AGT

    RTS    PC


;    ----------------------------------------------
;    ** 6.1.2. ÔÎÐÌÈÐÎÂÀÍÈÅ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÊÓÐÑÎÐÀ **
;    ---------------------------------------------

PFGK:               ;  ÔÎÐÌÈÐÎÂÀÍÈÅ È ÑÒÈÐÀÍÈÅ ÊÓÐÑÎÐÀ
PSTGK:    TSTB    PRGAHK       ;  ÏÐÎÂ. ÏÐÈÇÍÀÊÀ
    BNE    KFGK

    MOV    MASCW,R4   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÌÀÑÊÈ ÒÎ×ÊÈ
    MOV    FON,R5
    XOR    R5,R4
    CLR    R5
    BISB    MASPGT,R5
    COM    R5
    BIC    R5,R4

    MOV    AGT,R3       ;  ÏÎÄÃ. ÀÄÐÅÑÎÂ
    ASR    R3
    BCC    1$
    SWAB    R4
1$:    ASL    R3
    MOV    R3,R1
    SUB    #300,R3
    CMP    R3,ANVP
    BHIS    11$
    ADD    DVPB,R3

11$:    MOV    #7,R2       ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÂÅÐÒ. ×ÅÐÒÛ
2$:    XOR    R4,(R3)
    JSR    PC,PFTAN
    SOB    R2,2$

    MOV    #3,R2       ;  ÑÄÂÈÃ ÌÀÑÊÈ ÂËÅÂÎ
    CLC
    MOVB    PRCW,R5
    BEQ    3$
    ASL    R2
3$:    ROR    R4       ;- ÑÄÂÈÃ
    BCC    4$
    DEC    R1
    ROR    R4
4$:    SOB    R2,3$
    BIC    #1,R1
    CMP    R1,ANVP
    BHI    41$
    ADD    DVPB,R1

41$:    MOV    #7,R2       ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÃÎÐÈÇ.×ÅÐÒÛ
7$:    XOR    R4,(R1)
    ROL    R4
    BCC    5$
    JSR    PC,PFGK1
5$:    MOV    R5,R5
    BEQ    6$
    ROL    R4
    BCC    6$
    JSR    PC,PFGK1
6$:    SOB    R2,7$
KFGK:    RTS    PC

PFGK1:    ADD    #2,R1       ;  ÏÐÈÐÀÙÅÍÈÅ ÀÄÐÅÑÀ
    BPL    1$
    SUB    DVPB,R1
1$:    SEC
    ROL    R4
    RTS    PC


;    --------------------------------
;    ** 6.2. ÔÎÐÌÈÐÎÂÀÍÈÅ ÄËÈÍÛ GW **
;    --------------------------------

PFDGW:    SUB    #60,R0
    BPL    1$
    CLR    R0
    BR    2$

1$:    MOV    DGW,R1       ;  ÓÌÍÎÆÅÍÈÅ ÍÀ 10
    ASL    R1
    ADD    R1,R0
    ASL    R1
    ASL    R1
    ADD    R1,R0
2$:    MOV    R0,DGW

KFDGW:    RTS    PC




--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
SuperMax
ñîîáùåíèå 20.10.2009, 15:31
Ñîîáùåíèå #4


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 7.1.2006
Èç: Êðàñíîÿðñê
Ïîëüçîâàòåëü ¹: 1




Êîä







; ======================================
; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÑÒÐÎÊÈ *****
; ======================================



;    ÂÕÎÄ:    R1 - ÀÄÐÅÑ ÑÒÐÎÊÈ
;        R2 - ÄËÈÍÀ ÑÒÐÎÊÈ (ÌË.Á.)
;           - ÑÈÌÂÎË - ÎÃÐÀÍÈ×ÈÒÅËÜ (ÑÒ.Á.)


MFSTR:    MOV    R0,-(SP)
    MOV    R3,-(SP)

    MOV    R2,R3       ;  ÏÎÄÃÎÒÎÂÊÀ ÎÃÐÀÍÈ×ÈÒÅËÅÉ
    SWAB    R3
    BIC    #177400,R2

1$:    MOVB    (R1)+,R0   ;  ÇÀÏÈÑÜ ÑÒÐÎÊÈ
    JSR    PC,MFSIM
    CMPB    R0,R3
    BEQ    KMFSTR
    SOB    R2,1$

KMFSTR:    MOV    (SP)+,R3
    MOV    (SP)+,R0
    RTS    PC





; ======================================
; ***** ÌÎÄÓËÜ ÇÀÏÈÑÈ ÑÈÌÂÎËÀ Â ÑÑ *****
; ======================================


;    ÂÕÎÄ:    R0 - ÊÎÄ ÑÈÌÂÎËÀ (0 - ÑÁÐÎÑ ÑÒÐÎÊÈ)
;        R1 - ÍÎÌÅÐ ÏÎÇÈÖÈÈ Â ÑÑ


MZSSS:    JSR    R4,PSREG

    TST    R0
    BNE    1$

    JSR    PC,PFSSTR   ;  ÑÁÐÎÑ ÑÑ
    BR    KMZSSS

1$:    CMPB    R0,#177       ;  ÏÎÄÃÎÒ. ÀÄÐ. ÈÇÎÁÐÀÆ.
    BHI    3$
    CMPB    R0,#10
    BNE    4$
    MOV    #21,R0
4$:    SUB    #20,R0
    BMI    KMZSSS
    BR    5$
3$:    CMPB    R0,#237
    BLOS    KMZSSS
    SUB    #60,R0

5$:    JSR    PC,PFSSS   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ

KMZSSS:    JSR    R4,PWREG
    RTS    PC


;    ----------------------------------
;    ** 1. ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ Â ÑÑ **
;    ----------------------------------

PFSSS:    MOV    R1,-(SP)   ;  R0 - ÑÌÅÙÅÍÈÅ ÈÇÎÁÐÀÆÅÍÈß
    MOV    R2,-(SP)   ;  R1 - ÍÎÌÅÐ ÏÎÇÈÖÈÈ Â ÑÒÐÎÊÅ

    TSTB    PRCW       ;  ÏÎÄÃ. ÀÄÐ.
    BEQ    1$
    ASL    R1
1$:    BIC    #177700,R1
    ADD    BAZVP,R1
    SUB    #1700,R1
    BIC    #140000,R1
    ADD    ANVP,R1

    MOV    AS,-(SP)   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ
    MOV    R1,AS
    BIC    #177400,R0
    JSR    PC,PFSIM
    MOV    (SP)+,AS

KFSSS:    MOV    (SP)+,R2
    MOV    (SP)+,R1
    RTS    PC





; ==============================================
; ***** ÌÎÄÓËÜ ÓÑÒÀÍÎÂÊÈ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ *****
; ==============================================


;    ÂÕÎÄ:    R1 - ÊÎÎÐÄÈÍÀÒÀ X
;        R2 - ÊÎÎÐÄÈÍÀÒÀ Y


MUSTKK:    JSR    R4,PSREG
    JSR    PC,PSTK
    MOV    2(SP),R1
    MOV    4(SP),R2

    TSTB    PRCW       ;  ÏÎÄÃ. ÊÎÎÐÄ. X
    BEQ    1$
    ASL    R1

1$:    MOV    #6,R0       ;  ÏÎÄÃ. ÊÎÎÐÄ. Y
2$:    ASL    R2
    SOB    R0,2$

    TSTB    PRGRAF
    BNE    PUKGK


;    ------------------------------------------------
;    ** 1. ÓÑÒÀÍÎÂÊÀ ÊÎÎÐÄÈÍÀÒ ÑÈÌÂÎËÜÍÎÃÎ ÊÓÐÑÎÐÀ **
;    ------------------------------------------------

PUKSK:    BIC    #177700,R1   ;  ÏÎÄÃ. ÊÎÎÐÄ. X

1$:    SUB    KSVP,R2       ;  ÏÎÄÃ. ÊÎÎÐÄ. Y
    BPL    1$
2$:    ADD    KSVP,R2
    BMI    2$

    ADD    R1,R2       ;  ÔÎÐÌ. ÀÄÐ. ÑÈÌÂÎËÀ
    MOV    R2,NOMSIM
    CLR    R5
    JSR    PC,PFASIM

    BR    KUSTKK


;    -------------------------------------------------
;    ** 2. ÓÑÒÀÍÎÂÊÀ ÊÎÎÐÄÈÍÀÒ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÊÓÐÑÎÐÀ **
;    -------------------------------------------------

PUKGK:    BIC    #177000,R1   ;  ÏÎÄÃ. ÊÎÎÐÄ. X
1$:    MOV    R1,R3
    ASR    R1
    ASR    R1
    ASR    R1

    MOVB    NMPGT,R0   ;  ÏÎÄÃ. MASPGT
    BIC    #177770,R3
    BEQ    2$
3$:    ASL    R0
    SOB    R3,3$
2$:    MOVB    R0,MASPGT

4$:    SUB    DGPB,R2       ;  ÏÎÄÃ. ÊÎÎÐÄ. Y
    BPL    4$
5$:    ADD    DGPB,R2
    BMI    5$

    ADD    R1,R2       ;  ÂÛ×ÈÑËÅÍÈÅ AGTVP
    MOV    R2,AGTVP

    CLR    R1       ;  ÂÛ×. AGT
    CLR    R2
    JSR    PC,PFAGT

KUSTKK:    JSR    PC,PFK
    JSR    R4,PWREG
    RTS    PC





; ==========================================
; ***** ÌÎÄÓËÜ Ñ'ÅÌÀ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ *****
; ==========================================


;    ÂÛÕÎÄ:    R1 - ÊÎÎÐÄÈÍÀÒÀ X
;        R2 - ÊÎÎÐÄÈÍÀÒÀ Y


MSKK:    MOV    R0,-(SP)

    TSTB    PRGRAF
    BNE    PSKGK


;    -------------------------------------------
;    ** 1. Ñ'ÅÌ ÊÎÎÐÄÈÍÀÒ ÑÈÌÂÎËÜÍÎÃÎ ÊÓÐÑÎÐÀ **
;    -------------------------------------------

PSKSK:    MOV    NOMSIM,R1   ;  ÊÎÎÐÄ. X
    MOV    R1,R2
    BIC    #177700,R1

    BR    PSK1


;    --------------------------------------------
;    ** 2. Ñ'ÅÌ ÊÎÎÐÄÈÍÀÒ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÊÓÐÑÎÐÀ **
;    --------------------------------------------

PSKGK:    MOV    AGTVP,R1   ;  ÊÎÎÐÄ. X
    MOV    R1,R2
    BIC    #177700,R1
    ASL    R1
    ASL    R1
    ASL    R1
    MOVB    MASPGT,R0
2$:    ASR    R0
    BCS    PSK1
    INC    R1
    BR    2$

PSK1:    TSTB    PRCW
    BEQ    3$
    ASR    R1

3$:    BIC    #77,R2       ;  ÊÎÎÐÄ. Y
    MOV    #6,R0
4$:    ASR    R2
    SOB    R0,4$

    MOV    (SP)+,R0
    RTS    PC





; =====================================
; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÒÎ×ÊÈ *****
; =====================================


;    ÂÕÎÄ:    R0 - 1-ÇÀÏÈÑÜ, 0-ÑÒÈÐÀÍÈÅ
;        R1 - ÊÎÎÐÄÈÍÀÒÀ X
;        R2 - ÊÎÎÐÄÈÍÀÒÀ Y


MFTCK:    MOV    R1,BUFX       ;  ÑÎÕÐ. ÊÎÎÐÄ.
    MOV    R2,BUFY
    MOVB    R0,PRZTCK

MFTCK1:    JSR    R4,PSREG   ;  ÑÎÕÐ. ÐÅÃ.

    TSTB    PRCW       ;  ÏÎÄÃ. ÊÎÎÐÄ. X
    BEQ    1$
    ASL    R1
    BCS    KMFTCK
1$:    CMP    R1,#1000
    BHIS    KMFTCK

    MOV    #6,R0       ;  ÏÎÄÃ. ÊÎÎÐÄ. Y
2$:    ASL    R2
    BCS    KMFTCK
    SOB    R0,2$
    CMP    R2,DGPB
    BHIS    KMFTCK

    MOV    R1,R3       ;  ÔÎÐÌ. ÀÄÐ. ÒÎ×ÊÈ
    ASR    R1
    ASR    R1
    ASR    R1
    ADD    R2,R1
    ADD    BAZVP,R1
    BIC    #140000,R1
    ADD    ANVP,R1

    MOVB    NMPGT,R2   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÌÀÑÊÈ ÒÎ×ÊÈ
    BIC    #177770,R3
    BEQ    3$
4$:    ASL    R2
    SOB    R3,4$

3$:    MOVB    (R1),R0       ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÒÎ×ÊÈ
    BICB    R2,R0
    MOV    MASCW,R3
    TSTB    PRZTCK
    BNE    5$
    MOV    FON,R3
5$:    COM    R2
    BIC    R2,R3
    BISB    R3,R0
    MOVB    R0,(R1)

KMFTCK:    JSR    R4,PWREG   ;  ÂÎÑÑÒ. ÐÅÃ.
    RTS    PC





; =======================================
; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÂÅÊÒÎÐÀ *****
; =======================================


;    ÂÕÎÄ:    R0 - 1-ÇÀÏÈÑÜ, 0-ÑÒÈÐÀÍÈÅ
;        R1 - ÊÎÎÐÄÈÍÀÒÀ X
;        R2 - ÊÎÎÐÄÈÍÀÒÀ Y


MFWEKT:    JSR    R4,PSREG
    MOVB    R0,PRZTCK

    MOV    R1,R3       ;  ÇÀÌÅÍÀ ÊÎÎÐÄÈÍÀÒ
    MOV    R2,R4
    MOV    BUFX,R1
    MOV    BUFY,R2
    MOV    R3,BUFX
    MOV    R4,BUFY

    CLR    R0       ;  ÎÏÐÅÄ. DX È ÍÀÏÐÀÂËÅÍÈß
    SUB    R1,R3
    BMI    1$
    BEQ    2$
    INC    R0
    BR    2$
1$:    DEC    R0       ;- ÍÀÏÐÀÂËÅÍÈÅ
    NEG    R3       ;- DX

2$:    CLR    R5       ;  ÎÏÐÅÄ. DY È ÍÀÏÐÀÂËÅÍÈß
    SUB    R2,R4
    BMI    3$
    BEQ    4$
    INC    R5
    BR    4$
3$:    DEC    R5       ;- ÍÀÏÐÀÂËÅÍÈÅ
    NEG    R4       ;- DY

4$:    CMP    R4,R3       ;  ÎÏÐÅÄ. ÄËÈÍÍÎÉ ÊÎÎÐÄ.
    BHI    5$
    MOV    R5,-(SP)   ;- DX >= DY
    CLR    -(SP)
    MOV    R3,R5
    MOV    R4,R3
    MOV    R5,R4       ;- R4 - ÄËÈÍÍÀß ÊÎÎÐÄ.
    CLR    R5
    BR    6$
5$:    CLR    -(SP)       ;- DX < DY
    MOV    R0,-(SP)
    CLR    R0       ;- R0,R5 - DÑÅÃÌ. (SP) - DÊÎÎÐÄ.

6$:    CLR    -(SP)       ;  ÎÏÐÅÄ. ÏÀÐÀÌ. ÂÅÊÒÎÐÀ
    TST    R3
    BNE    7$
    INC    R3       ;- ÎÑÅÂÎÉ ÂÅÊÒÎÐ
    SUB    #12,SP
    BR    8$
7$:    SUB    R3,R4       ;- ÂÛ×ÈÑËÅÍÈÅ ÄËÈÍÛ ÑÅÃÌ.
    BMI    9$
    INC    (SP)       ;- ÄËÈÍÀ ÑÅÃÌÅÍÒÀ
    BR    7$
9$:    ADD    R3,R4       ;- R3 - Ñ×. ÑÅÃÌ. R4 - ÎÑÒÀÒÎÊ
    MOV    R3,-(SP)   ;- ÊÎËÈ×. ÑÅÃÌ.
    MOV    R3,-(SP)
    ASR    (SP)       ;- ÊÎËÈ×. ÑÅÃÌ./2
    MOV    R4,-(SP)   ;- ÎÑÒÀÒÎÊ
    CLR    -(SP)
    CLR    -(SP)
    CLR    R4

11$:    ADD    4(SP),2(SP)   ;  ÎÏÐÅÄ. ÄËÈÍÛ ÑÅÃÌ.
    BEQ    10$
    CMP    2(SP),6(SP)
    BLE    10$
    INC    R4
    SUB    10(SP),2(SP)
10$:    ADD    12(SP),R4
    MOV    R4,(SP)
    ASR    R4
    SUB    R4,(SP)       ;- ÄËÈÍÀ 2-ÃÎ ÏÎËÓÑÅÃÌ.

    JSR    PC,PFSEGM   ;- ÔÎÐÌ. 1-ÃÎ ÏÎËÓÑÅÃÌ.
    ADD    14(SP),R1
    ADD    16(SP),R2
    MOV    (SP),R4
8$:    JSR    PC,PFSEGM   ;- ÔÎÐÌ. 2-ÃÎ ÏÎËÓÑÅÃÌ.

    SOB    R3,11$       ;  ÊÎÍÅÖ ÔÎÐÌ. ÑÅÃÌ.

    ADD    #20,SP
    JSR    R4,PWREG
    RTS    PC

PFSEGM:    TST    R4       ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÅÃÌÅÍÒÀ
    BEQ    KFSEGM
1$:    ADD    R0,R1
    ADD    R5,R2
    JSR    PC,MFTCK1
    SOB    R4,1$
KFSEGM:    RTS    PC





; =============================
; ***** ÌÎÄÓËÜ ×ÒÅÍÈß ÑÑÄ *****
; =============================


;    ÂÛÕÎÄ:    R0 - ÑËÎÂÎ ÑÎÑÒÎßÍÈß ÄÈÑÏËÅß


MCTSSD:    MOV    R1,-(SP)

    CLR    R0       ;  ÏÎÄÃ. ÏÀÐÀÌ.
    MOV    #SYSPR,R1

1$:    SEC           ;  ÓÑÒÀÍÎÂÊÀ ÔËÀÆÊÎÂ
2$:    ROR    R0
    BCS    KCTSSD
    TSTB    (R1)+
    BNE    1$
    BR    2$

KCTSSD:    MOV    (SP)+,R1
    RTS    PC




;  ======================================
;  **** ÁÈÁËÈÎÒÅÊÀ ÏÎÄÏÐÎÃÐÀÌÌ DTVMN ****
;  ======================================



;    -------------------------------
;    ** 0.1. ÑÎÕÐÀÍÅÍÈÅ ÐÅÃÈÑÒÐÎÂ **
;    -------------------------------


PSREG0:    MOV    #220,@#ASPORT   ;- ÑÁÐÎÑ ÃÒ. ÒËÃ.

PSREG:    MOV    R3,-(SP)
    MOV    R2,-(SP)
    MOV    R1,-(SP)
    MOV    R0,-(SP)
    MOV    R4,-(SP)

    RTS    R4


;    -----------------------------------
;    ** 0.2. ÂÎÑÑÒÀÍÎÂËÅÍÈÅ ÐÅÃÈÑÒÐÎÂ **
;    -----------------------------------

PWREG:    MOV    (SP)+,R0
    MOV    (SP)+,R0
    MOV    (SP)+,R1
    MOV    (SP)+,R2
    MOV    (SP)+,R3

    RTS    R4


;    ----------------
;    ** 0.3. ÑÁÐÎÑ **
;    ----------------

PSBR:    JSR    PC,PFINDT   ;  ÓÑÒ.ÈÍÄ.ÒÀÁ.

    CLR    NOMSIM       ;  ÔÎÐÌ. AS
    JSR    PC,PFASIM

    MOV    FON,R0       ;  ÑÁÐÎÑ VP
    MOV    AS,R3
    MOV    DGPB,R2
    ASR    R2
1$:    MOV    R0,(R3)+
    TST    R3
    BPL    2$
    SUB    DVPB,R3
2$:    SOB    R2,1$

PSBR1:    CLR    R5       ;  ÔÎÐÌ. AGT
    JSR    PC,PFAGT1
    CLR    SCTVS
    MOVB    NMPGT,MASPGT

    JSR    PC,PFK       ;  ÔÎÐÌ. ÊÓÐÑÎÐÀ

    RTS    PC


;    ----------------------------------------
;    ** 0.4. ÔÎÐÌÈÐÎÂÀÍÈÅ ÑËÓÆÅÁÍÎÉ ÑÒÐÎÊÈ **
;    ----------------------------------------

PFSSTR:    JSR    PC,PFINDT   ;  ÔÎÐÌ. ÈÍÄ. ÒÀÁ.

    MOV    MCWSS,R1   ;  ÔÎÐÌÈÐ. ×ÅÐÒÛ
    JSR    PC,PZTVSW

    MOV    FONSS,R1   ;  ÑÁÐÎÑ ÈÍÄÈÊÀÒÎÐÎÂ
    MOV    #KTVSSS-4,R4
1$:    JSR    PC,PZTVSW
    SOB    R4,1$

PUINDR:    CLR    R0       ;  ÓÑÒÀÍÎÂÊÀ ÈÍÄÈÊÀÒÎÐÎÂ
    CLR    SCKOD
    MOV    #6,R2
2$:    MOV    R0,-(SP)
    MOV    R2,-(SP)
    JSR    PC,PFINDR
    MOV    (SP)+,R2
    MOV    (SP)+,R0
    INC    R0
    SOB    R2,2$

    RTS    PC


;    -----------------------------------------
;    ** 0.5. ÔÎÐÌÈÐÎÂÀÍÈÅ ÈÍÄÈÊÀÒÎÐÀ ÐÅÆÈÌÀ **
;    -----------------------------------------

PFINDR:    INC    SCUIND       ;  ÓÑÒ. ÏÐÈÇÍ. ÔÎÐÌ. ÈÍÄ.
    TST    SCKOD
    BNE    KFINDR
    CLR    SCUIND

    MOV    #PRRUS,R1   ;  ÂÕÎÄ:  R0 - ÍÎÌÅÐ ÈÍÄ.
    ADD    R0,R1
    ASL    R0
    ADD    R0,PC
    BR    1$
    BR    2$
    BR    3$
    BR    4$
    BR    5$
    BR    6$

1$:    MOV    #LAT,R3       ;  ÐÓÑ/ËÀÒ
    TSTB    (R1)
    BEQ    7$
    MOV    #RUS,R3
    BR    7$

2$:    TSTB    (R1)       ;  ÏÎÄ×.
    BEQ    8$
    MOV    #PODC,R3
    BR    7$

3$:    TSTB    (R1)       ;  ÈÍÂ. Ñ.
    BEQ    8$
    MOV    #INW,R3
    BR    7$

4$:    TSTB    (R1)       ;  ÈÍÄ. ÑÓ
    BEQ    8$
    MOV    #ISU,R3
    BR    7$

5$:    TSTB    (R1)       ;  ÁËÎÊ. ÐÅÄ.
    BEQ    8$
    MOV    #BLR,R3
    BR    7$

6$:    TSTB    (R1)       ;  ÃÐÀÔ/ÇÀÏ/ÑÒÈÐ
    BEQ    8$
    TSTB    PRZAP
    BEQ    9$
    MOV    #ZAP,R3
    BR    7$
9$:    MOV    #GRAF,R3
    TSTB    PRSTIR
    BEQ    7$
    MOV    #STIR,R3
    BR    7$

8$:    MOV    #SBRIND,R3   ;  ÑÁÐÎÑ ÈÍÄÈÊ.

7$:    ASL    R0       ;  ÏÎÄÃ. ÏÀÐÀÌ. ÈÍÄ.
    ADD    #4,R0
    MOV    #100,R1
    TSTB    PRCWSS
    BEQ    10$
    ASR    R1
10$:    SUB    R0,R1
    MOV    #4,R2

    MOV    FON,-(SP)   ;  ÑÎÕÐÀÍÅÍÈÅ ÏÐÈÇÍÀÊÎÂ
    MOV    MASCW,-(SP)
    MOV    PRCW,-(SP)
    MOV    PRPODC,-(SP)

    MOV    FONSS,FON   ;  ÓÑÒÀÍÎÂÊÀ ÏÐÈÇÍÀÊÎÂ ÑÑ
    MOV    MCWSS,MASCW
    MOVB    PRCWSS,PRCW
    MOV    PRPSSS,PRPODC

11$:    MOVB    (R3)+,R0   ;  ÔÎÐÌÈÐÎÂÀÍÈÅ ÈÍÄÈÊÀÒÎÐÀ
    MOV    R3,-(SP)
    JSR    PC,PFSSS
    MOV    (SP)+,R3
    INC    R1
    SOB    R2,11$

    MOV    (SP)+,PRPODC   ;  ÂÎÑÑÒ. ÏÐÈÇÍÀÊÎÂ
    MOV    (SP)+,PRCW
    MOV    (SP)+,MASCW
    MOV    (SP)+,FON

KFINDR:    RTS    PC


;    --------------------------------------------
;    ** 0.6. ÔÎÐÌÈÐÎÂÀÍÈÅ ÈÍÄÈÊÀÒÎÐÀ ÒÀÁÓËßÖÈÈ **
;    --------------------------------------------

PFINDT:    MOV    FONSS,R1   ;  ÑÁÐÎÑ ÈÍÄÈÊÀÒÎÐÀ
    MOV    BAZVP,R3
    ADD    ANVP,R3
    MOV    #3,R4
10$:    JSR    PC,PZTVSW
    SOB    R4,10$

    MOV    #20,R4       ;  ÓÑÒ. ÄËÈÍÛ ÑËÎÂÀ
    TSTB    PRCW
    BEQ    1$
    ASL    R4

1$:    CLR    R5       ;  ÏÎÈÑÊ ÏÎÇÈÖÈÈ ÒÀÁÓËßÖÈÈ
7$:    CLR    R2
    MOV    MTAB(R5),R0
4$:    ROR    R0
    BCS    2$
    BEQ    3$
6$:    INC    R2
    BR    4$

2$:    MOV    R2,R1       ;  ÓÑÒÀÍÎÂÊÀ ÈÍÄÈÊÀÒÎÐÀ
    TSTB    PRCW
    BNE    5$
    ADD    R3,R1
    MOVB    MCWSS,(R1)
    BR    6$
5$:    ASL    R1
    ADD    R3,R1
    MOV    MCWSS,(R1)
    BR    6$

3$:    ADD    #2,R5       ;  ÈÇÌÅÍÅÍÈÅ ÀÄÐÅÑÎÂ
    ADD    R4,R3
    BIT    #77,R3
    BNE    7$
    SUB    #100,R3

    RTS    PC


;    -------------------------------
;    ** 0.7. ÔÎÐÌÈÐÎÂÀÍÈÅ ÊÓÐÑÎÐÀ **
;    -------------------------------

PFK:               ;  ÔÎÐÌÈÐ. È ÑÒÈÐ. ÊÓÐÑÎÐÀ
PSTK:    TSTB    PRGRAF
    BNE    1$
    JSR    PC,PFSK       ;  ÑÈÌÂ. ÊÓÐÑÎÐ
    MOV    #KPOWTS,BKPOWT
    BR    KFK
1$:    JSR    PC,PFGK       ;  ÃÐÀÔ. ÊÓÐÑÎÐ
    MOV    #KPOWTG,BKPOWT

KFK:    RTS    PC


;    ---------------------------------------------
;    ** 0.8. ÐÅÄÀÊÒÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÜÍÎÃÎ ÊÓÐÑÎÐÀ **
;    ---------------------------------------------

PREDSK:    JSR    PC,PSTSK
    CLR    R5
    JSR    PC,PFASIM
    JSR    PC,PFSK

    RTS    PC


;    ------------------------
;    ** 0.9. ÑÁÐÎÑ ÑÈÌÂÎËÀ **
;    ------------------------

PSBRS:    MOV    FON,R0       ;  ÏÎÄÃ. ÏÀÐÀÌ.
    MOV    AS,R3
    MOV    #12,R2

3$:    TSTB    PRCW       ;  ÇÀÏÈÑÜ ÔÎÍÀ
    BNE    1$
    MOVB    R0,(R3)
    BR    2$
1$:    MOV    R0,(R3)

2$:    JSR    PC,PFTAN   ;  ÈÇÌÅÍÅÍÈÅ ÀÄÐ.
    SOB    R2,3$

    RTS    PC


;    ---------------------------------------------
;    ** 0.10. ÔÎÐÌÈÐÎÂÀÍÈÅ ÒÅÊÓÙÅÃÎ ÀÄÐÅÑÀ ÂÍÈÇ **
;    ---------------------------------------------

PFTAN:    ADD    #DTVSTB,R3
    BPL    KFTAN
    SUB    DVPB,R3

KFTAN:    RTS    PC


;    --------------------------------------
;    ** 0.11. ÇÀÏÎËÍÅÍÈÅ TV-ÑÒÐÎÊÈ ÂÂÅÐÕ **
;    --------------------------------------

PZTVSW:    MOV    #DTVSTS,R2   ;  R1 - ÔÎÍ, R3 - ÀÄÐÅÑ
    CMP    R3,ANVP
    BHI    1$
    ADD    DVPB,R3
1$:    MOV    R1,-(R3)
    SOB    R2,1$

    RTS    PC


;    -------------------------------------
;    ** 0.12. ÇÀÏÎËÍÅÍÈÅ TV-ÑÒÐÎÊÈ ÂÍÈÇ **
;    -------------------------------------

PZTVSN:    MOV    #DTVSTS,R2   ;  R1 - ÔÎÍ, R3 - ÀÄÐÅÑ
    TST    R3
    BPL    1$
    SUB    DVPB,R3
1$:    MOV    R1,(R3)+
    SOB    R2,1$

    RTS    PC


;    -----------------------
;    ** 0.13. ÑÄÂÈÃ ÂÂÅÐÕ **
;    -----------------------

PSDWW:    MOV    R1,R3       ;  ÏÎÄÃÎÒÎÂÊÀ ÀÄÐÅÑÎÂ
    SUB    #DSSTRB,R3
    CMP    R3,ANVP
    BHIS    1$
    ADD    DVPB,R3

1$:    TST    R2       ;  ÏÎÑËÅÄÍßß ÑÒÐÎÊÀ
    BEQ    PSBRSN

5$:    MOV    #DTVSTS,R4   ;  ÑÄÂÈÃ
2$:    MOV    (R1)+,(R3)+
    SOB    R4,2$
    TST    R1
    BPL    3$
    SUB    DVPB,R1
    BR    4$
3$:    TST    R3
    BPL    4$
    SUB    DVPB,R3
4$:    SOB    R2,5$

PSBRSN:    MOV    #KTVSS,R4   ;  ÑÁÐÎÑ ÑÒÐÎÊÈ ÂÍÈÇ
    MOV    FON,R1
1$:    JSR    PC,PZTVSN
    SOB    R4,1$

    RTS    PC


;    ----------------------
;    ** 0.14. ÑÄÂÈÃ ÂÍÈÇ **
;    ----------------------

PSDWN:    MOV    R1,R3       ;  ÏÎÄÃ. ÀÄÐÅÑÎÂ
    ADD    #DSSTRB,R3
    CMP    R1,ANVP
    BHI    11$
    ADD    DVPB,R1
11$:    CMP    R3,#100000
    BLOS    1$
    SUB    DVPB,R3

1$:    TST    R2       ;  ÏÎÑËÅÄÍßß ÑÒÐÎÊÀ
    BEQ    PSBRSW

5$:    MOV    #DTVSTS,R4   ;  ÑÄÂÈÃ
2$:    MOV    -(R1),-(R3)
    SOB    R4,2$
    CMP    R1,ANVP
    BHI    3$
    ADD    DVPB,R1
    BR    4$
3$:    CMP    R3,ANVP
    BHI    4$
    ADD    DVPB,R3
4$:    SOB    R2,5$

PSBRSW:    MOV    #KTVSS,R4   ;  ÑÁÐÎÑ ÑÒÐÎÊÈ ÂÂÅÐÕ
    MOV    FON,R1
1$:    JSR    PC,PZTVSW
    SOB    R4,1$

    RTS    PC




--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
SuperMax
ñîîáùåíèå 20.10.2009, 15:31
Ñîîáùåíèå #5


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 7.1.2006
Èç: Êðàñíîÿðñê
Ïîëüçîâàòåëü ¹: 1



Êîä





;  ======================
;  **** ÄÀÍÍÛÅ DTVMN ****
;  ======================


;    ----------------
;    ** ÈÍÄÈÊÀÒÎÐÛ **
;    ----------------

LAT:    .BYTE    20,274,261,304
RUS:    .BYTE    20,302,305,303
PODC:    .BYTE    300,277,264,316
INW:    .BYTE    271,276,307,20
ISU:    .BYTE    271,303,305,20
BLR:    .BYTE    262,274,302,20
GRAF:    .BYTE    267,302,261,266
ZAP:    .BYTE    312,261,300,20
STIR:    .BYTE    303,304,271,302
SBRIND:    .BYTE    20,20,20,20


;    -----------
;    ** ÌÀÑÊÈ **
;    -----------

MASPOZ:    .WORD    177777       ;  ÌÀÑÊÈ ÏÎÇÈÖÈÈ
    .WORD    140000
    .WORD    030000
    .WORD    006000
    .WORD    001400
    .WORD    000300
    .WORD    000060
    .WORD    000014
    .WORD    000003

KMASCW:    .WORD    177777       ;  ÌÀÑÊÈ ÖÂÅÒÀ (Ê/Ç/Ñ/×)
    .WORD    125252
    .WORD    052525
    .WORD    000000


;    --------------------------
;    ** ÈÇÎÁÐÀÆÅÍÈÅ ÑÈÌÂÎËÎÂ **
;    --------------------------

IZSIM:    .WORD    160777,156735,176741,176775,177777   ;  ^P
    .WORD    000000,002010,002176,000010,000000   ;  ÌË
    .WORD    000577,006475,022425,000501,000000   ;  ÌÍÝ
    .WORD    037000,016010,004052,004010,000000   ;  ÑÒÐ.Â.
    .WORD    004000,004010,016052,037010,000000   ;  ÑÒÐ.Í.
    .WORD    000000,042110,002176,000010,000000   ;  ÍÑ
    .WORD    000000,005022,005176,000022,000000   ;  ÑÈÌ.Ë.
    .WORD    000000,021022,021176,000022,000000   ;  ÑÈÌ.Ï.
    .WORD    000000,022050,022176,000050,000000   ;  ÀÍÑ
    .WORD    000000,020020,020176,000020,000000   ;  ÌÏ
    .WORD    004000,025034,004010,004010,000000   ;  ÌÂ
    .WORD    004000,004010,025010,004034,000000   ;  ÌÍ
    .WORD    017000,005006,020022,000100,000000   ;  ÌËÂ
    .WORD    074000,050140,002110,000002,000000   ;  ÌÏÂ
    .WORD    000000,002002,050110,074140,000000   ;  ÌÏÍ
    .WORD    000000,020100,005022,017006,000000   ;  ÌËÍ

    .WORD    000000,000000,000000,000000,000000   ;  ÏÐÎÁÅË
    .WORD    004000,004010,004010,004000,000000   ;  !
    .WORD    022000,011044,000000,000000,000000   ;  "
    .WORD    012000,037024,037024,012024,000000   ;  #
    .WORD    021000,021034,021042,021034,000000   ;  $
    .WORD    003000,010046,002010,030062,000000   ;  %
    .WORD    004000,012024,025014,026022,000000   ;  &
    .WORD    014000,002010,000000,000000,000000   ;  '
    .WORD    010000,002010,002004,010010,000000   ;  (
    .WORD    002000,010010,010020,002010,000000   ;  )
    .WORD    000000,025010,025034,000010,000000   ;  *
    .WORD    000000,004010,004076,000010,000000   ;  +
    .WORD    000000,000000,000000,006014,002010   ;  ,
    .WORD    000000,000000,000076,000000,000000   ;  -
    .WORD    000000,000000,000000,006014,000000   ;  .
    .WORD    000000,010040,002010,000002,000000   ;  /
    .WORD    016000,031042,023052,016042,000000   ;  0
    .WORD    004000,005014,004010,037010,000000   ;  1
    .WORD    016000,020042,002030,037002,000000   ;  2
    .WORD    037000,010040,020030,016042,000000   ;  3
    .WORD    010000,012030,037022,010020,000000   ;  4
    .WORD    037000,017002,020040,016042,000000   ;  5
    .WORD    034000,001004,021036,016042,000000   ;  6
    .WORD    037000,010040,002010,002004,000000   ;  7
    .WORD    016000,021042,021034,016042,000000   ;  8
    .WORD    016000,021042,020074,007020,000000   ;  9
    .WORD    000000,006000,000014,006014,000000   ;  :
    .WORD    000000,006000,000014,006014,002010   ; ;
    .WORD    010000,002010,002002,010010,000000   ;  <
    .WORD    000000,037000,037000,000000,000000   ;  =
    .WORD    002000,010010,010040,002010,000000   ;  >
    .WORD    016000,020042,004020,004000,000000   ;  ?

    .WORD    016000,025062,035052,016002,000000   ;  @
    .WORD    004000,021024,037042,021042,000000   ;  A
    .WORD    017000,021042,021036,017042,000000   ;  B
    .WORD    016000,001042,001002,016042,000000   ;  C
    .WORD    017000,022044,022044,017044,000000   ;  D
    .WORD    037000,001002,001036,037002,000000   ;  E
    .WORD    037000,001002,001036,001002,000000   ;  F
    .WORD    016000,001042,031002,036042,000000   ;  G
    .WORD    021000,021042,021076,021042,000000   ;  H
    .WORD    016000,004010,004010,016010,000000   ;  I
    .WORD    034000,010020,010020,006022,000000   ;  J
    .WORD    021000,005022,005006,021022,000000   ;  K
    .WORD    001000,001002,001002,037002,000000   ;  L
    .WORD    021000,025066,021052,021042,000000   ;  M
    .WORD    021000,023042,031052,021042,000000   ;  N
    .WORD    016000,021042,021042,016042,000000   ;  O
    .WORD    017000,021042,001036,001002,000000   ;  P
    .WORD    016000,021042,025042,026022,000000   ;  Q
    .WORD    017000,021042,005036,021022,000000   ;  R
    .WORD    016000,001042,020034,016042,000000   ;  S
    .WORD    037000,004010,004010,004010,000000   ;  T
    .WORD    021000,021042,021042,016042,000000   ;  U
    .WORD    021000,021042,012024,004010,000000   ;  V
    .WORD    021000,021042,025052,012052,000000   ;  W
    .WORD    021000,012042,012010,021042,000000   ;  X
    .WORD    021000,012042,004010,004010,000000   ;  Y
    .WORD    037000,010040,002010,037002,000000   ;  Z
    .WORD    016000,002004,002004,016004,000000   ;  [
    .WORD    000000,002002,010010,000040,000000   ;  \
    .WORD    016000,010020,010020,016020,000000   ;  ]
    .WORD    000000,037000,020040,000000,000000   ;  ^
    .WORD    000000,000000,000000,000000,000076   ;  _

    .WORD    006000,010010,000000,000000,000000   ;  ^'
    .WORD    000000,016000,036040,056042,000000   ;  SA
    .WORD    001000,015002,021046,015046,000000   ;  SB
    .WORD    000000,016000,001042,016042,000000   ;  SC
    .WORD    020000,026040,021062,026062,000000   ;  SD
    .WORD    000000,016000,037042,036002,000000   ;  SE
    .WORD    014000,002044,002016,002004,000000   ;  SF
    .WORD    000000,026000,021062,026062,016040   ;  SG
    .WORD    001000,015002,021046,021042,000000   ;  SH
    .WORD    004000,006000,004010,016010,000000   ;  SI
    .WORD    010000,010000,010020,010020,006022   ;  SJ
    .WORD    001000,021002,007022,021022,000000   ;  SK
    .WORD    006000,004010,004010,016010,000000   ;  SL
    .WORD    000000,013000,025052,025052,000000   ;  SM
    .WORD    000000,015000,021046,021042,000000   ;  SN
    .WORD    000000,016000,021042,016042,000000   ;  SO
    .WORD    000000,015000,021046,015046,001002   ;  SP
    .WORD    000000,026000,021062,026062,020040   ;  SQ
    .WORD    000000,015000,001046,001002,000000   ;  SR
    .WORD    000000,016000,016002,017040,000000   ;  SS
    .WORD    002000,007004,002004,014044,000000   ;  ST
    .WORD    000000,021000,021042,026062,000000   ;  SU
    .WORD    000000,021000,021042,004024,000000   ;  SV
    .WORD    000000,021000,025042,012052,000000   ;  SW
    .WORD    000000,021000,004024,021024,000000   ;  SX
    .WORD    000000,021000,021042,004024,001004   ;  SY
    .WORD    000000,037000,004020,037004,000000   ;  SZ
    .WORD    030000,004010,004006,030010,000000   ;  F[
    .WORD    004000,004010,004010,004010,000000   ;  ^I
    .WORD    003000,004010,004060,003010,000000   ;  F]
    .WORD    000076,000000,000000,000000,000000   ;  ^_
    .WORD    037000,037076,037076,037076,000000   ;  ÇÁ

    .WORD    037100,012025,012024,021024,000000   ;  ÏÈ
    .WORD    004010,004010,000377,000000,000000   ;  _I
    .WORD    033000,077577,037177,004010,000000   ;  ×ÅÐÂÀ
    .WORD    000000,000000,004017,004010,004010   ;  ^Ã
    .WORD    004010,007410,007410,004010,004010   ;  =I
    .WORD    004010,004010,004370,004010,004010   ;  I-
    .WORD    004010,004010,000370,000000,000000   ;  L
    .WORD    000000,177400,177400,000000,000000   ;  =
    .WORD    000000,177400,177400,004010,004010   ;  T-
    .WORD    004000,037034,077577,037034,000000   ;  ÏÈÊÀ
    .WORD    000000,000000,004370,004010,004010   ;  Ã
    .WORD    000000,000000,004377,004010,004010   ;  T
    .WORD    012024,012024,000377,000000,000000   ;  _II
    .WORD    004000,004010,025010,004034,000000   ;  ÑÍ
    .WORD    004010,004010,004377,004010,004010   ;  +
    .WORD    012024,012024,012024,012024,012024   ;  II
    .WORD    004010,004010,004017,004010,004010   ;  -I
    .WORD    000000,002010,002176,000010,000000   ;  ÑË
    .WORD    012024,177424,177424,012024,012024   ;  ++
    .WORD    004000,025034,004010,004010,000000   ;  ÑÂ
    .WORD    016000,065434,065577,016010,000000   ;  ÊÐÅÑÒÀ
    .WORD    000000,000000,000377,000000,000000   ;  -
    .WORD    012024,012024,012377,012024,012024   ;  -II
    .WORD    004010,004010,004010,004010,004010   ;  I
    .WORD    004000,037034,037177,004034,000000   ;  ÁÓÁÍÀ
    .WORD    004010,004010,000017,000000,000000   ;  ^L
    .WORD    004010,177410,177410,004010,004010   ;  /=
    .WORD    000000,000000,012377,012024,012024   ;  Ï
    .WORD    004010,177410,177400,000000,000000   ;  __I
    .WORD    004010,174010,174010,004010,004010   ;  I=
    .WORD    000000,020020,020176,000020,000000   ;  ÑÏ
    .WORD    031714,031714,031714,031714,031714   ;  ÑÅÐÛÉ ÇÀÁÎÉ

    .WORD    000000,031000,047112,031112,000000   ;  ÑÞ
    .WORD    000000,016000,036040,056042,000000   ;  ÑÀ
    .WORD    020000,001034,021036,016042,000000   ;  ÑÁ
    .WORD    000000,011000,011022,037022,000040   ;  ÑÖ
    .WORD    000000,036000,022044,077044,000102   ;  ÑÄ
    .WORD    000000,016000,037042,036002,000000   ;  ÑÅ
    .WORD    000000,004000,025076,037052,004010   ;  ÑÔ
    .WORD    000000,037000,001042,001002,000000   ;  ÑÃ
    .WORD    000000,021000,004024,021024,000000   ;  ÑÕ
    .WORD    000000,021000,025062,021046,000000   ;  ÑÈ
    .WORD    016000,021000,025062,021046,000000   ;  ÑÉ
    .WORD    000000,021000,007022,021022,000000   ;  ÑÊ
    .WORD    000000,034000,022044,021044,000000   ;  ÑË
    .WORD    000000,021000,025066,021042,000000   ;  ÑÌ
    .WORD    000000,021000,037042,021042,000000   ;  ÑÍ
    .WORD    000000,016000,021042,016042,000000   ;  ÑÎ
    .WORD    000000,037000,021042,021042,000000   ;  ÑÏ
    .WORD    000000,036000,036042,021044,000000   ;  Ñß
    .WORD    000000,015000,021046,015046,001002   ;  ÑÐ
    .WORD    000000,016000,001042,016042,000000   ;  ÑÑ
    .WORD    000000,037000,004010,004010,000000   ;  ÑÒ
    .WORD    000000,021000,021042,004024,001004   ;  ÑÓ
    .WORD    000000,025000,016052,025052,000000   ;  ÑÆ
    .WORD    000000,017000,017042,017042,000000   ;  ÑÂ
    .WORD    000000,001000,017002,017042,000000   ;  ÑÜ
    .WORD    000000,041000,047102,047122,000000   ;  ÑÛ
    .WORD    000000,017000,014040,017040,000000   ;  ÑÇ
    .WORD    000000,025000,025052,037052,000000   ;  ÑØ
    .WORD    000000,017000,036040,017040,000000   ;  ÑÝ
    .WORD    000000,025000,025052,077052,000100   ;  ÑÙ
    .WORD    000000,021000,037042,020040,000000   ;  Ñ×
    .WORD    000000,003400,036005,036104,000000   ;  Ñ'Ü

    .WORD    031000,045112,045116,031112,000000   ;  Þ
    .WORD    004000,021024,037042,021042,000000   ;  A
    .WORD    037000,001002,021036,017042,000000   ;  Á
    .WORD    021000,021042,021042,077042,000100   ;  Ö
    .WORD    036000,022044,022044,077044,000102   ;  Ä
    .WORD    037000,001002,001036,037002,000000   ;  E
    .WORD    004000,025076,025052,004076,000000   ;  Ô
    .WORD    037000,001042,001002,001002,000000   ;  Ã
    .WORD    021000,012042,012010,021042,000000   ;  Õ
    .WORD    021000,031042,023052,021042,000000   ;  È
    .WORD    000034,031042,023052,021042,000000   ;  É
    .WORD    021000,005022,005006,021022,000000   ;  Ê
    .WORD    034000,022044,022044,021044,000000   ;  Ë
    .WORD    021000,025066,021052,021042,000000   ;  Ì
    .WORD    021000,021042,021076,021042,000000   ;  Í
    .WORD    016000,021042,021042,016042,000000   ;  Î
    .WORD    037000,021042,021042,021042,000000   ;  Ï
    .WORD    036000,021042,024074,021044,000000   ;  ß
    .WORD    017000,021042,001036,001002,000000   ;  Ð
    .WORD    016000,001042,001002,016042,000000   ;  Ñ
    .WORD    037000,004010,004010,004010,000000   ;  Ò
    .WORD    021000,021042,004024,001004,000000   ;  Ó
    .WORD    025000,025052,025034,025052,000000   ;  Æ
    .WORD    017000,021042,021036,017042,000000   ;  Â
    .WORD    001000,001002,021036,017042,000000   ;  Ü
    .WORD    041000,041102,051116,047122,000000   ;  Æ
    .WORD    016000,020042,020030,016042,000000   ;  Ç
    .WORD    021000,025052,025052,037052,000000   ;  Ø
    .WORD    007000,020020,020074,007020,000000   ;  Ý
    .WORD    021000,025052,025052,077052,000100   ;  Ù
    .WORD    021000,021042,020076,020040,000000   ;  ×
    .WORD    003400,002005,042074,036104,000000   ;  'Ü



--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
SuperMax
ñîîáùåíèå 20.10.2009, 15:32
Ñîîáùåíèå #6


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 7.1.2006
Èç: Êðàñíîÿðñê
Ïîëüçîâàòåëü ¹: 1




Êîä






;  ************************************************
;  *                                              *
;  *    Ä Ð À É Â Å Ð    Ì À Ã Í È Ò Î Ô Î Í À    *
;  *                                              *
;  ************************************************



;   ======================
;   *** ÊÎÍÑÒÀÍÒÛ DMAG ***
;   ======================

    ASPORT    = 177716   ;- ÀÄÐÅÑ ÑÈÑÒÅÌÍÎÃÎ ÏÎÐÒÀ
    APSTOP    = 4       ;- ÀÄÐÅÑ ÏÅÐÅÕÎÄÀ ÏÎ "ÑÒÎÏ"

    KDBIT0    = 100       ;- ÄËÈÍÀ ÁÈÒÀ ÍÀ ÇÀÏÈÑÜ
    KDBIT1    = 400       ;
    DRAZBR    = 4       ;- ÄÈÀÏÀÇÎÍ ÐÀÇÁÐÎÑÀ Í.Ï.

    KPUSK    = 20       ;- ÊÎÍÑ. ÏÓÑÊ
    KSTOP    = 220       ;- ÊÎÍÑ. ÑÒÎÏ
    KBIT00    = 20       ;- ÊÎÍÑ. -0
    KBIT10    = 60       ;- ÊÎÍÑ. -1
    KBIT01    = 160       ;- ÊÎÍÑ. +0
    KBIT11    = 120       ;- ÊÎÍÑ. +1





; ==================================
; ***** ÌÎÄÓËÜ ÓÏÐÀÂËÅÍÈß DMAG *****
; ==================================


;    ÂÕÎÄ:    R1 - ÀÄÐÅÑ ÁËÎÊÀ ÏÀÐÀÌÅÒÐÎÂ

;    R3  -  ÀÄÐÅÑ ÏÎÐÒÀ

MDMAG:    JSR    R4,PSREG

    MOV    R1,ABP       ;  ÏÎÄÃ. ÏÀÐÀÌ
    MOV    #ASPORT,R3
    CLRB    PROH
    CLR    PRFCT

    MOV    @#APSTOP,-(SP)   ;  ÏÎÄÃ. ÂÛÕ. ÏÎ "ÑÒÎÏ"
    MOV    #AWDMAG,@#APSTOP
    MOV    SP,BUFSP

    MOVB    (R1),R0       ;  ÀÍÀËÈÇ ÊÎÌÀÍÄÛ

    BNE    1$       ;- ÑÒÎÏ
    MOV    #KSTOP,(R3)
    BR    KMDMAG

1$:    DEC    R0       ;- ÏÓÑÊ
    BNE    2$
    MOV    #KPUSK,(R3)
    BR    KMDMAG

2$:    DEC    R0       ;- ÇÀÏÈÑÜ ÌÀÑÑÈÂÀ
    BNE    3$
    JSR    PC,BZMAS
    BR    KMDMAG

3$:    DEC    R0       ;- ×ÒÅÍÈÅ ÌÀÑÑÈÂÀ
    BNE    4$
5$:    JSR    PC,BCTMAS
    BR    KMDMAG

4$:    INC    PRFCT       ;- ÔÈÊÒÈÂÍÎÅ ×ÒÅÍÈÅ ÌÀÑÑÈÂÀ
    DEC    R0
    BEQ    5$

    MOV    #KDBIT0,DLBIT0   ;- ÓÑÒÀÍÎÂÊÀ ÑÊÎÐÎÑÒÈ ÇÀÏÈÑÈ
    MOV    #KDBIT1,DLBIT1
    BR    6$
7$:    ASR    DLBIT0
    ASR    DLBIT1
6$:    SOB    R0,7$
    BR    KMDMAG

AWDMAG:    MOV    BUFSP,SP   ;  ÀÂÀÐÈÉÍÛÉ ÂÛÕÎÄ ÈÇ DMAG
    MOVB    #4,PROH
    MOV    #KSTOP,(R3)   ;- ÎÑÒÀÍÎÂ ÄÂÈÃÀÒÅËß

KMDMAG:    MOV    ABP,R1       ;  ÂÛÕÎÄ
    MOVB    PROH,1(R1)
    MOV    (SP)+,@#APSTOP

    JSR    R4,PWREG
    RTS    PC



;   ==============================
;   *** 1. ÁËÎÊ ÇÀÏÈÑÈ ÌÀÑÑÈÂÀ ***
;   ==============================


;    ÂÕÎÄ:    R1  - ÀÄÐÅÑ ÁËÎÊÀ ÏÀÐÀÌÅÒÐÎÂ

BZMAS:    MOV    #KPUSK,(R3)   ;  ÏÓÑÊ ÄÂÈÃÀÒÅËß

    MOV    2(R1),R5   ;  ÏÎÄÑ×ÅÒ ÊÎÍÒÐÎËÜÍÎÉ ÑÓÌÌÛ
    MOV    4(R1),R4
    BEQ    1$
    CLR    R0
2$:    CLR    R2
    BISB    (R5)+,R2
    ADD    R2,R0
    ADC    R0
    SOB    R4,2$
    MOV    R0,BUFKS

    MOV    #11,R4       ;  ÇÀÏÈÑÜ ÍÀÑÒÐÎÅ×ÍÎÉ ÏÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÈ
    MOV    #10000,R0
    BR    3$
4$:    MOV    R4,R0
3$:    JSR    PC,PZNP
    SOB    R4,4$

    MOV    (R1)+,R0   ;  ÇÀÏÈÑÜ ÈÌÅÍÈ
    MOV    #24,R2
    JSR    PC,PZBL

    MOV    ABP,R1       ;  ÇÀÏÈÑÜ ÌÀÑÑÈÂÀ
    MOV    4(R1),R2
    MOV    2(R1),R1
    JSR    PC,PZBL

    MOV    #BUFKS,R1   ;  ÇÀÏÈÑÜ KS
    MOV    #10,R2
    JSR    PC,PZBL

1$:    MOV    #KSTOP,(R3)   ;- ÎÑÒÀÍÎÂ ÄÂÈÃÀÒÅËß

    RTS    PC


;    ------------------------------------------------
;    ** 1.1. ÇÀÏÈÑÜ ÍÀÑÒÐÎÅ×ÍÎÉ ÏÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÈ **
;    ------------------------------------------------

;    ÂÕÎÄ:   R0  - Ñ×ÅÒ×ÈÊ ÍÓËÅÂÛÕ ÈÌÏÓËÜÑÎÂ

;    ÂÛÕÎÄ:  C = 0

;    R0,R5  - ÐÀÁÎ×ÈÅ

PZNP:    BCS    1$

2$:    JSR    PC,PZ0P       ;  ÇÀÏÈÑÜ 0 Â ÖÈÊËÅ
1$:    JSR    PC,PZ0M
    SOB    R0,2$

    JSR    PC,PZ1P       ;  ÇÀÏÈÑÜ ÌÀÐÊÅÐÀ(+1,-1)
    JSR    PC,PZ1M

    RTS    PC


;    -----------------------
;    ** 1.2. ÇÀÏÈÑÜ ÁËÎÊÀ **
;    -----------------------

;    ÂÕÎÄ:   R1  - ÀÄÐÅÑ ÁËÎÊÀ
;        R2  - ÄËÈÍÀ ÁËÎÊÀ

;    R0 - R2,R4,R5  - ÐÀÁÎ×ÈÅ

PZBL:    MOV    #20,R0       ;  ÇÀÏÈÑÜ ÁÓÔ. ÏÎÑËÅÄ.
    JSR    PC,PZNP

PZBL1:    BISB    (R1)+,R0   ;- ÏÎÄÃÎÒÎÂÊÀ ÁÀÉÒÀ
    MOV    #10,R4

PZB:    BCS    PZMBIT       ;  ÇÀÏÈÑÜ ÁÀÉÒÀ

    ASR    R0
    BCS    1$
    JSR    PC,PZ0P       ;- ÇÀÏÈÑÜ +0
    BR    KZB

1$:    JSR    PC,PZ1P       ;- ÇÀÏÈÑÜ +1
    BR    KZB

PZMBIT:    ASR    R0
    BCS    1$
    JSR    PC,PZ0M       ;- ÇÀÏÈÑÜ -0
    BR    KZB

1$:    JSR    PC,PZ1M       ;- ÇÀÏÈÑÜ -1
    BR    KZB

KZB:    SOB    R4,PZB       ;  ÊÎÍÅÖ ÇÀÏÈÑÈ ÁÀÉÒÀ

KZBL:    SOB    R2,PZBL1   ;  ÊÎÍÅÖ ÇÀÏÈÑÈ ÁËÎÊÀ

    RTS    PC


;    ----------------------
;    ** 1.3. ÇÀÏÈÑÜ ÁÈÒÀ **
;    ----------------------

PZ0P:    MOV    #KBIT01,(R3)   ;  ÇÀÏÈÑÜ +0
    MOV    DLBIT0,R5
1$:    SOB    R5,1$
    SEC
    RTS    PC

PZ0M:    MOV    #KBIT00,(R3)   ;  ÇÀÏÈÑÜ -0
    MOV    DLBIT0,R5
1$:    SOB    R5,1$
    CLC
    RTS    PC


PZ1P:    MOV    #KBIT11,(R3)   ;  ÇÀÏÈÑÜ +1
    MOV    DLBIT1,R5
1$:    SOB    R5,1$
    SEC
    RTS    PC

PZ1M:    MOV    #KBIT10,(R3)   ;  ÇÀÏÈÑÜ -1
    MOV    DLBIT1,R5
1$:    SOB    R5,1$
    CLC
    RTS    PC



;   ==============================
;   *** 2. ÁËÎÊ ×ÒÅÍÈß ÌÀÑÑÈÂÀ ***
;   ==============================


;    R0 - R5  - ÐÀÁÎ×ÈÅ
;    R5  - ÌÀÑÊÀ ÈÍÔÎÐÌÀÖÈÎÍÍÎÃÎ ÐÀÇÐßÄÀ

BCTMAS:    MOV    #40,R5       ;  ÏÎÄÃ.ÏÀÐÀÌ. È ÏÓÑÊ ÄÂÈÃÀÒÅËß
    MOV    #KPUSK,(R3)
    MOV    #1,INCADR

    CLR    PROH
    JSR    PC,PPNF       ;  ÏÎÈÑÊ ÍÀ×ÀËÀ ÔÀÉËÀ

    JSR    PC,PCTIM   ;  ×ÒÅÍÈÅ IMMAS
    TSTB    PROH
    BNE    KCTMAS

    JSR    PC,PCTMAS   ;  ×ÒÅÍÈÅ ÁËÎÊÀ ÈÍÔÎÐÌÀÖÈÈ
    MOV    #KSTOP,(R3)

KCTMAS:    RTS    PC


;    -----------------------------
;    ** 2.1. ÏÎÈÑÊ ÍÀ×ÀËÀ ÔÀÉËÀ **
;    -----------------------------

PPNF:    MOV    #2000,R2   ;  ÏÎÈÑÊ ÍÓËÅÉ
    CLR    R0

4$:    CLR    R4       ;- ×ÒÅÍÈÅ ÈÌÏÓËÜÑÀ
1$:    BIT    R5,(R3)
    BEQ    1$
2$:    INC    R4
    BIT    R5,(R3)
    BNE    2$

    SUB    R4,R0       ;  ÎÏÐÅÄÅËÅÍÈÅ ÐÀÇÁÐÎÑÀ
    BMI    3$
    CMP    R0,#DRAZBR
    BHI    PPNF
3$:    MOV    R4,R0
    SOB    R2,4$

    CLR    R0       ;  ÍÀÑÒÐÎÉÊÀ ÍÀ ÑÊÎÐÎÑÒÜ
    MOV    #100,R2
5$:    JSR    PC,PCTBIT   ;- Ñ×ÅÒ ÈÌÏÓËÜÑÎÂ
    ADD    R4,R0
    SOB    R2,5$

    MOV    #5,R2       ;- ÂÛ×ÈÑËÅÍÈÅ ÃÐÀÍÈÖÛ 0
6$:    ASR    R0
    SOB    R2,6$
    ADD    #4,R0
    MOV    R0,GRDL0

    JSR    PC,PPM       ;  ÏÐÎÂÅÐÊÀ ÊËÞ×À
    MOV    #20,R0
11$:    MOV    R0,R2
10$:    JSR    PC,PCTBIT
    BCS    PPNF
    SOB    R2,10$
    JSR    PC,PCTBIT
    BCC    PPNF
    JSR    PC,PCTBIT
    BCC    PPNF
    DEC    R0
    SOB    R0,11$

    RTS    PC


;    -------------------------------
;    ** 2.2. ×ÒÅÍÈÅ ÈÌÅÍÈ ÌÀÑÑÈÂÀ **
;    -------------------------------

PCTIM:    MOV    ABP,R1       ;  ×ÒÅÍÈÅ ÈÌÅÍÈ
    ADD    #26,R1
    MOV    #24,R2
    JSR    PC,PCTBL

    MOV    #10,R2
2$:    CMP    -(R1),-24(R1)   ;  ÑÐÀÂÍÅÍÈÅ ÈÌÅÍ
    BNE    1$
    SOB    R2,2$

    MOV    -(R1),BUFDL   ;- ÓÑÒ. ÄËÈÍÛ ÌÀÑÑÈÂÀ
    MOV    -26(R1),BUFSTA   ;- ÓÑÒ. ÑÒÀÐÒ. ÀÄÐÅÑÀ
    BNE    KCTIM
    MOV    -(R1),BUFSTA
    BR    KCTIM

1$:    INCB    PROH

KCTIM:    RTS    PC


;    -------------------------
;    ** 2.3. ×ÒÅÍÈÅ ÌÀÑÑÈÂÀ **
;    -------------------------

PCTMAS:    MOV    BUFSTA,R1   ;  ×ÒÅÍÈÅ ÌÀÑÑÈÂÀ
    MOV    BUFDL,R2
    SUB    PRFCT,INCADR
    BNE    1$
    MOV    #BUFKS,R1   ;- ÔÈÊÒÈÂÍÎÅ ×ÒÅÍÈÅ
1$:    JSR    PC,PCTBL
    MOV    R0,-(SP)

    MOV    #BUFKS,R1   ;  ×ÒÅÍÈÅ KS
    MOV    #2,R2
    MOV    #1,INCADR
    JSR    PC,PCTBL

    CMP    (SP)+,BUFKS   ;  ÑÐÀÂÍÅÍÈÅ KS
    BEQ    KCTM
    MOVB    #2,PROH

KCTM:    RTS    PC


;    -----------------------
;    ** 2.4. ×ÒÅÍÈÅ ÁËÎÊÀ **
;    -----------------------

;    ÂÕÎÄ:    R1  - ÀÄÐÅÑ ÎÇÓ
;        R2  - ÄËÈÍÀ ÁËÎÊÀ

;    ÂÛÕÎÄ:  R0  - ÊÎÍÒÐÎËÜÍÀß ÑÓÌÌÀ

PCTBL:    JSR    PC,PPM       ;  ÏÎÈÑÊ ÌÀÐÊÅÐÀ
    CLR    -(SP)

2$:    MOV    #10,R0       ;  ×ÒÅÍÈÅ ÁËÎÊÀ

1$:    JSR    PC,PCTBIT   ;  ×ÒÅÍÈÅ ÁÀÉÒÀ
    RORB    (R1)
    SOB    R0,1$

    BISB    (R1),R0       ;- ÏÎÄÑ×ÅÒ KS
    ADD    R0,(SP)
    ADC    (SP)

    ADD    INCADR,R1   ;- ÈÇÌÅÍÅÍÈÅ ÀÄÐÅÑÀ
    SOB    R2,2$

    MOV    (SP)+,R0
KCTBL:    RTS    PC


;    ----------------------
;    ** 2.5. ×ÒÅÍÈÅ ÁÈÒÀ **
;    ----------------------

;    ÂÛÕÎÄ:  C = 0  - 0 ÁÈÒ
;        C = 1  - 1 ÁÈÒ

;    R4  - ÐÀÁÎ×ÈÉ

PCTBIT:    CLR    R4       ;  Ñ×ÅÒ×ÈÊ ÄËÈÍÛ ÁÈÒÀ

    BIT    R5,(R3)
    BEQ    1$

2$:    INC    R4       ;  +
    BIT    R5,(R3)
    BNE    2$
    BR    3$

1$:    INC    R4       ;  -
    BIT    R5,(R3)
    BEQ    1$

3$:    CMP    GRDL0,R4   ;- ÓÑÒÀÍÎÂÊÀ ÁÈÒÀ C

    RTS    PC


;    ------------------------
;    ** 2.6. ÏÎÈÑÊ ÌÀÐÊÅÐÀ **
;    ------------------------

;    R4  - ÐÀÁÎ×ÈÉ

PPM:    JSR    PC,PCTBIT
    BCC    PPM
    JSR    PC,PCTBIT
    BCC    PPM

    RTS    PC





;  **********************************************
;  *                                            *
;  *    Ä Ð À É Â Å Ð    Ò Ë Ã - Ê À Í À Ë À    *
;  *                                            *
;  **********************************************



;   ======================
;   *** ÊÎÍÑÒÀÍÒÛ DTLG ***
;   ======================


    ASPORT    = 177716   ;- ÀÄÐÅÑ ÑÈÑÒÅÌÍÎÃÎ ÏÎÐÒÀ

    KTLG0    = 200       ;- ÊÎÍÑ. ÓÑÒÀÍÎÂÊÈ 0
    KTLG1    = 220       ;- ÊÎÍÑ. ÓÑÒÀÍÎÂÊÈ 1





; =====================================
; ***** ÌÎÄÓËÜ ÈÍÈÖÈÀËÈÇÀÖÈÈ DTLG *****
; =====================================


;    ÂÕÎÄ:    R0 - ÍÎÌÅÐ ÇÍÀ×ÅÍÈß ÑÊÎÐÎÑÒÈ


MIDTLG:    ASL    R0
    MOV    KDLBIT(R0),DLBIT

    RTS    PC





; =================================
; ***** ÌÎÄÓËÜ ÏÅÐÅÄÀ×È ÁÀÉÒÀ *****
; =================================


;    ÂÕÎÄ:    R0 - ÌË. ÁÀÉÒ


MPDBYT:



;   ===========================
;   *** ÁËÎÊ ÏÅÐÅÄÀ×È ÁÀÉÒÀ ***
;   ===========================


BPDB:    MOV    R0,-(SP)
    MOV    R4,-(SP)

    BIS    #1400,R0   ;  ÏÎÄÃ. ÏÀÐÀÌÅÒÐÎÂ
    MOV    #13,R4

6$:    BIT    #200,@#ASPORT   ;  ÎÆ. ÃÎÒÎÂÍÎÑÒÈ
    BEQ    6$

    CLC           ;  ÓÑÒÀÍÎÂÊÀ ÁÈÒÀ
    BR    1$
4$:    ASR    R0
1$:    BCC    2$
    MOV    #KTLG1,@#ASPORT
    BR    3$
2$:    MOV    #KTLG0,@#ASPORT
    BR    3$

3$:    MOV    DLBIT,R5   ;  ÖÈÊË ÏÅÐÅÄÀ×È ÁÈÒÀ
5$:    SOB    R5,5$

    SOB    R4,4$

    MOV    (SP)+,R4
    MOV    (SP)+,R0
    RTS    PC





; ===============================
; ***** ÌÎÄÓËÜ ÏÐÈÅÌÀ ÁÀÉÒÀ *****
; ===============================


;    ÂÛÕÎÄ:    R0 - ÌË. ÁÀÉÒ


MPRBYT:



;   =========================
;   *** ÁËÎÊ ÏÐÈÅÌÀ ÁÀÉÒÀ ***
;   =========================


BPRB:    MTPS    #0       ;- ÐÀÇÐÅØÅÍÈÅ ÏÐÅÐÛÂÀÍÈÉ
    MOV    R3,-(SP)
    MOV    R4,-(SP)

    MOV    #ASPORT,R3   ;  ÏÎÄÃ. ÏÀÐÀÌ.
    MOV    #20,R4       ;- Ñ×ÅÒ×ÈÊ ÁÀÉÒÀ
    CLR    R0

1$:    BIT    R4,(R3)       ;  ÏÎÈÑÊ ÑÒÀÐÒÎÂÎÃÎ ÁÈÒÀ
    BEQ    1$
11$:    MOV    #260,(R3)   ;- ÓÑÒ. ÃÎÒÎÂÍ. ÏÐÈÅÌÀ
    BIT    R4,(R3)
    BNE    11$
    MTPS    #200       ;- ÇÀÏÐÅÒ ÏÐÅÐÛÂÀÍÈÉ

    MOV    DLBIT,R5   ;  ÏÎÈÑÊ ÑÅÐÅÄ. ÑÒ. ÁÈÒÀ
    ASR    R5
2$:    SOB    R5,2$
    ASR    R4

6$:    MOV    DLBIT,R5   ;- ×ÒÅÍÈÅ ÁÀÉÒÀ
3$:    SOB    R5,3$
    BIT    #20,(R3)
    BNE    4$
    CLC
    BR    5$
4$:    SEC
    BR    5$
5$:    RORB    R0
    SOB    R4,6$
    MOV    #220,(R3)   ;- ÑÁÐÎÑ ÃÎÒÎÂÍ. ÏÐÈÅÌÀ

    MOV    (SP)+,R4
    MOV    (SP)+,R3
    RTS    PC





; ===================================
; ***** ÌÎÄÓËÜ ÏÅÐÅÄÀ×È ÌÀÑÑÈÂÀ *****
; ===================================


;    ÂÕÎÄ:    R1 - ÀÄÐÅÑ ÌÀÑÑÈÂÀ
;        R2 - ÄËÈÍÀ ÌÀÑÑÈÂÀ Â ÁÀÉÒÀÕ


MPDMAS:    MOV    R0,-(SP)

1$:    MOVB    (R1)+,R0   ;  ÏÅÐÅÄÀ×À ÌÀÑÑÈÂÀ
    JSR    PC,BPDB
    SOB    R2,1$

    MOV    (SP)+,R0
    RTS    PC





; =================================
; ***** ÌÎÄÓËÜ ÏÐÈÅÌÀ ÌÀÑÑÈÂÀ *****
; =================================


;    ÂÕÎÄ:    R1 - ÀÄÐÅÑ ÏÀÌßÒÈ ÄËß ÌÀÑÑÈÂÀ
;        R2 - ÄËÈÍÀ ÌÀÑÑÈÂÀ Â ÁÀÉÒÀÕ


MPRMAS:    MOV    R0,-(SP)

1$:    JSR    PC,BPRB       ;  ÏÐÈÅÌ ÌÀÑÑÈÂÀ
    MOVB    R0,(R1)+
    SOB    R2,1$

    MOV    (SP)+,R0
    RTS    PC



;   ===================
;   *** ÄÀÍÍÛÅ DTLG ***
;   ===================


KDLBIT:               ;  ÊÎÍÑÒÀÍÒÛ ÄËÈÍÛ ÁÈÒÀ
DL9600:    .WORD    14
DL4800:    .WORD    36
DL2400:    .WORD    103
DL1200:    .WORD    213
DL600:    .WORD    435
DL300:    .WORD    1100
DL200:    .WORD    1542
DL150:    .WORD    2206
DL110:    .WORD    3300
DL75:    .WORD    4422
DL50:    .WORD    6633





; ================================
; ***** ÁËÎÊ ÏÅÐÅÌÅÍÍÛÕ DMBK *****
; ================================


    .ASECT


;   ===============================
;   *** ÑÈÑÒÅÌÍÛÅ ÏÐÈÇÍÀÊÈ DMBK ***
;   ===============================

    . = 40

SYSPR:
PRCW:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÖÂÅÒÍÎÃÎ ÐÅÆÈÌÀ
PRINWF:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÈÍÂÅÐÑÈÈ ÔÎÍÀ
PRRP:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÐÀÑØÈÐÅÍÍÎÉ ÏÀÌßÒÈ
PRRUS:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÐÓÑÑÊÎÃÎ ÐÅÃÈÑÒÐÀ
PRPODC:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÏÎÄ×ÅÐÊÈÂÀÍÈß ÑÈÌÂÎËÀ
PRINWS:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÈÍÂÅÐÑÈÈ ÑÈÌÂÎËÀ
PRISU:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÈÍÄÈÊÀÖÈÈ ÑÓ
PRBLR:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÁËÎÊÈÐÎÂÊÈ ÐÅÄÀÊÒÈÐÎÂÀÍÈß
PRGRAF:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÐÅÆÈÌÀ
PRZAP:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÐÅÆÈÌÀ ÇÀÏÈÑÈ
PRSTIR:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÐÅÆÈÌÀ ÑÒÈÐÀÍÈß
PRCWSS:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÖÂÅÒÍÎÃÎ ÐÅÆÈÌÀ Â ÑÑ
PRPSSS:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÏÎÄ×ÅÐÊÈÂÀÍÈß ÑÈÌÂÎËÀ  ÑÑ
PRISSS:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÈÍÂÅÐÑÈÈ ÑÈÌÂÎËÀ Â ÑÑ
PRGAHK:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÃÀØÅÍÈß ÊÓÐÑÎÐÀ



;   ========================
;   *** ÏÅÐÅÌÅÍÍÛÅ DKLAW ***
;   ========================

    . = 100

WPTM:    .WORD    0   ;- ÂÅÊÒÎÐ ÏÐÅÐÛÂÀÍÈß ÒÀÉÌÅÐÀ
SSPTM:    .WORD    0   ;- ÑËÎÂÎ ÑÎÑÒÎßÍÈß ÏÐÖ

BUFKL:    .BYTE    0   ;- ÁÓÔÅÐ ÊËÀÂÈÀÒÓÐÛ
PRZKB:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÇÀÏÈÑÈ ÊÎÄÀ Â ÁÓÔÅÐ
BKPOWT:    .WORD    0   ;- ÁÓÔÅÐ ÊÎÍÑÒÀÍÒÛ ÏÎÂÒÎÐÀ
PRPOWT:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÏÎÂÒÎÐÀ ÊÎÄÀ

SCTAB:    .BYTE    0   ;- Ñ×ÅÒ×ÈÊ ÒÀÁÓËßÖÈÈ
MTAB:    .BLKW    4   ;- ÌÀÑÊÀ ÒÀÁÓËßÖÈÈ

SCKLC:    .BYTE    0   ;- Ñ×ÅÒ×ÈÊ ÊËÞ×À
    .EVEN
TAKLC:    .WORD    0   ;- ÒÅÊÓÙÈÉ ÀÄÐÅÑ ÊËÞ×À
AKLC:    .BLKW    12   ;  ÀÄÐÅÑÀ ÊËÞ×ÅÉ



;   ========================
;   *** ÏÅÐÅÌÅÍÍÛÅ DTVMN ***
;   ========================


PRNRUL:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÍÀÐÓØÅÍÈß ÐÓËÎÍÀ

PRZTCK:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÇÀÏÈÑÈ ÒÎ×ÊÈ
MASPGT:    .BYTE    0   ;- ÌÀÑÊÀ ÏÎÇÈÖÈÈ ÃÒ
NMPGT:    .BYTE    0   ;- ÍÀ×ÀËÜÍÀß ÌÀÑÊÀ ÏÎÇÈÖÈÈ ÃÒ

NOMSIM:    .WORD    0   ;- ÍÎÌÅÐ ÑÈÌÂÎËÀ ÍÀ ÝÊÐÀÍÅ
AS:    .WORD    0   ;- ÀÄÐÅÑ ÑÈÌÂÎËÀ
DSIMB:    .WORD    0   ;- ÄËÈÍÀ ÑÈÌÂÎËÀ Â ÁÀÉÒÀÕ
KSVP:    .WORD    0   ;- ÊÎËÈ×ÅÑÒÂÎ ÑÈÌÂÎËΠÍÀ ÝÊÐÀÍÅ

AGTVP:    .WORD    0   ;- ÀÄÐÅÑ ÃÒ ÍÀ ÝÊÐÀÍÅ
AGT:    .WORD    0   ;- ÀÄÐÅÑ ÃÒ
DGW:    .WORD    0   ;- ÄËÈÍÀ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÂÅÊÒÎÐÀ
SCTVS:    .WORD    0   ;- Ñ×ÅÒ×ÈÊ TV-ÑÒÐÎÊ
BUFX:    .WORD    0   ;- ÁÓÔÅÐ ÊÎÎÐÄÈÍÀÒÛ X
BUFY:    .WORD    0   ;- ÁÓÔÅÐ ÊÎÎÐÄÈÍÀÒÛ Y

ANVP:    .WORD    0   ;- ÀÄÐÅÑ ÍÀ×ÀËÀ ÂÈÄÅÎÏÀÌßÒÈ
BAZVP:    .WORD    0   ;- ÁÀÇÀ ÂÈÄÅÎÏÀÌßÒÈ
DVPB:    .WORD    0   ;- ÄËÈÍÀ ÂÈÄÅÎÏÀÌßÒÈ Â ÁÀÉÒÀÕ
DGPB:    .WORD    0   ;- ÄËÈÍÀ ÃÐÀÔ. ÏÀÌßÒÈ Â ÁÀÉÒÀÕ

FON:    .WORD    0   ;- ÔÎÍ ÝÊÐÀÍÀ
MASCW:    .WORD    0   ;- ÌÀÑÊÀ ÖÂÅÒÀ
FONSS:    .WORD    0   ;- ÔÎÍ ÑÑ
MCWSS:    .WORD    0   ;- ÌÀÑÊÀ ÖÂÅÒÀ ÑÑ

SCKOD:    .WORD    0   ;- Ñ×ÅÒ×ÈÊ ÊÎÄÎÂ
SCUIND:    .WORD    0   ;- Ñ×ÅÒ×ÈÊ ÓÑÒÀÍÎÂÊÈ ÈÍÄÈÊÀÒÎÐÎÂ



;   =======================
;   *** ÏÅÐÅÌÅÍÍÛÅ DMAG ***
;   =======================

    . = 300

PROH:    .BYTE    0   ;- ÏÐÈÇÍÀÊ ÎØÈÁÊÈ
    .EVEN
PRFCT:    .WORD    0   ;- ÏÐÈÇÍÀÊ ÔÈÊÒÈÂÍÎÃÎ ×ÒÅÍÈß
INCADR:    .WORD    0   ;- ÈÍÊÐÅÌÅÍÒ ÀÄÐÅÑÀ ÌÀÑÑÈÂÀ

ABP:    .WORD    0   ;- ÀÄÐÅÑ ÁËÎÊÀ ÏÀÐÀÌÅÒÐÎÂ
BUFSP:    .WORD    0   ;- ÁÓÔÅÐ ÓÊÀÇÀÒÅËß ÑÒÅÊÀ
BUFKS:    .WORD    0   ;- ÁÓÔÅÐ ÊÎÍÒÐÎËÜÍÎÉ ÑÓÌÌÛ

GRDL0:    .WORD    0   ;- ÃÐÀÍÈÖÀ ÄËÈÍÛ 0

    . = 320

BPDMAG:           ;  ÁËÎÊ ÏÀÐÀÌÅÒÐÎÂ DMAG
KOM:    .BYTE    0   ;- ÊÎÌÀÍÄÀ
OTWET:    .BYTE    0   ;- ÎÒÂÅÒ
ADRMAS:    .WORD    0   ;- ÀÄÐÅÑ ÌÀÑÑÈÂÀ
DLMAS:    .WORD    0   ;- ÄËÈÍÀ ÌÀÑÑÈÂÀ ÍÀ ÇÀÏÈÑÜ
IMMAS:    .BLKB    20   ;- ÈÌß ÌÀÑÑÈÂÀ
ADRTM:    .WORD    0   ;- ÀÄÐÅÑ ÒÅÊÓÙÅÃÎ ÌÀÑÑÈÂÀ
DLTMAS:    .WORD    0   ;- ÄËÈÍÀ ÒÅÊÓÙÅÃÎ ÌÀÑÑÈÂÀ
IMTMAS:    .BLKB    20   ;- ÈÌß ÒÅÊÓÙÅÃÎ ÌÀÑÑÈÂÀ



;   =================================
;   *** ÑÈÑÒÅÌÍÛÅ ÏÅÐÅÌÅÍÍÛÅ DMBK ***
;   =================================


    . = 250

DLBIT0:    .WORD    0   ;- ÄËÈÍÀ 0 DMAG
DLBIT1:    .WORD    0   ;- ÄËÈÍÀ 1 DMAG
DLBIT:    .WORD    0   ;- ÄËÈÍÀ ÁÈÒÀ DTLG
KPORT:    .WORD    0   ;- ÊÎÏÈß ÏÎÐÒÀ
APOPKL:    .WORD    0   ;- ÀÄÐ.ÏÐÎÃÐ.ÎÁÐ.ÏÐÅÐ.ÎÒ ÊËÀÂ.
PRWK:    .WORD    0   ;- ÏÐÈÇÍÀÊ ÊÎÄÀ ÂÊ
BUFSTA:    .WORD    0   ;- ÁÓÔÅÐ ÑÒÀÐÒÎÂÎÃÎ ÀÄÐÅÑÀ
BUFDL:    .WORD    0   ;- ÁÓÔÅÐ ÄËÈÍÛ ÌÀÑÑÈÂÀ



    .END




--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
SuperMax
ñîîáùåíèå 20.10.2009, 15:36
Ñîîáùåíèå #7


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 7.1.2006
Èç: Êðàñíîÿðñê
Ïîëüçîâàòåëü ¹: 1




Òîæå íî â îòäåëüíûõ ôàéëàõ


Ïðèêðåïëåííûå ôàéëû
Ïðèêðåïëåííûé ôàéë  D1.mac ( 9.32 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 1020
Ïðèêðåïëåííûé ôàéë  D2.mac ( 7.32 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 910
Ïðèêðåïëåííûé ôàéë  D3.mac ( 18.06 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 865
Ïðèêðåïëåííûé ôàéë  D4.mac ( 12.91 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 884
Ïðèêðåïëåííûé ôàéë  D5.mac ( 10.76 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 879
Ïðèêðåïëåííûé ôàéë  D6.mac ( 13.6 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 1288
Ïðèêðåïëåííûé ôàéë  BK10.TXT ( 162.14 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 1208
Ïðèêðåïëåííûé ôàéë  BKNET.TXT ( 16.95 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 1368


--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ
SuperMax
ñîîáùåíèå 20.6.2022, 17:44
Ñîîáùåíèå #8


Àäìèíèñòðàòîð
*****

Ãðóïïà: Root Admin
Ñîîáùåíèé: 6 276
Ðåãèñòðàöèÿ: 7.1.2006
Èç: Êðàñíîÿðñê
Ïîëüçîâàòåëü ¹: 1



äèçàññåìáëèðîâàííûé âàðèàíò

óíèêîä
Ïðèêðåïëåííûé ôàéë  100000z5x.txt ( 123.19 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 424


1251
Ïðèêðåïëåííûé ôàéë  monitor_bk0010.asm ( 61.6 êèëîáàéò ) Êîë-âî ñêà÷èâàíèé: 394



--------------------
Æèâû áóäåì - Íå ïîìðåì !
Ïîëüçîâàòåëü â îíëàéíå!Êàðòî÷êà ïîëüçîâàòåëÿÎòïðàâèòü ëè÷íîå ñîîáùåíèå
Âåðíóòüñÿ â íà÷àëî ñòðàíèöû
+Îòâåòèòü ñ öèòèðîâàíèåì äàííîãî ñîîáùåíèÿ

Îòâåòèòü â ýòó òåìóÎòêðûòü íîâóþ òåìó
2 ÷åë. ÷èòàþò ýòó òåìó (ãîñòåé: 2, ñêðûòûõ ïîëüçîâàòåëåé: 0)
Ïîëüçîâàòåëåé: 0

 



Òåêñòîâàÿ âåðñèÿ Ñåé÷àñ: 19.3.2024, 11:20