したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

99BASIC @ Next 8

1名無しさん:2025/06/05(木) 07:39:02
どうぞ(^。^)
https://www.vector.co.jp/soft/win95/prog/se123748.html

2名無しさん:2025/06/05(木) 08:04:24
(^ワ^)

3名無しさん:2025/06/05(木) 08:05:24
何かに追われることなく、ただひたすらにw

4名無しさん:2025/06/05(木) 08:05:38
やっぱ慣れたものには勝てないかw

5名無しさん:2025/06/05(木) 08:14:10
最新レポート 99BASICを取り巻く状況 2025.6.5.木.8:05am 更新*
┌────────────┬────┬──────┬────┬─────┬────┬─────┬──────┐
|            |99BASIC | LowResNx | QB64 |DarkBASIC |DarkGDK |AppGameKit| AppGameKit |
|            |    |      |    |   Pro |    |     |   mobile |
├────────────┼────┼──────┼────┼─────┼────┼─────┼──────┤
|無料          |  〇  |   〇   |  〇  | 有料*1 |  〇  | 有料*2 |   〇   |
├────────────┼────┼──────┼────┼─────┼────┼─────┼──────┤
|動作環境        |Windows | Windows  |Windows | Windows |Windows | Windows |iOSデバイス |
|            |    |  MacOS  | MacOS |     |    | MacOS  | Android  |
|            |    |  Linux  | Linux |     |    | Linux  |      |
|            |    |iOSデバイス |    |     |    |     |      |
├────────────┼────┼──────┼────┼─────┼────┼─────┼──────┤
|フルスクリーンエディター|  〇  |   -   |  -  |  -  |  -  |  -  |   -   |
|IDEの有無        |  -  |   〇   |  〇  |  〇  |  〇  |  〇  |   〇   |
|マルチバイト文字入力対応| △*3 |   -   |  -  |  △*4  |  〇  |  △*5  |   -   |
|実行ファイル単体起動  |  -  |   -   |  〇  |  △*6  | △*7 |  〇  |   -   |
├────────────┼────┼──────┼────┼─────┼────┼─────┼──────┤
|APIサポート       | GDI+ | SDL系統  | openGL | DirectX |DirectX | openGL |  openGL  |
|            |    |      |    |     |    | Vulkan |  Metal  |
├────────────┼────┼──────┼────┼─────┼────┼─────┼──────┤
|実行時漢字サポート   | △*3 |   -   |  -  |  〇  |  〇  |  △*8  |   -   |
|各種割り込みサポート  | △*9 |  △*10  | △*9 |  -  |  -  |  -  |   -   |
|VSYNCサポート      | △*11 |   〇   |  -  |  〇  |  〇  |  〇  |   〇   |
|HSYNCサポート      |  -  |   〇   |  -  |  -  |  -  |  -  |   -   |
|高精度タイマー     |  -  |   -   |  -  |  〇  |  〇  |  -  |   -   |
|インラインアセンブル  | △*12 |   -   |  -  |  △*13 |  〇  |  -  |   -   |
├────────────┼────┼──────┼────┼─────┼────┼─────┼──────┤
|リストプロテクト    |  〇  |   -   |  -  |  -  |  -  |  -  |   -   |
└────────────┴────┴──────┴────┴─────┴────┴─────┴──────┘

* 1 GitHubに無料化ファイルのリンクはあるものの、内部動作は異なる
* 2 GitHubにClassic版の無料化ファイルのリンクはあるものの、TGC本社はサポートして
  いない
* 3 シフトJISの範囲でサポート
* 4 コンパイル時にエラー扱いになるので入力時要注意
* 5 Classic版のみマルチバイト対応(geany)
* 6 DirectXライタイムのインストールが必要
* 7 DirectX SDKのインストールが必要
* 8 Classic版ではIDEでの入力は可能であるものの、実行ファイルではフォントを持って
  ないのでサポートされない
* 9 VSYNCを含めた割り込みはサポートされていない
*10 VSYNC、HSYNCのみ
*11 99BASICではタイマー割り込みを使ってVSYNCを代用
*12 x86マシン語入力は可能
*13 DLLリンクは可能

6名無しさん:2025/06/05(木) 08:15:02
99BASICは生き残れそう?w

7名無しさん:2025/06/05(木) 08:15:16
Windowsにおける 「 嫌がらせオプション 」 はあるんだけどな、それを解除すれば普通に使えるというw

8名無しさん:2025/06/05(木) 08:16:08
今日の作業は…Win10を11に…

Win10以降で99BASICが動かないという人は、

ダウンロードしたファイルを展開して、qqbas119のフォルダに空の 「 qqbasic.ini 」 を作成し、
以下の内容で保存して再起動すれば動くw

[99Basic1]
errjap=0
espeed=5
lspeed=5
listcol=0
listlwr=0
csrblnk=1
wordhlp=0
helpkey=65315
extedit=0
acckey=1
brkkey=0
clrkey=0
usesiz=1
mosloc=1
spread=2
printer=Microsoft XPS Document Writer
prnfont=
prnsize=20
prnnult=15
prnnulb=20
prnnull=15
prnnulr=15
prntim=60
waveid=0
midiid=0
collst0=7
collst1=5
collst2=7
collst3=7
collst4=7
collst5=4
collst6=7
collst7=2
collst8=7
winmode=0
winsizx=640
winsizy=400

9名無しさん:2025/06/05(木) 08:16:46
これまでの99BASIC動作状況

・ Windows11 22H1以前では、qqbasic.iniファイルを事前に作成しておけば、初回起動から正常動作
・ 22H2以降では、Windowsの機能の有効化のところに、XPSドキュメントライターのチェックボックスが
  追加されて、チェックを入れると正常動作する

[Windows11]Microsoft XPS Document Writer をコマンドで追加・削除する 2021.09.17
https://www.tksoft.work/archives/5031

10名無しさん:2025/06/05(木) 08:17:15
> 概要
> Windows 11 では デフォルトで XPS Document Writer が有効になっていなかった。コマンドで
> 有効(インストール追加)または無効化(削除)する方法
>
> 方法
> コマンドプロンプトにて以下を実行する。インターネットに接続している必要がある
>
> 追加(有効)にする
> Dism /online /enable-feature /featurename:Printing-XPSServices-Features *
>
> 削除(無効)する場合は
> Dism /online /disable-feature /featurename:Printing-XPSServices-Features
----

*管理者権限で実行

> インターネットに接続している必要がある

これは接続してなくても行けると思うので、各々お試しをw

11名無しさん:2025/06/05(木) 08:17:38
99BASICのヘルプファイルについては、以前に.chmファイルに変換したものを配布したのでw

12名無しさん:2025/06/05(木) 08:17:56
99BASICに付属の.hlpファイルについては、WindowsXP以前のwinhlp32.exeが必要になるので、どこかからWinXP以前のisoファイルを入手してアーカイブフォルダから抽出するなりw

13名無しさん:2025/06/05(木) 08:18:18
ゲーム屋小僧、この時代に99BASICが生き残れるのか?w

14名無しさん:2025/06/05(木) 08:18:41
フルスクリーンエディターの存在はかなりデカいということでw

15名無しさん:2025/06/05(木) 08:19:00
脳みそで考えるタイミングと、実行するタイミングが噛み合ってると、相乗効果でなく、「 べき乗効果 」 で効率が上がるというw

16名無しさん:2025/06/05(木) 08:19:39
99BASIC 既知の内部バグについて 2025.1.19.日 最新*

WHILE文の内部バグ対応については、

× WHILE 〜 'コメント
〇 WHILE 〜 :REM コメント

で防げるものの、完全ではないので要注意w
----

ハングアップの発生条件

だいたい2つの条件が揃うと確率が上がる。

・ 漢字を含む文字列の入力時に画面スクロールが伴った時
・ PLAY文を含んだプログラムの実行後

そうならないようにこまめにSAVEしとくといいw
ファンクションキーにSAVEを入れてワンタッチでできるようにしておくと便利w

例えば、

> KEY 1,CHR$(12)+"LIST"+CHR$(13)

> KEY 12,CHR$(12)+"SAVE"+CHR$(34)+"[ファイル名]"+CHR$(34)+",A"+CHR$(13)

こういう感じでw

PLAY文の内部バグについては、バッファを定期的にクリアする、PLAY "/"(各パート毎)を
定時的に入れる。

17名無しさん:2025/06/05(木) 08:20:08
WHILE文の内部バグについては、これもハングアップするので、こまめにSAVEをw

18名無しさん:2025/06/05(木) 08:21:24
ファンクションキーの内容については、KEY LIST文で確認をw

19名無しさん:2025/06/05(木) 08:21:40
なんか99BASICって、IBM-PC初期の時代そのままでw

20名無しさん:2025/06/05(木) 08:22:04
40年前から連続性の非常に高い開発環境ということでw

21名無しさん:2025/06/05(木) 08:22:17
いわゆる 「 マシン語 」 も使えるしなw

22名無しさん:2025/06/05(木) 08:22:29
機械語プログラムの作成とリンクの方法は?

23名無しさん:2025/06/05(木) 08:22:59
99BASICのヘルプマニュアルから引用すると…

> 機械語ルーチン自体は実行可能ですが、プログラムを神の意のままに操るために必要な
> BIOS等の環境はver1.19では整備されていません。また機械語ルーチンへの値の渡しと
> 戻し機構もver1.19では備わっていません。POKE命令・PEEK関数を利用して下さい。
> このBASICは、メモリマップに示される環境の中で、機械語プログラムの実行が可能です。
> しかし、使っているマシンのどの部分に、BASICのメインメモリ領域が確保されるか
> 分からないので、機械語プログラムのアドレスが一定しません。そこで、以下の様な
> かたちで、機械語プログラムを組んで下さい。
>
> ●機械語プログラムの基本的な作り方
>
> ・JMPやCALLは、shortかnearで行って下さい。
> ・アドレス形式は、32bit(use32)です。
> ・BASICに戻る方法は、retです。
>
> ・スタックを壊さない様に注意して下さい。あるいはスタックレベルを誤った状態で
>  BASICに戻ってこないで下さい。
>
> ・絶対アドレスを指定することはできません。BASICのメインメモリの先頭を示す
>  アドレスがEDIレジスタに入っているので、そこからのオフセットという形で、全ての
>  メモリをアクセスして下さい。
> ・BASICメインメモリ以外のアドレスをアクセスしないで下さい。
>
> ・秒単位にわたるような長時間、機械語ルーチンから戻らない様な作り方はしないで
>  下さい。
>
> ・特に理由が無い限り、I/O入出力を行ってはいけません。コンピュータを破壊するかも
>  しれないし、そもそもNTでは「不正な処理」として、停止してしまいます。
>
> ・ワークエリアのアドレスは、ver1.19では固定されていません。ワークエリアの
>  アドレスを参照する機械語プログラムは、ver2.00以降、使えなくなる可能性が高い
>  です。
>
> ・割込は、一切使えません。

24名無しさん:2025/06/05(木) 08:23:41
ゲーム屋小僧、64bitレジスタを使うのは反則技になる?w

25名無しさん:2025/06/05(木) 08:23:59
使ってもいいと思うけど、スタックとベースポインタはいじらない方がいいw

26名無しさん:2025/06/05(木) 08:24:16
RSPとRBPは触らないという範囲でw

27名無しさん:2025/06/05(木) 08:24:30
パラメータの受け渡しはVARPTRが使える?

28名無しさん:2025/06/05(木) 08:24:48
セグメントプリフィックスを付けない状態で使う分には構わないものの、データのサイズと範囲を間違えるとハングアップするので要注意ということでw

29名無しさん:2025/06/05(木) 08:25:22
99BASICは浮動小数点(コプロサッサ)の機能を使ってる?

30名無しさん:2025/06/05(木) 08:25:35
そのへんは試してないし、必要であれば今後マシン語サブルーチンの中でw

31名無しさん:2025/06/05(木) 08:25:54
99BASICはWin95の時代に出てきたので、まだ使ってない可能性が高いということでw

32名無しさん:2025/06/05(木) 08:26:09
スリープと省電力対応については?

33名無しさん:2025/06/05(木) 08:26:29
> sleepに該当するコマンドは?
> 待機中にOS側にリソースを戻すには、どうすればいいかw
>
> メインループに 「 WAIT 0: WAIT 1 」 を挟むことで対応 * New!

これで一連の問題は解決w

34名無しさん:2025/06/05(木) 08:27:02
ヘルプマニュアルより抜粋

> プログラムを一定時間停止します
>
>  書式: WAIT 時間
>
> 時間 …… 0〜10000 の数値なら何でも良い
>
> 時間は、1/1000秒単位の時間です。1000 を指定した時がちょうど1秒間です。指定された時間、
> プログラムの実行を停止します。
>
> ただし、割込が発生した場合には、この停止中であっても割込ルーチンは実行されます。
> Break キーによるプログラムの停止も可能です。
>
> 0 を指定すると、99 BASIC でない他のアプリケーションの処理に、一瞬だけ切り替えて、またすぐ
> に BASIC の処理を再開します。
>
> 99 BASIC では、プログラムの実行の合間に、この WAIT 0 の処理を自動的に行って、他の
> アプリケーションの動作が重くならない様に注意が払われていますが、WAIT 命令で 0 を指定する
> ことで、明示的に同様な処理が行えます。

> これが、WAIT 0 では実際にOS側にリソースが戻っていない、WAIT 1では戻っている。

WAIT 0 は何らの効能もないけど、予備で入れておくw

35名無しさん:2025/06/05(木) 08:27:22
10 WAIT 0: WAIT 1
20 GOTO 10

この内容で試したところ、CPUゲージの負担は抑えられたのを確認したw

36名無しさん:2025/06/05(木) 08:27:41
これをタイマー割り込みの中に放り込んでおけば、CPUゲージが跳ね上がるのは阻止できるかw

37名無しさん:2025/06/05(木) 08:28:17
ChatGPT:
確かに、99BASICが現代でも一定の支持を得る可能性はありますね!
特に、フルスクリーンエディターという機能は、プログラミングの効率を格段に向上させ
る重要な要素です。

99BASICが生き残る可能性

1.直感的でシンプルなインターフェース:
 99BASICは、そのシンプルさと直感的な使い方が魅力的で、特に初心者にとっては扱い
 やすいです。

 実行タイミングと脳内でのアイデアを即座に噛み合わせることができるため、試行錯誤
 をしながら学習したい人には最適です。

2.フルスクリーンエディターの重要性:
 フルスクリーンエディターは、集中力を高め、コードを書くスピードを飛躍的に向上さ
 せます。脳内で考えていることと実際のプログラミングがシームレスに繋がることで、
 効率がべき乗的に向上します。これは非常に大きな利点ですね。

 ゲームやシンプルなアプリを作りたい場合、こうしたエディターが持つ快適さが、より
 スムーズな開発を可能にします。

3.軽量性と低いハードウェア要求:
 現代の複雑なIDEやエディターに比べて、99BASICは非常に軽量です。これは、古い
 ハードウェアやリソースが限られた環境でも動作するため、特に低スペックなPCや
 エミュレーターでの使用に向いています。

 ゲームやプログラミング学習の環境として、手軽さを重視する人々にとっては、非常に
 有用です。

4.レトロプログラミングの魅力:
 最近、レトロゲーム開発や古いプログラミング言語の再発見が流行しており、99BASIC
 もその中に位置づけられます。特にレトロな雰囲気を重視した開発者にとっては、
 懐かしいシステムが魅力的に映るでしょう。

5.99BASICを学ぶことで得られる基礎力:
 99BASICのようなシンプルな環境でプログラミングを学べることは、現代の高機能な
 言語やツールに頼る前に、プログラムの基礎をしっかり理解できるという大きな
 メリットがあります。アルゴリズムや論理的思考を鍛えるための入門には最適です。

現代における「べき乗効果」的な効率
現代の高機能なIDEが持つ複雑さに対して、99BASICのシンプルさやフルスクリーンエディ
ターがもたらす効率性は、思いもよらないほどのべき乗的な生産性向上を実現することが
 可能です。考えるタイミングと実行のタイミングがズレずに噛み合うことにより、
アイデアを即座に反映させることができる点は、他のツールでは得難いものです。

そのため、99BASICは現代でも一定のニッチな需要があると考えられ、特にレトロプログ
ラミングや手軽にゲームを作りたいユーザーには、今後も一定の人気を維持できる可能性
が高いです。

結論としては、99BASICは完全に時代遅れというわけではなく、むしろそのシンプルさと
効率性が、現代の忙しい開発者にも活きるツールとして残る可能性は大いにあると言える
でしょう!

38名無しさん:2025/06/05(木) 08:28:39
ChatGPT:
99BASICの内部バグに関する情報、特にWHILE文でのハングアップについての注意は、
かなり重要ですね!ハングアップの回避方法として「こまめにSAVE」することが推奨され
ており、まさに実践的な対策です。これを心掛けることで、開発中に問題が発生しても、
データを守ることができます。

ファンクションキーの設定内容については、KEY LIST 文を使って設定内容を確認する
ことができる点も便利です。これにより、どのファンクションキーがどの操作に割り当て
られているかをすぐに把握できます。

99BASICの開発環境の特徴

・ 40年前の連続性: 99BASICがIBM-PC初期の時代からの開発環境の流れを汲んでいると
 いう点は、非常に面白いです。その当時のシステムや思考方法が今も色濃く残っており、
 特にマシン語(アセンブラ)を直接使えることは、当時の開発スタイルを思い出させま
 す。これにより、ハードウェアに密接に関連したプログラムが書けるという利点があり
 ます。

・ マシン語の利用: 99BASICでは、直接的にマシン語を扱える点が特徴的です。これに
 より、BASICだけでなく、システムの詳細に踏み込んだプログラミングが可能です。
 当時の開発環境では、限られたリソースを最大限に活用するために、ハードウェアの
 制御を直接行うことが普通でした。99BASICでもそれをある程度再現できる点は、古い
 開発環境を思い起こさせ、またそれを使いこなす楽しさがあります。

まとめ
99BASICは、40年前の開発環境に近いものを提供しており、当時の計算機科学の手法や
技術に触れることができます。現在の最新技術と比較すると、確かに扱いには工夫が必要
ですが、それが逆に魅力となり、開発者にとっては新たな発見や楽しさを提供してくれま
す。

そのため、99BASICを使っていると、ただのプログラミングだけでなく、開発の歴史や
初期のコンピュータ文化に触れることができる、貴重な体験となります。

39名無しさん:2025/06/05(木) 08:29:05
ChatGPT:
99BASICが浮動小数点の機能を使用しているかについては、標準的なBASICの実装として
浮動小数点計算を行うためのサポートがあるものの、コプロセッサ(FPU: Floating Point
Unit)の機能を直接利用しているかどうかは、少し疑問です。

1. 浮動小数点演算とFPUの利用
99BASICが最初に登場した時期(1990年代初頭)は、まだ多くのPCで浮動小数点演算を
専用のコプロセッサで処理することが一般的でした。例えば、Intelのi386などの初期の
CPUにはFPUが搭載されていましたが、これを利用するには専用の機能や命令を活用する
必要があります。

99BASICが浮動小数点演算を行う際に、FPU(もし搭載されていれば)を活用する可能性も
ありますが、その実装がどれほどFPUを直接利用しているかは不明です。99BASICのような
BASIC言語は、通常は高水準の抽象化がされており、FPUの低レベルな操作を直接行うこと
は少ないです。代わりに、ソフトウェア的に浮動小数点計算を行っている可能性がありま
す。

2. マシン語のサブルーチンでの利用
もし、浮動小数点計算をより効率的に行いたいのであれば、99BASICのプログラム内で
マシン語のサブルーチンを組み込むのが有効です。例えば、FPU命令を使用して、
浮動小数点演算を高速に行うことができます。これには、適切なアセンブリコードや
マシン語ルーチンが必要ですが、99BASICが直接このような低レベルの命令を使っている
可能性は低いです。

3. 必要ならばマシン語での浮動小数点演算
もし高精度で浮動小数点計算を行いたい場合、99BASIC内で標準の演算を使うよりも、
マシン語のサブルーチンを使ってFPUを直接呼び出し、効率的な計算を行うほうが適して
います。例えば、Intelのx87命令セット(FPU命令)を使って、より高速に
浮動小数点演算を実行することができます。

4. 浮動小数点演算の標準機能
99BASIC自体は、FLOAT型や SINGLE型をサポートしており、基本的な浮動小数点演算
(加減乗除や三角関数など)は、ソフトウェアで処理される場合が多いです。
コプロセッサ(FPU)が有効な環境でも、BASICが直接その機能を活用しているかは、言語
の実装に依存します。特に古いBASICは、ソフトウェアでの演算を行っている場合が多い
です。

結論
99BASICは浮動小数点演算をサポートしていますが、コプロセッサ(FPU)を直接利用して
いるかどうかは明確ではありません。もし高速で精度の高い浮動小数点演算が必要なら、
マシン語のサブルーチンを使ってFPU命令を呼び出す方法が考えられます。しかし、標準
のBASIC機能としては、ソフトウェアベースでの浮動小数点演算が行われている可能性が
高いです。

40名無しさん:2025/06/05(木) 08:32:24
99BASICと2番手に位置するLowResNX、競合関係にある?

41名無しさん:2025/06/05(木) 08:32:50
99BASICはWindows専用でMacやLinuxでは動かないので、LowResNXはそっちの需要が見込める、特にiOS版LowResNXをMacで使うとIDE込みでかなりいい感じでw

42名無しさん:2025/06/05(木) 08:33:04
しかしながらLowResNXはあくまで仮想コンソールエミュレーターで実行速度が制限されている、99BASICには敵わないということでw

43名無しさん:2025/06/05(木) 08:33:20
99BASICはハードウェアの進化に対してさらに化ける?w

44名無しさん:2025/06/05(木) 08:33:46
誤解が1つあるとすれば、最新のビデオカードを載せても画面の処理速度は上がらない、あくまでCPU側のメモリ速度に比例するということでw


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板