パスワードを忘れた? アカウント作成

Microsoft、GW-BASICをオープンソース化」記事へのコメント

  • ソースコードにはビル・ゲイツの名前が入ってますね
    https://github.com/microsoft/GW-BASIC/blob/master/GWMAIN.ASM [github.com]
    の17行目です

    COPYRIGHT 1975 BY BILL GATES AND PAUL ALLEN

    しかし不思議なことに一行目には

    [ This translation created 10-Feb-83 by Version 4.3 ]

    と書いてあります

    どうやらこのソースコードは,オリジナルのものではなくて
    何らかの変換ツールを使って,自動変換で出力したファイルのようです

    不思議に思って調べてみたら
    当時は色々なアーキテクチャ,様々な命令セット(ISA)のCPUが流通していたので
    プログラマはまず独自のアセンブラ言語で記述した共通のソースコードを用意して
    それを独自のISA translatorで 8088向けにアセンブラのソースコードに変換
    それをビルドしていたそうです

    https://devblogs.microsoft.com/commandline/microsoft-open-sources-gw-basic/ [microsoft.com]

    また,変換前のオリジナルのソースコード,及びISA translator はオープンソースとしては公開できない,ということのようです

    ここに返信
    • by Anonymous Coward

      > 当時は色々なアーキテクチャ,様々な命令セット(ISA)のCPUが流通していたので

      1983年だと、まだIBM-PCとその完全互換機以外にもDOSレベルの互換機や、CPUも異なるPCが現役だったのでx86ネイティブだけで開発するわけにはいかなかったんでしょうかね。というか、もっと前の8bit PC時代には6502、6809、8080、Z80等のスタンドアロンBASICを出荷していたのでその時代からすでにそういう手法で開発していたということなんだと思いますが。

    • Re: (スコア:0, オフトピック)

      by Anonymous Coward

      新電子立国には、ビル・ゲイツとポール・アレンはAltair用BASICをPDP-10上で開発したと書かれています。
      完成したのが1975年3月だそうですので、「COPYRIGHT 1975 BY BILL GATES AND PAUL ALLEN」というのは
      Altair用BASICのCopyrightではないでしょうか?
      (今ならCOPYRIGHT1975-1983にするでしょう)

      • by Anonymous Coward

        GWMAIN.ASMに

        331 PUSH BX ;PUT H ON
        336 XCHG BX,DX ;MAKE SURE WE RETURN [D,E]
        362 ;RETURN WITH [H,L] POINTING THE BOTTOM

        とあるから8080から8086へのトランスレーションでしょう
        インテルがそういうツールを用意していたので、それを使ったのなら、公開できないのも納得いきます

        • by Anonymous Coward on 2020年05月24日 20時32分 (#3821053)

          958行から

          CRDONE:
                  MOV BX,OFFSET KBFLEN+2 ;GET OFFSET
                  MOV AL,BL ;GET COUNT TO SUBTRACT FROM
                  SUB AL,CL ;SUBTRACT
                  MOV CL,AL
                  MOV AL,BH
                  SBB AL,CH
                  MOV CH,AL ;BC:=# OF CHARS CRUNCHED

          8ビットずつごちゃごちゃ計算している部分は CX=BX-CX です
          8086では8ビットずつ計算する必要はないので、コメントとあわせて明らかに8080からのトランスレーションですね

            • by Anonymous Coward

              LINE 40-70に各社ごとの条件付アセンブル用っぽいフラグ定義がありますね。
              TRS,MELCO(Baffaloじゃないほう),NECやOKI、Olivettiなど。BUBLってSFC? FM8?

              • by Anonymous Coward

                バブコム80じゃろ

              • Olivettiはよくわからりませんが、それ以外は
                TRS: TRS-80: Z80
                MELCO: 三菱 MULTI8: Z80
                NEC: PC-8001とか: Z80(μPD780C-1)
                OKI: if800: Z80
                BUBCOM80: Z80(富士通ベンチャーが出したFM8とそっくりスペックなZ80機)
                と、全部 Z80機ですね。
                FM8のF-BASICもMicrosoftだけど、6809だからさすがにソースが共通ってことはないと思う。

                このあたり、MSはソースコード提供だけで移植は各メーカーだと思ってたんですが
                MS自身が移植も手がけてたんですかね。
                当時の8bitパソコンは大多数が MS BASIC で、起動時にMicrosoftのCopyright表示を見たものです。
                MSにあらずんばBASICにあらずってレベルだったよなぁ。日本の大手で独自なのはシャープぐらい?

              • by Anonymous Coward

                日本の大手ならカシオやソードが独自
                東芝のパソピアのOA-BASICも独自
                たぶん三洋電機も

              • by Anonymous Coward

                メーカから社員が出向して作業してたんじゃないかしら。
                マイクロソフトのリスク軽減と各社の秘密保持の両方の理由があるので。
                伝聞でしか知らないけど、Windows時代に入ってからの周辺機器のドライバ開発もそんな感じだったのですよね?

              • by Anonymous Coward

                L3より前のベーシックマスターは日立独自のではなかったっけ?
                # L3はマイクロソフト

    • by Anonymous Coward

      このころからマルチプラットホーム開発してたのか
      MSは効率的だな

      • by Anonymous Coward

        マルチプラットフォーム開発というよりは移植作業。
        新しい機種が出るたびに移植作業をしないといけないし
        ソフト移植の成否がその機種の人気につながったりもしたとかで
        PCメーカーからも相当なプレッシャーをかけられてたようだし、
        それを効率よくこなそうとするのは当然の流れだろう。

        • by Anonymous Coward

          プレッシャーかける側は効率と互換性とは対極ですけどね。

最初のバージョンは常に打ち捨てられる。

処理中...