Skip to content

Commit

Permalink
version V3.2R1 complété tous les programmes dans le dossier BASIC fon…
Browse files Browse the repository at this point in the history
…ctionnent correctement.
  • Loading branch information
Picatout committed Apr 22, 2023
1 parent a4d1016 commit 9b27cd0
Show file tree
Hide file tree
Showing 10 changed files with 57 additions and 61 deletions.
43 changes: 0 additions & 43 deletions BASIC/i2c_test.bas

This file was deleted.

13 changes: 0 additions & 13 deletions BASIC/i2c_wr_test.bas

This file was deleted.

2 changes: 1 addition & 1 deletion TinyBasic.asm
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ move_exit:
;-----------------------
MAJOR=3
MINOR=2
REV=0
REV=1
software: .asciz "\n\nTiny BASIC for STM8\nCopyright, Jacques Deschenes 2019,2022,2023\nversion "
board:
Expand Down
Binary file modified docs/tbi_reference_en.pdf
Binary file not shown.
Binary file modified docs/tbi_reference_fr.pdf
Binary file not shown.
26 changes: 26 additions & 0 deletions journal.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
### 2023-04-22

* Dernier test de performance:
```
>list
10 LET T = TICKS
12 FOR I = 1 TO 10000
14 NEXT I
16 ? TICKS - T ; " msec"
20 LET I = 1 , T = TICKS
22 DO LET I = I + 1
24 UNTIL I > 10000
26 ? TICKS - T ; " msec"
30 LET I = 1 , T = TICKS
32 LET I = I + 1
34 IF I <= 10000 GOTO 32
36 ? TICKS - T ; " msec"
program address: $91, program size: 182 bytes in RAM memory
>run
76 msec
527 msec
672 msec
```
C'est plus lent que le test précédent mais c'est du à la correction d'un bogue dans **LET**.

* Corrigé bogue dans commande **I2C.OPEN**.

* Corrigé bogue dans **LET** ou dans le cas de variables dynamique il n'y avait pas de vérification pour d'éventuels éléments suivant le premier.
Expand All @@ -12,6 +36,8 @@

* programme [i2c_eeprom.bas](BASIC/i2c_eeprom.bas) **ne fonctionne pas**.

* Corrigé erreur dans les documents *tbi_reference_xx.md* et regénérer les pdf.

### 2023-04-21

* bogue dans *kword_on* corrigé.
Expand Down
12 changes: 12 additions & 0 deletions notes_de_révision.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
# Notes de révision

## 2023-04-22

* Version V3.2R1
* Il s'agit d'une optimisation de performance de la machine virtuelle. Ce nouveau modèle de la machine virtuelle utilise le registre **Y** comme compteur ordinal au lieu du registre **X** qui devait-être continuellement sauvegardé dans la variable système **basicptr**. De plus les appels au routines de commandes sont faites par une instruction **JP** au lieu d'une instruciton **CALL** et la sortie des routines utilise la macro **_next** qui est un saut vers **interp_loop**. D'autres optimisations ont étées effectuées pour améliorer la rapidité de la machine virtuelle.
Le gain de performance est appréciable. Le gain varie de 25% à 50% dépendant du type d'opération.

* Des bogues ont étés découverts et corrigés.

* Correction d'une erreur sur un lien interne dans les manuels de références.

* Tout les programmes dans le répertoire **BASIC** fonctionnent correctement.

## 2023-03-09

* Version V3.1R12 ajoute 2 commandes
Expand Down
14 changes: 14 additions & 0 deletions release_notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

# STM8 Tiny BASIC release notes

## 2023-04-22

* Version V3.2R1
* This is a performance revision. The virtual machine that execute BASIC bytecode has been change. As register **Y** was no more used since the abandon of a second stack for parameters
it was freed. Then is now repurposed as VM program counter. In previous model register **X** was used for this purpose and it was required to save it continually to *basicptr* system variable. With this new model **Y** rarely require to be saved and when it is required it is pushed on stack. Also the calling model for BASIC commands as changed from a **CALL-RET** model to a **JP code - JP interp_loop**. This save 4 clocks cycles per call. This result in
an improved VM performance between 25% to 50% depending on code executed. the **LET** keyword is still slow because evaluating expression is comples. Neverthess a 25% gain is observed.

* Aside of this optimisation some new bugs have been discovered and corrected.

* Also a correction in reference manual have been done where 2 paragraphs where using the same link name.

* All programs in BASIC directory run without issue.


## 2023-03-09 V3.1R12

* Two new commands added:
Expand Down
4 changes: 2 additions & 2 deletions tbi_reference_en.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<a id="main-index"></a>
## main index

* [Data types](#data)
* [Data types](#data_type)

* [Variables](#variables)

Expand All @@ -31,7 +31,7 @@
<hr>

[main index](#main-index)
<a id="data"></a>
<a id="data_type"></a>
### Data types

The only data type supported is 24 bits signed integers in range **-8388608...8388607**.
Expand Down
4 changes: 2 additions & 2 deletions tbi_reference_fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
<a id="index-princ"></a>
## index principal

* [Types de données](#data)
* [Types de données](#data_type)

* [Variables](#variables)

Expand All @@ -29,7 +29,7 @@

* [Code source](#sources)

<a id="data"></a>
<a id="data_type"></a>
### Type de données
Le seul type de donné numérique est l'entier 24 bits donc dans l'intervalle **-8388608...8388607**.

Expand Down

0 comments on commit 9b27cd0

Please sign in to comment.