Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010 |
Çäðàâñòâóéòå, ãîñòü ( Âõîä | Ðåãèñòðàöèÿ )
Èñõîäíèêè ÏÇÓ: Äðàéâåðíûé ìîäóëü ÁÊ-0010 |
SuperMax |
20.10.2009, 15:26
Ñîîáùåíèå
#1
|
Àäìèíèñòðàòîð Ãðóïïà: Root Admin Ñîîáùåíèé: 6 290 Ðåãèñòðàöèÿ: 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 290 Ðåãèñòðàöèÿ: 7.1.2006 Èç: Êðàñíîÿðñê Ïîëüçîâàòåëü ¹: 1 |
Êîä ; ************************************************ ; * * ; * Ä Ð À É Â Å Ð 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 -------------------- Æèâû áóäåì - Íå ïîìðåì !
|
Òåêñòîâàÿ âåðñèÿ | Ñåé÷àñ: 11.6.2024, 6:34 |