Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010 |
Çäðàâñòâóéòå, ãîñòü ( Âõîä | Ðåãèñòðàöèÿ )
Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010 |
SuperMax |
20.10.2009, 15:26
Ñîîáùåíèå
#1
|
Àäìèíèñòðàòîð Ãðóïïà: Root Admin Ñîîáùåíèé: 6 286 Ðåãèñòðàöèÿ: 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:31
Ñîîáùåíèå
#2
|
Àäìèíèñòðàòîð Ãðóïïà: Root Admin Ñîîáùåíèé: 6 286 Ðåãèñòðàöèÿ: 7.1.2006 Èç: Êðàñíîÿðñê Ïîëüçîâàòåëü ¹: 1 |
Êîä ; ====================================== ; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÑÒÐÎÊÈ ***** ; ====================================== ; ÂÕÎÄ: R1 - ÀÄÐÅÑ ÑÒÐÎÊÈ ; R2 - ÄËÈÍÀ ÑÒÐÎÊÈ (ÌË.Á.) ; - ÑÈÌÂÎË - ÎÃÐÀÍÈ×ÈÒÅËÜ (ÑÒ.Á.) MFSTR: MOV R0,-(SP) MOV R3,-(SP) MOV R2,R3 ; ÏÎÄÃÎÒÎÂÊÀ ÎÃÐÀÍÈ×ÈÒÅËÅÉ SWAB R3 BIC #177400,R2 1$: MOVB (R1)+,R0 ; ÇÀÏÈÑÜ ÑÒÐÎÊÈ JSR PC,MFSIM CMPB R0,R3 BEQ KMFSTR SOB R2,1$ KMFSTR: MOV (SP)+,R3 MOV (SP)+,R0 RTS PC ; ====================================== ; ***** ÌÎÄÓËÜ ÇÀÏÈÑÈ ÑÈÌÂÎËÀ  ÑÑ ***** ; ====================================== ; ÂÕÎÄ: R0 - ÊÎÄ ÑÈÌÂÎËÀ (0 - ÑÁÐÎÑ ÑÒÐÎÊÈ) ; R1 - ÍÎÌÅÐ ÏÎÇÈÖÈÈ Â ÑÑ MZSSS: JSR R4,PSREG TST R0 BNE 1$ JSR PC,PFSSTR ; ÑÁÐÎÑ ÑÑ BR KMZSSS 1$: CMPB R0,#177 ; ÏÎÄÃÎÒ. ÀÄÐ. ÈÇÎÁÐÀÆ. BHI 3$ CMPB R0,#10 BNE 4$ MOV #21,R0 4$: SUB #20,R0 BMI KMZSSS BR 5$ 3$: CMPB R0,#237 BLOS KMZSSS SUB #60,R0 5$: JSR PC,PFSSS ; ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ KMZSSS: JSR R4,PWREG RTS PC ; ---------------------------------- ; ** 1. ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ  ÑÑ ** ; ---------------------------------- PFSSS: MOV R1,-(SP) ; R0 - ÑÌÅÙÅÍÈÅ ÈÇÎÁÐÀÆÅÍÈß MOV R2,-(SP) ; R1 - ÍÎÌÅÐ ÏÎÇÈÖÈÈ Â ÑÒÐÎÊÅ TSTB PRCW ; ÏÎÄÃ. ÀÄÐ. BEQ 1$ ASL R1 1$: BIC #177700,R1 ADD BAZVP,R1 SUB #1700,R1 BIC #140000,R1 ADD ANVP,R1 MOV AS,-(SP) ; ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ MOV R1,AS BIC #177400,R0 JSR PC,PFSIM MOV (SP)+,AS KFSSS: MOV (SP)+,R2 MOV (SP)+,R1 RTS PC ; ============================================== ; ***** ÌÎÄÓËÜ ÓÑÒÀÍÎÂÊÈ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ ***** ; ============================================== ; ÂÕÎÄ: R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y MUSTKK: JSR R4,PSREG JSR PC,PSTK MOV 2(SP),R1 MOV 4(SP),R2 TSTB PRCW ; ÏÎÄÃ. ÊÎÎÐÄ. X BEQ 1$ ASL R1 1$: MOV #6,R0 ; ÏÎÄÃ. ÊÎÎÐÄ. Y 2$: ASL R2 SOB R0,2$ TSTB PRGRAF BNE PUKGK ; ------------------------------------------------ ; ** 1. ÓÑÒÀÍÎÂÊÀ ÊÎÎÐÄÈÍÀÒ ÑÈÌÂÎËÜÍÎÃÎ ÊÓÐÑÎÐÀ ** ; ------------------------------------------------ PUKSK: BIC #177700,R1 ; ÏÎÄÃ. ÊÎÎÐÄ. X 1$: SUB KSVP,R2 ; ÏÎÄÃ. ÊÎÎÐÄ. Y BPL 1$ 2$: ADD KSVP,R2 BMI 2$ ADD R1,R2 ; ÔÎÐÌ. ÀÄÐ. ÑÈÌÂÎËÀ MOV R2,NOMSIM CLR R5 JSR PC,PFASIM BR KUSTKK ; ------------------------------------------------- ; ** 2. ÓÑÒÀÍÎÂÊÀ ÊÎÎÐÄÈÍÀÒ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÊÓÐÑÎÐÀ ** ; ------------------------------------------------- PUKGK: BIC #177000,R1 ; ÏÎÄÃ. ÊÎÎÐÄ. X 1$: MOV R1,R3 ASR R1 ASR R1 ASR R1 MOVB NMPGT,R0 ; ÏÎÄÃ. MASPGT BIC #177770,R3 BEQ 2$ 3$: ASL R0 SOB R3,3$ 2$: MOVB R0,MASPGT 4$: SUB DGPB,R2 ; ÏÎÄÃ. ÊÎÎÐÄ. Y BPL 4$ 5$: ADD DGPB,R2 BMI 5$ ADD R1,R2 ; ÂÛ×ÈÑËÅÍÈÅ AGTVP MOV R2,AGTVP CLR R1 ; ÂÛ×. AGT CLR R2 JSR PC,PFAGT KUSTKK: JSR PC,PFK JSR R4,PWREG RTS PC ; ========================================== ; ***** ÌÎÄÓËÜ Ñ'ÅÌÀ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ ***** ; ========================================== ; ÂÛÕÎÄ: R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y MSKK: MOV R0,-(SP) TSTB PRGRAF BNE PSKGK ; ------------------------------------------- ; ** 1. Ñ'ÅÌ ÊÎÎÐÄÈÍÀÒ ÑÈÌÂÎËÜÍÎÃÎ ÊÓÐÑÎÐÀ ** ; ------------------------------------------- PSKSK: MOV NOMSIM,R1 ; ÊÎÎÐÄ. X MOV R1,R2 BIC #177700,R1 BR PSK1 ; -------------------------------------------- ; ** 2. Ñ'ÅÌ ÊÎÎÐÄÈÍÀÒ ÃÐÀÔÈ×ÅÑÊÎÃÎ ÊÓÐÑÎÐÀ ** ; -------------------------------------------- PSKGK: MOV AGTVP,R1 ; ÊÎÎÐÄ. X MOV R1,R2 BIC #177700,R1 ASL R1 ASL R1 ASL R1 MOVB MASPGT,R0 2$: ASR R0 BCS PSK1 INC R1 BR 2$ PSK1: TSTB PRCW BEQ 3$ ASR R1 3$: BIC #77,R2 ; ÊÎÎÐÄ. Y MOV #6,R0 4$: ASR R2 SOB R0,4$ MOV (SP)+,R0 RTS PC ; ===================================== ; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÒÎ×ÊÈ ***** ; ===================================== ; ÂÕÎÄ: R0 - 1-ÇÀÏÈÑÜ, 0-ÑÒÈÐÀÍÈÅ ; R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y MFTCK: MOV R1,BUFX ; ÑÎÕÐ. ÊÎÎÐÄ. MOV R2,BUFY MOVB R0,PRZTCK MFTCK1: JSR R4,PSREG ; ÑÎÕÐ. ÐÅÃ. TSTB PRCW ; ÏÎÄÃ. ÊÎÎÐÄ. X BEQ 1$ ASL R1 BCS KMFTCK 1$: CMP R1,#1000 BHIS KMFTCK MOV #6,R0 ; ÏÎÄÃ. ÊÎÎÐÄ. Y 2$: ASL R2 BCS KMFTCK SOB R0,2$ CMP R2,DGPB BHIS KMFTCK MOV R1,R3 ; ÔÎÐÌ. ÀÄÐ. ÒÎ×ÊÈ ASR R1 ASR R1 ASR R1 ADD R2,R1 ADD BAZVP,R1 BIC #140000,R1 ADD ANVP,R1 MOVB NMPGT,R2 ; ÔÎÐÌÈÐÎÂÀÍÈÅ ÌÀÑÊÈ ÒÎ×ÊÈ BIC #177770,R3 BEQ 3$ 4$: ASL R2 SOB R3,4$ 3$: MOVB (R1),R0 ; ÔÎÐÌÈÐÎÂÀÍÈÅ ÒÎ×ÊÈ BICB R2,R0 MOV MASCW,R3 TSTB PRZTCK BNE 5$ MOV FON,R3 5$: COM R2 BIC R2,R3 BISB R3,R0 MOVB R0,(R1) KMFTCK: JSR R4,PWREG ; ÂÎÑÑÒ. ÐÅÃ. RTS PC ; ======================================= ; ***** ÌÎÄÓËÜ ÔÎÐÌÈÐÎÂÀÍÈß ÂÅÊÒÎÐÀ ***** ; ======================================= ; ÂÕÎÄ: R0 - 1-ÇÀÏÈÑÜ, 0-ÑÒÈÐÀÍÈÅ ; R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y MFWEKT: JSR R4,PSREG MOVB R0,PRZTCK MOV R1,R3 ; ÇÀÌÅÍÀ ÊÎÎÐÄÈÍÀÒ MOV R2,R4 MOV BUFX,R1 MOV BUFY,R2 MOV R3,BUFX MOV R4,BUFY CLR R0 ; ÎÏÐÅÄ. DX È ÍÀÏÐÀÂËÅÍÈß SUB R1,R3 BMI 1$ BEQ 2$ INC R0 BR 2$ 1$: DEC R0 ;- ÍÀÏÐÀÂËÅÍÈÅ NEG R3 ;- DX 2$: CLR R5 ; ÎÏÐÅÄ. DY È ÍÀÏÐÀÂËÅÍÈß SUB R2,R4 BMI 3$ BEQ 4$ INC R5 BR 4$ 3$: DEC R5 ;- ÍÀÏÐÀÂËÅÍÈÅ NEG R4 ;- DY 4$: CMP R4,R3 ; ÎÏÐÅÄ. ÄËÈÍÍÎÉ ÊÎÎÐÄ. BHI 5$ MOV R5,-(SP) ;- DX >= DY CLR -(SP) MOV R3,R5 MOV R4,R3 MOV R5,R4 ;- R4 - ÄËÈÍÍÀß ÊÎÎÐÄ. CLR R5 BR 6$ 5$: CLR -(SP) ;- DX < DY MOV R0,-(SP) CLR R0 ;- R0,R5 - DÑÅÃÌ. (SP) - DÊÎÎÐÄ. 6$: CLR -(SP) ; ÎÏÐÅÄ. ÏÀÐÀÌ. ÂÅÊÒÎÐÀ TST R3 BNE 7$ INC R3 ;- ÎÑÅÂÎÉ ÂÅÊÒÎÐ SUB #12,SP BR 8$ 7$: SUB R3,R4 ;- ÂÛ×ÈÑËÅÍÈÅ ÄËÈÍÛ ÑÅÃÌ. BMI 9$ INC (SP) ;- ÄËÈÍÀ ÑÅÃÌÅÍÒÀ BR 7$ 9$: ADD R3,R4 ;- R3 - Ñ×. ÑÅÃÌ. R4 - ÎÑÒÀÒÎÊ MOV R3,-(SP) ;- ÊÎËÈ×. ÑÅÃÌ. MOV R3,-(SP) ASR (SP) ;- ÊÎËÈ×. ÑÅÃÌ./2 MOV R4,-(SP) ;- ÎÑÒÀÒÎÊ CLR -(SP) CLR -(SP) CLR R4 11$: ADD 4(SP),2(SP) ; ÎÏÐÅÄ. ÄËÈÍÛ ÑÅÃÌ. BEQ 10$ CMP 2(SP),6(SP) BLE 10$ INC R4 SUB 10(SP),2(SP) 10$: ADD 12(SP),R4 MOV R4,(SP) ASR R4 SUB R4,(SP) ;- ÄËÈÍÀ 2-ÃÎ ÏÎËÓÑÅÃÌ. JSR PC,PFSEGM ;- ÔÎÐÌ. 1-ÃÎ ÏÎËÓÑÅÃÌ. ADD 14(SP),R1 ADD 16(SP),R2 MOV (SP),R4 8$: JSR PC,PFSEGM ;- ÔÎÐÌ. 2-ÃÎ ÏÎËÓÑÅÃÌ. SOB R3,11$ ; ÊÎÍÅÖ ÔÎÐÌ. ÑÅÃÌ. ADD #20,SP JSR R4,PWREG RTS PC PFSEGM: TST R4 ; ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÅÃÌÅÍÒÀ BEQ KFSEGM 1$: ADD R0,R1 ADD R5,R2 JSR PC,MFTCK1 SOB R4,1$ KFSEGM: RTS PC ; ============================= ; ***** ÌÎÄÓËÜ ×ÒÅÍÈß ÑÑÄ ***** ; ============================= ; ÂÛÕÎÄ: R0 - ÑËÎÂÎ ÑÎÑÒÎßÍÈß ÄÈÑÏËÅß MCTSSD: MOV R1,-(SP) CLR R0 ; ÏÎÄÃ. ÏÀÐÀÌ. MOV #SYSPR,R1 1$: SEC ; ÓÑÒÀÍÎÂÊÀ ÔËÀÆÊΠ2$: ROR R0 BCS KCTSSD TSTB (R1)+ BNE 1$ BR 2$ KCTSSD: MOV (SP)+,R1 RTS PC ; ====================================== ; **** ÁÈÁËÈÎÒÅÊÀ ÏÎÄÏÐÎÃÐÀÌÌ DTVMN **** ; ====================================== ; ------------------------------- ; ** 0.1. ÑÎÕÐÀÍÅÍÈÅ ÐÅÃÈÑÒÐΠ** ; ------------------------------- PSREG0: MOV #220,@#ASPORT ;- ÑÁÐÎÑ ÃÒ. ÒËÃ. PSREG: MOV R3,-(SP) MOV R2,-(SP) MOV R1,-(SP) MOV R0,-(SP) MOV R4,-(SP) RTS R4 ; ----------------------------------- ; ** 0.2. ÂÎÑÑÒÀÍÎÂËÅÍÈÅ ÐÅÃÈÑÒÐΠ** ; ----------------------------------- PWREG: MOV (SP)+,R0 MOV (SP)+,R0 MOV (SP)+,R1 MOV (SP)+,R2 MOV (SP)+,R3 RTS R4 ; ---------------- ; ** 0.3. ÑÁÐÎÑ ** ; ---------------- PSBR: JSR PC,PFINDT ; ÓÑÒ.ÈÍÄ.ÒÀÁ. CLR NOMSIM ; ÔÎÐÌ. AS JSR PC,PFASIM MOV FON,R0 ; ÑÁÐÎÑ VP MOV AS,R3 MOV DGPB,R2 ASR R2 1$: MOV R0,(R3)+ TST R3 BPL 2$ SUB DVPB,R3 2$: SOB R2,1$ PSBR1: CLR R5 ; ÔÎÐÌ. AGT JSR PC,PFAGT1 CLR SCTVS MOVB NMPGT,MASPGT JSR PC,PFK ; ÔÎÐÌ. ÊÓÐÑÎÐÀ RTS PC ; ---------------------------------------- ; ** 0.4. ÔÎÐÌÈÐÎÂÀÍÈÅ ÑËÓÆÅÁÍÎÉ ÑÒÐÎÊÈ ** ; ---------------------------------------- PFSSTR: JSR PC,PFINDT ; ÔÎÐÌ. ÈÍÄ. ÒÀÁ. MOV MCWSS,R1 ; ÔÎÐÌÈÐ. ×ÅÐÒÛ JSR PC,PZTVSW MOV FONSS,R1 ; ÑÁÐÎÑ ÈÍÄÈÊÀÒÎÐΠMOV #KTVSSS-4,R4 1$: JSR PC,PZTVSW SOB R4,1$ PUINDR: CLR R0 ; ÓÑÒÀÍÎÂÊÀ ÈÍÄÈÊÀÒÎÐΠCLR SCKOD MOV #6,R2 2$: MOV R0,-(SP) MOV R2,-(SP) JSR PC,PFINDR MOV (SP)+,R2 MOV (SP)+,R0 INC R0 SOB R2,2$ RTS PC ; ----------------------------------------- ; ** 0.5. ÔÎÐÌÈÐÎÂÀÍÈÅ ÈÍÄÈÊÀÒÎÐÀ ÐÅÆÈÌÀ ** ; ----------------------------------------- PFINDR: INC SCUIND ; ÓÑÒ. ÏÐÈÇÍ. ÔÎÐÌ. ÈÍÄ. TST SCKOD BNE KFINDR CLR SCUIND MOV #PRRUS,R1 ; ÂÕÎÄ: R0 - ÍÎÌÅÐ ÈÍÄ. ADD R0,R1 ASL R0 ADD R0,PC BR 1$ BR 2$ BR 3$ BR 4$ BR 5$ BR 6$ 1$: MOV #LAT,R3 ; ÐÓÑ/ËÀÒ TSTB (R1) BEQ 7$ MOV #RUS,R3 BR 7$ 2$: TSTB (R1) ; ÏÎÄ×. BEQ 8$ MOV #PODC,R3 BR 7$ 3$: TSTB (R1) ; ÈÍÂ. Ñ. BEQ 8$ MOV #INW,R3 BR 7$ 4$: TSTB (R1) ; ÈÍÄ. ÑÓ BEQ 8$ MOV #ISU,R3 BR 7$ 5$: TSTB (R1) ; ÁËÎÊ. ÐÅÄ. BEQ 8$ MOV #BLR,R3 BR 7$ 6$: TSTB (R1) ; ÃÐÀÔ/ÇÀÏ/ÑÒÈÐ BEQ 8$ TSTB PRZAP BEQ 9$ MOV #ZAP,R3 BR 7$ 9$: MOV #GRAF,R3 TSTB PRSTIR BEQ 7$ MOV #STIR,R3 BR 7$ 8$: MOV #SBRIND,R3 ; ÑÁÐÎÑ ÈÍÄÈÊ. 7$: ASL R0 ; ÏÎÄÃ. ÏÀÐÀÌ. ÈÍÄ. ADD #4,R0 MOV #100,R1 TSTB PRCWSS BEQ 10$ ASR R1 10$: SUB R0,R1 MOV #4,R2 MOV FON,-(SP) ; ÑÎÕÐÀÍÅÍÈÅ ÏÐÈÇÍÀÊΠMOV MASCW,-(SP) MOV PRCW,-(SP) MOV PRPODC,-(SP) MOV FONSS,FON ; ÓÑÒÀÍÎÂÊÀ ÏÐÈÇÍÀÊΠÑÑ MOV MCWSS,MASCW MOVB PRCWSS,PRCW MOV PRPSSS,PRPODC 11$: MOVB (R3)+,R0 ; ÔÎÐÌÈÐÎÂÀÍÈÅ ÈÍÄÈÊÀÒÎÐÀ MOV R3,-(SP) JSR PC,PFSSS MOV (SP)+,R3 INC R1 SOB R2,11$ MOV (SP)+,PRPODC ; ÂÎÑÑÒ. ÏÐÈÇÍÀÊΠMOV (SP)+,PRCW MOV (SP)+,MASCW MOV (SP)+,FON KFINDR: RTS PC ; -------------------------------------------- ; ** 0.6. ÔÎÐÌÈÐÎÂÀÍÈÅ ÈÍÄÈÊÀÒÎÐÀ ÒÀÁÓËßÖÈÈ ** ; -------------------------------------------- PFINDT: MOV FONSS,R1 ; ÑÁÐÎÑ ÈÍÄÈÊÀÒÎÐÀ MOV BAZVP,R3 ADD ANVP,R3 MOV #3,R4 10$: JSR PC,PZTVSW SOB R4,10$ MOV #20,R4 ; ÓÑÒ. ÄËÈÍÛ ÑËÎÂÀ TSTB PRCW BEQ 1$ ASL R4 1$: CLR R5 ; ÏÎÈÑÊ ÏÎÇÈÖÈÈ ÒÀÁÓËßÖÈÈ 7$: CLR R2 MOV MTAB(R5),R0 4$: ROR R0 BCS 2$ BEQ 3$ 6$: INC R2 BR 4$ 2$: MOV R2,R1 ; ÓÑÒÀÍÎÂÊÀ ÈÍÄÈÊÀÒÎÐÀ TSTB PRCW BNE 5$ ADD R3,R1 MOVB MCWSS,(R1) BR 6$ 5$: ASL R1 ADD R3,R1 MOV MCWSS,(R1) BR 6$ 3$: ADD #2,R5 ; ÈÇÌÅÍÅÍÈÅ ÀÄÐÅÑΠADD R4,R3 BIT #77,R3 BNE 7$ SUB #100,R3 RTS PC ; ------------------------------- ; ** 0.7. ÔÎÐÌÈÐÎÂÀÍÈÅ ÊÓÐÑÎÐÀ ** ; ------------------------------- PFK: ; ÔÎÐÌÈÐ. È ÑÒÈÐ. ÊÓÐÑÎÐÀ PSTK: TSTB PRGRAF BNE 1$ JSR PC,PFSK ; ÑÈÌÂ. ÊÓÐÑÎÐ MOV #KPOWTS,BKPOWT BR KFK 1$: JSR PC,PFGK ; ÃÐÀÔ. ÊÓÐÑÎÐ MOV #KPOWTG,BKPOWT KFK: RTS PC ; --------------------------------------------- ; ** 0.8. ÐÅÄÀÊÒÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÜÍÎÃÎ ÊÓÐÑÎÐÀ ** ; --------------------------------------------- PREDSK: JSR PC,PSTSK CLR R5 JSR PC,PFASIM JSR PC,PFSK RTS PC ; ------------------------ ; ** 0.9. ÑÁÐÎÑ ÑÈÌÂÎËÀ ** ; ------------------------ PSBRS: MOV FON,R0 ; ÏÎÄÃ. ÏÀÐÀÌ. MOV AS,R3 MOV #12,R2 3$: TSTB PRCW ; ÇÀÏÈÑÜ ÔÎÍÀ BNE 1$ MOVB R0,(R3) BR 2$ 1$: MOV R0,(R3) 2$: JSR PC,PFTAN ; ÈÇÌÅÍÅÍÈÅ ÀÄÐ. SOB R2,3$ RTS PC ; --------------------------------------------- ; ** 0.10. ÔÎÐÌÈÐÎÂÀÍÈÅ ÒÅÊÓÙÅÃÎ ÀÄÐÅÑÀ ÂÍÈÇ ** ; --------------------------------------------- PFTAN: ADD #DTVSTB,R3 BPL KFTAN SUB DVPB,R3 KFTAN: RTS PC ; -------------------------------------- ; ** 0.11. ÇÀÏÎËÍÅÍÈÅ TV-ÑÒÐÎÊÈ ÂÂÅÐÕ ** ; -------------------------------------- PZTVSW: MOV #DTVSTS,R2 ; R1 - ÔÎÍ, R3 - ÀÄÐÅÑ CMP R3,ANVP BHI 1$ ADD DVPB,R3 1$: MOV R1,-(R3) SOB R2,1$ RTS PC ; ------------------------------------- ; ** 0.12. ÇÀÏÎËÍÅÍÈÅ TV-ÑÒÐÎÊÈ ÂÍÈÇ ** ; ------------------------------------- PZTVSN: MOV #DTVSTS,R2 ; R1 - ÔÎÍ, R3 - ÀÄÐÅÑ TST R3 BPL 1$ SUB DVPB,R3 1$: MOV R1,(R3)+ SOB R2,1$ RTS PC ; ----------------------- ; ** 0.13. ÑÄÂÈà ÂÂÅÐÕ ** ; ----------------------- PSDWW: MOV R1,R3 ; ÏÎÄÃÎÒÎÂÊÀ ÀÄÐÅÑΠSUB #DSSTRB,R3 CMP R3,ANVP BHIS 1$ ADD DVPB,R3 1$: TST R2 ; ÏÎÑËÅÄÍßß ÑÒÐÎÊÀ BEQ PSBRSN 5$: MOV #DTVSTS,R4 ; ÑÄÂÈà 2$: MOV (R1)+,(R3)+ SOB R4,2$ TST R1 BPL 3$ SUB DVPB,R1 BR 4$ 3$: TST R3 BPL 4$ SUB DVPB,R3 4$: SOB R2,5$ PSBRSN: MOV #KTVSS,R4 ; ÑÁÐÎÑ ÑÒÐÎÊÈ ÂÍÈÇ MOV FON,R1 1$: JSR PC,PZTVSN SOB R4,1$ RTS PC ; ---------------------- ; ** 0.14. ÑÄÂÈà ÂÍÈÇ ** ; ---------------------- PSDWN: MOV R1,R3 ; ÏÎÄÃ. ÀÄÐÅÑΠADD #DSSTRB,R3 CMP R1,ANVP BHI 11$ ADD DVPB,R1 11$: CMP R3,#100000 BLOS 1$ SUB DVPB,R3 1$: TST R2 ; ÏÎÑËÅÄÍßß ÑÒÐÎÊÀ BEQ PSBRSW 5$: MOV #DTVSTS,R4 ; ÑÄÂÈà 2$: MOV -(R1),-(R3) SOB R4,2$ CMP R1,ANVP BHI 3$ ADD DVPB,R1 BR 4$ 3$: CMP R3,ANVP BHI 4$ ADD DVPB,R3 4$: SOB R2,5$ PSBRSW: MOV #KTVSS,R4 ; ÑÁÐÎÑ ÑÒÐÎÊÈ ÂÂÅÐÕ MOV FON,R1 1$: JSR PC,PZTVSW SOB R4,1$ RTS PC -------------------- Æèâû áóäåì - Íå ïîìðåì !
|
Òåêñòîâàÿ âåðñèÿ | Ñåé÷àñ: 25.4.2024, 16:44 |