0
|
インターフェース・カード識別
戻り値は 66 。この値はHP98644の戻り値と同じです。
HP98626インタフェースとの違い:
1. 選択できる receiver/driver 線は存在しません。レジスター 7 はありません。
2. 構成/設定のためのスィッチは存在しません。
PCでは、デフォルトは 9600 baud, 8 bit, no parity となっています。
3. 物理的なコネクタは、RS-232-C 9または25ピンコネクタです。
|
1
|
割込みステータス
もしHPBASICコンピュータにプログラムを移植しようとするならば、
HPBASICでは、5〜0 までのビットが違った定義がされていることに気づいていると思います。
ビット5 と 4 のみを見て割り込み番号を得ることができ、3〜6 までの範囲の割込みを指定するためにエンコードされます。これはHTBasicでは発生しません。
ビット |
値 |
意味 |
7 |
128 |
Interrupts Enabled |
6 |
64 |
Interrupt waiting service |
5〜2 |
- |
Interrupt number, 0-15 |
1,0 |
- |
使用していません |
|
2
|
インタフェース動作状態
たとえいつファンクションコールが起こっても、HTBasicがハンドシェイクをやめるので、ビット 2 はこの実行でいつもゼロ(0)です。
ビット |
値 |
意味 |
7〜3 |
- |
使用していません |
2 |
4 |
Handshake in progress (always 0) |
1 |
2 |
Interrupts Enabled (ENABLE INTR) |
0 |
1 |
使用していません |
|
3
|
ボーレート(baud)
|
4
|
文字フォーマット(CONTROL 4 参照)
|
5
|
「ハードウェア・ハンドシェイク、アウトプト線の状態」(CONTROL 5 参照)
|
6
|
データの受信
受信バッファにある次の文字を読み込みます。読み込まれると受信バッファからなくなります。
受信バッファが空の場合、UART受信バッファの文字はもとのままに戻ります。
|
7
|
選択できる Receiver/Driver の状態
このインターフェイス上では、常にゼロ(0)となります。
|
8
|
割り込み許可 マスク
このレジスターは、ENABLE INTR ステートメントでセットされます。
ビット |
値 |
意味 |
7〜4 |
- |
使用していません |
3 |
8 |
Interrupt if Modem Status (register 11) changes |
2 |
4 |
Interrupt on error (register 10, bits 1 to 4) |
1 |
2 |
Interrupt if Transmit Holding Reg Empty |
0 |
1 |
Interrupt if data becomes available |
|
9
|
現在の割り込みの原因
ビット 0 がゼロ(0)の場合、割り込みは保留され、ビット 1 と 2 で理由/原因がわかります。 割込みは値によって優先付けられます。複数の割込みは保留中となるかもしれません。割り込みハンドラは繰り返しこのレジスターを読み込まなければなりません。そして、このレジスターが割り込みが保留中でないことを示すまで、各々の割り込みに対応します。また、どちらでもサービスがされる前に Data Available 割り込みがなにがしかのエラーが起きた割り込みによって続くならば後者のみ報告されます。
これはHPBASICとは違います。
もし両方の割込みを可能にし、Error 割込みが起こるならば、Data Available 割り込みに対し、レジスター 10 のビット 0 を使って、別途マニュアルチェックをして下さい。
ビット |
値 |
意味 |
7〜3 |
- |
使用していません |
2,1 |
6 |
Error Occurred (register 10, bits 1 to 4)(11)
|
|
4 |
Data Available (10) |
|
2 |
Transmit Holding Register is empty (01) |
|
0 |
Modem Status (register 11) changed (00) |
0 |
nbsp; |
1=No interrupt, 0=Interrupt pending |
割込みを処理するか、またはあった事をにとどめるのか、割り込み原因ごとに以下の確認対応を行ってください:
割り込み |
...で起こったことがわかる |
エラーが発生 |
STATUS register 10, UART Line Status
|
データ取り込み可能 |
SENTER or STATUS register 6, Data In |
Tx レジスターが空 |
STATUS register 9, Interrupt ID |
モデムの状態 |
STATUS register 11, Modem Status |
|
10
|
UART 線の状態
ビット |
値 |
意味 |
7 |
128 |
使用していません |
6 |
64 |
Transmit Shift Register Empty |
5 |
32 |
Transmit Holding Register Empty |
4 |
16 |
Break Detect |
3 |
8 |
Framing Error |
2 |
4 |
Parity Error |
1 |
2 |
Overrun Error |
0 |
1 |
Data Ready |
|
11
|
モデムの状態
ビット |
値 |
意味 |
7 |
128 |
Carrier Detect (CD) |
6 |
64 |
Ring Indicator (RI) |
5 |
32 |
Data Set Ready (DSR) |
4 |
16 |
Clear to Send (CTS)
|
3 |
8 |
Delta Carrier Detect |
2 |
4 |
Trailing Edge Ring Indicator |
1 |
2 |
Delta Data Set Ready |
0 |
1 |
Delta Clear to Send |
|
12
|
ハードウェア・ハンドシェーク・ステータス(インプット線)を返します。 (CONTROL レジスター 12 参照)
|
13
|
現在のデフォルト・ボーレート(baud rate)の値を返します。
|
14
|
現在のデフォルト・文字フォーマットの値を返します。
|
100
|
XON/XOFF が使用中か否かを値で返します。 1 - enabled, 0 - disabled.
|
101
|
レシーブバッファにある文字数の値を返します。
|
102
|
ある ISC に結びつけられた COM ポートを返します。
|