世界を動かす技術を、日本語で。

Microsoft BASIC for 6502マイクロプロセッサ – バージョン 1.1

2025年9月4日原文(github.com)

概要

  • Microsoft BASIC for 6502 Microprocessor Version 1.1 は、パーソナルコンピュータ黎明期を象徴する重要なソフトウェア
  • 1976〜1978年にMicrosoftが開発・著作権保有 した6502用BASICインタプリタの完全なアセンブリ言語ソースコード
  • 複数プラットフォーム対応 やライセンスモデルが、Microsoft初期の成功と業界標準化に大きく寄与
  • 教育的・文化的インパクト が大きく、後のソフトウェア産業やプログラミング普及の礎
  • 技術的イノベーション やビジネスモデルの革新事例としても歴史的価値を持つ

Microsoft BASIC for 6502 Microprocessor - Version 1.1 歴史的意義

  • 6502マイクロプロセッサ用BASICインタプリタ の完全なアセンブリ言語ソースコード
  • 1976〜1978年にMicrosoftが開発・著作権保有 した初期の代表的ソフトウェア
  • パーソナルコンピュータ革命の基盤 となり、誰でもプログラミングが可能になる環境を提供
  • 非技術者にも分かりやすい英語風構文 によるプログラミング普及
  • このソフトウェアがなければPC革命の進展は大きく異なっていた可能性

Microsoft初期の成功とビジネスモデル

  • Microsoft初期の最も成功した製品群 の一つ
  • 複数メーカーへのライセンス提供 がビジネスモデルの礎
  • MS-DOSやWindows以前における業界支配力の確立

マルチプラットフォーム対応

  • 単一ソースコードで複数ハードウェアに対応 する設計
  • 条件付きコンパイル により異なるシステム向けビルドが可能
  • 現代にも通じるソフトウェア開発手法への多大な影響

対応コンピュータシステム

  • Apple II(REALIO=4) :Steve Jobs & Steve Wozniakによる革命的PC
  • Commodore PET(REALIO=3) :初期の完成度高いパーソナルコンピュータ
  • Ohio Scientific(OSI)(REALIO=2) :教育・ホビーユーザー向け
  • MOS Technology KIM-1(REALIO=1) :影響力大のシングルボードコンピュータ
  • PDP-10 Simulation(REALIO=0) :開発・テスト用エミュレーション

技術仕様

  • 言語 :6502アセンブリ言語
  • 対象プロセッサ :MOS Technology 6502(8ビット)
  • メモリ要件 :8KB ROMバージョン
  • 機能 :浮動小数点演算付き完全BASICインタプリタ
  • 構成 :ROM・RAM両対応設計

主な特徴

  • BASIC言語完全実装、浮動小数点演算対応
  • 文字列操作・配列(整数・文字列)サポート
  • 各種数値演算・入出力処理
  • 8ビット環境向け効率的メモリ管理
  • ガーベジコレクション・動的変数領域管理
  • スタックベースの式評価
  • 各機種向けI/O抽象化・端末幅対応
  • オプションでディスクストレージ対応

開発履歴(抜粋)

  • 1978年7月27日 :FORループ変数処理・文解析バグ修正
  • 1978年7月1日 :メモリ最適化・ガーベジコレクション改善
  • 1978年3月9日 :文字列関数強化
  • 1978年2月25日 :入力フラグ・数値精度改良
  • 1978年2月11日 :予約語解析強化
  • 1978年1月24日 :ユーザー定義関数改良

文化的インパクト

  • 教育的影響 :数百万人が初めて触れたプログラミング言語

  • インタラクティブでシンプルなBASIC が非技術者にも親しみやすい環境を提供

  • 多くの後進プログラマーや業界リーダーの出発点

  • 業界標準化 :Microsoft BASICがパーソナルコンピュータ用プログラミング言語の事実上の標準に

  • 設計思想やコーディング規約 が後の言語・開発ツールに継承

  • マルチプラットフォーム戦略 が現代ソフトウェア開発にも影響

  • ビジネスモデル革新 :複数ハードメーカーへのライセンス供与がMicrosoftの事業基盤

  • ソフトウェア単体ビジネスの成立例 として業界全体のテンプレートに

技術的イノベーション

  • コンパイラ技術 :高度なマクロシステム・条件付きコンパイル
  • シンボルテーブル管理・省メモリ最適化
  • ランタイムシステム :スタックベース式評価・動的メモリ管理・リアルタイムガーベジコレクション・対話型コマンド処理

レガシー(遺産)

  • 現代ソフトウェア産業の礎 となるソースコード
  • MS-DOSや後のMicrosoft OS開発 への直接的影響
  • プログラミング言語実装・ソフトウェアライセンスモデルの標準化
  • プログラミングの大衆化・普及

ファイル情報

  • ファイル名 :m6502.asm
  • 行数 :6,955行
  • 著作権 :Microsoft Corporation, 1976-1978
  • バージョン :1.1
  • アセンブル形式 :当時の6502アセンブラ対応

このドキュメントは、パーソナルコンピュータ革命を牽引し、Microsoftをソフトウェア業界のリーダーへと押し上げた歴史的ソースコードの全貌。 参考リンクMicrosoft Open Source Blog(英語)

Hackerたちの意見

https://en.wikipedia.org/wiki/BASIC-PLUS#Comparison_to_MS_BA...

https://everybasic.info/doku.php/basics/decbasic#influence_f...

https://www.theregister.com/2000/06/29/bill_gates_roots/

ありがとう!

それ、すぐに気づいたよ。こんな風にgitの履歴を強制的にバックデートできるなんて知らなかった。

その日付は実際にはm6502.asmファイルにだけ適用されるべきだと思う。歴史的なアーカイブには正確さが重要だよね。例えば、MITライセンスの下でいつライセンスされたのか、最近だと思うけど、そのファイルの日付はそれを反映すべきだよ。

あのリポジトリの日付スタンプが気に入ったなら、こっちのも絶対楽しめるよ:* https://github.com/dspinellis/unix-history-repo それに、貢献者リストも面白いよ。

作者をちゃんとした人に設定してほしいな。ビル・ゲイツだと思うけど。

だってMSがGitHubを持ってるから、後からコミット日を変えるためにDb/Storageを操作したってこと?

https://americanhistory.si.edu/comphist/gates.htm

https://news.ycombinator.com/item?id=17998940 DonHopkinsが2018年9月16日に投稿 | 親 | 前 | 次 [–] 変なBASICの機能についてだけど、DECSYSTEM 20のBASICに「LISTREVERSE」コマンドがあった理由を知ってる人いる?実際にその通りのことをやってたんだよ!DECとBASICに一票。どの他のプログラミング言語がその機能をサポートしてるのかな? DECSYSTEM 20 BASIC ユーザーガイド:LISTREVERSEコマンド LISTREVERSE LISTNHREVERSE LISTREVERSEとLISTNHREVERSEは、ユーザーのメモリ領域の内容を降順の行番号で印刷する。LISTREVERSEは出力の前に見出しを付け、LISTNHREVERSEは見出しを省略する。 LISTREVERSE EQUIV 10:53 13-NOV-75 40 END 35 PRINT "THE EQUIVALENT CURRENT IS",I, " AMPERES" 25 I=E1/R 10 INPUT R 5 INPUT E1 READY http://www.bitsavers.org/www.computer.museum.uq.edu.au/pdf/D...

この基盤となる作業に対して Erum、君の引用にはそれを示すものはないよ(近いものすらない)。MSはNTをDECの作業に基づいて作ったし、その結果として裁判も解決したんだ。もしかしてその話を考えてるのかな?BASICという言語はDECの実装よりも前に存在していて(ダートマス大学から来た)、誰もが「機械Aの高水準言語BASICインタープリターの実装のコードを見て、機械Bのアセンブラ実装を書くことが、彼らの作業に基づいている」とは思わないよ。

Hacker Newsで議論の続きを見る