PC-G850

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

PC-G850

Message par Paul Tergeist » 29 oct. 2007 09:36

Avez-vous une liste des bibliothèques
ou instructions utilisables avec le compilateur C de cette machine :?:

J'essaye de faire des parallèles avec le C du Z1GR mais il y a
quelques différences. :oops:

(par exemple la fonction "line" au lieu de 4 paramètres en possède 7 )

Merci :wink:

P.S. : je suis preneur de toute adresse de site même en japonais.

Avatar de l’utilisateur
Jamel
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 344
Inscription : 16 févr. 2006 17:07
Localisation : Orégon - USA

Message par Jamel » 29 oct. 2007 19:09

Salut Paul,

Je suis en voyage d'affaire pour le moment, mais je te fais la liste de la lib c sur 850 (quel model, le 850 sec?) a mon retour.

A+, Jamel
- Jamel

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 29 oct. 2007 20:08

Hyper génial Jamel... :D

J'ai essayé pas mal de paramètres rien que pour cette fonction line et
je n'arrive à pour ainsi dire rien... Je pensais qu'il y avait des codes de
pattern comme dans la fonction paint(x,y,pattern) mais je ne vois pas où ils
se situent. :(

Concernant le modele c'est juste indiqué "PC-G850".

J'ambitionne de faire une paire de pages d'aides sur mon site car je pense
que je ne suis pas le seul à vouloir faire un peu de C sur cette machine
et comme tous les manuels sont en japonais ce n'est pas facile.

Bon à moins de savoir parler le japonais... :lol:

Avatar de l’utilisateur
charognard
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 4411
Inscription : 06 juin 2007 19:28
Localisation : Indre et loire
Contact :

Message par charognard » 29 oct. 2007 21:26

pour info l'instruction line du PC 1600 contient aussi 7 parametres
LINE(X1,Y1)-(X2,Y2),[S|R|X],masque 16 bits, [B|BR], l'instruction gére aussi les rectangles et les retangles plein
voilà, je ne sais pas si ça peut etre utile

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 30 oct. 2007 17:57

C'est une piste intéressante Charognard :!:

Je n'avais pas pensé à regarder du coté du manuel du PC-1600,
mais maintenant que tu le suggère ça me semble bien plus naturel
puisque c'est le même constructeur...

Je vais peut-être arriver à la tracer ma ligne... :)

Quel suspens ! je n'ai pas ma machine au boulot, dommage sinon j'essayerai
tout de suite.

Merci.

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 31 oct. 2007 14:08

Merci Charognard,

Ca a bien fonctionné.

Ainsi pour créer une ligne de 1,1 à 40,40 on fera:
line(1,1)-(40,40),S,65535 en Basic avec un PC-1600
et
line(1,1,40,40,0,65535,0) en C avec un PC-G850

pas simple quand même. Bon je continue avec les autres instructions et
j'espère que Jamel pourra éclairer le chemin de la connaissance...

:wink:

Avatar de l’utilisateur
Jamel
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 344
Inscription : 16 févr. 2006 17:07
Localisation : Orégon - USA

Message par Jamel » 03 nov. 2007 05:28

Hello Paul,

Je rentre de Santa Ana et mon premier post est pour toi :D
Voici les prototypes des fonctions graphiques pu PC-G850.

int circle(int x, int y, int r, double s-angle, double e-angle, double ratio, int reverse, unsigned short kind);
int gcursor(int x, int y);
int gprint(char *image);
int line(int x1, int y1, int x2, int y2, int reverse, unsigned short mask, int rectangle);
int paint(int x, int y, unsigned short kind);
int point(int x, int y);
int preset(int x, int y);
int pset(int x, int y, int reverse);

A+, Jamel
- Jamel

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 03 nov. 2007 11:11

Salut Jamel,

Je te remercie de cette attention, au lieu de faire x essais, là j'ai la liste
exhaustive des fonctions graphiques du G850.
Je vais pouvoir tracer ... :D

Au niveau de la fonction #include du g850, est-ce qu'il y a des bibliothèques
internes (ex: stdio.h) ou bien est-ce destiné uniquement aux
bibliothèques que l'on fait soi-même ?

Encore merci Jamel,

P.S. : pour t'éviter une trop fastidieuse recopie, je dispose du manuel
du C du Z1GR alors comme ils ont pas mal de fonctions communes, j'ai
juste besoin des fonctions propres au G850

Avatar de l’utilisateur
Jamel
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 344
Inscription : 16 févr. 2006 17:07
Localisation : Orégon - USA

Message par Jamel » 03 nov. 2007 23:56

Voili, voilou Paul,

void abort(void);
int abs(int x);
double acos(double x);
double acosh(double x);
void angle(unsigned n);
double asin(double x);
double asinh(double x);
double atan(double x);
double atanh(double x);
void breakpt(void);
void *calloc(unsigned n, unsigned size);
int circle(int x, int y, int r, double s-angle, double e-angle, double ratio, int reverse, unsigned short kind);
void clearerr(FILE * stream);
void clrscr(void);
double cos(double x);
double cosh(double x);
void exit(int status);
double exp(double x);
int fclose(FILE *stream);
int feof(FILE *stream);
int fflush(FILE * stream);
int fgetc(FILE *stream);
char *fgets(char *, int n, FILE *stream);
unsigned long flof(FILE *stream);
FILE *fopen(char *path, char *type);
int fprintf(FILE * stream, const char * format [, arg, …]);
int fputc(int c, FILE * stream);
int fputs(const char *s, FILE *stream);
void free(void *ptr);
int fscanf(FILE * stream, const char * format [, address, …]);
int gcursor(int x, int y);
int getc(FILE *stream);
int getch(void);
int getchar(void);
char *gets(char * s);
void gotoxy(unsigned x, unsigned y);
int gprint(char *image);
int isalnum(int c);
int isalpha(int c);
int iscntrl(int c);
int isdigit(int c);
int isgraph(int c);
int islower(int c);
int isprint(int c);
int ispunct(int c);
int isspace(int c);
int isupper(int c);
int isxdigit(int c);
int kbhit(void);
int line(int x1, int y1, int x2, int y2, int reverse, unsigned short mask, int rectangle);
double log(double x);
double log20(double x);
void *malloc(unsigned size);
int miniget(void);
void miniput(char byte);
int paint(int x, int y, unsigned short kind);
int pioget(void);
void pioput(char byte);
void pioset(char byte);
int point(int x, int y);
double pow(double x, double y);
int preset(int x, int y);
int printf(const char * format [, arg, …]);
int pset(int x, int y, int reverse);
int putc(int c, FILE * stream);
int putchar(int c);
int puts(const char *s);
int scanf(const char * format [, address, …]);
double sin(double x);
double sinh(double x);
int sprintf(char * s, const char * format [, arg, …]);
double sqrt(double x);
int sscanf(char * s, const char * format [, address, …]);
char *strcat(char * s1, const char *s2);
char *strchr(const char *s, int c);
int strcmp(const char *s1, const char *s2);
char *strcpy(const char *s1, const char *s2);
int strlen(const char *string);
double tan(double x);
double tanh(double x);
int tolower(int c);
int toupper(int c);

A+, Jamel
- Jamel

Avatar de l’utilisateur
Quax
Fonctionne à 75 bauds
Fonctionne à 75 bauds
Messages : 40
Inscription : 04 janv. 2007 14:02
Contact :

Message par Quax » 04 nov. 2007 04:16

Hi Jamel,

nice stuff!
Do you know if the C compiler generates real machine code? Or does it produce some kind of byte code that is interpreted at run time?


Quax

Avatar de l’utilisateur
Jamel
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 344
Inscription : 16 févr. 2006 17:07
Localisation : Orégon - USA

Message par Jamel » 04 nov. 2007 05:18

Thanks Quax! It is bytecode and interpreter. None of the 15 pockets having C in ROM provides native compilation.
- Jamel

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 05 nov. 2007 11:26

Merci de nouveau pour cette seconde liste Jamel. :D

concernant la fonction suivante :
int gprint(char *image);

Le pointeur *image est sur un string ou bien est-ce qu'il y a possibilité
(je reve sans doute) de pointer sur un bloc de pixel (x1,y1)-(x2,y2) ?

Et s'il est possible de pointer sur un bloc de pixel, comment le déclarer et
l'affecter ?

Grace à ce forum mon petit programme de tracé de courbe (fortement
inspiré de celui du Z1GR) fonctionne bien. Content le Paul :D

Paul

P.S.: au fait est-ce que tu as reçu la 35s ?
moi ils sont en ré-approvisionnement. pas de bol :(

Avatar de l’utilisateur
Jamel
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 344
Inscription : 16 févr. 2006 17:07
Localisation : Orégon - USA

Message par Jamel » 05 nov. 2007 16:24

Salut Paul,

Super que cela te soit utile. Non, image est un pointeur sur une chaîne (char *), avec les codes hexa - comme sur les PC-1x graphiques.
Oui, tu dois être en mesure de pointer dans la mémoire graphique (via un void *) (du moins je le suppose car je n'ai pas encore fait le test - et je n'ai pas encore établi les memory maps de mes machines). Mais une fois ces données disponibles, il devrait être possible de sauvegarder et d’écrire des zones de la mémoire vidéo en utilisant memcpy (avec certainement des contraintes sur la position et taille des blocs - en pixels). À vérifier aussi, mais je pense qu'un ensemble de routines LM optimisées sera probablement plus rapide que la lib C pour faire une sorte de blitter soft, – je suppose, peut-être a tort, que c’est ce que tu souhaites faire. Une fois de plus à vérifier (je n'y suis pas encore, je te ping dès que j'y arrive...)
En ce qui concerne la HP-35S, oui, j'ai bien fini par la recevoir :D. Pas glop pour toi en revanche. :cry:

A+, Jamel
- Jamel

Avatar de l’utilisateur
Paul Tergeist
Fonctionne à 9600 bauds
Fonctionne à 9600 bauds
Messages : 2417
Inscription : 15 oct. 2007 15:50
Localisation : 3ème planète après le soleil

Message par Paul Tergeist » 06 nov. 2007 11:21

Salut Jamel,

L'utilisation classique de la fonction me conviendra.
Ca couvre déjà 8 pixels en hauteur alors si je découpe mon graphique
en morceaux ça m'ira très bien. Je compte juste afficher quelques
graphes.

Pour la HP-35S je vais attendre encore (pas glop pas glop).
(les belles machines aiment se faire attendre ) :D

Est-ce qu'elle va vite ? Et est-ce qu'on retrouve l'intelligence de conception
propre à HP ? (mais je dérive là, il y a déjà un forum consacré à la HP35S
et ici je ne devrai parler que du PC-G850)

Grace à la liste d'instructions que tu as donné je vais commencer
une page consacrée au C sur le PC-G850.
Je pense que cela vaut le coup, je n'ai pas trouvé de site français
qui en parle.

Il y a une question que je me pose sur une autre fonctionnalité du PC-G850,
lorsque je tape sur les touches "2ndF" puis ")" pour obtenir "BASE-n",
j'ai un message de la mort :

BASIC DELETE OK? (Y)

J'ai pas osé repondre "Y" de peur à avoir à chercher partout après la
fonction "RESSUCITE BASIC" :D

Est-ce que tu as des infos sur ce que ça fait quand on répond "Y" ?

Paul

Avatar de l’utilisateur
Jamel
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 344
Inscription : 16 févr. 2006 17:07
Localisation : Orégon - USA

Message par Jamel » 06 nov. 2007 17:33

Salut Paul,

Cela doit le faire en effet – surtout si la vitesse d’exécution n’est pas primordiale. Tu peux même certainement écrire un programme sur PC/Mac qui prend une image et la convertie en chaine, et hop !

En ce qui concerne la HP-35S, elle est effectivement plus belle que les récents modèles. Cependant, il s’agit bien d’une HP-33S re-carrossée. Donc rien de très exceptionnel, sinon que comme toi, c’est ma façon de soutenir HP dans leurs tentatives de retours sous les feux de la rampe. Je suis très intéressé de voir si ils vont continuer et si ce retro-design va faire son chemin sur les hauts-de-gamme scientifiques et graphiques. A part cela, c’est une bonne machine – pas assez pour remplacer ma machine de tous les jours, mais cela pourrait arriver :)

Arrrggghhhh, malédiction (tu sais peut-être pas, mais j’ai un projet de bouquin sur les pockets programmables en langage C). Bon, ben tu vas positionner la barre et il ne me restera plus qu’a essayer de faire mieux ;-).

Pour ta question sur le PC-G850, en fait et de mémoire, il charge un programme BASIC en ROM (quelques dizaines de lignes) et écrase simplement ce que tu as déjà en mémoire programme. Tu peux lire et modifier (en plus de le runner) le listing du programme qui propose un ensemble d’utilitaires de conversion entre bases. Attention, le japonais est bienvenu car le programme te cause en kanji … mais bon, entre gens de bon goût, il est facile de s’y retrouver :)

A+, Jamel
- Jamel

Répondre

Revenir vers « Tous les Pockets »