1kワードのTINYBASIC STM32版 その2
◎TERA TERMの設定とサンプルプログラムの解説
エディタで作成したBASICプログラムを実行させるにはBASICファイルをドラッグドロップさせればよく、
TERA TERMの送信遅延を以下のように設定します。

◎プログラム例1 CLEARコマンドはダイレクトコマンドとしても使用できますが、文中での使用例を示します。
A~Zには初期値が入っていたのですが、40行目のCLEARコマンドで全消去されました。

◎プログラム例2 これは以前にご紹介したシリアルポートのエコーバックプログラムのARM版
(0:0):(0:3)を$40013824に設定、アドレス$40013824はシリアル受信データのレジスタ
キー入力フラグ(0,8)の初期値は0、30行~40行のループ中、キー入力があれば(0,8)≠0となり、100行にジャンプ
RDコマンドで受信データ(ASCIIコード)を読み出し(0:4):(0:7)にストア、(0:0):(0:3)を$40013828に変更
アドレス$40013828はシリアル送信データのレジスタ、WRコマンドで(0:4):(0:7)のデータを送信、以上を繰り返す。
「Esc」キーを押したため30行目でプログラム中断

◎プログラム例3 以前解説したFOR~NEXT文の代替、Rに値を入れ、GOTO Rとするのが肝

◎プログラム例4 以前解説したGOSUB~RETURN文の代替、Rに可変の値を入れ、GOTO Rとするのが肝
◎プログラム例5 OSコマンドの使用方法
10行目では(0,9)≠0であるから、STOP動作。 10を印字する直前にプログラム停止
「Retern」キー入力により停止解除、10を印字
(20行目のOSコマンドにより再び停止するが、)今度は(0,9)=0であるからメモリダンプを表示したところで停止
ここで「Retern」キー以外のキー入力で次のページのダンプを表示して再び停止、
(ページは全32ページ、最終ページはスタックポインター) 「Retern」キー入力により停止解除、20を印字

◎プログラム例6 素数を求めるプログラム、$0200(実際は$20000200)以降の領域を作業用に使用
(先述のOSコマンドを組み合わせると、メモリの使用状況が確認できる。)

◎プログラム例7 乱数の表示、乱数は!で出力される。演算も可、A=!の書式も可
2020.05.10 追記 20行目のカンマはミスコード。正しくはセミコロン、故に3つ目の乱数が表示されていない。

◎プログラム例8 ユーザーサブルーチンコール
R3に変数Aのアドレス0x0Fをセット、R7=0x20000000(固定値)
これはすなわち $2000000Fの値を+3する機械語のプログラム
インタープリタの動作を保障するため、値が変わるレジスタR0,R3はpush、popで保存
CALL文で奇数となるアドレスは指定できない。 またプログラムも偶数のアドレスから記述しなければならない。

参考にしたページ
乱数の生成に関して
「PICに関する個人的なまとめ」 https://seesaawiki.jp/w/pic_wiki/d/8bit%B5%BF%BB%F7%CD%F0%BF%F4
どうもありがとうございました。紙面をお借りしてお礼申し上げます。
インタープリタのダウンロードはこちらから
https://drive.google.com/file/d/1FnOnppgtM-yISyXlAzGSsSIwLaseLAOi/view?usp=sharing
エディタで作成したBASICプログラムを実行させるにはBASICファイルをドラッグドロップさせればよく、
TERA TERMの送信遅延を以下のように設定します。

◎プログラム例1 CLEARコマンドはダイレクトコマンドとしても使用できますが、文中での使用例を示します。
A~Zには初期値が入っていたのですが、40行目のCLEARコマンドで全消去されました。

◎プログラム例2 これは以前にご紹介したシリアルポートのエコーバックプログラムのARM版
(0:0):(0:3)を$40013824に設定、アドレス$40013824はシリアル受信データのレジスタ
キー入力フラグ(0,8)の初期値は0、30行~40行のループ中、キー入力があれば(0,8)≠0となり、100行にジャンプ
RDコマンドで受信データ(ASCIIコード)を読み出し(0:4):(0:7)にストア、(0:0):(0:3)を$40013828に変更
アドレス$40013828はシリアル送信データのレジスタ、WRコマンドで(0:4):(0:7)のデータを送信、以上を繰り返す。
「Esc」キーを押したため30行目でプログラム中断

◎プログラム例3 以前解説したFOR~NEXT文の代替、Rに値を入れ、GOTO Rとするのが肝

◎プログラム例4 以前解説したGOSUB~RETURN文の代替、Rに可変の値を入れ、GOTO Rとするのが肝

◎プログラム例5 OSコマンドの使用方法
10行目では(0,9)≠0であるから、STOP動作。 10を印字する直前にプログラム停止
「Retern」キー入力により停止解除、10を印字
(20行目のOSコマンドにより再び停止するが、)今度は(0,9)=0であるからメモリダンプを表示したところで停止
ここで「Retern」キー以外のキー入力で次のページのダンプを表示して再び停止、
(ページは全32ページ、最終ページはスタックポインター) 「Retern」キー入力により停止解除、20を印字

◎プログラム例6 素数を求めるプログラム、$0200(実際は$20000200)以降の領域を作業用に使用
(先述のOSコマンドを組み合わせると、メモリの使用状況が確認できる。)

◎プログラム例7 乱数の表示、乱数は!で出力される。演算も可、A=!の書式も可
2020.05.10 追記 20行目のカンマはミスコード。正しくはセミコロン、故に3つ目の乱数が表示されていない。

◎プログラム例8 ユーザーサブルーチンコール
R3に変数Aのアドレス0x0Fをセット、R7=0x20000000(固定値)
これはすなわち $2000000Fの値を+3する機械語のプログラム
インタープリタの動作を保障するため、値が変わるレジスタR0,R3はpush、popで保存
CALL文で奇数となるアドレスは指定できない。 またプログラムも偶数のアドレスから記述しなければならない。

参考にしたページ
乱数の生成に関して
「PICに関する個人的なまとめ」 https://seesaawiki.jp/w/pic_wiki/d/8bit%B5%BF%BB%F7%CD%F0%BF%F4
どうもありがとうございました。紙面をお借りしてお礼申し上げます。
インタープリタのダウンロードはこちらから
https://drive.google.com/file/d/1FnOnppgtM-yISyXlAzGSsSIwLaseLAOi/view?usp=sharing
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT
- ご質問などはこちらからどうぞ
- ページ更新情報
- 最近嬉しかったこと
- 1kワードのTINYBASIC STM32L010F4
- やってくれたな!!店長よ
- 東大版TINYBASIC (STM32)
- 1kワードのTINYBASIC STM32版 その2
- 1kワードのTINYBASIC STM32版 その1
- 1kワードのTINYBASIC その8
- 1kワードのTINYBASIC その7
- 1kワードのTINYBASIC その6
- 1kワードのTINYBASIC その5
- 1kワードのTINYBASIC その4
- 1kワードのTINYBASIC その3
- 1kワードのTINYBASIC その2
- 1kワードのTINYBASIC その1
- 電大版TINYBASIC for PIC ミニマムお試し版5
- 電大版TINYBASIC for PIC ミニマムお試し版4
- 電大版TINYBASIC for PIC ミニマムお試し版3
- 電大版TINYBASIC for PIC ミニマムお試し版2
- 電大版TINYBASIC for PIC ミニマムお試し版
- PICで電大版TINYBASIC 実装編その5
- PICで電大版TINYBASIC 実装編その4
- PICで電大版TINYBASIC 実装編その3
- PICで電大版TINYBASIC 実装編その2
- PICで電大版TINYBASIC 実装編その1
- PICで電大版TINYBASIC 準備編その2
- PICで電大版TINYBASIC 準備編その1
- PIC18F24K42をPICKIT2で焼くTIPS その2
- PIC18F24K42をPICKIT2で焼くTIPS
- PIC16F18313ブートローダー書き込み器の製作
- PIC16F18857をPICKIT2で焼くその2
- PIC16F18857をPICKIT2で焼く
- PIC16F18313をPICKIT2で焼くその2
- PIC16F18313をPICKIT2で焼く
- PIC16F5XX USBIO
- HVT-BT200の予約制御
- 再考 PIC16F57 USBIO
- PIC16F5X USBIO
- 続12 8ピンPICでUSB PIC16F18313 HID-シリアルアダプター
- ucontrol.com.arに接続できない
- 続続 LPC1114 USBブートローダー
- 続PIC10F200 電子サイコロ
- PIC10F200 電子サイコロ
- LPC1114 8ch簡易ロジックアナライザー USB版
- 続 LPC1114 USBブートローダー
- LPC1114 8ch簡易ロジックアナライザー
- LPC1114 USBブートローダー
- LPC1114でUSB
- 続LPC810でUSB
- LPC810でUSB
- USB_NCO
- USB出力の周波数カウンター
- HIDアダプターについてのまとめ その2
- HIDアダプターについてのまとめ
- 極小ブートローダー まとめ
- 極小ブートローダー ATTiny 其の2
- 極小ブートローダー PIC10F322 其の6
- 極小ブートローダー PIC10F322 其の5
- 極小ブートローダー PIC10F322 其の4
- 極小ブートローダー PIC10F322 其の3
- 極小ブートローダー ATTiny13A
- 極小ブートローダー PIC10F322 其の2
- 極小ブートローダー PIC10F322
- 続11 8ピンPICでUSB PIC16F57_USBIO (その3)
- 続10 8ピンPICでUSB PIC16F505_USBIO (その2)
- 続9 8ピンPICでUSB PIC16F57_USBIO (その2)
- 続8 8ピンPICでUSB PIC16F505_USBIO
- 続7 8ピンPICでUSB PIC16F57_USBIO
- 続6 8ピンPICでUSB PIC16F570_USBIO
- 続5 8ピンPICでUSB PIC12F615_USBIO
- 続4 8ピンPICでUSB 16FUSBの改良版
- 続続続8ピンPICでUSB -30MHz+ソフトシリアル-
- 続続8ピンPICでUSB -16FUSBを30MHzで動かす-
- 続8ピンPICでUSB -ターミナルソフトからの操作-
- 8ピンPICでUSB -16FUSBの移植-
- 番外 MSP430 タイニーブートローダー
- 番外 C8051 タイニーブートローダー
- 続続続 Tiny AVR/PIC Bootloader+
- 続続 Tiny AVR/PIC Bootloader+
- 続 Tiny AVR/PIC Bootloader+
- Tiny AVR/PIC Bootloader+
- 番外 続ATTINY13A OSCCAL の簡易校正
- 番外 ATTINY13A OSCCAL の簡易校正
- 番外 続ATTINY13A ソフトシリアル
- 番外 ATTINY13A ソフトシリアル
- 番外 続Arduinoからタイニーブートローダーを使用する
- 番外 Arduinoからタイニーブートローダーを使用する
- 番外 LPC1114FN28/102 アセンブラサンプル
- 番外 LPC810 タイニーブートローダーの自己書き換え
- 番外 LPC810 EEPROM エミュレーション
- 番外 LPC810 タイニーブートローダー
- 番外 LPC810でアセンブラ
- 続続続PIC10F322 ソフトシリアル一考察
- 続続PIC10F322 ソフトシリアル一考察
- 続PIC10F322 ソフトシリアル一考察
- PIC10F322 ソフトシリアル一考察
- 84ワードのPICブートローダー
- 続PIC10F322 Ring-DDS
- Tinybldの自己更新プログラム
- プログラム領域をROMのように使う
- PIC10F322 256ビットプログラム発振器
- PIC18F EEPROM エミュレーション Jタイプ
- PIC18F EEPROM エミュレーション
- PIC16F EEPROM エミュレーション
- PIC10F322専用 周波数カウンター
- PIC18F Jタイプ ブートローダー
- PICの制約を取り除く
- 番外 ATTINY2313A用ブートローダー
- 続番外 ATTINY13A用ブートローダー
- 番外 ATTINY13A用ブートローダー
- 続PIC10F322 フラッシュメモリの操作
- PIC10F322 フラッシュメモリの操作
- PIC10F322 PIC_WAIT
- ビット列の並び替え その2
- ビット列の並び替え その1
- 故障した温水便座を使えるようにする
- PIC10F322 RA3を出力ポートとして使用
- PIC10F322 周波数カウンタ Part2
- PIC10F322 AN592準拠 周波数カウンタ
- PIC10F322 Ring-DDS
- microchipのAN592に関する一考察
- PIC10F322 3-ch リモコンライン切り替え器
- PIC10F322 4-SW リモコン送信器
- PIC10F322 二相発振器
- PIC_DELAY
- 続PIC_WAIT
- PIC_WAIT