はじめましてお願いします
プログラムがお粗末なのは重々承知ですが
機械語レベルでデータの読み書きをしたいです!!
AB4での方法を教えてください。
#N88BASIC
Dim A As long,B As long ,C As long,D As long
OPEN "C:\takarakuji.txt" FOR OUTPUT AS #1
FOR A=1 TO 30
FOR B=A+1 TO 30
FOR C=B+1 TO 30
FOR D=C+1 TO 30
PRINT #1,A,B,C,D
print A,B,C,D
NEXT D
NEXT C
NEXT B
NEXT A
CLOSE #1
高速化
画面への表示速度が遅いというのは事実です。マティ さんが書きました:> 自分もAB4から始めたので、ABに関しては初心者です!
>
> ABをコンパイルしても性能がインタープリタ系のBASICより遅い場合があるのは、文字列処理(String型)系とIfで条件式が複雑な場合だと認識しています。
>
> インタープリタ系の言語は、文字列等のチューニングが行われていますが、
> ABは返却用の文字列領域を必ず作成するので、オーバーヘッドがもの凄く大きいです。
>
> それ以上に気になる事があります。
> 画面に表示する速度が遅いのが問題なのでしょうか?
>
> 何が問題かを教えて下さい。
というのもActiveBasicが描画用に使っているビットマップに
デバイス依存型ビットマップを使っているからです。
この辺りを改良すればN88BASIC互換モードの描画速度はかなり改善する筈です。
DIBでビットデータを参照できるようにすれば
PeekとPokeでビットマップを描くことができるようなったりとか妄想してます。(笑
Re: 高速化
画面描画に関するエミュレーション方法がグラフィックをサポートする#N88BASICと、テキストのみ?の#consoleで大分異なっているようですね!
ディスプレイドライバーを256色固定で使用できるなら、パレットを使って高速にエミュレーションできますが・・・
多色対応になると、グラフィックとをテキストのビットマップを合成する処理に時間がかかってしまいます。
#N88BASICの高速化提案ですが、自分はDirectXに詳しくないので・・・
DirectVideoを利用して、表画面にテキスト、裏画面にグラフィックを描画してオーバーレイを行えばエミュレーションが#console並に高速になると思われます。
早い話が、文字の背景色に使用する色をオーバーレイ対象色にしてしまうって事です
また、複数の解像度のグラフィックや2画面サポートも出来たりして・・・
ディスプレイドライバーを256色固定で使用できるなら、パレットを使って高速にエミュレーションできますが・・・
多色対応になると、グラフィックとをテキストのビットマップを合成する処理に時間がかかってしまいます。
#N88BASICの高速化提案ですが、自分はDirectXに詳しくないので・・・
DirectVideoを利用して、表画面にテキスト、裏画面にグラフィックを描画してオーバーレイを行えばエミュレーションが#console並に高速になると思われます。
早い話が、文字の背景色に使用する色をオーバーレイ対象色にしてしまうって事です
また、複数の解像度のグラフィックや2画面サポートも出来たりして・・・