Slide 1

Slide 1 text

オープンソースカンファレンス 2026 広島 15年越しの実装課題が8時間で解決した話 SONY CISC-NEWS NWS-1750 + NWB-225 フレームバッファの NetBSD/news68k ドライバ実装 Izumi Tsutsui [email protected] 𝕏 (Twitter): @tsutsuii Mastodon: @[email protected]

Slide 2

Slide 2 text

まずはセミナーらしく いつもの 「NetBSDの解説」 と 久しぶり(?)の 「NEWSの紹介」 から

Slide 3

Slide 3 text

BSDとは? ●Berkeley Software Distribution ●カリフォルニア大学バークレー校 で開発されたUNIX系OS ●’70年代 UNIX研究として開発開始 ●’80年代 ネットワーク機能、 仮想記憶など現代のOSの 基礎を築く ●UNIXの進化と普及に貢献

Slide 4

Slide 4 text

386BSD ●Intel 80386プロセッサ向け ●初のオープンソースUNIX系OS? ●4.3BSD Net/2ベース ●企業や大学が主だった UNIX系OSが一般(?)の ユーザでも利用可能に ●実は趣味プロジェクト だった、という話

Slide 5

Slide 5 text

NetBSD, FreeBSD ●いずれも386BSDをベースとした パッチ集として開始  FreeBSD ➔ 性能重視、x86 PCをターゲット  NetBSD ➔ 設計重視、全CPUをターゲット

Slide 6

Slide 6 text

NetBSDの特長 ●“Of course, it runs NetBSD” ➔特定の機種に依存しない設計 ●“Reasonable Goal” ➔性能より「理にかなった」設計 ●仮想記憶やデバイスドライバ等の 一貫性を持つインタフェース設計

Slide 7

Slide 7 text

NetBSDの特長 ●いろんなCPUやデバイスで動く ➔組み込み系での採用例が多い https://www.ricoh.co.jp/-/media/Ricoh/Sites/co_jp/pdf/34211809/pro-8420y-8420ht-8410y-8410ht.pdf

Slide 8

Slide 8 text

NetBSD 11.0  OSC京都直前 7/30 深夜(日本時間)にタグ付け https://mail-index.netbsd.org/source-changes/2026/07/30/msg163395.html

Slide 9

Slide 9 text

NetBSD 11.0 ハイライト 一応いろいろ更新あります ●Nintendo Wii, WiiU (NetBSD/evbppc) 実は最速3コアPowerPCマシン? いつもブース展示されてるやつです → ●NetBSD/virt68k QEMUやnonoなどのm68kエミュレータ用 ●NetBSD/riscv Allwinner D1, StarTech JH7100等のRISC-V SoC用 ●NetBSD/m68k ソースコード共用化推進 luna68k固有更新はありませんがm68k周辺が地味に更新 ➔他のm68k更新はいさきさんから紹介あるんじゃないかと… ●NetBSD/hp300 HP9000/362, 382 Xサーバー 「私が書きました」案件 https://www.netbsd.org/releases/formal-11/NetBSD-11.0.html

Slide 10

Slide 10 text

SONY NEWS とは さすがに時が流れたので説明必要ですよね、 と思ったら 𝕏 では反応してくれた方いました

Slide 11

Slide 11 text

SONY NEWS (ニューズ)  Wikipedia より 「NEWS(ニューズ、頭字語: Network Engineering WorkStation)とは、 1980年代後半から1990年代前半にかけて ソニーが開発・発売した UNIXワークステーションシリーズ」 「デジタルオーディオで活躍していた 土井利忠を中心に社内ベンチャーの形で 開発され、1987年に最初のモデルが 発売された」 https://ja.wikipedia.org/wiki/NEWS_(%E3%82%BD%E3%83%8B%E3%83%BC)

Slide 12

Slide 12 text

SONY NEWS (ニューズ)  SONY公式サイト「Sony History」より 「その当時、日本でも多くのエンジニアに使ってもらえる ソフト開発用ワークステーションを作ろうという 国家プロジェクトが進行中であり、ソニーがこれに 先駆けた形となった」 https://www.sony.com/ja/SonyInfo/CorporateInfo/History/SonyHistory/2-12.html#block3

Slide 13

Slide 13 text

NWS-1750 ●1988年 9月13日発表 10月21日出荷 ●CPU: モトローラ MC68030 25MHz ●RAM: 4MB〜 max 32MB ●価格: 295万円

Slide 14

Slide 14 text

NEWS-OSと4.4BSD/news3400  WIDEプロジェクトによるBSD移植 すべて(?)のBSDのベースである カリフォルニア大バークレー校による 4.4BSDでは、NEWS3400もサポート 4.4BSDリリースノート記載のサポート機種: HP 9000/300 68000-based workstations ● DECstation 3100 and 5000 MIPS-based workstations ● Sparcstation I & II SPARC-based workstations ● Sony News MIPS-based workstations ● Omron Luna 68000-based workstations ● Intel 386/486-based machines (ISA/AT or EISA bus only) ●

Slide 15

Slide 15 text

NetBSD/newsmips  NetBSD移植職人? ●過去に sun3/80 への移植をされ、 その後PowerPC Macへの移植もされた つばいさん による1997年6月の メーリングリストアナウンス: 「最近 SONY NEWS34xx で NetBSDを 動かして遊んでいます」 「まだまだいじっている途中ですが、 きりがないのでとりあえず公開します」

Slide 16

Slide 16 text

NetBSD/news68k 始動  1999年4月 (NetBSDの移植を)以前から 試してみたいと漠然と思っていたが (中略)本体を探し始める http://www.ceres.dti.ne.jp/tsutsui/netbsd/port-news68k.html#19990410

Slide 17

Slide 17 text

How to port NetBSD?  「NetBSDの移植」とは ●移植ってそんなに簡単なの? ●そもそも何が必要なの? ●黒魔術なのかなんなのか

Slide 18

Slide 18 text

まずはハードウェア仕様の把握  最低限このくらいは必要 ●メモリマップ: RAMやデバイスの配置 ●割り込み: 割り込みコントローラ含む ●各種デバイス仕様 ●シリアルポート(コンソール用に必須) ●ネットワーク ●インターバルタイマ ●各種ストレージ(HDD, CD-ROM etc.) 等々

Slide 19

Slide 19 text

「使えるものは何でも使う」  デバイス情報の収集 ●NEWS-OSの起動メッセージから想像する ●本体をバラして中身のIC型名を確認する ●ROMモニタコマンドを叩いて反応を見る ●NetBSD/newsmipsのソースを見る ●4.4BSD/news3400のソースを見る ●NEWS-OSのカーネルヘッダを見る ●NEWS-OSのカーネルを逆アセンブルする

Slide 20

Slide 20 text

並行でNetBSD自体の把握  同じ m68k 機種の実装をひたすら読む ●locore.s のアセンブラソースの“start”関数から ●だいたい以下のような感じ ①キャッシュ無効化と割り込み禁止など初期設定 ②CPU種別判定 (68020/030/040/060) ③機種判別 (HP9000/300 シリーズの どれか 等) ④MMU (仮想記憶設定)のページテーブル作成と カーネル初期メモリ領域割り当て ⑤MMU 有効化 ⑥物理メモリ登録と機種別固有初期化処理 ⑦共通部 init_main.c の main() 関数呼び出し

Slide 21

Slide 21 text

NetBSD/news68kまでの道  機種に歴史あり ●1999/4/26 ●1999/5/6 ●1999/5/30 ●1999/6/3 ●1999/6/6 ●1999/9/24 ●1999/10/28 ●1999/11/16 ●1999/12/9 検討開始 実機入手 カーネルリンク カーネル printf 動作 single user 到達 SCSI PIO動作 SCSI DMA動作 キャッシュ問題解決 NetBSD本家にコミット

Slide 22

Slide 22 text

そんなこんなで 半年後  “Initial import of news68k” Module Name: syssrc Committed By: tsutsui Date: Thu Dec 9 14:53:25 UTC 1999 Added Files: syssrc/sys/arch/news68k: Makefile syssrc/sys/arch/news68k/compile: .keep_me syssrc/sys/arch/news68k/conf: GENERIC INSTALL LIBERO Makefile.news68k files.news68k std.news68k syssrc/sys/arch/news68k/dev: clock_hb.c dmac_0266.h hb.c hbvar.h if_le.c md_root.c ncr5380sbc.c si.c zs.c syssrc/sys/arch/news68k/include: Makefile ansi.h aout_machdep.h asm.h autoconf.h bswap.h cdefs.h cpu.h db_machdep.h disklabel.h [略] Log Message: Initial import of news68k port. https://mail-index.netbsd.org/source-changes/1999/12/09/0011.html

Slide 23

Slide 23 text

だいたいは 「起動して動いたら満足」 なので、 フレームバッファは 後回しになりがち だったり

Slide 24

Slide 24 text

NetBSD/newsmips フレームバッファ実装  同じNEWSで参考になるはずなのですが ●コミット当初は 4.4BSD実装をそのまま流用 ●2000/11/13 に NetBSD標準「wscons」対応 のドライバに書き換え https://mail-index.netbsd.org/source-changes/2000/11/13/0033.html

Slide 25

Slide 25 text

NetBSDの wscons とは  「特定の機種に依存しない」コンソール構造 ●NetBSDの「Machine Independent」な コンソールフレームワーク ●wsdisplay / wskbd / wsmouse というAPIで ユーザーランド側のアクセス方法を統一 (各アプリが固有のハードウェア仕様を意識する必要がない) ●各機種のドライバでは実ハードウェアに アクセスする固有部分だけを実装

Slide 26

Slide 26 text

NetBSDの wscons とは  「特定の機種に依存しない」コンソール構造 ●階層化イメージ ユーザープログラム (シェル・エディタ等) カーネル 機種共通部 端末 (tty) 階層 wscons (wsdisplay / wskbd / wsmouse) 端末表示/キーボード/マウス の 機種共通層 カーネル 機種依存部 機種別画面表示 ドライバ1 機種別画面表示 ドライバ2 機種別キーボード 機種別キーボード ドライバ1 ドライバ2 VGA Sun 各種 フレームバッファ PS/2 キーボード ハードウェア Sun キーボード

Slide 27

Slide 27 text

newsmips wscons実装が入った ↓ 残りは news68k固有部分だけ 書けばいいはず?

Slide 28

Slide 28 text

またもハード仕様調査の壁  「種類が多い」フレームバッファ ●キーボードはアドレス違いくらいだったので 2001年11月に実装 ●しかしフレームバッファは仕様が異なる ●NWS-3470: NWB-253 モノクロ VRAM仕様 ●NWS-1750: 拡張スロット内 NWB-225 ●表示用VRAMの仕様がわかれば wscons が提供するMIドライバの 「rasops」ですぐに表示できるのですが……

Slide 29

Slide 29 text

フレームバッファ調査の限界 「数打ちゃ当たる」とはいうものの ●画面を見つつ「適当なアドレスに書いてみる」 ●しかしどこに書いても謎表示しか出ない ●NEWS-OSのバイナリやヘッダは? ●いろいろ見てもVRAMっぽい値に見えるものがない ●4.4BSDにも NWB-225のコードはない

Slide 30

Slide 30 text

〜10年後〜

Slide 31

Slide 31 text

2011年 OSC神戸→関西@京都  (自分にとっての)OSC展示黎明期 ●「展示もやってみよう」と SHARP X68030と ATARI TT030 をOSC神戸に持っていって展示 ●「次の京都もm68kマシン展示を」と考えて 「京都だからLUNAか」のネタだったのですが 実は NetBSD/news68k のコンソール表示 も どうにかしたい、と考えていました

Slide 32

Slide 32 text

コンソール表示仕様検討  OSC展示駆動開発!? ●NetBSD/news68kでも ブートローダーでは 内蔵ROMルーチンの画面表示は動作実績あり ➔カーネルでもROM内ルーチンを使えないか? ●ただし入力(キーボード)は入力待ちになるので ROM内ルーチンは使えない ➔調べると sun3では「画面出力はROMルーチン」 「キーボードは別ドライバ」のtty実装と判明 ●OSC関西@京都展示に向けて (luna68k準備の裏で) 突貫で「既存wskbd入力+ROMルーチン出力」 の展示デモ用コンソールドライバを1日で実装

Slide 33

Slide 33 text

OSC2011関西@京都  NetBSD/m68k Never die! ウサギ (NEWS) と 月 (LUNA) と 太陽 (SUN)と ※当時 NEWS の広告にはウサギのマスコットが使われていました  ご当地 LUNAと SUNとセットでお披露目展示 詳細はこちら http://www.ceres.dti.ne.jp/tsutsui/osc2011kyoto/index.html

Slide 34

Slide 34 text

だったのですが

Slide 35

Slide 35 text

LUNA@OSC関西@京都  LUNAがOMRON関係の方々に予想以上の反響 ● 実行委員長のよしだともこ先生に感激いただく ● 2日目にLUNAグッズを持ってきてくれた方も https://twitpic.com/5qeizb https://web.archive.org/web/20180401222750/http://movapic.com/ebijun/pic/3812352

Slide 36

Slide 36 text

NEWSは 完全に 引き立て役に…… OMRONで 元LUNA開発者だった方に 「これも買って解析しましたよ」 というコメントをいただきました

Slide 37

Slide 37 text

ROMルーチン側は11月にコミット  “demonstrated at Open Source Conference” Module Name: Committed By: Date: src tsutsui Sun Nov 20 15:38:00 UTC 2011 Modified Files: src/sys/arch/news68k/conf: GENERIC INSTALL files.news68k majors.news68k src/sys/arch/news68k/dev: if_le.c kb_hb.c si.c zs.c src/sys/arch/news68k/include: cpu.h vmparam.h src/sys/arch/news68k/news68k: locore.s machdep.c pmap_bootstrap.c Added Files: src/sys/arch/news68k/news68k: romcalls.S romcons.c Log Message: Add preliminary PROM internal function based framebuffer console support, which was demonstrated at Open Source Conference 2011 Kansai @ Kyoto back in July: http://www.NetBSD.org/gallery/events.html#opensourceconf2011-Kansai https://mail-index.netbsd.org/source-changes/2011/11/20/msg029148.html

Slide 38

Slide 38 text

が、キーボード側の問題が……  キーボード実装選択問題 ●キーコード生値→wskbdコード変換は使いたい ●しかし wskbd 実装は wsdisplay 側とセットで 使うことしか考慮されていない ➔ROMルーチン+wskbd組み合わせ tty 実装はMI修正必要 ●sun3は非wskbdドライバを使っていたが、 wskbdではない NEWSキーボードドライバを 別に書くのもなんか違う ●wscons実装も難しすぎて、どうすべきかの 判断が困難で、ML相談の作文も思いつかない

Slide 39

Slide 39 text

〜11年後〜

Slide 40

Slide 40 text

2020年からのコロナ禍  2020〜2023年 OSC展示中断期 ●OSC展示駆動ができなくなった半面、 引きこもりを理由に過去からの課題を消化 ●hp300 各種フレームバッファ修正やHP-IB修正 ●Express5800/230電源修理とNetBSD/arc修正 ●NetBSD/sun3 X.org server 実装 ●2022年に「夏休みの課題」ということで news68k のROMルーチン実装を整理

Slide 41

Slide 41 text

https://www.youtube.com/watch?v=kPOiHG20Ye8

Slide 42

Slide 42 text

が、動画投稿後に 「さあ、tech-kern MLに投げるか」 と思ったところで NWB-225からの 同期信号が 出力されなくなる というトラブルが発生……

Slide 43

Slide 43 text

心が折れて 診断する元気も出なくて それから2年弱

Slide 44

Slide 44 text

2024/3/26 NetBSD 10.0 リリース後の4月 何もしてないのに直った!? https://social.mikutter.hachune.net/@tsutsuii/112222593309376126

Slide 45

Slide 45 text

気を取り直してMLに投げてみる  tech-kern Mailing List To: tech-kern@ Subject: [RFC] new APIs to use wskbd(4) input on non-wsdisplay tty devices From: Izumi Tsutsui Date: Sat, 6 Apr 2024 23:56:27 +0900 # tl;dr I'd like to add new APIs to use wskbd(4) input on non-wsdisplay tty devices, especially news68k that can use a putchar function provided by firmware PROM as a kernel console device. https://mail-index.netbsd.org/tech-kern/2024/04/06/msg029551.html

Slide 46

Slide 46 text

やはり「スッキリしない」問題  「イマイチ」と言われるけど解決策が出ない ●そもそも wscons 実装がややこしいので 初手から論点が発散する (ドキュメントもない) ●putchar という関数の役割の誤解 (1文字描画かVT端末制御操作込みか; ROMルーチンは後者) ●“wsemul_dumb” という紛らわしい実装の存在 ●自分の技術力と説明能力と英作文能力の限界 ➔各意見に対して、合意形成まで持って行く 元気が出ず、またしても挫折

Slide 47

Slide 47 text

さらに 2年が経過

Slide 48

Slide 48 text

ChatGPT駆動 展示アプリ作成  今までできなかったものを作って展示できるように ラズパイPSGプレーヤー https://x.com/ebijun/status/2017409056194105825 白黒アニメGIFプレーヤー https://x.com/tsutsuii/status/2083371286206779727

Slide 49

Slide 49 text

OSC京都の後も m68k NEW PMAP とかを ChatGPTに投げているうちに ふと news68k wscons の tech-kern ML ネタ を思い出して 投げてみたところ……

Slide 50

Slide 50 text

ChatGPT先生!  めちゃくちゃ理解してくれてる? ●「結論として反対されているわけではない」 ●「一部誤解があったがそれも解消はしている」 ●wsconsの抽象化が今ひとつで、wskbd を wsdisplay以外につなげられるようにすると 大改修になってしまう、というのも理解できる ●よって、当時の提案の方向も悪いものではなく もう一度個別に説明すれば理解されるのでは?

Slide 51

Slide 51 text

が、元々イマイチなのは わかっていたので、 せっかくなのでChatGPTに 「問題の本質」 を相談

Slide 52

Slide 52 text

NWB-225 フレームバッファ のハード仕様を調査して native wsdisplay の ドライバを書く、 という路線に勝算はあるか? という質問を 過去のNEWS-OSバイナリ逆アセンブル分析 の結果とともに投げてみると…… 8/22(土) 12:29

Slide 53

Slide 53 text

「あります。」 「しかも添付の fbbm_225.o と Sony の資料を合わせると、 以前想定していたより 勝算はあります」 8/22(土) 12:32

Slide 54

Slide 54 text

ChatGPT先生の検索力  NWS-1510/1530/1580テクニカルマニュアル ●なぜか内部資料っぽいマニュアルを探してくる ●「Raster Operation」(ROP) の説明があって、 「NWB-225と同様」と書いてあると言ってくる framebuffer 内 矩形領域コピー 1 plane → 全 plane コピー ホストRAM → framebuffer 矩形書き込み framebuffer → ホスト 矩形読み出し 等

Slide 55

Slide 55 text

ふたたび wsdisplay 構造説明  wsdisplay の階層 MIカーネル tty層 出力側 ↓ VT100的な端末画面制御 ↓ 文字描画/行単位範囲コピー消去/行内コピー消去 で構成される「emulops 抽象操作API」 ↓ 実フレームバッファ操作ドライバ ↓ ハードウェア操作

Slide 56

Slide 56 text

emulops抽象操作API  端末表示にこれだけあればいい! という定義 ●putchar: 1文字描画 → ●copycols: 1行内指定数コピー→ ●erasecols: 1行内指定数消去 ●copyrows: 行単位コピー ●erasecols: 行単位消去 → → →

Slide 57

Slide 57 text

VRAMがCPUから見えている場合  raster operation 「rasops」ドライバ ●「VRAMが直接見えている」という場合、 VRAM仕様として以下の機種別詳細がわかれば、 描画処理自体は共通の実装とすることが可能 ✔VRAMの先頭アドレス ✔VRAMのサイズ ✔色数(1ピクセルあたりのビット数) ✔画面1行あたりの VRAMバイト数 ➔これをやってくれるのが 共通部の rasops(9)

Slide 58

Slide 58 text

wsdisplay rasopsの場合の構造  wsdisplay の階層 MIカーネル tty層 出力側 ↓ VT100的な端末画面制御 ↓ 文字描画/行単位範囲コピー消去/行内コピー消去 で構成される「emulops 抽象操作API」 ↓ MI rasops(9) + 機種別の VRAM パラメータ設定 ↓ VRAMデータ読み書き

Slide 59

Slide 59 text

NWB-225の場合の構造  wsdisplay の階層 MIカーネル tty層 出力側 ↓ VT100的な端末画面制御 ↓ 文字描画/行単位範囲コピー消去/行内コピー消去 で構成される「emulops 抽象操作API」 ↓ NWB-225の 矩形領域コピー操作・ ホスト→フレームバッファ書き込み等の ハードウェアROP操作

Slide 60

Slide 60 text

驚きの結果だが、 さらに追加の情報として 4.4BSD news3400 の フレームバッファ実装を 投げてみると…… 8/22(土) 12:41

Slide 61

Slide 61 text

「片鱗どころか、 NEWS-OS の framebuffer framework が まとまった形で残っている」 「VRAMが見えている NWS-3470の NWB-253実装との比較もできる」 「なので、今度は逆アセンブルの 難易度が全然違います」 8/22(土) 12:42

Slide 62

Slide 62 text

これぞAI無双 「構造体オフセット」の逆算

Slide 63

Slide 63 text

これぞAI無双

Slide 64

Slide 64 text

NEWS-OSバイナリを渡すと?  逆アセンブルでもAI無双 ✔objdump の逆アセンブルでは直接わからない 「別ソースのシンボル解決」もしてくれる ✔「本題の処理は fbbm_51x.o にあって、それぞれ こんな感じになっている」と説明してくれる ✔「4.4BSD実装と比べれば各関数の役割とAPIも ほぼ特定できます」 ✔「現時点ではwsdisplay路線の勝算を かなり上方修正します」 8/22(土) 12:52

Slide 65

Slide 65 text

提案された通りに 「NEWS-OSバイナリの 各ROP関数を 4.4BSD news3400実装と 照らし合わせて 仕様を復元してみて」 と依頼 8/22(土) 12:57

Slide 66

Slide 66 text

「結論から言うと、 NWB-225 wsdisplay ドライバ路線は Goと判断します」 「wsdisplayの主要操作を 実装するプリミティブは そろっています」 8/22(土) 13:07

Slide 67

Slide 67 text

いきなりコードを書くのではなく 「初期設計仕様書」を作ろう、 という話になったので (以前から ChatGPT に対しては 「いきなりコードを書くな」 「実装の前に設計書を書け」 という調教(?)をしていた) 指示して作ってもらって こちらでレビュー 8/22(土) 13:25

Slide 68

Slide 68 text

汎用のwsfontを展開するには VRAMのビット構成情報が必要 とあったので 「とりあえずNEWS-OSの同様で 内蔵ROMフォントを使おう」 と指示 さらに 「いきなりカーネル実装はツラいなら スタンドアロンのテストプログラムを 作ったほうがよいか?」 8/22(土) 13:40 等を協議

Slide 69

Slide 69 text

設計書と作業方針を見て フレームバッファの初期化 がネックになりそうだったので NWS-1750 の ROMバイナリと DIP SWのアドレス情報を渡して 「初期化っぽい処理を解析して」 と依頼 8/22(土) 14:55

Slide 70

Slide 70 text

初期化っぽいルーチンが特定したので NWS-1750実機で呼び出してみて 実際に初期化に必要な処理を特定して NEWS-OSバイナリに初期化処理がある ということを確定 ↓ ここまでわかれば いきなりカーネルドライバを書いて シリアルコンソールで検証できる、 と方針転換して設計書も更新 8/22(土) 15:51

Slide 71

Slide 71 text

設計書の実装仕様について ●wsdisplay の ROPに必要なところと、 NetBSDデバイスドライバ一般のところは詳細を書く ●ハードウェア寄りの ROP操作のところは 「NEWS-OSのこの操作をほぼそのまま持ってくる」 という概要レベルで書く ●デバイス名称、関数分割単位、関数名称等々の 細かい実装選択も議論 ●デバイス検出層、wsdisplay 呼び出し層、等々、 人間が実装するときの順番で設計検討と内容指摘 という具合で設計書作成とレビューを複数回繰り返し 8/22(土) 18:00

Slide 72

Slide 72 text

レビューをN回まわした設計書で コンセプト実装として デバイス検出とマップと初期化 まで実装して実機で軽くテスト ↓ カーネル起動してデバイス検出後に ちゃんと同期信号が出てくる! 8/22(土) 18:45

Slide 73

Slide 73 text

ROP操作関連や ROMフォント描画その他の ハード仕様寄り詳細仕様について とりあえずNEWS-OS流用仕様で 「詳細は置いておいて動けばいい」 で設計書を更新してその実装を用意 8/22(土) 20:00

Slide 74

Slide 74 text

8/22(土) 20:20

Slide 75

Slide 75 text

最初のROM内ルーチンを使った コンセプト実装から15年かかっても 「NetBSDとしてあるべき実装」 を出せず悩んでいたものが 12:29 に「勝算はあるか?」と訊いて 20:20 の 8時間弱で実機で動作という 驚きの結果に……

Slide 76

Slide 76 text

OSC京都の続きで LUNAモノクロアニメGIF再生 プログラム改良版 を出すつもりだった OSC広島展示内容を 急遽NEWS展示に計画変更

Slide 77

Slide 77 text

あとはいつもの通りに実装  描画が動けば過去の経験の繰り返し ●/dev/ttyE0 でログインできることの確認 ●フレームバッファコンソール設定での 起動時初期化 consinit() 実装 ●元々予定していたmonoGIFplay改良版の設計書 更新と実装 ●monoGIFplayを動かすための 「矩形ビットマップデータ描画」の 展示デモ用の仮 ioctl を設計させて実装 ●monoGIFplayの news68k 仮 ioctl 対応版の 設計書更新と実装

Slide 78

Slide 78 text

というわけで告知 https://x.com/tsutsuii/status/2093707169938186263

Slide 79

Slide 79 text

まとめ ●15年悩んだフレームバッファ実装が ChatGPTブーストで 8時間で解決!? ●逆アセンブルだけではなく 「構造体オフセット」込みの分析や 「APIの推定と照合」といった能力 この領域ではもう人間の出番は無さそう…… ●ChatGPTに「設計書兼作業手順書」 を作らせて「人がレビューしてFIX」 するのが先、という工程の重要性

Slide 80

Slide 80 text

※使用上の注意 ●ChatGPTの使いすぎに注意しましょう!? https://social.mikutter.hachune.net/@tsutsuii/117205043825789665