DOS文書プログラムの3通りのコピープロテクション

DOS文書プログラムのコピープロテクションを解析してみた。なお、私は当時の事情は知りませんが、調べたことを知ったかぶりで書いています。DOS文書プログラムのコピープロテクションは環境に応じて3通りの方法がとられている。どのバージョンでコピープロテクションが追加されたかは分からないが、私の手元にあるファイルを調べた限り、DOS文書プログラムIIIバージョン1.0(1988年)の時点では既にあったようだ。
本文を読む…

231226 PS/55エミュ製作 [23]今後の課題

PS/55エミュレーターを作り始めてから2年が経ったけど、実機がない中で現状やれることはやり尽くした気がする。テキストモードが実装できればいいと思っていた当初の想定を上回って、BASICのグラフィックアプリケーションが動くレベルになったので、JDOSを動かす環境としては十分。

ソフトウェアや資料さえ集まれば、まだまだ改善の余地はある。

OS/2 J1.x

せっかくのPS/55なので日本IBM版のOS/2 J1.xを動かしたいという気持ちはあるんだけど、私がそもそもディスクを所持していないのと、あったとしても現状は動かないでしょう。

OS/2 1.xを動かすにはハードウェアのエミュレーションやPS/2特有のABIOS (Advanced BIOS)、80286プロテクトモードの実装などが必要になってくるので、DOSBoxベースでは無理がある。86BoxではOS/2英語版が動くので、そこにPS/55の拡張部分を実装すればワンチャンあるか。ただ、現状でWindows 3.1のディスプレイドライバーが動かないことから、ディスプレイ・アダプターのエミュレーションが不完全と考えられ、OS/2でも同じ問題にぶち当たりそう。

韓国版、台湾版、中国版への対応

PS/55は韓国、台湾、中国にも各国向けにローカライズされた上で輸出されている。JDOSに相当する各国向けのDOSが存在するはずだが、それがないことには実装しようにもテストができない。文字コードが分かればDOSアプリケーションレベルでは何とかなりそうだが、それ用のフォントローダーを組み込むのが手間。

APIレベルでの対応

JDOSのシステムディスクなしにJDOS用アプリケーションを動かすとなるとJDOS固有のAPIを追加する必要があるが、資料(技術解説書)がないので追加のしようがない。JDOS自体は手元にあるので動作解析である程度何とかなるかもしれないが、骨の折れる作業だ。

マルチステーション5550用のDOS

KDOSを調べた感じ、5550のハードウェアはキーボードとグラフィック周りがPS/55互換で、他はPC/XTに近い。ただ、ディスクBIOSのブートローダーやハードディスクのパーティションテーブルは5550固有の仕組みがあると予想する。調べてもDOSブートローダーのエントリーポイントすら分からず、途中にBIOS ROMへFAR JMPする部分もあり、せめて実機のBIOS ROMがないことには、これ以上の解析は難しい。

もし上記のような課題を解決できる見込みがあれば、また改良を進めるかもしれない…

231224 ログイン時に求められる思考能力認証

年末も近いので今月の出費と預金残高とかチャージ残高の確認をしていたんだけど、ログイン認証が年々パターンが変わって厳重になっているのを感じる。

My docomoにIDとパスワードでログインすると、登録メールアドレスの全部に通知が行った上で指定のスマホ端末でPIN認証。色んなメールアカウントから新着通知が来るから、なんか認証一つに大げさだな。

PlayStation Storeにも久々にログインしたけど、見本の写真と比べて物の種類と数が同じ写真を選ぶという、IQテストかなんかかと戸惑った。

PS/55 Display AdapterのPOS IDとEC(技術変更)リスト

POS ID 一覧 DOSの初期化プログラムと診断ディスケットのテストプログラムを解析して調べたものです。一部、ディスプレイ・アダプターに同じPOS IDを持ちながらも、I/Oポートの値で区別するものや、システム・ボード側のビデオサブシステムのPOS IDから区別するものがあります。
本文を読む…

231221 black-haired magical anime girl with red eyes [Niji EN]

Image: 231221 black-haired magical anime girl with red eyes [Niji EN]

得意先に「22~23日は飲み会だから」と数ヶ月前から釘を刺され、にじフェスに行くどころではないことは確定していましたが、24日は家から見ることくらいはできそうです(23日は仕事🙁)。


ある海外フォーラムでプロフ画像に↑のGIFアニメを見つけて「Scarleっぽいな😲何のアニメキャラクターなんだろう?」と思って調べてみたら、かなり古いミームだった。

Fairy Bounce | Know Your Meme

DECOのマジカルドロップというパズルゲームシリーズに出てくる「ワールド」というキャラ(初代ではボス)なんだけど、オリジナルはピンク髪の三つ目で、GIFアニメでは三つ目がなく色も変わっている。DECOとか昔のゲームは全然知らないんだけど、SwitchやPS3などに移植されているらしく、気になったので買ってみた。

マジカルドロップよくばり特大号(PS3ゲームアーカイブス版)の取説では以下のように紹介されている。

  • 趣味:水浴び
  • 性格:母性的、落ち着いている
  • 好きなこと:空を泳ぐこと
  • 嫌いなこと:おばさん扱いされること

Scarleは最近インターンシップに行ったとか話していたから、この子と違ってまだピチピチやな。いや、意外にこういうゲームのキャラって大人な風貌でも20代前半だったりするから、分かんねーな。

IBM DOS K3.3による5.25インチ640KBフロッピーディスクのサポート

日本のPC-98で使われていた3.5インチ・5.25インチ2HD (1.2MB) フォーマットが世界的に見れば特殊であることは知られているが、実は5.25インチ2DD (640KB / 720KB)もIBM PCでは使用されておらず、世界的に見れば特殊である。10年くらい前、DOSで利用できるフロッピーフォーマット [PC/AT]という記事を書いた。この中で5
本文を読む…

231221 PS/55エミュ製作 [22]DOS K3.3のFORMATコマンドによるメモリー破壊を解決

Image: 231221 PS/55エミュ製作 [22]DOS K3.3のFORMATコマンドによるメモリー破壊を解決
DOS K3.3のFORMATコマンドでスイッチにドライブ名のみを指定して実行するとDOSが異常終了する不具合の原因を調べていた。調査を進めていくうちにFORMATコマンドの内部だけでなくIO.SYS (IBM DOSではIBMBIO .COM)の初期化ルーチンやIOCTLの内部まで追っていくことになって、解決するのに丸3日かかった。解決方法はソースコードにたった1行追加するだけだったのに、とんでもなく時間かかったな。
本文を読む…

DOS 3.2のブートローダーとシリンダー境界による潜在的バグ

エミュ上で、FORMATコマンドを使ってDOS K3.3のシステムをハードディスクイメージに転送しても、そのイメージからDOSを起動する途中でハングするので、原因を調べていた。原因はブートセクターにあるブートローダーがIBMBIO .COMをメモリーにロードするとき、セグメント:オフセットアドレスがオーバーフローしてメモリー上にロードされたデータが上書きされたのが原因だった。
本文を読む…

231215 AXエミュ製作 [14]JEGAのエミュレーションを改善

AX版MS-DOS 5.0でグラフィックの表示がおかしい不具合があって調べてみたところ、JEGAの挙動に抜けがあったので修正。

DOSSHELLがテキストモードで正しく表示されるようになった。グラフィックモードは配色が変なんだけど、これはそもそもパレット番号の指定がなんか変なので、元々の仕様である可能性がワンチャンある。いや、そんなまさか。

他にも気になったところを色々直したら、当初の想定より修正点が増えた。

DOSVAX 変更点 (4481PS11→ 4483PS12)

日本語で書き直すのだるいのでGoogle翻訳を使用。

  • AX モードでのエミュレーションを改善するために次の問題を修正しました。
    • EGA レジスタが読み取れませんでした。 オリジナルの EGA のレジスタは読み取れませんが、Super EGA は読み取れます。
    • RMOD2 レジスタのビット 6 (点滅または強度の選択) が機能しませんでした。
    • キーボード BIOS が US モードの場合、一部の JP 固有キーのスキャンコードがキーボード コントローラーによって変更されました。 操作全体はキーボード BIOS によって実行される必要があります。
    • D0000-EFFFFh に FFh を設定すると、EMS メモリまたは UMB として使用されます。
    • ビデオ モードが 52h または 53h (JEGA グラフィック モード) の場合にマウスを正しくサポートするための解像度を追加しました。
  • PS/55 モードでのエミュレーションを改善するための次の変更。
    • 拡張 BIOS データ領域のセグメント アドレスを 640k 未満の最高メモリに設定し、DOSBox MCB のサイズを調整します。
    • DOS J5.0x/V の BASIC インタプリタを実行するための BIOS シグネチャを設定します。
    • NumLock のキーバインドを追加します。 (ただし、実際の IBM 5576-00* キーボードは NumLock を Shift + ScrollLock にバインドします。)
    • DOS K3.x のカラー グラフィックス モードのビデオ モード判別を変更します。
  • DOSBox SVR r4481 から r4483 への変更をマージ。

ダウンロード

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

231207 Myth's hololive friends arrived [Holo EN]

Image: 231207 Myth's hololive friends arrived [Holo EN]

Mythのぬいぐるみ「hololive friends」が届いた。サイズが少し大きいことは買う前の商品説明で知っていたけど、実際に実物を見てもにじぬいの2倍で存在感がしっかりある。モニターの前に置くにはでかすぎるけど、ショーケース的に棚に並べたり、持ち上げて眺める分には丁度いいかも。

Guraはフードが脱げる特別仕様。Kiaraは頭に大きなアクセサリーが付いているので、重心を安定させるのがやや難しい。Watsonは帽子がアクセサリーではあるが、作りは一番シンプルかもしれない。

PS/55モデル5550-S,T ステージⅠとステージⅡの違いを解明する

私が実際に見たことがあるのはモデル5550-TのステージⅡだけで、両者を比較したことはなく、今や手元に実物があるわけでもないのだが、残っている文献を頼りに情報を整理すれば何かが見えてくるのでは、と思って調べてみた。オーム社が一般書籍として発行していたモデル5550-S,T,Vの技術解説書によれば、モデル5550には、6種類のシステム・ボードがあります。この6つのシステム・ボードの主な相違点は、
本文を読む…

231205 PS/55エミュ製作 [21]フォントROMの吸い出しに対応

ディスプレイ・アダプターのフォントROMを吸い出すユーティリティーと、それを読み込むためのローダーをエミュレーターに追加。

フォントROM吸い出しユーティリティー(getfps5)は、ディスプレイ・アダプターを搭載したPS/55であれば、一応、DOS/Vや漢字を表示できないPC DOSでも動作するように作ってあるが、私がアダプター切り替えの仕組みを理解していないのでちゃんと動作するか分からないし、特にCRTモニターは傷める恐れあり。本物のPS/55を所有していないので動作検証できていない。吸い出し処理の内部で何をやっているかはアセンブリ・ソースを公開しているのでそちらを参照。

他の変更点は、単色モニターモードを追加。エミュレーター側でやることはディスプレイ・アダプター内部のレジスターを1ビット変えるだけなので、それをどう扱うかはソフトウェア次第。PC DOSでは効果がない。JDOSは起動時にこれを読み取ってカラーパレットをグレースケールに設定するが、アプリケーション側でDACのカラーパレットを変更すると色が付く可能性あり。

DOSVAX 変更点 (4481PS10→ 4481PS11)

  • Build 4481PS11 (2023/12/04)
    • PS/55単色モニターモードを追加(machine=svga_ps55mono)。
    • PS/55マシン用のフォント ROM ダンプ ユーティリティ (getfps5) とエミュレータ用のローダーを追加。

ダウンロード

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