フォト
2018年11月
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30  
無料ブログはココログ

« 2018年10月 | トップページ

2018年11月の3件の記事

2018年11月15日 (木)

豊四季Tiny BASIC for Arduino STM32で日本語フォント利用対応中(2)

前回からの修正、全角文字列を表示できるコマンドを追加しました。

表示している様子

01

プログラム

02

10 'OLED日本語表示デモ
20 @(0)=8,10,12,14,16,20,24
30 S="吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
40 L=LEN(S)
50 FOR J=0 TO 6
60 SETKANJI @(J):CLS 1:KANJI 0,0,STR$(S):WAIT 500
70 NEXT J
80 GOTO 50

KANJIコマンドで指定した座標に文字列を描画します。
  KANJI x,y,"文字列"
  KANJI x,y,STR$(文字列を格納した変数)

SETKANJIコマンドは、フォントサイズ等の設定を行います。

これで、簡単に全角文字列を描画出来るようになりました。
前回と同じことやってますが、プログラムがかなり短く出来ます。

OLED版では、CONSOLEコマンドにてプログラム編集画面をシリアルターミナルに
切り替えることが出来ます。
この場合でも、OLEDディスプレイへのグラフィック描画を行うことが出来ます。

2018年11月 7日 (水)

豊四季Tiny BASIC for Arduino STM32で日本語フォント利用対応中

先日作成した「Arduino用SJIS漢字フォントライブラリ SDカード版」を
豊四季Tiny BASIC for Arduino STM32に組み込んで日本語表示対応を試みています。

(現時点の修正案は下記のリンク先にまとめています。
  ttbasic_arduino_stm32のプロジェクトのissues#58にまとめています^^)

日本語表示が出来れば、簡単なアドベンチャーゲームが作成出来ると思います。


日本語表示表示の雰囲気は次のような感じです。

OLED版の表示デモ


プログラムソース

10 'OLED日本語表示デモ
20 @(0)=8,10,12,14,16,20,24
30 S="吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当がつかぬ。"
40 L=LEN(S)
50 FOR J=0 TO 6
60 Z=@(J):X0=0:X=X0:Y=0
70 CLS 1
80 FOR I=1 TO L
90 R=KFONT(MEM,ASC(S,I),Z)
100 BITMAP X,Y,MEM,0,Z,Z,1
110 IF (X+Z*2+1)>(GW-1) X=0:Y=Y+Z ELSE X=X+Z+1
120 IF Y+Z>GH-1 I=L
130 NEXT I
140 WAIT 500
150 NEXT J
160 GOTO 160

プログラムはKFONT関数で1文字ずつフォントデータを取得して表示しています。
フォントをSDカードから逐次参照して表示しているため、表示は遅いです。

表示専用のKANJIコマンドを追加予定です。
これを使えばもう少しプログラムが短くなり、表示も早くなると思います。

OLEDの他に、NTSC画面、TFT画面にも表示出来ます。


NTSCビデオ出力画面での表示デモ

プログラムソース

5 CONSOLE 0
10 CLS
20 S="日本語表示にほんご"
30 L=LEN(S):X0=0:X=X0:Y=30:@(0)=8,10,12,14,16,20,24
35 FOR J=0 TO 6
40 FOR I=1 TO L
50 R=KFONT(MEM,ASC(S,I),@(J))
60 BITMAP X,Y,MEM,0,@(J)/R,@(J),1
70 X=X+@(J)/R+0
80 NEXT I
90 X=X0:Y=Y+@(J)+10
100 NEXT J
110 GOTO 110

プログラムの日本語入力は、NTSC、OLED、TFT画面では入力出来ないため、
シリアル接続したTeraTermにて行います。

01


TFT版ではカラー表示に対応しています。

Dscn8965

2018年11月 4日 (日)

ESP-01モジュールにcpm8266を載せてみました

前回の続きです。

ESP8266がのっている安価なESP-01モジュールに無理やりcpm8266を載せて、
Z80 CP/M 2.2 エミュレータを動かしてみました。
前回試したESPr Developerは二千円近くするので、これで動けば大変お安いですね^^

ESP-01は、2、3前にAliexpressにて購入したのですが、
技適無しのため放置していました。

製品的には、sparkfunのWiFi Module - ESP8266 WRL-13678 と同じだと思われます。
(この製品と、ESP-01、ESP-01SでRESETピン等のプルアップ有り無しの違いがあるようです)

Dscn8954

フラッシュメモリの容量は1Mバイトしかなく、このままでは動かないので、
手持ちの4MバイトのフラッシュメモリW25Q32に置き換えてみました。
W25Q32はeBayで購入しました。

はんだ吸い取り線ではんだを吸い取りピンセットで横ひねりして取外せました。

Dscn8956

ちょっと幅が広いですが、乗っかりました。
WiFiは使わないので、アンテナ部をカットします。

Dscn8959

完成しました。
サイズも小さくなりました。

Dscn8962

USBシリアルモジュールにて書き込みを行いなす。
接続には一緒に買っていた、アダプターを使いました。

Dscn8961

結線表
04

cpm8266の書き込み
フラッシュメモリも認識されて、ちゃんと書き込めました。

02


CP/M の実行

結線を下記に修正し、

05

RESETはワイヤーの抜き差しでGND接続⇒切り離し
でリセットしました。あとで、ちゃんとタクトスイッチでリセットボタンをつけることにします。

起動出来ました。
マイクロソフトBASICも問題なく動作しました。

03

こんな、小さなモジュールでCP/M が動くのはすごいですね。

« 2018年10月 | トップページ