タイトル | : C000h VRAM領域と CDBL$() の問題 |
投稿日 | : 2024/05/01(水) 17:48 |
投稿者 | : konno | 番 号 | : 11234 11226 番 konno さんへのコメント コメント数 2 |
新しい STIME では、TIMER.DAT にタイマー画面を退避させています。 J31用BASICコンパイラを動作させてみると、その画面がおかしい。 ぐちゃぐちゃになっているのです。 TurboBasic では、48桁 23行で以下のように表示されます。 1行目は、d-他の受け渡しに使っています。 1 1>1日 17:16:31 0: 0: 0 0: 0: 9 中略 1日 17:16:33 0: 0: 0 0: 0: 7 J31BASIC では、各エミュごとに全部違っています。 VTDOS 4/13 13 把 0Oマ: 4Sマ: 4Sツ 8:12'45 0: 0:19 ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ VTDOS 4/21 21日^@^@02:38:31 0: 0: 0 0: 6:48 ^@^@^@^@^@^@ ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ VTDOS 5/1 1日 17:22:54 0: 0: 0 0: 0: 8 最初は2バイト文字が変に文字化けして、背景のスペースがヌルになっています。 現在は正常表示になっていますが、ここまでするのに一苦労でした。 DOSVAXJ3 VGAモード 12日cc 1PP6UU:2QQ9XX:1PP0OO 0 8:40:54 0: 0: 3 ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ DOSVAXJ3 J31モード 13日日 0011:0077:4477 0: 0'26 0: 0:13 MS-DOS Player 13日c 0O0O:5T3R:3R0O 0: 0' 0 0: 0:11 このように、どのエミュでも2バイト文字が化けたり2重になったりしています。 その原因は、J31BASIC の CDBL$() という、1バイトの数字を2バイト文字に変換する関数でした。 元々は J3100 でこの関数を使って表示していたので元に戻してみたらこうなったということです。 しかたがないので、TurboBasic と同じやり方に戻しました。 背景の空白が ヌル文字になったり、DOSVAXJ3 VGAモード では、$DB で埋められています。 これは、VRAM領域のメモリの状況によると思われます。 C000h セグメントは VGAの領域で確保されていると思いますが、初期化の問題なのかな。 VTDOS では、TPAEXT などでメモリ拡張していると干渉すると思われるので要注意です。 ともかく、動くのが不思議な状態なので、このまま使うのがよろしいようです。
- No.11234 一括表示へ - コメント元:11226 一括表示へ - [ 返信 ] [引用無し] pre