OUT命令は使えますか?
Re: OUT命令は使えますか?
セントロニクス・コネクタってパラレルポート(プリンタポート)のことですよね?
OUT命令の詳細がわからなかったので旧AB2.62のヘルプより拝借。
パラレルポート・シリアルポートならWin32APIのCreateFile()、WriteFile()、ReadFile()を使えば扱えるみたいです。
詳しくは パラレルポート Win32API CreateFile 等をキーワードにググってみてください。いくつか出ると思います。
プログラムはこんな感じでしょうか?(注:テストしてません)
複数バイトを書き込んだとき(outBufをByte型配列として定義し、WriteFileの第3引数を変更)のポートの動作は自分で調べてください。
OUT命令の詳細がわからなかったので旧AB2.62のヘルプより拝借。
Out命令語 [ここをクリックすると内容が表示されます]
要するにOUT命令を実行したら単に1バイトのデータがポートへ出力されれば良いということでしょうか?Out port, databyte
port
ポート番号を指定します。
databyte
出力するデータ(1バイト)を指定します。
port
ポート番号を指定します。
databyte
出力するデータ(1バイト)を指定します。
パラレルポート・シリアルポートならWin32APIのCreateFile()、WriteFile()、ReadFile()を使えば扱えるみたいです。
詳しくは パラレルポート Win32API CreateFile 等をキーワードにググってみてください。いくつか出ると思います。
プログラムはこんな感じでしょうか?(注:テストしてません)
[ここをクリックすると内容が表示されます]
読み込みはReadFile()を使います。ABのヘルプにも載っています。コード: 全て選択
Dim hFile As HANDLE
Dim outBuf As Byte
Dim dwAccessed As DWord
'ポートオープン
hFile = CreateFile(
"LPT1", 'LPTポート番号(文字列で指定)
GENERIC_WRITE, '書き込みアクセス権(出力だから)
0, '非共有(ポート占有)
ByVal 0, '不使用
OPEN_EXISTING, 'ポートが存在する時のみオープン
FILE_ATTRIBUTE_NORMAL,
0
)
'出力
outBuf = &H55
WriteFile(hFile, VarPtr(outBuf), 1, VarPtr(dwAccessed), ByVal 0)
'ポートクローズ
CloseHandle(hFile)
複数バイトを書き込んだとき(outBufをByte型配列として定義し、WriteFileの第3引数を変更)のポートの動作は自分で調べてください。
I/Oを直に叩くならアセンブリ言語でやった方がずっと速いんじゃないかなと思う。
ただし、ABにはインラインアセンブラは付いていない。
ただし、ABにはインラインアセンブラは付いていない。
Website→http://web1.nazca.co.jp/himajinn13sei/top.html
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。
ここ以外の場所では「暇人13世」というHNを主として使用。
に署名を書き換えて欲しいと言われたので暇だしやってみるテスト。