--- np2/update.txt 2003/11/09 23:42:06 1.3 +++ np2/update.txt 2004/01/29 23:42:02 1.59 @@ -1,16 +1,244 @@ +// ---- 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) +------------------------------------------------------------------------------- + + +// ---- + + ver0.73 → ver0.74 + + ・I/OレベルでのSASIに対応(INT3/DMA#0/BIOS:d0000-d0fff) + ・SCSI HDDに対応 + ・np2qn形式 HOSTDRVに対応 + ・BIOS - ブート時にディップスイッチで指定した画面モードを反映 + ・VRAM - 標準ディスプレイ時にメモリを破壊するバグを修正 + ・ITF - PC-9801VM/PC-286時に BEEPが初期化されない不都合を修正 + ・ITF - SSP終了時にハードウェアリセットをかけるように修正 + ・IDE - ディップスイッチ内容を反映するように修正 + ・拡張メモリの修正 (80286) + + + (Windows) +  ・(I286X) sidt命令の修正 +  ・(I286X) テキストラムアクセスの修正 +  ・(I286X) 割り込みの修正 +  ・Aboutダイアログの修正 + + (MacOS9) +  ・テンキーの [+] [/] の修正 +  ・file_attr()で FILEATTR_READONLY を返すように… + + (MacOSX) +  ・テンキーの [+] [/] の修正 +  ・file_attr()で FILEATTR_READONLY を返すように… +  ・ToolWindowとか + + + ・内部変更 +   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を読めるよーにしてみたり。 + + +// ---- + + 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 + ・CPU … enter命令(level>=2)の修正(C版のみ) + ・メモリスイッチ … 初期値を修正(コプロセッサフラグ) + ・FDC … Read IDの対応 + ・FDD … Write ID時にキャッシュがフラッシュされていなかったバグの修正  ・np2sysp … ポート指定ミスを修正 - ・AMD-98 … クロックを修正、レジュームの対応 + ・PSG … ステレオ出力の対応 + ・PC-9801-14 … DIPSWポートの修正、PITのクロックを変更 + ・AMD-98 … クロックを修正、レジュームの対応 - (Win9x) + (Win9x)   ・keydisp PSG修正   ・マウス修正  (MacOS9)   ・マウス対応(Classicのみ) -  ・キーボード修正(Classicのみ) +  ・キーボード修正 +    バックグラウンド処理中にキー入力を抑制 + Classic - 旧Classicルーチンを使用するようにした + Carbon - キーリピートに対応   ・メニュー修正 +  ・エミュレーションウィンドウを可変サイズに + (MacOSX) +  ・マウス修正 +  ・New Disk修正 +  ・ヘルプ対応 +  ・IIx専用ロゴ追加 +  ・書類アイコン追加/変更 +  ・About表示変更 +  ・AMD-98対応 +  ・画面回転対応 +  ・エミュレーションキー追加 +  ・シークサウンドをリソースに追加(外部ファイルは不要です) +  ・その他にも細かな修正あり