HN 日本語サマリー

← 一覧へ戻る
プログラミング

UEFIマシンで起動するBASICインタプリタを作成し、Windowsに移植した

I wrote a BASIC interpreter that boots on UEFI machines and ported it to Windows (tarjan.itch.io)

6 pointsby Gorsefound1 コメント

要約

開発者のTarjan氏は、UEFIマシン上で直接動作し、Windowsにも移植可能なGW-BASIC互換のBASICインタプリタ「Thoreau BASIC」を開発しました。このインタプリタは、従来の64KBメモリ制限を超え、大容量メモリを活用し、グラフィックスやファイルI/O、フルスクリーン編集機能などを備えています。

全文翻訳

Tarjan氏によるThoreau BASIC Thoreau BASICは、ベアメタル(Windowsバージョンもあり)で動作するGW-BASIC互換のインタプリタです。データセグメントは、ファームウェア(またはWindows)が報告するコンベンショナルメモリの最大ブロックサイズに設定されており、最新のマシンではギガバイト単位になります。 言語は(ほとんど)GW-BASIC互換です。プログラムはASCIIとしてロードおよびセーブされます。 数値型には、32ビットおよび64ビット整数(%、&、&&)、単精度および倍精度、文字列が含まれます。 32ビット幅の行番号。 DEF FN、GOSUB、ON…GOTO/GOSUB、DATA/READ/RESTORE、およびその他の制御フロー。 エラーハンドリング:ON ERROR GOTO、RESUME / RESUME NEXT / RESUME n、ERL、ERR、ON BREAK GOTO グラフィックス PSET、LINE、CIRCLE、PAINTおよび関連関数がネイティブフレームバッファ解像度で利用可能です。PSET、LINE、PAINTは、16色EGAまたは24ビットR,G,B構文で使用できます。 16色EGAパレットと24ビットカラー:COLOR r,g,b(および背景トリプル)。 ビットマップ:LOADBMPスロット、file$は24/32ビットWindows .BMPをデータセグメントスロットに読み込みます。BITBLTスロット、x、y [,key]は、スプライト用のオプションの透過色キーを使用してビットマップをブリストします。 GRAMAXX / GRAMAXY(グラフィックス)およびTXTMAXX / TXTY(テキスト)は、実際の境界を保持する読み取り可能な変数です。 SCREEN x,yはモードを要求します。SCREEN 1024,768はほとんどすべてのマシンで動作し、通常はブートモードです。シャープな画像を得るためにネイティブ解像度を試してください。GRAMAXX/GRAMAXYはSCREENコマンドの後に更新されます。 テキスト IBM VGA 8×16フォント、ソフトスクロールコンソール。 複数のテキストウィンドウ:WINDOW @n, x1,y1,x2,y2は領域を分割します。PRINT @n, CLS @n, LOCATE @nおよびCOLOR @nは、それぞれ独自のカーソルとペン/紙を持つウィンドウ内で機能します。通常のPRINTは依然として画面全体を占有します。 メモリとハードウェア 64KBの天井がない3ポインタメモリモデル。必要であれば、数億要素の配列。 PEEK、POKE、VARPTR、およびマシンへの読み取り可能なポインタ:LOMEM、HIMEM、FREEBOT、FREETOP、SCRNADR、GRAPITCH。 64ビットHEX$ / OCT$。 ディスクI/O — SAVE、LOAD、MERGE、FILES、KILL、UEFI Simple File Systemで直接実行します。 編集 — フルスクリーンEDIT、AUTO行番号付け、およびRENUM(GOTO/GOSUB/THEN/ELSE/ON…/RESTORE/RESUME/ERL参照をすべて再番号付けおよび書き直し)。 タイミング — TIMER変数はCPUの不変TSCからの高精度クロックを読み取ります。 v1.1.3の新機能 MID$が代入可能になりました プログラムがエラーで終了したときにERLが格納されず、エラー行が表示されませんでした INPUT:バックスペースが正しく機能しませんでした v1.1.2の新機能 利用可能なRAMが4GB未満の場合、Windowsバージョンは終了しました。 BASIC行は、行番号なしで244文字に固定されました。 EDIT/LISTバグ:行番号が32767より大きい場合、空の行0が表示されました。 v1.1.1の新機能 ベアメタル:遅いスクロールとフレームバッファへの書き込みを修正しました。 Windows:自動起動を追加しました。これで、.basファイル名を付けてThorauBASICを呼び出すと、自動的に起動します。 v1.1の新機能 大幅に高速化されました。行ごとのトークンキャッシュ、優先度クライミング式評価器、および変数スロットキャッシュ。計算負荷の高いプログラムで約25倍高速になりました。バンドルされたMandelbrotは〜230秒から10秒未満に低下し、Conway's Lifeはインタラクティブに実行されるようになりました。Lunar Landerは現在固定100fpsで実行されています。 ビットマップ(LOADBMP/BITBLT)、ウィンドウごとの色を持つテキストウィンドウ、ON ERROR/ON BREAK/RESUME、ERL/ERR、RENUM、およびPEEK/POKE/VARPTR。 正確性の修正:正確な64ビット整数演算(オーバーフローは倍精度に昇格)、よりクリーンな数値フォーマット、および全幅HEX$。 追加情報 2時間前に更新 27日前に公開 ステータス開発中 カテゴリツール 著者Tarjan ジャンル教育 タグbasic, Experimental, gw-basic, interpreter, programming, Retro コンテンツ生成AIは使用されませんでした ダウンロード 今すぐダウンロード 価格は自分で決める ダウンロードボタンをクリックすると、以下のファイルにアクセスできます。 ThoreauBASIC-Windows-1.1.3.zip 1.3 MB v 1.1.3, Virtual Harddisk, 仮想マシン内で起動するために使用します。 12 MB v 1.1.3, BASIC64.efi - これをBOOTX64.EFIにリネームし、\EFI\BOOTに配置してください 95 kB 開発ログ v 1.1.3 - MID$, ERLおよびINPUTのバグ 2時間前 v1.1.2 - 5時間前 v1.1.1 - Windowsの自動起動とベアメタルのスクロール修正 12時間前 Windowsバージョンが登場! 1日前 v1.1 — 25倍高速化、機能追加 1日前 v1.0 マイルストーン 7日前 TIMERが高精度になりました 14日前 ESCが再び機能するようになりました 20日前 すべての投稿を見る コメント コメントを残すにはitch.ioでログインしてください。 Rarevogel 20日前 (+1)素晴らしい!私はbuildrootをいじって、可能な限り最小かつ最速で起動するbasicを作成しましたが、このソリューションははるかにクリーンで、OSに依存していません。さらなる開発に興味があります!返信itch.io·Tarjanのすべての投稿を見る·報告·埋め込み·2時間前に更新 ツール › 無料