10周年のSPコンテンツ!

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

Twitterつぶやき駆動により NetBSD/luna68k および OpenBSD/luna88k のフレームバッファドライバとそれを利用した mlterm-fb のそれぞれの開発が進んでいく(!?)様子です
プログラミング mlterm NetBSD Luna OpenBSD omron
3
Kenji Aoyama @ao_kenji
wsconsのcopycolsでalignmentが合わない場合に再表示されない件、hp300のコードをluna88kに持ってきて修正。http://t.co/tYlBOxntYB
Kenji Aoyama @ao_kenji
8月頃からちびちびと追いかけていたのだけれど、コードのロジックとしてはbit31が画面右、LUNAのframe bufferはbit31が画面左。結局生データを見比べながらluna88k用に直した。
Izumi Tsutsui @tsutsuii
@ao_kenji ガーン。先を越された( ゚д゚)
Kenji Aoyama @ao_kenji
@tsutsuii 実際に困ってる人は世界で数人と思われますが、つついさんにそう言っていただけるなんて、うれしいやら恥ずかしいやらです(^_^)
Izumi Tsutsui @tsutsuii
@ao_kenji mlterm-fb の背景を変えつつ何度も起動するときのコマンドラインでめんどくさいと思って rasops とか hp300 の謎ビットフィールド命令マクロとか見てたんですが活性化エネルギーが足りなかったのでした。luna68kでも参考にしてみます
Kenji Aoyama @ao_kenji
@tsutsuii luna88kの場合は、m88kのビットフィールド命令が使えるかどうか考えきれなかったので一旦Cで書いてます。luna68kならhp300のマクロが使えるかもしれません...
Izumi Tsutsui @tsutsuii
HP9000/300のモノクルフレームバッファって MSB側が右 なのか……
Kenji Aoyama @ao_kenji
@tsutsuii 現物持ってないので結局分からなかったのですが、ソースを追いかけていてそんな感じがしました。
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...
Izumi Tsutsui @tsutsuii
@ao_kenji mlterm-fb の 1bpp サポート実装のときに「MS bit 側が右」というハードをサポートすべきか(そもそも存在するのか)という話が挙がったのでした
Kenji Aoyama @ao_kenji
@MiodVallat @tsutsuii Then, I leave rewriting GETBITS as my future exercise:-)
Izumi Tsutsui @tsutsuii
M68000ファミリのビットフィールド命令 http://t.co/deBEZZ2rK5 XM6i のエミュレータCPU実装で最も苦労されたという話もあるビットフィールド命令の解説
Y.Sugahara @moveccr
@tsutsuii kamada神の仰せのままに実装すれば動作はするんですが変態5byteアクセスはどこにも記述を見つけられなくて苦労しました
Izumi Tsutsui @tsutsuii
うーん。 hardluckalignment の場合だけ hp300 の windowmove の実装を適用することを考えていたけれど、全部 windowmove にしたほうが速いのだろうか
Izumi Tsutsui @tsutsuii
OpenBSD/luna88k だと fb で rasops1 を引っ張ってくるけれど、実際には MI rasops 側はほぼ使ってなかったので NetBSD/luna68k では init 関数はサブセット書いて済ませてて、結果として raspos_mask.c が入らない罠
Izumi Tsutsui @tsutsuii
luna68k の omrasops.c を書かれた西村さんは wsdisplay の大家と言ってもよい人。一方、hp300の windowmove の実装はグラフィックのハードウェアbitbltのAPIに合わせた実装。モノクロはハードのサポートがないので手動実装になってる
Izumi Tsutsui @tsutsuii
MI rasops的な 1,2,4bpp な unaligned 対応 copycol 実装は http://t.co/uAo01OvuA5 にある。コメント通り Ick! な感じ。
Izumi Tsutsui @tsutsuii
ただしもともと 1,2,4bpp なフレームバッファで MI rasops を使ったものはほとんどない(pmax の pm(4)だけ?)のでテストされているか微妙というのと、LUNAのfbでは書き込みと読み出しのアドレスが違うという仕様があってそのままでは使えない
Izumi Tsutsui @tsutsuii
rasops_bitops.h の copycol をコピペって書き換えるというのでもいいんだけど、MIドライバをコピってMDに持ってくるとたいてい将来不幸になる(MI側APIが変わった時にMDが放置されるとか)という問題
Izumi Tsutsui @tsutsuii
で、ある日ふと hp300のブートローダーの fb実装から持ってくれば必要最小限か http://t.co/hR1YKKRul3 と考えたところで止まっていたのでした
Izumi Tsutsui @tsutsuii
あと、わりとどうでもいい問題として 複数のソースを混ぜると copyright の表示がめんどくさくなるので、じゃあ別のソースにするかと考えると関数宣言のヘッダファイルを追加する必要が出てきて あーめんどくさ と止まるという問題(サボりすぎ)
Izumi Tsutsui @tsutsuii
まあ、あれこれ考えているだけで進まなくて、考えるのをやめて動いているものを持ってくる締切駆動したら3日で動いたという hp300 wscons の実例 http://t.co/PEzftojisi があるので、冬休みの宿題で進まなかったら luna88k 実装に合わせるか……
Izumi Tsutsui @tsutsuii
mlterm-fb 3.3.0 + sixel対応版 tw タイムライン on NetBSD/luna68k。エスケープシーケンスの問題は直ってる。TLは約一時間遅れだけど軽いアイコン画像変換ツールを用意すれば何とかなる? http://t.co/gS4EZGWZRZ
拡大
Izumi Tsutsui @tsutsuii
うーん。RT多いツイートだとアイコン表示でN分という感じ。RT非表示オプションとかあればいいのか?
arakiken @arakiken
@tsutsuii 試しに超適当2値化&sixel化ツールを作ってみたところ、多少はマシになりましたが、LUNAIIで実用レベルにもっていくのは無理っぽい気がしてきました。 http://t.co/eaxmURxGcs https://t.co/6r6ciCAXGk
残りを読む(297)

コメント

コメントがまだありません。感想を最初に伝えてみませんか?

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