| version 1.1, 2003/11/08 17:12:45 | version 1.149, 2005/05/20 14:16:38 | 
| Line 1 | Line 1 | 
 |  |  | 
 |  | // ---- info | 
 |  |  | 
 |  | TRACE版(i286_step())で シングルステップ割り込みが割り込み続けるとか | 
 |  | mov SS直後に割り込みが発生するとか不都合があります。 | 
 |  | これについては、直す気力があれば(286コードを追っかける時だけだし…) | 
 |  |  | 
 |  | // ---- IA-32 info | 
 |  |  | 
 |  | ・CPU panic や警告表示時に msgbox() という API を使用します。 | 
 |  | compiler.h あたりで適当に定義してください。 | 
 |  |  | 
 |  | ・sigsetjmp(3), siglongjmp(3) が無いアーキテクチャは以下の define を | 
 |  | compiler.h あたりに追加してください。 | 
 |  |  | 
 |  | ------------------------------------------------------------------------------- | 
 |  | #define sigjmp_buf              jmp_buf | 
 |  | #define sigsetjmp(env, mask)    setjmp(env) | 
 |  | #define siglongjmp(env, val)    longjmp(env, val) | 
 |  | ------------------------------------------------------------------------------- | 
 |  |  | 
 |  |  | 
 |  | CHARSET_OEMについて | 
 |  | 要は毎回Shift-JISに変換せずに OS依存の文字コードで処理しようとする… | 
 |  | まだ機能しません。定義しないで下さい。 | 
 |  |  | 
 |  | OEMCHAR (現状char固定、将来として UCS2でUINT16、UCS4でUINT32) | 
 |  | OEMTEXTの追加 | 
 |  | コンパイルが通るかご確認下さい。 | 
 |  |  | 
 |  | ステップ.1 (WinCE,X11) | 
 |  | OEMコードと SJIS(EMBED/hostdrv)の変換調整 | 
 |  | (FONTMNGは SJISのままで EMBEDで変換) | 
 |  |  | 
 |  | つか…X11版のDOSIO file_catname,file_cmpnameの入力が sjisになってる… | 
 |  | (NP2はファイル名は OSLANGに従う…筈… | 
 |  | と思ったら hostdrvで SJISのまま食わせてる?(汗 | 
 |  |  | 
 |  | EUCの2バイトコード判定が (((c - 0xa1) & 0xff) < 0x5d)で | 
 |  | 半角カナ(0x8e)の判定で狂う | 
 |  | (c & 0x80)のほうが良い? | 
 |  |  | 
 |  | 現状の… | 
 |  |  | 
 |  | ・codecnv.hのインクルードは compiler.hに移動 | 
 |  |  | 
 |  | ・#if defined(OSLANG_EUC) | 
 |  | codecnv_sjis2euc(tmp, NELEMENTS(tmp), src, (UINT)-1); | 
 |  | file_catname(path, tmp, NELEMENTS(path)); | 
 |  | #elif defined(OSLANG_UTF8) | 
 |  | oemtext_sjis2oem(tmp, NELEMENTS(tmp), src, (UINT)-1); | 
 |  | file_catname(path, tmp, NELEMENTS(path)); | 
 |  | #else | 
 |  | file_catname(path, src, NELEMENTS(path)); | 
 |  | #endif | 
 |  |  | 
 |  | を | 
 |  |  | 
 |  | #define oemtext_sjis2oem codecnv_sjis2euc | 
 |  | #define oemtext_oemsjis2 codecnv_euc2sjis | 
 |  |  | 
 |  | としておいて | 
 |  |  | 
 |  | #if defined(OSLANG_ANK) || defined(OSLANG_SJIS) | 
 |  | file_catname(path, src, NELEMENTS(path)); | 
 |  | #else | 
 |  | oemtext_sjis2oem(tmp, NELEMENTS(tmp), src, (UINT)-1); | 
 |  | file_catname(path, tmp, NELEMENTS(path)); | 
 |  | #endif | 
 |  |  | 
 |  | とする? | 
 |  |  | 
 |  | メモ: http://euc.jp/i18n/charcode.ja.html | 
 |  |  | 
 |  | ステップ.2 (WinNT,MacOSX) | 
 |  | OEMCHARのUCS2対応 | 
 |  |  | 
 |  | ステップ.3 (MacOSX) | 
 |  | ANSI PageCodeと Macintosh PageCodeの調整 | 
 |  | メモ: http://homepage1.nifty.com/nomenclator/unicode/normalization.htm | 
 |  |  | 
 |  | ステップ.4 (WinNT,WinCE,MacOSX,X11) | 
 |  | フォント関数回りを SJISからOEMコードに移行 | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.81 → ver0.81a | 
 |  | ・MOUSE - ボタンフラグの修正 | 
 |  | ・PIT - シリアルカウンタの修正 | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | ver0.80 → ver0.81 | 
 |  | ・80286 (x86版) - rep ins, 2バイトmov8命令の不都合修正 | 
 |  | ・80286 (x86版) - クロック修正 (enter) | 
 |  | ・80286 (C版) - クロック修正 (cmp, jcc, test, enter) | 
 |  | ・80286 (ARM版) - pop ss命令の修正 | 
 |  | ・80286 (ARM版) - クロック修正 (cmp, jcc, test, enter) | 
 |  | ・80286 (C版) - rep outsw命令を修正 | 
 |  | ・MPU-PC98II - conductor修正 | 
 |  | ・MPU-PC98II - Request PC/Tempo コマンドの追加 | 
 |  | ・DMA - セルフイニシャライズを追加 | 
 |  | ・GDC - ソフトリセット時のフラグ修正 | 
 |  | ・GRCG - ソフトリセット時のフラグ修正 | 
 |  | ・PIT - シリアルカウンタの修正 | 
 |  | ・MOUSE - 割り込み修正 | 
 |  | ・ATRIC - 時間巻き戻りバグ修正 | 
 |  | ・SOUND - アドレスバスの修正 | 
 |  | ・WSS - データ転送サイズの修正 | 
 |  | ・BIOS - 1842h スクリーンモードを破壊する不都合修正 (ver0.75エンバグ) | 
 |  | ・BIOS - CRTBIOSフラグ修正 (PC-9821モード) | 
 |  | ・BIOS - FDDアクセス時にstatsaveを行なうと復帰できなくなる不都合修正 | 
 |  | ・一部(というか大部分…)のキーボードのmake/break関係を修正 | 
 |  |  | 
 |  | ・メモリを修正(C版コア) | 
 |  | ・16MB以上のメモリをサポート(IA32) | 
 |  |  | 
 |  | ・内部変更 | 
 |  | たぶん | 
 |  | #define OEMTEXT(string)    (string) | 
 |  | を | 
 |  | #define OEMTEXT(string)    string | 
 |  | にする必要がある。 | 
 |  |  | 
 |  | CPUフォルダの DMA EGC等がほぼ同様のコードなので memフォルダへ移動し | 
 |  | 共通にしました。 | 
 |  |  | 
 |  | embedのShift-JISを ネイティブコードにしました。 | 
 |  | 文字コードがEUCの環境では SUPPORT_SJISは不要になります。 | 
 |  | また、fontmng_getsize, fontmng_getdrawsizeの引き数の文字コードが | 
 |  | SJISからEUCへ変更になっています。 | 
 |  |  | 
 |  | codecnvとucscnvを /codecnv へ移動しました。 | 
 |  |  | 
 |  | pccore.cとかにあるデバグコードがウザイので trapフォルダへ移動。 | 
 |  | ENABLE_TRAPが定義されてなければ見る必要はありません。 | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | ver0.79 → ver0.80 | 
 |  | ・BIOS - スクロールコマンド修正 | 
 |  | ・BIOS - システムポートの修正(i286/V30ではほぼ無意味) | 
 |  | ・GDC - ステップフラグの反映 | 
 |  | ・FDC - レディ信号を修正 | 
 |  | ・i286x - div命令 (i286モード側) | 
 |  | ・i286c - div命令 (V30モード側) | 
 |  |  | 
 |  |  | 
 |  | (X11) | 
 |  | ・ジョイスティックサポート | 
 |  | サウンドドライバに SDL を使用している時にのみ使用可 | 
 |  | ・screen depth == 24bpp の時にキーディスプレイ、ソフトウェアキーボードの | 
 |  | 描画がおかしい不具合を修正 | 
 |  | ・T98-Next(.NHD)形式、Anex(.HDI)形式ハードディスクイメージ作成サポート | 
 |  |  | 
 |  | (MacOSX) | 
 |  | ・日本語リソース追加 | 
 |  | ・ソフトウェアキーボードを有効にした | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.78 → ver0.79 | 
 |  | ・CGROM - JIS83罫線の不都合修正 | 
 |  | ・CGROM - 2バイト半角アクセス修正 | 
 |  | ・86PCM - バッファリングの不都合を修正 | 
 |  | ・BEEP - BEEP PCMの修正 | 
 |  | ・BIOS - 2Dタイプのシリンダ倍移動を修正 | 
 |  | ・BIOS - FDD割り込みフラグを修正 | 
 |  | ・AMD98 - レジスタリードの追加 | 
 |  | ・VRAM - スキップライン描画の修正 | 
 |  | ・BMPSave - スキップライン有効時のセーブ不都合を修正 | 
 |  |  | 
 |  | (Win9x) | 
 |  | ・ソフトウェアキーボードを有効にした | 
 |  |  | 
 |  | (MacOSX) | 
 |  | ・カレンダーに対応 | 
 |  |  | 
 |  |  | 
 |  | ・内部変更 | 
 |  |  | 
 |  | char *file_getext(const char *path); | 
 |  | char *file_getname(const char *path); | 
 |  | (constが付きます) | 
 |  |  | 
 |  | 記念に gif保存に対応してみたり | 
 |  | vram/scrnbmp.c の代わりに vram/scrnsave.c をリンクして | 
 |  |  | 
 |  | SCRNSAVE ss = scrnsave_get(); | 
 |  | scrnsave_writegif(ss, "out.gif", SCRNSAVE_AUTO); | 
 |  | scrnsave_trash(ss); | 
 |  |  | 
 |  | bmpなら scrnsave_writebmp(ss, "out.bmp", SCRNSAVE_AUTO); | 
 |  |  | 
 |  | np21のVGA時に 257色以上になるのに注意 | 
 |  | (ss->type == SCRNSAVE_24BITの時にgif保存出来ません) | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.77 → ver0.78 | 
 |  | ・PIC - スレーヴのマスクの修正 | 
 |  | ・CGROM - JIS83罫線の不都合修正 | 
 |  | ・TEXTRAM - JIS83罫線の不都合修正 | 
 |  | ・86PCM - 割り込みステータスの修正 | 
 |  | ・BIOS - ブート時にメモリを完全に消去するようにした | 
 |  | ※ RanceII対策、他のホットスタートで不都合が出るかも | 
 |  | ・BIOS - 直線描画のアルゴリズム修正 | 
 |  | ・BIOS - 円の半径が異常だった不都合の修正 | 
 |  | ・BIOS - JIS83罫線の不都合修正 | 
 |  | ・LIO - 内部塗り潰し指定付きBOX描画の対応 | 
 |  | ・LIO - 半角ひらがなの対応 | 
 |  | ・LIO - 円の仮サポート | 
 |  |  | 
 |  | (X11) | 
 |  | ・ソフトウェアキーボードサポート | 
 |  |  | 
 |  | ・内部変更 | 
 |  |  | 
 |  | 追加ファイル | 
 |  | /lio/gcircle.c | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.76 → ver0.77 | 
 |  | ・BIOS - FDC BIOSの修正 | 
 |  | ・FDD - ディスクシーク音再生中にリセットを行なうと 以降ディスクアクセスが行なえなくなる不都合を修正。 | 
 |  |  | 
 |  | (X11) | 
 |  | ・i386 アーキテクチャ以外でコンパイルできない不具合を修正 | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.74 → ver0.76 (branch...) | 
 |  | ・DMA - バンク・アドレスマスクの修正 | 
 |  | ・PIC - スペシャルマスクモードの対応 | 
 |  | ・PIT - マルチプルラッチコマンドのサポート(uPD71054) | 
 |  | ・CGROM - 2バイト半角の処理を修正 | 
 |  | ・CGWINDOW - ワードアクセスの挙動修正 (MacOS9/MacOSX/x11/SDL) | 
 |  | ・MOUSE - uPD8255のコマンドレジスタの修正 | 
 |  | ・86PCM - 停止時にもかかわらずバッファを進めてしまう不都合を修正 | 
 |  | ・CS4231 - PIOサポート | 
 |  | ・BIOS - ベクタ08/1A/1Fの修正 | 
 |  | ・BIOS - リセット時の挙動の修正 | 
 |  |  | 
 |  | (Windows9x) | 
 |  | ・ATマシンの場合に PageUp/PageDownを反転 | 
 |  |  | 
 |  |  | 
 |  | ・内部変更 | 
 |  | 基本的にファイルが存在しなければプロジェクトから除外、 | 
 |  | リンクエラーが出たらgrepしてファイル追加 | 
 |  |  | 
 |  | 追加ファイル | 
 |  | /bios/bios1f.c | 
 |  | /bios/biosfd80.res | 
 |  | /cbus/ideio.h | 
 |  | /cbus/ideio.c         (SUPPORT_IDEIO定義時) | 
 |  | /cbus/atapicmd.h | 
 |  | /cbus/atapicmd.c      (SUPPORT_IDEIO定義時) | 
 |  | /cbus/idebios.res | 
 |  | /io/pcidev.h | 
 |  | /io/pcidev.c          (SUPPORT_PC9821定義時) | 
 |  |  | 
 |  |  | 
 |  | 削除ファイル | 
 |  | /bios/bios02.c | 
 |  | /bios/bios08.c | 
 |  | /bios/biosboot.res | 
 |  | /common/pf_key.tbl | 
 |  | /sound/wavemix.h | 
 |  | /sound/wavemix.c | 
 |  | /sound/rhythmg.c | 
 |  | /lio/gview.c | 
 |  | /lio/gcolor1.c | 
 |  | /lio/gcolor2.c | 
 |  | /lio/gcls.c | 
 |  |  | 
 |  |  | 
 |  | ROMIMAGEは MASMからNASMへ移行中でつ。 | 
 |  |  | 
 |  | SUPPORT_IDEIOは定義しないで下さい(まだマトモに動きません) | 
 |  |  | 
 |  | IA32でもハードウェアEMSを有効にしてみるテスト。 | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.74 → ver0.75 | 
 |  |  | 
 |  | ・GDC - ベクタの初期化し忘れを修正 | 
 |  | ・GDC - パターンの修正 | 
 |  | ・ITF/BIOS - リセット時の挙動の修正 | 
 |  | ・BIOS - 1842h モノクロフラグを修正 | 
 |  | ・EGCの高速化(?) | 
 |  | ・リズムの修正(PCM 44khz 16bit monoralの制限を外した) | 
 |  | ・LIOの修正 | 
 |  |  | 
 |  |  | 
 |  | (Windows) | 
 |  | ・(I286X) EGCバイトアクセス修正 | 
 |  | ・(I286X) ストリング命令修正 | 
 |  | ・フロッピードライブ接続状態指定 | 
 |  |  | 
 |  | (MacOS9) | 
 |  | ・フロッピードライブ接続状態指定 | 
 |  | ・MPU-PC98IIの設定ダイアログ | 
 |  |  | 
 |  | (WinCE) | 
 |  | ・(I286A) メモリの修正 | 
 |  | ・GDC - GDCクロック 1.79MHzのサポート | 
 |  |  | 
 |  | (X11) | 
 |  | ・Configure Dialog にてアーキテクチャの指定を追加 | 
 |  |  | 
 |  | (MacOSX) | 
 |  | ・フロッピードライブ接続状態指定(FDD1、FDD2のみ) | 
 |  | ・設定ダイアログのディップスイッチ画像表示 | 
 |  | ・CoreMID経由のMIDI演奏に対応 | 
 |  | ・MPU-PC98IIの設定ダイアログ拡充 | 
 |  | ・Key Display対応(マウスクリックでFMとMIDIが切り替わります) | 
 |  |  | 
 |  |  | 
 |  | ・200ラインモードについて (正式サポート / #define SUPPORT_CRT15KHZ) | 
 |  | PC-9801シリーズ(FELLOW、PC-9821、ハイレゾ機を除く)に搭載されている | 
 |  | 200ラインモードは設定ファイルのDIPswtchにて設定可能となります。 | 
 |  |  | 
 |  | 400ラインモード | 
 |  | DIPswtch=3e ?? ?? | 
 |  |  | 
 |  | 200ラインモード | 
 |  | DIPswtch=3f ?? ?? | 
 |  |  | 
 |  | 本機能は DIPSW1-1に相当する機能であり、PC-9801VM以降のマシンで | 
 |  | 一般に言われている200ラインモードとは異なる機能です。 | 
 |  |  | 
 |  | ※PC-98シリーズの一般的な200ラインモードは、640x200を縦に2倍拡大し | 
 |  | 400ラインモードで動作しています。 | 
 |  |  | 
 |  | 本機能は DIPSW1-1の切り替え機能を削除した FELLOW、PC-9821、ハイレゾ機の | 
 |  | BIOS.ROMを使用時には正常に動作致しません。 | 
 |  | これを理由に、本機能は NP2上で設定スイッチを設けません。 | 
 |  |  | 
 |  | また、レジューム動作時に DIPswtchの値を変更した場合、正常に | 
 |  | スクリーンモードを変更できなくなります。 | 
 |  | (PC-98動作中にディップスイッチを変更した時と同じ状態になります。) | 
 |  | 必ずリセットして下さい。 | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | ・キー設定について | 
 |  | bios.romとかと同じフォルダに key.txtというファイル名のテキストファイルを | 
 |  | 作成して、キー設定を記入して下さい。 | 
 |  |  | 
 |  | 書式) | 
 |  | [keyname] = [key1] (key2) (key3) | 
 |  | [keyname] [TAB] [key1] (key2) (key3) | 
 |  | userkey[1-2] = [key1] (key2) (key3) ... (key15) | 
 |  | フルキー 0〜9 A〜Z - ^ \ @ [ ] ; : , . / _ | 
 |  | STOP COPY ESC TAB BS RET SPC XFER NFER | 
 |  | INS DEL RLUP RLDN HMCL HELP | 
 |  | ファンク F1〜F10 VF1〜VF5 | 
 |  | テンキー [0]〜[9] [-] [/] [*] [+] [=] [,] [.] | 
 |  | シフト   SHIFT CAPS KANA GRPH CTRL | 
 |  |  | 
 |  | 通常キーは3個、userkeyは15個の同時押し設定が可能です。 | 
 |  | [=] キーは = で区切られてしまうので TABで区切るか [EQU]として下さい。 | 
 |  |  | 
 |  | 例: | 
 |  | W = UP                 (ダイアモンドキーをカーソルにしてみたり…) | 
 |  | S = LEFT | 
 |  | D = RIGHT | 
 |  | X = DOWN | 
 |  | [7] = [4] [8]          (テンキー斜め同時押しにしてみたり…) | 
 |  | [9] = [6] [8] | 
 |  | [1] = [4] [2] | 
 |  | [3] = [6] [2] | 
 |  | userkey1 = CTRL XFER   (CTRL+XFER FEP切り替え) | 
 |  | userkey2 = D O A Z     (D+O+A+Z 同時押し) | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | ・内部変更 | 
 |  | win9x/unasmをgenericへ移動(+P6,FPU命令をサポート) | 
 |  |  | 
 |  | np2infoをgenericへ移動 | 
 |  | エスケープ文字を !KEY から %KEY%へ変更 | 
 |  | ex == NULLで OS指定の改行コードになる筈 | 
 |  | (MacOSXは np2info.cppがそのまんま移動になるかと思われ | 
 |  |  | 
 |  | io/serial.*に存在した keystat系を /keystat.* へ移動 | 
 |  | keystat.cをリンク、 keystat.hをインクルード | 
 |  |  | 
 |  | SUPPORT_WAVEMIX廃止 | 
 |  | → SUPPORT_SWSEEKSNDに変更 | 
 |  | ハードウェアで対応してる場合には 一応 SUPPORT_HWSEEKSNDと定義して | 
 |  | くれると嬉すぃ | 
 |  |  | 
 |  | ・keystat_initialize(keystat_reset)をコールして初期化すること… | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.73 → ver0.74 | 
 |  |  | 
 |  | ・I/OレベルでのSASIに対応(INT3/DMA#0/BIOS:d0000-d0fff) | 
 |  | ・SCSI HDDに対応 | 
 |  | ・np2qn形式 HOSTDRVに対応 | 
 |  | ・拡張メモリの修正 (80286) | 
 |  | ・VRAM - 通常ディスプレイ時にメモリを破壊するバグを修正 | 
 |  | ・GDC - GDCクロック 1.79MHzのサポート | 
 |  | ・GDC - 走査周波数を可変にした | 
 |  | ・GDC - マスクが左右反転していたのを修正 | 
 |  | ・GDC - テキスト処理を修正(uPD7220A? cmd:05) | 
 |  | ・GDC - VECTEコマンド(R)を修正 (undocumented Tを追加) | 
 |  | ・GDC - TEXTEコマンド(SL/T)を修正 (undocumented L/C/Rを追加) | 
 |  | ・GDC - GRCG/EGC動作中の挙動を修正 | 
 |  | ・EGC - マスクフラグを修正 | 
 |  | ・FDC - DMAとステータスを修正 | 
 |  | ・SERIAL - キーボードステータスの修正 | 
 |  | ・uPD4990 - ホールド時の出力が不定になっていたのを修正 | 
 |  | ・RHYTHM - レジュームが反映されなかった不都合を修正 | 
 |  | ・ADPCM - サンプルリードがMSB/LSB逆転していたのを修正 | 
 |  | ・BIOS - ブート時にディップスイッチで指定した画面モードを反映 | 
 |  | ・BIOS - 1840h/1841h/1842h/1847hの結果をワークメモリへ反映するようにした | 
 |  | ・BIOS - 1847h マスクを左右反転させていなかったのを修正 | 
 |  | ・BIOS - 1848h/1849h/184ahをサポート | 
 |  | ・ITF - PC-9801VM/PC-286時に BEEPが初期化されない不都合を修正 | 
 |  | ・ITF - SSP終了時にハードウェアリセットをかけるように修正 | 
 |  | ・IDE - ディップスイッチ内容(SW2-6)を反映するように修正 | 
 |  |  | 
 |  |  | 
 |  | (Windows) | 
 |  | ・(I286X) sidt命令の修正 | 
 |  | ・(I286X) テキストRAMアクセスの修正 | 
 |  | ・(I286X) 割り込みの修正 | 
 |  | ・(I286X) EGCシフタを修正 | 
 |  | ・Aboutダイアログの修正 | 
 |  | ・ろみおとか… | 
 |  |  | 
 |  | (MacOS9) | 
 |  | ・テンキーの [+] [/] の修正 | 
 |  | ・file_attr()で FILEATTR_READONLY を返すように… | 
 |  |  | 
 |  | (MacOSX) | 
 |  | ・テンキーの [+] [/] の修正 | 
 |  | ・file_attr()で FILEATTR_READONLY を返すように… | 
 |  | ・ツールウィンドウ修正 | 
 |  | ・FDIイメージ対応(仕事早いよー>ゆいさん) | 
 |  | ・フルスクリーン修正(たぶん・・) | 
 |  | ・マウスドラッグに対応(タコミス・汗) | 
 |  |  | 
 |  |  | 
 |  | ・Userkeyについて | 
 |  | userkey1, userkey2は、cfgを書換えることによりキーを自由に変更することが | 
 |  | 出来ます。 | 
 |  | 書式) | 
 |  | userkey1 = [key1] (key2) (key3)... | 
 |  | フルキー 0〜9 A〜Z - ^ \ @ [ ] ; : , . / _ | 
 |  | STOP COPY ESC TAB BS RET SPC XFER NFER | 
 |  | INS DEL RLUP RLDN HMCL HELP | 
 |  | ファンク F1〜F10 VF1〜VF5 | 
 |  | テンキー [0]〜[9] [-] [/] [*] [+] [=] [,] [.] | 
 |  | シフト   SHIFT CAPS KANA GRPH CTRL | 
 |  |  | 
 |  | 例: | 
 |  | userkey1 = CTRL XFER   (CTRL+XFER FEP切り替え用) | 
 |  | userkey2 = D O A Z     (D+O+A+Z 同時押し) | 
 |  |  | 
 |  | 本機能は 簡易的な実装であり ver0.75で変更されます。 | 
 |  | また、ver0.74ではシフト系は不整合が発生する可能性があります。 | 
 |  |  | 
 |  |  | 
 |  |  | 
 |  | ・内部変更 | 
 |  | pccore.h の中で statsave.hをインクルード | 
 |  | → #include "statsave.h" をトル | 
 |  |  | 
 |  | io/extmem を io/emsioに変更 | 
 |  | (IA32は emsioは要らないが、NEC EMSバンク形式で必要になるかも) | 
 |  |  | 
 |  | np2cfg.hddfile[2] -> np2cfg.sasihdd[2] | 
 |  |  | 
 |  | void diskdrv_sethdd(REG8 drv, const char *fname); | 
 |  | drv = BIOSのデバイス番号 | 
 |  | 0x00〜0x01  SASI #0-1 | 
 |  | 0x20〜0x23  SCSI #0-3  (SUPPORT_SCSIを定義した時のみ) | 
 |  |  | 
 |  | bios/sxsibios.c はリンク必須 | 
 |  | cbus/sasiio.c - SUPPORT_SCSIを定義した時にリンク | 
 |  | cbus/scsiio.c cbus/scsicmd.c - SUPPORT_SCSIを定義した時にリンク | 
 |  |  | 
 |  | IA32でハードウェアEMSを禁止しました。 | 
 |  | → #define CPU_SETEXTSIZE() init_mem() に変更 (済) | 
 |  | → memory.cの EMM部分をトル (済) | 
 |  | → cpumem extmem_size を CPU_EXTMEM, CPU_EXTMEMSIZEに変更(済) | 
 |  | → protectmem_sizeをトル (済) | 
 |  |  | 
 |  | しかし emm386.exeが使えないから ハードウェアEMSを有効にした | 
 |  | ほーがいいかな? 辻褄は合いそうだし。 | 
 |  | 386以降に乗っかってる NEC EMSバンク方式だと あまりにアホだし。 | 
 |  |  | 
 |  | dosio.hの FTYPEを common.hへ移動。 | 
 |  | こそーり fdiを読めるよーにしてみたり。 | 
 |  |  | 
 |  | フロッピードライブについて np2cfg.fddequipを見に行くようにしました | 
 |  | デフォルトで2基 | 
 |  | np2cfg.fddequip = 0x03 (ドライブ1 = ビット0 〜 ドライブ4 = ビット3) | 
 |  | (実際に動作中の装備状態は fdc.equipで リセット時に更新されます) | 
 |  | 必要によって main()で変える、cfgに書き出す等してください。 | 
 |  |  | 
 |  | S98について SUPPORT_S98定義時のみリンクするようにしました。 | 
 |  | (Win9x, MacOSX, x11(USE_GTK)) | 
 |  |  | 
 |  | PC9861Kについて SUPPORT_PC9861K定義時のみリンクするようにしました。 | 
 |  | (シリアル通信に対応していなければ無意味な機能です) | 
 |  |  | 
 |  | userkey | 
 |  | ini.cで profile_setkeys, profile_getkeysで np2cfg.userkeyを更新 | 
 |  | キーボードのどこかにキーに キーコード 0x76,0x77を追加 | 
 |  |  | 
 |  |  | 
 |  | メモ | 
 |  | 実機で FDでVRAMクリアされるのは何故? | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.72 → ver0.73 | 
 |  |  | 
 |  | ・主にRISC向けの最適化、その2 | 
 |  | ・EPSON PCシリーズのアーキテクチャをサポート | 
 |  | ・ARM版CPUコアのサポート | 
 |  | ・CPU(I286C) … シングルステップ割り込みの修正 | 
 |  | ・CPU(I286C) … int3 / int imm8 / into クロック数を修正 | 
 |  | ・CPU(I286C) … shl r/m8,cl / shr r/m8,cl の修正 | 
 |  | ・CPU(I286C) … sar r/m (eVC3/eVC4コンパイラバグ回避) | 
 |  | ・CPU(I286C/I286X/I286A) … グループ7とか… | 
 |  | ・DMAC … インプットでアドレスとカウンタが逆なのを修正 | 
 |  | ・PIT … ビープカウンタを修正 | 
 |  | ・NP2SYSP … ポートを叩いた瞬間 フリーズするバグを修正 | 
 |  | ・CALENDAR … 時間をインクリメントしないバグの修正 | 
 |  | ・ITF … 拡張メモリ使用時にエミュレーション内部のメモリを破壊するのを修正 | 
 |  | ・CS4231 … 再生しなくなっていたのを修正 | 
 |  | ・CS4231 … DMA,IRQを変更出来るようにしました | 
 |  | ・CS4231 … デフォルトのDMAチャネルを #1に変更 | 
 |  | ・MIDI … STATSAVEの修正 | 
 |  | ・SOUND … JAST SOUNDをサポート | 
 |  | ・Vermouth … Roland GSコマンドの一部に対応 | 
 |  |  | 
 |  | 補足 | 
 |  | ver0.73では EPSONモードの時 D000〜DFFFがRAM化されます。 | 
 |  | ・SOUND BIOSは D000,D400に配置しないで下さい、もしくはUMB等で破壊されないようにして下さい。 | 
 |  |  | 
 |  |  | 
 |  | (X11) | 
 |  | ・Qt 2.x の実験的なサポート | 
 |  | ・SDL の実験的なサポート | 
 |  | ・ビープ音量が設定ファイルに保存されないのを修正 | 
 |  |  | 
 |  |  | 
 |  | ver0.73向け | 
 |  | ・io/necio.c io/epsonio.c をリンクして下さい | 
 |  | ・io/itf.cをリンクよりはずして下さい | 
 |  |  | 
 |  | ・configのモデル選択 http://retropc.net/yui/cvs/config.gif | 
 |  | np2cfg.model に それぞれ "VM" "VX" "EPSON"の文字列を設定する。 | 
 |  | (それぞれ common/strresにstr_VM, str_VX, str_EPSONが用意されています) | 
 |  |  | 
 |  | ・JAST SOUNDの選択 http://retropc.net/yui/cvs/jastsnd.gif | 
 |  | パラレルなので 機種依存部の COMMNG.Cを修正して CMJASTCを呼ぶ | 
 |  | 使用・未使用判定は OSごとに(np2oscfgで)設定すること | 
 |  |  | 
 |  | ・wavemix sound/getsnd については ver0.73では不要ですが、 | 
 |  | ver0.74あたりで使用する予定(Seeksnd?/OPNA/AMD-98の共用ルーチン化) | 
 |  | 今までのseeksndインタフェイスはどうするかね… | 
 |  |  | 
 |  |  | 
 |  | 更新履歴に書かなくていい変更点 | 
 |  | ・i286a/i286c/i286xに簡易プロテクトモードを追加(保護・タスクなし) | 
 |  | ・DMACを再配置できるように修正 | 
 |  | ・CPU/EGCのストラクチャの調整 | 
 |  | ・BIOS … DISK BIOSをサポート(但し 通常のBIOSコールは DISK BIOSを使用せずに BIOSレベルでシミュレートしています) | 
 |  | ・BIOS … SASI/SCSI BIOS ROMをサポート(BIOSアドレス d000:0000) | 
 |  | 補足→ (ver0.74に回す) | 
 |  | SASI/SCSI BIOSは 殆どの場合にはブート時にしか使っていないので RAM内容を破壊しても HDDアクセスは正常に行なわれます。 | 
 |  | ※アプリケーションが SASI/SCSI BIOSを直視しない限りは大丈夫。 | 
 |  | ver0.72までは SASI/SCSI BIOSがサポートされていない(=つまり使われていない) ver0.72までに動いていたソフトウェアはほぼ大丈夫と言えます。 | 
 |  | ・hostdrv... | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 |  | ver0.71 → ver0.72 | 
 |  |  | 
 |  | ・主にRISC向けの最適化(CPU, BEEP counter, BIOS etc...) | 
 |  | ・CPU … aaa命令の修正 | 
 |  | ・PIT … インターバルタイマの割り込みを修正、リカバリ修正 | 
 |  | ・VRAM … SLとLRの関係をミスってた。 | 
 |  | ・PC-9801-26K … ステータスを修正 | 
 |  | ・PSG … サウンド作成タイミングの修正(ヴォリューム変更時) | 
 |  | ・マウス … 負方向の演算の不都合を修正 | 
 |  | ・一部の設定だけを変更しても cfgに保存されないのを修正 | 
 |  | ・vermouth … Win9x,MacOS,X11でバンク切替えを有効にした | 
 |  | (済: MacOSX→cmverを使って下さい) | 
 |  | (済: x11→midimod_loadprogram/rhythmの代わりに midimod_loadallを) | 
 |  | ・ini/cfg … biospathの追加 (nullstringでdosioカレント) | 
 |  |  | 
 |  | (MacOSX) | 
 |  | ・Open/Saveダイアログ修正 | 
 |  | ・ドラッグ&ドロップ修正 | 
 |  | ・vermouthをcmverを使うように変更 | 
 |  | ・XFERとNFERをそれぞれカナキーと英数キーに割り当てた。 | 
 |  | ・ウィンドウの位置をnp2.cfgに記録するようになった。 | 
 |  | ・これまでF12に割り当てていたキーをF11とF12で分担するように変更(要再設定)。 | 
 |  | ・割り当て可能なキーにNFERとXFER(とカナ)を追加。 | 
 |  | ・コマンド+クリックを右クリックに割り当てるように変更。 | 
 |  |  | 
 |  | (Win9x) | 
 |  | ・標準ディスプレイ→プラズマディスプレイ移行時にゴミがのこるのを修正 | 
 |  |  | 
 |  | (WinCE) | 
 |  | ・ソフトウェアキーボードのサポート | 
 |  |  | 
 |  | (X11) | 
 |  | ・Qt の実験的なサポート | 
 |  | ・MIT Shared-Memory Extention shared Pixmap サポート | 
 |  | ・画面描画時の無駄を減らした | 
 |  | ・Key Display のサポート | 
 |  |  | 
 |  |  | 
 |  | でぶねこ補足 | 
 |  | ・必須 | 
 |  | compiler.h に 以下のうち必要な定義を入れること | 
 |  | OSLANG_SJIS, OSLANG_EUC | 
 |  | OSLINEBREAK_CR, OSLINEBREAK_LF, OSLINEBREAK_CRLF | 
 |  | SUPPORT_ANK, SUPPORT_SJIS, SUPPORT_EUC | 
 |  |  | 
 |  | ・変更 | 
 |  | (target)/keydisp -> (generic)/keydisp | 
 |  | (target)/cmmidi -> (target)/cmver  (vermouthのみ使用の場合) | 
 |  |  | 
 |  | 基本的には WinCE版とSDL版用のファイルで追加されたファイルで | 
 |  | リンクエラーが発生しない限りは必要はないと思われ。 | 
 |  |  | 
 |  |  | 
 |  | // ---- | 
 |  |  | 
 | ver0.70 → ver0.71 | ver0.70 → ver0.71 | 
 |  |  | 
 |  | ・CPU … enter命令(level>=2)の修正(C版のみ) | 
 |  | ・メモリスイッチ … 初期値を修正(コプロセッサフラグ) | 
 |  | ・FDC … Read IDの対応 | 
 |  | ・FDD … Write ID時にキャッシュがフラッシュされていなかったバグの修正 | 
 | ・np2sysp … ポート指定ミスを修正 | ・np2sysp … ポート指定ミスを修正 | 
 |  | ・PSG … ステレオ出力の対応 | 
 |  | ・PC-9801-14 … DIPSWポートの修正、PITのクロックを変更 | 
 |  | ・AMD-98 … クロックを修正、レジュームの対応 | 
 |  |  | 
 |  |  | 
 |  | (Win9x) | 
 |  | ・keydisp PSG修正 | 
 |  | ・マウス修正 | 
 |  |  | 
 |  | (MacOS9) | 
 |  | ・マウス対応(Classicのみ) | 
 |  | ・キーボード修正 | 
 |  | バックグラウンド処理中にキー入力を抑制 | 
 |  | Classic - 旧Classicルーチンを使用するようにした | 
 |  | Carbon - キーリピートに対応 | 
 |  | ・メニュー修正 | 
 |  | ・エミュレーションウィンドウを可変サイズに | 
 |  |  | 
 |  | (MacOSX) | 
 |  | ・マウス修正 | 
 |  | ・New Disk修正 | 
 |  | ・ヘルプ対応 | 
 |  | ・IIx専用ロゴ追加 | 
 |  | ・書類アイコン追加/変更 | 
 |  | ・About表示変更 | 
 |  | ・AMD-98対応 | 
 |  | ・画面回転対応 | 
 |  | ・エミュレーションキー追加 | 
 |  | ・シークサウンドをリソースに追加(外部ファイルは不要です) | 
 |  | ・その他にも細かな修正あり |