2008年01月12日

「最終平気UPO」ディスクイメージ公開

制作者のうぴょりっくソフトさんのご厚意により、1992年に頒布された同人ソフト「最終平気UPO プレリリース」(うぴょりっくソフト)のディスクイメージを公開しました。縦スクロールシューティングゲームです。

http://www.pc88.gr.jp/forum/viewtopic.php?t=312

posted by Shinra at 22:08| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2007年11月18日

開発支援機能

ALT(右)キーを押している間高速実行する(No Waitかつ1/16 frame)機能を追加。VA-EG上でプログラムをコンパイルしているときにALT(右)を押していれば待ち時間が短縮できる。

Console Windowのちらつきを防止。


EditなどのコントロールをWindows APIで操作する方法について、MSDNのどこにまとまって書いてあるのかが、ようやくわかった。
http://msdn2.microsoft.com/en-us/library/bb773173.aspx
ブックマークしたからいいけれど、トップレベルからだとどうしてもたどり着けない・・・
描画の制御やメッセージ伝達の仕組みなどのまとまった説明もあって、
ようやく入口にたどり着けた感じ。
今まで日本語のMSDNを探していたのがだめだったようで。観念して英語読むしかなさそう。

コントロールにどのスタイルを適用するとどうなるかとか、どのメッセージを送るとどうなるかとかを確認するのに、Control Spyというツールがあるらしい。これは便利。
http://msdn2.microsoft.com/en-us/library/bb773165.aspx


大量のログ出力をEditコントロールで高速表示させたかったのだが、いろいろ試行錯誤した結果、無理という結論に。

posted by Shinra at 11:10| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年09月19日

ソフトウェアライブラリ

長らく故障したまま放置していた
88VAユーザーズクラブ ソフトウェアライブラリ
http://www.pc88.gr.jp/softlib/
を修繕しました。
posted by Shinra at 01:00| Comment(0) | TrackBack(0) | 日記 | このブログの読者になる | 更新情報をチェックする

2007年09月11日

CAPS/カナ

CAPS/カナキーのロック状態は以下の場合に保持されなかった。
1) VA-EGを終了した場合
2) リセットした場合

1)を解決したくて、まあ終了前にキーの状態を読み取ってiniに保存すればOKだろうと思っていたら、そんなに単純ではなかった。というか、キーボード実装周りのバグや未実装部分が露見した。
2)は、気づいていなかったが(汗)、原因はnp2のエミュレートするキーボードが、CAPS/カナをソフトウェア制御するタイプで、VAとは違うからだろうと思ったが、そうではなかった。

バグの内容
a) ポート197h (キーボード制御)の実装ミス
- モードコマンドとオペレーションコマンドを切り替えるbitの意味を逆に解釈していた。
- そもそも、モードコマンドとオペレーションコマンドの切り替えに使うbitの値が、テクマニと、VAのROM内プログラムが出力するのとで、違う。
⇒ RESETコマンドを発行しようとしても無視されていた
b) ポート190h 未実装
BIOSは、ここのbit0の値で、電源投入かリセットかを区別し、電源投入時に限ってキーボードにRESETコマンドを発行する。ここが未実装なために、キーボードにRESETコマンドを発行しようとしていなかった。
c) VAリセット時にキーマップをクリアしていた。
⇒ リセット前の状態が保存されない。

正しい動作は、おそらく、
・CAPS on/offの度にキーボードからVAにデータを送信、VA内でキーマップに反映
・電源投入時は、RESETコマンドを送信することにより、CAPSの状態に応じてonまたはoffのデータがキーボードからVAに送信され、VA内でキーマップに反映
・リセット時は、RESETコマンドは送信されないし、キーマップも前の状態を保つ。

CAPSのon/offをiniに保存して、VA-EG起動時に反映しただけでは実際のキー入力には反映されなかった。a),b)の問題で、CAPSの状態がキーマップに反映されなかったから。

これらを修正。iniへの保存も実装。
posted by Shinra at 00:39| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

全角キー3

[全角/半角]キーをVAの全角キーとして使えるように修正。

WM_KEYDOWN: wParam = f4 lParam & 0x01000000 = 00
または
WM_KEYDOWN: wParam = f3 lParam & 0x01000000 = 00
を受け取ったらキーon、それから一定時間ったらキーoff。

[全角/半角]キーを押しっぱなしだとどうなるかというと、
Windows側でキーリピートして、WM_KEYDOWNが連続して
発生するので(*1)、VA側のキーマップ(ポート00h-0Eh)から見ても
押しっぱなしに見える。ただ、キーを押してからキーリピートが
始まるまでの間に、キーがoffになった状態が発生する。
・・・実害ないだろう。

(*1) wParamはf4,f3が交互に出るのかと思ったら必ずしも
そうではないようで、規則性が見つからない。謎。


デフォルトのキー割り当てを変更。
・[全角/半角]→全角
・[右Alt]→GRPH
[右Alt]は、GRPH,全角,テンキーカンマ、テンキー=のいずれかの
キーを割り当てられるようにした。
posted by Shinra at 00:15| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年09月06日

全角キー2

> なので、VAで全角キーの代わりに変換キーでかな漢字変換の
> on/offをできるようにするプログラムを作成中。

公開しました。ソース付き。

http://www.pc88.gr.jp/forum/viewtopic.php?t=308


実現方法

全角/半角の切り替えに使うキーの判定処理はROM内にあるため、
この判定の書き換えは不可。
そこで、JFP BIOSがキーボードBIOSから取得するキーをすり替
える。JFP BIOSからキーボードBIOSはINTでなくFAR CALLで呼ば
れる。呼び出し先アドレスは、キーボードBIOSのワーク00AB:01DA
に書かれているので(テクマニ参照)、ここを書き換えればフック
できる。JFP BIOSのワークを参照して現在の変換状態をみて、
変換中でなければ、キーボードBIOSが変換キーのコードを
返したときに全角キーにすり替えてJFP BIOSに返す。



余談

マニュアルでかな漢字変換時の各キーの機能を確認したら、
再変換機能があってびっくり。全角モード時にSHIFT+6, SHIFT+4で
範囲選択すると入力済みのひらがなを再変換できる。

# 多分、VA2/3, VA+91のみの機能

一度読んで忘れてしまったのか、今初めて気づいたのか。

昔、Windows+IMEに再変換機能があって、おーっ、と思った記憶は
あるのだけれど、VAにもちゃんとあったとは。



> これができたとして、Windowsで[全角/半角]でIMEを制御している
> 人は、VA-EGでも[全角/半角]でかな漢字変換を制御したいよという
> 話も出てくるかどうか。

Windowsの[全角/半角]キーを使わなかったのは、キーを離したことが
検出できないから(イベントが発生しない: http://88va.seesaa.net/article/2090363.html )

M88が[全角/半角]を全角キーとして使っていそうだったのでソースを
見たところ、onから一定時間経ったら自動的にoffになるようにして
いた。
・・・
確かに、それで十分だわ。全角キーを押しっぱなしにして使うソフト
なんてないだろうし。
posted by Shinra at 23:33| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

全角キー

# エミュレータとは直接関係ないけれど

私はWindowsでは[変換]キーでIMEのON/OFFができるようにカスタマイズして使っている。一方、VA-EGでは全角キーの働きをするのは右[Alt]だ。VA-EGとWindowsを行ったりきたりすると、必ず間違える。Windowsで間違って[Alt]を押してメニューがアクティブになったりして混乱する。

なので、VAで全角キーの代わりに変換キーでかな漢字変換のon/offをできるようにするプログラムを作成中。


これができたとして、Windowsで[全角/半角]でIMEを制御している人は、VA-EGでも[全角/半角]でかな漢字変換を制御したいよという話も出てくるかどうか。


先日ノートパソコンでVA-EGを動かしていて、全角に切り替えようとしたら右[Alt]がない。そういえばそうだった・・・


やっぱり右[Alt]に全角キーを割り当てるのは、いろいろイマイチなのかも。
posted by Shinra at 02:24| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年04月22日

r070422公開

r070422を公開しました。
あわせて、GETROMVA (VAEGTOOL) r070422を公開しました。

バージョンアップボードのエミュレーションに対応しました。これを利用する場合、GETROMVA r070422で、バージョンアップボードのROMイメージを作成する必要があります。またEmulate - Config で機種としてPC-88VA1を選択し、Device - Version Up Boardをチェックする必要があります。

その他、マウス、CPUで細かい修正があります。
posted by Shinra at 19:42| Comment(1) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

バージョンアップボード8

バージョンアップボード対応の仕上げ。

・ポートFF2h のビットアサイン修正:bit6はROMエリア0のバンク指定
・バージョンアップボード無効時はバージョンアップボードのメモリをメモリ空間から切り離し
・ConfigでVA2選択時はメニューからバージョンアップボードの選択を不可に
・ついでに。ConfigでVA選択時は、メニューから98専用の機能は選択不可に。また、逆に98選択時はVA専用の機能は選択不可に。
・ヘルプ修正

posted by Shinra at 19:39| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

2007年04月14日

ドキュメントまわり 2

ヘルプを少しいじる
・スタイルの変更
・導入方法の説明の見直し
・機能仕様が98のままだったのでVAを追加
これだけで一日終わった・・・

機能仕様の記載はVAの拡張機器の型番を確認したりスペックを確認したり、VAと98で記載項目をあわせるために98のカタログも確認したりで意外に手間がかかった。
# VAの場合はSGPの話がカタログの表にも載っているのに、
# 98の場合はGDCが表に載ってなかったりとか。

表示可能文字種が98と違うのだけれど・・・記載内容合っているんだろうか・・・
posted by Shinra at 23:43| Comment(0) | TrackBack(0) | EMU | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。


×

この広告は1年以上新しい記事の投稿がないブログに表示されております。