Êîä
; #############################################################
; # #
; # Ä Ð À É Â Å Ð Í Û É Ì Î Ä Ó Ë Ü Á Ê - 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