電大版TINYBASIC for PIC ミニマムお試し版5
2024.04.19 追記
FLASH領域に書き込まれたSTAR TREK のBASICプログラムに行の欠落がありました。
プログラムを修正しリンク先を変更しました。、
2024.04.19 追記ここまで
前ページのお試し版4に論理演算の関数を加えました。
2018.07.03 追記あります
<論理演算に関して>
電大版TINYBASICの仕様ではIF文中の和事象や積事象は以下のように記述できますが、
IF (((A>0)*(A<9))+((B>0)*(B<9)))>=1 GOTO 100
Aが1から8またはBが1から8の範囲にあれば行番号100にジヤンプ
変数に対する論理演算の関数がありません。
論理演算の関数が無いとPICのレジスタを操作する際に不便ですので、
NAKAMOZU TINY BASICのソースを基にAND(A,B)、OR(A,B)、XOR(A,B)の関数を追加しました。
マニュアルも更新しました。
○使用例
16MHzで作動している時のOSCCON値を読み取り、ビット3をクリアしビット7を立てる。
32MHzで作動させる値を求める。#($99)=AとすればOSCCON値が書き換えられる。

○TEK端末でのグラフィック表示例

2018.07.03 タイマカウンタと割り込みに関する追記
前ページで記載したタイマカウンターですが、
機能を拡張して割り込み全般に対応させることを目的に、
割り込みが発生すると$7C(上位):$7D(下位)に格納されたアドレスに間接ジャンプする仕様に変更しました。
割り込みを使用する場合、ユーザーがPICの割り込み処理プログラムを作成し、フラッシュに書きこむ必要があります。
BASIC起動後、BASIC上で$7C(上位):$7D(下位)の内容を上記割り込み処理アドレスに変更することで
ユーザーの希望する割り込みを処理することができます。
ちなみに初期状態で起動されるタイマカウンタの割り込みプログラムは以下のとうりです。(TMRH:$7E/TMRL:$7F)
org 0x1F00
TM000 incf TMRH,F ;TM0 Interrupt
incfsz TMRL,F
decf TMRH,F
bcf INTCON,TMR0IF
retfie
<割り込み(ベクター)変更の手順>
①初期状態ではTM0の割り込みが有効になっているので、INTCONレジスタのTMR0IEビットをクリアして
TM0の割り込みを無効化 (下図参照 40行目でTM0割り込み禁止)

②$7C(上位):$7D(下位)の内容を変更
③INTCONレジスタやPE1/2/3レジスタを書き換えて目的の割り込みに対応させる。
④割り込みを使用しなければ$7Bから$7Fの領域を自由に使えます。

ダウンロードプログラムを更新します。
追記ここまで
ダウンロードはこちらから
https://box.yahoo.co.jp/guest/viewer?sid=box-l-ynvbblq5wtn3l5nx64zrgryqbm-1001&uniqid=529c1ae8-ed45-4321-89f2-1eba0ea80e31&viewtype=detail
https://drive.google.com/file/d/1ePgtL8t0L5f88OFsCQMsukcbsnOS0nU8/view?usp=sharing
2024.04.19 リンク先変更
BASICインタープリタ、文法表、BASIC-HEX変換マクロ(TERATERM用)、BASICサンプルプログラム
https://drive.google.com/file/d/1eMZF-wp0nU-a9t4QlQ8fLaEhAByR-Ttw/view?usp=sharing
FLASH領域に書き込まれたSTAR TREK のBASICプログラムに行の欠落がありました。
プログラムを修正しリンク先を変更しました。、
2024.04.19 追記ここまで
前ページのお試し版4に論理演算の関数を加えました。
2018.07.03 追記あります
<論理演算に関して>
電大版TINYBASICの仕様ではIF文中の和事象や積事象は以下のように記述できますが、
IF (((A>0)*(A<9))+((B>0)*(B<9)))>=1 GOTO 100
Aが1から8またはBが1から8の範囲にあれば行番号100にジヤンプ
変数に対する論理演算の関数がありません。
論理演算の関数が無いとPICのレジスタを操作する際に不便ですので、
NAKAMOZU TINY BASICのソースを基にAND(A,B)、OR(A,B)、XOR(A,B)の関数を追加しました。
マニュアルも更新しました。
○使用例
16MHzで作動している時のOSCCON値を読み取り、ビット3をクリアしビット7を立てる。
32MHzで作動させる値を求める。#($99)=AとすればOSCCON値が書き換えられる。

○TEK端末でのグラフィック表示例

2018.07.03 タイマカウンタと割り込みに関する追記
前ページで記載したタイマカウンターですが、
機能を拡張して割り込み全般に対応させることを目的に、
割り込みが発生すると$7C(上位):$7D(下位)に格納されたアドレスに間接ジャンプする仕様に変更しました。
割り込みを使用する場合、ユーザーがPICの割り込み処理プログラムを作成し、フラッシュに書きこむ必要があります。
BASIC起動後、BASIC上で$7C(上位):$7D(下位)の内容を上記割り込み処理アドレスに変更することで
ユーザーの希望する割り込みを処理することができます。
ちなみに初期状態で起動されるタイマカウンタの割り込みプログラムは以下のとうりです。(TMRH:$7E/TMRL:$7F)
org 0x1F00
TM000 incf TMRH,F ;TM0 Interrupt
incfsz TMRL,F
decf TMRH,F
bcf INTCON,TMR0IF
retfie
<割り込み(ベクター)変更の手順>
①初期状態ではTM0の割り込みが有効になっているので、INTCONレジスタのTMR0IEビットをクリアして
TM0の割り込みを無効化 (下図参照 40行目でTM0割り込み禁止)

②$7C(上位):$7D(下位)の内容を変更
③INTCONレジスタやPE1/2/3レジスタを書き換えて目的の割り込みに対応させる。
④割り込みを使用しなければ$7Bから$7Fの領域を自由に使えます。

ダウンロードプログラムを更新します。
追記ここまで
ダウンロードはこちらから
2024.04.19 リンク先変更
BASICインタープリタ、文法表、BASIC-HEX変換マクロ(TERATERM用)、BASICサンプルプログラム
https://drive.google.com/file/d/1eMZF-wp0nU-a9t4QlQ8fLaEhAByR-Ttw/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