Òàáëèöà JMP TEST ; ÏÅÐÅÕÎÄ ÍÀ ÒÅÑÒÈÐÎÂÀÍÈÅ ÄÐ. PRINTC: JMP 0F809Í ;ÂÛÂÎÄ ÑÈÌÂÎËÀ ×ÅÐÅÇ ÌÎÍÈÒÎÐ PRINT: JMP 0F818H ;ÂÛÂÎÄ ÒÅÊÑÒÀ ×ÅÐÅÇ ÌÎÍÈÒÎÐ INPUT: JMP 0F803H ;ââîä ñèìâîëà ñ êëàâèàòóðû LOADM: JMP 0F821H ;çàïðîñ ñèìâîëà íàä êóðñîðîì LDCUR: JMP 0F81EH ;ÇÀÏÐÎÑ ÏÎËÎÆÅÍÈß ÊÓÐÑÎÐÀ INITSP: DW TXTCUR+5 ;ÀÄÐÅÑ ÎÁËÀÑÒÈ ÑÎÕÐÀÍÅÍÈß ÝÊ. ; ÎÏÈÑÀÍÈÅ ÐÀÁÎ×ÈÕ ÏÎËÅÉ ÄÐÀÉÂÅÐÀ BASEAD: EQU 2100Í ;ÀÄÐÅÑ ÍÀ×ÀËÀ ÐÀÁ. ÎÁËÀÑÒÈ WPARM: EQU BASEAD ;ÐÀÇÌÅÐ ÎÊÍÀ (ÂÅÐÒ./ÃÎÐÈÝ.> WHOME: EQU WPARM+2 ;ÏÎËÎÆÅÍÈÅ ÂÅÐÕ. ËÅÂÎÃÎ ÓÃËÀ WCURSR: EQU WHOME+2 ;ÏÎËÎÆÅÍÈÅ ÊÓÐÑÎÐÀ NUMWND: EQU WCURSR+2 ;ÍÎÌÅÐ ÀÊÒÈÂÍÎÃÎ ÎÊÍÀ ADRSP: EQU NUMWND+1 ; ÀÄÐÅÑ ÑÂÎÁÎÄÍÎÉ ÎÁËÀÑÒÈ TXTCUR: EQU ADRSP+2 ; ÐÀÁÎ×ÈÅ ß×. ÄËß ÓÑÒ.ÊÓÑÎÐÀ ;+resetw - èíèöèèðîâàíèå äðàéâåðà îêîííîãî + ;* èíòåðôåéñà + ;++++++++++++++++++++++++++++++++++++++++++++++++ RESETW: PUSH Í XRA À ;ÎÁÍÓËÅÍÈÅ ÍÎÌÅÐÀ STA NUMWND ;ÀÊÒÈÂÍÎÃÎ ÎÊÍÀ LHLD INITSP ;ÈÍÈÖÈÈÐÓÅÌ ÀÄÐÅÑ ÍÀ×ÀËÀ ÎÇÓ SHLD ADRSP ;ÄËß ÑÎÕÐÀÍÅÍÈß ÝÊÐÀÍΠPOP Í RET ;+++++++++++++++++++++++++++++++++++++++++++++++ ;+SAVEW - ÑÎÕÐÀÍÅÍÈÅ ÎÁËÀÑÒÈ ÝÊÐÀÍÀ ÇÀÍÈÌÀÅÌÎÉ + ;+ ÏÎÄ ÎÒÊÐÛÂÀÅÌÎÅ ÎÊÍÎ + ;+ÂÕÎÄ: H,L- ÊÎÎÐÄÈÍÀÒÛ ËÅÂÎÉ ÂÅÐØÈÍÛ ÎÊÍÀ + ;+ D,Å- ÐÀÇÌÅÐÛ ÎÊÍÀ Ñ ÐÀÌÊÎÉ (ÑÒÐÊ/ÑÒËÁ1 + SAVEW: PUSH D ; ÑÎÕÐÀÍßÅÌ ÐÅÃÈÑÒÐÛ PUSH Í PUSH H ;ÊÎÎÐÄÈÍÀÒÛ ÎÊÍÀ CALL CURIN ;ÇÀÃÐÓÆÀÅÌ ÏÎËÎÆÅÍÈÅ ÊÓÐÑÎÐÀ SHLD WCURSR ;ÑÎÕÐÀÍßÅÌ ÏÎËÎÆÅÍÈÅ ÊÓÐÑÎÐÀ LHLD ADRSP ;ÀÄÐÅÑ ÑÒÅÊÀ ÎÁËÀÑÒÈ ÑÎÕÐÀÍ. SAW10: XTHL ;ÊÎÎÐÄÈÍÀÒÛ ÎÊÍÀ  HL CALL CUROUT ;ÓÑÒÀÍÀÂËÈÂÀÅÌ ÊÓÐÑÎÐ INR Í ;ÃÎÒÎÂÈÌ ÑËÅÄÓÞÙÓÞ ÑÒÐÎÊÓ XTHL ;ÑÎÕÐÀÍßÅÌ ÊÎÎÐÄÈÍÀÒÛ Â ÑÒÅÊÅ MOV Â,Å ;ÐÀÇÌÅÐ ÎÊÍÀ ÏÎ ÃÎÐÈÇÎÍÒÀËÈ SAW20: CALL LOADM ;ÁÀÉÒ ÈÇ ÝÊÐÀÍÍÎÉ ÎÁËÀÑÒÈ MOV Ì, À ;ÑÎÕÐÀÍßÅÌ ÅÃÎ Â ÐÀÁ.ÎÁËÀÑÒÈ INX Í ;ÓÂÅËÈ×ÈÂÀÅÌ ÀÄÐÅÑ MVI C,18H ;ÑÄÂÈÃÀÅÌ ÊÓÐÑÎÐ ÂÏÐÀÂÎ CALL PRINTC DCR  ;ÓÌÅÍÜØÀÅÌ Ñ×ÅÒ×.ØÈÐÈÍÛ ÎÊÍÀ JNZ SAW20 ;ÖÈÊË ÏÎ ÑÈÌÂÎËÀÌ ÑÒÐÎÊÈ DCR D ;ÓÌÅÍÜØÀÅÌ Ñ×ÅÒ×.ÂÛÑÎÒÛ ÎÊÍÀ JNZ SAW10 ;ÖÈÊË ÏÎ ÑÒÐÎÊÀÌ INX SP ;ÏÐÎÏÓÑÊÀÅÌ ÊÎÎÐÄÈÍÀÒÛ ÎÊÍÀ INX SP ; ÑÒÅÊÅ XCHG ;ÏÅÐÅÑÛËÀÅÌ ÀÄÐ.ÐÀÁ.ÎÁËÀÑÒÈ LHLD WÍÎÌÅ ;ÑÎÕÐÀÍßÅÌ ÊÎÎÐÄ. ÀÊÒ.ÎÊÍÀ CALL SAVPP ; ÐÀÁÎ×ÅÉ ÎÁËÀÑÒÈ LHLD WPARM ;ÑÎÕÐÀÍßÅÌ ÏÀÐÀÌÅÒÐÛ ÎÊÍÀ CALL SAVPP LHLD WCURSR ; ÑÎÕÐÀÍßÅÌ ÏÎÇÈÖÈÈ ÊÓÐÑÎÐÀ CALL SAVPP LHLD ADRSP ; ÑÎÕÐÀÍßÅÌ ÀÄÐ.ÍÀ×ÀËÀ ÎÁËÀÑÒÈ CALL SAVPP ;ÏÎÄ ÀÊÒÈÂÍÎÅ ÎÊÍÎ ÕÑÍG ;ÎÁÍÎÂËßÅÌ ÀÄÐÅÑ ÍÀ×ÀËÀ SHLD ADRSP ;ÑÂÎÁÎÄÍÎÉ ÐÀÁ. ÎÁËÀÑÒÈ LXI H, NUMWND ;ÓÂÅËÈ×ÈÂÀÅÌ ÍÎÌÅÐ INR Ì ;ÀÊÒÈÂÍÎÃÎ ÎÊÍÀ POP H ;ÂÎÑÑÒÀÍÀÂËÈÂÀÅÌ ÐÅÃÈÑÒÐÛ POP D RET ; SAVPP - ÏÎÄÏÐÎÃÐÀÌÌÀ ÏÎÌÅÙÅÍÈß ÏÀÐÀÌÅÒÐΠ; ' ÀÊÒÈÂÍÎÃÎ ÎÊÍÀ  ÑÒÅÊ ÄÐÀÉÂÅÐÀ SAVPP: XCHG ; ÀÄÐÅÑ ÏÅÐÅÑÛËÀÅÌ Â HL MOV Ì, Å ; ÌËÀÄØÈÉ ÁÀÉÒ ÏÀÐÀÌÅÒÐÀ INX Í MOV M, D ; ÑÒÀÐØÈÉ ÁÀÉÒ ÏÀÐÀÌÅÒÐÀ INX H ÕÑÍG ; ÂÎÑÑÒÀÍÀÂËÈÂÀÅÌ ÀÄÐÅÑ Â DE RET ;+RESTW - ÑÒÈÐÀÍÈÅ ÀÊÒÈÂÍÎÃÎ ÎÊÍÀ È ÂÎÑÑÒÀ- + ;+ ÍÎÂËÅÍÈÅ ÑÎÄÅÐÆÈÌÎÃÎ ÝÊÐÀÍÀ + ;++++++++++++++++++++++++++++++++++++++++++++ RESTW: PUSH H PUSH D PUSH  LDA NUMWND ; ÏÐÎÂÅÐßÅÌ ÍÎÌÅÐ ÀÊÒ. ÎÊÍÀ DCR A ; ÅÑËÈ ÎÒÊÐÛÒÎÃÎ ÎÊÍÀ ÍÅÒ, JM RESRET ; ÒÎ ÂÛÕÎÄÈÌ. ÈÍÀ×Å ÓÌÅÍÜØÀÅÌ STA NUMWND ; ÍÎÌÅÐ ÀÊÒÈÂÍÎÃÎ ÎÊÍÀ LHLD ADRSP ; ÍÀ×ÈÍÀÅÌ ÂÎÑÑÒÀÍÎÂËÅÍÈÅ XCHG ; ÏÀÐÀÌÅÒÐΠÏÐÅÄÏÎÑË. ÎÊÍÀ CALL RESPP ; ÀÄÐÅÑ ÐÀÁÎ×ÅÉ ÎÁËÀÑÒÈ ÎÊÍÀ SHLD ADRSP ; CALL RESPP ; ÏÎÇÈÖÈß ÊÓÐÑÎÐÀ SHLD WCURSR ; CALL RESPP ; ÐÀÇÌÅÐÛ ÎÊÍÀ PUSH H CALL RESPP ; ÊÎÎÐÄÈÍÀÒÛ ÎÊÍÀ PUSH H LHLD WPARM ; ÇÀÃÐÓÆÀÅÌ ÐÀÇÌÅÐ ÑÒÈÐ. XCHG ; ÎÊÍÀ INR D ; Ó×ÈÒÛÂÀÅÌ ÐÀÌÊÓ INR D LHLD WHOME ; ÇÀÃÐÓÊÀÅÌ ÊÎÎÐÄÈÍÀÒÛ DCR H ; ÑÒÈÐÀÅÌÎÃÎ ÎÊÍÀ DCR L ; È Ó×ÈÒÛÂÀÅÌ ÐÀÌÊÓ PUSH H ; ÑÎÕÐÀÍßÅÌ ÅÃÎ Â ÑÒÅÊÅ LHLD ADRSP ; ÀÄÐÅÑ ÎÁËÀÑÒÈ ÑÎÕÐ. ÎÊÍÀ RES10: XTHL ; ÊÎÎÐÄÈÍÀÒÛ ÎÊÍÀ  (H.L) CALL CUROUT ; ÊÓÐÑÎÐ Â ÓÃÎË ÐÀÌÊÈ INR H ; ÃÎÒÎÂÈÌÑß Ê ÑËÅÄ.ÑÒÐÎÊÅ XTHL ; ÀÄÐÅÑ 08Ë.ÑÎÕÐ.  (H,L) MOV Â,Å ; ñ÷åò÷èê øèðèíû îêíà RES20: MOV C,M ; ÂÎÑÑÒÀÍÀÂËÈÂÀÅÌ ÑÎÄÅÐ". CALL PRINTC ; ÝÊÐÀÍÀ INX H ; ÓÂÅËÈ×ÈÂÀÅÌ ÀÄÐÅÑ DCR  ; ÍÈÊË ÏÎ ÑÒÐÎÊÅ JNZ RES20 DCR D ; ÖÈÊË ÏÎ ÑÒÐÎÊÀÌ JNZ RES10 INX SP ; ÏÐÎÏÓÑÊÀÅÌ ÐÀÁÎ×ÓÞ INX SP ; ÏÅÐÅÌÅÍÍÓÞ Â ÑÒÅÊÅ POP D ; ÊÎÎÐÄÈÍÀÒÛ POP H ; È ÐÀÇÌÅÐÛ ÎÊÍÀ SHLD WPARM ; ÏÎÌÅÙÀÅÌ Â ÐÀÁÎ×ÈÅ XCHG ; ß×ÅÉÊÈ ÄÐÀÉÂÅÐÀ SHLD WHOME SHLD WHOME LHLD WCURSR ; ÂÎÑÑÒÀÍÀÂËÈÂÀÅÌ ÏÎÇÈÖÈÞ CALL CUROUT ; ÊÓÐÑÎÐÀ RESRET: POP  ; ÂÎÑÑÒÀÍÀÂËÈÂÀÅÌ ÐÅÃÈÑÒÐÛ POP D ; è âûõîä POP H RET ; _________________________________________________ ; RESPP - ÏÎÄÏÐÎÃÐÀÌÌÀ ÇÀÃÐÓÇÊÈ ÏÀÐÀÌÅÒÐΠÎÊÍÀ ; _________________________________________________ RESPP: XCHG DCX H ; ÇÀÃÐÓÆÀÅÌ ÄÂÀ ÁÀÉÒÀ MOV D, M ; ÈÇ ÎÁËÀÑÒÈ ÑÎÕÐÀÍÅÍÈß DCX H ; ÏÅÐÅÑÛËÀÅÌ ÈÕ Â (H,L) MOV Å,Ì XCHG RET ; ÂÛÕÎÄ ;+ FRAME - ÐÈÑÎÂÀÍÈÅ ÐÀÌÊÈ ÎÊÍÀ È ÔÎÐÌÈÐÎÂÀÍÈÅ + ;+ ÏÀÐÀÌÅÒÐΠÎÊÍÀ + ;+ ÂÕÎÄ : H,L- ÊÎÎÐÄÈÍÀÒÛ OKHA, D, E ÐÀÇÌÅÐÛ + FRAMES: PUSH H ; ÑÎÕÐÀÍßÅÌ ÐÅÃÈÑÒÐÛ PUSH D CALL CUROUT ; ÊÓÐÑÎÐ Â ÓÃÎË ÐÀÌÊÈ DCR D ; ÓÌÅÍÜØÀÅÌ ÂÛÑÎÒÓ ÐÀÌÊÈ DCR D MOV Â, Å ; ØÈÐÈÍÓ ÐÀÌÊÈ Â Ñ×ÅÒ×ÈÊ LXI H, FRTEXT ; ÀÄÐÅÑ ÂÅÐÕÍÅÉ ËÈÍÈÈ CALL DRWFR ; ÐÈÑÓÅÌ ËÈÍÈÞ È ÓÃÎË MOV B, D ; ÂÛÑÎÒÓ ÐÀÌÊÈ Â Ñ×ÅÒ×ÈÊ CALL DRWFR ; ÐÈÑÓÅÌ ÏÐÀÂÓÞ ËÈÍÈÈ MOV Â,Å ; øèðèíó ðàìêè â ñ÷åò÷èê CALL DRWFR ; ÐÈÑÓÅÌ ÍÈÆÍÞÞ ËÈÍÈÞ MOV B, D ; ÂÛÑÎÒÓ ÐÀÌÊÈ Â Ñ×ÅÒ×ÈÊ CALL DRWFR ; ÐÈÑÓÅÌ ËÅÂÓÞ ËÈÍÈÞ È CALL CURIN ; ÇÀÃÐÓÆÀÅÌ ÊÎÎÐÄÈÍÀÒÛ SHLD WHOME ; ÏÎËÎÆÅÍÈß ÍÎÌÅ ÎÊÍÀ XCHG SHLD WPARM ; ÇÀÏÈÑÛÂÀÅÌ ÐÀÇÌÅÐÛ ÀÊÒ. POP D ; ÎÊÍÀ POP H ; ÂÎÑÑÒÀÍÀÂËÈÂÀÅÌ ÐÅÃÈÑÒÐÛ RET ;-DRWFR - ÐÈÑÎÂÀÍÈÅ ÑÒÎÐÎÍÛ È ÓÃËÀ ÐÀÌÊÈ ;-ÂÕÎÄ:  - ÄËÈÍÀ ÑÒÎÐÎÍÛ DRWFR: DCR  ; ÅÑËÈ ÄËÈÍÀ 1 JZ DRR20 ; ÎÁÕÎÄÈÌ ÖÈÊË ÏÎ ÄËÈÍÅ ÑÒÎÐ. DRW10: PUSH H ; ÐÈÑÓÅÌ Â-1 ÑÈÌÂÎËΠÑÒÎÐÎÍÛ CALL PRINT POP H DCR  JNZ DRW10 DRR20: CALL PRINT ; ÐÈÑÓÅÌ ÏÎÑËÅÄÍÈÉ ÑÈÌÂÎË INX H CALL PRINT ; ÏÐÎÐÈÑÎÂÛÂÀÅÌ ÓÃÎË INX H ; ãîòîâèì àäðåñ î÷åðåäè. ñòîð. RET ; ÄÀÍÍÛÅ ÄËß ÏÎÑÒÐÎÅÍÈß ÐÀÌÊÈ FRTEXT: DB 17Í, 0 ; ÂÅÐÕÍßß ÑÒÎÐÎÍÀ DB 1ÀÍ, 8, 0 ; ÓÃÎË DB 17Í, 1ÀÍ, 8, 0 ; ÏÐÀÂÀß ÑÒÎÐÎÍÀ DB 0 ; ÓÃÎË DB 17Í, 8, 8, 0 ; ÍÈÆÍßß ÑÒÎÐÎÍÀ DB 19H, 18H, 0 ; ÓÃÎË DB 17Í,19Í, 8, 0 ;ËÅÂÀß ÑÒÎÐÎÍÀ DB 18Í,1ÀÍ, 0 ; ÊÓÐÑÎÐ Â ËÅÂÛÉ ÂÅÐÕÍÈÉ ÓÃÎË ;WRITE - ÂÛÂÎÄ ÒÅÊÑÒÀ ×ÅÐÅÇ ÄÐÀÉÂÅÐ ÎÊÍÀ. + ; ÀÍÀËÎà Ï/Ï ÌÎÍÈÒÎÐÀ 0F818H ) + ;ÂÕÎÄ: HL - ÀÄÐÅÑ ÍÀ×ÀËÀ ÒÅÊÑÒÀ. + WRITE: MOV À, Ì ; ÂÛÂÎÄÈÌ ÂÑÅ ÑÈÌÂÎËÛ ORA À ; ÄÎ ÍÓËß JZ WRTRET MOV Ñ, À ; ×ÅÐÅÇ CALL WRITEC ; ÏÎÄÏÐÎÃÐÀÌÌÓ WRITEC INX H JMP WRITE WRTRET: INX H RET ;++++++++++++++++++++++++++++++++++++++++++++ ; WRITEC - ÂÛÂÎÄ ÑÈÌÂÎËÀ ×ÅÐÅÇ ÄÐÀÉÂÅÐ ÎÊÍÀ + ; ÀÍÀËÎà Ï/Ï ÌÎÍÈÒÎÐÀ 0F809Í + ; ÂÕÎÄ: Ñ - ÊÎÄ ÑÈÌÂÎËÀ + ;++++++++++++++++++++++++++++++++++++++++++++ WRITEC: LDA NUMWND ; ÏÐÎÂÅÐßÅÌ ÍÀËÈ×ÈÅ ORA À ; ÀÊÒÈÂÍÎÃÎ ÎÊÍÀ JZ WRC30 ; ÅÑËÈ ÍÅÒ- ×ÅÐÅÇ ÌÎÍÈÒÎÐ MOV À, Ñ ; ÐÅÇÅÐÂÈÐÓÅÌ ÂÎÇÌÎÆÍÎÑÒÜ ORA A ; ÈÇÌÅÍÅÍÈß ÀÒÐÈÁÓÒΠÂÃ-75 JM WRC30 CPI 0DÍ ; ÓÏÐÀÂËßÞØÈÅ ÑÈÌÂÎËÛ JNZ WRC10 ; 0Dí CALL WR0D JMP WRCRET WRC10: CPI 0ÑÍ ; 0CH JNZ WRC20 CALL WR0C JMP WRCRET WRC20: CPI 1FH ; 1FH JNZ WRC30 CALL WR1F ; ÎÁÐÀÁÀÒÛÂÀÞÒÑß Ï/Ï ÄÐÀÉÂÅÐÀ JMP WRCRET URC30: CALL PRINTC ; ÎÑÒÀËÜÍÛÅ ÑÈÌÂÎËÛ Â ÌÎÍÈÒÎÐ WRCRET: RET ; WR0D - ÎÁÐÀÁÎÒÊÀ ÑÈÌÂÎËÀ 0DÍ + WR0D: PUSH  MVI C, 0DH ; ÊÓÐÑÎÐ Â ÍÀ×ÀËÎ ÑÒÐÎÊÈ CALL PRINTC LDA WHOME ; ÌËÀÄØÈÉ ÁÀÉÒ Â WHOME MOV Â, À ; ÊÎÎÐÄÈÍÀÒÀ ÏÎ ÑÒÎËÁÖÀÌ MVI C, 18H ; ÏÅÐÅÄÂÈÃÀÅÌ ÊÓÐÑÎÐ ÍÀ WRDL0: CALL PRINTC ; ÏÅÐÂÓÞ ÏÎÇÈÖÈÞ ÂÍÓÒÐÈ ÎÊÍÀ DCR  JNZ WRD10 POP  RET ; WR0C - ÎÁÐÀÁÎÒÊÀ ÑÈÌÂÎËÀ 0ÑÍ + WR0Ñ: PUSH Í LHLD WHOME ; ÓÑÒÀÍÀÂËÈÂÀÅÌ ÊÓÐÑÎÐ Â CALL CUROUT ;  ÂÅÐÕÍÈÉ ËÅÂÛÉ ÓÃÎË ÏÐÎÄÎËÆÅÍÈÅ ÒÀÁËÈÖ! POP Í ; ÎÊÍÀ ÂÍÓÒÐÈ ÐÀÌÊÈ RET ; WR1F - ÎÁÐÀÁÎÒÊÀ ÑÈÌÂÎËÀ 1FH + WR1F: PUSH Í ; ÑÎÕÐÀÍßÅÌ ÈÑÏÎËÜÇÓÅÌÛÅ PUSH D ; ÐÅÃÈÑÒÐÛ PUSH  LHLD WPARM ; ÇÀÃÐÓÆÀÅÌ ÐÀÇÌÅÐÛ ÎÊÍÀ XCHG LHLD WHOME ; ÇÀÃÐÓÆÀÅÌ ÊÎÎÐÄÈÍÀÒÛ ÎÊÍÀ WRF10: CALL CUROUT ; ÊÓÐÑÎÐ Â ÍÀ×ÀËÎ ÑÒÐÎÊÈ ÎÊÍÀ MOV B, E ; ÐÀÇÌÅÐ ÎÊÍÀ ÏÎ ÑÒÎËÁÖÀÌ DCR  ; Ó×ÈÒÛÂÀÅÌ ÐÀÌÊÓ DCR  ; Ñ×ÅÒ×ÈÊ ÏÎ ÑÒÎËÁÖÀÌ WRF20: MVI Ñ,' ' ; ÎÁÍÓËßÅÌ ÑÒÐÎÊÓ CALL PRINTC DCR  ; ÖÈÊË ÏÎ ÑÈÌÂÎËÀÌ ÑÒÐÎÊÈ JNZ WRF20 INR Í ; ÃÎÒÎÂÈÌ ÊÎÎÐÄ. ÑËÅÄ. ÑÒÐÎÊÈ DCR D ; ÓÌÅÍÜØÀÅÌ Ñ×ÅÒ×ÈÊ ÑÒÐÎÊ JNZ WRF10 ; ÖÈÊË ÏÎ ÑÒÐÎÊÀÌ ÎÊÍÀ CALL WR0C ; ÊÓÐÑÎÐ Â ÂÅÐÕÍÈÉ ËÅÂÛÉ ÓÃÎË POP  POP D ; ÂÎÑÑÒÀÍÀÂËÈÂÀÅÌ ÐÅÃÈÑÒÐÛ POP Í RET ;+++++++++++++++++++++++++++++++++++++ ;+CURIN - ÇÀÃÐÓÇÊÀ ÊÎÎÐÄÈÍÀÒ ÊÓÐÑÎÐÀ + ;+ÂÛÕÎÄ: <Í> - ÍÎÌÅÐ ÑÒÐÎÊÈ + ;+ (L) - ÍÎÌÅÐ ÑÒÎËÁÖÀ + CURIN: CALL LDCUR ; ÇÀÃÐÓÆÀÅÌ ÊÎÎÐÄ. ÊÓÐÑÎÐÀ PUSH D ;  ÔÎÐÌÀÒÅ ÌÎÍÈÒÎÐÀ LXI D,0FCF8H ; ÏÐÈÂÎÄÈÌ Ê ÍÎÐÌÀËÜÍÎÌÓ ÂÈÄÓ DAD D ; ÎÒ <0,0> ÄÎ <24,63) POP D RET ;+CUROUT - ÓÑÒÀÍÎÂÊÀ ÊÓÐÑÎÐÀ  ÇÀÄÀÍÍÓÏ ÏÎÇÈÖÈÞ + ;+ÂÕÎÄ: <Í) - ÍÎÌÅÐ ÑÒÐÎÊÈ + ;+ (L) - ÍÎÌÅÐ ÑÒÎËÁÖÀ + ;++++++++++++++++++++++++++++++++++++++++++++++++ CUROUT: PUSH H ; ÑÎÕÐÀÍßÅÌ ÐÅÃÈÑÒÐÛ PUSH D PUSH  LXI D,2020Í ; ÃÎÒÎÂÈÌ: 20H+ LXI H,TXTCUR+4 ; ÐÀÁÎ×ÅÅ ÏÎËÅ Â ÎÇÓ MVI Ì,0 ; ÏÐÈÇÍÀÊ ÊÎÍÖÀ ÑÒÐÎÊÈ DCX Í ; ÔÎÐÌÈÐÓÅÌ Â TXTCUR MOV M,E ; ESCAPE ÏÎÑËÅÄÎÂÀÒÅËÜÍÎÑÒÜ DCX Í ; ÀÐ2,'Ã',2âÍ+(Í>>20H+,0 MOV M,D DÑÕ Í MVI M,'Y' DÑÕ H MVI M,1BH CALL PRINT ; ÓÑÒÀÍÀÂËÈÂÀÅÌ ÊÓÐÑÎÐ ×ÅÐÅÇ POP  ; ÌÎÍÈÒÎÐ POP D POP H RET ;***************** ÒÅÑÒÎÂÀß ÏÐÎÃÐÀÌÌÀ ************************ TEST: STEP1: CALL RESETW ; ÈÍÈÖÈÈÐÓÅÌ ÄÐÀÉÂÅÐ STEP2: LXI Í,506Í ; ÊÎÎÐÄ.ÐÀÌÊÈ 1 ÎÊÍÀ LXI D,512H ; ÐÀÇÌÅÐÛ ÐÀÌÊÈ 1 ÎÊÍÀ CALL SAVEW ; COXP.ÑÎÄÅÐÆ.ÝÊÐÀÍÀ CALL FRAME ; ÐÈÑÓÅÌ ÐÀÌÊÓ STEP3: LXI H, TSTXT1 ; ÂÛÂÎÄÈÌ ÒÅÊÑÒ CALL WRITE ; ×ÅÐÅÇ ÄÐÀÉÂÅÐ CALL INPUT ; ÏÀÓÇÀ STEP4: LXI Í,80ÅÍ ; ÊÎÎÐÄÈÍÀÒÛ 2 ÎÊÍÀ LXI D,512H ; ÐÀÇÌÅÐÛ 2 ÎÊÍÀ CALL SAVEW ; OTKPblBAEM 2 ÎÊÍÎ CALL FRAME LXI H, TSTXT2 ; ÂÛÂÎÄÈÌ ÒÅÊÑÒ CALL WRITE ; BO 2 ÎÊÍÎ STEP5: CALL INPUT ; ÏÀÓÇÀ CALL RESTW ; ÑÒÈÐÀÅÌ 2 OKHÎ STEP6: CALL INPUT ; ÏÀÓÇÀ CALL RESTW ; ÑÒÈÐÀÅÌ 1 ÎÊÍÎ CALL INPUT ; ÏÀÓÇÀ JMP TEST ; ÍÀ ÏÎÂÒÎÐ ÒÅÑÒ-ÏÐÎÃÐÀÌÌÛ TSTXT1: DB 1FH,'1 ÎÊÍÎ' DB 0DH, 0AH, '2 ÑÒÐÎÊÀ 1 ÎÊÍÀ',0 TSTXT2: DB 1FH,'2 ÎÊÍÎ ' DB 0DB,0AH,'2 ÑÒÐÎÊÀ 2 ÎÊÍÀ' DB 0DH,0AH,'3 ÑÒÐÎÊÀ 2 ÎÊÍÀ',0ÑÍ,0