OMRON LUNA フレームバッファ Twitter駆動開発

Twitterつぶやき駆動により NetBSD/luna68k および OpenBSD/luna88k のフレームバッファドライバとそれを利用した mlterm-fb のそれぞれの開発が進んでいく(!?)様子です
3
Kenji Aoyama @ao_kenji

wsconsのcopycolsでalignmentが合わない場合に再表示されない件、hp300のコードをluna88kに持ってきて修正。http://t.co/tYlBOxntYB

2013-11-17 18:03:04
Kenji Aoyama @ao_kenji

8月頃からちびちびと追いかけていたのだけれど、コードのロジックとしてはbit31が画面右、LUNAのframe bufferはbit31が画面左。結局生データを見比べながらluna88k用に直した。

2013-11-17 18:15:46
Izumi Tsutsui @tsutsuii

@ao_kenji ガーン。先を越された( ゚д゚)

2013-11-17 19:47:32
Kenji Aoyama @ao_kenji

@tsutsuii 実際に困ってる人は世界で数人と思われますが、つついさんにそう言っていただけるなんて、うれしいやら恥ずかしいやらです(^_^)

2013-11-17 21:00:44
Izumi Tsutsui @tsutsuii

@ao_kenji mlterm-fb の背景を変えつつ何度も起動するときのコマンドラインでめんどくさいと思って rasops とか hp300 の謎ビットフィールド命令マクロとか見てたんですが活性化エネルギーが足りなかったのでした。luna68kでも参考にしてみます

2013-11-17 23:11:22
Kenji Aoyama @ao_kenji

@tsutsuii luna88kの場合は、m88kのビットフィールド命令が使えるかどうか考えきれなかったので一旦Cで書いてます。luna68kならhp300のマクロが使えるかもしれません...

2013-11-17 23:48:19
Izumi Tsutsui @tsutsuii

HP9000/300のモノクルフレームバッファって MSB側が右 なのか……

2013-11-17 23:42:28
Kenji Aoyama @ao_kenji

@tsutsuii 現物持ってないので結局分からなかったのですが、ソースを追いかけていてそんな感じがしました。

2013-11-17 23:50:11
Miod Vallat @MiodVallat

@ao_kenji @tsutsuii We could use a bitfield instruction for GETBITS, but there is no easy way to do PUTBITS. Better trust the compiler...

2013-11-17 23:50:46
Izumi Tsutsui @tsutsuii

@ao_kenji mlterm-fb の 1bpp サポート実装のときに「MS bit 側が右」というハードをサポートすべきか(そもそも存在するのか)という話が挙がったのでした

2013-11-18 00:01:30
Kenji Aoyama @ao_kenji

@MiodVallat @tsutsuii Then, I leave rewriting GETBITS as my future exercise:-)

2013-11-18 00:02:32
Izumi Tsutsui @tsutsuii

M68000ファミリのビットフィールド命令 http://t.co/deBEZZ2rK5 XM6i のエミュレータCPU実装で最も苦労されたという話もあるビットフィールド命令の解説

2013-11-18 00:05:26
Y.Sugahara @moveccr

@tsutsuii kamada神の仰せのままに実装すれば動作はするんですが変態5byteアクセスはどこにも記述を見つけられなくて苦労しました

2013-11-18 00:16:59
Izumi Tsutsui @tsutsuii

うーん。 hardluckalignment の場合だけ hp300 の windowmove の実装を適用することを考えていたけれど、全部 windowmove にしたほうが速いのだろうか

2013-11-18 00:26:29
Izumi Tsutsui @tsutsuii

OpenBSD/luna88k だと fb で rasops1 を引っ張ってくるけれど、実際には MI rasops 側はほぼ使ってなかったので NetBSD/luna68k では init 関数はサブセット書いて済ませてて、結果として raspos_mask.c が入らない罠

2013-11-18 00:31:39
Izumi Tsutsui @tsutsuii

luna68k の omrasops.c を書かれた西村さんは wsdisplay の大家と言ってもよい人。一方、hp300の windowmove の実装はグラフィックのハードウェアbitbltのAPIに合わせた実装。モノクロはハードのサポートがないので手動実装になってる

2013-11-18 00:37:18
Izumi Tsutsui @tsutsuii

MI rasops的な 1,2,4bpp な unaligned 対応 copycol 実装は http://t.co/uAo01OvuA5 にある。コメント通り Ick! な感じ。

2013-11-18 01:13:23
Izumi Tsutsui @tsutsuii

ただしもともと 1,2,4bpp なフレームバッファで MI rasops を使ったものはほとんどない(pmax の pm(4)だけ?)のでテストされているか微妙というのと、LUNAのfbでは書き込みと読み出しのアドレスが違うという仕様があってそのままでは使えない

2013-11-18 01:17:02
Izumi Tsutsui @tsutsuii

rasops_bitops.h の copycol をコピペって書き換えるというのでもいいんだけど、MIドライバをコピってMDに持ってくるとたいてい将来不幸になる(MI側APIが変わった時にMDが放置されるとか)という問題

2013-11-18 01:20:23
Izumi Tsutsui @tsutsuii

で、ある日ふと hp300のブートローダーの fb実装から持ってくれば必要最小限か http://t.co/hR1YKKRul3 と考えたところで止まっていたのでした

2013-11-18 01:21:28
Izumi Tsutsui @tsutsuii

あと、わりとどうでもいい問題として 複数のソースを混ぜると copyright の表示がめんどくさくなるので、じゃあ別のソースにするかと考えると関数宣言のヘッダファイルを追加する必要が出てきて あーめんどくさ と止まるという問題(サボりすぎ)

2013-11-18 01:22:36
Izumi Tsutsui @tsutsuii

まあ、あれこれ考えているだけで進まなくて、考えるのをやめて動いているものを持ってくる締切駆動したら3日で動いたという hp300 wscons の実例 http://t.co/PEzftojisi があるので、冬休みの宿題で進まなかったら luna88k 実装に合わせるか……

2013-11-18 01:26:46
Izumi Tsutsui @tsutsuii

mlterm-fb 3.3.0 + sixel対応版 tw タイムライン on NetBSD/luna68k。エスケープシーケンスの問題は直ってる。TLは約一時間遅れだけど軽いアイコン画像変換ツールを用意すれば何とかなる? http://t.co/gS4EZGWZRZ

2013-11-18 22:27:39
拡大
Izumi Tsutsui @tsutsuii

うーん。RT多いツイートだとアイコン表示でN分という感じ。RT非表示オプションとかあればいいのか?

2013-11-18 22:32:56
arakiken @arakiken

@tsutsuii 試しに超適当2値化&sixel化ツールを作ってみたところ、多少はマシになりましたが、LUNAIIで実用レベルにもっていくのは無理っぽい気がしてきました。 http://t.co/eaxmURxGcs https://t.co/6r6ciCAXGk

2013-11-18 22:34:18
1 ・・ 13 次へ