tonecheck01

 

VRC7ベーシック専用 英数字フォント変更プログラム

 

BASICのPOKE文ではインタープリタの割り込みが介入してしまうため、

マシン語ルーチンで直接PPUにアクセスしています。

フォントは1色のため1文字につき8バイト(リストでのDATA 1行分)で表現できます。

READ文で「FFFF」が読み込まれるまで繰り返されるので、

データを用意することでフォントのカタカナ部分を書き換えることも可能です。

 

 

 

10 '#######################
20 '#                     #
30 '#  VRC7 BASIC センヨウ     #
40 '#                     #
50 '#    フォント  ヘンコウ  プログラム   #
60 '#                     #
70 '#######################

100 CLS:CLEAR &H7EFF
110 AD=&H7F0A
120 READ D$:D=VAL("&H"+D$)
130 IF D<0 THEN 200
140 POKE AD,D:AD=AD+1
150 GOTO 120

200 POKE &H7F00,&H12
210 POKE &H7F01,&H10
220 AD=&H7F02
230 FOR I=0 TO 7
240 READ D$:D=VAL("&H"+D$)
250 IF D<0 THEN 400
260 POKE AD,D:AD=AD+1
270 NEXT
280 POKE &H0033,&H06
290 POKE &H2001,&H06
300 CALL &H7F12
310 GOTO 220

400 POKE &H0033,&H0E
410 POKE &H2001,&H0E
420 END

900 '===== マシンゴ  ル-チン  =====
910 DATA 00,00,00,00,00,00,00,00
920 DATA AD,00,7F,8D,06,20,AD,01
930 DATA 7F,8D,06,20,A2,00,BD,02
940 DATA 7F,8D,07,20,EE,01,7F,D0
950 DATA 03,EE,00,7F,E8,E0,10,D0
960 DATA ED,60,FFFF

1000 '===== フォント  デ-タ  =====
1010 DATA 18,18,18,38,00,38,38,00
1020 DATA 6C,6C,24,00,00,00,00,00
1030 DATA 24,FE,24,6C,6C,FE,6C,00
1040 DATA 30,FE,B0,FE,36,FE,30,00
1050 DATA C6,CE,1C,38,70,E6,C6,00
1060 DATA 3C,20,24,FE,E4,E4,FC,00
1070 DATA 38,18,30,00,00,00,00,00
1080 DATA 1C,30,60,60,60,30,1C,00
1090 DATA 70,18,0C,0C,0C,18,70,00
1100 DATA 10,54,38,10,38,54,10,00
1110 DATA 38,38,38,FE,38,38,38,00
1120 DATA 00,00,00,00,00,38,18,30
1130 DATA 00,00,00,7C,00,00,00,00
1140 DATA 00,00,00,00,00,38,38,00
1150 DATA 06,0E,1C,38,70,E0,C0,00
1160 DATA 7E,46,46,CE,CE,CE,FE,00
1170 DATA 18,18,18,38,38,38,38,00
1180 DATA FC,06,06,FE,C0,C0,FE,00
1190 DATA FC,0C,0C,7E,0E,0E,FE,00
1200 DATA 06,46,46,CE,CE,FE,0E,00
1210 DATA FE,C0,C0,FE,0E,0E,FE,00
1220 DATA 7C,C0,C0,FE,CE,CE,FE,00
1230 DATA FE,06,0E,0E,0E,0E,0E,00
1240 DATA 7C,4C,4C,FE,CE,CE,FE,00
1250 DATA FE,C6,C6,FE,0E,0E,0E,00
1260 DATA 00,38,38,00,00,38,38,00
1270 DATA 00,38,38,00,00,38,18,30
1280 DATA 1C,38,70,E0,70,38,1C,00
1290 DATA 00,FE,FE,00,FE,FE,00,00
1300 DATA 70,38,1C,0E,1C,38,70,00
1310 DATA FE,06,06,FE,E0,00,E0,00
1320 DATA 7C,42,9A,AA,BC,80,FE,00
1330 DATA 7C,4C,4C,FE,CE,CE,CE,00
1340 DATA FC,CC,CC,FE,CE,CE,FE,00
1350 DATA FE,C0,C0,E0,E0,E0,FE,00
1360 DATA FC,CC,CC,CE,CE,CE,FE,00
1370 DATA FE,C0,C0,FC,E0,E0,FE,00
1380 DATA FE,C0,C0,FC,E0,E0,E0,00
1390 DATA FE,C0,C0,EE,E6,E6,FE,00
1400 DATA 46,46,46,FE,CE,CE,CE,00
1410 DATA 0C,0C,0C,1C,1C,1C,1C,00
1420 DATA 18,18,18,1C,1C,1C,7C,00
1430 DATA CC,CC,CC,F8,CE,CE,CE,00
1440 DATA C0,C0,C0,E0,E0,E0,FE,00
1450 DATA FE,B6,B6,B6,B6,B6,B6,00
1460 DATA FE,C6,C6,CE,CE,CE,CE,00
1470 DATA FE,C6,C6,CE,CE,CE,FE,00
1480 DATA FE,C6,C6,FE,E0,E0,E0,00
1490 DATA FE,C6,C6,DE,DE,CE,FE,00
1500 DATA FE,C6,C6,FC,CC,CE,CE,00
1510 DATA FE,C0,C0,FE,0E,0E,FE,00
1520 DATA FE,18,18,38,38,38,38,00
1530 DATA C6,C6,C6,CE,CE,CE,FE,00
1540 DATA C6,C6,C6,CE,4C,7C,7C,00
1550 DATA B6,B6,B6,B6,B6,B6,FE,00
1560 DATA C6,C6,C6,7C,CE,CE,CE,00
1570 DATA C6,C6,C6,FE,1C,1C,1C,00
1580 DATA FE,06,06,7C,E0,E0,FE,00
1590 DATA 78,78,60,60,00,00,00,00
1600 DATA C6,6C,FE,18,FE,38,38,00
1610 DATA 00,00,00,0C,0C,3C,3C,00
1620 DATA 10,38,6C,C6,00,00,00,00
1630 DATA 00,00,00,00,00,00,FE,00
1640 DATA FFFF

 

 

 

Joomla templates by a4joomla