;z80 ;zx-spectrum ;assembler ;ÏÅ×ÀÒÀËÊÀ ÒÅÊÑÒÀ 4õ8 ;×ÈÒÀËÊÀ ÄËß ÃÀÇÅÒÛ "ÁÅÑÑÈË ÁÓÄÓÙÅÃÎ" N1 ;ÑÊÐÎËË ÏÎÏÈÊÑÅËÜÍÛÌ Ñ ÀÒÐÈÁÓÒÀÌÈ (ÊÀÊ Â BORN DEAD-16) ;ÇÀÍÈÌÀÅÒ ÍÈÍÞÞ ÏÀÌßÒÜ + 7 ÝÊÐÀÍ (ÐÀÁÎÒÀÅÒ ÍÀ 2õ ÝÊÐÀÍÀÕ) ;ÎÁÚÅÌ ÒÅÊÑÒÀ 4 ÑÒÐÀÍÈÖÛ (ÏÐÈ ÄËÈÍÅ ÑÒÐÎÊÈ 64 ÑÈÌÂÎËÀ ÈÌÅÅÌ 1024 ;ÑÒÐÎÊÈ.  BORN DEAD ÁÅÇ ÏÎÄÇÀÃÐÓÇÊÈ 192) ;BASED BY WOCEN/TRIUMPH 28 ÑÅÍÒßÁÐß 2000 ;WRTTEN BY WOCEN/TRIUMPH 5 ÄÅÊÀÁÐß 2000 ;ÐÀÑÏÐÅÄÅËÅÍÈÅ ÏÀÌßÒÈ ;5-ÑÒÐ ;#4000-#5AFF [#1B00] - ÝÊÐÀÍ 0 ;#5B00-#5FFF [#500] - ÑÂÎÁÎÄÍÎ ;#6000-#72BF [#12C0] - ÁÓÔÅÐ ÏÎÄ ÑÏÐÀÉÒ, 24+1 ÑÒÐÎÊÈ ÏÎ 192 ÁÀÉÒ ;#7300-#76FF [#400] - ÖÂÅÒÀ ÑÒÐÎÊ ÒÅÊÑÒÀ ;#7700-#7FFF [#C80] - ÊÎÄ ;2-ÑÒÐ ;#8000-#9850 [#1851] - ÊÎÄ ;#9851-#99FC [#1AC] - ÁÛÑÒÐÀß ÏÅ×ÀÒÜ ÑÒÐÎÊÈ Â ÁÓÔÅÐ ;#99FD-#BDFF [#2403] - ÁÛÑÒÐÛÉ ÂÛÂÎÄ ÑÏÐÀÉÒÀ ÍÀ ÝÊÐÀÍ ;#BE00-#BF00 [#101] - ÒÀÁËÈÖÀ ÏÎÄ IM2 ;#BF01-#BFBE [#BE] - ÑÒÅÊ ÂÎ ÂÐÅÌß ÏÐÈÕÎÄÀ IM2 ;#BFBF-#BFC1 [3] - ÏÅÐÅÕÎÄ ÏÎ IM2 ;#BFC2-#BFFF [#3E] - ÑÒÅÊ ÏÐÈ ÐÀÁÎÒÅ ;0-ÑÒÐ ÌÓÇÛÊÀ ;1-ÑÒÐ ÃÐÀÔÈÊÀ ;3,4-ÑÒÐ ÒÅÊÑÒ ;6- ÏÐÈÍÖÈÏÅ ÏÎÄ ÒÅÊÑÒ ;#C000,#C2FF [#300] ØÐÈÔÒ ÄËß ÌÅÍÞ ;#C300,#D2FF [#1000] ÐÀÇËÎÆÅÍÍÛÉ ØÐÈÔÒ 4x8 ;#D300,#DAFF [#800] ÁÓÔÅÐ ÏÎÄ ÀÄÐÅÑÀ ÍÎÌÅÐΠÑÒÐÎÊ ;#DB00,#FFFF FREE BUF_SCR EQU #6000 ;ÁÓÔÅÐ ÏÎÄ ÝÊÐÀÍ [#1200+#180] COL_LINE EQU #7300 ;ÁÓÔÅÐ ÍÀ ÖÂÅÒÀ ÑÒÐÎÊ PRN_LIN EQU #9851 PRN_SCR EQU #99FD ;ÏÐÎÖÅÄÓÐÀ ÂÛÂÎÄÀ ÍÀ ÝÊÐÀÍ TIME_SP EQU #BFBF ;ÂÐÅÌÅÍÍÛÉ ÑÒÅÊ ADR_LINE EQU #D300 ;ÀÄÐÅÑÀ ÍÎÌÅÐΠÑÒÐÎÊ ORG #C000,3 - INCBIN "yama!!!.W" ORG #C000,6 FONT_M - INCBIN "6ECfont2" ;[#300] ORG #C300,6 FONT - INCBIN "becfont" ;[#800] ORG #7700 XOR A OUT (#FE),A LD (CUR_LINE),A CALL INSTALL LD A,7 CALL PAGE LD HL,#C000 LD DE,#C001 LD BC,#1800 LD (HL),L LDIR LD BC,#2FF LD (HL),#7 LDIR LD HL,#4000 LD DE,#4001 LD BC,#1800 LD (HL),L LDIR LD BC,#2FF LD (HL),#7 LDIR LD A,3 ;ÍÅÒ CALL PAGE TEXT_C LD A,1 ;ÒÅÊÑÒ ÏÅÐÅÔÎÐÌÈÐÎÂÀÍ ? OR A JP Z,NO_CONV ;ÄÀ LEN_TXT LD BC,3045 ;ÄËÈÍÀ ÒÅÊÑÒÀ LD HL,#C000 LD DE,#FFFF ADD HL,BC DEC HL ;ÏÎÊÀÇÛÂÀÅÌ ÍÀ ÏÎÑËÅÄÍÈÉ ÁÀÉÒ ÒÅÊÑÒÀ LDDR EX DE,HL INC HL ;ÏÎÊÀÇ. ÍÀ ÏÅÐÂÛÉ ÁÀÉÒ ÑÄÂÈÍÓÒÎÃÎ ÒÅÊÑÒÀ LD IY,COL_LINE ;ÁÓÔÅÐ ÏÎÄ ÖÂÅÒÀ LD IX,BUF_SCR ;ÏÎÊÀ ÈÑÏÎËÜÇÓÞ ÝÒÎÒ ÁÓÔÅÐ LD DE,#C000 TEXT_C2 PUSH DE LD B,48 ;ÈÍÈÖÈÈÐÓÅÌ Ñ×ÅÒ×ÈÊ LD A,(HL) CP "," ;ÏÅÐÂÛÉ ÑÈÌÂÎË ÇÀÏßÒÀß ? JR NZ,NO_COL ;ÍÅÒ INC HL LD A,(HL) ;ÑÒÀÐØÈÉ ÏÎËÓÁÀÉÒ SUB "0" ADD A,A ADD A,A ADD A,A ADD A,A LD C,A INC HL LD A,(HL) ;ÌËÀÄØÈÉ ÏÎËÓÁÀÉÒ SUB "0" OR C LD (CUR_COL+3),A INC HL NO_COL LD A,(HL) INC HL CP #0D JR Z,END_LINE KOD_0D LD (DE),A INC DE DEC B JR NO_COL END_LINE LD A,(HL) CP #0A LD A,#0D JR NZ,KOD_0D INC HL LD A,B OR A JR Z,LINE_OK CP 48 JR NZ,L_ESTX EX (SP),HL ;ÏÓÑÒÀß ÑÒÐÎÊÀ LD HL,LINE_SP ;ÀÄÐÅÑ ÏÓÑÒÎÉ ÑÒÐÎÊÈ JR LINE_O1 L_ESTX LD A," " LIN_FIL LD (DE),A INC DE DJNZ LIN_FIL LINE_OK EX (SP),HL LINE_O1 LD (IX+0),L ;ÀÄÐÅÑ ÑÒÐÎÊÈ ÒÅÊÑÒÀ LD (IX+1),H CUR_COL LD (IY+0),0 INC IX INC IX INC IY POP HL LD A,H OR L JR NZ,TEXT_C2 LD A,6 CALL PAGE LD HL,BUF_SCR LD DE,ADR_LINE LD BC,#800 LDIR PUSH IY POP HL LD DE,0-COL_LINE ADD HL,DE LD (ALL_LINE),HL ;ÊÎË-ÂÎ ÑÒÐÎÊ Â ÒÅÊÑÒÅ LD DE,(KOL_STR) ;ÊÎË-ÂÎ ÑÒÐÎÊ ÍÀ ÝÊÐÀÍÅ OR A SBC HL,DE DEC HL LD (DW_STR),HL ;ÂÅÐÕÍßß ÑÒÐÎÊÀ, ÊÎÍÖÀ ÒÅÊÑÒÀ LD HL,0 LD (CUR_STR),HL ;ÒÅÊÓÙÀß ÂÅÐÕÍßß ÑÒÐÎÊÀ NO_CONV XOR A LD (TEXT_C+1),A CALL PAGE CALL PRN_ALL ;ÏÅ×ÀÒÜ ÂÑÅÃÎ ÒÅÊÑÒÀ  ÁÓÔÅÐ L1 CALL SCR_0 HALT LD A,7 ;7 ÑÒÐÀÍÈÖÀ CALL PAGE ;0 ÝÊÐÀÍ LD A,7 OUT (#FE),A CALL PRN_SCR_ CALL UPR_KEY LD A,1 OUT (#FE),A CALL SCR_1 ;1 ÝÊÐÀÍ HALT LD A,5 ;5 ÑÒÐÀÍÈÖÀ CALL PAGE LD A,7 OUT (#FE),A CALL PRN_SCR_ CALL UPR_KEY LD A,1 OUT (#FE),A JR L1 UPR_KEY LD A,#EF IN A,(#FE) RRA JP NC,EXIT AND 3 JR Z,UPR_1 ;ÍÀÆÀËÈ ÎÄÍÎÂÐÅÌÅÍÍÎ ÂÂÅÐÕ/ÂÍÈÇ CP 3 JR Z,UPR_1 ;ÍÈ×ÅÃÎ ÍÅ ÍÀÆÀËÈ LD (UPR_1+1),A ;ÑÒÀÐÎÅ ÍÀÏÐÀÂËÅÍÈÅ ÄÂÈÆÅÍÈß EX AF,AF' LD HL,SPEED LD A,(HL) CP #1F JR NC,$+2+1 INC A LD (HL),A UPR_0 SRL A LD C,A LD B,0 LD HL,T_SPEED ADD HL,BC ;ÀÄÐÅÑ Â ÒÀÁËÈÖÅ LD C,(HL) ;ÑÌÅÙÅÍÈÅ ÏÎ SIN LD HL,CUR_LINE LD A,(HL) RRCA RRCA RRCA AND #1F LD D,A ;ÑÒÀÐÎÅ ÇÍÀ×ÅÍÈÅ LD A,(HL) EX AF,AF' RRA JR NC,UP JR DOWN UPR_1 LD A,0 ;ÑÒÀÐÎÅ ÍÀÏÐÀÂËÅÍÈÅ ÄÂÈÆÅÍÈß EX AF,AF' LD A,(SPEED) OR A RET Z DEC A LD (SPEED),A JR UPR_0 DOWN LD A,1 LD (UP_0+1),A EX AF,AF' ADD A,C RRCA RRCA RRCA AND #1F LD E,A ;ÍÎÂÎÅ ÇÍÀ×ÅÍÈÅ SUB D LD B,A ;ÊÎË-ÂÎ ÑÒÐÎÊ JR NZ,DOWN_1 DOWN_0 LD A,1 ;ÅÑËÈ 0, ÒÎ ÍÅ ÍÀÄÎ OR A ;ÓÂÅËÈ×ÈÂÀÒÜ RET Z LD A,(HL) ; ÏÐÅÄÅËÀÕ 1 ÑÒÐÎÊÈ ADD A,C LINE_1 CP 200 JR C,$+2+2 LINE_2 SUB 200 LD (HL),A RET DOWN_1 LD HL,(CUR_STR) INC HL LD DE,(DW_STR) OR A SBC HL,DE JR NC,DOWN_2 ;ÍÈÆÅ ÍÅËÜÇß ADD HL,DE LD (CUR_STR),HL LD A,(KOL_STR) LD E,A LD D,0 ADD HL,DE PUSH BC CALL PRN_STR ;ÏÐÎÏÅ×ÀÒÀË 1 ÑÒÐÎÊÓ POP BC LD HL,CUR_LINE DEC B JR Z,DOWN_0 ;ÏÎÑË. ÑÒÐÎÊÀ ÇÀ 1 ÐÀÇ LD A,C SUB 8 LD C,A LD A,(HL) ADD A,8 LINE_11 CP 200 JR C,$+2+2 LINE_21 SUB 200 LD (HL),A JR DOWN_1 DOWN_2 EX DE,HL LD (CUR_STR),HL LD HL,CUR_LINE XOR A LD (SPEED),A LD (DOWN_0+1),A LD A,(HL) AND 7 RET Z LD A,(HL) AND %11111000 ADD A,8 JR LINE_1 UP LD A,1 LD (DOWN_0+1),A EX AF,AF' INC D INC D ;+16 ADD A,16 SUB C RRCA RRCA RRCA AND #1F LD E,A ;ÍÎÂÎÅ ÇÍÀ×ÅÍÈÅ LD A,D SUB E LD B,A JR NZ,UP_1 UP_0 LD A,1 ;ÅÑËÈ 0, ÒÎ ÍÅ ÍÀÄÎ OR A ;ÓÂÅËÈ×ÈÂÀÒÜ RET Z LD A,(HL) ; ÏÐÅÄÅËÀÕ 1 ÑÒÐÎÊÈ SUB C JR NC,$+2+2 LINE_3 ADD A,200 LD (HL),A RET UP_1 LD HL,(CUR_STR) LD A,H OR L JR Z,UP_2 ;ÂÛØÅ ÍÅËÜÇß DEC HL LD (CUR_STR),HL PUSH HL LD HL,CUR_LINE DEC B JR NZ,UP_11 ;ÏÎÑË. ÑÒÐÎÊÀ ÇÀ 1 ÐÀÇ CALL UP_0 POP HL JP PRN_STR ;ÏÐÎÏÅ×ÀÒÀË 1 ÑÒÐÎÊÓ UP_11 LD A,C SUB 8 LD C,A LD A,(HL) SUB 8 JR NC,$+2+2 LINE_31 ADD A,200 LD (HL),A POP HL PUSH BC CALL PRN_STR ;ÏÐÎÏÅ×ÀÒÀË 1 ÑÒÐÎÊÓ POP BC JR UP_1 UP_2 LD HL,CUR_LINE LD A,(HL) AND 7 JR Z,UP_3 LD A,(HL) AND %11111000 LD (HL),A RET UP_3 XOR A LD (SPEED),A LD (UP_0+1),A RET EXIT POP AF DI LD A,#3F LD I,A IM 1 EI RET ;-------ÏÐÎÏÅ×ÀÒÊÀ ÈÇÎÁÐÀÆÅÍÈß Â ÁÓÔÅÐ PRN_ALL LD A,(CUR_LINE) PUSH AF LD A,(KOL_STR) ;ÊÎË-ÂÎ ÑÒÐÎÊ ÍÀ ÝÊÐÀÍÅ LD B,A ;Ñ×ÅÒ×ÈÊ ÄËß ÏÅ×ÀÒÈ INC B ;ÍÀ 1 ÑÒÐÎÊÓ ÁÎËÜØÅ LD HL,(CUR_STR) PRN_AL1 PUSH BC PUSH HL CALL PRN_STR ;ÏÅ×ÀÒÀÅÌ ÑÒÐÎÊÓ Â ÁÓÔÅÐ LD HL,CUR_LINE LD A,8 ;ÂÛÑÎÒÀ ÑÒÐÎÊÈ ADD A,(HL) ;+ ÑÒÀÐÎÅ ÏÎËÎÆÅÍÈÅ LINE_4 CP 200 ;ÁÎËÜØÅ ÏÐÅÄÅËÀ ? JR C,$+2+2 ;ÍÅÒ AND 7 ;ÎÑÒÀÂËßÅÌ ÏÎËÎÆÅÍÈÅ Â 0 ÑÒÐÎÊÅ LD (HL),A POP HL POP BC INC HL ;ÓÂÅËÈ×. ÍÎÌÅÐ ÑÒÐÎÊÈ DJNZ PRN_AL1 POP AF LD (CUR_LINE),A RET ;-------ÏÐÎÏÅ×ÀÒÊÀ ÑÒÐÎÊÈ Â ÁÓÔÅÐ ;ÂÕÎÄ:  (CUR_LINE) ÏÎËÎÆÅÍÈÅ ÑÒÐÎÊÈ Â ÑÏÐÀÉÒÅ ;HL=ÍÎÌÅÐ ÑÒÐÎÊÈ ÄËß ÏÅ×ÀÒÈ PRN_STR PUSH HL LD HL,BUF_SCR ;ÁÓÔÅÐ ÏÎÄ ÑÏÐÀÉÒ LD A,(CUR_LINE) RRA RRA RRA AND #1F ;ÍÎÌÅÐ ÂÅÐÕÍÅÉ ÑÒÐÎÊÈ Â ÑÏÐÀÉÒÅ JR Z,PRN_ST1 LD DE,192 ;ÄËÈÍÀ 1 ÑÒÐÎÊÈ ÑÏÐÀÉÒÀ LD B,A ADD HL,DE DJNZ $-1 PRN_ST1 LD B,H ;HL=ÀÄÐÅÑ ÄËß ÏÅ×ÀÒÈ ÑÒÐÎÊÈ LD C,L POP HL LD A,#16 CALL PAGE ;ÂÊË. ÑÒÐÀÍÈÖÓ Ñ ÁÓÔÅÐÀÌÈ ADD HL,HL LD DE,ADR_LINE ADD HL,DE LD A,(HL) INC L LD H,(HL) LD L,A ;HL=ÀÄÐÅÑ Â ÒÅÊÑÒÅ LD A,#13 CALL PAGE ;ÂÊË. ÑÒÐÀÍÈÖÓ Ñ ÒÅÊÑÒÎÌ LD LX,8 ;ÂÛÑÎÒÀ ÑÒÐÎÊÈ PRN_ST2 LD (0),SP DEC HL DEC HL ;ÏÎÄÃÎÍÊÀ ÄÀÍÍÛÕ DI ;×ÒÎÁÛ ÏÎ ÏÐÈÕÎÄÓ LD SP,HL ;INTA POP HL ;ÂÎÑÑÒÀÍÎÂÈÒÜ ÏÐÀÂÈËÜÍÛÉ HL EI JP PRN_LIN ;-------ÏÐÎÏÅ×ÀÒÊÀ ÒÅÊÑÒÀ ÈÇ ÁÓÔÅÐÀ ;ÅÑËÈ Â (CUR_LINE) ×ÈÑËÎ 0-7 ÒÎ ÒÎÃÄÀ ÏÐÎÏÅ×ÀÒÛÂÅÌ ÇÀ 1 ÐÀÇ ;ÈÍÀ×Å Â ÁÛÑÒÐÛÉ ÊÎÄ ÑÒÀÂÈÌ ËÎÂÓØÊÓ = JP (IX) Ñ ÂÛÕÎÄÎÌ ÎÁÐÀÒÍÎ, ;ÏÐÈ ÑÐÀÁÀÒÛÂÀÍÈÈ ÂÛÕÎÄÈÌ, ÓÁÈÐÀÅÌ ËÎÂÓØKÓ, ÏÅÐÅÑÒÀÂËßÅÌ ÑÒÅÊ È ;ÑÍÎÂÀ ÈÄÅÌ Â ÊÎÄ Â ÌÅÑÒÅ ÁÛÂØÅÃÎ ÍÀÕÎÆÄÅÍÈß ËÎÂÓØÊÈ PRN_SCR_ LD A,(CUR_LINE) LD HL,(CUR_STR) AND 7 JR Z,$+2+1 INC HL LD DE,COL_LINE ADD HL,DE ;ÒÀÁËÈÖÀ ÖÂÅÒΠLD B,H LD C,L LD HL,#D804+24 LD A,(KOL_STR) LD (OUT_SP+1),SP DI OUTCOL EX AF,AF' LD A,(BC) INC BC LD D,A LD E,A LD SP,HL DUP 48/4 PUSH DE EDUP LD DE,#20 ADD HL,DE EX AF,AF' DEC A JR NZ,OUTCOL OUT_SP LD SP,0 EI LD A,(CUR_LINE) ;0-199 CP 8+1 JR C,PRN_S3 ;ÎÏÐÅÄÅËßÅÌ ÊÓÄÀ ÑÒÀÂÈÒÜ ËÎÂÓØÊÓ LD B,A LINE_5 LD A,200 SUB B ;A=ÊÎË-ÂÎ ËÈÍÈÉ ÄËß ÏÅ×ÀÒÈ ÄÎ ;ÑÐÀÁÀÒÛÂÀÍÈß ËÎÂÓØÊÈ LD C,A LD HL,PRN_SCR LD DE,384 ;ÄËÈÍÀ ÊÎÄÀ ÄËß ÏÅ×ÀÒÈ 1 ÑÒÐÎÊÈ RRA RRA RRA AND #1F ;ÂÛÁÈÐÀÞ ÑÒÐÎÊÈ OR A JR Z,PRN_S1 LD B,A ADD HL,DE DJNZ $-1 PRN_S1 LD A,C LD DE,48 ;ÄËÈÍÀ ÊÎÄÀ ÄËß ÏÅ×ÀÒÈ 1 ËÈÍÈÈ AND 7 OR A JR Z,PRN_S2 LD B,A ADD HL,DE DJNZ $-1 PRN_S2 LD (E_CUR+2),HL ;HL=ÀÄÐÅÑ ÄËß ËÎÂÓØÊÈ LD (HL),#DD INC HL LD (HL),#E9 ;JP (IX) INC HL LD IX,E_CUR PRN_S3 LD A,(CUR_LINE) ;0-207 LD C,A LD HL,BUF_SCR LD DE,192 ;ÄËÈÍÀ 1 ÑÒÐÎÊÈ ÑÏÐÀÉÒÀ RRA RRA RRA AND #1F ;ÂÛÁÈÐÀÞ ÑÒÐÎÊÈ OR A JR Z,PRN_S4 LD B,A ADD HL,DE DJNZ $-1 PRN_S4 LD A,C LD DE,24 ;ÄËÈÍÀ 1 ËÈÍÈÈ ÑÏÐÀÉÒÀ AND 7 OR A JR Z,PRN_S5 LD B,A ADD HL,DE DJNZ $-1 PRN_S5 DEC HL ;HL=ÀÄÐÅÑ Â ÑÏÐÀÉÒÅ DEC HL LD (SP_EXIT+1),SP DI LD SP,HL POP HL EI JP PRN_SCR ;ÂÏÅÐÅÄ Â ÁÛÑÒÐÛÉ ÊÎÄ E_PRN NOP SP_EXIT LD SP,0 ;ÑÒÀÐÛÉ ÑÒÅÊ EI RET ;ÂÛÕÎÄ E_CUR LD IX,0 ;ÀÄÐÅÑ ËÎÂÓØÊÈ LD (IX+0),#E1 ;POP HL LD (IX+1),#22 ;LD ( ),HL DI LD SP,BUF_SCR-2 POP HL EI JP (IX) ;ÂÎÇÂÐÀÒ Â ÁÛÑÒÐÛÉ ÊÎÄ ;-------ÑÎÇÄÀ¨Ì ÁÛÑÒÐÛÅ ÏÐÎÖÅÄÓÐÛ ÄËß ÏÅ×ÀÒÈ------- INSTALL: ;ÈÍÑÒÀËÈÌ ÏÐÎÖÅÄÓÐÓ ÏÅÐÅÁÐÎÑÊÈ ÊÎÄΠÁÓÊ  ÏÐÎÖÅÄÓÐÓ ÏÅ×ÀÒÈ ;[MAX=288] LD DE,48/2*9+PRN_LIN+8+4+1 ;(ÄËÈÍÀ ÑÒÐÎÊÈ/2)*9 ;ÂÊË. ÑÒÐ.;SP ; ÄÀÍÍÛÅ Â H,D; +1 LD HL,PRN_LIN LD B,48/2 ;ÄËÈÍÀ ÑÒÐÎÊÈ/2 INST_1 LD (HL),#E1 ;POP HL INC HL LD (HL),#7D ;LD A,L INC HL LD (HL),#32 ;LD ( ),A INC HL LD (HL),E INC HL LD (HL),D ;ÀÄÐÅÑ INC HL INC DE INC DE LD (HL),#7C ;LD A,H INC HL LD (HL),#32 ;LD ( ),A INC HL LD (HL),E INC HL LD (HL),D ;ÀÄÐÅÑ INC HL DUP 6 INC DE EDUP DJNZ INST_1 ;ÏÅÐÅÊËÞ×ÅÍÈÅ ÍÀ ÑÒÐÀÍÈÖÓ Ñ ØÐÈÔÒÎÌ [8] LD (HL),#31 ;LD SP,N INC HL LD (PRN_ST2+2),HL ;ÀÄÐÅÑ ÄËß SP INC HL INC HL LD (HL),#3E ;LD A,#17 INC HL LD (HL),#16 INC HL LD (HL),#CD ;CALL ... INC HL LD (HL),PAGE INC HL LD (HL),'PAGE INC HL ;ÈÍÑÒÀËÈÌ ÏÐÎÖÅÄÓÐÓ ÏÅ×ÀÒÈ ÑÒÐÎÊÈ Â ÁÓÔÅÐ [MAX=4+256+8=268] LD (HL),#16 ;LD D,N INC HL LD (HL),'FONT INC HL LD (HL),#26 ;LD H,N INC HL LD (HL),'FONT+8 INC HL PUSH HL LD B,48/2 ;ÄËÈÍÀ ÑÒÐÎÊÈ INST_2 LD (HL),#1E ;LD E,N INC HL INC HL LD (HL),#2E ;LD L,N INC HL INC HL LD (HL),#1A ;LD A,(DE) INC HL LD (HL),#B6 ;OR (HL) INC HL LD (HL),#02 ;LD (BC),A INC HL LD (HL),#03 ;INC BC INC HL DJNZ INST_2 LD (HL),#14 ;INC H INC HL LD (HL),#24 ;INC D INC HL LD (HL),#DD INC HL LD (HL),#2D ;DEC LX INC HL LD (HL),#C2 ;JP NZ INC HL POP DE LD (HL),E INC HL LD (HL),D ;ÀÄÐÅÑ INC HL LD (HL),#C9 ;RET ;ÒÀÁËÈÖÀ ÂÈÄÀ POP HL: LD (SCREEN),HL [MAX=#2403] LD HL,PRN_SCR ;ÀÄÐÅÑ ÒÀÁËÈÖÛ LD DE,#C004 ;ÍÀ×ÀËÎ ÄËß ÏÅ×ÀÒÈ LD A,(KOL_STR) ;ÊÎË-ÂÎ ÑÒÐÎÊ ÍÀ ÝÊÐÀÍÅ INST_3 EX AF,AF' LD C,8 ;ÂÛÑÎÒÀ ÑÒÐÎÊÈ INST_4 LD B,48/4 ;ÄËÈÍÀ ÑÒÐÎÊÈ/4 PUSH DE INST_5 LD (HL),#E1 ;POP HL INC HL LD (HL),#22 ;LD ( ),HL INC HL LD (HL),E INC HL LD (HL),D ;ÀÄÐÅÑ ÝÊÐÀÍÀ INC HL INC E INC E ;ÓÂÅËÈ×ÈËÈ ÀÄÐÅÑ Â ÝÊÐÀÍÅ ÍÀ 2 DJNZ INST_5 POP DE CALL DOWN_DE DEC C JR NZ,INST_4 EX AF,AF' DEC A JR NZ,INST_3 LD (HL),#C3 ;JP INC HL LD (HL),E_PRN INC HL LD (HL),'E_PRN ;ÀÄÐÅÑ ÄËß ÂÛÕÎÄÀ ;ÈÍÑÒÀËÈÌ ÒÀÁËÈÖÓ ÏÎÄ IM 2 DI LD HL,#BE00 LD DE,#BE01 LD B,E LD C,L ;BC=#100 LD A,H LD I,A IM 2 INC A LD (HL),A LDIR LD L,H ;HL=#BFBF LD (HL),#C3 INC L LD (HL),INTA INC L LD (HL),'INTA EI ;ÐÀÑÊËÀÄÛÂÀÅÌ ØÐÈÔÒ ÍÀ ÄÂÅ ÏÎËÎÂÈÍÊÈ LD A,6 CALL PAGE LD HL,FONT LD DE,FONT+#800 INST_7 LD A,(HL) AND #F0 LD (HL),A RRA RRA RRA RRA LD (DE),A INC HL INC DE LD A,H CP 'FONT+8 JR NZ,INST_7 LD A,(KOL_STR) ;ÊÎË-ÂÎ ÑÒÐÎÊ INC A LD B,A ;ÊÎË-ÂÎ ÑÒÐÎÊ Â ÁÓÔÅÐÅ+1 XOR A ADD A,8 ;+ÂÛÑÎÒÀ 1 ÑÒÐÎÊÈ DJNZ $-2 LD (LINE_1+1),A ;ÊÎË-ÂÎ ËÈÍÈÉ ÑÏÐÀÉÒÀ LD (LINE_2+1),A LD (LINE_3+1),A LD (LINE_4+1),A LD (LINE_5+1),A LD (LINE_11+1),A LD (LINE_21+1),A LD (LINE_31+1),A RET ;ÏÅÐÅÊËÞ×ÅÍÈÅ ÑÒÐÀÍÈÖ PAGE PUSH BC OLD_SCR OR #10 LD (OLD_PAGE+1),A LD BC,#7FFD OUT (C),A POP BC RET ;ÏÅÐÅÊËÞ×ÅÍÈÅ ÝÊÐÀÍΠCH_SCR LD A,(OLD_SCR+1) XOR 8 CH_SCR1 LD (OLD_SCR+1),A RET SCR_0 LD A,#10 JR CH_SCR1 SCR_1 LD A,#18 JR CH_SCR1 DOWN_DE INC D LD A,D AND 7 RET NZ LD A,E ADD A,#20 LD E,A RET C LD A,D SUB 8 LD D,A RET ;-------ÎÁÐÀÁÎÒ×ÈÊ ÏÐÅÐÛÂÀÍÈÉ INTA: DI EX (SP),HL LD (JP_BUF+1),HL LD (OLD_SP+1),SP LD SP,TIME_SP PUSH DE,BC,AF,IX,IY EXX EX AF,AF' PUSH HL,DE,BC,AF LD A,(OLD_SCR+1) LD BC,#7FFD OUT (C),A ;ÂÊËÞ×ÀÅÌ ÍÓÆÍÛÉ ÝÊÐÀÍ ; CALL MUSIC OLD_PAGE LD A,0 ;ÑÒÀÐÀß ÑÒÐÀÍÈÖÀ CALL PAGE POP AF,BC,DE,HL EX AF,AF' EXX POP IY,IX,AF,BC,DE OLD_SP LD SP,0 POP HL EI JP_BUF JP 0 ;ÒÀÁËÈÖÀ ÑÌÅÙÅÍÈÉ ÒÅÊÑÒÀ  ÇÀÂÈÑÈÌÎÑÒÈ ÎÒ ÄËÈÒÅËÜÍÎÑÒÈ ÄÅÐÆÀÍÈß ;ÊËÀÂÈØÈ ÎÄÍÎÃÎ ÍÀÏÐÀÂËÅÍÈß T_SPEED DEFB 1,1,2,2,3,3,4,5,6,7,9,10,11,13,14,16 LINE_SP DEFS 48," " ;-------ÏÅÐÅÌÅÍÍÛÅ ALL_LINE DEFW 0 ;ÊÎË-ÂÎ ÑÒÐÎÊ Â ÒÅÊÑÒÅ CUR_STR DEFW 0 ;ÂÅÐÕÍßß ÑÒÐÎÊÀ ÍÀ ÝÊÐÀÍÅ DW_STR DEFW 0 ;ÂÅÐÕÍßß ÑÒÐÎÊÀ ÊÎÍÖÀ ÒÅÊÑÒÀ KOL_STR DEFB 24 ;ÊÎË-ÂÎ ÑÒÐÎÊ ÒÅÊÑÒÀ ÍÀ ÝÊÐÀÍÅ CUR_LINE DEFB 0 ;ÑÌÅÙÅÍÈÅ Â ÁÓÔÅÐÅ ÑÏÐÀÉÒÀ SPEED DEFB 0 ;ÑÊÎËÜÊÎ ÄÅÐÆÈÌ ÊËÀÂÈØÓ END