IPB

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

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


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

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




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

Ñîîáùåíèé â ýòîé òåìå


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

 



Òåêñòîâàÿ âåðñèÿ Ñåé÷àñ: 11.6.2024, 6:34