Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010 |
Çäðàâñòâóéòå, ãîñòü ( Âõîä | Ðåãèñòðàöèÿ )
Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010 |
SuperMax |
20.10.2009, 15:26
Ñîîáùåíèå
#1
|
Àäìèíèñòðàòîð Ãðóïïà: Root Admin Ñîîáùåíèé: 6 282 Ðåãèñòðàöèÿ: 7.1.2006 Èç: Êðàñíîÿðñê Ïîëüçîâàòåëü ¹: 1 |
Êîä ; ############################################################# ; # # ; # Ä Ð À É Â Å Ð Í Û É Ì Î Ä Ó Ë Ü Á Ê - 0 0 1 0 # ; # # ; ############################################################# ; ÐÀÇÐÀÁÎÒÀË: ÄßÁÈÍ Ì.È. ; ÌÎÑÊÂÀ, 1983 Ã. ; ; ÏÎÑËÅÄÍßß ÐÅÄÀÊÖÈß: ÌÀÉ 1984 Ã. ; ==================================== ; **** ÀÐÃÓÌÅÍÒÛ ÊÎÌÀÍÄÛ EMT DMBK **** ; ==================================== ; ÊËÀÂÈÀÒÓÐÀ ; ---------- INDKLW = 4 ;- ÈÍÈÖÈÀËÈÇÀÖÈß ÄÐÀÉÂÅÐÀ ÊËÀÂÈÀÒÓÐÛ CTKOD = 6 ;- ×ÒÅÍÈÅ ÊÎÄÀ Ñ ÊËÀÂÈÀÒÓÐÛ ; ÂÛÕÎÄ: R0 - ÊÎÄ Â ÌË. ÁÀÉÒÅ CTSTR = 10 ;- ×ÒÅÍÈÅ ÑÒÐÎÊÈ Ñ ÊËÀÂÈÀÒÓÐÛ ; ÂÕÎÄ: R1 - ÀÄÐÅÑ ÁÓÔÅÐÀ ÑÒÐÎÊÈ ; R2 - ÄËÈÍÀ ÑÒÐÎÊÈ (ÌË.Á.) ; - ÑÈÌÂÎË-ÎÃÐÀÍÈ×ÈÒÅËÜ (ÑÒ.Á.) USTKLC = 12 ;- ÓÑÒÀÍÎÂÊÀ ÊËÞ×ÅÉ ÊËÀÂÈÀÒÓÐÛ ; ÂÕÎÄ: R0 - ÍÎÌÅÐ ÊËÞ×À ; R1 - ÀÄÐÅÑ ÒÅÊÑÒÀ ÊËÞ×À ; TV-ÌÎÍÈÒÎÐ ; ---------- INDMBK = 14 ;- ÈÍÈÖÈÀËÈÇÀÖÈß DMBK FSIM = 16 ;- ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÈÌÂÎËÀ ; ÂÕÎÄ: R0 - ÊÎÄ ÑÈÌÂÎËÀ  ÌË.Á. FSTR = 20 ;- ÔÎÐÌÈÐÎÂÀÍÈÅ ÑÒÐÎÊÈ ; ÂÕÎÄ: R1 - ÀÄÐÅÑ ÑÒÐÎÊÈ ; R2 - ÄËÈÍÀ ÑÒÐÎÊÈ (ÌË.Á.) ; - ÑÈÌÂÎË-ÎÃÐÀÍÈ×ÈÒÅËÜ (ÑÒ.Á.) ZSIMSS = 22 ;- ÇÀÏÈÑÜ ÑÈÌÂÎËÀ  ÑËÓÆÅÁÍÓÞ ÑÒÐÎÊÓ ; ÂÕÎÄ: R0 - ÊÎÄ ÑÈÌÂÎËÀ (0-ÑÁÐÎÑ ÑÒÐÎÊÈ) ; R1 - ÍÎÌÅÐ ÏÎÇÈÖÈÈ Â ÑÑ USTKK = 24 ;- ÓÑÒÀÍÎÂÊÀ ÊÓÐÑÎÐÀ ÏÎ ÊÎÎÐÄÈÍÀÒÀÌ ; ÂÕÎÄ: R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y SEMKK = 26 ;- Ñ'ÅÌ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ ; ÂÛÕÎÄ: R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y FTCK = 30 ;- ÔÎÐÌÈÐÎÂÀÍÈÅ ÒÎ×ÊÈ ; ÂÕÎÄ: R0 - 1-ÇÀÏÈÑÜ, 0-ÑÒÈÐÀÍÈÅ ; R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y FWEKT = 32 ;- ÔÎÐÌÈÐÎÂÀÍÈÅ ÂÅÊÒÎÐÀ ; ÂÕÎÄ: R0 - 1-ÇÀÏÈÑÜ, 0-ÑÒÈÐÀÍÈÅ ; R1 - ÊÎÎÐÄÈÍÀÒÀ X ; R2 - ÊÎÎÐÄÈÍÀÒÀ Y CTSSD = 34 ;- ×ÒÅÍÈÅ ÑËÎÂÀ ÑÎÑÒÎßÍÈß ÄÈÑÏËÅß ; ÂÛÕÎÄ: R0 - ÑËÎÂÎ ÑÎÑÒ. ÄÈÑÏË. ; ÌÀÃÍÈÒÎÔÎÍ ; ---------- DMAG = 36 ;- ÄÐÀÉÂÅÐ ÌÀÃÍÈÒÎÔÎÍÀ ; ÂÕÎÄ: R1 - ÀÄÐÅÑ ÁËÎÊÀ ÏÀÐÀÌÅÒÐΠ; TLG-ÊÀÍÀË ; --------- INDTLG = 40 ;- ÈÍÈÖÈÀËÈÇÀÖÈß ÄÐÀÉÂÅÐÀ ÒËÃ-ÊÀÍÀËÀ ; ÂÕÎÄ: R0 - ÍÎÌÅÐ ÑÊÎÐÎÑÒÈ PDBYT = 42 ;- ÏÅÐÅÄÀ×À ÁÀÉÒÀ ; ÂÕÎÄ: R0 - ÌË.Á. ÍÀ ÏÅÐÅÄÀ×Ó PRBYT = 44 ;- ÏÐÈÅÌ ÁÀÉÒÀ ; ÂÛÕÎÄ: R0 - ÌË.Á. ÏÐÈÍßÒ PDMAS = 46 ;- ÏÅÐÅÄÀ×À ÌÀÑÑÈÂÀ ; ÂÕÎÄ: R1 - ÀÄÐÅÑ ÌÀÑÑÈÂÀ ; R2 - ÄËÈÍÀ ÌÀÑÑÈÂÀ PRMAS = 50 ;- ÏÐÈÅÌ ÌÀÑÑÈÂÀ ; ÂÕÎÄ: R1 - ÀÄÐÅÑ ÁÓÔÅÐÀ ÌÀÑÑÈÂÀ ; R2 - ÄËÈÍÀ ÌÀÑÑÈÂÀ ; ÐÅÇÅР; ------ RW1 = 52 RW2 = 54 RW3 = 56 RW4 = 60 RW5 = 62 RW6 = 64 RW7 = 66 RW8 = 70 RW9 = 72 RW10 = 74 RW11 = 76 RW12 = 100 RW13 = 102 RW14 = 104 RW15 = 106 RW16 = 110 ; ====================== ; *** ÊÎÍÑÒÀÍÒÛ DMBK *** ; ====================== AWPZAW = 4 ;- ÀÄÐ.ÂÅÊÒ.ÏÐÅÐ. ÏÎ ÇÀÂÈÑÀÍÈÞ AWPEMT = 30 ;- ÀÄÐ.ÂÅÊÒ.ÏÐÅÐ. ÏÎ ÊÎÌÀÍÄÅ ÅÌÒ APORT = 177714 ;- ÀÄÐÅÑ ÏÎÐÒÀ ASPORT = 177716 ;- ÀÄÐÅÑ ÑÈÑÒÅÌÍÎÃÎ ÏÎÐÒÀ ; ============================ ; **** ÎÁËÀÑÒÜ ÑÂßÇÈ DMBK **** ; ============================ DMBK: JMP MNDMBK ;- ÏÅÐÅÕÎÄ ÍÀ ÌÎÍÈÒÎÐ DMBK ; ------------------------------- ; ** ÂÕÎÄÛ ÄÐÀÉÂÅÐÀ ÊËÀÂÈÀÒÓÐÛ ** ; ------------------------------- WIDKLW: .WORD MIDKLW ;- ÂÕÎÄ ÈÍÈÖÈÀËÈÇÀÖÈÈ DKLAW WCTKOD: .WORD MCTKOD ;- ÂÕÎÄ ×ÒÅÍÈß ÊÎÄÀ WCTSTR: .WORD MCTSTR ;- ÂÕÎÄ ×ÒÅÍÈß ÑÒÐÎÊÈ WUKLC: .WORD MUKLC ;- ÂÕÎÄ ÓÑÒÀÍÎÂÊÈ ÊËÞ×ÅÉ ; -------------------------------- ; ** ÂÕÎÄÛ ÄÐÀÉÂÅÐÀ TV-ÌÎÍÈÒÎÐÀ ** ; -------------------------------- WIDMBK: .WORD MIDMBK ;- ÂÕÎÄ ÈÍÈÖÈÀËÈÇÀÖÈÈ DMBK WFSIM: .WORD MFSIM ;- ÂÕÎÄ ÔÎÐÌÈÐÎÂÀÍÈß ÑÈÌÂÎËÀ WFSTR: .WORD MFSTR ;- ÂÕÎÄ ÔÎÐÌÈÐÎÂÀÍÈß ÑÒÐÎÊÈ WZSSS: .WORD MZSSS ;- ÂÕÎÄ ÇÀÏÈÑÈ ÑÈÌÂÎËÀ  ÑËÓÆ. ÑÒÐÎÊÓ WUSTKK: .WORD MUSTKK ;- ÂÕÎÄ ÓÑÒÀÍÎÂÊÈ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ WSKK: .WORD MSKK ;- ÂÕÎÄ Ñ'ÅÌÀ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ WFTCK: .WORD MFTCK ;- ÂÕÎÄ ÔÎÐÌÈÐÎÂÀÍÈß ÒÎ×ÊÈ WFWEKT: .WORD MFWEKT ;- ÂÕÎÄ ÔÎÐÌÈÐÎÂÀÍÈß ÂÅÊÒÎÐÀ WCTSSD: .WORD MCTSSD ;- ÂÕÎÄ ×ÒÅÍÈß ÑÑÄ ; -------------------------------- ; ** ÂÕÎÄÛ ÄÐÀÉÂÅÐÀ ÌÀÃÍÈÒÎÔÎÍÀ ** ; -------------------------------- WDMAG: .WORD MDMAG ;- ÂÕÎÄ ÇÀÏÈÑÈ/×ÒÅÍÈß ÌÀÑÑÈÂÀ ; ------------------------------- ; ** ÂÕÎÄÛ ÄÐÀÉÂÅÐÀ ÒËÃ-ÊÀÍÀËÀ ** ; ------------------------------- WIDTLG: .WORD MIDTLG ;- ÂÕÎÄ ÈÍÈÖÈÀËÈÇÀÖÈÈ DTLG WPDBYT: .WORD MPDBYT ;- ÂÕÎÄ ÏÅÐÅÄÀ×È ÁÀÉÒÀ WPRBYT: .WORD MPRBYT ;- ÂÕÎÄ ÏÐÈÅÌÀ ÁÀÉÒÀ WPDMAS: .WORD MPDMAS ;- ÂÕÎÄ ÏÅÐÅÄÀ×È ÌÀÑÑÈÂÀ WPRMAS: .WORD MPRMAS ;- ÂÕÎÄ ÏÐÈÅÌÀ ÌÀÑÑÈÂÀ ; -------------------------- ; ** ÐÅÇÅÐÂÍÛÅ ÂÕÎÄÛ DMBK ** ; -------------------------- RWDM1: .WORD 160000 RWDM2: .WORD 160004 RWDM3: .WORD 160010 RWDM4: .WORD 160014 RWDM5: .WORD 160020 RWDM6: .WORD 160024 RWDM7: .WORD 160030 RWDM8: .WORD 160034 RWDM9: .WORD 160040 RWDM10: .WORD 160044 RWDM11: .WORD 160050 RWDM12: .WORD 160054 RWDM13: .WORD 160060 RWDM14: .WORD 160064 RWDM15: .WORD 160070 RWDM16: .WORD 160074 ; ============================== ; ***** ÄÈÑÏÅÒ×ÅÐ Å Ì Ò ***** ; ============================== DEMT: MOV R5,-(SP) MOV 2(SP),R5 ; ÀÄÐÅÑ ÌÎÄÓËß MOV -(R5),R5 BIC #177400,R5 MOV DMBK(R5),R5 JSR PC,(R5) ; ÎÁÐÀÙÅÍÈÅ Ê ÌÎÄÓËÞ MOV (SP)+,R5 RTI ; ===================================== ; ***** ÌÎÄÓËÜ ÈÍÈÖÈÀËÈÇÀÖÈÈ DMBK ***** ; ===================================== MIDMBK: CLR R1 ; ÓÑÒÀÍÎÂÊÀ ÂÅÊÒÎÐΠMOV #20,R2 1$: MOV #100000,(R1)+ SOB R2,1$ MOV #MNZAW,@#AWPZAW MOV #DEMT,@#AWPEMT MOV #200,@#AWPEMT+2 MOV #120,R2 ; ÑÁÐÎÑ ÏÐÈÇÍÀÊΠ2$: CLR (R1)+ SOB R2,2$ EMT INDKLW ;- ÈÍÈÖÈÀËÈÇÀÖÈß DKLAW INC DSIMB ;- ÈÍÈÖÈÀËÈÇÀÖÈß DTVM INCB NMPGT COM MASCW COM MCWSS JSR PC,PPRP1 MOV #KDBIT0,DLBIT0 ;- ÈÍÈÖÈÀËÈÇÀÖÈß DMAG MOV #KDBIT1,DLBIT1 CLR R0 EMT INDTLG ;- ÈÍÈÖÈÀËÈÇÀÖÈß DTLG CLR @#APORT ;- ÑÁÐÎÑ ÏÎÐÒÀ MOV #220,@#ASPORT ;- ÓÑÒÀÍÎÂÊÀ ÑÈÑÒÅÌÍÎÃÎ ÏÎÐÒÀ MTPS R0 ;- ÐÀÇÐÅØÅÍÈÅ ÏÐÅÐÛÂÀÍÈÉ RTS PC ; ====================================== ; ***** Ì Î Í È Ò Î Ð D M B K ***** ; ====================================== MNDMBK: MOV #1000,SP ;- ÓÑÒÀÍÎÂÊÀ ÑÒÅÊÀ JSR PC,MIDMBK JSR PC,@#120000 ;- ÇÀÏÓÑÊ ÔÎÊÀËÀ JSR PC,MIDMBK ;- ÂÛÕÎÄ ÈÇ ÔÎÊÀËÀ MNKOM: JSR R5,PPCT ;- "ÌÎÍÈÒÎÐ ÁÊ-0010" .WORD TMON MNKOM1: JSR R5,PPCT ;- ">" .WORD TPRIGL MOV SP,R1 ; ÏÐÈÅÌ ÊÎÌÀÍÄÛ SUB #100,R1 MOV R1,R5 2$: EMT CTKOD CMPB R0,#30 ;- ÀÍÑ BNE 1$ CMP R5,R1 BEQ 2$ 3$: CLR (R5)+ 4$: EMT FSIM BR 2$ 1$: MOV R0,-(R5) ;- ÇÀÏÈÑÜ ÊÎÄÀ  ÁÓÔÅÐ TSTB R5 BEQ 3$ CMPB R0,#12 ;- "ÏÑ" BNE 4$ EMT FSIM MOV -(R1),R4 ; ×ÒÅÍÈÅ ÊÎÌÀÍÄÛ CLR R5 ;- ×ÈÑËÎ MOV R4,R3 7$: CMP R3,R0 ;- "ÏÑ" BEQ 5$ CMP R3,#67 ;- ÖÈÔÐÀ BHI 6$ SUB #60,R3 BMI 6$ ASL R5 ASL R5 ASL R5 ADD R3,R5 6$: MOV -(R1),R3 ;- ×ÒÅÍÈÅ ÑËÅÄ.ÑÈÌÂ. BR 7$ 5$: BIC #240,R4 ; ÀÍÀËÈÇ ÊÎÌÀÍÄÛ CMPB R4,#124 ;- "T" BHI 10$ SUB #114,R4 ;- "L" BMI 11$ ASL R4 MOV MNKOMT(R4),R1 ; ÏÅÐÅÄÀ×À ÓÏÐÀÂËÅÍÈß JSR PC,(R1) BR MNKOM1 11$: ADD #13,R4 ;- A : K BPL MNDMBK BR MNKOM1 10$: JSR PC,@#160110 ;- > T BR MNKOM1 MNKOMT: .WORD PCTTLG ;- "L" .WORD PCTMAG ;- "M" .WORD 160110 ;- "N" .WORD 160110 ;- "O" .WORD 140000 ;- "P" .WORD 160110 ;- "Q" .WORD 160104 ;- "R" .WORD PSTART ;- "S" .WORD 160100 ;- "T" ; ----------------------------------- ; ** 0. ÎÁÐÀÁÎÒÊÀ ÇÀÂÈÑÀÍÈß È ÑÒÎÏ ** ; ----------------------------------- MNZAW: MOV #1000,SP MOV #220,@#ASPORT EMT INDKLW BR MNKOM ; ----------------------------- ; ** 1. ×ÒÅÍÈÅ ÔÀÉËÀ Ñ ËÈÍÈÈ ** ; ----------------------------- PCTTLG: EMT PRBYT ; ÓÑÒÀÍÎÂÊÀ ÑÂßÇÈ EMT PDBYT MOV #BUFSTA,R1 ; ÏÐÈÅÌ ÀÄÐÅÑÀ È ÄËÈÍÛ MOV #4,R2 EMT PRMAS TST R5 BEQ 1$ MOV R5,BUFSTA 1$: MOV BUFSTA,R1 ; ÏÐÈÅÌ ÌÀÑÑÈÂÀ MOV BUFDL,R2 EMT PRMAS JSR R5,PPCT ;- ÏÅ×ÀÒÜ ÑÎÎÁÙÅÍÈß .WORD TFZ RTS PC ; ----------------------------------- ; ** 2. ×ÒÅÍÈÅ ÔÀÉËÀ Ñ ÌÀÃÍÈÒÎÔÎÍÀ ** ; ----------------------------------- PCTMAG: MOV #BPDMAG,R1 ; ÇÀÃÐÓÇÊÀ BPDMAG MOV #3,(R1)+ ;- ÊÎÌÀÍÄÀ MOV R5,(R1)+ ;- ÀÄÐÅÑ CLR (R1)+ ;- ÄËÈÍÀ JSR R5,PPCT ;- "ÈÌß ÔÀÉËÀ?" .WORD TIMF MOV #5020,R2 EMT CTSTR DEC R1 2$: MOVB #40,(R1)+ DEC R2 BPL 2$ 1$: MOV #BPDMAG,R1 ; ×ÒÅÍÈÅ ÔÀÉËÀ EMT DMAG MOVB 1(R1),R0 ; ÀÍÀËÈÇ ÎÒÂÅÒÀ BEQ 4$ DEC R0 BNE 3$ JSR PC,5$ ;- ÏÅ×ÀÒÜ ÈÌ. ÒÅÊ. ÔÀÉËÀ MOV #12,R0 EMT FSIM BR 1$ 3$: JSR R5,PPCT ;- "*ÎØÈÁÊÀ*" .WORD TOH BR KCTMAG 4$: JSR R5,PPCT ;- "ÇÀÃÐÓÆÅÍ ÔÀÉË " .WORD TZF 5$: ADD #32,R1 MOV #20,R2 EMT FSTR KCTMAG: RTS PC ; -------------- ; ** 3. ÑÒÀÐÒ ** ; -------------- PSTART: TST R5 BNE 1$ MOV BUFSTA,R5 ;- ÑÒÀÐÒÎÂÛÉ ÀÄÐÅÑ 1$: JSR PC,(R5) RTS PC ; ---------------------- ; ** 4. ÏÅ×ÀÒÜ ÒÅÊÑÒÀ ** ; ---------------------- PPCT: MOV (R5)+,R3 BR 1$ 2$: EMT FSIM 1$: MOVB (R3)+,R0 BNE 2$ RTS R5 ; ===================== ; *** ÄÀÍÍÛÅ MNDMBK *** ; ===================== TMON: .BYTE 12,355,357,356,351,364,357,362,40 ; ÌÎÍÈÒÎÐ ÁÊ-0010 .BYTE 342,353,55,60,60,61,60,0 TPRIGL: .BYTE 12,12,76,40,0 ; > TIMF: .BYTE 351,315,321,40,306,301,312,314,301,77,40,0; ÈÌß ÔÀÉËÀ? TZF: .BYTE 12,372,301,307,322,325,326,305,316,40 ; ÇÀÃÐÓÆÅÍ ÔÀÉË .BYTE 306,301,312,314,40,0 TFZ: .BYTE 12,346,301,312,314,40 ; ÔÀÉË ÇÀÃÐÓÆÅÍ .BYTE 332,301,307,322,325,326,305,316,0 TOH: .BYTE 12,52,357,373,351,342,353,341,52,0 ; *ÎØÈÁÊÀ* .EVEN -------------------- Æèâû áóäåì - Íå ïîìðåì !
|
SuperMax |
20.10.2009, 15:30
Ñîîáùåíèå
#2
|
Àäìèíèñòðàòîð Ãðóïïà: Root Admin Ñîîáùåíèé: 6 282 Ðåãèñòðàöèÿ: 7.1.2006 Èç: Êðàñíîÿðñê Ïîëüçîâàòåëü ¹: 1 |
Êîä ; ********************************************** ; * * ; * Ä Ð À É Â Å Ð Ê Ë À Â È À Ò Ó Ð Û * ; * * ; ********************************************** ; ======================= ; *** ÊÎÍÑÒÀÍÒÛ 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 -------------------- Æèâû áóäåì - Íå ïîìðåì !
|
Òåêñòîâàÿ âåðñèÿ | Ñåé÷àñ: 29.3.2024, 22:15 |