10 REM ******************************************************* 11 REM * ÏÐÎÃÐÀÌÌÀ * ÌÎÐÇÅ ÒÐÅÍÀÆÅÐ* * 12 REM * ÐÀÇÐÀÁÎÒÊÀ RA3AU Ã.Í.ÈÂÀÍΠ* 13 REM * ÑÎÑÒÀÂËßÅÒ Ñ ÏÎÌÎÙÜÞ ÄÀÒ×ÈÊÀ ÏÑÅÂÄÎÑËÓ×ÀÉÍÛÕ ×ÈÑÅË * 14 REM * ÒÐÅÍÈÐÎÂÎ×ÍÛÅ ÒÅÊÑÒÛ È ÂÎÑÏÐÎÈÇÂÎÄÈÒ ÊÎÄÎÌ ÌÎÐÇÅ. * 20 REM ******************************************************* 100 CLEAR 1000 150 NT$="1234567690" 160 LT$="ABCDEFGHIJKLMNOPQRSTUVWXYZ" 170 ÊÒ$="ÀÅÂÃÄÅÆÝÈÉÊËÌÍÎÏÐÑÒÓÔÕÈ×ØØÜÛÝÞß" 200 SP=60: POKE 6638,10 220 MS$=NT$+LT$+KT$ 500 REM ÄÈÑÏÅÒ×ÅÐ ÌÅÍÞ 510 GOSUB 2000: PRINT TAB<20);"OCHOBHOE ÌÅÍÞ:": PRINT 520 PRINT TAB(10);"1=ÒÅÑÒ ÄÀÒ×ÈÊÀ ÊÎÄÀ ÌÎÐÇÅ" 530 PRINT TAB(10);"2=ÍÅÏÎÑÐÅÄÑÒÂÅÍÍÀß ÏÅÐÅÄÀ×À Ñ ÊËÀÂÈÀÒÓÐÛ" 540 PRINT ÒÀÂ(10);"3=ÂÂÎÄ ÒÐÅÍÈÐÎÂÎ×ÍÎÃÎ ÒÅÊÑÒÀ" 550 PRINT TAB(10);"4=HAÁOP ÇÍÀÊÎÂ, ÃÅÍÅÐÀÖÈß ÒÅÊÑÒÀ ÈÇ ÃÐÓÏÏ" 560 PRINT ÒÀÂ(10);"5=ÐÀÑÏÅ×ÀÒÊA ÒÐÅÍÈÐÎÂÎ×ÍÎÃÎ ÒÅÊÑÒÀ" 570 PRINT ÒÀÁ(10);"6=ÏÅÐÅÄÀ×À ÂÈÄÈÌÎÃÎ ÍÀ ÝÊÐÀÍÅ ÒÅÊÑÒÀ" 580 PRINT TAB(10);"7=ÏÅÐÅÄÀ×À ÍÅÂÈÄÈÌÎÃÎ ÍÀ ÝÊÐÀÍÅ ÒÅÊÑÒÀ" 590 PRINT ÒÀÂ(10);"8=ÍÀÇÍÀ×ÅÍÈÅ ÑÊÎÐÎÑÒÈ ÏÅÐÅÄÀ×È" 800 PRINT: PRINT TAB(5);: INPUT Ñ 810 ÎN Ñ GOSUB 5000,5100,8700,3000,6000,5300,5500,8000 820 GOTO 510 1000 REM ********** ÏÎÄÏÐÎÃÐÀÌÌÛ ***************** 2000 REM * Î×ÈÑÒÊÀ ÝÊÐÀÍÀ È ÂÛÂÎÄ ÇÀÑÒÀÂÊÈ 2010 CLS: CUR 12,24 2020 PRINT "* ÌÎÐÇÅ - ÒÐÅÍÀÆÅÐ*": PRINT 2030 PRINT TAB(16);"ÑÊÎÐÎÑÒÜ ";SP;" ÇÍÀÊÎÂ/ÌÈÍ" 2040 PRINT: RETURN 2100 REM * ÎÏÈÑÀÍÈÅ ÑÏÅÖÈÀËÜÍÛÕ ÇÍÀÊΠ2110 PRINT: PRINT TAB(20);"ÑÏÅÖÈÀËÜÍÛÅ ÇÍÀÊÈ:" 2120 PRINT "AR: '<' AS: '>' BÊ: '@' KN: ';' OK; "^" 2130 PRINT "SK: '=' !: '\' ÐÀÇÄÅË: '-' ÇÀÁÎÉ: '(ÇÁ)' 2140 PRINT: RETURN 3000 REM * ÍÀÇÍÀ×ÅÍÈÅ ÍÀÁÎÐÀ ÇÍÀÊÎÂ, ÃÅÍÅÐÀÖÈß ÒÅÊÑÒÀ 3010 GOSUB 2000: PRINT TAB(20);"ÍÀÁÎÐÛ ÇÍÀÊÎÂ:": PRINT 3020 PRINT TAB(15);"1=ÖÈÔPÛ" 3030 PRINT ÒÀÂ(15);"2=ÁÓÊÂÛ - ËÀÒÈÍÑÊÈÅ" 3040 PRINT ÒÀÁ(15);"3=ÁÓÊÂÛ - ÊÈÐÈËËÈÖÀ" 3050 PRINT ÒÀÂ(15);"4=ÖÈÔÐÛ È ÁÓÊÂÛ - ËÀÒÈÍÑÊÈÅ" 3060 PRINT ÒÀÂ(15);"5=ÖÈÔÐÛ È ÁÓÊÂÛ - ÊÈÐÈËËÈÖÀ" 3070 PRINT ÒÀÂ(15);"6=ÎÐÈÃÈÍÀËÜÍÛÉ ÍÀÁÎÐ ÇÍÀÊÎÂ" 3100 PRINT: PRINT ÒÀÂ(13); INPUT Ñ 3110 ON Ñ GOSUB 8100,8200,8300,8400,8500,8600 3120 IF C>0 AND C<7 THEN GOSUB 7000: GOTO 3140 3130 GOTO 3010 3140 RETURN 4000 REM * ÏÅÐÅÄÀ×À ÊÎÄÀ ÌÎÐÇÅ ÑÈÌÂÎËÀ D" 4010 POKE 6639,ASC(D$): D=USR(6640); RETURN 5000 REM * ÒÅÑÒ ÄÀÒ×ÈÊÀ ÊÎÄÀ ÌÎÐÇÅ 5010 GOSUB 2000: PRINT TAB(16)1"ÒÅÑÒ ÄÀÒ×ÈÊÀ ÊÎÄÀ MÎÐÇÅ* 5020 FOR IS=44 TO 127: D$=CHR$(IS) 5030 PRINT IS,D$: GOSUB 4000: NEXT IS 5040 RETURN 5100 REM * ÍÅÏÎÑÐÅÄÑÒÂÅÍÍÀß ÏÅÐÅÄÀ×À Ñ ÊËÀÂÈÀÒÓÐÛ 5110 GOSUB 2000 5120 PRINT TAB(10)1"ÍÅÏÎÑÐÅÄÑÒÂÅÍÍÀß ÏÅÐÅÄÀ×À Ñ ÊËÀÂÈÀÒÓÐÛ" 5130 GOSUB 2100: PRINT TAB(14);" ÂÛÕÎÄ Â ÎÑÍÎÂÍÎÅ ÌÅÍÞ: '(ÂÊ)" 5140 PRINT: PRINT 5200 Y=USR(-2045) 5210 IF Y=13 THEN 5250 5220 IF Y=32 THEN 5240 5230 IF Y<44 OR Y>127 THEN 5200 5240 D$=CHR$(Y): PRINT D$;: GOSUB 4000: GOTO 5200 5250 PRINT: RETURN 5300 REM * ÏÅÐÅÄÀ×À ÂÈÄÈÌÎÃÎ ÍÀ ÝÊÐÀÍÅ ÒÅÊÑÒÀ ^ 5310 GOSUB 2000 5320 PRINT TAB(14);"ÏÅÐÅÄÀÅÒÑß ÒÐÅÍÈÐÎÂÎ×ÍÛÉ ÒÅÊÑÒ ..." 5330 LS=LEN(MS$) 5340 FOR IS=1 TO INT(LS)/30)+1 5350 PRINT: PRINT ÒÀÂ(4); 5360 FOR JS=1 TO 30: IF (IS-1)*30+JS>LS THEN 5380 5370 D$=MID$(MS*,(IS-1)*30+JS,1): PRINT D$;: GOSUB 4000 5380 NEXT JS: NEXT IS 5390 RETURN 5500 REM * ÏÅÐÅÄÀ×À ÍÅÂÈÄÈÌÎÃÎ ÍÀ ÝÊÐÀÍÅ ÒÅÊÑÒÀ 5510 GOSUB 2000 5520 PRINT TAB(14);"ÏÅÐÅÄÀÅÒÑß ÒÐÅÍÈÐÎÂÎ×ÍÛÉ ÒÅÊÑÒ ..." 5530 LS=LEN(MS$) 5540 FOR IS=1 TO LS 5550 D$=MID$(MS",IS,1): GOSUB 4000: NEXT IS 5560 RETURN 6000 REM * ÐÀÑÏÅ×ÀÒÊÀ ÒÐÅÍÈÐÎÂÎ×ÍÎÃÎ ÒÅÊÑÒÀ 6010 GOSUB 2000 6020 PRINT TAB(18);"ÒÐÅÍÈÐÎÂÎ×ÍÛÉ ÒÅÊÑÒ;": PRINT 6030 LS=LEN(MS$) 6040 FOR IS=1 TO INT(LS/30)+1 6030 PRINT TAB(14);MID$(MS$,(IS-1)*30+1,30) 6060 NEXT IS 6070 PRINT: PRINT TAB(10); 6080 PRINT "×ÒÎÁÛ ÏÐÎÄÎËÆÈÒÜ, ÍÀÆÍÈÒÅ ËÞÁÓÞ ÊËÀÂÈÈÓ ..." 6090 Y=USR(-2045): IF Y=255 THEN 6090 6100 RETURN 7000 RÅM * ÃÅÍÅÐÀÖÈß ÒÅÊÑÒÀ, ÑÎÑÒÎßÙÅÃÎ ÈÇ ÃÐÓÏÏ ÇÍÀÊΠ7010 GOSUB 2000 7020 PRINT TAB(12);"ÃÅÍÅÐÈÐÓÅÒÑß ÒÐÅÍÈÐÎÂÎ×ÍÛÉ ÒÅÊÑÒ ...- 703Î MS$="": LS=LEN(ST$) 7040 FOR IS=1 TO 40: FOR JS=1 TO 5 7050 MS$=MS$+MID$(ST$,INT(RND(1)*LS)+1,1): NEXT JS 7060 MS$=MS$+" ": NEXT IS 7070 RETURN 8000 REM * ÍÀÇÍÀ×ÅÍÈÅ ÑÊÎÐÎÑÒÈ ÏÅÐÅÄÀ×È 8010 GOSUB 2000 8020 PRINT TAB(16)1"ÂÂÅÄÈÒÅ ÑÊÎÐÎÑÒÜ ÏÅÐÅÄÀ×È;" 8030 PRINT TAB(16)1"ÎÒ 25 ÄÎ 150 ÇÍÀÊÎÂ/ÌÈÍ" 8040 PRINT; PRINT TAB(14);: INPUT SP 8050 IF SP<25 OR SP>150 THEN 8010 8060 POKE 6638,INT(6000/SP): RETURN 8100 ST$=NT$: RETURN: REM * ÖÈÔÐÛ 8200 ST$=LT$: RETURN: REM * ÁÓÊÂÛ - ËÀÒÈÍÑÊÈÅ 8300 ST$=KT$: RETURN: REM * ÁÓÊÂÛ - ÊÈÐÈËËÈÖÀ 8400 ST$=NT$+LT$: RETURN: REM * ÖÈÔÐÛ È ÁÓÊÂÛ - ËÀÒÈÍÑÊÈÅ 83ÎÎ ST$=NT$+KT$; RETURN: REM * ÖÈÔÐÛ È ÁÓÊÂÛ - ÊÈÐÈËËÈÖÀ 8600 REM * ÍÀÇÍÀ×ÅÍÈÅ ÎÐÈÃÈÍÀËÜÍÎÃÎ ÍÀÁÎÐÀ ÇÍÀÊΠ8610 GOSUB 2000: GOSUB 2100 8620 PRINT TAB(18); "ÂÂÅÄÈÒÅ ÍÀÁÎÐ ÇÍÀÊÎÂ:" 8630 INPUT ST$: RETURN 8700 REM * ÂÂÎÄ ÒÐÅÍÈÐÎÂÎ×ÍÎÃÎ ÒÅÊÑÒÀ 8710 GOSUB 2000: GOSUB 2100: MS$="" 8720 PRINT TAB(14); "ÂÂÅÄÈÒÅ ÒÐÅÍÈÐÎÂÎ×ÍÛÉ ÒÅÊÑÒ:" 8730 INPUT ST$: IF ST$="" THEN 8760 8740 MS$=MS$+LEFT$(ST$,250-LEN(MS$)) 8750 IF LEN(MS$)<250 THEN 8730 8760 RETURN 9999 REM ****************** ÊÎÍÅÖ **********************************