[新連載]復活!TINY BASIC
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
すべてはここからはじまりました。
中日電工も。
40年前を振り返りつつ新連載です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
[第25回]
●スタートプログラム
オリジナルのTINY BASICはアドレス0000からスタートします。
システムROMの先頭アドレスです。
CPUはリセット後はアドレス0000から実行を開始します。
アドレス0000にはリセット後に最初にしなければならない初期設定の手続きが書かれています。
アドレス0000から始まるSTARTプログラムについては[第11回]で書きました。
下はSTART部分のプログラムリストです。
SP(スタックポインタ)にRAMの一番最後のアドレス(13FF)+1を設定しただけで、その後の続きは0642番地以降に書かれています。
オリジナルのTINY BASICではRAMは1000〜13FFのわずか1KBです。
スタックはその一番最後に置かれています。
スタックはSPに設定されているアドレス−1から前に進むように消費されていきますから、この場合にはSPに設定する値は13FFではなくて1400になります。
[第11回]ではSTARTプログラムの続きのプログラムについては「後で説明します」ということで、説明を後回しにしました。
今回はその続きについて説明します。
下はSTARTの続きのプログラムです。
アドレス0003のMVI A,0FFHは0642のSTA OCSWに続いています。
しかし[第11回]でも書きましたがOCSWは出力制御用のスイッチでND80Z3.5用のTINY BASICでは使いませんので、この部分は削除することになります。
システムが違いますのでOCSWについては説明を省きます。
その後の064Eまでのところも232C通信用の初期設定ですからここも説明を省きます。
その後の064D〜0655は改行を25回(19H)行なっています。
これはおそらくプリンタに最初のメッセージを出力するための紙送りと思われます。
ここも不要でしょう。
そしてそのあと最初のメッセージ(MSG1)を出力します。
PRTSTGは文字列表示サブルーチンです。
いずれ説明します。
RANPNTは乱数用のポインタです。
初期値として0000(実はROMの先頭アドレス)をセットします。
TXTUNFはテキストプログラムの現在の最終ポインタの格納場所です。
初期値として1017をセットします。
テキストプログラムは1017から格納されます。
以上の処理をしたあと、00BAのメインループにジャンプします。
メインループについては次回に説明します。
下は最初に表示されるメッセージ(MSG1)です。
次回に続きます。
復活!TINY BASIC[第25回]
2020.6.25upload
前へ
次へ
ホームページトップへ戻る