10000 INIT 10010 TEXTMODE 2 10020 ! 10030 OPTION BASE 0 10040 DIM TBL1$(48,5),TBL2$(95) 10050 FOR I=0 TO 48 10060 FOR J=1 TO 5 10070 READ TBL1$(I,J) 10080 NEXT J 10090 NEXT I 10100 FOR I=1 TO 95 10110 READ TBL2$(I) 10120 NEXT I 10130 BOIN$="AIUEO" 10140 SIIN1$="BCDFGHJKLMNPQRSTVWXYZ" 10150 SIIN2$="BY CY DY FY GY HY JY KY LY MY NY PY QY RY SY TY VY XY ZY CH DH SH TH WH TS LT XT" 10160 KIGOU$="" 10170 FOR I=0 TO 94 10180 KIGOU$=KIGOU$+CHR$(I+32) 10190 NEXT I 10200 ! 10210 DATA ‚ ,‚¢,‚¤,‚¦,‚¨ 10220 DATA ‚Î,‚Ñ,‚Ô,‚×,‚Ú 10230 DATA ‚©,‚µ,‚­,‚¹,‚± 10240 DATA ‚¾,‚À,‚Ã,‚Å,‚Ç 10250 DATA ‚Ó‚Ÿ,‚Ó‚¡,‚Ó,‚Ó‚¥,‚Ó‚§ 10260 DATA ‚ª,‚¬,‚®,‚°,‚² 10270 DATA ‚Í,‚Ð,‚Ó,‚Ö,‚Ù 10280 DATA ‚¶‚á,‚¶,‚¶‚ã,‚¶‚¥,‚¶‚å 10290 DATA ‚©,‚«,‚­,‚¯,‚± 10300 DATA ‚Ÿ,‚¡,‚£,‚¥,‚§ 10310 DATA ‚Ü,‚Ý,‚Þ,‚ß,‚à 10320 DATA ‚È,‚É,‚Ê,‚Ë,‚Ì 10330 DATA ‚Ï,‚Ò,‚Õ,‚Ø,‚Û 10340 DATA ‚­‚Ÿ,‚­‚¡,‚­,‚­‚¥,‚­‚§ 10350 DATA ‚ç,‚è,‚é,‚ê,‚ë 10360 DATA ‚³,‚µ,‚·,‚¹,‚» 10370 DATA ‚½,‚¿,‚Â,‚Ä,‚Æ 10380 DATA ƒ”‚Ÿ,ƒ”‚¡,ƒ”,ƒ”‚¥,ƒ”‚§ 10390 DATA ‚í,‚¤‚¡,‚¤,‚¤‚¥,‚ð 10400 DATA ‚Ÿ,‚¡,‚£,‚¥,‚§ 10410 DATA ‚â,‚¢,‚ä,‚¢‚¥,‚æ 10420 DATA ‚´,‚¶,‚¸,‚º,‚¼ 10430 DATA ‚Ñ‚á,‚Ñ‚¡,‚Ñ‚ã,‚Ñ‚¥,‚Ñ‚å 10440 DATA ‚¿‚á,‚¿‚¡,‚¿‚ã,‚¿‚¥,‚¿‚å 10450 DATA ‚À‚á,‚À‚¡,‚À‚ã,‚À‚¥,‚À‚å 10460 DATA ‚Ó‚á,‚Ó‚¡,‚Ó‚ã,‚Ó‚¥,‚Ó‚å 10470 DATA ‚¬‚á,‚¬‚¡,‚¬‚ã,‚¬‚¥,‚¬‚å 10480 DATA ‚Ђá,‚Ђ¡,‚Ђã,‚Ђ¥,‚Ђå 10490 DATA ‚¶‚á,‚¶‚¡,‚¶‚ã,‚¶‚¥,‚¶‚å 10500 DATA ‚«‚á,‚«‚¡,‚«‚ã,‚«‚¥,‚«‚å 10510 DATA ‚á,‚¡,‚ã,‚¥,‚å 10520 DATA ‚Ý‚á,‚Ý‚¡,‚Ý‚ã,‚Ý‚¥,‚Ý‚å 10530 DATA ‚É‚á,‚É‚¡,‚É‚ã,‚É‚¥,‚É‚å 10540 DATA ‚Ò‚á,‚Ò‚¡,‚Ò‚ã,‚Ò‚¥,‚Ò‚å 10550 DATA ‚­‚á,‚­‚¡,‚­‚ã,‚­‚¥,‚­‚å 10560 DATA ‚è‚á,‚è‚¡,‚è‚ã,‚è‚¥,‚è‚å 10570 DATA ‚µ‚á,‚µ‚¡,‚µ‚ã,‚µ‚¥,‚µ‚å 10580 DATA ‚¿‚á,‚¿‚¡,‚¿‚ã,‚¿‚¥,‚¿‚å 10590 DATA ƒ”‚á,ƒ”‚¡,ƒ”‚ã,ƒ”‚¥,ƒ”‚å 10600 DATA ‚á,‚¡,‚ã,‚¥,‚å 10610 DATA ‚¶‚á,‚¶‚¡,‚¶‚ã,‚¶‚¥,‚¶‚å 10620 DATA ‚¿‚á,‚¿,‚¿‚ã,‚¿‚¥,‚¿‚å 10630 DATA ‚Å‚á,‚Å‚¡,‚Å‚ã,‚Å‚¥,‚Å‚å 10640 DATA ‚µ‚á,‚µ,‚µ‚ã,‚µ‚¥,‚µ‚å 10650 DATA ‚Ä‚á,‚Ä‚¡,‚Ä‚ã,‚Ä‚¥,‚Ä‚å 10660 DATA ‚¤‚Ÿ,‚¤‚¡,‚¤,‚¤‚¥,‚¤‚§ 10670 DATA ‚‚Ÿ,‚‚¡,‚Â,‚‚¥,‚‚§ 10680 DATA ‚k‚½,‚k‚¿,‚Á,‚k‚Ä,‚k‚Æ 10690 DATA ‚w‚½,‚w‚¿,‚Á,‚w‚Ä,‚w‚Æ 10700 ! 10710 DATA "@",I,h,”,,“,•,f,i,j,–,{,C,|,D,^ 10720 DATA ‚O,‚P,‚Q,‚R,‚S,‚T,‚U,‚V,‚W,‚X,F,G,ƒ,,„,H 10730 DATA —,‚`,‚a,‚b,‚c,‚d,‚e,‚f,‚g,‚h,‚i,‚j,‚k,‚l,‚m,‚n 10740 DATA ‚o,‚p,‚q,‚r,‚s,‚t,‚u,‚v,‚w,‚x,‚y,m,,n,O,Q 10750 DATA M,‚,‚‚,‚ƒ,‚„,‚…,‚†,‚‡,‚ˆ,‚‰,‚Š,‚‹,‚Œ,‚,‚Ž,‚ 10760 DATA ‚,‚‘,‚’,‚“,‚”,‚•,‚–,‚—,‚˜,‚™,‚š,o,b,p,` 10770 ! 10780 B$,S$="" 10790 HATUON=0 !u‚Áv‚Ì—L‚è–³‚µƒtƒ‰ƒO 10800 DO 10810 SLEN=LEN(S$) 10820 CALL CLPRINT(7,0,0,">"+S$+" ") 10830 DO 10840 CALL INKEYX(A,A$) 10850 LOOP WHILE A$="" 10860 IF A=8 THEN 10870 CALL BACKSPACE 10880 ELSEIF A=10 THEN 10890 CALL CRETURN 10900 ELSEIF A=27 THEN 10910 CALL ESCAPE 10920 ELSEIF A>64 AND A<91 OR A>96 AND A<123 THEN 10930 CALL ROME 10940 ELSE 10950 CALL KIGOU 10960 END IF 10970 LOOP 10980 END 10990 !========================================== 11000 ! ƒoƒbƒNƒXƒy[ƒX“ü—Í 11010 !------------------------------------------ 11020 SUB BACKSPACE 11030 IF SLEN>1 THEN S$=S$(0:SLEN-2) 11040 B$="" 11050 HATUON=0 11060 END SUB 11070 !========================================== 11080 ! ƒLƒƒƒŠƒbƒWƒŠƒ^[ƒ““ü—Í 11090 !------------------------------------------ 11100 SUB CRETURN 11110 PRINT 11120 B$,S$="" 11130 HATUON=0 11140 CLEAR 11150 END SUB 11160 !========================================== 11170 ! ƒGƒXƒP[ƒv“ü—Í 11180 !------------------------------------------ 11190 SUB ESCAPE 11200 CLEAR 11210 B$,S$="" 11220 HATUON=0 11230 CALL CLPRINT(7,0,-1," >") 11240 END SUB 11250 !========================================== 11260 ! ƒ[ƒ}Žš“ü—Í 11270 !------------------------------------------ 11280 SUB ROME 11290 BLEN=LEN(B$) 11300 P1=POS(BOIN$,UCASE$(A$)) 11310 IF P1>0 THEN ! •ꉹ‚ª“ü—Í‚³‚ê‚½ê‡ 11320 SELECT CASE BLEN 11330 CASE 0 ! Žq‰¹‚Ì’·‚³‚ª0‚Ìê‡ 11340 S$=S$+TBL1$(0,P1) 11350 CASE 1 ! Žq‰¹‚Ì’·‚³‚ª1‚Ìê‡ 11360 P2=POS(SIIN1$,UCASE$(B$)) 11370 IF P2=0 THEN 11380 S$=S$+TBL1$(0,P1) 11390 ELSE 11400 IF HATUON=0 THEN 11410 S$=S$(1:SLEN-2)+TBL1$(P2,P1) 11420 ELSE 11430 S$=S$(1:SLEN-4)+"‚Á"+TBL1$(P2,P1) 11440 END IF 11450 END IF 11460 CASE 2 ! Žq‰¹‚Ì’·‚³‚ª2‚Ìê‡ 11470 P2=POS(SIIN2$,UCASE$(B$)) 11480 IF P2=0 THEN 11490 P2=POS(SIIN1$,UCASE$(B$(BLEN:BLEN))) 11500 IF P2=0 THEN 11510 S$=S$+TBL1$(0,P1) 11520 ELSE 11530 S$=S$(1:SLEN-2)+TBL1$(P2,P1) 11540 END IF 11550 ELSE 11560 IF HATUON=0 THEN 11570 S$=S$(1:SLEN-4)+TBL1$((P2-1)/3+22,P1) 11580 ELSE 11590 S$=S$(1:SLEN-6)+"‚Á"+TBL1$((P2-1)/3+22,P1) 11600 END IF 11610 END IF 11620 END SELECT 11630 B$="" 11640 HATUON=0 11650 ELSE ! Žq‰¹‚ª“ü—Í‚³‚ê‚½ê‡ 11660 P1=POS(KIGOU$,A$) 11670 IF UCASE$(B$(BLEN:BLEN))="N" THEN ! N‚ÉŠÖ‚·‚é“Á•ʈ— 11680 IF UCASE$(A$)<>"Y" THEN 11690 HATUON=0 11700 S$=S$(1:SLEN-2)+"‚ñ" 11710 IF UCASE$(A$)="N" THEN 11720 P1=0 11730 B$="" 11740 ELSE 11750 B$=A$ 11760 END IF 11770 END IF 11780 ELSEIF UCASE$(A$)=UCASE$(B$(BLEN:BLEN)) THEN ! ˜A‘±“¯ˆêŽq‰¹ ¨ ‚Á 11790 HATUON=2 11800 B$=A$ 11810 ELSE 11820 HATUON=MAX(0,HATUON-1) 11830 B$=B$+A$ 11840 BLEN=LEN(B$) 11850 B$=B$(BLEN-1:BLEN) 11860 END IF 11870 IF P1>0 THEN S$=S$+TBL2$(P1) 11880 END IF 11890 END SUB 11900 !========================================== 11910 ! ‹L†“ü—Í 11920 !------------------------------------------ 11930 SUB KIGOU 11940 P1=POS(KIGOU$,A$) 11950 IF P1>0 THEN 11960 HATUON=0 11970 B$="" 11980 S$=S$+TBL2$(P1) 11990 END IF 12000 END SUB 12010 !========================================== 12020 ! Šg’£INKEY$ 12030 !------------------------------------------ 12040 SUB INKEYX(INK,INK$) 12050 INK$=INKEY$ 12060 IF INK$="" OR INK$<>INK0$ THEN 12070 INKT=0 12080 ELSE 12090 INKT=INKT+1 12100 END IF 12110 INK0$=INK$ 12120 IF INKT>30 THEN INKT=27 12130 IF INKT>0 AND INKT<30 THEN INK$="" 12140 INK=ORD(INK$) 12150 FSYNC 1 12160 END SUB 12170 !========================================= 12180 ! Šg’£PRINT(LOCATE X,Y:COLOR C:PRINT S$;) 12190 !----------------------------------------- 12200 SUB CLPRINT(C,X,Y,S$) 12210 IF X>=0 THEN 12220 IF Y>=0 THEN LOCATE X,Y ELSE LOCATE X 12230 END IF 12240 CALL TEXTCOLX(C) 12250 PRINT S$; 12260 END SUB 12270 !========================================= 12280 ! TEXT-COLOR•ÏX 12290 !----------------------------------------- 12300 SUB TEXTCOLX(C) 12310 SELECT CASE C 12320 CASE 0 12330 TEXTCOL BLACK 12340 CASE 1 12350 TEXTCOL BLUE 12360 CASE 2 12370 TEXTCOL RED 12380 CASE 3 12390 TEXTCOL PURPLE 12400 CASE 4 12410 TEXTCOL GREEN 12420 CASE 5 12430 TEXTCOL CYAN 12440 CASE 6 12450 TEXTCOL YELLOW 12460 CASE 7 12470 TEXTCOL WHITE 12480 END SELECT 12490 END SUB 12500 !