でもexport TERM=xterm-monoでsj3を起動すると「そんなtermcapは知らん」と怒られる。
どーすんだよ、これ…(直すしか無いか)
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
でもexport TERM=xterm-monoでsj3を起動すると「そんなtermcapは知らん」と怒られる。
どーすんだよ、これ…(直すしか無いか)
あー、$TERM=xtermだと、xterm-256colorか何か相当として扱われてしまうのでscriptでログ取った時にbashがなんか色々ヘンなエスケープシーケンスを付けてくれるのか。
で、xterm-monoならそれは起こらないと。
(実はsj3上のbashでこれが問題になってる)
(こういうのを一発で動かせるかどうかっていうのは、スキルの有無が出ちゃうとこなんで…その程度のスキルしか持ち合わせてないってことが証明されちゃう訳なんですよ)
なんか動き出そうとしてるところまではわかったけど、やっぱいきなりコード突っ込んでもちゃんとは動かないもんですね…
流石に今のご時世、コミュニティなしでプロジェクトを回すというのは…誰もも見向きもしないプロジェクトをやるしか方法が無いような。
このアカウントは、notestockで公開設定になっていません。
tar ballをビルドするときは隔離した(使い捨てとかの)環境でやらないとダメなんだろうかねえ…
狙われるコンパイラ……“バックドア入りアプリ量産”のリスクと対策 (2019/5/14) https://ascii.jp/elem/000/001/858/1858028/
君のコンパイラや開発環境は侵害されていないか?――開発者が「サプライチェーン攻撃」に加担しないためにすべきこと (2019/5/7) https://atmarkit.itmedia.co.jp/ait/articles/1905/07/news012.html
OS「UNIX」の生みの親が残した「ソースを調べても発見できないトロイの木馬の可能性」の証拠が40年越しに再発見される (2022/10/03) https://gigazine.net/news/20221003-thompson-trojan/
…え?
「楽園なんてものはねーぞ、HAHAHA!」ということですか(将来的にはRISC-Vなんかもタゲられそう)
このアカウントは、notestockで公開設定になっていません。
sj3のコードを手作業でK&R→ANSI化した身としては、そういうのがあるととっても嬉しいんだけど機械的にやるのが難しい場面もあったように記憶してます。
単に
hoge(foo)
int foo;
{
return foo;
}
みたいに関数の型が無い→じゃあintね程度はともかく、こんな風に定義した関数を
hoge (v1, v2, v3, v4, v5, v6)
int v1, v2, v3, v4, v5, v6;
{
...
}
hoge(v1, v2)みたいに可変長引数的に呼ばれちゃうとかーなり面倒です。<stdarg.h>使って書き直せば良いんですけど。
このアカウントは、notestockで公開設定になっていません。
Ubuntuの日本語Remixって使わないんだけど使うならこっちの方が良いんだろうか…Remixでない方を選んでしまうんだけど。
https://www.ubuntulinux.jp/download/ja-remix
(unzipの日本語ファイル対応は嬉しいな)
やっぱx86_64を常用するのは止めた方が良いんだろうか。とはいえお安くそこそこにパフォーマンスがあって頑丈さがある程度あるプラットフォームってx86(_64)くらいしか思いつかないんだけど…
(むしろOpenDHTを持ってきたならmvoice https://github.com/n7tae/mvoice の方が先では?という気がしなくもなく)
(OpenBSD上でMSHVをいつかは動かしてみたい、という理由でALSAを移植してたんですけどなかなかそこまでは進みませんねえ…)
久々にWindowsマシン上でMSHVを起動して14MHzのFT8を受信してたんだけど…アフリカは難しいですねえ。
屋根裏に適当に張ったワイヤーでも南米の信号が見えてるというのはなかなか凄いものですけど。
とたまには無線っぽいネタも投げてみる。
sj3もそうなんですけどCannaもK&R書法なんすよ…まあコンパイラが旧時代のC言語のサポートを今すぐで廃止ということはしないと思いたいのですが(願望)。
OpenBSDの/usr/include/stdbool.hは
/* $OpenBSD: stdbool.h,v 1.7 2015/09/04 23:47:09 daniel Exp $ */
/*
* Written by Marc Espie, September 25, 1999
* Public domain.
*/
な感じになってる。そういえば自分も昔書いたコードで何故か<stdbool.h>を知らず知らずのうちに使ってた…
C23、地味にK&R書式とかトリグラフの廃止とか…古いコードはちゃんとメンテナンスせーよというメッセージを感じる。CもC++のようにauto なんとかーが並ぶようなコードになるのかなあ。
C23 から bool でいけるのか (stdbool.h みたいなの必要だったりする?)
(C屋なのでどうしてもC++のようにその辺を厳密にできないのですごめんなさいごめんなさい)
(そもそもintをbooleanのように扱うなって怒られそう…)
否定ってどうなんだろう、!hoge #hoge /hoge -hogeどれもああ負論理なんですねーって思ってしまう。
(個人的には hoge == 0 よりも !hoge 派です…)
日本のDragonFly使い、探せば絶対どこかに居るはずなんだよな。自分がそこにたどり着けていないだけで。
GitHub ActionsでBSD(FreeBSD、OpenBSD、NetBSD、Dragonfly BSD)のユニットテスト環境を構築する方法 (2023/9.16) https://debimate.jp/2023/09/16/github-actions%E3%81%A7bsd%EF%BC%88freebsd%E3%80%81openbsd%E3%80%81netbsd%E3%80%81dragonfly-bsd%EF%BC%89%E3%81%AE%E3%83%A6%E3%83%8B%E3%83%83%E3%83%88%E3%83%86%E3%82%B9%E3%83%88%E7%92%B0%E5%A2%83/ という記事もあるくらいだし。
マストドン5つの誓い
一つ、未成年とはセックスしない
一つ、性病をうつさない
一つ、借りた金は返そう
一つ、花見で殴らない
一つ、チン凸しない
一つ、花見で酒を吹きかけない
一つ、救急車呼ぶほど飲まない
一つ、領収書の扱いで揉めない
一つ、全裸DMを送らない
一つ、無修正まんこを晒さない
一つ、連れ込んだ人数やヤった人数で競わない
一つ、中学生を連れ出すのはやめよう
一つ、卒塔婆は粗末に扱わない
一つ、人妻に手を出すのはやめよう
うーん、身近にDragonFlyBSD使いが(実はいるのかもしれないけど)居るような気配が無いから今回のように詰まった時には本当に困るな…この手のトラブルは多分Users ML辺りに出てくるだろうから、って覗いてみても特に何も出てないし。
https://lists.dragonflybsd.org/mailman/listinfo/users
悩むなら聞け、を実践すべきなんだろうか。
* Couldn't find host mirror-master.dragonflybsd.org in the .netrc file; using defaults
* Hostname mirror-master.dragonflybsd.org was found in DNS cache
* Trying 199.233.90.72:443...
* Connected to mirror-master.dragonflybsd.org (199.233.90.72) port 443
* ALPN: curl offers http/1.1
* SSL certificate problem: certificate has expired
* Closing connection
どうしろと…
うーん、ca_root_nss-3.93.pkgによる/usr/local/share/certs/ca-root-nss.crtは既に組み込み済みなんだよなあ。
/usr/srcをgit pullしてみたけどSSL鍵に関する変更は当然無いか…
念のため*BSDな仮想マシン達も調べる。OpenBSD-currentはxz-5.4.5、NetBSD-10-RC4(だったっけ?)はxz-5.2.4、FreeBSD-14はxz-5.4.4、DragonFlyBSD-6.4.0はxz-5.2.5。
とはいえDragonFlyBSD、SSL証明書切れちゃったのかpkg updateで更新かからないんだけどどう直せば良いのこれ…
DOS/VどころかAXのJEGAモードでKTXは(スクロールが)つよつよでしたね。286や386でも十分戦えました。むしろ486以降じゃないとDOS/Vはツラいような。
WTERMかKTXかという戦い、自分の周囲ではKTX派が主流でしたね…とはいえWindowsの波によりどちらも姿を消していったと記憶してます。
Nifty4UはLinuxを常用するようになってから使い始めたかな。KTXだとKTXnif使ってた気がする。あとはMASH(mmm)系BBS向けにKTXmmmか。通信ソフトのマクロ文化も、今となっては廃れているのだろうか?
当面の対応としては…確実な対応が見込めるまでの間、仮想マシンを不必要に動かさない、辺りで行くかなあ。Debianはxz-5.4.1、Slackware-15はxz-5.2.5、Vine-2.5にはそんなものは無い(無い!)。
広く使用されている「xz」にssh接続を突破するバックドアが仕込まれていた事が判明。重大度はクリティカルでLinuxのほかmacOSにも影響 (2024/3/30) https://softantenna.com/blog/xz-backdoor/
OpenBSD使ってるからそんなに影響ないだろうとタカをくくっていたら手元のLinux機のメンテ要るよね?忘れた訳じゃないだろうな…という状況で悲鳴上げてます(ってその程度で済むならこんなニュースにはならない)。
うげええ、手元にあるxz-5.6.1のアーカイブって.tar.gzも.tar.xzも「やばいやつ」じゃないか…怖い…
このアカウントは、notestockで公開設定になっていません。
Archはxz-5.6.1-2が出てるな。pacmanに委ねて良いのかな?
おぉーん、Voidはxz-5.6.0、Archはxz-5.6.1、ビンゴだぜー💢
そうか、ローリングリリースなdistroは警戒しないといかんか…って、VoidとArchの仮想マシンが居るじゃないか家にはああああああああ(メンテしないと…!)
https://twitter.com/naota344/status/1773859359929565201
まったく、朝からほんとやってられない一日だな…とか心底思う…仕事終わって家でぼーっとしてたらこんなニュースを耳にするとは。頭痛が痛い(と敢えて書く)。
そうなんだよなあ、OS自体のセキュリティが完璧でも、script bombへの耐性がある訳じゃない。
このアカウントは、notestockで公開設定になっていません。
うーん、この時点で最も頼るべき相手は誰だろう。今使っているOpenBSDを信じよ、というのが一番有力な選択肢っぽいんだけど。
slackware-securityは静まってるな。 https://marc.info/?l=slackware-security&r=1&b=202403&w=2
https://source.ipfire.org/source-2.x/ に転がっているxz-5.6.1.tar.xz、さっき拾った.tar.gzと違いは無かった。
Slackwareのxz-5.6.1.tar.lz、どこからソース取って来てるんだろう(gitから直とか?) build-to-host.m4自体が無いんだけど…
http://download.openpkg.org/components/cache/xz/ にxz-5.6.1.tar.gzがあって、とりあえず落として https://git.savannah.gnu.org/gitweb/?p=gnulib.git;a=blob;f=m4/build-to-host.m4;h=f928e9ab403b3633e3d1d974abcf478e65d4b0aa;hb=HEAD と比較してみたけど…何か微妙に違う。とはいえ、比較対象がこれで良いのかもわからない。
https://softantenna.com/blog/xz-backdoor/ の記事では「悪意のある変更は難読化され、バックドアの一部はtarballにのみ含まれるなど巧妙な手法で導入されています。」ってあるけど…xzのtar ballった.tar.bz2も.tar.xzも.tar.gzもあるようなので全部を調べてみないと分からないってことか?
このアカウントは、notestockで公開設定になっていません。
https://fossies.org/linux/xz/m4/build-to-host.m4
大丈夫そうに見える…だけ?(or気のせい?)
裏側に銀色のとか8mmのビデオテープが張ってあったりするんでしたっけ。
確かに親は確か機械科の高校出てた気がするなのでそっちが強い…自分はそういうスキルが無いので羨ましく思うことが多くって。
このアカウントは、notestockで公開設定になっていません。
OpenBSD-7.4のxzは5.4.4。多分portsの(7.5リリースのための)リポジロトリロックは終わってるはずなので、7.5も5.4.4のままと思われ。
openbsd-portsでもxz-5.6.1へのアップデートがあって、「ちょい待ち」というやり取りがあったけど…m4/build-to-host.m4がtests/files/bad-3-corrupt_lzma2.xzによるシェルスクリプトを起動しようとするがLinux以外では止まるので影響は無いって話が出てる。
https://marc.info/?l=openbsd-ports&m=171174950828153&w=2
xzのrepoを見に行こうとしたら、なんか閉じてる。
uaaさんのガチャ結果!
[R]ブランキャット https://shindanmaker.com/1155420/pic/ab42891815ff66dd5aca49195320c024eefe0e2b_wct
#shindanmaker #GachaDamao
https://shindanmaker.com/1155420
はんぺんじゃないのか
むしろ雑でも良いから「えいやっ」と書いて動かないと挫折した方が良いのかな
utf8←→wchar16(sj3の内部文字コード、EUC-JPを一部改変)なコードをちょこちょこ書き進めてるけど、見直せば見直すほど「いいのかなーこれでー?」感が強くなって手が進まない。
医療系は実名主義なんすよね…果たして何かあった場合に守ってもらえるのかどうか(ってそのリスクも含めたお給金だと言われてしまうのだろう)。
このアカウントは、notestockで公開設定になっていません。
/usr/ports/editors/nvi/Makefile
COMMENT= ex/vi text editor with wide character support
V = 2.2.1
GH_ACCOUNT = lichray
GH_PROJECT = nvi2
GH_TAGNAME = v$V
DISTNAME = nvi-$V
/usr/src/usr.bin/vi/README
# $OpenBSD: README,v 1.13 2016/01/06 22:46:59 millert Exp $
# @(#)README 8.149 (Berkeley) 7/14/97
This is version 1.79 (7/14/97) of nex/nvi, a reimplementation of the ex/vi
text editors originally distributed as part of the Fourth Berkeley
Software Distribution (4BSD), by the University of California, Berkeley.
HHKB Lite2というカーソルキー付きのモデルがあって…実は使ってました。
部材が手に入る間はメンテし続けられるって強みがあるよね、自作キーボード。キーボードのために一生分のキースイッチを買ったというライターも居たと昔聞くし(でも保管したキースイッチって劣化しないのか…?)。
あー、新JIS配列って廃止されたのか。
https://esrille.github.io/ibus-hiragana/layouts.html
ということをibus-hiragana https://github.com/esrille/ibus-hiragana から知る。
普通に売られてる(入手性が良い)ってのは、やっぱ重要だよな。いくらキーの感触が良くても、廃盤でもう買えませーんとなると難民化するしかない(次のキーボードを入手できずに苦労する)。
このアカウントは、notestockで公開設定になっていません。
PayPayカードの審査に落ちる、という実績を解除した。
おそらく住所の設定に問題があったのかもしれない(※)…そのうち直してやり直すとしよう)
(※)住所が抜かれた際にどの経路から抜かれたかを判断できるよう、建物名に符丁を入れてる
しっかし、クレカ番号の変更に伴う事務処理…どんだけ面倒だと思ってんだよ💢
カード番号抜かれたとかこちらの不手際による変更はしゃーないものとしてやるけどさ、企業都合でサービス終了しといて、その引き継ぎ先となるカードについては「自分で番号伝えて(公金支払いなど一部のサービスは対応しますけど)」ってのは…年会費払っているのにその対応は流石にどうかと思う。
20年近く使い続けているから信用情報もそれなりにあるはずだし、切るのは流石にどうかなと思ったんだけど…流石に今回の対応はちょっとねということで、バイバイする方が良いのかなって。
コード書こうと思ったけどクレカ周りの問題(サービス終了予告に伴う移転先の検討と申込み)を片付けるので時間が消えてしまった…
3dfx vs NVIDIAはNVIDIAに3dfxが食われるという歴史だったよなあ…(遠い目
3dfx Voodooは2D側の映像出力のパススルーをやるので、2D側の画質が落ちるという欠点を抱えてたんだっけ…
https://ja.wikipedia.org/wiki/3dfx
@redbrick あー、「出力」の意味を自分が取り違えてたみたいです。プロセッサの描画出力じゃなく、映像信号の出力として解釈しちゃったのでVoodooじゃないのと思ってしまいました。
Voodooは2Dのカードの出力をVoodoo側に入れて、3Dなアプリを動かすときはVoodoo側、そうでないときは2D側から映像出力が出る奴。
PowerVR PCX/PCX2はPCIバス越しに、2Dのフレームバッファに3D画像を描画する作り(なので相性問題が結構あったと聞いてる)。
Windows9xの時代、とりあえずグラボに困ったらMillennium突っ込んどけば困らなかったのは事実。Gシリーズとか出てきてMillennium/Mystiqueが安く中古屋で転がっていたおかげで結構助かった記憶があります。
PowerVRは…ET6000と組み合わせて使ったことがあるような気が。3Dが映れば良いんだよ、という目的ではよかったんだけど…その後のDirectXとかの対応でお察し。
ちゃんとOAK Spitfire(OTI64111)とRendition Verite V1000/2x00の記載もある。良き。 https://gona.mactar.hu/DOS_TESTS/
しっかし、nV1/STG2000がク○なのはともかく(よく今の地位を築いたものだなNVIDIAは)、Matroxで使うDOSもアプリも結構アレなんですね…Windows3.1の頃はMillennium信者が大量にいたけど。
(でも何故Tomb Raider on PowerVR PCX2でlaggingとか色々書かれてるんだろう…m3Dっていう名前の、PowerVR積んだオプション出してましたよね?)
@hadsn ハードウェアスクロールを使うものの何かの処理(ラインコンペアと聞いたけどコレ何?)を行うって設定だったはずです。
https://www.itmedia.co.jp/pcuser/articles/1808/15/news069_2.html
http://fpcu.on.coocan.jp/dosvcmd/_disp.htm
でもあの表って、Tomb Raider on PowerVR PCX2でOK取ってるカードってあんまり無くて、大抵はUniVBE必須ってなってるんだけど…どんだけハードル高いんだよ。
DOSの動かないVGAというのはどこかで聞いたことがあるのだけど、もしかしてスクロール関係に問題があってDOS/Vの動かないVGAという意味だったんだろうか?(そーゆう時は/HS=OFFだか/HS=LCだかを設定するってのは確かどっかで聞いたような、特にET4000/ET6000は/HS=LC必須だったと記憶してる)
このアカウントは、notestockで公開設定になっていません。
rsz = (remain < n) ? remain : n;
memcpy(buff + len, s, rsz);
別に通ぶる書き方をする気は無いけど、なんか
memcpy(buff + len, s, rsz = (remain < n) ? remain : n);
とかぶち込んでみたくなるな。
完全に元のコーディングスタイルをガン無視することになるけど…
fflush(stdout)してるなら、その前にfwrite(~, stdout)というコードは別におかしくないよね。こういう書き方は滅多にはしないと思うけど…(putchar()のループ回すのめんどい)
なにこれ…64coreなRISC-Vマシンって…
Milk-V Pioneer https://milkv.io/pioneer
※Mouserだとボード単体で\23万、ケース付きだと\39万くらいします https://www.mouser.jp/c/embedded-solutions/computing/?m=Milk-V
お金が無いのでDuoで我慢します…
OpenDHTに投げてたPRにお返事付いてたので内容を修正して投げ直し…(もう一つのPRはなにもお返事ないっすね…)
このアカウントは、notestockで公開設定になっていません。
ぬあああああ、常用環境はmsgpack-cxx入れてないんだ…
checking whether the shell understands "+="... no
だったら+=使ってる記述の部分くらいうまく回避するようする待ってくださいよconfigureだかautoconfigだか氏ー
さ:砂糖対応
し:塩対応
す:酢対応
せ:醤油対応
そ:味噌対応
マイ電柱とか立てちゃうような界隈だから、お金と暇のある人がそのうち試してくれるものだと期待するとしよう。
水銀を使って配線(?)すると音質が良いって話を昔見た気がするけど…多分気のせいだと思う。仮に本当に試した人がいたとしても、一体どうやったんだという気が。そもそも今のご時世においては水銀の扱いなんて面倒極まりないものだし。水銀使った体温計がそこかしこで売られ、うっかり割っても大事にならない時代は…もはや過去の物。
かつては何かの意味があったことは確かであり、その意味を汲み取りたいところではあるが、今日においてはその意味は希薄であり、意図を汲み取ったところで無用である可能性が高いと判断されるのであれば、それは切って捨てるのもやむなしということになるのだろう。
まあ、一旦切って問題があることが分かれば、また戻せば良いだけの話…かな?カジュアルにやっても多分咎められないと思いたい。
canuumのソース見てみたけど、自分の理解だとsj3みたいに文字コードの種別に応じ文字境界単位での出力を~といった感じの物は、見当たらない。おそらくprintf.cのflushw_buf()の処理になるんだろうけど、バッファの内容をputchar()でべーっと吐くだけ。
canuumもNEWS-OS対応していて、このコードでも動くというのなら…出力時における文字境界単位でなんかやる意味って本当に無いってことにならんか?(sj3の、オリジナル…コメントがちゃんと存在する状態のコードを見ない限りその意図は分からないってことでもある)。
putchar()で標準出力に吐くにしても、吐いた先で一旦バッファリングしてからwrite()なりなんなりするはずだと思うんだけど…
canuumとかのソースを見る?
あんまり難しく考えなくて良いのかなあ?「2byteで構成する!」なら2byte、「5byteで構成する!」なら5byteとりあえず拾って、その拾ったものが正しいかどうかを検証してグリフにするかエラーを吐くかを決める。変な気遣いはしない方向で。
https://gist.github.com/RobertAudi/9f1ce1d5ecc9c12ae5c4c6c086369c5c
3.3 Sequences with last continuation byte missing
All bytes of an incomplete sequence should be signalled as a single malformed sequence, i.e., you should see only a single replacement character in each of the next 10 tests. (Characters as in section 2)
って書いてあるけど、Firefox上での表示は"only a single placement character"にならないケースがあるな。
ISO 10646のAnnex Rってのはこれかな? https://www.cl.cam.ac.uk/~mgk25/ucs/ISO-10646-UTF-8.html
UCS Transformation Format 8 (UTF-8)
だ ん だ ん 訳 が わ か ら な く な っ て き た ぞ ぅ
sj3のwrite_stdout()、3byte EUCの場合(SS3, 0x8f)…2byte目ないし3byte目がEUCの範囲を外れていてもとりあえずホールドしてる感じですね。これはSJ_read()に関しても同様。
SS3, CR, 'a'みたいなシーケンスになった場合、おそらくSS3を棄却、CRと'a'を表示というのが理想なんだろうけど、って不正なEUCを食らった場合の扱いというのもどうなってるんだろう…いやそもそも不正なEUCとは…
セキュリティを考えると、不正なエンコーディングに対しては頑なに受け付けないという作りにするしかない(MSB側の2bit分を無視するという実装は許されない)気がするけど。
UTF-8、複数バイトからなる場合の2nd octet以降のMSB側"10"が正しくなかった場合ってどう扱うんだろう。
とりあえず1st octetの規定に従ったoctet数だけは読みだして、まるっと棄却するとかそんな感じで良いのかな。
不正なエンコーディングに対する処置をどうするかっていうのがRFC 3629( https://tex2e.github.io/rfc-translater/html/rfc3629.html )を見てもよく分からなくって。
原典側に持っていって、リファクタリングができてるかどうかの確認をするしかなさそう。
ふーん、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向けのコードを削ってしまったので元のコードが何だったかわかんなくなってるやつだ。原典見ないと…