|
|
| version 1.21, 2003/12/01 18:25:03 | version 1.104, 2004/06/03 15:53:40 |
|---|---|
| Line 5 | Line 5 |
| mov SS直後に割り込みが発生するとか不都合があります。 | mov SS直後に割り込みが発生するとか不都合があります。 |
| これについては、直す気力があれば(286コードを追っかける時だけだし…) | これについては、直す気力があれば(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) | |
| ------------------------------------------------------------------------------- | |
| // ---- | |
| ver0.77 → ver0.78 | |
| ・BIOS - ブート時にメモリを完全に消去するようにした | |
| ※ RanceII対策、他のホットスタートで不都合が出るかも | |
| ・BIOS - 直線描画のアルゴリズム修正 | |
| ・BIOS - 円の半径が異常だった不都合の修正 | |
| ・LIO - 内部塗り潰し指定付きBOX描画の対応 | |
| ・LIO - 円のテスト | |
| ・86PCM - 割り込みステータスの修正 | |
| ・内部変更 | |
| 追加ファイル | |
| /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 | ver0.71 → ver0.72 |
| ・主にRISC向けの最適化(CPU, BEEP counter, BIOS etc...) | ・主にRISC向けの最適化(CPU, BEEP counter, BIOS etc...) |
| ・CPU … aaa命令の修正 | |
| ・PIT … インターバルタイマの割り込みを修正、リカバリ修正 | ・PIT … インターバルタイマの割り込みを修正、リカバリ修正 |
| ・VRAM … SLとLRの関係をミスってた。 | ・VRAM … SLとLRの関係をミスってた。 |
| ・PC-9801-26K … ステータスを修正 | ・PC-9801-26K … ステータスを修正 |
| ・PSG … サウンド作成タイミングの修正(ヴォリューム変更時) | |
| ・マウス … 負方向の演算の不都合を修正 | ・マウス … 負方向の演算の不都合を修正 |
| ・一部の設定だけを変更しても cfgに保存されないのを修正 | ・一部の設定だけを変更しても cfgに保存されないのを修正 |
| ・vermouth … Win9x,MacOS,X11でバンク切替えを有効にした | ・vermouth … Win9x,MacOS,X11でバンク切替えを有効にした |
| (済: MacOSX→cmverを使って下さい) | (済: MacOSX→cmverを使って下さい) |
| (済: x11→midimod_loadprogram/rhythmの代わりに midimod_loadallを) | (済: x11→midimod_loadprogram/rhythmの代わりに midimod_loadallを) |
| ・ini/cfg … biospathの追加 (nullstringでdosioカレント) | |
| (MacOSX) | (MacOSX) |
| ・Open/Saveダイアログ修正 | ・Open/Saveダイアログ修正 |
| ・ドラッグ&ドロップ修正 | ・ドラッグ&ドロップ修正 |
| ・vermouthをcmverを使うように変更 | ・vermouthをcmverを使うように変更 |
| ・XFERとNFERをそれぞれカナキーと英数キーに割り当てた。 | |
| ・ウィンドウの位置をnp2.cfgに記録するようになった。 | |
| ・これまでF12に割り当てていたキーをF11とF12で分担するように変更(要再設定)。 | |
| ・割り当て可能なキーにNFERとXFER(とカナ)を追加。 | |
| ・コマンド+クリックを右クリックに割り当てるように変更。 | |
| (Win9x) | (Win9x) |
| ・標準ディスプレイ→プラズマディスプレイ以降時にゴミがのこるのを修正 | ・標準ディスプレイ→プラズマディスプレイ移行時にゴミがのこるのを修正 |
| (WinCE) | (WinCE) |
| ・ソフトウェアキーボードのサポート | ・ソフトウェアキーボードのサポート |
| (X11) | |
| ・Qt の実験的なサポート | |
| ・MIT Shared-Memory Extention shared Pixmap サポート | |
| ・画面描画時の無駄を減らした | |
| ・Key Display のサポート | |
| でぶねこ補足 | でぶねこ補足 |
| ・必須 | ・必須 |