10 POKE56,56:CLR: A%=0 :AD=49152: REM A% MUST BE THE 1ST VARIABLE! 20 DV=PEEK(186):IF DV<8 THEN DV=8 30 POKE 53280,0:POKE 53281,0 50 REM LOAD MODULES 60 SYS 57812"TOOLBOX C000",DV,0:POKE780,0:POKE781,0:POKE782,192:SYS65493 70 SYS AD+30,"JAPAN-FONT",DV,14336 80 REM SYS AD+30,"OBJ.JAPAN",DV,16384 90 REM PREPARATION 100 PRINT CHR$(142):POKE53272,30: REM NO ALT CHAR SET:SHOW CUST CHARS 200 REM TABLE SCREEN 210 PRINT"[147][146][159] A I U E O 220 [153]" 230 PRINT" [192] [193] [194] [195] [196] 240 [153]"OPEN A I U E O 250 PRINT"[159]K [197] [198] [199] [200] [201] [197][187] [198][187] [199][187] [200][187] [201][187]" 260 PRINT"[159] KA KI KU KE KO GA GI GU GE GO"; 270 PRINT"[159]S [202] [203] [204] [205] [206] [202][187] [203][187] [204][187] [205][187] [206][187] 280 [153]"OPEN SA SHI SU SE SO ZA JI ZU ZE ZO"; 290 [153]"OPENT (null) (null) (null) (null) (null) (null)RND (null)RND (null)RND (null)RND (null)RND 300 PRINT"[159] TA CHI TSU TE TO DA JI ZU DE DO"; 310 PRINT"[159]N [212] [213] [214] [215] [216] 320 [153]"OPEN NA NI NU NE NO (null)RND (null)RND (null)RND (null)RND (null)RND 330 PRINT"[159]H [217] [218] [219] [220] [221] [159]BA BI BU BE BO"; 340 PRINT"[159] HA HI FU HE HO [217][188] [218][188] [219][188] [220][188] [221][188] 350 [153]"OPENM (null) (null) TAB( TO FN OPENPA PI PU PE PO"; 360 [153]"OPEN MA MI MU ME MO 370 PRINT"[159]Y [166] [167] [168] 380 [153]"OPEN YA YU YO 390 PRINT"[159]R [169] [170] [171] [172] [173] 400 [153]"OPEN RA RI RU RE RO 410 PRINT"[159]W [174] [175] [176] 420 [153]"OPEN WA N O" 430 [158]AD[170]27,24,"SETTING UP..." 450 : 500 [143] READ IN WORDS 510 [134] A$(133),B$(133),A(92),B(92):[129] I[178]1 [164] 130:[135] A$(I),B$(I):[130] 600 [143] HIGHLIGHT LOCS 610 R[178][171]4:[129] I[178]29 [164] 60:R[178](R[170]4)[172][171](R[179]16):A(I)[178]R[170]3:B(I)[178][181]((I[171]24)[173]5)[172]2:[130] 620 R[178][171]4:[129]I[178]0[164]13:R[178](R[170]4)[172][171](R[179]16)[172][171](I[179][177]6):A(I)[178]R[170]3:B(I)[178][181]((I[170]39)[173]5)[172]2:[130] 630 A(0)[178]11:B(0)[178]14:A(1)[178]15:B(1)[178]14:A(2)[178]19:B(2)[178]14:A(3)[178]3:B(3)[178]16 640 A(4)[178]11:B(4)[178]16:A(5)[178]19:B(5)[178]16:A(14)[178]3:B(14)[178]20:A(15)[178]11:B(15)[178]20 650 A(16)[178]19:B(16)[178]20:A(92)[178]3:B(92)[178]14:A(11)[178]3:A(12)[178]11:A(13)[178]19 660 : 670 [151]781,24:[158]59903:[158]AD[170]18,208 680 [151]646,1:[158]AD[170]24,3,24,"F SYS- OPENTOGGLE FONT SPACE SYS- OPENCONTINUE 681 SYSAD+45,"F ":ONF%GOTO682,710 682 SYSAD+57,16640,18688,14336:GOTO681 710 POKE 53280,7:PRINT"[147]" 720 WAIT 203,64:REM MAKE SURE NO KEY IS BEING PRESSED 730 POKE 655,74:POKE 656,64: REM INPUT KEY-CATCHER 800 REM MAIN DISPLAY 810 SYS AD+15,0,19,0,24,255,1+128 820 SYS AD+24,6,3,"[177] [179][181] [183][185]": REM "JAPANESE" IN JAPANESE 830 SYS AD+24,6,4,"[178] [180][182] [184][186]" 840 SYS AD+24,27,3,"[146]ENGLISH" 850 : 860 SYS AD+24,21,11,"[154][146]ENTER TRANSLATION" 870 : 880 SYS AD+24,23,17,"[156]F1 - TABLE" 890 SYS AD+24,23,18,"F3 - SHOW ANSWER" 900 SYS AD+24,23,19,"F5 - QUIT" 910 : 920 SYS AD+15,20,20,0,24,0,7: REM DIVIDING-LINE 930 : 940 SYS AD+24,12,23,"< = > ": REM "CORRECT" IN JAPANESE 950 SYS AD+24,30,23,"[146][153]CORRECT" 960 : 970 SYS AD+18,224:REM SAVE PLAIN SCREEN IN 224 990 REM LOOP 1000 SYS 16384:REM RANDOMIZE 1010 FOR S=0TO24:POKE 54272+S,0:NEXT:REM CLEAR SID CHIP 1100 FOR I=1 TO 130:N=PEEK(20480+I):TA=0 1200 REM SOUND 1210 POKE 54272,46: REM FREQ LOW 1 1220 POKE 54273,253:REM FREQ HIGH 1 1230 POKE 54286,30: REM FREQ LOW 3 1240 POKE 54287,134:REM FREQ HIGH 3 1250 POKE 54277,10: REM ATT/DEC 1 1260 POKE 54278,74: REM SUS/REL 1 1270 POKE 54276,16+4: REM WAVE 1 = TRI+RING MOD 1280 POKE 54290,17: REM WAVE 3 1290 POKE 54296,15+128: REM VOL+3 OFF 1300 : 1310 SYS AD+21,224: REM DISPLAY PLAIN SCREEN 1400 REM NUMBERS 1410 X=I:GOSUB 11000: REM 11000 = NUMERAL CONVERSION SUBROUTINE 1420 SYS AD+24,0,0,""+I$+" " 1430 SYS AD+24,21,0,"[146][159]"+STR$(X)+"" 1440 SYS AD+24,0,12," " 1450 SYS AD+24,0,12,"" 1460 SP=10-(LEN(A$(N))/2) 1470 SYS AD+24,SP,12,A$(N) 1480 : 1490 X=C:GOSUB 11000 1500 SYS AD+24,2,23,RIGHT$(" "+I$,7) 1510 SYS AD+24,24,23,"[146]"+RIGHT$(" [153]"+STR$(X)+"",6) 1520 SYS AD+24,21,13,"[146] " 1600 REM GET GUESS 2000 SYS AD+24,21,13,"" 2010 WAIT 203,64:POKE 198,0:A%=0: REM PREPARE FOR CUSTOM INPUT 2020 INPUT N$:POKE212,0 2030 SYS AD+18,232: REM SAVE SCREEN W/ANY INPUT LETTERS IN 232 2040 IF A%=3 THEN GOSUB 13000:ON F% GOTO 40000,2000: REM QUIT? 2050 ON A% GOTO 4000,5000: REM TABLE OR SHOW ANSWER 2100 REM CHECK 3000 IF N$=B$(N) THEN POKE 54276,21:C=C+1:POKE 54276,20:GOTO 6000: REM CORRECT 3010 : 3020 SYS AD+15,12,29,4,10,160,6 3030 SYS AD+24,14,7,"THAT IS NOT IT" 3040 SYS AD+15,13,28,5,9,255,14+128 3050 : 3060 SYS AD+15,4,36,16,20,160,5 3070 SYS AD+24,6,17,"C - CONTINUE S - SHOW ANSWER" 3080 SYS AD+24,5,19," Q - QUIT R - RETRY " 3090 SYS AD+15,5,35,17,19,255,13+128 3100 : 3200 POKE212,0:SYS AD+45,"CQSR":ON F% GOTO 6000,3300,5000,4500 3210 : 3300 GOSUB 13000: ON F% GOTO 40000,3200: REM QUIT? 3400 REM TABLE 4000 POKE53280,0:IF TA THEN SYS AD+21,216:GOTO 4400: REM ALREADY HIGHLIGHTED 4010 SYS AD+21,208: REM PLAIN TABLE 4020 FOR G=1 TO LEN(A$(N)): REM A$(N) IS THE CURRENT JAPANESE WORD 4030 H=ASC(RIGHT$(A$(N),G))-163 4040 : 4050 IF H<0 OR H=26 THEN NEXT :REM LONG VOWEL OR SPACE 4060 IF HH THEN 4200 :REM MARU OR NIGORI MARK WAS PRESENT 4070 IF H=24 OR H=25 THEN HH=H:NEXT :REM MARU OR NIGORI 4080 : 4090 A=A(H):GOTO 4300: REM NO MARU OR NIGORI 4100 : 4200 IF H>53 THEN IF H<59 THEN GG=(HH=24)-(HH=25): REM"H-LINE 4210 A[178][181](A(H)[172].75[170]23): [143] COLUMN OFFSET 4220 : 4300 [158] AD[170]15,A,A[170]2[171](HH[178]0),B(H)[170]GG,B(H)[170]1[170]GG,0,13[170]128 4310 GG[178]0:HH[178]0:[130] 4320 [158] AD[170]18,216:TA[178]1: [143] SAVE HIGHLIGHTED TABLE IN 216:TA IS A FLAG 4330 : 4400 [151] 198,0:[146] 198,1:[151] 53280,7 4500 [158] AD[170]21,232:[137] 2000: [143] PUT BACK PREVIOUS SCREEN 4900 [143] SHOW WORD 5000 [151]212,0:[158] AD[170]21,232: [143] BLOCK OUT ANY OTHER WINDOWS 5010 [158] AD[170]15,12,28,5,11,160,6 5020 [158] AD[170]24,14,7,"THIS WORD IS:" 5030 [158] AD[170]24,14,9,B$(N) 5040 [158] AD[170]15,13,27,6,10,255,14[170]128 5050 : 5100 [158] AD[170]15,13,27,16,20,160,5 5110 [158] AD[170]24,14,17," PRESS SPACE " 5120 [158] AD[170]24,14,18," " 5130 [158] AD[170]24,14,19," Q -- QUIT " 5140 [158] AD[170]15,14,26,17,19,255,13[170]128 5150 : 5200 [158] AD[170]45," Q":[139] F%[178]1 [167] 6000: [143] NEXT WORD IF "C" 5300 [141] 13000:[145] F% [137] 40000,6000: [143] QUIT? 5400 [143] NEXT WORD 5410 : 6000 [130] 6010 : 6100 [143] END LOOP 6110 X[178]C:[141] 11000:C[178]0 6120 [158] AD[170]24,2,23,""[170][201](" "[170]I$,7) 6130 [158] AD[170]24,24,23,"WAIT"[170][201](" PRINT"[170][196](X)[170]"",6) 6140 [158] AD[170]24,21,13,"WAIT " 6150 [158] AD[170]15,11,28,6,19,160,15 6160 [158] AD[170]72,13,25,9,17 6170 [158] AD[170]15,14,26,8,16,160,0 6180 [158] AD[170]24,16,10,"FINISHED." 6190 [158] AD[170]24,16,12,"RESTART?" 6200 [158] AD[170]24,16,14," Y/N " 6210 [158] AD[170]15,15,25,9,15,160,10[170]128 6220 : 6300 [158] AD[170]45,"YN":[145] F% [137] 1000,40000 10000 [159]15,8,15,"S0:JAPANESE":[160]15:[148]"JAPANESE",8:[128] 11000 I1[178][181](X[173]100):I2[178][181]((X[171]I1[172]100)[173]10):I3[178]X[171]100[172]I1[171]10[172]I2:I$[178]"" 11010 [139] I3 [167] I$[178][196](I3) 11020 [139] I2 [167] I$[178]" 0"[170]I$:[139] I2[177]1 [167] I$[178][196](I2)[170]I$ 11030 [139] I1 [167] I$[178]" COS"[170]I$:[139] I1[177]1 [167] I$[178][196](I1)[170]I$ 11040 [142] 11900 [143] NIPPON NUMBER 12000 [143] QUIT QUERY 13000 [158] AD[170]18,240: [143] SAVE SCREEN W/O "QUIT?" IN 240 13010 [158] AD[170]15,11,27,8,16,160,2 13020 [158] AD[170]24,13,10," Q U I T" 13030 [158] AD[170]24,13,12,"ARE YOU SURE?" 13040 [158] AD[170]24,13,14," Y / N" 13050 [158] AD[170]15,12,26,9,15,255,10[170]128 13060 : 13100 [158] AD[170]45,"YN":[158] AD[170]21,240:[142] 20000 [143] DATA 21000 [131]"VALRND(null) + AND",GASOLINE,"VALRND* EXP (null)RND",GARAGE,"VALRND/ AND",GALLON,"(null)RND* EXP ASC",BRAKE 21010 [131]"(null) ATN SPC(",TIRE,"LEN AND (null)RNDAND",ENGINE,"(null)LEN EXP AND",CHAIN,"(null)RND(null)",BUS 21020 [131]"(null) (null) -",HOTEL,"MID$ AND (null)RNDATN (null)",SANDWICH,"(null) EXP (null)LOG",SOUP 21030 [131]"(null) / +",CELERY,"(null)RND(null) (null)",BANANA,"* FN AND",LEMON,"STR$ * AND (null)RND",ORANGE 21040 [131]"(null) TAB( (null)",TOMATO,"(null) - CHR$",MILK,"TAN ATN (null) CHR$ + EXP TAB(",ICE CREAM,"(null) EXP (null)RND",CHEESE 21050 [131]"CHR$ + (null) (null) (null)",CHRISTMAS,"(null) CHR$ (null) ATN",NECKTIE,"(null)RNDEXP RIGHT$ AND",BACON,"(null)RND(null) EXP",BUTTER 21060 [131]"(null)LOG(null)RNDSPC( (null)",PAJAMAS,"TAN (null) (null)LOG+ AND",ASPIRIN,"MID$ AND CHR$RNDSTEP (null)",SUNGLASSES,"(null)LOGAND",PIN 21070 [131]"(null) ATN (null)LOGSTEP ATN (null)",TYPEWRITER,"(null)RND(null) AND",BUTTON,"VAL TO STEP",CAMERA 21080 [131]"(null)THEN EXP ATN AND VALRNDTAB(",CHEWING GUM,"RIGHT$ EXP (null)",COAT,"(null) TAB(",HAM,"ATN AND ASC",INK 21090 [131]"(null) NOT RIGHT$ * EXP (null)",CHOCOLATE,"(null)LOGTAN (null)",PIANO,"(null) AND (null)",TENT 21100 [131]"LEN * (null)RNDEXP (null) EXP",ELEVATOR,"(null) AND LEFT$ (null)",HANDKERCHIEF,"(null) EXP (null) (null)",TOAST 21110 [131]"CHR$RND* EXP (null)LOG (null) - EXP (null)",GRAPEFRUIT,"STEP ATN STR$ AND",LION,"* ATN AND RIGHT$ EXP (null)",RAINCOAT 21120 [131]"* (null) (null) STEP AND",RESTAURANT,"(null) * (null)RND(null) NOT AND",TELEVISION,"CHR$ + TAB(",CREAM 21130 [131]"TAN RIGHT$ (null)RNDSTR$ AND",ACCORDION,"TAN (null) (null)LOGSTEP VALRND(null)",ASPARAGUS 21140 [131]"TAN - (null) (null) THEN TAB(",ALUMINUM,"RIGHT$ RIGHT$ TAN",COCOA,"(null) STR$ -",TOWEL 21150 [131]"(null)RNDAND (null)",DANCE,"(null)LOGATN (null)LOG",PIPE 21160 [131]"(null)LOG(null) +",PARSLEY,"(null)RND- RIGHT$ (null) ATN",BALCONY,"(null) EXP (null) * EXP (null)RND",MARMALADE 21170 [131]"TO / AND",MELON,"* AND (null)",LENS,"(null) ATN (null) CHR$ STEP (null)RND",NIGHTCLUB 21180 [131]"STR$ EXP LEFT$ EXP",OK,"MID$ / AND",SALON,"(null) /",HERO 21190 [131]"(null)RNDAND (null) (null) EXP -",DANCE HALL,"(null)RNDEXP (null) AND (null)RNDEXP",BARTENDER 21200 [131]"(null) EXP (null)RND",SODA,"STR$ TAB( * (null)",OMELET,"(null)RNDAND (null)RNDSPC( EXP LEN EXP -",GINGER ALE 21210 [131]"VAL (null) (null) EXP (null)RND",CUSTARD,"(null) (null) (null)",TENNIS,"VAL EXP (null)RNDAND (null)LOGEXP (null)LOGEXP",CARBON PAPER 21220 [131]"STR$ EXP (null) (null) EXP -",OATMEAL,"(null)RND* (null)",DRESS,"(null)RND(null) / EXP (null)RND",BATHROBE 21230 [131]"(null) LEN EXP (null) EXP",SWEATER,"TO EXP (null) -",METER,"(null)LOGAND CHR$",PINK 21240 [131]"(null)RNDLEFT$ (null)",BUCKET,"(null)RNDEXP VAL",BARK,"^ (null) AND (null) AND",WASHINGTON 21250 [131]"(null) EXP (null) (null) AND CHR$RND",THEME SONG,"(null) * EXP (null) NOT AND",NARRATION 21260 [131]"(null)LOG/ (null)RNDTHEN EXP MID$ EXP",PRODUCER,"(null)LOG/ (null)RNDCHR$ (null) NOT AND",PRODUCTION 21270 [131]"ASC SPC( STEP CHR$ (null) EXP",CHARACTER,"TAN (null) TOCLOSEEXP (null) NOT AND",ANIMATION,"(null)RNDEXP -",BEER 21280 [131]"(null) ATN (null)",KNIFE,"RIGHT$ - CHR$",CORK,"RIGHT$ - (null)RND CHR$ + EXP TAB(",COLD CREAM 21290 [131]"TAN - RIGHT$ EXP -",ALCOHOL,"(null)LOGEXP (null) (null) AND (null)",PERMANENT,"STEP ATN (null) EXP",LIGHTER 21300 [131]"(null) + AND (null)",FLINT,"RIGHT$RND- (null)",GOLF,"(null)RNDTAN (null) STEP",VANILLA 21310 [131]"CHR$ + EXP (null) AND CHR$RND",CLEANING,"VALRNDEXP (null)RND",GAUZE 21320 [131]"ATN AND (null) * EXP (null) NOT AND",INFLATION,"(null)RNDSPC( TAB(",JAM 21330 [131]"VAL EXP (null) EXP (null) NOT AND",CARNATION,"VAL (null) LEN EXP",CAFE,"ASC SPC( (null)RND*",CABARET 21340 [131]"(null) ASC EXP",SKI,"(null) (null) EXP (null)RND",STOVE,"(null)RNDMID$RNDEXP (null)",DESSERT 21350 [131]"(null)RNDATN STR$ + AND",VIOLIN,"(null) STEP AND (null)",FRANCE,"ATN (null) + EXP",ITALY 21360 [131]"(null) (null) EXP (null) NOT AND",STATION,"(null) CHR$ (null) EXP",TAXI,"CHR$RND+ (null)",GREASE 21370 [131]"(null) SPC( ^ EXP",SHOWER,"(null) STEP AND CHR$",TRUNK,"(null) STR$ EXP CHR$",FORK 21380 [131]"(null) EXP (null)RND-",TABLE,"PEEK ATN (null) ASC EXP",WHISKEY,"(null)RNDSTEP AND (null)RNDEXP",BRANDY 21390 [131]"TAN ATN (null) (null) LEFT$ EXP (null)",ICE SKATE,"(null) (null) (null) EXP",MATINEE 21400 [131]"(null)RND(null) (null) ASC",BEEFSTEAK,"(null)LOGAND",PEN 21410 [131]"(null)RND-",BELL,"(null)RND- (null)",BELT,"(null)RNDEXP (null)",BOAT 21420 [131]"(null)RNDEXP -",BALL,"* EXP (null)",LACE,"CHR$ + (null) (null) (null) VAL EXP (null)RND",CHRISTMAS CARD 21430 [131]"(null) SPC( EXP (null)RNDSTEP (null)",HAIR BRUSH,"(null) EXP (null)",SAUCE,"STR$ (null)LOGSTEP",OPERA 39999 : 40000 [143] 40020 [151] 56,160:[146] 203,64:[151] 655,72:[151] 656,235 60000 A$[178]"HELLO CONNECT":[129]I[178]8[164]9:[160]2:[159]2,I,2:[160]2:[139]ST[167]60020 60010 [160]15:[159]15,I,15,"R0:"[170]A$[170]"="[170]A$:[132]15,ER:[160]15:[139]ER[178]63[167]60030 60020 [130]:[153]"LOAD":[151]186,8:[128] 60030 Q$[178][199](34):[151]646,[194](53281):[153]"LOAD" 60040 [153]"LOADP(null)2048,0:P(null)44,8:P(null)43,1:P(null)56,160:P(null)55,0:CLR:L(null)"Q$A$Q$","I 60050 [153]"RUN:":[151]631,13:[151]632,13:[151]198,2:[128]