富士通 FM-7 デバッグ環境用にCLCDを取り付ける その2

Last Updated on 2014年5月19日 by kabekin

「FM-7に小型文字液晶を取り付けて遊ぶ方法」を忘れないようにメモっておきます。

HD44780のI/Oインタフェースはモトローラの68系用に設計されているということで、
FM-7やS1では制御信号のプログラミングは不要ということが分かりました。

文字液晶を初期化して、後はデータ用レジスタに文字をセットするだけで勝手に表示してくれます。

初期化方法のメモ
CLCD_INIT
F-BASICのPOKEを使った場合、最長の5msWAITを入れなくても、誤動作しませんでした。
(いくらBASICとは言え、5msはかからないと思うので、一応WAITは入れておいた方が良さそうです)

今回は、簡単にこんな感じで試しています。

100 '+++VAL&EQU
110 CURPOS=0 'カーソルPOS
120 CMD=&HFDFE: DAT=&HFDFF 'clcd port (SC1602)
130 '
140 '+++LCD INIT
150 POKE CMD,&H30: GOSUB350 '8bitモード
160 POKE CMD,&H30: GOSUB350 '8bitモード
170 POKE CMD,&H38: GOSUB350 '8bitモード&2ギョウ
180 POKE CMD,&H08 'text off
190 POKE CMD,&H0D 'text on&ブロックカーソル
200 POKE CMD,&H06 'カーソルset
210 POKE CMD,&H01 'cls&home
220 '
230 '+++CHAR OUT
240 FOR I=0 TO 255
250   READ A$: H=VAL("&H"+A$)
260   IF H=&H04 THEN 320 '&H4=flexデリミタ
270   IF H=&H10 THEN IF CURPOS>16 THEN CURPOS=0: POKE CMD,&H80 :GOTO 310
275   IF H=&H10 THEN IF CURPOS<17 THEN CURPOS=17: POKE CMD,&HC0: GOTO 310
280   IF CURPOS=16 THEN POKE CMD,&HC0 '1ギョウメ
290   IF CURPOS=32 THEN CURPOS=0: POKE CMD,&H80 '0ギョウメ
300   PRINT CHR$(H);: POKE DAT,H: CURPOS=CURPOS+1
310 NEXT I
320 END
330 '
340 '+++WAIT
350 FOR I=0 TO 10: NEXT I: RETURN
360 '
370 '+++DATA
380 DATA 4B,41,42,45,4B,49,4E,28,B6,CD,DE,B7,DD,29,10,CC,DE,DB,B8,DE,20,46,4D,B0,37,04

垂れ流しで文字を表示する場合は、手動改行と17文字目で行目、33文字目で1行目の先頭に移動するだけでいい感じで動作します。

FLEXのアセンブラに移植しやすいように文字列のデリミタは$04にしています。
また、SC1602には改行が無いようなので$10を改行に見立てて270行目と280行目で改行します。
とりあえず、文字は表示できるようになったので安心^^;;

それにしても、拡張スロットを外部に取り出す基板の威力は絶大です。

オシロで信号を当たるのも楽々
DSC00556
もう一丁作ろうっかな~ それも蛇の目基板で・・・・

あまりにも簡単すぎて拍子抜けですが、何か見落としている可能性もあります。
問題なく動作しているので恐らく大丈夫だとは思うのですが・・・・

問題が発生したら、その都度考えながら弄ってみます^^;;;

次はType-EユニットとのI/O部の製作に取り掛かります
(ソフトはいつも後回し・・・・・・)

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください