原典側に持っていって、リファクタリングができてるかどうかの確認をするしかなさそう。
OpenBSD(uaa@), Ham(JG1UAA), Ingress(Lv14, RES), Japanese(Sagamihara-city, Kanagawa)
Another side: https://social.tchncs.de/@uaa
npub1rarr265r9f9j6ewp960hcm7cvz9zskc7l2ykwul57e7xa60r8css7uf890
Messages from this Mastodon account can read via mostr.pub with npub1j3un8843rpuk4rvwnd7plaknf2lce58yl6qmpkqrwt3tr5k60vfqxmlq0w
原典側に持っていって、リファクタリングができてるかどうかの確認をするしかなさそう。
ふーん、buffer mode時に「Warning サーバーへの接続に失敗しました。」をコピペすると、「わrにんg サーバーへの接続に失敗しました。」となるのが正しい動作なのか。
なんかそう動いてないんだよな。修正前も後も。
ゴミですね…割と最近までIPv6アドレスを1個しかくれない、なんてことをやってましたから(今はプレフィックスでくれるけど)。というか、言わないとIPv6対応もしてくれない。
さてと、まずはeucmode周りを削除(current_locale == LC_CTYPE_EUCで判断)して、ここから面倒なことをしないといけない…うっやる気スイッチoff ※そんなスイッチはもともと実装されてない
GNU公式のプロジェクトじゃないのにGNUなんとかと名付けるの、最近は(?)FSFから改名のお願いが届くらしい
GPLに従うならGNUなんとかもあるでしょうけど、GPLじゃないライセンスだとOpenなんとかとかLibreなんとかという方が良いような感じですよね…
Gnu is Not UNIXったって、そのUNIXが今どれほど生き残ってるの?というのもあるし…(と書くと林檎な人達から火矢が飛んできそう)
このアカウントは、notestockで公開設定になっていません。
@omasanori 少なくともsj3のopenpty()使った実装への書き直しは必須な気がします…
@omasanori その辺りの判断はお任せします。こちらは今の(ビルドしやすい)環境で、今後必要になりそうなものを洗い出してます。
だからアレか、8086では自己書き換えはあんまりやらない方が良いって話があったのか(何でその話を見たかは忘れたけど…8086マシン語秘伝の書か、あるいははじめて見る8086だったか…)
とりあえずFUJIMI-IM/sj3、自分とこのdevブランチは一旦止めといて…utf8ブランチ切って作業続けます(これで問題なければdev側に持ってきます)
@omasanori (OpenCOBOLどこいっちゃったのー?って探しておりました…)
あれ、OpenCOBOL=GnuCOBOLってこと? https://sourceforge.net/projects/gnucobol/files/open-cobol/
日本だと(日経某の記事の煽りもあるのか)COBOLは滅べって言われがちだけど海外だとどうなんだろう?
(敢えてこっちで)
https://twitter.com/mss_0337/status/1771771611739455570
「DEC Alphaとかいう
64bit をぶん回すために
Alpha Tronなんてものもありました」
Alpha AXPにITRON系のOS載せたって事例あるのかな…
SPARCは確かあった気がする(I-right/Sだっけ?)。
※単にBSD/Linuxで動けば良いというソースを、他のに対応させるのってめんどくさいよねーやだなー、ということを言いたいだけです
OSSなUNIX系OSとしてはLinuxが一番使われているけど、これって確かSystem VとBSDの良いとこ取りって聞いてる(とはいえ、今はもうLinuxはLinuxという感じになってるようだけど)。
BSDはともかくとして、System V系が再び力を持つ日というのはやって来るんだろうか。昔は「これからの時代はSVR4でキマり!」なんて本もあったように思えたのだけど…
https://upload.wikimedia.org/wikipedia/commons/5/50/Unix_history-simple.png
著作者のお気持ちを損ねる気は無いのだけど、そこに修正を行いたいソースがあり当時を知る必要がある以上仕方なく墓を掘らにゃならぬ…そんな状況っていうのもなあ。
そうなると、バイナリしか出さないものに対しては簡単にできてしまうだろうし、ソースコードを公開していても「ソースコードの改変は一切禁止」と簡単に…まあ、EULAで普通に禁止事項として書いてるか。
なんかabandonwareに対するメンテナンス、著作者が「面倒だから俺の書いたプロダクツは捨てちまえよ、だから改変とか派生は禁止なー」とか法を盾に言い出すのが居てもおかしくないなって。
Bitmap Kanji Font/TB Mincho M: TYPE BANK CO., LTD.とあるからあのフォントはタイプバンク系か…全ての答え合わせがあのスクリーンショットに出ているのかも。
ふと思ったけど、ソフトウェアのメンテナンスを拒否する権利(ソースコードは公開されたままの状態で一切の改変を禁じ、ソースコードないしバイナリに対するパッチなどによる修正も禁止する)、というのは著作権の範疇に入るんだろうか。
NEWS-OSとかちょっと触った程度だけど、かな漢字変換ってエルゴソフトのが入ってたのか。EGBRIDGE系…って、MSX向けかな漢字変換エンジン…HBI-J1に入ってたのもエルゴソフトのだったから、こういうところからつながりがあるのかと驚いてる。 https://github.com/briceonk/news-os/blob/master/nws5000x-mame.md
なっ?!(リンク先も要注目)
Sony News OS in Mame (Putty + OpenVPN + Xming)
https://www.reddit.com/r/MAME/comments/10eg561/sony_news_os_in_mame_putty_openvpn_xming/
https://github.com/briceonk/news-os
Compilation of information about setting up and using Sony NEWS Unix workstations. There is limited information about NEWS workstations, especially in English. Hopefully this will help preserve information about these workstations. This is very much a work-in-progress.
これってNetBSD/news界隈では知られているんだろうか。4年くらい前から作られているようだけど。
TIOCKGET/TIOCKSETってNEWS方言じゃないのか。 https://opensource.apple.com/source/screen/screen-22/screen/tty.c.auto.html
そもそも#if defined(ENCODINGS)ってことはなんかの(ある程度知られている)拡張要素らしいと解釈すべきか。
(再度自分に問う)本当に標準出力に対する、文字境界単位での出力保証って要るのか?
バイナリファイルを標準出力に流すケースだってあるだろうし(そんな時は文字コードの解釈が何であろうとヒトが読むにはぐちゃどろになる)、想定していない文字コードのブツを流してこられてもヒトにとって意味ある表示にはならないのだし。
単に「表示(端末、と言い換える方が正しいか)」がおかしくならないことを保証する以上の意味は無い…?
入力側の保証が必要なのは確かなんだけどねえ。
エコ=意識高い系、という解釈もされてしまってるような。
余裕が無ければそこまで意識を回せないという現実も、あるような。
このアカウントは、notestockで公開設定になっていません。
…で、なんでNEWSのマニュアルを見てるんだろう。ていうかsj3とかのアプリケーションに関するマニュアルとかもPDFで転がってたりするのかな。見つけ方が悪いのか自分は見つけられていないんだけど。
やっぱそうだよね、特権状態とかユーザモードとか関係なく、叩きたい時に叩きたい場所を叩けるのがパーソナルコンピュータだと思う(MSX育ちなので、そういう気分になることはままある)。
…なんてことを言ってると、PICとかAVRみたいなマイコン触っとけって言われそう。
このアカウントは、notestockで公開設定になっていません。
SONY NEWS NWS-1510/1530/1580 SERVICE MANUAL http://bitsavers.trailing-edge.com/pdf/sony/news/1580/9-974-300-11_NWS-1510_1530_1580_EK_Model_Service_Manual_1989.pdf
uPD65013Gへの指示ってあるけどこれは単にゲートアレーの型番なので中身のロジックが何なのかは機器によって異なるよね。FS-A1F(MSX2)にも載ってるって話が https://w.atwiki.jp/matomerutokoro/pages/42.html に出ていたりもするので。
とりあえず、NEWSの画面表示部分はビットマップ(フレームバッファ)である可能性は高いだろうってことは分かった。ioctl(TIOCKGET), ioctl(TIOCKGETC)もおそらくハードウェアに関する状況というよりはソフトウェア的なフラグを取得してるのかなと想像してる。
簡単に眺めているけど、グラフィックボードのオプションってどれも"bitmap"が付いてるから…PC-98x1のようなtext VRAMに何か書くとキャラクタがほいっと出るような奴じゃなくフレームバッファ物にしか見えない。
ああそうか、別にここ(ハードウェア)がどうなっていようと関係ないのか。OpenBSDならwsdisplayが端末の表示を担っているように、なんかそれに相当する部分に「今は日本語モードなのでEUC-JP来たら漢字フォントから文字拾って表示しといてくださいな」って指示を出しているだけなのかも。
これは…?
SONY NEWS TECHNICAL MANUAL Third Edition http://www.bitsavers.org/pdf/sony/news/Sony_NEWS_Technical_Manual_3ed_199103.pdf
この辺の話を出すと、出力側について文字列境界を保証する必要って本当にあんの?という疑問まで出てくる。
イマドキの端末エミュレータって昔よりは賢いだろうから、その辺はうまく振る舞ってくれるもんだと思うし…阿呆なことをすれば阿呆な結果になるのは当たり前なんだから保証があろうとなかろうと阿呆なことになる(やっても無駄)という気がしていて。
NEWSとかsj3の歴史を知らないから適当なことを(自分が)言っているだけ、という可能性の方が高いのかもだけど。
将来的にEUC-JP←→UTF-8(UCS-2)の簡易変換を組み込みたいと考えているから、お飾りのeucmodeは要らない気がする。
eucmodeはutf8modeに変えて、これとcurrent_localeとの状態で
utf8mode=1, current_locale=EUC → UTF-8
utf8mode=0, current_locale=EUC → EUC
utf8mode=x(無視), current_locale=SJIS → SJIS
みたいな実装にしていくのが良さそうなんだけど…あのコードってどこに魔物が潜んでるか分からないから(BS/DELキー周りでコード追加したらなんか動作おかしくなったし)この見立てでイケるかは本当に不明。
NEWS-OS上の場合、get_ttymode()でioctl(TIOCKGET)でttyモード取得→ttyモードがEUC or SJISであることの確認(この時にEUCならset_eucmode()呼び出し)→ioctl(TIOCKGETC)でstruct jtcharsを取得ってこの構造体は何なんだろう。
sjgetchar.cにおけるset_eucmode()って単にeucmode=1を設定するだけの機能しか無いので(このフラグでwrite_stdout()時のバッファリング(?)がEUCの文字境界で判断するかSJISで判断するかが変わるだけ)、本当に何なんだこれって感じではある。
おそらくなんだけど、AXのように表示モードが日本語/それ以外になっていて、日本語でもSJIS/JIS/EUCみたいにサブモードがあって…みたいなマシンだったんだろうか、NEWS。
(もしかしてNetBSD/NEWS辺りのコードを見ると何かわかるのかな)
current_localeとeucmodeとの関連が謎だな。統一すりゃいいのにって気はする。
main()→get_ttymode()→set_jmode()で
ロケールがja_JP.SJIS
current_locale=LC_CTYPE_SHIFTJIS(eucmodeは0のまま)
ロケールに"ja"が含まれる
current_locale=LC_CTYPE_EUC、set_eucmode()実行によりeucmode=1
となるのに、その後のparsearg()からも(コマンドラインオプション次第では)set_eucmode()が呼ばれるという。つまり、current_locale=LC_CTYPE_SHIFTJISでありながらeucmode=1という状況は有り得る。
あー、これはアレだ。NEWS向けのコードを削ってしまったので元のコードが何だったかわかんなくなってるやつだ。原典見ないと…