6802アセンブラで逆アセンブラ形式の出力に対応

6802アセンブラで逆アセンブラ形式の出力に対応した。こんな感じで出力する。とりあえず相対分岐命令の時にラベル名を出すようにした。理想的にはアドレッシングモードがdirectとextendedのときもラベル名を出すべきな気もするけどまだできていない。まあいいか。だいぶ完成形に近づいてきた気がするな。 … “6802アセンブラで逆アセンブラ形式の出力に対応”の続きを読む

R6522のシフトレジスタの挙動が分からない

R6522のシフトレジスタの挙動をデータシートをもとに調べていますが、理解できないところが多い。 モード0: SRが無効になるモードなのに、CB1の立ち上がりエッジでCB2にシフトアウトするように読める。(“In this mode the microprocessor can writ … “R6522のシフトレジスタの挙動が分からない”の続きを読む

JR-100+GV-USB2

JR-100: 全体

JR-100実機の画面をキャプチャするために、IOデータのGV-USB2を購入。コンポジット入力をUSB経由でPCに取り込むものなのだが、うまく取り込めない。 JR-100側でキーを押してもキャプチャ画面には反映されず、コンポジット入力を差しなおしたりGV-USB2をPCから抜き差ししてみても、真っ … “JR-100+GV-USB2″の続きを読む

6802用アセンブラを作る(5) 一応完成

ひとまず仕様をfixさせ、ユーザーズガイドを作成しました。結局構文解析部分は命令毎に規則を書き下す方式にしました。状態遷移表の状態数は740状態、遷移数は3445個です。これくらいなら許容範囲かな? 規則部はこんな感じ。各命令に対応するシンボルから始まり、それぞれの命令で指定可能なアドレシングモード … “6802用アセンブラを作る(5) 一応完成”の続きを読む

6802用アセンブラを作る(4) JR-100でのテスト

作成したアセンブラのプロトを使って、JR-100の実機試してみました。最終的な目的はJR-100に搭載されているVIA(6522)のテストのためなので、マシン語から直接VIAのレジスタを叩いてJR-100のスピーカーから音階を鳴らしてみました。JR-100への入力は同じく自作のFSKプレイヤーを使い … “6802用アセンブラを作る(4) JR-100でのテスト”の続きを読む

6802用アセンブラを作る(3) プロトタイプ完成

構文解析部分で少し悩みましたが、ひとまずプロトタイプはできました。パーサーを自分で作るのとは異なり、ジェネレータを使うとエラー処理をうまく書くのが難しいです。いまのところ最低限の処理しか実装していません。またたまに例外を発生しますのでお気を付けを……。 2017/3/25追記 アセンブラの正式版の説 … “6802用アセンブラを作る(3) プロトタイプ完成”の続きを読む

6802用アセンブラを作る(2) JFlexとCUPの導入

6802用アセンブラの構文解析部分を、将来の拡張性を見据えて、自前で作成するのではなく字句解析にJFlex、構文解析にCUPを使って作成することにしました。この記事ではそれぞれの導入と、それらを使った構文解析部分のプロトタイプを紹介します。 インストール 以下の環境にインストールするためのメモを記し … “6802用アセンブラを作る(2) JFlexとCUPの導入”の続きを読む

6802用アセンブラを作る(1) はじめに

VIA(6522)の動作をJR-100上で試すために、マシン語をハードコーディングする必要があります。中学生の頃は16進数のマシン語コードのまま平気でハードコーディングできましたが、この歳になるとさすがにつらい。 web上ではMS-DOS用のものなどが公開されていますが、JR-100エミュレータ用に … “6802用アセンブラを作る(1) はじめに”の続きを読む

JR-100のプログラムデータを再生するツール

JR-100: 全体

JR-100ではプログラムを音声データにより外部媒体(カセットテープ)に保存することが可能です。この音声データ(仕様)を再生するプログラムを作成しました。目的は、JR-100のVIAのエミュレーションを正しく行うために、VIAの仕様書を読むだけでは理解できない動作をJR-100実機を使って検証するた … “JR-100のプログラムデータを再生するツール”の続きを読む

JR-100のセーブデータのフォーマット

JR-100: 全体

JR-100でSAVEコマンド実行時に再生される音声データの形式を示す。 記録方式 FSK (Frequency Shift Keying)方式で記録する。 スペース: 1,200Hz マーク: 2,400Hz ボーレート: 600ボー 1秒間に600個のスペース(0)またはマーク(1)を送ることが … “JR-100のセーブデータのフォーマット”の続きを読む