The 便乗商法。

今は無きB.H.AのB’s Recorder Goldが使いやすかったので、今は憎いソースネクスト製を使っているが、これにはアドウェアが漏れなく付いてくる。また変な広告が出てきた。

binjou

「新バージョンまたは他の製品への移行をお奨めします。」と脅したうえで、名前を出さずに「最新のOffice2016互換製品のユーザー割引も実施中です。」とソースネクストThink Free Office NEOへのリンクボタンを表示する。

Think Free Office NEOが超特価の1,980円で買えるトラッキング付きURL 3/31まで。
http://www.sourcenext.com/cp/s/1803/c_0000031661/?i=sss&utm_source=sn&utm_medium=sss&utm_campaign

Thinkfree.comから直接買うと5,599円、ソースネクストの通常価格でも3,480円なんでキャンペーン価格1,980円だと確かに安いんだけど、以前にソースネクストのポイント交換でThink Free Office1ライセンスもらってるんで要らんし。それすら使ってないし。

ほとんどのOfficeのまがいもの互換品にはAccess互換品が入ってないから使えん。Libre OfficeのBaseでがんばろうとしたけど代替はやっぱり無理。

広告

IBM ATでDOS/Vを動かしてみる。

PCem V13でオリジナルIBM ATを構成してIBM PC DOS 5.02D/VとIBM WINDOWS 3.02 (3.0A) を動かすテスト。DOS/Vは「VGA以上を搭載したPS/2またはPC/AT互換機」が要件となっており実はオリジナルPC/ATそのままでは動かない。

・本体仕様
CPU 80286/8MHz、メモリ4736kB (基本640kB+拡張4096kB)。

・ビデオアダプタ
>VGAを選択。IBM 51xx PC Family ComputersによるとIBM AT(5170)の仕様は286+EGAが標準で、DOS/Vの要件で必要なVGAはPS/2が出てから発売された8ビットバスのVGAカードに交換する必要がある。実機なら16ビットISAのTsung ET4000とかTridentカードを使ってもいいと思う。

・FDD
FDD1 3.5″1.44MB、FDD2 5.25″1.2MB。最終リビジョンの1985/11/15版BIOSでは1.44MBドライブをサポートするが、AT Diagnostic Diskではこの構成をコンフィギュレーションできないのでgsetupを使う。gsetupの入った起動ディスクは720kB容量で作成すると3.5″でも5.25″でもどちらでもフォーマット変換無しに使えて便利。

・HDD
HDD MFM AT Fixed Disk Adapter。HDDイメージはオリジナルATに準じてType3 (30MB)で作成。DOS/V+Win3くらいなら容量はこれで十分。

・マウス
WINDOWSでもマウスは必須ではないが、あると便利なのでシリアルマウスを追加する。PS/2規格はIBM The PCシリーズの後のPS/2シリーズで出てくるものなので選べない。

PCAT-1

適当なDOS起動ディスク経由でgsetupを起動してコンフィギュレーション。日付、時刻、FDDタイプ、HDDタイプ、メモリサイズBase(基本) 640kB、Expansion(拡張) 4096kBを正しく設定する。Primary DisplayはSpecial (EGA)でよい。この時期のパーソナルコンピュータは基本メモリ640kBすら搭載しないものも多くてオリジナルのATは256kBから。同時期のPC-9801F3も256kB(ただしPC98のCPUは8086)。

PCAT-11

PC DOS/Vの1枚目で起動するとあっさり日本語が表示される。メニューに従ってパーティショニング、フォーマット、DOS本体・MKKのインストールが進む。

PCAT-12.JPG

再起動するとメモリまわりが不自由なのでいろいろ文句を言われる。諦めてCONFIG.SYSを調整。DOS5の6枚目おまけディスクに入ってるTEエディタが便利。次の内容はWindowsの設定項目も含む。SMARTDRV.SYSはPCDOS5.02/V

CPUが386ではなくて286なのでEMM386.EXEが使えない。メモリマネージャもHIMEM.SYSしかなくてEMSが使えないので286で使えるEMSマネージャを持ってくる。EMM286.EXEというものを使った。DOS4付属のXMA2EM.SYSはPS/2、PS/55用のメモリアダプタ専用なので使えない。EMM286.EXEでEMSは使えるようになったが連文節変換IBMMKKV.EXEはやっぱり動かないので単漢字変換の$IAESKK.SYSで妥協。単漢字でも文字コード入力よりはまし。

・CONFIG.SYS

FILES=30
BUFFERS=20
DOS=HIGH
COUNTRY=081,932,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\DOS\$FONT.SYS
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\UTY\EMM286.EXE 1536
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\$DISP.SYS
DEVICE=C:\DOS\$IAS.SYS /R=1
DEVICE=C:\DOS\$IAESKK.SYS
DEVICE=C:\DOS\$PRNUSER.SYS
DEVICE=C:\DOS\SMARTDRV.SYS 512

・AUTOEXEC.BAT

@ECHO OFF
PROMPT $P$G
PATH C:\WINDOWS;C:\DOS
SET SYS=C:
SET COMSPEC=C:\DOS\COMMAND.COM
SET TEMP=C:\TEMP
KEYB.COM JP,932,C:\DOS\KEYBOARD.SYS

仕上がりはこんな感じ。

PCAT-2

WINDOWS 3.0A (3.02)はセットアップから設定変更無しで簡単に動く。CPUが286でエンハンスドモード(386専用)は動かないのでスタンダードモードかリアルモードのみ。

PCAT-3

動かしてみた感じ、正直遅い。Windowsはウィンドウの描画が見えるほどに遅い。でも1980年代中盤のパソコンの性能はこんなものだ。それにHDD 30MBやメモリ4.6MBなんてめちゃくちゃ贅沢だし。

MSVC 1.51でクワイン。

実行すると自分自身のソースを表示するプログラム。BASICでLISTを忍ばせておくとか、シェルスクリプトでcat $0と書いておくとかではなくて、ちゃんとCで組んだ。16ビット環境でやってみたくなったのでPCDOS+Windows 3.1でVisual C++ 1.51を使った。

quin16.cpp

extern "C" int printf(const char*, ...);

void main() {
char* s="extern %cC%c int printf(const char*, ...);void main(){ char* s=%c%s%c; printf(s, 34, 34, 34, s, 34);}";
printf(s, 34, 34, 34, s, 34);
}

コンパイルして実行すると、こういうのを吐き出す。

q2.cpp

extern "C" int printf(const char*, ...);void main(){ char* s="extern %cC%c int printf(const char*, ...);void main(){ char* s=%c%s%c; printf(s, 34, 34, 34, s, 34);}"; printf(s, 34, 34, 34, s, 34);}

これを保存してコンパイルすると同じものを表示する。

quin16-1

quin16-2

だから何だと言われても困るが、これがクワインだ!! 本当のハイライトはPCem上で日本語版のWindows3.1が高解像度のハイカラーで動いてるとこや、DOSエクステンダー仕様のコンパイラやリンカが動いたとかそういうところだったりする。ただDOSエクステンダーのエミュ上の動作はやっぱりいまいちで、コンパイルが通らないサンプルも多い。

10年くらい前にプログラミングを話題にしたチャットルームでQuineというキーワードを知らずに『自分自身のソースを表示するプログラムをCで作れるか?』と聞いたら軒並み無理って言われて、そういうもんかなとずっと思っていたが、調べると難読プログラムの一般的な課題らしい。

WikipediaのCサンプルは初見だと意味不明。でもエスケープ文字をなんとかするパターンを理解すると、どうということも無くて簡単に理解できる。こういうのは知らない人を見て楽しむクイズみたいなもんだと思った。

 

ICF-801買ったった。

ソニーのラジオをまた買った。泣く子も黙る十和田オーディオ製ICF-801。

icf801.jpg

定価の倍近いア●ゾンのぼったくり価格だったけどまあ仕方ない。去年買っておくべきだった。回路的にはごく普通のアナログICスーパーラジオ。チューニングも含めてデジタル要素無し。ICは化されているがアナログスペシャルファンクションなので理屈的はシリコントランジスタラジオ。

辛口レビューをするとAMの9kHzビートがうるさい。夜間はひどくて本体を回してヌル方向への調整が面倒。スケールがICF-EX5MK2みたいにリニアじゃないからどこに合っているのかわかりにくい。感度が良い分夜間は特に良くわからない状態になる。FMもスケールがリニアじゃなくて合わせにくい。高い周波数でイメージ受信が発生する。双峰特性がおかしいのかジャストチューニングの位置から少し上側にも微妙に同調する山があって変。AMでもFMでもボリューム最小でも同じレベルで熱雑音起因のサーという音のノイズがある。これはバブル期の単体オーディオのアナログチューナーとは比較にならない(ほど悪い)し、今どきのDSPラジオICF-M780Nと比べて感度、選択度、S/N、隣接ビート、イメージ受信いずれも負けてるし、いくら良いとはいっても音質はポータブルラジオの域を出ない。細かいところでは電池3本というのがいただけないし、ACケーブルのコネクタも特殊で使まわしがしにくいし、照明は役に立たないくらい見にくい。正直なところICF-801に対するネットの評価は過大だと思った。

それでもホームラジオとしてのまとまり良い。シングルスピーカーから出るAMのアナウンサーやFMのDJの声は聴きやすく、音楽はその場で鳴っているような感じ。ステレオ装置から出てくる音の作り物感や装飾感とはまた真逆。アナログ機の高品質ポータブルラジオとしては最後の製品になるだろう。やがておとずれるポリバリコンの寿命(推定8年)まで使おうという気になった。

旧い英語版PC DOS 3.30用設定ファイル。

旧い英語版PC DOS 3.30用設定ファイル。

・CONFIG.SYS

FILES=20
BUFFERS=20
COUNTRY=001,437,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P
DEVICE=C:\DOS\VDISK.SYS /E 720 512 112
DEVICE=C:\DOS\ANSI.SYS
DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,437,2)

・AUTOEXEC.BAT

ECHO OFF
PROMPT $P$G
PATH C:\DOS;
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
NLSFUNC C:\DOS\COUNTRY.SYS
MODE CON CP PREP=((437 850) C:\DOS\EGA.CPI)
MODE CON CP SEL=437
KEYB US,437,C:\DOS\KEYBOARD.SYS

PRINTER.SYS、GRAPHICS.COMが無い以外はDOS標準のドライバ全部入り状態。RAMディスクドライバ vdisk.sys を外せばオリジナルのIBM The PCでも動く気がする。

コードページの切り替えはchcp 437、chcp 850で英語環境、マルチリンガル環境が切り替わる。冗長になっているのはコードページ437とkeybコードusを変更するだけで各国用になる雛形にするため。

Wikipediaのコードページ表とPCemで試した様子。入力待ち行の意味不明の文字列の4文字目がE0hに対応する同じ文字コードでコードページを切り替えるとαがÓに変わって、別の文字として表示される。

Code page 437

pcat-0

Code page 850

pcat-1

この設定、MSDOS発祥のUS圏ではCP850を使いたい人でなければここまで設定せずにデフォルトで使われるのが普通だと思う。PC-9801用の日本語MSDOSだと日本語しか表示しないし、IBM版の日本語版PCDOSだとCP932とCP437を切り替えるようになっているがIBM版DOSだとCHEVなんでDISPLAY.SYSによる設定は普通行わないしで、この設定は短い割には情報集めに手間がかかった。

正規のインストール手順だとSELECTコマンド一発でHDDの初期化とファイルコピー、CONFIG.SYS、AUTOEXEC.BATの作成まで行ってくれるのだが、やってることはFORMATとXCOPY A: C:で全部ファイルコピーして、次のファイルを生成するだけ。

SELECT C:\DOS 001 US の実行結果。

・CONFIG.SYS

COUNTRY=001,437,C:\DOS\COUNTRY.SYS

・AUTOEXEC.BAT

PATH C:\;C:\DOS;
KEYB US 437 C:\DOS\KEYBOARD.SYS
ECHO OFF
CLS
DATE
TIME
VER

こんな設定いらない。手動で設定するほうがまし。

IBMulator というPS/1エミュレータ

IBMのPS/1というPC。これをピンポイントで再現するエミュレータがIBMulator。再現できる機種はIBM PS/1 Model 2011

IBMulator – The IBM PS/1 Emulator
https://barotto.github.io/IBMulator/

どうすごいのかは動かしたほうが早い。

ibmulator-1

下部に筐体の写真が貼られていて、フロッピーディスクイメージを指定するとガチャンという音とともにディスクを挿入した絵にさし変わったりFDDや右のHDDのアクセスランプが点灯するだけでなく、FDDやHDDのスピンアップ・ダウンやアクセス音、ノイズまで再現してくれる。ネット中を探すとファームウェアやディスクイメージが勝手にアップされているので実用性はとにかく、かなりいい感じで90年代前半の雰囲気が味わえる。もっと凝った表示モードもあって、画面下のツマミでコントラストや輝度を調整できたり。画面も無駄に歪んでるし。

ibmulator-2

デバッグ表示付きで動かすとめちゃくちゃ無駄にかっこいい。

ibmulator-4.JPG

仕様はCPU 80286、ISAバス、標準VGA(256kB)なのでフォントをハイメモリに押しこむINT 15H方式でDOS/Vを動かすこともできるがメモリマネージャEMM386は使えないし、CD-ROMドライブも対応してないのでDOS/Vで日本語化するのは割と苦痛だ。そのほかキーボードやマウスも少し様子がおかしい。

ibmulator-3.JPG

数日前に書いPCemはPS/1 Model 2011のほかModel 2121にも対応している。2121は80386のISAバスマシンでVGA 256kB対応なのでWindowsだってプロテクトモードで動く。これだとマウスも106キーも正しく動く。

pcem-2_1

pcem-2_2

PS/1シリーズはほとんどが標準VGAにしか対応していない(VESAのSVGAではない)し、DOS/V化はこちらのほうが簡単。

pcem-2_3.JPG

Model 2011はROM DOSが内蔵されてたり起動シーケンスが一般的なPC/AT互換機と異なるということもあってModel 2121のが素直だったり。

286でも386でも動作速度まで再現されているとWindows 3.1はおろかDOS/Vですらこんなに遅いものかと感心する。