Last Updated on 2021年2月23日 by kabekin
S1実機で使用するツール類の使い方を完全に忘れているので操作をまとめておきます^^
S1の標準モニタ
各コマンドのサフィックスLは変更した内容を同一行に表示(DL以外)、サフィックスPは表示のみ
引数のセパレータはカンマ又はスペース
コマンド | 機能 | 引数 |
B | ブレークポイントの表示と設定 | BL <番号>:<$番地> (<機能>, <$回数>) |
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 [<行番号>] |
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