既に作っている人がいたと思うのですが、ちょっと思い立って絵文字エディタを作ってみました。
- 左上の8X8ドットが編集フィールドです。矢印キーでカーソル移動、スペースキーでドットON/OFF、BackSpaceキーで編集フィールドをクリア、Enterキーでプログラムを終了します。数字キーの1と2で編集対象の文字コードが切り替わります(224~255)。
- 作った絵文字とPOKE命令の行が下に表示されます。POKEの行は、自分でプログラムを作る時の参考にしてください。
- ドットをON/OFFした時点で文字データは書き換わっています。元に戻したい時は、プログラムを終了して「CLP」を実行してください。
プログラム
10 '*EMOJI EDITOR 20 CLV:CLS:C=224 30 GSB @VIEW 40 @LOOP 50 LC X,Y,1 60 K=INKEY() 70 X=X-(K=28)+(K=29):X=X&7 80 Y=Y-(K=30)+(K=31):Y=Y&7 90 Z=X+Y*8 100 IF K=32 GSB @DOT 110 P=C-(K=49)+(K=50):P=224+P&31 120 IF P!=C C=P:GSB @VIEW 130 IF K=8 GSB @CLR 140 IF K!=10 GOTO @LOOP 150 LC 0,21:END 160 @VIEW 170 LC 0 180 FOR J=0 TO 7 190 A=C*8+J 200 D=PEEK(A):M=128 210 FOR I=0 TO 7 220 B=(D&M>0) 230 IF B ?CHR$(1); ELSE ?"."; 240 M=M>>1 250 NEXT:? 260 NEXT 270 GSB @CHR 280 RTN 290 @CLR 300 FOR J=0 TO 7 310 A=C*8+J 320 POKE A,0 330 NEXT 340 GSB @VIEW 350 RTN 360 @DOT 370 A=C*8+Y 380 D=PEEK(A) 390 M=128>>X 400 D=D^M:B=(D&M>0) 410 IF B ?CHR$(1) ELSE ?"." 420 POKE A,D 430 GSB @CHR 440 RTN 450 @CHR 460 FOR J=0 TO 7 470 A=C*8+J 480 LC 0,11+J 490 ?"POKE #";HEX$(A);",`"; 500 D=PEEK(A):M=128 510 FOR I=0 TO 7 520 B=(D&M>0) 530 ?B; 540 M=M>>1 550 NEXT 560 NEXT 570 ?:?"?CHR$(";C;")" 580 LC 0,9:?CHR$(C) 590 RTN