Diff for /np2/update.txt between versions 1.92 and 1.178

version 1.92, 2004/03/21 11:47:19 version 1.178, 2012/02/07 09:35:53
Line 5 Line 5
  mov SS直後に割り込みが発生するとか不都合があります。   mov SS直後に割り込みが発生するとか不都合があります。
  これについては、直す気力があれば(286コードを追っかける時だけだし…)   これについては、直す気力があれば(286コードを追っかける時だけだし…)
   
 // ---- IA-32 info  
   
   ・CPU panic や警告表示時に msgbox() という API を使用します。   CHARSET_OEMについて
     compiler.h あたりで適当に定義してください。    要は毎回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.83 → ver0.84
    ・i386c - rcl, rcr 命令の不具合を修正
    ・i386c - 命令実行中に例外が発生した際にスタックポインタがずれてしまう
             不具合を修正
    ・i386c - 割込みゲート、トラップゲートで不正なエラーコードが設定されてしまう
             不具合を修正
    ・i386c - セグメント有効範囲チェックの不具合を修正
    ・i386c - enter, leave, call, pusha, popa 命令でリアルモード時でもスタック
             サイズチェックで例外が発生してしまう不具合を修正
    ・i386c - セグメントレジスタ設定時の不具合を修正
    ・BIOS - 1F90h A20有効後に戻していない不具合を修正
    ・BIOS - 1Bh メモリアクセスを修正
   
    (Win32)
     ・NASM 2.09を使用するように修正
     ・UNICODE版(np2nt.exe) で hostdrv が利用できないバグを修正
   
    (X11)
     ・STATSAVE 用のメニューを作成
     ・レジューム/STATSAVE のファイル名を変更
      - レジューム: ${HOME}/.np2/sav/sav → ${HOME}/.np2/sav/np2.sav
      - STATSAVE  : ${HOME}/.np2/sav/s00 → ${HOME}/.np2/sav/np2.s00
     ・フォントパスに設定ファイル名が含まれてしまう不具合を修正
     ・エミュレーションウィンドウサイズ変更用のメニューを作成
     ・GLIB, GTK+ の deprecated なインタフェースを使用しない様に修正
     ・CPU 使用率を軽減する様に修正
     ・コンフィグ画面からサウンドドライバを変更出切る様に修正
     ・環境によってサウンドを有効にした場合にプログラムがクラッシュする
      不具合を修正
     ・GLIB, GTK+ の deprecated なインタフェースを無効化しない様に修正
     ・ビルド、インストールに Autotools(configure) を使用するように修正
     ・ファイル保存時に既に同名ファイルが存在した場合、上書き確認ダイアログを
      表示するように修正 (GTK+-2.8 以降のみ有効)
     ・F12 キー機能割り当てに Help キーを追加
     ・ファイルダイアログの floppy disk image Files にて拡張子が flp のファイル
      を表示する様に修正
     ・Screen Option の LCD のチェックを外しても外れない不具合を修正
     ・FDD シーク音が鳴らない不具合を修正
     ・色深度が 8bpp の場合に配列の範囲外にアクセスしていた不具合を修正
   
   
   // ----
   
    ver0.82 → ver0.83
   
    (X11)
     ・ファイルダイアログにて拡張子が大文字のディスク・イメージを認識する様に修正
     ・ファイルダイアログの IDE disk image Files にて拡張子が .hdi .tfd の
      ファイルを表示する様に修正
   
   
   // ----
   
    ver0.81a → ver0.82
    ・MPU-PC98II - モード切替時のMIDIリセットを修正
    ・VERMOUTH - ver1.15版に差し替え
   
    (Win9x)
     ・モジュール判定不具合修正
   
    (X11)
     ・PC9801-26K の I/O ポートが設定できなかった不具合を修正
     ・フルスクリーンモードサポート
     ・F11 キーに機能割り当て
      - フルスクリーンモードトグル
      - フルスクリーン時のメニュー表示トグル
   
   
   // ----
   
    ver0.81 → ver0.81a
    ・80286 (ARM版) - 割り込みハンドラを修正
    ・MOUSE - ボタンフラグの修正
    ・PIT - シリアルカウンタの修正
    ・HOSTDRV - 拡張子を消去する不都合を修正 (ver0.81エンバグ)
    ・BIOS - FDCスイッチ/シグナルの修正
   
   
   
    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 アーキテクチャ以外でコンパイルできない不具合を修正
   
   ・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)  
 -------------------------------------------------------------------------------  
   
 // ----  // ----
   
Line 25 Line 301
  ・DMA - バンク・アドレスマスクの修正   ・DMA - バンク・アドレスマスクの修正
  ・PIC - スペシャルマスクモードの対応   ・PIC - スペシャルマスクモードの対応
  ・PIT - マルチプルラッチコマンドのサポート(uPD71054)   ・PIT - マルチプルラッチコマンドのサポート(uPD71054)
    ・CGROM - 2バイト半角の処理を修正
    ・CGWINDOW - ワードアクセスの挙動修正 (MacOS9/MacOSX/x11/SDL)
  ・MOUSE - uPD8255のコマンドレジスタの修正   ・MOUSE - uPD8255のコマンドレジスタの修正
    ・86PCM - 停止時にもかかわらずバッファを進めてしまう不都合を修正
    ・CS4231 - PIOサポート
  ・BIOS - ベクタ08/1A/1Fの修正   ・BIOS - ベクタ08/1A/1Fの修正
  ・BIOS - リセット時の挙動の修正   ・BIOS - リセット時の挙動の修正
   
    (Windows9x)
     ・ATマシンの場合に PageUp/PageDownを反転
   
   
  ・内部変更   ・内部変更
    基本的にファイルが存在しなければプロジェクトから除外、     基本的にファイルが存在しなければプロジェクトから除外、
Line 64 Line 347
   
    SUPPORT_IDEIOは定義しないで下さい(まだマトモに動きません)     SUPPORT_IDEIOは定義しないで下さい(まだマトモに動きません)
   
      IA32でもハードウェアEMSを有効にしてみるテスト。
   
   
   
 // ----  // ----
   

Removed from v.1.92  
changed lines
  Added in v.1.178


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