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個です。これくらいなら許容範囲かな? 規則部はこんな感じ。各命令に対応するシンボルから始まり、それぞれの命令で指定可能なアドレシングモードの規則を記述しています。文法違反の場合は、特別なエラー命令(ErrorInstruction)を生成し、パーサから抜けた後に命令リストをスキャンし、まとめてエラー表示する方式とします。

ちょっと悩んだのがアドレシングモードのうちDir … “6802用アセンブラを作る(5) 一応完成” の続きを読む

ロジックアナライザ LAP-C(16032)を購入

古パソコン系の未知のLSIの動作を解析するため、ロジックアナライザを入手しました。モノは台湾のZEROPLUS社のLAP-C(16032)で、マルツオンラインで購入。 ロジアナやオシロスコープはとても高価で子供のころからあこがれの機械でしたが、この機種は一番下位のモデルで12,800円です。安い。けれども、これでも16チャンネルで1チャンネル当たり32Kビットのメモリを持っているので、ちょっとした実験には足りるような気がします。 ということで取り急ぎRaspberry PiのI2Cのデータをサンプリングしてみました。I2Cのプロトコルアナライザは現在無料で利用できるので、データの繊維の様子が分 … “ロジックアナライザ LAP-C(16032)を購入” の続きを読む

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

作成したアセンブラのプロトを使って、JR-100の実機試してみました。最終的な目的はJR-100に搭載されているVIA(6522)のテストのためなので、マシン語から直接VIAのレジスタを叩いてJR-100のスピーカーから音階を鳴らしてみました。JR-100への入力は同じく自作のFSKプレイヤーを使います。 プログラム JR-100ではVIAのPB7がスピーカーに接続されています。つまりVIAのタイマー1のフリーランモードでPB7に出力される方形波が音声として再生されるため、タイマー1の初期値を生成したい周波数に合わせて調整すればよいということです。タイマーが0になるごとにPB7出力が反転するの … “6802用アセンブラを作る(4) JR-100でのテスト” の続きを読む

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

構文解析部分で少し悩みましたが、ひとまずプロトタイプはできました。パーサーを自分で作るのとは異なり、ジェネレータを使うとエラー処理をうまく書くのが難しいです。いまのところ最低限の処理しか実装していません。またたまに例外を発生しますのでお気を付けを……。 2017/3/25追記 アセンブラの正式版の説明はこちらに移動しました。お手数をおかけします。 構文解析について 行の構文解析のところで二つの方式で悩みました。 方式1: 命令の正当性を構文規則で表現する こんな規則になります。

この方式だと構文エラーが自動的に判定できるので(当 … “6802用アセンブラを作る(3) プロトタイプ完成” の続きを読む

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

6802用アセンブラの構文解析部分を、将来の拡張性を見据えて、自前で作成するのではなく字句解析にJFlex、構文解析にCUPを使って作成することにしました。この記事ではそれぞれの導入と、それらを使った構文解析部分のプロトタイプを紹介します。 インストール 以下の環境にインストールするためのメモを記します。 Windows 10 Eclipse Version Mars.2 Release 4.5.2 JFlex ダウンロードページからtar.gzまたはzipファイルをダウンロードし、適当な場所に保存します。2017年2月26日現在、最新版は1.6.1。tar.gzもzipも内容は同じです。 以 … “6802用アセンブラを作る(2) JFlexとCUPの導入” の続きを読む

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

VIA(6522)の動作をJR-100上で試すために、マシン語をハードコーディングする必要があります。中学生の頃は16進数のマシン語コードのまま平気でハードコーディングできましたが、この歳になるとさすがにつらい。 web上ではMS-DOS用のものなどが公開されていますが、JR-100エミュレータ用に作成したディスアセンブラがあるのでそのコードを流用して自作することにします。 アセンブリ言語の仕様書はこれを参考にします。 6800 Assembly Language Programming (外部リンク) これまでの記録 6802用アセンブラを作る(1) はじめに 6802用アセンブラを作る(2 … “6802用アセンブラを作る(1) はじめに” の続きを読む

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

JR-100: 全体

JR-100ではプログラムを音声データにより外部媒体(カセットテープ)に保存することが可能です。この音声データ(仕様)を再生するプログラムを作成しました。目的は、JR-100のVIAのエミュレーションを正しく行うために、VIAの仕様書を読むだけでは理解できない動作をJR-100実機を使って検証するためです。様々なパターンのマシン語プログラムを毎回打ち込んだりカセットからロードするのは時間がかかりすぎるので、PCから直接再生することにしました。 使い方 Java 1.7以降のJREがインストールされていることが前提です。 ファイルをダウンロードして適当なフォルダに格納してください。JR-100の … “JR-100のプログラムデータを再生するツール” の続きを読む

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

JR-100: 全体

JR-100でSAVEコマンド実行時に再生される音声データの形式を示す。 記録方式 FSK (Frequency Shift Keying)方式で記録する。 スペース: 1,200Hz マーク: 2,400Hz ボーレート: 600ボー 1秒間に600個のスペース(0)またはマーク(1)を送ることができる。 つまり1変調あたり、スペースは2周期分、マークは4周期分が含まれることになる。 バイト表現 1バイトの値は、スタートビット1ビット(0b)とストップビット2ビット(11b)を合わせて、11ビット分を送信する。送信するビット列はLSB(ビット0)からMSB(ビット8)の順に出力される(リトル … “JR-100のセーブデータのフォーマット” の続きを読む

USB Type Micro BとType Aの変換アダプタ

Raspberry Pi ZeroのUSBコネクタはType Micro-Bです。これにType Aのコネクタをもつ無線LANアダプタ(PLANEX GW-USNANO2A)を、これまで変換ケーブルを使って接続していましたが、せっかくの小さいデバイスにケーブルがぶら下がっているのは小ささを台無しにしてしまいます。そこでケーブルなしで形状変換するアダプタを購入。 実際にGW-USNANO2Aと並べてみるとこんな感じです。 これを差し込むとこんな感じ。Type Aオスの穴の部分にジャストフィット。ぴったりはまりこんで抜けなくなるかというとそんなことはなく、指でつかんでひっぱると軽く抜けます。 これ … “USB Type Micro BとType Aの変換アダプタ” の続きを読む