1

PedroM 0.82 RC1 has been released. Please help us providing the help needed to make this release a quality one.
PedroM is a new and completely free (released under the GPL) Operating System for the TI-89, TI-92+, V200 and TI-89 Titanium calculators of Texas Instruments. It replaces entirely the original Operating System provided by Texas Instruments (called AMS for Advanced Mathematics Software). PedroM is not affiliated to Texas Instrument in any way: it was developed from scratch.
The main new features since PedroM 0.81 are:
+ bugs fixed : more application can be run,
+ new system variables : font
+ a new build system based on Unix Makefile and on ld-tigcc which provides a huge level of flexibility (allowing more developers to join and integration of Unix like libraries),
+ (optional) integration of the GMP( http://gmplib.org ), MPFR ( http://www.mpfr.org ) and MAYLIB (a custom made library) which helps PedroM to provide a symbolic engine.

To run the symbolic engine, you have to build PedroM with it by using the command : make CAS=1
or use a compiled binary. Then you enter the symbolic engine by typing the command 'zs'. You'll enter a new shell of command with the following properties. Note that this shell is not the final interface: it is used for beta testing the symbolic engine.
You can type any mathematical expression, then press ENTER to evaluate it (For example, 2*x-x is simplified into x). The evaluation should be always exact except for a set of measure zero.
You can enter arbitrarily long integer, fraction or floats (For example, 500!-3/2). The precision of the floats can be changed anytime by using the prec function. Note that the floats used in this mode are based on MPFR and are much, much reliable than the floats used outside the symbolic engine.

You can save some values inside 26 variables : 'a' to 'z' (For example, 2+x STO a -- Note that STO is the STORE character used to store on AMS in the variables) and use them latter (For example, expand (a^2)). To delete a variable, store nothing in it (Example: STO a)
See the manual to read the available commands.

We need beta testers to test this release against the following calculators:
+ TI-92+ HW1
+ TI-92+ HW2
+ V200
+ TI-89 HW1
+ TI-89 HW2
+ TI-89 Titanium HW3
+ TI-89 Titanium HW4

To transfer PedroM, you may use FreeFlash available at http://www.ticalc.org/archives/files/fileinfo/368/36829.html . Don't forget to read carefully the manual of Free Flash. Installing PedroM should be safe providing you know what are doing and you have an original AMS OS (See TI site) to install in case of problem. But I don't provide any warranty, neither Texas Instruments, neither the author of FreeFlash: do it at your own risk.

The test suite is concentrated on the software hardware integration. So each beta tester has to test for its calculator:
+ sending PedroM to its calculator,
+ successful boot which shows the PedroM prompt,
+ test of the keyboard drivers:
* test if what you input in your keyboard is print on the screen,
* test of the [2ND] + key combination,
* test of the [DIAMOND] + key combination,
* test of the [SHIFT] + key combination,
* test of the auto repetition of the keys,
+ test of the handling of the screen
* test of [DIAMOND] + '+' or '-' to change the contrast,
* test of the [2ND] + 'ON' which shut down the calculator,
* test of the 'ON' which restarts the calculator,
+ test of the Flash Rom:
* write a dummy file (Use the built in text editor to create one),
* archive it using the arc command,
* reset PedroM (using the reset command),
* check that the file is still present and not corrupted,
* create a new dummy file, archive it, and reboot,
* check that the files are still present and not corrupted,
* reformat the flash using the install format command,
* check that the files are missing,
* reset PedroM and check that the files are missing,
+ test of the BATTERY indicator,
* try to find, if possible, some batteries with different levels
* test the BATTERY indicator,
* test if the archive of files is forbidden if the BATTERY is too low.
+ test of the LINK:
* send some files, and check that they were successfully loaded inside PedroM,
* get a screenshot of the calculator,
* list the files,
* receive the files,
* create folder,
* delete file
+ test of the unprotection:
* send some programs, try to run them.

Once you have done this, the software hardware integration should be good.
You can continue your test by sending some assembly programs developed for TI-89, TI-92 or V200 :
+ test of a pure nostub program,
+ test of a tigcc stub program,
+ test of a kernel program,
+ test of a PPG.

Once you have done this, the software software integration should be good.
You can continue your test by testing the symbolic engine :
+ Run 'zs' and performs what you want smile

Please report any bugs/regressions of PedroM or successful tests to patrick [dot] pelissier [at] gmail [dot] com, or in this message boards. If don't perform the full test suite, please tell it in your report.
See t3 for details.
Download: ~technic/archives/OS/Alpha/pedrom-0.82-RC1.7z

2

Juste une question bête :
The main new features from PedroM 0.81 are:
+ bugs fixed : more application can be run,
+ new system variables :
+ new command : printf
+ a new build system based on Unix Makefile and on ld-tigcc which provides a huge level of flexibility (allowing more developers to join and integration of Unix like libraries),
+ (optional) integration of the GMP( http://gmplib.org), MPFR (http://www.mpfr.org) and MAYLIB (a custom made library) which helps PedroM to provide a symbolic engine.

PedroM 0.81 ou 0.82 ?
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant

3

*from*
avatar« Quand le dernier arbre sera abattu, la dernière rivière empoisonnée, le dernier poisson capturé, alors vous découvrirez que l'argent ne se mange pas. »

4

"since" would be better, wouldn't it ?
avatar

5

Yes, I think so.
BTW: the GMP and MPFR links in ./1 and http://tichessteamhq.yuku.com/topic/4703 are b0rked smile
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

6

Bravo ! top
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

7

I get always the bug described in topics/120888-pedrom-082-alpha-2 (post 18) after having recompiled.
I get always a strange behavior with make not cleaning source directory... I must run './pedrom/src/make clean' or './pedrom/make' to clean sources.
I use an up-to-date Fedora 11 x86-64 with latest TIGCC.

I still with use your provided binaries ... sad
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

8

Folco (./7) :
I get always the bug described in topics/120888-pedrom-082-alpha-2 (post 18) after having recompiled.


I am pretty sure the bug is somewhere in the tools rather than PedroM.

9

According to http://mobifiles.bytefox.de/viewtopic.php?f=25&t=3632 (in German), the sqrt function is faulty (and has been since at least 0.81, probably ever since the function got first implemented), it computes sqrt(x/10) instead of sqrt(x).
(Source: http://tichessteamhq.yuku.com/topic/4703 )
avatarMembre de la TI-Chess Team.
Co-mainteneur de GCC4TI (documentation en ligne de GCC4TI), TIEmu et TILP.
Co-admin de TI-Planet.

10

Folco (./7) :
I get always the bug described in topics/120888-pedrom-082-alpha-2 (post 18) after having recompiled.
I get always a strange behavior with make not cleaning source directory... I must run './pedrom/src/make clean' or './pedrom/make' to clean sources.
I use an up-to-date Fedora 11 x86-64 with latest TIGCC.

I still with use your provided binaries ... sad


Patch:
------------------------------- src/c/printf.c --------------------------------
index 6552957..c19f7ce 100644
@@ -249,31 +249,31 @@ vcbprintf (short (*callback)(short,FILE *), FILE *p, const char *fmt, va_list ar
{
case '#':
dr.flags |= FLAG_VARIANT;
- continue;
+ break;
case '0':
- if ((dr.flags | FLAG_LJUSTIFY) == 0)
+ if ((dr.flags & FLAG_LJUSTIFY) == 0)
dr.flags |= FLAG_PADZERO;
- continue;
+ break;
case '-':
dr.flags = FLAG_LJUSTIFY | (dr.flags & ~FLAG_PADZERO);
- continue;
+ break;
case ' ':
dr.flags |= FLAG_BLANKER;
- continue;
+ break;
case '+':
dr.flags |= FLAG_SIGNED;
- continue;
+ break;
case '\'':
/* TODO: SUSv2 specifies one */
- continue;
+ break;
case 'I':
/* TODO: glibc 2.2 specific one */
- continue;
+ break;
case 'z':
case '^':
case '|':
/* TODO: Ti specific ones */
- continue;
+ break;
default:
goto end_read_flags;
}

11

Lionel Debroux (./9) :
According to http://mobifiles.bytefox.de/viewtopic.php?f=25&t=3632 (in German), the sqrt function is faulty (and has been since at least 0.81, probably ever since the function got first implemented), it computes sqrt(x/10) instead of sqrt(x).
(Source: http://tichessteamhq.yuku.com/topic/4703 )


Note: I highly recommend using zs for all numerical computations. It is much more tested than the functions of the default interpreter.

12

Lionel Debroux (./9) :
According to http://mobifiles.bytefox.de/viewtopic.php?f=25&t=3632 (in German), the sqrt function is faulty (and has been since at least 0.81, probably ever since the function got first implemented), it computes sqrt(x/10) instead of sqrt(x).
(Source: http://tichessteamhq.yuku.com/topic/4703 )


Patch:
--- a/src/Bcd.asm
+++ b/src/Bcd.asm
@@ -778,6 +778,7 @@ FloatNegInfinity dc.l $FFFF6000,$99999999,$99999999
FloatPosInfinity dc.l $00006000,$99999999,$99999999
FloatZero dc.l $00002000,0,0
FloatOne dc.l $00004000,$10000000,0
+FloatTen dc.l $00004001,$10000000,0
FloatMinusOne dc.l $FFFF4000,$10000000,0
FloatNAN dc.l $00007FFF,$AA000000,0
FloatLn10: dc.l $00004000,$23025850,$92994046
@@ -1036,10 +1037,15 @@ FloatRangeReducByMod:
move.l (a7)+,d0
rts

+; Compute sqrt(x)
; In:
; FloatReg1 >=0
FloatSqrt:
pea (a5)
+ movem.l FloatReg1,d1-d3
+ movem.l FloatTen(pc),d4-d6
+ movem.l d1-d6,FloatReg3
+ jsr FloatMult
tst.w FloatReg1+FLOAT.sign
bne \Return
move.w FloatReg1+FLOAT.exponent,-(a7) ; Push org exponent

13

Very nice ! Thank you !
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

14

Here some screenshots of its numerical functions I forgot:
screenshot000.png screenshot001.png screenshot002.png screenshot003.png
screenshot004.png screenshot005.png screenshot006.png screenshot007.png
screenshot008.png screenshot009.png screenshot010.png screenshot011.png
screenshot012.png screenshot013.png screenshot014.png screenshot015.png
screenshot016.png screenshot017.pngscreenshot018.png screenshot019.png

15

A RC2 of PedroM 0.82 has been released. It fixes all the reported bugs against the RC1. Please test it.
Download: ~technic/archives/OS/Alpha/pedrom-0.82-RC2.7z

16

Ok ! I look at it probably tomorrow !

Bravo ! wink
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

17

Your pictures are all 404s.
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

18

19

Kevin Kofler (./17) :
Your pictures are all 404s.

Due to an error, I have deleted them all yesterday. I have redone them.

20

Test report, PedroM 0.82 RC3 (official build), TI89 HW2.
+ sending PedroM to its calculator,

Success ! The calc was under AMS 2.09, I have used FreeFlash and a fsigned ROM.

Note that the 'install tib' of this version doesn't work, in the same way that I described you in a mail today.
+ successful boot which shows the PedroM prompt,

Success.
+ test of the keyboard drivers:* test if what you input in your keyboard is print on the screen,

It does. The command line scrolls horizontally (nicer than before if I remember !), but the input buffer seems to be limited up to 40 chars.
* test of the [2ND] + key combination,

Combinations of all chars tested, success.
* test of the [DIAMOND] + key combination,

Success for the 3 chars accessible on a 89 keyboard (theta, infinite and underscore).
* test of the [SHIFT] + key combination,

Success. I get all chars in upper case. Note that ALOCK and SALCK seem to work fine.
* test of the auto repetition of the keys,

Failed. None of arrow keys and backspace want to auto-repeat. I got the same behavior in previous versions.
+ test of the handling of the screen* test of [DIAMOND] + '+' or '-' to change the contrast,

Success, from the lower level to the higher one and vice-versa.
* test of the [2ND] + 'ON' which shut down the calculator,

Success. [DIAMOND] + 'ON' works in the same way.
* test of the 'ON' which restarts the calculator,

Success.
+ test of the Flash Rom:* write a dummy file (Use the built in text editor to create one),

Done. Filename : abc. Text : test1.
* archive it using the arc command,

Success. 'ls -l' reports it to be in archive.
* reset PedroM (using the reset command,)* check that the file is still present and not corrupted,

Success. I can edit and 'cat' the file.
* create a new dummy file, archive it, and reboot,

Done. Filename : def. Text : test2.
* check that the files are still present and not corrupted,

Success. I can edit and 'cat' the two files.
* reformat the flash using the install format command,

Done.
* check that the files are missing,

'ls' says that no file remains.
* reset PedroM and check that the files are missing,

No file again.
+ test of the LINK:* send some files, and check that they were successfully loaded inside PedroM,

I have sended only asm programs. It usually works fine, but sometimes the behavior is strange. I use TiLP 2, the package provided in the Kevin's repository.

When it doesn't work :
- drag and drop a file to the 'variable' item of TiLP
- TiLP timeout in few seconds
- PedroM disp a message "Link. Reset ?"

- The "Ready" button on TiLP makes sometimes TiLP to timeout, and the calc displays the same message.

Nevertheless, usually, files transferts work correctly. I can browse the calc and see the files in the vat from my computer.
* get a screenshot of the calculator,

Success. if the calc displays the PedroM's prompt. It fails if some program is running (waiting for a keystroke with the ngetchx romcall).



I can run a simple asm program (68KP), kernel mode.
I keep my calc turned on in an infinite loop until the level of my batteries is sufficiently low to perform the end of the tests. It should happen very soon. Then I will be able to complete the test.

edit -> link tests done
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

21

What exactly does domain(real) do? Because its effect on conj in the screenshot looks weird to me.
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

22

And how are symbolic variables inside gcd handled? Are they assumed integers?
avatarMes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

23

Kevin Kofler (./21) :
What exactly does domain(real) do? Because its effect on conj in the screenshot looks weird to me.

Yes it IS weird. Definitely a bug.
The bug was in the interpreter, become conj(m) was evaluated BEFORE m was replaced with its value.
Which means that in the evaluation of conj(m), m was assumed real, and so it returns m. Then it is substituted into conj(x)+I*conj(y) which is then evaluated into x+I*y
It will be fixed in the RC4.
Kevin Kofler (./22) :
And how are symbolic variables inside gcd handled? Are they assumed integers?

Well the function gcd is a function which returns an integer.
It uses the polynomial gcd, but then if poly_gcd(x,y)=1, it can't assume that the integer_gcd(x,y)=1. if we replace x and y by some values (x=2 and y=4), it is wrong.
I know it isn't a very classical behavior of the gcd function, but let's see if it is good or not.

24

All the reported bugs have been fixed in RC4 available at t3

Add new options to zs:
-q : quiet option
example: echo "220!" | zs -q > toto
side toto
-m NUMBER : Limit the number of the memory used by the expression evaluator (default is using as much as possible).
Thanks to this new option, you can limit the memory used by zs and have multiple instance of zs in different shells (DIAMOND + Fn works inside zs)

25

Very nice !!!
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

26

Mistake in the test, the linking error is "Link : reset", and not "Link : MID".
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

27

XS8I


Nice, isn't it (89 HW2) ? #itm#

I have just tested the only failed test I did for the RC3 : the auto-repeat feature doesn't seem to work (command line, side).

BTW, I have tested the battery indicator, and I have never seen the item displayed... My calc was running a program, the contrast was significantly low, nothing were displayed (home screen). I have turned off the calc, and it didn't want to boot : no more batteries. I have changed just one of the four, but the calc still displayed nothing... (and with these batteries, the TI boot didn't want to proceed to a ROM transfert).
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !

28

Current failures in RC4:
* Link seems to fail on real calculator until you get a "Link: Reset" error.
* Key auto-repeat on ti-92
* Battery indicator on ti-89 HW2
* pexeclib is not recognised as a kernel lib inside a Pack Archive: why?

29

PpHd (./28) :
* pexeclib is not recognised as a kernel lib inside a Pack Archive: why?

Report sent. Currently not a bug.
PpHd (./28) :
* Key auto-repeat on ti-92

Could you test again? It seems to work but an awful rate (2s or more repeat!). Could you confirm?

30

PpHd (./29) :
Report sent. Currently not a bug.

Seen, thx for your test, I look at that this afternoon.
PpHd (./29) :
Could you test again? It seems to work but an awful rate (2s or more repeat!). Could you confirm?

Confirmed, it works on 89 HW2 ! Sorry for the false report... (first repeat delay seems to be ~5 sec, then 2 secs)
avatar<<< Kernel Extremist©®™ >>>
Feel the power of (int16) !