Categories: R10旧型PC

日立 MB-S1 S1用開発環境の操作をまとめておく

S1実機で使用するツール類の使い方を完全に忘れているので操作をまとめておきます^^

S1の標準モニタ

各コマンドのサフィックスLは変更した内容を同一行に表示(DL以外)、サフィックスPは表示のみ
引数のセパレータはカンマ又はスペース

コマンド 機能 引数

B
BL
BP

ブレークポイントの表示と設定

BL <番号>:<$番地> (<機能>, <$回数>)
番号=1~5 番地=停止させる番地 回数=何回目に停止
機能=b7~b2=N/A  b1=0(有)/1(無)   b0=ブレーク時レジスタ表示=0(有)/1(無)
BPは引数なし
ROM領域にブレークポイントは設定不可
3F(SWI)の説明

D メモリの表示 D [<$開始番地>], [<表示行数>]
DL Dコマンドの表示行数設定 DL <表示行数>
E メモリのスクリーン編集 E [<$開始番地>] 256バイト分のデータがスクリーンエディタで編集可能
カーソルキー← → ↑ ↓で移動可能
CTRL + A = 編集モード切替 (HEX / ASCII)
CTRL + B (SHIFT + ← ) = 先頭番地を256バイト前に移動
CTRL + F (SHIFT + → ) = 先頭番地を256バイト後ろに移動
CTRL + G = カーソル位置にブレークポイント5を設定
Enter = Eコマンド終了
F メモリをデータで埋める F <$開始番地>, <$終了番地>, <$データパターン>   又は
F <開始番地>, @<バイト数>, <$データパターン>
G 機械語プログラムの実行 G [<実行開始番地>] 実行開始番地を省略するとPCの番地から開始
中断は[BREAK], [CTRL+C], [BREAK+RESET]でレジスタを表示して中断
[CTRL+D]でレジスタ値を表示
H HEXの和と差を求める H <$値1>, <$値2> 値1と値2は4桁以内のHEX
HC ハードコピーモード設定 HC [<ハードコピーモード>] ハードコピーモードを省略すると反転
ハードコピーモード = 0(出力しない), 1(出力する)
M, ML 16バイトメモリ内容表示と設定 M [<$開始番地>] 開始番地を省略で記憶している番地+1
MAP
MAPL
MAPP
メモリ空間番号の表示と設定 MAP [<$メモリ空間番号>] D~Fは変更不可
メモリ空間番号を省略で現在のメモリ空間番号の設定と表示(CURRENT MAP)
メモリ空間番号0~6はシステム予約領域なので変更しないこと
ユーザ領域のマップイメージはDEFMAP=0で空間F、DEFMAP=1~3は空間Eにマップイメージがある
Q モニタ終了 Q 引数なし
R
RL
RP
レジスタの表示と変更 R 引数無し
表示内容
S=aaaa(bbbb)CC=nn(cccc)A=nn Bnn DP=nn X=nnnn Y=nnnn U=nnnn PC=nnnn
(dddddddd)
aaaa=システムスタックポインタ bbbb=システムスタックポインタが指すスタックの内容
cc=CCレジスタの下位4ビット dddddddd=PCが指すメモリの内容
S メモリ内からデータを検索 S [<$開始番地>], [<$終了番地>], <$データパターン> 又は
S [<$開始番地>],[@<バイト数>], <$データパターン>
開始番地を省略すると$0、終了番地を省略すると$FDFFが指定される
T メモリ内容転送 T <$開始番地>, [<$終了番地>], <$転送先番地> 又は
T <$開始番地>, [@<バイト数>], <$転送先番地>
TS テキスト画面の退避/回復設定 TS [<テキスト画面退避フラグ>]
テキスト画面退避フラグ
0(ブレークポイントでテキスト画面回復しない)
0以外(ブレクポイントでテキスト画面が退避され、Gコマンドで回復される)
X, XL
XP

現在のメモリ空間のマップ
イメージ表示と設定

X 引数なし
MAPで設定した現在のメモリ空間番号で指定した場合と同じ動作
BREAK
CTRL+C
CTRL+D
BREAK+RESET
コマンド実行中断 引数なし
参考文献:日立 MB-S1 BASICマニュアル

 

EASY-S1+拡張部のコマンド

メモリ拡張時 テキストエリア256KB、ラベルテーブルエリア33KB、オブジェクトエリア56KB
オブジェクトエリア=系列F、EASY-S1,ラベルテーブル,テキストウィンドウ=系列8~Dで動作

コマンド 機能 引数
I 画面を80文字モードに変更 I 引数なし
MT CMTのオンオフとボーレート設定 MT [<ボーレート>] ボーレート省略でMOTOR ON/OFFの反転
ボーレート 0=600ボー 1=1200ボー 2=2400ボー 3=4800ボー
V CMTのベリファイ V [<ファイル名>]
SM メモリ内容のセーブ SM <ファイル名>, <$開始番地>, <$最終番地>, [<$実行番地>]
モニタのMAPで指定した系列番号のメモリ内容の保存
LM ファイルのロード LM [<ファイル名>] [,<オフセット>]
モニタのMAPで指定した系列番号のメモリにロード
LMコマンド実行中にエラーが発生するとファイルがクローズされない
CTRL+Dでアボートさせるとクローズされる
CRTL+DやSTOPを押すと系列F又は系列Eに戻るので注意
W 16バイトのメモリ書込 W [<開始番地>]
P メモリ内容の表示 P [<開始番地>]
BA BASIC命令の実行 BA [RETURN]で次の行にBASICの命令
RUN, LIST, CLEARは使えない
ED テキストの編集

ED [<行番号>]
編集終了でプロンプトに戻るにはBREAK又はCTRL+C
系列が戻るので注意
カーソル移動 = ← → ↑ ↓キー SHIFT+←, shift+→で高速移動
IS = スペースの挿入
BS = 1文字削除
CLS = 1行クリア
MOME = 変更した入力前の行を元に戻しカーソルを行の先頭に移す
ESC = 前に削除された行の内容を表示
RETURN = 行の入力
DEL = 行を削除し上に詰める
INS = 行の挿入モードの指定、解除
TAB = 次のTAB位置までカーソルを進める
CTRL+T = 水平タブの設定  CTRL+Y = 水平タブの解除
CTRL+E = カーソル以降文末までクリア
CTRL+A, CTRL+Z=カーソル位置の記憶

C 文字列の置換え C <文字列1> [,<文字列2>] [,<行番号1>] [,<行番号2>]]
行番号1~行番号2のテキストから文字列1を探し文字列2に置換てその行を表示
TR テキストの転送 TR <行番号1>, <行番号2>, <行番号3>
行番号1と行番号2の間のテキストを行番号3の前に転送する
NEW テキストのクリア NEW 引数なし
SV
SVA
テキストの保存
(SVAはASCII形式)
SV <“ファイル名”>, [.<行番号1> [,<行番号2>]
行番号1~行番号2の間のテキストを保存する
LD
LDA
テキストのロード
(LDAはASCII形式)
LD <“ファイル名”> [,<行番号>]
行番号を指定するとその行の前にテキストを挿入
L
LN
テキストのプリンタ出力
(LNは行番号削除)
L [<行番号1>] [,行番号2>]
A アセンブル A [<“ファイル名”>]  ファイル名を指定するとファイルから読み込みながらアセンブル
AL
AP
アセンブル+リスト出力
(APはプリンタ出力)
AL [<“ファイル名”>] [,<行番号1>] [,<行番号2>]
O
OP
ラベルテーブルの出力
(OPはプリンタ出力)
O 引数なし
MC オブジェクトメモリクリア MC 引数なし  系列Fのオブジェクトメモリエリアクリア CLEAR &HD000と同じ
EASY-S1アセンブラの仕様
コメントは文頭に * から始めた行と命令 オペランド コメントでコメント列が使えた。コメント列は*不要だが;で始めると分かりやすいかも
書式はモトローラの6809アセンブラと同じ
オペランド演算は+, -のみ
BHS, BLO, LSLは使用不可
8進定数は使えない
疑似命令は ORG, SETDP, RMB, EQU, END, FCB, FDB, FCCが使用可能
FCCのセパレータは / のみで他の文字は使えない。オペランドには文字列の他にラベルや値定数の使用も可能
区切りの空白は31文字以内
以下 85年11月号掲載の拡張コマンド (ソースジェネレータ付き逆アセンブラ&トレーサ )
U 逆アセンブラ
(行数指定)
U [<$開始番地>] [,<表示行数>]
開始番地省略で記憶している番地から表示、表示行数省略でDLの行数
UP 逆アセンブラ
(範囲指定)
UP [<$開始番地>] [,<$終了番地>]
開始番地省略で記憶している番地から表示、表示行数省略で1行表示
SG EASY-S1用ソースジェネレータ SG <“ファイル名”>, [<$開始番地>] [,<$終了番地>]
開始番地から終了番地の逆アセンブルを行いEASY-S1のソースを生成する
ASCII形式なのでLDAでロードする。
ORGや定義されていないラベルをEQUで付加する程度で使えるソース
拡張子を付けないと同名のBINデータを上書きで壊すので注意
N トレース実行 N [<$開始番地>] [,<トレースステップ>]
開始番地よりトレースステップだけトレースを行う
開始番地省略でモニタの記憶している番地から開始
トレースステップ省略でNLコマンドの設定値を使用
NL トレースステップ設定 NL [<トレースステップ>]  トレースステップ省略は1を指定
RR レジスタ表示(ハードコピー用) RR 引数なし
トレーサの仕様
以下 86年5月号掲載のメモリエディタのコマンド
ME メモリエディタ ME <$開始番地>
開始番地を省略でモニタが記憶している番地を使用
← → ↑ ↓でカーソル移動
SHIFT+← や SHIFT+→ で256バイト移動
HOME = その行の先頭に移動 (+0列)
SHIFT+HOME=そのページの先頭に移動
CTRL+A=HEX  / ASCII編集の切替
CTRL+Q=チェックサムチェックのオンオフ
CTRL+Z=スクロールのオンオフ
CTRL+W=ASCII項のピリオド表示設定
RT データ転送 RT <開始番地>.<終了番地>,<転送先開始番地>
参考文献:工学社 I/O誌 85/7月号  P.266 EASY-S1 85/11月号  P.322  EASY-S1用拡張コマンド 86/5月号  P.274  メモリエディタ

 

S1BASICの拡張コマンド
コマンド 機能 引数
FIND
LFIND
文字列サーチ
(LFINDはプリンタ用)
FIND <“文字列”> [,<開始行番号> [ (, or-) <終了行番号> [ , <セパレータ>]]]
メモリ上のテキストから”文字列”を含む行を検索(文字列は127文字以下)
セパレータを省略すると”/”が適用される
REPLACE 文字列置換え REPLACE <“文字列1”>, <“文字列2”> [, <開始行> [(,or-) <終了行> [,<セパレータ>]]]
メモリ上のテキストから文字列1を文字列2に置換えする
セパレータを省略すると”/”が適用される
FCOPY ファイルコピー FCOPY <“ファイル名1”> TO <“ファイル名2”>
ファイル名1のファイルをファイル名2のファイルとしてコピーする
DUMP
LDUMP
ファイルダンプ表示
(LDUMPはプリンタ用)
DUMP <“ファイル名”> [, D(E)]
Dオプション = ファイルタイプにかかわらずHEXダンプ
Eオプション = EASY-S1用のASCII
DIR
LDIR
ファイルリスト表示
(LDIRはプリンタ用)
DIR <“ファイル名”>
ファイル名にはワイルドカード可能でファイル名や拡張子を区別できる
表示内容は前から
ドライブ番号, ファイル名, 拡張子, 種類, 占有セクタ, 最終クラスタ使用セクタ, 最終セクタ使用バイト数
サイズ,開始番地, 最終番地, 実行開始番地
参考文献:工学社 I/O誌 1986/03月号  P.249 BASIC拡張コマンド

S1-DEBUGGERのコマンド
コマンド 機能 引数
DA
DAP
逆アセンブル
(DAPはプリンタ出力)
DA [<$開始番地>] [,<$終了番地>] セパレータはカンマ必修
開始番地を省略した場合はモニタが記憶している番地を使用
終了番地を省略で$FFFFを指定
SPACEで一時停止、ESCで中断
TR
TRP
トレース実行
(TRPはプリンタ出力)
TR [<$開始番地>]
Rコマンドで設定したレジスタをセットして開始番地からトレース
開始番地省略でPCレジスタからトレース
1命令毎に停止する
ESC=中断
1=SP番地にジャンプ
2=システムコールを実行して次の命令でストップ
上記以外のキーで次の命令をトレース
トレーサの仕様

参考文献:工学社 I/O誌 1986/01月号  P.348 S1-DEBUGGER


BASIC拡張とEASY-S1を同時に使う場合メモ

LOADM”EXLOAD”,,RでBASIC拡張を実行しておいて(MAP8固定かな?)
EASY-S1をロードしMAPAで実行 (MAP9だとダメな場合があった)
S1-DEBUGGERはMAP8,9以外で実行しても同居できなさそう

気になるS1関連記事
I/O誌
85/11 Telestar漢字ターミナル p.336
85/12 音声合成カードの接続 P.221
86/02 Z80ソースファイルジェネレータ P.282
86/03 FM音源ソフト”翌弦” p.262
86/10 EASY-68K P.227
87/05 プリンタで画像入力を P.197
87/06 ディスクアナライザ p.139

kabekin

Recent Posts

謎なS1を頂いたので観察してみる 【その2】

謎なS1を観察してみるの第二弾…

5日 ago

初めてのGAL書込み GAL16V8A

XGecuのT48プログラマを…

2週間 ago

謎なS1を頂いたので観察してみる 【その1】

数年前にヤフオクで見かけたこと…

3週間 ago

かべきんブログ SSLに対応しました

ずっと後回しになっていたブログ…

1か月 ago

S1用アドレスマッピングRAMを注文 SIGNETICS S54S189F

S1用のアドレスマッピングRA…

1か月 ago