Âåðñèÿ äëÿ ïå÷àòè òåìû
MAXIOL _ ÁÊ 0010 / 11 / 11M _ Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010
Àâòîð: SuperMax 20.10.2009, 15:26
Êîä
; #############################################################
; # #
; # Ä Ð À É Â Å Ð Í Û É Ì Î Ä Ó Ë Ü Á Ê - 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
Êîä
; **********************************************
; * *
; * Ä Ð À É Â Å Ð Ê Ë À Â È À Ò Ó Ð Û *
; * *
; **********************************************
; =======================
; *** ÊÎÍÑÒÀÍÒÛ 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
Êîä
; ************************************************
; * *
; * Ä Ð À É Â Å Ð 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
Êîä
; ======================================
; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÑÒÐÎÊÈ *****
; ======================================
; ÂÕÎÄ: 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
Êîä
; ======================
; **** ÄÀÍÍÛÅ 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
Êîä
; ************************************************
; * *
; * Ä Ð À É Â Å Ð Ì À Ã Í È Ò Î Ô Î Í À *
; * *
; ************************************************
; ======================
; *** ÊÎÍÑÒÀÍÒÛ 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.6.2022, 17:44
äèçàññåìáëèðîâàííûé âàðèàíò
óíèêîä
100000z5x.txt ( 123.19 êèëîáàéò )
Êîë-âî ñêà÷èâàíèé: 571
1251
monitor_bk0010.asm ( 61.6 êèëîáàéò )
Êîë-âî ñêà÷èâàíèé: 501
Ðóññêàÿ âåðñèÿ Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)