【更新あり】PC-9801のプログラム(ソースコード無し)をリバースエンジニアリングしてくれ!→変態技術の塊なことが判明しました

あの(一見)ネタ(と思ってしまうぐらいヤバい)依頼が無事解決したとのことで。解析された方のツイートのみのまとめです。 (たぶん追記される予定です)
リバースエンジニアリング 変態技術 クラウドワークス PC-98 BASIC
YSRKEN 296917view 82コメント
342
ログインして広告を非表示にする

コメント

  • 夢乃 @iamdreamers 16日前
    最初に、前のまとめ https://togetter.com/li/1143433 へのリンク欲しい〜 .
  • ヘルヴォルト @hervort 16日前
    凄い!何を言ってるのかサッパリわからない!
  • BLACK @BlackBlack0013 16日前
    いくらで受けたんだろう……。モノによっちゃ仕様だけ聞いて1から作った方が早そうだけど。
  • NTB006 @NTB006 16日前
    インタープリタは記憶にあるけど、コンパイラもあったんだ・・・
  • akiteru @akiteru000 16日前
    N88BASIC(だよね?)ってDiskBASICしか知らんけど、F-BASICのようにDOS上で実行するEXEファイルがあったんだ…
  • 佐渡災炎 @sadscient 16日前
    あー、MS-DOS版N88BASICかー。
  • 佐渡災炎 @sadscient 16日前
    BlackBlack0013 その仕様がわからないので調べて欲しい、という案件ですよ。
  • 佐渡災炎 @sadscient 16日前
    話題になった当時から「BASICコンパイラで作られてる可能性」に言及してた俺。 https://twitter.com/madscient/status/900912703753003008
  • Tckw Ik @xtachik 16日前
    BASICコンパイラと聞いてとても懐かしい記憶を思い出した。 PC-98はNEC純正のがあったけど、PC-6001やFM-7にもあったなぁ。 PC-6001はROMカートリッジだった記憶。こういう情報はもうネットには ないよね。
  • アルビレオ@炙りカルビ @albireo_B 16日前
    (おそらく利用可能なメモリを増やすため)極力ROM-BASICのシステムコールを利用しようとした結果、メモリの管理方法がDOSと違うからDOSのリロケーション機能を利用することができずROM-BASICに合わせた独自のメモリ管理方法になってしまったということか。変態だなーw
  • 佐渡災炎 @sadscient 16日前
    albireo_B ROMのシステムコール使ってるのはN88-BASICとの互換性確保のためですよ。利用可能なメモリはDOSの方が広い。
  • nekosencho @Neko_Sencho 16日前
    昔はいろいろ少なかったからねえ、性能も容量も。
  • nekosencho @Neko_Sencho 16日前
    それはそうと報酬は妥当な額もらえたのだろうか?
  • OSAKANA TARO @osakanataro2 16日前
    これ、解析した結果、その次ってどうすることになったんだろ?新ハードウェア&ソフトウェアに置き換えられそうだったのかな?
  • 神代武流 @tkr_kmsr 16日前
    創作のオーパーツやロストテクノロジーの解析シーンの参考になるんじゃないかな、コレw
  • kuni / 渡辺訓章 @k_u 16日前
    純正のコンパイラは要N88BASIC.LIBで、その再配布条件が不明確なこともあり、微妙な存在だったような記憶。でもってランタイム無しで動く上位互換の、BASIC/98なんてのもありました。
  • tamama @tamama666 16日前
    あの本、1997年7月出版 30年前なのね
  • Attun | C93 3日目 日曜 東ヌ-01a @nezuku 16日前
    k_u N88-日本語BASIC(86) MS-DOS版でのコンパイラで出力される実行ファイルは、N88BASIC.LIBを要求しないスタティックリンクができないようですね。ランタイムとの合算でなく実行ファイルが283KBですと、スタティックリンクでもないのにものすごく膨らんでいるような感じもしますね。
  • さかきみなと@榊鐵工 @syouth 16日前
    BASICもCOBOLも、中間コードの順次実行なのよねー。(;´∀`)
  • ざ_な_く&890P@ミクシンフォニー @z_n_c_890_P 16日前
    「なるほど、分からん」と言わざるをえない部分もあるけど、いずれにせよ過去の遺産を分析できた事は素晴らしいと思う。
  • Durandal @Duliger 16日前
    なるほどわからん
  • kuni / 渡辺訓章 @k_u 16日前
    nezuku そこから、純正以外のコンパイラが使われてた可能性も…と思って、ここでコメントしました。リンク済のものは、相応に大きくなってましたし。
  • FeynmanLeighton @Feynman_L 16日前
    私がいた大学の研究室でもコンパイルしたBASICはよく使われてました。EXE形式にすることで、普通にRUNしたらメモリ不足で動かない長いソースのBASICプログラムでもギリギリ動くことと、処理速度が速くなるということで使われてましたね。PC-98のC-Busに、研究室自作の拡張ボードを刺して、実験機器を制御してました。未だにあちこちで使われてるんじゃないかな
  • まかべひろし @sinpen 16日前
    BASICコンパイラと言うと、真っ先にMSXのべーしっ君を思い出すw ともあれこの案件、お小遣い程度で受けるのはちょっとやだなあ、よくご本人承けたなあ。すごいw
  • Daregada @daichi14657 16日前
    sinpen まとめ内のツイートに書いてあるけど、非公開で再度依頼を出してもらってるから、金額は以前公開されているやつより高いと思うな
  • |黒翼猫|ω・)。o(金-東キ56a) @BlackWingCat 16日前
    BASICの中間コード改造して色々やってた身なので大体把握できる。懐かしい :3 BASICコンパイラも使った覚えがあるけど、本当に利用価値がなかったので解析まではしなかったな....
  • tamama @tamama666 16日前
    hervort あ、書き間違いです 1987年発刊でした((((;´・ω・`)))
  • 48 @bleu48 16日前
    懐かしいな
  • 田中公夫(Tanaka Kimio) @ktanaka1999 16日前
    予想通りBasicコンパイラでした。実は98のN88BASICにはマイクロソフトのロゴが無い、つまりNEC側だけで作成したBASICです。 メモリの無い中で1パスコンパイルしているため、生成したコードは肥大になってしまいます。 特にμPD7220を触る描画関連は、面倒だったと思います。 御苦労様でした。
  • 田中公夫(Tanaka Kimio) @ktanaka1999 16日前
    技術としては、40年前以上の8Bit CPUで動かすためのBASIC言語ですからね。限られたリソースの中で、しかも複数世代のハードウェアで動作する(特に描画周りが大変)互換性を保たないといけなかった。素人でも簡単にコンパイルできるように、リンクなんて概念もなくしたPコード。まぁあの当時としては、よく頑張った製品だったと思います。
  • Attun | C93 3日目 日曜 東ヌ-01a @nezuku 15日前
    k_u なるほど、純正以外のコンパイラやリンカーヲツカッタカノウセイモ想像できますね
  • 行徳BAND @bndyk 15日前
    大学の卒論ネタが研究室で使ってた測定器の制御プログラムの改造。改造元のプログラムもBASIC コンパイラで生成されたプログラムだったな。デコンパイラでデコンパイルしてまったく判らず、単純ダンプしてBASICの文字で判明した様な。結局、Cで書き直したんだったかな(忘却の彼方)。今考えれば、作った人の卒論か修論を調べれば早かったな。
  • Kanorin_EX @ant_onion 15日前
    N88BASIC(86)だとEPSONチェックに引っかかって(と言うかROMが違うので)…とか懐かしい太古の話
  • ぼんぼ (あれっ俺いつの間に食った?) @tm_bonvo 15日前
    MS製bascom (CP/M用) なら一度コンパイル結果を覗いてみたことがあったけど(期待してたほどパフォーマンス出なかったから)、ひたすらCALLの連続だったんで見なかったことにしてデバッガを閉じた。
  • すらーく @slarq 15日前
    なんか技術解説ツイートなのにSF小説読んでる気になってくる。
  • bashiny(ばしにぃ) @hiro_orso_viola 15日前
    QuickBASICとかならまだ良かったんだろうなぁ…仕様書なんて紙でも残ってないだろうし。いずれにしてもその頃なら下手すりゃガチのアセンブラ(MASM)すら使いかねない時代だから…。
  • きゃっつ(Kats)⊿3/21京都個別 @grayengineer 15日前
    『BASIC コンパイラ……実在していたのか……』 逆に「存在を知らないのか」という感想を抱いてしまった。
  • Rogue Monk @Rogue_Monk 15日前
    IT世界では、わずか二十数年でロンゴロンゴが誕生するのだ。
  • だい @elefodenu 15日前
    CP/Mのmbasic.comなら昔よく使ってた
  • ヘルヴォルト @hervort 15日前
    tamama666 寝て起きたら10年経過したのかと思った
  • あおと-R-ORO-1 @aotororo 15日前
    「猛烈に複雑なミドルウェアを使ってるけど、肝心のロジックは素人が書いたおそ松」というのは今も結構そんな感じよね
  • 飛鷹隼 @junhiyoh 15日前
    BASICコンパイラといわれると一番有名なのは多分X68000だろうなぁ…… アレは一度Cソースにしてから改めてコンパイル&アセンブルするっていう面倒なことしてて更に一度C化するのを前提に他のBASICとは全然作法が違うCライクな構文採用してたんだけどもそれでもコンパイルしたソース一発で動くようにはそうそうならずだったが……
  • OSAKANA TARO @osakanataro2 14日前
    Basic 98/Fast...うちDynaBook J-3100SS002だったので、PC-9801のBASICプログラムを動かしてお年玉はたいて買ったなぁ
  • online_cheker @online_checker 14日前
    まるで、プログラミングの考古学……
  • 根本(反プロ臣民) @croftsnemoto 13日前
    インタブリタしかなかった時代、exe形式が手軽に作れてコンパイル後に即、コマンドプロンプトから実行、というのはものすごく楽だった。いまならフリーがゴロゴロしてるCコンパイラが20数万円したんよ、当時は。
  • ぽんすけ @tomtom4440 13日前
    Bascom も考古学の時代かー
  • 涼月 くるる (クルル・チャイル) @crule_net 13日前
    98でMS-DOS使ってた頃のBASICコンパイラとは懐かしいですね。 当時のフリーソフト扱いのCコンパイラというとLSI-C(試食版)を思い出します。簡単なプログラムはそれで作れましたね。
  • 斉藤・W・ルビンスキー@アンチ少数生産 @dojitenshi 13日前
    昔はPC-9***シリーズ全盛期だったからな よくある話だ
  • bashiny(ばしにぃ) @hiro_orso_viola 13日前
    しかしまぁ…死んだ子の年を数えるようで詮無いけど、なんでそんなシステムが今まで全く刷新されなかったのかねぇ。今まで放置されてた理由の方が気になるわ。
  • 浅利 哲 @SatoruAsari 13日前
    以前話題になってたのは覚えてたけど、まさかのBASICコンパイラ…。真っ先に「何歳くらいの方なんだろう?」と気になった(^^;)
  • にく @me2_2929 13日前
    20年前に高校生だったと言うのだから、30代の後半ぐらいでいらっしゃるのでは。先のコメントにある「むしろBASICコンパイラを知らないのか」という指摘を踏まえても「BASICコンパイラに思い当たるほどの知識はあるが真っ先に辿り着けるほど身近ではなかった」年代と考えると30代後半という推測はそこまで的外れでないように思う。…逆に言うと、このコメント欄の住人の年齢層も大まかに推測できちゃうことになるけど。
  • TAKI, Yasushi @kohju 13日前
    N88-BASIC(MS)コンパイラは、当時僕もMSDOSで使っていました。このソフトはとても便利だったのです。 N88-DISK BASIC(86)のDISKフォーマットではなく、MSDOS上であり、DOSから直接プログラムを実行出来るということ。それ以前は、都度、パソコンをリセットしてDISK BASICを起動する必要があったから、格段と便利だったのです。
  • TAKI, Yasushi @kohju 13日前
    さらに体感出来るレベルで少し早くなる。その実態はバイトコンパイルされただけで、BIOS上のBASIC ROMを都度呼び出しようなものだったのですが、当時のBASICのソースコードの読解エンジンは原始的でとても遅かったので、その分速くなったのです。
  • TAKI, Yasushi @kohju 13日前
    BASICは当時、機種毎に異なり互換性がほぼ無かったので、プログラムも互換性などを考えませんでした。PEEK/POKEを使ってマシン語を直接埋め込んだり、自己書き換えするのは余裕であったので、当然、そのままではコンパイラで動かないプログラムも沢山ありました。ただ自分で作ったプログラムならば、だいたい移植出来たので、N88BASICの環境からMSDOSへの移行する時期には、大変に便利なものだったのです。
  • nekosencho @Neko_Sencho 13日前
    BASICの互換性がなかったというよりハードウェアの互換がなかったので、結果的に単純コピーでは動作しなかったって感じかな。 基本あの当時でもマイクロソフトのBASICが多く、例外のMZやX1でも文法が近いHu-BASIC(桃太郎電鉄のハドソン製)があったので、機種独自の部分を修正すればたいていなんとかなった
  • atlan @atlan1701 13日前
    crule_net LSI-Cの試食版ってメーカーサイトにも物は残ってるけどどっから入ったら辿り着けるんだろう? 検索では見つかるんだがサイトマップからはわからんかった https://www.lsi-j.co.jp/freesoft/ ベクターでも公開は続いてる http://www.vector.co.jp/soft/maker/lsi/se001169.html 作った森 公一郎氏が亡くなってそろそろ丸4年か
  • いくた♥️なお/2日目東I45b @ikutana 12日前
    「NEC か、その BIOS のベンダのどちらかの手によるものかな」 というのを見てハッとした。今時はBIOSは専業メーカーが作るのが常識(例外はAppleか)なんだよね。当時は「(IBM PC互換機という例外を除けば)PCのメーカーがBIOSを作る」のが常識だったんだよ。 EPSONだって98互換機BIOSは自前で作ってる。 だから、BIOSベンダー=NECなのだ
  • napia @naipern 12日前
    BASICは古の言語として安らかに眠ってほしい
  • Denullpo S. Hammerson @denullpo 12日前
    BASICコンパイラといえば、MSXのべーしっ君たーぼを使ったことある。もちろん最適化はない。てゆっか、速くなりそなコードで _turbo on しておぉ速ぇってのが趣旨で、マニュアルでもいろいろとTIPSが並べられてる。
  • アルビレオ@炙りカルビ @albireo_B 11日前
    MSXべーっし君はコンパイルしたバイナリを保存する機能はなくて、プログラム実行開始のたびにコンパイルしてから実行される、今でいうJIT(ジャストインタイム)コンパイラでした
  • ddxddx @ddxddx2039 11日前
    このころのCPU/OSってプログラムが暴走するとOSごと再起動しないと駄目って言う優れものだったからなあ。今は逆にCPUが進みすぎてて投機的実行やり過ぎてハッカーに狙われると言うレベルまで来ている。(あまり関係ない与太話)
  • ddxddx @ddxddx2039 11日前
    今でもZ80でアセンブリソース書こうと思ったらレジスタとか命令セットの少なさに辟易すると思うよ。と言うか今の時代アセンブリどころか、言語でソース書くことすら少ないと思うけど。別に変態技術の塊って訳じゃなくて、当時はそう言う技術しか無かったんだよ。C言語やUNIX/Linux、Windowsの登場からどんどん時代は加速していったような。
  • ddxddx @ddxddx2039 11日前
    naipern VBとかVB .NETとか。ゲイシがBASICにどう関わったか調べる気もないけど、ともかくゲイシ、MSあたりはBASICと切っても切れない縁のようで「Small Basic」とか言うプログラミング学習用ソフトウェアを作ってたりしてますね。
  • ddxddx @ddxddx2039 11日前
    と言うか、1980年に作られたソース、アプリケーションの著作権、あと12年で切れますやん。。。それぐらいまでは長生きせんといかんかな。
  • ddxddx @ddxddx2039 11日前
    hiro_orso_viola まだFC-9801現役の工場とか中小であるんじゃ?
  • Keitaro YOSHIMURA @ramsy 11日前
    diet.exe とかその類のがかかってたりしたんですかね?
  • hara_jun @hara_jun 11日前
    後輩が授業でBASICコンパイラ使ってて、当時N88BASICで音楽鳴らしてたりしたので、DOS-BASICにそこそこ長いコード入れたら全く鳴らなくて軽く凹んだ記憶w
  • 田中一郎 @eggmanpat 11日前
    BASICといえばインタープリター言語であって、コンパイルには向いてないなんて話をする奴が結構いる。パソコン雑誌にもそんな記事が多かった。しかし、BASICは、もともと大型コンピュータ上で動くコンパイラだった。それを徹底的に簡素化してちゃちなパソコンでも動くインタープリター言語にして大儲けしたのがビル・ゲイツだ。以来、BASICはインタープリター言語だという常識が定着してしまった。
  • 糸屋大誤朗 @Daigorou__Itoya 11日前
    N88BASIC(86)のコンパイラは、単純に描画の手間の部分は速くなるので、ちょっと使ったことがある。でも結局ハンドアセンブルの方が速いので、使わなくなったようなw
  • KITI @KITI_TW 10日前
    清水洋平さんのBATCPも思い出した。
  • 酒乱⑨ @shuram_Q 10日前
    こういうことができる人たちの知識は、何かにまとめて残しておかないとロストテクノロジーになっちゃうなあ
  • ITDOREIKUN @wtpgjmwtpgjm 10日前
    BASICコンパイラは高級品すぎた…
  • takano32🍻ユッコ担当P @takano32 5日前
    バイトコード出すヤツにVMバンドルのような雰囲気ある。
  • 雷更新世 @pleist 1日前
    おお、この前のやつ請け手出たんだ。Twitterで解説してくれる人で嬉しい。

カテゴリーからまとめを探す

ログインして広告を非表示にする
ログインして広告を非表示にする