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