Diff for /np2/update.txt between versions 1.39 and 1.74

version 1.39, 2004/01/05 13:33:51 version 1.74, 2004/02/16 05:31:31
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.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クリアされるのは何故?
   
   
 // ----  // ----
   
Line 12 Line 150
   
  ・主にRISC向けの最適化、その2   ・主にRISC向けの最適化、その2
  ・EPSON PCシリーズのアーキテクチャをサポート   ・EPSON PCシリーズのアーキテクチャをサポート
    ・ARM版CPUコアのサポート
  ・CPU(I286C) … シングルステップ割り込みの修正   ・CPU(I286C) … シングルステップ割り込みの修正
  ・CPU(I286C) … int3 / int imm8 / into クロック数を修正   ・CPU(I286C) … int3 / int imm8 / into クロック数を修正
  ・CPU(I286C) … shl r/m8,cl / shr r/m8,cl の修正   ・CPU(I286C) … shl r/m8,cl / shr r/m8,cl の修正
  ・CPU(I286C) … sar r/m (eVC3/eVC4コンパイラバグ回避)   ・CPU(I286C) … sar r/m (eVC3/eVC4コンパイラバグ回避)
  ・CPU(I286C) … グループ7とか…   ・CPU(I286C/I286X/I286A) … グループ7とか…
  ・DMAC … インプットでアドレスとカウンタが逆なのを修正   ・DMAC … インプットでアドレスとカウンタが逆なのを修正
  ・PIT … ビープカウンタを修正   ・PIT … ビープカウンタを修正
  ・NP2SYSP … ポートを叩いた瞬間 フリーズするバグを修正   ・NP2SYSP … ポートを叩いた瞬間 フリーズするバグを修正
    ・CALENDAR … 時間をインクリメントしないバグの修正
  ・ITF … 拡張メモリ使用時にエミュレーション内部のメモリを破壊するのを修正   ・ITF … 拡張メモリ使用時にエミュレーション内部のメモリを破壊するのを修正
  ・CS4231 … DMA,IRQを変更出来るようにしました。   ・CS4231 … 再生しなくなっていたのを修正
    ・CS4231 … DMA,IRQを変更出来るようにしました
    ・CS4231 … デフォルトのDMAチャネルを #1に変更
  ・MIDI … STATSAVEの修正   ・MIDI … STATSAVEの修正
  ・SOUND … JAST SOUNDをサポート   ・SOUND … JAST SOUNDをサポート
  ・Vermouth … Roland GSコマンドの一部に対応   ・Vermouth … Roland GSコマンドの一部に対応
  ・BIOS … DISK BIOSをサポート(但し 通常のBIOSコールは DISK BIOSを使用せずに BIOSレベルでシミュレートしています)  
  ・BIOS … SASI/SCSI BIOS ROMをサポート(BIOSアドレス d000:0000)  
   
  補足   補足
   ver0.73では EPSONモードの時 D000〜DFFFがRAM化されます。    ver0.73では EPSONモードの時 D000〜DFFFがRAM化されます。
   ・SOUND BIOSは D000,D400に配置しないで下さい、もしくはUMB等で破壊されないようにして下さい。    ・SOUND BIOSは D000,D400に配置しないで下さい、もしくはUMB等で破壊されないようにして下さい。
   ・SASI/SCSI BIOSについては 殆どの場合にはブート時にしか使っていないので RAM内容を破壊しても HDDアクセスは正常に行なわれます。  
    ※アプリケーションが SASI/SCSI BIOSを直視しない限りは大丈夫。  
     ver0.72までは SASI/SCSI BIOSがサポートされていない(=つまり使われていない) ver0.72までに動いていたソフトウェアはほぼ大丈夫と言えます。  
   
   
  (X11)   (X11)
Line 54 Line 191
    パラレルなので 機種依存部の COMMNG.Cを修正して CMJASTCを呼ぶ     パラレルなので 機種依存部の COMMNG.Cを修正して CMJASTCを呼ぶ
    使用・未使用判定は OSごとに(np2oscfgで)設定すること     使用・未使用判定は OSごとに(np2oscfgで)設定すること
   
     ・wavemix sound/getsnd については ver0.73では不要ですが、
      ver0.74あたりで使用する予定(Seeksnd?/OPNA/AMD-98の共用ルーチン化)
      今までのseeksndインタフェイスはどうするかね…
   
   
  更新履歴に書かなくていい変更点   更新履歴に書かなくていい変更点
   ・i286c/i286xに簡易プロテクトモードを追加(保護・タスクなし)    ・i286a/i286c/i286xに簡易プロテクトモードを追加(保護・タスクなし)
   ・DMACを再配置できるように修正    ・DMACを再配置できるように修正
   ・CPU/EGCのストラクチャの調整    ・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...
   
   
 // ----  // ----

Removed from v.1.39  
changed lines
  Added in v.1.74


RetroPC.NET-CVS <cvs@retropc.net>