アドレス | 入出力 | 説明 | 補足 |
---|---|---|---|
60H | 出力 | 11Pin I/Fの動作 PC-G850と同じ. |
- |
63H | 入力/出力 | UARTのフロー制御レジスタ PC-G850と同じ. |
- |
6CH | - | 無効? | PC-G850ではUARTモードレジスタ. |
6DH | - | 無効? | PC-G850ではUARTコマンドレジスタ. |
6EH | - | 無効? | PC-G850ではUARTステータスレジスタ. |
6FH | - | 無効? | PC-G850ではUART送受信レジスタ. |
70H | 出力 |
UARTモードレジスタ
ボーレート
割り込み |
PC-G850の6CHに相当する. |
71H | 出力 |
UARTモードレジスタ
データビット長
パリティ |
PC-G850の6CHに相当する. |
71H | 出力 |
UARTコマンドレジスタ
送信イネーブル
受信イネーブル
エラーフラグクリア
ソフトウェアリセット |
PC-G850の6DHに相当する. |
71H | 入力 |
UARTステータスレジスタ
送信データエンプティ?
受信データレディ
パリティエラー
受信オーバーライトエラー
フレーミングエラー |
PC-G850の6EHに相当する. |
72H | 入力/出力 |
UART送受信レジスタ |
PC-G850の6FHに相当する. |
73H | 出力 |
UARTハードウェアリセット
ハードウェアリセット |
1のままだと送受信できない. 0→1→0と出力すること. |
74H | 出力 |
UARTクロックイネーブル
UARTクロックイネーブル |
詳細は不明だが1にしないと送受信できない. |
9600baud, 8bit, パリティなしで通信するサンプルです. ターミナルソフトと通信してみてください. (データ受信の間隔が短いと受信できません. 実用的なものを作るには機械語で書く必要があります.)
100 'PC-G850V UART TEST
PC-G850V UART通信サンプル(コメントなし)
110 OUT &H60,2 'UARTモード
120 OUT &H74,1 'クロックイネーブル
130 OUT &H73,0 '|
140 OUT &H73,1 '+ハードウェアリセット
150 OUT &H73,0 '|
160 OUT &H70,&HD '9600baud,受信割込可
170 OUT &H71,&H4E 'SIOリセット,パリティなし,8bit
180 OUT &H71,&H10 'エラークリア
190 OUT &H63,0 'フロークリア
200 OUT &H71,&H5 '送受信イネーブル
210 OUT &H63,&H14 'DR,RS ON
220 *LOOP
230 X= INP (&H71) 'ステータス獲得
240 IF (X AND &H02)<>0 GOTO *RECEIVE '受信あり?
250 IF (X AND &H04)<>0 GOTO *SEND '送信可?
260 GOTO *LOOP
270 *RECEIVE
280 X$= CHR$ ( INP (&H72)) 'データ受信
290 PRINT X$;
300 GOTO *LOOP
310 *SEND
320 X$= INKEY$
330 IF X$="" THEN GOTO *LOOP
340 OUT &H72, ASC (X$) 'データ送信
350 GOTO *LOOP
比較用PC-G850 UART通信サンプル
100 'PC-G850 UART TEST
PC-G850 UART通信サンプル(コメントなし)
110 OUT &H60,2 'UARTモード
120 OUT &H6D,&H80 'SIOリセット
130 OUT &H6D,&H40 'エラークリア
140 OUT &H63,0 'フロークリア
150 OUT &H6C,&H0D '9600baud,受信割込可,パリティなし
160 OUT &H6D,&H30 '送受信イネーブル
170 OUT &H63,&H14 'DR,RS ON
180 *LOOP
190 X= INP (&H6E)
200 IF (X AND &H10)<>0 THEN GOTO *RECEIVE '受信あり?
210 IF (X AND &H04)<>0 THEN GOTO *SEND '送信可?
220 GOTO *LOOP
230 *RECEIVE
240 X$= CHR$ ( INP (&H6F)) 'データ受信
250 PRINT X$;
260 GOTO *LOOP
270 *SEND
280 X$= INKEY$
290 IF X$="" THEN GOTO *LOOP
300 OUT &H6F, ASC (X$) 'データ送信
310 GOTO *LOOP