直線上に配置

N88BASIC: GPIB拡張命令


MS-DOS版N88BASIC(Ver1.0)
PC-9801-19用拡張機能 GPIB.EXE で使える機能一覧
※実機・マニュアル未所持につき未検証
直線上に配置
CMD DELIM
CMD DELIM=[0-3]
デリミタ指定
0 : CR+LF
1 : CR
2 : LF
3 : EOI (※)
※PRINT@,RBYTE,WBYTEでは最後に@を付加しないとEOIはTRUEにならない
例 CMD DELIM=3

CMD PPR (スレーブ)
CMD PPR=[0-2]
スレーブモード下でパラレルポートに対する応答モード指定
0 : 無応答
1 : 応答
2 : SRQ送信時に応答
例 CMD PPR=1

CMD TIMEOUT
CMD TIMEOUT=[0-255]
タイムアウト時間指定
IEEEステートメント開始から何秒でバスエラーとするかを0 - 255で指定
0はタイムアウトチェック無し
例 CMD TIMEOUT=30

INPUT@ (マスタ)
INPUT@[アドレス] (, [リスナアドレス]); 変数, 変数 ...
指定したトーカから送信されるデータを受信し、変数へ代入
マスタモードでは頭のスペースと終わりのスペースは無視され、
255バイトを超えると次の文字変数へ代入される。
例 INPUT@1, 3; A$, B$, C$

INPUT@ (スレーブ)
INPUT@ ; 変数, 変数 ...

IRESET REN (マスタ)
リモートイネーブル(REN)をFALSEで送出。

ISET IFC (マスタ)
ISET IFC, [整数]
インタフェースクリア(IFC)を送出
送出時間は[整数]×100マイクロ秒でデフォルトは1。

ISET REN (マスタ)
リモートイネーブル(REN)をTRUEで送出。

ISET SRQ (スレーブ)
ISET SRQ[@] [N]
SRQを送出。
@ : デバイスステータス送出と同時にEOIがTRUE
N : 省略の場合はシリアルポールされるまで待つ

LINE INPUT@ (マスタ)
LINE INPUT@[アドレス] (, [リスナアドレス]); 文字変数
指定したトーカから送信される文字列データを受信し、文字変数へ代入

LINE INPUT@ (スレーブ)
LINE INPUT@ ; 文字変数

ON SRQ GOSUB (コントローラ)
ON SRQ GOSUB 行番号
STQの受信による割込発生時に分岐する処理ルーチンを指定
処理ルーチンにはPOLLが含まれている必要がある
行番号が0で割込禁止。再度定義することで割込許可となる
(関連: SRQ)

POLL (コントローラ)
POLL [アドレス],数値変数 (; [アドレス], 数値変数)
シリアルポールイネーブル(SPE)を送出し、
相手からデバイスステータスを受信し数値変数に代入

PPOLL (マスタ)
PPOLL (PPU) (,[リスナアドレス1], [PPE1/PPD]) (,[リスナアドレス2], [PPE2/PPD])
パラレルポートの応答出力用ラインの割付
PPU : パラレルポールアンコンフィギュアを送出する

PRINT@ (マスタ)
PRINT@[リスナアドレス] (, [リスナアドレス]); [データ] (,[データ] ...) [@]
データをASCII文字列として送出
@ : EOIを有効

PRINT@ (スレーブ)
PRINT@ ; [データ] (,データ ...) [@]

RBYTE (マスタ)
RBYTE [コマンド] (, [コマンド] ...); [数値変数] (,[数値変数] ...) [@]
マルチラインメッセージを送出後、バイナリデータを受信
コマンドは0 - 255 (&H00 - &HFF)までのバイナリHEXで指定
@ : EOIを有効
(類似: WBYTE)

RBYTE (スレーブ)
RBYTE ; [数値変数] (,[数値変数] ...) [@]

SRQ (マスタ)
SRQ [ON/OFF/STOP]
サービスリクエスト(SRQ)の受信による割込の許可・禁止・停止
例 SRQ ON

WBYTE (マスタ)
WBYTE [コマンド] (, [コマンド] ...); [データ] (,[データ] ...) [@]
マルチラインメッセージを送出後、バイナリデータを送出
コマンドは0 - 255 (&H00 - &HFF)までのバイナリHEXで指定
@ : EOIを有効

WBYTE (スレーブ)
WBYTE ; [データ] (,[データ] ...) [@]

★関数

IEEE
IEEE(n)
GP-IBの状態を調べる関数。n=0-2,4-7

IEEE(0) : CMD DELIMの設定値
IEEE(1) : 初期状態
MSBより
7 - 6 : INT
5 : 0=マスタ, 1=スレーブ
4 - 0 : マイアドレス

※本体8連DIPで設定した値をそのまま表示している
SW1
1 - 2 : INT; ON-ON:0, ON-OFF:4, OFF-ON:5 OFF-OFF:6
3 : 1=スレーブ 0=マスタ
4 - 8 : 4をMSB, 8をLSBとするマイアドレス ON=0, OFF=1

ちなみにABCジャンパはABショートでROM有効、BCショートでROM無効

※29Kは10連DIPで-19の8連DIP1-8は29Kの10連DIP3-10に読み替える。
1 - 2 : DMA; ON-ON:0 OFF-OFF:3 (ON-OFF, OFF-ONは不明)


IEEE(2) : トーカ・リスナの状態および受信したインタフェースメッセージ
MSBより
7 : 1=LLO受信
6 : 1=GTL受信
5 : 1=DCL or SDC受信
4 : 1=GET受信
3 : 1=EOI受信
2 : 1=SPE受信
1 : 1=リスナがアドレスされている
0 : 1=トーカがアドレスされている

IEEE(4) : シリアルポール時にSRQ送出中の装置のデバイスステータス
IEEE(5) : シリアルポール時にSRQ送出中の装置のトーカアドレス
IEEE(6) : シリアルポール中に応答しない装置があった場合、そのトーカアドレス
IEEE(7) : パラレルポールを行い、得たデータバイト

STATUS
スレーブモード下でシリアルポールが行われたときに送出するデバイスステータス
MSBより、
7 : 拡張用汎用ビット
6 : 1=SRQ発信中; 
ISET SRQによりセット、シリアルポールを受けるとリセット
5 : 0=異常状態
4 : 0=動作中
3 - 0: 汎用ビット
直線上に配置

トップ アイコン