2020年5月24日日曜日

XPAC2解析

CMDツールのlsコマンド(SDカードのファイル一覧表示)でファイルリストが化ける場合がある、と報告いただきましたので調べてみました。

CMDツールですが、SDカードの処理待ちが不十分そうだったので、待ち処理を増やしました。
1 'XPAC2 Command Prompt (C) 2015, 2020 zak
2 INPUT A$:B$=LEFT$(A$,1):IF B$="e" OR B$="E" THEN OUT 27,4:END
3 OUT 27,7:OUT 25,0:FOR I=0 TO 255:OUT 24,I:B$=MID$(A$,I+1,1):IF B$<>"" THEN OUT 26,ASC(B$):NEXT
4 OUT 26,0:OUT 24,0:OUT 27,15
5 FOR I=0 TO 15:OUT 24,0:IF INP(26)>223 GOTO 5 ELSE NEXT:FOR I=0 TO 255:OUT 24,I:C=INP(26):IF C<>0 THEN PRINT CHR$(C);:NEXT
6 PRINT"":GOTO 2

5行目を修正しています。

Pasopia700で動作確認してみましたが、大丈夫そうです。

CMDツールの使い方はこちら

修正したツールをXPAC2のEEPROMに書き込む場合は、ここから「eep_rev2.rom」ファイル(2020/6/7修正)をダウンロードしてSDカードに保存。
CMDツールで
ld 2 eep_rev2.rom
で書き込むことができます。(数十秒時間がかかります)
もしEEPROMに漢字ROMデータを書き込んでいる場合は、データが消えるのでご注意ください。

EEPROMデータは8KBのSRAMエリアに展開されるので、パソピア7で使う場合は、
slot 5
run"5:CMD"
で起動です。

-----
XPAC2はSDカードの読み書きをしている間、パソピアからのデータ要求に対して何も返答できません。パソピア本体・XPAC2のどちらもデータを出力しない間隔は約1usですが、通常はプルアップのため、ほぼ0xFFデータが返答されます。
しかし本体の個体差などで不定値が発生しやすくなるものがあるようで、今回の新しいCMDツールは、SDカード読み込み終了チェックを複数回行うようにしています。



2 件のコメント:

  1. こちらの修正を適用してみましたが、(プログラムの入力ミスが無ければ)残念ながら効果無しでした。
    百発百中化けます(^_^;)
    しかも、初回CMDツールロード時にはプログラムが化ける有り様でした。
    やはりウチのPASOPIA700とXPAC2の相性は最悪の様です。

    因みに今回の対策は、VGMのデータロードで化ける(音飛び)件も関係する様な内容でしょうか?

    返信削除
    返信
    1. 確認ありがとうございました。残念、効果なしでしたか...
      データ化けについても、可能性を考えてみました。
      https://pasopia700.blogspot.com/2020/05/xpac2_26.html
      対策案を入れたテスト用ROMを作ってみましたが、試してもらえますか?
      AVRのフラッシュROM書き換えは難しいと思いますので、ROMを焼いたマイコンを郵送する形になると思います。
      効果を保証できるものではありませんが、もし協力いただけるようでしたらAVRマイコンを郵送しますので、gmailのアドレスまで連絡をくださいませ。

      削除