解説 制御用外部関数(USBCALL.BAS)
 EXTERNAL SUB POPEN
 IF UsbFind<0 THEN STOP
 END SUB
 
 EXTERNAL SUB POUT(P,D)
 IF USBOUT(P,D)<0 THEN STOP
 END SUB
 
 EXTERNAL FUNCTION PIN(P)
 LET R=UsbInp(P)
 IF R<0 THEN STOP ELSE LET PIN=R
 END FUNCTION
 
 EXTERNAL SUB PCLOSE
 LET R=UsbCose
 END SUB
 
 EXTERNAL FUNCTION UsbFind
 ASSIGN "CallHspUSB.dll","Usbfind"
 END FUNCTION
 
 EXTERNAL FUNCTION UsbInp(P)
 ASSIGN "CallHspUSB.dll","UsbInp"
 END FUNCTION
 
 EXTERNAL FUNCTION UsbOut(P,D)
 ASSIGN "CallHspUSB.dll","UsbOut"
 END FUNCTION
 
 EXTERNAL FUNCTION UsbClose
 ASSIGN "CallHspUSB.dll","UsbClose"
 END FUNCTION
◆USBデバイス初期化命令 最初に1回実行する
  MAINプログラムよりCALL POPEN で呼び出す
  関数UsbFindがエラーを返した場合は停止する

◆データ出力命令 Pはポート番号(0または1を指定),Dは出力データ
  ポート0のデータ範囲は0〜255,ポート1のデータ範囲は0〜15
  MAINプログラムよりCALL POUT(P,D) で呼び出す
  関数UsbOutがエラーをを返した場合は停止する
◆データ入力関数 Pはポート番号(0または1を指定),データは整数型
  ポート0または1を指定し、ポートからデータを読み込む。
  事前に呼び込むポートのビットに1を立てMAINプログラムより
  LET N=PIN(P)の要領で呼び出し値を返す
  関数UsbInpがエラーをを返した場合は停止する
◆USBデバイスを閉じる 最後に1回実行する
  MAINプログラムよりCALL PCLOSE で呼び出す

◇以下はCallHspUSB.dllを呼び出す手続き
◆SUB POPENから呼び出され、USB-IOを初期化する
  CallHspUSB.dllのUsbfind関数を呼び出し、戻り値は整数型
  呼び出し成功時は0、失敗時は−1または−2を返す

◆FUNCTION PINから呼び出され、指定したUSB-IOポートから値を返す
  CallHspUSB.dllのUsbInp関数を呼び出し、戻り値は整数型
  呼び出し成功時はポートの入力値、失敗時は−1または−2を返す

◆SUB POUTから呼び出され、指定したUSB-IOポートへ出力する
  CallHspUSB.dllのUsbOut関数を呼び出し、戻り値は整数型
  呼び出し成功時は0を、失敗時は−1または−2を返す

◆SUB PCLOSEから呼び出され、指定したUSB-IOを解放する
  CallHspUSB.dllのUsbClose関数を呼び出し、戻り値は整数型の0を返す
  

解説 MAINプログラムからのUSBCALL.BAS呼び出し例
CALL POPEN
LET S=0.2
FOR I=1 TO 10
 CALL POUT(0,0)
 WAIT DELAY S
 LET N=1
 CALL POUT(0,N)
 WAIT DELAY S
 DO
  LET N=N*2
  CALL POUT(0,N)
  WAIT DELAY S
 LOOP UNTIL N=128
NEXT I
CALL PCLOSE
END
MERGE "USBCALL.BAS"
 USBを初期化する
 休止時間を0.2秒にセットする
 FOR文の開始 Iが10になるまで、最初に現れるNEXTまでを反復する
 ポート0に0を書き込む
 休止する(0.2秒)
 変数Nに1を代入する
 ポート0にNを書き込む(N=1)
 休止する
 DO文の開始 最初に現れるLOOPまでを反復する
 変数Nに2をかけたものをNに代入する
 ポート0にNを書き込む(Nは毎回2倍になる)
 休止する
 LOO文 Nが128になるまで直前のDOへ戻る
 NEXT文 直前のFORへ戻る
 USBを閉じる
 プログラムを終了する
 サブルーチン"USBCALL.BAS"を動的にリンクする
(仮称)十進BASICサンプルプログラム ダウンロード(testprogram.lzh:3KB)
戻る