; ************************************************ ; * * ; * Ä Ð À É Â Å Ð 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