LC-8600シリーズの機能拡張+不具合修正 LC86EX.SYS Version 1.00 1997.5.18 ゆき 1.はじめに  このプログラムは Moving Pocket こと、Lexicomp LC-8600シリーズの 機能拡張・不具合修正を行なうプログラムです。  以前わたしが作った LC86KEY.SYSという、Ctrlキーの不具合を修正する プログラムを発展させたものです。Ctrlキーの不具合修正以外に UMBの実 現など、他の仕事も増えたので名称を変更してしまいました。m(__)m 2.機能 (1) CTRLキーの動作不具合の解消  左 Ctrlキーの不具合を修正します。Ctrl+Mを押すことを例に取ると、 Ctrlを押す→Mを押す→Mを放す→Ctrlを放す という順番でキー操作すると正常に動作しますが、 Ctrlを押す→Mを押す→Ctrlを放す→Mを放す という順番だと CRが2度入力されてしまう不具合が発生します。  LC86EX.SYSはこの不具合を修正します。 (2) F8680Aの 186命令許可ビットをセットする  LC-8600シリーズの CPU F8680Aはデフォルトでは 8086互換動作をしま すが、CREGと呼ばれる特有の内部レジスターを操作することで 186命令 を実行できます。ところが、LC-8600シリーズの BIOSはここを有効にし ません。LC86EX.SYSはこれを操作して 186命令を実行できるようにします。 (3) RAMアクセスタイミングの変更(オプション)  オプションスイッチ -Dn で RAMのアクセスタイミングを調整できます。 わたしの LC-8620では、これを -D3 とすることによって高温時の動作が 安定するようになりました。Turbo OFFなら動くが、ONだと途中でおかし くなるといった症状が出る個体の場合はこれによって Turbo ONでも安定 動作するようになるかもしれません。  ひょっとすると、クロックアップしてもこれをいじれば安定動作する かもしれません。  なお、この機能は RAMアクセスに Waitを入れるものではありませんの で実行速度に影響は無いと思います。 (4) Ctrl+Alt+Delでリセット時の処理  Ctrl+Alt+Delでリセットした場合に次の処理を行ないます。 ・CPUクロックを 7MHzに落として安定して起動するようにする ・Caps Lockなど LEDをクリア ・Caps Lockのワークエリアクリア ・PCカード設定の初期化  これにより確実なリセットと次回起動時の安定動作を実現します。 LED表示の不具合も直ります。 (5) セグメント C000〜CDFFhを UMBにする(オプション)  LC-8620では、セグメント C000〜CDFFhの 56KBは完全に遊んでいるこ とがわかったので、そこを UMBにできるようにしました。HIMEM.SYS相当 のファンクションは実装せず、MCBのリンクの操作だけで済ましています。  -U オプションスイッチをつけた場合に有効になります。この機能を使 う場合は LC86EX.SYSは CONFIG.SYSの最初に記述してください。  これにより、わたしの LC-8620では FEP「刀」をはじめとしていろい ろなデバイスドライバーや常駐ソフトがあるにもかかわらず 610KBのコ ンベンショナルメモリーを確保しています。  わたしの環境で ZMAPを実行した場合 ----------------------------------------------------------------- |ZMAP v1.03 Copyright(C) 1992 ZOBplus Hayami |DOS Version 5.00 Extended memory size 960 Kbytes | |Addr PSP Size ownerpsp/parameters device Hooked vectors |---- ---- ------- -------------------------- -------- ----------------------- |014D:00CC 301 = 5 |028E:0000 336 LC86EX $LC86EX$ |02A4:0000 24784 FONTMAN $IBMAFNT 30 FB FD |08B2:0000 9760 YADC $IBMADSP 21 |0B15:0000 4064 KKCFUNC KKCFUNC$ |0C14:0000 1728 KTN4 KTN$KER |0C81:0000 9296 KTN4C MS$KANJI 10 16 |0EC7:0000 2071 = 35(+ 5) |0F4A:0000 218 = 4, 0 |0F5B:0000 15968 = 30( 0), 0 |1342:0000 2288 = Z: |13D2:0000 1856 = 9,128 |1447 1447 5872 22 23 24 2E |15B7-15BB 64 |15BC 1447 2048 |163D-1649 192 |164A 164A 5280 DOSKEY /INSERT 2F |1795-AFFF 624272 |B000 0008 65536 | |------ UMB Memory Area -- |Addr PSP Size ownerpsp/parameters device Hooked vectors |---- ---- ------- -------------------------- -------- ----------------------- |C002:0000 11728 PCCEMM EMMXXXX0 67 |C2E0:0000 1232 RAMDRIVE 1 + 5 19 |C32E:0000 4480 SDPDRV5A 1 |C447:0000 32560 JAM 1x%. % 20 25 26 27 |CC3B:0000 608 ERAMDISK 1ERAMDSK |CC62:0000 4192 PANSI CON 1B 29 |CD69-CDD7 1760 |CDD8 0001 624 08 09 15 | ----------------------------------------------------------------- (6) Ctrl+SPACE を Alt+~に変換する(オプション)  FEPの起動を Ctrl+SPACEでも行なえるようにします。作者個人の趣味 なので普通の人には不用と思われるので -K オプションスイッチをつけ た場合に有効になります。X680x0の FEPに慣れた人には有効かも。 3.使用法  CONFIG.SYSに DEVICE=C:\SYS\LC86EX.SYS と記述を追加してください。「C:\SYS」は LC86EX.SYSがあるパスにします。 CONFIG.SYSの前の方がいいでしょう。  付属の CHKCAPS.EXEで調べたワークエリアを記述する場合は DEVICE=C:\SYS\LC86EX.SYS -C639E のようにワークエリアのオフセット(:以降の部分)のみを記述してください。 4.オプションスイッチ -Dn RAMのアクセスタイミングを変更します。 これを指定すると動作が安定するかもしれませんが、 副作用もあるかもしれませんので注意してお使いください。 nは 0〜3が有効で、デフォルトは1です。わたしの LC-8620 では -D3の設定が一番安定しました。 注意:このスイッチを試す前に HDD等のバックアップをとっておきま    しょう。-D0はうまく動作しないと思います。 -U セグメント C000〜CDFFhの 56KBを UMBにします。 この機能を使う場合は、LC86EX.SYSは CONFIG.SYSの 最初に記述してください。 -K Ctrl+SPACEを Alt+~にすり替えます。 これにより、FEPが Ctrl+SPACEで起動できます。 X680x0の FEPに慣れた人向けです。(^^ゞ -Cxxxx Caps Lockのワークエリアを指定します。 付属の CHKCAPS.EXEで調べたワークエリアアドレスを 記述してください。Ctrl+Alt+Delでリセット時にここ をクリアします。これにより、Caps ONのままリセット しても LEDの表示が正常になります。 5.改変履歴 LC86KEY.SYS: 1.00 1996.9.28 初公開 1.01 1996.11.24 セグメント指定ミスを修正 リセット時のクロックダウンを廃止 CPUの検査を確実化 オプションスイッチの廃止 1.10 未公開 リセット時のクロックダウンを復活 Caps LEDの不具合に対処 1.20 未公開 Ctrl+SPASEで FEPが起動できるようにした RAMのアクセスタイミングを変更できるようにした 1.30 未公開 UMBを使えるようにした。 LC86EX.SYSと名称変更 1.00 1997.5.18 名称変更したうえで公開 6.その他  このソフトはフリーソフトとします。(ノコウェアにしようかな?) 配布・コピー等、自由に行ってかまいません。ただし、このソフトを使っ たことによる損害には責任をもちません。他のBBS、ホームページ・雑 誌等に掲載する場合には連絡をお願いします。  このソフトの開発に際し、ソフトバンク 牟田拓・福田雅史共著 「Massif ハイパーガイド」が大変参考になりました。LC-86xxユーザーで アセンブラプログラムが書ける人ならこれを見ればいろいろないたずらが できます。(^^;  わたしは 86系のアセンブラが苦手です。ソースも添付しましたが、初心 者の方はお手本にしないでください。(^^; yk_kawa(at)sannet.ne.jp ゆき