--- np2/update.txt 2004/02/19 06:10:13 1.80 +++ np2/update.txt 2005/05/16 07:39:10 1.148 @@ -19,22 +19,368 @@ #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.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 - ベクタの初期化し忘れを修正 - ・EGCの高速化 + ・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命令をサポート) @@ -52,9 +398,10 @@     ハードウェアで対応してる場合には 一応 SUPPORT_HWSEEKSNDと定義して     くれると嬉すぃ +  ・keystat_initialize(keystat_reset)をコールして初期化すること… -// ---- +// ----  ver0.73 → ver0.74