ひさびさにDOSのお仕事

某メーカーの出荷検査端末がこの400k円もしてるパネコンなのだ。OSはMS-DOS6.2、その上でMS-Cで書いたプログラムが走っている。もはや2008年でMS社がVistaを見限るとかそういう話をしているご時世にMS-DOS。うーむ(^^;


パネコン自体はもう販売終了しているが、現場としては知ったこっちゃないw動く限り使い続けるもんなのだ。長期的にはDOS上の出荷検査プログラムをWindows版に移植するというのが正論なのだが、まぁ予算とか工期とか色々ありまして。それでもまぁ全然やらないわけではなくて一部やり始めてはいるんだけど資料として残っているDOS版の検査仕様書が全くメンテされてない状態なので移植資料としての存在価値が0に等しく、Windows版への移植にあたってはDOS版のCで書かれたソースを解析しながらVBで書くという有様なのでこれが全然捗らない(-_-)品管へ殴り込んでちゃんとした仕様書を書くまで移植しないって怒鳴ってやろうかと・・・殴り込まないけどね。


DOSが動いているってことはつまり15年選手ぐらいなわけでそりゃまぁ色々壊れてきますわ。で、そういうハード面も含めてうちが面倒を見なきゃいけないんだけど・・・拙者はMS-DOSが2.11だった頃から触っているので別になんとも思ってないがプロパー諸氏の中でDOS機の面倒見られる人おるんやろか・・・。スクリーンエディタ*1でAUTOEXEC.BATとCONFIG.SYSをあれこれ編集したりするのはまぁいいとしてコンベンショナルメモリを増やすためにデバイス類をUMBへ追いやったりとかさ、そういう細々したテクニックって伝承されてないからねー。知ってる人がいなくなったらハイそれまでよとか。


そう言えばかつて拙者が98ユーザー*2だった頃、もの凄くAUTOEXEC.BATとCONFIG.SYSに凝ってwいかにコンベンショナルメモリを確保できるかとかやってたことがあったなぁ。当時のバックアップがあったのでここでAUTOEXEC.BATとCONFIG.SYSを大公開!

@ECHO OFF
BREAK=ON
A:\SYS\MVBUF /M >NUL
A:\SYS\MVCOM DC6F
PROMPT [$p]
PATH A:\DOS;A:\FILMTN;A:\VZ;A:\NU;A:\TOOLS;A:\BAT;A:\C6\BIN
SET NU=A:\NU
SET TMP=A:\
SET PKZIP.CFG=A:\TOOLS
SET PKTMP=A:\
SET VZDEF=A:\VZ\
SET LIB=A:\C6\LIB
SET INCLUDE=A:\C6\INCLUDE
SET HELP=A:\C6\HELP\*.HLP
SET INIT=A:\C6\INIT
A:\SYS\SMARTDRV /U 3072 128
LH A:\TOOLS\EZKEY.COM -l- >NUL
DEVICE     = A:\TOOLS\HSB.EXE VC Y-
DEVICE     = A:\SYS\MELEMM.386 /SW1 /NC /HM /M A5-A7,D0-D8,DC-DF,E8-F5
DEVICEHIGH SIZE=60000 A:\SYS\MCBMARK.COM X=A500-A7FF
DEVICEHIGH = A:\DOS\KKCFUNC.SYS
DEVICEHIGH SIZE=60000 A:\SYS\MCBMARK.COM A
DEVICE     = A:\SYS\UMBUTY.EXE LG E000
DEVICEHIGH = A:\WX2\WXK.SYS /A5
DEVICE     = A:\SYS\UMBUTY.EXE UG E000;CG
DEVICEHIGH = A:\WX2\WX2.SYS /INI=A:\WX2\WX2SYS.INI /A5
DEVICEHIGH = A:\WX2\WX2TM.SYS /DB:\WX2TM.DIC /A5 /SD16
DEVICEHIGH = A:\WX2\WX2TX.SYS /DB:\WX2TX.DIC /A5 /SD16
DEVICEHIGH = A:\SYS\CRD.EXE -C4 -L64 -X1221 -B- -M1 -Z2
BUFFERS    = 2
FILES      = 30
FCBS       = 1
DOS        = HIGH,UMB
SHELL      = A:\COMMAND.COM /P A:\ /E:384
DEVICE     = A:\TOOLS\HSB.EXE VU X-

98NS/Eのメインメモリは640kBだったがこの設定でどれくらいコンベンショナルメモリが確保できてるのかというと

  MCB  PSP  Size      Owner name     Param/Dev        Hooked Vectors
 ---- ---- ------- ----------------- ---------- -----------------------------
 0587 0588   2656  melemm            EMMXXXX0   1F 67
 062E 0000 630000                         30

 <>
  MCB  PSP  Size      Owner name     Param/Dev        Hooked Vectors
 ---- ---- ------- ----------------- ---------- -----------------------------
 A502 A503   4128  kkcfunc           KKCFUNC$  
 A605 A606   4160  wx2tx                       
 A70A A70B   2928  hsb               HSBDRV15  
 A7C2 A7C3    528  lastdrv$                    
 A7E4 0000    256                        
 A7F5 0000    128                        
 A7FE 0008 163872                 
 D001 D002  12144  wx2k                        
 D2F9 D2FA   8432  wx2                          29
 D509 D50A   9600  wx2tm                       
 D762 D763    304  crd             
 D776 D777   2048  buffers$                    
 D7F7 D7F8     80  fcbs$$$$                    
 D7FD 0000      0                        
 D7FE 0008  16416                  11
 DC02 DC03    224  wxk               MS$KANJI  
 DC11 DC12   1488  files$$$                    
 DC6F DC70   2640  command.com       /U         22 23 24 2E
 DD15 DC70    384  command.com (*ev)           
 DD2E 0000  11520                        
 DFFF E000  32768                       
 E801 E802    240  wx2               CON       
 E811 E812    224  wx2tm             $WX2TM    
 E820 E821    224  wx2tx             $WX2TX    
 E82F E830  31008  smartdrv             08 10 13 15 19 21 25 26 28 2F
 EFC2 EFC3   1872  ezkey             ezkey -l-  09 18 E0
 F038 0000  23664                         

 <>
  EMM version    :  4.0    Total Pages       : 672 (10752 KB)
  Page Frame     : C000h   Allocated Pages   : 283 ( 4528 KB)
  Physical Pages :    4    Unallocated Pages : 389 ( 6224 KB)

  Mappable Pages : C000h C400h C800h CC00h 

  Handle    Name     Pages      Used      Attr
 ------- ---------- ------- ------------ ------
    0                   0   (      0 KB) [SRAM]
    1     WX2K          8   (    128 KB) [SRAM]
    2     WX2           2   (     32 KB) [SRAM]
    3     WX2TM         2   (     32 KB) [SRAM]
    4     WX2TX         2   (     32 KB) [SRAM]
    5     XMS_No05     77   (   1232 KB) [SRAM]
    6     XMS_No06    192   (   3072 KB) [SRAM]

 <>
 XMS version    : 3.00 (Specification version)
 XMM version    : 3.07 (Driver version)
 A20 line       : ON
 HMA used       : 64976 Bytes (DOS v5.00)
 HMA free       :   544 Bytes
 HMA vectors    :
 Free EMB max.  :  6224 KB
 Free EMB total :  6224 KB
 API address    : 0588:0443
 Shares with EMS: YES

仮想86ドライバであるMELEMM.386以外は全部UMBかHMAかEMSへ逃がすことに成功しているので640kBのメモリのうち630kBをコンベンショナルとして確保することに成功b
なんか拙者的に超懐かしいネタになってしまった。95年にDOS/V機へ乗り換えたわけだが、その時の98NS/Eのドライブの内容をCDに抜き出して後生大事に(^^;保存してたものを見ると大半の作業をバッチファイル化してた様子が伺える。先のCONFIG.SYSではFEPはWX2を使ってるが最終的にはWX3になったらしい。ファイル管理はFILMTN*3パソ通はWTERM。NIFや草の根も全部マクロ組んで巡回、ログだけ落としてそれ読んでレス書いて再度接続して自動書き込みとか。色々くだらないプログラムを書いてたのはMINDとMS-C。MIDIデータ作ってたのはレコンポーザー。エディタはVZ。VZの超難解なマクロもたくさん書いたなぁ。

	;"メールの書込み"
:Z	&#J(f) #< ((cd=='M' || cd=='P') && (ps.0=='G')!) ? {&01 #b #x#x#x #k
	&y(y)&x(x)&#J(e)&#T(b) &w(5) #_ #i #<
	Ec[, Ec+, #< #F"is from: "#m#c #f#f #18 #f#s #l #< "EM;" #> #m#m Ec],
	&?("%s",pw) #m "Y" #x #y#y #_ #h >C} (ps.0=='G') ? >F >E

むぅ(^^;


当時はパソコンそのものに工夫の余地があって面白かったなぁというオッサンの回顧ネタでしたm(_ _)m

*1:EDLINなんてラインエディタの存在は今となっては都市伝説っぽいなw

*2:Windows98ユーザーではなく、みいその98NS/Eユーザー

*3:死んでも多数派であるFDは使わなかった