240121 共通テスト2024 英語リーディング問題をやってみる

矢車が配信でやっているのに感化されて、今年の大学入学共通テストの英語リーディング問題を解いてみた。私が最後に英語の試験を受けたのはXX年前の学生時代でのTOEICで、それも990点中600点(平均点)くらいの平凡な点数だったと思う。社会人になってからは趣味で英語のネット記事を読んだりするけど、分野に偏りはあるし、知らない単語があっても文脈で勝手に補完されるので、単語力の向上には繋がっていないと思う。

それで、採点した結果は「94点」(結果と解答)うーん。100点じゃなかったこととか関係なく、なんかもやもやする。

解いてみて、まず見たことはあるけど意味を覚えていない単語がちらほらあって、自分の単語力の無さにがっかり。まあ、単語の勉強なんて全然やってないので当然だわな。あと、興味がある話は頭に入りやすいんだけど、興味のない話は文脈が全然頭に入ってこない。論文系は自分の知らない知識があるから興味が持てるんだけど。

解答「1」が3連続並ぶところや、順番並べの問題の解答が1→2→3→4となったところは、本当にこれで合っているのか不安で何回か読み返した。これ本番だったら絶対解答を変えてたな。問題5-1で並び替えの解答に “Maki gets her university degree.” てあって、「いや “Maki had abandoned her plan to attend university”ってあるじゃん。社会人になってから大学に入り直すとか、そういう話あったっけ?」て思いながら一番最後に並べたけど、解答みたら穴埋めが4つしかないから、これはフェイクの選択肢だったって答え合わせの段階で気付いた。

制限時間80分ということだけど、時間的には余裕はなかった。今の共通テストがマークシートかコンピューターかどうかは知らないけど、もしマークシートだったら塗りつぶしを見直す時間はなかった。

久々にTOEIC受けたら何点取れるんだろう。ある程度試験対策しないとボロボロな結果になることは、今回の受験結果から見えているけど。

240120 to the next adventure! [Niji EN]

今日は半日仕事だったのでリアタイできなかった😭けど、JST 11:00過ぎで同時視聴3万人以上いたかな。他人事なのにまるで自分の一時代が終わったかのように感じられるのは何だろう。しかし、それは自分にとって新しい何かが始まろうとする幕開けでもある。私の人生経験に与えてくれた影響は大きく、それに対する想いはいつもより強いものの、昨年にZaiやXiaが去ったときと気持ちは同じ。

まあ本音を言えば、LazuLightのコンサートにもう一回くらい参加したかった。そういう意味では、昨年7月のクアラルンプールでのNiji Generationコンサートに参加できたことは貴重ないい経験だった。あの時の会場録音とイベントグッズは一生の思い出に残るだろう。

しばらくの間は喪失感が拭えないだろうけど、そしてこの先もこういうことは何度かあるだろうけど、それも込みで新しい経験を重ねて行けたらと思う。

240119 FFVII / ToTK

Image: 240119 FFVII / ToTK

ReimuのFFVII(オリジナル)プレイ配信で、アンデッド属性の敵にポーションを与えると回復ではなく与ダメージになると知って「どうやってみんなそんな事知ったの?」ていう質問があって、リスナーから「公式ガイド(攻略本)持ってる」「雑誌で読んだ」「学校で友達から教えてもらった」「Phantomoがガイド」というコメントがあって、おっさんばっかりやなぁとほっこりした。

もうすぐFFVIIの最新リメイクが出るようで、私はプレイしたことないので、出たらやってみようかな。

最近全然ゲームができていなかったので、何ヶ月か前から攻略が滞っていたTotKを再開しています。炎の神殿のボスを倒して、後は砂漠の所の異変を解決するだけ。時間を確保して集中してやれば1日で終わりそうだけど、ボス戦が辛い。いや、難易度的にはバランスいいと思うんだけど、個人的には謎解きが好きでボス戦はだるい。

240118 it has almost been two years since i was addicted to [Niji EN]

Image: 240118 it has almost been two years since i was addicted to [Niji EN]

LazuLight最後のコラボ配信、冒頭からScarleのT…リップの色の話になって笑った。何であんな話になったんだっけ。なんかその話題になって、リスナーは聞いてもいないのにScarleが自分の例を出していつも通り自爆していった気がする。

(1) 【LETHAL COMPANY w/ LAZULIGHT】LETS CAUSE CHAOS!!!【NIJISANJI EN | Pomu Rainpuff】 - YouTube

これが最後かと思ったら、LazuLight恒例のLunchLadyコラボもやる気なので、最後じゃないかも。

メンバーシップ24ヶ月のアイコンが飛び込みセーフで付いたのはラッキーなのかどうなのか。いま唯一入っているメンバーシップだったのに。まあでも、自分が心機一転するいい機会なのかな。

Image: Pomie Party Membership

240118 PS/55エミュ製作 [29]画面解像度1040x768

この開発はこれ以上進展しそうにないので、これで打ち止めとしますか。Win 3.0はほぼ正常に動作しているので、いい線まで行っていると思うんだけど、やっぱりWin 3.1のディスプレイドライバーはダメだ。

Image: Windows 3.02 on DOSVAX

CPUの書き込みデータのうち1のビットはテキストの前景色、0のビットは背景色になるようにGraphics ControllerのSet/ResetレジスターとEnable Set/Resetレジスターをセットしていることは分かるが、なぜ反転色でセットしてそれがどう働くのかが分からない。恐らくVRAMのデータとXOR演算して、反転色の上に書き込むとそのまま反転色、それ以外の所で書き込むと反転色が反転して通常色になるはずなのだが、この処理を実装すると今度はアイコンの色が反転してしまう。まだ何かが間違っている。

手がかりになりそうなのは$BITBLT.SYS。これの使い方が分かればな。DOS J4.0のBIOSインターフェイス技術解説書とかに載っているんだろうか。

この前、JDOSに1040×725のグラフィックモードが存在することを確認したが、Windows 3.xでの解像度は1040×768(またはそれに近い)であることが分かった。垂直方向の解像度を増やすとリフレッシュレートが下がり、CRTモニターではちらつきに影響が出るが、実際の所問題なかったのだろうか(→そもそもグラフィックモードの解像度が1024×768なので、それと大して変わらないか)。

DOSVAX 変更点 (4483PS13→ 4483PS14)

  • Build 4483PS14 (2024/01/18)
    • Windows 3.0 (IBMJ OEM) を PS/55 高解像度ディスプレイ ドライバーを使用してスタンダードモードで実行するための BitBlt 操作を追加しました。 (ただし、Windows 3.1 ではテキストの色が正しく表示されません)
    • いくつかのデバッグ コマンド、VRAMDUMP (ビデオ メモリ ダンプ)、PLTDUMP (パレット ダンプ)、および BLTDUMP (bitblt regs ログ ダンプ) が追加されました。
    • ビデオ BIOS での PS/55 テキスト モードの初期化が属性バッファーの外側のメモリをクリアする問題を修正します。
    • PS/55 ディスプレイ アダプターを再アクティブ化すると画面が乱れる問題を修正します。

ダウンロード

GitHub - akmed772/dosvax: A folk of DOSBox that emulates the Japanese AX and PS/55 computers.

240115 PS/55エミュ製作 [28]BitBltとグラフィック実装は9割完了

BitBltの開発を始めて11日目。JDOSの$BITBLT.SYSには矩形範囲をブロック転送するファンクションがある事が分かり、その処理を解析してビットシフトやアドレスの計算方法をどうにか見いだすことができた。

それをまたエミュレーターに実装して上手く動かすには時間が掛かったが、ついにWindows 3.0は高解像度ドライバーで表示できるようになった。下のスクリーンショットは意図的に画面外のビデオメモリーのデータも表示させている。

Image: Windows 3.02 on DOSVAX

これで安堵するも束の間、Windows 3.1では同等仕様の高解像度ドライバーを使用しているにもかかわらず、表示がぶっ壊れる。

Image: Windows 3.1 on DOSVAX

これはI/Oポートに特定のレジスターへ値を代入する処理をセットアップしたら、8割方正常に動くようになった。テキスト表示がなんか変。

Image: Windows 3.1 on DOSVAX

これも「ワケ分からん!」と言いたくなる話だが、VGAもディスプレイ・アダプターも内部レジスターへのアクセス方法が色々あって面倒くさい。

例えば、ある内部レジスターのインデックス番号01にデータFFh(16進数)を書き込む方法は、

  1. I/OポートAに01を出力し、I/OポートBにFFを出力。
  2. I/OポートAにワード単位でFF01を出力。
  3. I/OポートAに01を出力し、同じくI/OポートAにFFを出力。(ラッチ切り替え処理)
  4. I/OポートCにFFを出力。(このポート自体がインデックス01のデータポート?)

この4通りがあることが分かっている。JDOSやWindowsのバージョンが変わると、知らないI/Oポートやレジスターへのアクセスが出てきて、コード実装も私の頭の中もスパゲッティ化していく。

今回問題のテキスト表示にはBitBltは使われていない。従来のJDOS上でのグラフィックの書き込み方法と同じで、EGAのプレーン同時書き込みと同じような方法が使われている。ディスプレイ・アダプターにはEGAのGraphics Controller Registerと同等の機能があるが、今回はそれにはない追加のインデックスのレジスターへの書き込みが影響していると疑っている。ROPがAND演算の時だけ何かのビットフラグが設定されているが、その意味を解かないと解決できないだろう。

240113 PS/55エミュ製作 [27]1040×725グラフィックモード

Image: 240113 PS/55エミュ製作 [27]1040×725グラフィックモード

ここ1週間、寝ても起きても、仕事の時以外ずっとこのことを考えていた。WindowsのディスプレイドライバーがBitBLTのレジスターに代入する値をテーブルにしてみると、ある程度法則は分かったが、ビットシフトやソース、デスティネーションのアドレスが期待する表示結果とうまく合わない。結果的にアイコンがずれて表示されたり、一部が黒塗りになってしまう。最初にJDOSの$BITBLT.SYSを解析したときは全く意味が分からなかったが、このテーブルと照らし合わせるとアドレスの計算方法が分かってきた。しかし、上手くいくかどうか先行きは見えない。

そんなことより、今回の調査で最大の発見はJDOSが持つディスプレイ・アダプターの画面モードに1040×725グラフィックモードが存在したことだろうか。

モード 種類 表示文字数 ボックスサイズ アドレス 面数 画面解像度
08h 単色文字 80×25 13×29 E0000h 1 1040×725
0Eh カラー文字 80×25 13×29 E0000h 1 1040×725
03h VGAモード3互換? 80×25 13×29 B8000h 1 1040×725
0Ah 単色グラフィック 78×25 13×29 A0000h 1 1024×768
0Dh 16色グラフィック 78×25 13×29 A0000h 4 1024×768
0Fh 256色グラフィック 78×25 13×29 A0000h 8 1024×768
45h 16色グラフィック 80×25 13×29 A0000h 4 1040×725 (NEW!)

この画面モード45hはJDOS上でInt 10h, AH=00hファンクションによって切り替えることは可能だが、ビデオ信号タイミングなどのCRTCのパラメーターが設定されるのみで、他のモードと違ってDOS画面は何も表示されなくなる。

Windowsのディスプレイドライバーもこの画面解像度を使うので、最初はエミュレーターの不具合かレジスターに値を補正する特殊な仕様でもあるのかと色々調べたが、原因が分からなかった。$BITBLT.SYSの画面モード判別ルーチンに画面モード45hがあり、テキスト画面と同じ1040×725のグラフィックモードが存在することが分かった。

240109 PS/55エミュ製作 [26]塗りつぶしとブロック転送を実装

Image: 240109 PS/55エミュ製作 [26]塗りつぶしとブロック転送を実装

BitBLTとして単色塗りつぶし、パターン塗りつぶし(タイリング)、ブロック転送の機能を実装したら、まだ見た目は崩れているが、いい線まで来た。あとはビットシフトとビット演算を上手く実装できれば行けそうな気がするが、まだレジスターの内容に不明な点があり、ぴったりな解を見つけるには時間が掛かりそう。

240107 taiken repo [Niji EN]

I Will Never Recover From Bungee Jumping - YouTube

Rosemiのバンジージャンプ体験レポは笑った。どっからどう見ても日本の光景だな。Rosemi in REAL!

Pomuが動画制作のためにアルゼンチンを渡って南極まで行っていたのにはビックリした。色々危ういトラブルもあって、良く無事に帰って来れたな。部屋の天井から漏水してコンセントにかかってボヤになるとか。そんな中でEliraは死んだかのように寝ている光景はシュールだけど、気付くのが一歩遅かったら…考えると恐ろしい😥

南極旅行とか、なんかネタで話していた記憶はあるけど、本当に実現させてしまう行動力が素晴らしいというか。前人未踏のことをやってのけたな。すごいとしか言いようがない😲

240107 PS/55エミュ製作 [25]BitBLTのレジスター操作を調べる

ディスプレイ・アダプターのBitBLT機能は下のようなコマンドをメモリーに書き込んで実行していることが分かってきた。レジスターにWORDまたはDWORD単位でパラメーターを入れているようだ。

これをコマンド実行毎にレコードとしてデータの記録を取れば、ある程度の法則は見えてくると思う。しかし、サイズやアドレスはすぐに分かりそうだが、ビットマスクやROP演算があるとすれば、その解釈を見いだすのは難しそうだ。

filling?
[89] 3e: 0055 (85) ?c
[89] 36: 0080 (128) ?c
[89] 2f: 0080 (128) ?c 
[95] 0a: ffff (65535) ?c 
[95] 0c: 0000 (0) ?c
[89] 33: 0020 (32) 2 3 4 5 6 7 17 18 1c 1e 20 41 x size?
[89] 35: 0001 (1) 1-768 y size?
[89] 21: 0040 (64) 40 44 48 50 52 72 74 76 78 7a 7c
[91] 29: 0000c284 (49796) address 1
[95] 08: ff7f (65407) mask?
[95] 09: ffff (65535) mask?
[95] 00: 0000 (0) mask?
[95] 01: ffff (65535) mask?
[95] 03: 0000 (0) 0 10 40 50 80 90 a0 b0 e0 f0 ?
[88] 0d: 0000 (0) 0 1
[89] 3d: 0000 (0) 00 40
[95] 05: 0048 (72) 48 1048
[95] 0b: 0008 (8) 8 208 209 20b
[89] 30: 12bb (4795) ?c
[89] 20: 0001 (1) execute

240106 OH MY GOD!? WHAT THE F...airy... [Niji EN]

Image: 240106 OH MY GOD!? WHAT THE F...airy... [Niji EN]

私にとってこの1年間で3人目となる推しの卒業を見送らないといけないようです。まあ、3Dお披露目以来リアルイベント出演があったことを除けば大きな動きがなく、本人の企画が思い通りに実現できていなかったようなので、そろそろ何か新しい動きがあるとは思った。それが卒業とは予期していなかったけど。11月の新衣装発表で束の間の安心感を得たかのように感じられたのは、間違いじゃなかったな。

公式発表の文言にあった配信のアーカイブ非公開化は間違いで、配信では残すと言っていた。未発売のグッズはどうなるんだろう。未出荷のサンリオコラボとか、ブシロードから出る予定のLazuLightミニフィギュアとか。Pomudachiクッションは残念ながら出なかったですね。

配信を見た感じ、次のステップに進もうと心に決めている様子だったので、後はPomuとしての活動を最後まで見送るだけで心配することはないんだけど、LazuLight推しとしては3人揃うことはもうないと思うとただ悲しい😢でも、もしこの後Henyaと同じ所へ行ってNijiENコラボで揃って登場(リターン)したらさすがに笑う😆

ENの黎明期から成長期を通して見てきたせいか、どうにも最近はEN界隈全体の盛り上がりが欠けているように感じられるのは気のせいだろうか。しかし、最近の推しであるScarleが独自路線を歩んで怪しいことをやっているうちは、少なくとも私個人にとっては安泰かな。

240105 PS/55エミュ製作 [24]Win3ディスプレイドライバー

Image: 240105 PS/55エミュ製作 [24]Win3ディスプレイドライバー

結局、あれから懲りずに今度はWin 3.0に対応させようとしています。ドライバーのハードウェアチェックが通らない問題は、MCA機特有のNVRAMにアクセスするI/Oポートを実装してディスプレイ・アダプターのPOS IDを返すようにしたら、起動できるようにはなりました。このI/Oポートは技術解説書などのドキュメントには説明がなく、下のページが唯一の手がかりでした。

Home > Tech > MCA > Checking for Micro Channel Bus - Ardent Tool of Capitalism

しかし、画面解像度の設定が何か変なのと、グラフィックは文字しか映っていない。

これもハードウェア技術解説書には一切触れられてないディスプレイ・アダプターのBitBLT機能が使われているようです。手がかりは下のようなログとDOS J4.0, J5.0に付属する$BITBLT.SYSというファイルのみ。メモリーに書き込まれている89や95は何かのコマンドだとは思うんだけど、この謎をどうやって解けばいいものやら。

PS55_GC: Write to port 3e0, val 1f08h (7944), len 2
PS55_3E1(??): Write to port 3e1, idx 8, val 00h (0) -> 1fh (31)
PS55_MemHnd: Setup page handlers
PS55_GC: Write to port 3e0, val 0008h (8), len 2
PS55_3E1(??): Write to port 3e1, idx 8, val 1fh (31) -> 00h (0)
PS55_MemHnd: Page handler is restoring.
BitBlt memory:
89 3e 55 00 89 36 80 00 
89 2f 80 00 95 0a ff ff 
95 0c 00 00 89 33 03 00 
89 35 20 00 89 21 7a 00 
89 22 7a 00 91 29 3f c3 
00 00 91 2a fe 85 01 00 
95 08 00 ff 95 09 ff 00 
95 01 00 00 95 03 80 00 
88 0d 01 00 89 3d 00 00 
95 05 48 10 95 0b 09 02 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
 
PS55_GC: Write to port 3e0, val 1f08h (7944), len 2
PS55_3E1(??): Write to port 3e1, idx 8, val 00h (0) -> 1fh (31)
PS55_MemHnd: Setup page handlers
PS55_GC: Write to port 3e0, val 0008h (8), len 2
PS55_3E1(??): Write to port 3e1, idx 8, val 1fh (31) -> 00h (0)
PS55_MemHnd: Page handler is restoring.
BitBlt memory:
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 
99 30 3a 22 02 13 bb 13 
89 20 01 00 00 00 00 00 
 
PS55_GC: Write to port 3e0, val 03h (3), len 1
PS55: Read from port 3e1, idx 3, len 1, ret 80