2017年2月27日月曜日

PTA7の使い方

パソピア/7のアセンブラ/逆アセンブラで、PTAという便利なソフトがありました。
リクエストがあったので、簡単に使い方の紹介です。

[編集]
(1) In: n行に行追加。I100だと99と100行目の間に挿入。最後に挿入の場合はIE
(2) T: ソースの修正
(3) Kn,m: nからm行まで削除
(4) Fxxxx: 文字列xxxxを検索
(5) Sxxxx: カセットに保存。ファイル名xxxxは30文字以内
(6) Vxxxx: カセットに保存したファイルのベリファイ
(7) Lxxxx: カセットからの読み込み。
(8) T: テキストの表示
(9) O: テキストの表示とプリンターへの出力

[アセンブラ]
(1) T: テキストを全行表示
(2) O: テキストの表示とプリンターへの出力
(3) In: n行に行追加。I100だと99と100行目の間に挿入。最後に挿入の場合はIE
(4) K: 1行削除
(5) N: テキストをクリア
(6) /: ラインポインタのカレントとラスト、ソースの開始と終了アドレスを表示
(7) Fxxxx: 文字列xxxxを検索
(8) A: アセンブル
(9) AP: アセンブルしてプリンターにも出力
(10) AN: アセンブルするがリストは表示しない
(11) Q: アセンブルの後、ラベルを表示
(12) CT: テキスト格納開始アドレスの表示・変更
(13) CZ: テキスト格納終了アドレスの表示・変更
(14) CW: アセンブラのラベル・ワーク開始アドレスの表示・変更
(15) CE: ラベル・ワークの終了アドレスの表示・変更。開始時は$F7F0

[逆アセンブラ]
(1) Unnnn,mmmm: nnnnからmmmmまで逆アセンブルしてCRTに表示
(2) USnnnn, mmmm: nnnnからmmmmまでのアセンブルリストを表示して、現在のソースの後に逆アセンブルしたソースをアペンド

[モニタ]
(1) Dnnnnn,[mmmm]: nnnnからメモリダンプ。終了アドレスmmmmは省略可能
(2) Wnnnn: nnnnアドレスにメモリ書き込み。テンキーで16進数、スペースで次アドレス、[-]キーで前アドレス、Returnキーでコマンド待ち
(3) Xnnnn,mmmm,ssss: 転送開始アドレス(nnnn)から転送終了アドレス(mmmm)までを転送先アドレス(ssss)へ転送
(4) Jnnnn: 機械語アドレス実行
(5) Hnnnn,mmmm,Xaaa...a: nnnnからmmmmの間でaaa...aで指定された16進数を検索。aaa...aは2文字単位
(6) Hnnnn,mmmm,Cbbb...b: nnnnからmmmmの間でbbb...bで指定されたキャラクタでサーチ
(7) プログラム実行中にRST 38Hがあるどその時点のレジスタを表示

[文法]
(1) フォーマット:△は1文字以上のスペース、( )は省略可能
(ラベル:)△ニモニック△オペランド△(;コメント)
または
;コメント
(2)定数
10進: 0~9の数字
16進: 先頭に$
文字: "で括られた1文字
(3) オペランド
定数またはラベルが使え、+/-による演算が可能
(4) 疑似命令
ORG n: ロケーションカウンターをnにする
OFS m: オフセット値の設定
EQU: ラベルの定義
DW: 2バイト定数
DB: 1バイト定数
DS n: nバイトのエリア確保
DM: "で括られた文字はASCIIコードで、それ以外は16進でセット
*: ロケーション・カウンターシンボル

アセンブラ表記はちょっとクセがあるようです。
8bit論理演算ニモニックはAレジスタを省略して記載する: ADD A,B→ADD B
IM命令はスペースを空けてIM 0のように記載

当時は非常に使いやすいと感じたのですが、いまならエミュレータ付属のデバッガが使いやすいです。(特にステップ実行とか重宝しています)

何かの参考になれば。。



2017年2月26日日曜日

FM-NEW7

ハードオフに見慣れぬブツが。。
ここで会ったのも何かの縁、我が家で引き取ることにしました。

電源をつけてみたところ、
ちゃんと動いているっぽい。
キーも大丈夫そうで、キーロックのLEDも全て点灯した。
Beepも鳴った。

難点は、使い方がわからないこと。。。

2017年2月25日土曜日

VGM Player for Pasopia7

パソピア7はSN76489Aを2つ使用して6重和音+2ノイズを実現しています。
このチップについては海外のサイトSMS Power!に詳しく書かれており、このサイトを眺めてみるとSN76489に適した音楽ファイルVGM File Formatが定義されていました。

せっかく同じチップを積んでいるということで、パソピア7でこのVGMファイルを再生するプログラムを作ってみました。ダウンロードはこちら「vgm.bin」

----------
まずはXPAC2で使う場合
SDカードに「vgm.bin」とvgmファイルを入れて、XPAC2に挿入します。
XPAC2付属のコマンドツール「CMD」を使って「vgm.bin」をMRAMにマウントします。
例えば、
run"CMD"
? ld 4 vgm.bin
を実行すると、スロット4(デバイス5)にマウントされます。
※スロット4(デバイス5)に保存されているデータは消えるので注意
files 5
を実行し、以下の画面のように「vgm」と「vgm.b」が登録されていると成功です
続いて
run"vgm"
を実行し、VGMファイルを読み込むスロットを指定します。
※スロット3(デバイス6)を指定すると、スロット3(デバイス6)に保存されているプログラムは消えるので注意です。
次に、SDカードに保存したvgmファイルのパスを入力します。入力パス名に###を入れると001から順番にインクリメントしてパス名に付加し、連続してファイル読み込みします。
最後にファイル間のインターバルを指定します。170で約1秒です。

----------
次にエミュレータで使う場合
エミュレータの場合は、複数ファイルの連続演奏はありません。

メニューのRAMPAC1で「vgm.bin」を指定、RAMPAC2にVGMファイルを指定します。
※指定するファイルはバックアップしておいた方がよいです。(エミュレータがファイルを読み込むと32KBにサイズ変更するので)
run"vgm"
を実行し、VGMファイルを読み込むスロット=3(デバイス6=RAMPAC2)を指定します。
ファイルのパスには何も入力せずに、インターバルは1を指定します。

演奏中は(STOP)キー長押しで中断できます。

----------
SMS Power!のサイトでは、コンテストのようなものも行われています。
2005年Ranking 1位の曲をパソピア700の内蔵スピーカーで再生してみました。
携帯撮影なのでメロディーラインが聞き取りにくいですが、この曲は素晴らしいです!!
持っている方は、是非パソピア7実機で聞いてみてください。

その他にもセガ8bit音楽のVGMファイルが多数登録されています
YM2413ではなくPSGと記載があるファイルなら再生できると思います。
パソピア7に外付けスピーカーをつけて演奏させてみました。

----------
公開されているVGMファイルですが、拡張子が.vgmでも中身がgzipで圧縮されている場合があります。
Pasopia7版VGM Playerは圧縮フォーマットに対応していないので、圧縮されている場合「File is not VGM format.」と表示されて再生されません。
事前に解凍ソフトなどで解凍してからパソピア7で読み込むとうまくいく場合があります。
解凍されたファイルの先頭4バイトが"Vgm " (0x56 0x67 0x6d 0x20)になると読み込みできるようになりますので、バイナリエディタ等でチェックすると確実かもしれません。

あとXPAC2は8.3形式のファイル名になりますので、ロングファイル名は省略形になってしまいます。「File not found.」と表示された場合、その辺もチェックしてもらえるとよいかと。

Enjoy your Pasopia7 sound!!