未分類」カテゴリーアーカイブ

X68000用PS/2マウス変換アダプタ作りかけ(2)

動きがぎこちない原因が判明したので修正したファームを作成しました。すみませんが前のVerをDLしちゃった方はこちらを書き込んでみて下さい。

ps2ms_x68.20171213.zip

ps2ms_x68.20190706.zip

 

Inside X68000によるとMSCTRLが変化してから800usくらい間をおいてマウス信号を68に送れ、としか書いてないのですが、実際にはMSCTRLが変化してから???us以内に送信を完了しろ(あるいは変化後???us以内に送信を開始しろ。のどちらか)といった条件もあるような気がします。

MSCTRLが変化してから800~1000us以内に68に向けて送信を開始するようにタイミングを修正することでぎこちなさは解消しました。なお、修正後はMSCTRLはおおむね20ms周期で変化しています。修正前は60~70ms周期でMSCTRLが変化していました。そりゃぎこちない動きになる罠。

ps2ms_x68

 

2019-07-06 追記

PS/2 & USB compatibleマウスにおいて正常に動作しない問題に暫定対応しました。機能面では全く変更はありませんので、現状で問題なく動いている場合はファームを更新する必要はありません。

CompatibleマウスについてはMicrosoftのMSK-1113(B) Basic optical mouse v2.0でのみ確認しています(Amazonで一番安かったのがこれなので)。もしこれでも正常に動作しないマウスがありましたら、コメントでマウスの型番を教えて頂けますと幸いです。

X68000用PS/2マウス変換アダプタ作りかけ

一応正常に動いていますが、やや問題ありの部分が解消出来ないので。

手抜きの回路図?です

x68_mouse

例によって68本体とマイコンと繋ぐ線の間には100Ω程度をはさんで下さい。同様に、マイコンとPS/2コネクタの間も330Ωを直列にはさんで下さい(必須)。後は適当にVCCとGNDの間に0.1μF程度のパスコンを入れるとか、68のマウス端子から取り出したVCCにはポリスイッチを直列に入れるとか、その辺はキーボードアダプタの回路図を参考にして下さい。手抜きですみません

ファームです。PICKITとかで書き込んで下さい。

ps2ms_x68.zip

で、問題なく動くものの、純正マウスに比べて動きがどうにもぎこちない気がします。カウントの問題なのかなぁ?PS/2マウスは9ビットの符号付でX68マウスは8bitの符号付なので値を1/2にして68側に流してるだけなんですが・・・HIOCS.x にマウス速度の調整機能があったと思うんですが試していません。

一応うちのXVIでは動いていますが完全に無保証でお願いします

mouse

 

2017.12.13 追記
修正版を作りました

XT対応終了

IBM純正Model-Fはさすがに手に入らなかったので Northgate OmniKey のXTモードで開発。

Print Screenだけ2度押さないと機能しない問題に半日悩んだけど、マニュアルにちゃんと 「when you press it twice.」って明記された… これってOmniKeyだけの仕様なのか、XTキーボードの仕様なのかどっちなんだろう?

Num Lockが有効な時と無効な時で挙動が変わりすぎて辛い。Num Lockオンだとカーソルキーが使えるんだけどShiftとの同時押しが利かない。だから範囲選択とか出来ない。Num Lockをオフにしてテンキー側でカーソル移動させる分にはShiftとの同時押しもちゃんと利いて範囲選択出来るんだけど、Num LockオフだとカーソルキーやPageUp/Downなんかが全部機能しなくなる…

まあ、カーソルキーとかPageUp/DownとかHome/Endは純正Model-Fには無い、後付けで拡張されたキーだから仕方ないのかも。

Dvorak配列に切り替えたり出来るけど、aoueiキーが全部左手側に集まるのはローマ字入力する際には悪くない気がしなくも無い。あと人を殴り殺せるくらい重い。ケースの下半分は全部鉄だし。

NeXT non ADB keyboard

とりあえず使えるようになったので。

DSC01147

初期化処理はもうちょっと見直したほうがよさそう。

探せばATMEGAやArduinoでの実装例が見つかるけど「PIC用にコピーリスペクトしただけなんじゃないの」と思われるのもアレなので、信号処理周りは独自に考えてみたつもり。と言っても19000bpsのシリアル通信に見立ててUARTモジュールに処理させただけ。

あと世の中の情報じゃ「1bitは50μs」って書かれてるページがほとんどだけど実際はもう少しだけ長くて52.6μsくらいのような気がする

Firmware v3 追加説明

スキャンコードの移動について

EEPROMの 0x00, 0x7D-0x7F, 0x80 の領域を設定用に空けるために一部のキーのスキャンコードを移動しました。
Firmware Ver2.xまでで作成していた設定ファイルを使用する際は以下の変更(と、使用未使用にかかわらずFnキー設定方法の変更。後述)を行ってください。

sun

キー 変更前 変更後
numpad + 0x7D 0x7C

98

キー 変更前 変更後
Esc 0x00 0x57
右Shift 0x7D 0x75

fmr

キー 変更前 変更後
COPY 0x7D 0x54

adb

キー 変更前 変更後
A 0x00 0x0A
右Ctrl 0x7D 0x3F

ps2

キー 変更前 変更後
numpad 9 0x7D 0x6F
F7 0x80 0x98
Scroll Lock 0x7E 0x57

 

続きを読む 

Firmware ver3 準備中

現在、キーボードUSB変換アダプタの次バージョン(version3.0) のリリースを準備中です。
変更点は次の通りです。(USB2PS2、USB2FMRについては途中のバージョンアップをリリースしていませんので、ver1→ver2における変更内容はこちらでご確認ください)

 

問題改善

  1. Intel mac機においてEFI/BIOS画面でキーボード入力が出来ないケースへ対応しました。
  2. OSX/macOSにおいて日本語固有キー (英数やかな、「ろ」キーなど) が入力出来ないケースへ対応しました

続きを読む 

WindowsXPのデバイスエラーについて

ファームウェア更新後、WindowsXPでアダプタが動かなく(キー入力が出来なく)なった場合の対応方法です。デバイスマネージャで

err01

このように「USBヒューマンインターフェイスデバイス」に “!” マークが付いていたら次の方法を試して下さい。

“!” マークの付いた「USBヒューマンインターフェイスデバイス」 上でマウス右クリックでメニューを出して「プロパティ」を選択して下さい

err02

プロパティウィンドウの「ドライバ」タブに切り替えて、「削除」ボタンを押して下さい。

err03

ドライバが削除されるとデバイスマネージャから “!” の付いた「USBヒューマンインターフェイスデバイス」が消えます。

err04

後はアダプタをUSBポートから一度抜いて、同じポートに刺しなおして下さい。ドライバのインストールが始まるはずです。ドライバのインストールが終わったらデバイスマネージャで USBヒューマンインターフェイスデバイスに “!” マークが付いていない事、およびキー入力が行える事を確認して下さい。

この作業は同様のエラーが発生するUSBポートごとに行って下さい。

USB2PC88

PC-8801用キーボード(後期タイプ)をUSB変換してWindowsで使うためのアダプタ。

PrintScreenやらScrollLockやらいくつかのキーは存在しないのでその辺は例によってFnキー併用で対応。

usb2pc88_3

 

IIS10+ASP.NET

WindowsServer2016のIISで動くWebアプリを作ってた訳なんだけど、開発段階では特に問題なく動いてたのにリリース間近になったのでSSL対応したらファイルダウンロードがエラー起こすようになった問題。

しかもIE11は何の問題も無くてFirefoxだけ問題が生じる。FirefoxもHTTPなら特に問題ない。
ちなみにファイルのダウンロードはResponse.TransmitFile()でレスポンスに乗せて返す定番の方法。

んであれこれ試した見た感じだけど、ちゃんとResponse.End()でレスポンスの終了を伝えてあげないとFirefoxはHTTPSの場合に限りレスポンスが終了した事が分からなくて、来ないレスポンスを待った挙句ダウンロード失敗としてるんじゃないか?という印象。

Flush()した後にちゃんとEnd()してやればとりあえず 「ダウンロード元ファイルが読み取れないため~保存出来ませんでした」 とは言われなくなったかな。こんな所で小一時間悩んでしまった・・・