- 【QBASIC互換!?】FreeBasic【GPL】
669 :デフォルトの名無しさん[]:2016/09/18(日) 12:45:36.72 ID:a7cHaCPR - >>666 >システムハンガリアンを使うの
https://ja.wikipedia.org/wiki/%E3%83%8F%E3%83%B3%E3%82%AC%E3%83%AA%E3%82%A2%E3%83%B3%E8%A8%98%E6%B3%95 より、たぶん接頭語のことかな。 これは、Fotran 6, 77の頃から使っているもの、 I-N が整数、A-H, O-Zが実数より サブルーチンの引数名が大域変数名と同じな場合に、小文字のiをつける 保守用変数は、Zで始める が今も使っている(変数名を8文字程度以下に抑える動作試験ルーチンなどで)もの。 「str」等の3文字の変数は、マイクロソフトのサイトなどの内容のコピーで 下手に変数名を書き換えると動作しなくなるので そのまま、使っている。 V.B.のバージョンが6.0の為。 >>665 >Zcountの存在意味が分からない これは、保守用変数。 While-Wend, Do-Loop, For-Next 等のループ命令で、 ループ回数が想定外の回数発生した場合に、異常終了するためものも。 For I=1 to 10: I=1: Next I なんて、分量が多くなるとなかなか気が付かない誤記載が発生したときのもの。 >>664 >型が違うから、そりゃエラー出るわな Basic は型を多少間違えても、適当に直して解釈してくれる と思っていたから、機械語・スーパバイザー関連以外はチェックしないでいた。
| - 【QBASIC互換!?】FreeBasic【GPL】
670 :デフォルトの名無しさん[]:2016/09/18(日) 12:45:59.67 ID:a7cHaCPR - >>668
FreeBasic になって、Dim に初期値が規定できるようになったけど JIS-Basic では、規定していないので、不定の値が入る。 非実行文の宣言文を書いて、実行文で初期化する という慣習の名残。 Fotran 77等では、Const で初期値を入れて宣言の初期値を設定できるようになったが、 Const は定数という意味合いが強いので、使っていなかった。 定数で変更を認めない場合は(命令語忘却)を使っていました。 >>667 If Open(IniFile, For Output, As #FileNoLong) Then この構文は知らなかった。
| - 【QBASIC互換!?】FreeBasic【GPL】
674 :デフォルトの名無しさん[]:2016/09/18(日) 21:13:04.36 ID:a7cHaCPR - >>671
>別のアプリケーションが専有するメモリや未定義のメモリ領域を参照して インテル系CPUの特徴なんだよな。 マルチタスク用CPUだと、メモリー保護用レジスタがあってデータ領域しか読み書きができないようになっている。 しかし、インテル系はシングルタスク用なので、この手の保護レジスタが存在しない。 多分、インテルが特許を持っていないので、使えないんだと思う。 8086の頃から8080の拡張だからと言われていること。 逆に言えば、 Int 21 53(だったかな)でシステム変数のES:DIを入手して、システム変数を直接参照していたソフトがあった。 MS-DOS 3 → 5の変更で、BYTE変数がWORDになって、データがずれて、この手のソフトが全滅したときがあった。 システム変数を読み取りし放題だから、いろいろなことができる というのも、 インテル系CPUの特徴。先頭アドレスの割り込みテーブルの一部に全レジスターの出し入れが可能で、頻繁に実行するようになったので、領域が重なる部分が使われなくなったとか、聞いている。 割り込みテーブルなんてユーザー(システム以外のタスク)が操作してはいけないものなんだけど、ここをユーザーが操作することで多くのソフトが作られている。 >>672 、>動いてる? 動かなかった。ZString でAPIを参照すると、NULで切れてしまう。 String で警告エラーを見ながら、参照するしかないみたい。 ライブラリーのに互換のために作成するけど、 セクション名キー名一覧は、ネスケ社がMS社に対して公開を求めた60個ぐらいの非公開参照だったと思う。 だから、通常の使用では直接指定するので使わないけど、芋蔓状に子プロセスを使った複数のタスクの同期には使わざるを得ない。 今のところ使うけど、近い将来、パンチラに戻すなり、新規に作成するなりする予定。 今のパソコンは、メモリーを気にしなくても済む(リージョンの壁、48KB, 32KB, 64KB, 640KB, 720KB, 16KBの壁が実質的にない)ので 20-30KBのファイルだったらば全部読み込んで、主記憶に保存して、主記憶をバッファ記憶の代わりに使うという手法が使える。 外部記憶に保存し続けるパンチラではなく、他の方法に変更するかもしれない。
|
|