Sharp PC-G850V
Modérateur : Politburo
-
- Fonctionne à 300 bauds
- Messages : 105
- Enregistré le : 26 nov. 2015 11:09
- Localisation : Wiltz ( Luxembourg)
Sharp PC-G850V
Bonsoir tout le monde,
Je viens juste d'acheter sur ´eBay Japon', un Sharp PC-G850V.
Visiblement, il est possible de le programmer en C....
Ça va me rappeler ma jeunesse!
Je viens juste d'acheter sur ´eBay Japon', un Sharp PC-G850V.
Visiblement, il est possible de le programmer en C....
Ça va me rappeler ma jeunesse!
- meridian
- Fonctionne à 1200 bauds
- Messages : 1151
- Enregistré le : 29 oct. 2014 05:08
- Localisation : Seine-Saint-Denis
Re: Sharp PC-G850V
c'est mon pocket préféré, il a un super écran, un clavier très agréable.
Le seul défaut que je lui trouve c'est que l'on ne puisse pas étendre la ram.
Le seul défaut que je lui trouve c'est que l'on ne puisse pas étendre la ram.
-
- Fonctionne à 1200 bauds
- Messages : 445
- Enregistré le : 14 mai 2010 19:15
Re: Sharp PC-G850V
Son défaut majeur est qu'il est très difficile de trouver de la documentation technique, à moins de savoir lire le Japonais.
C'est très dommage, parce que de mémoire, il fait le Basic, le C, l'assembleur Z80, et peut même servir à programmer des PIC.
C'est très dommage, parce que de mémoire, il fait le Basic, le C, l'assembleur Z80, et peut même servir à programmer des PIC.
- meridian
- Fonctionne à 1200 bauds
- Messages : 1151
- Enregistré le : 29 oct. 2014 05:08
- Localisation : Seine-Saint-Denis
Re: Sharp PC-G850V
Jamais trouvé comment programmer les pics.
Pour le Japonais, reverso a souvent été mon ami
Le gros problème aussi c'est que de nombreux sites et blogs ont fermé...
Pour le Japonais, reverso a souvent été mon ami
Le gros problème aussi c'est que de nombreux sites et blogs ont fermé...
-
- Fonctionne à 300 bauds
- Messages : 105
- Enregistré le : 26 nov. 2015 11:09
- Localisation : Wiltz ( Luxembourg)
Re: Sharp PC-G850V
Je l'attends avec une grande impatience!
J'imagine que je passerai de longues soirées à essayer de le comprendre et de le programmer.
J'espere que je pourrai compter sur votre aide en cas de problèmes ...
J'imagine que je passerai de longues soirées à essayer de le comprendre et de le programmer.
J'espere que je pourrai compter sur votre aide en cas de problèmes ...
- badaze
- Fonctionne à 14400 bauds
- Messages : 8410
- Enregistré le : 12 févr. 2007 18:36
- Localisation : Pas très loin de Lyon
- Contact :
Re: Sharp PC-G850V
Tu l'as acheté chez qui ?
Tout est bon dans le pocket.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.
Moi j'aime tout.... Casio, HP, Sharp, TI et les autres sauf que les TI semblent ne pas m'aimer
http://www.emmella.fr
Mes Casio - HP - Sharp - TI
Homme invisible.
-
- Fonctionne à 300 bauds
- Messages : 105
- Enregistré le : 26 nov. 2015 11:09
- Localisation : Wiltz ( Luxembourg)
Re: Sharp PC-G850V
Sur eBay, à ´Japan_Quality_Company'
-
- Fonctionne à 300 bauds
- Messages : 105
- Enregistré le : 26 nov. 2015 11:09
- Localisation : Wiltz ( Luxembourg)
Re: Sharp PC-G850V
Je dois vous avouer que je n'ai pas tout lu à propos de cette machine, ce qui me met dans le doute concernant le manuel d'utilisation.
J'ai cru comprendre qu'il était assez compliqué de trouver des infos sur le G850V....
Existe-t-il un manuel d'utilisation en Anglais? cette machine n'a, tout de même, pas été produite uniquement pour le Japon ???
J'ai cru comprendre qu'il était assez compliqué de trouver des infos sur le G850V....
Existe-t-il un manuel d'utilisation en Anglais? cette machine n'a, tout de même, pas été produite uniquement pour le Japon ???
- Professeur_Octopus
- Fonctionne à 1200 bauds
- Messages : 882
- Enregistré le : 17 oct. 2003 23:38
- Localisation : Ormeignies Hainaut (Belgique)
- Contact :
Re: Sharp PC-G850V
Salut Marc
Mais ça reste quand même un des pockets les plus aboutis et puissants. Un must-have !
Bon amusement,
Octopus, poulpe en C
Ben ... SIMarc556 a écrit :Je dois vous avouer que je n'ai pas tout lu à propos de cette machine, ce qui me met dans le doute concernant le manuel d'utilisation.
J'ai cru comprendre qu'il était assez compliqué de trouver des infos sur le G850V....
Existe-t-il un manuel d'utilisation en Anglais? cette machine n'a, tout de même, pas été produite uniquement pour le Japon ???
Mais ça reste quand même un des pockets les plus aboutis et puissants. Un must-have !
Bon amusement,
Octopus, poulpe en C
Re: Sharp PC-G850V
Bonsoir
Cela pourra peut-être t'aider un peu, si tu ne l' a pas
déjà trouvé.
http://fr.normand.free.fr/ordipoche/article.pdf
Cela pourra peut-être t'aider un peu, si tu ne l' a pas
déjà trouvé.
http://fr.normand.free.fr/ordipoche/article.pdf
Ti(s) 60, 62 Galaxy, 66, 67 Galaxy, 68, 74 Basical 80, 81, 82, 83+, 83 CE, 84+SE, 85, 86, 89, 89 titanium, 92, 95 Procalc, v200, nSpire cx
Hp(s) 35s, 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, E500, El 5120, 9200, 9600
Canon X-07
Hp(s) 35s, 41CX, 28S, 48g, 50g, 39gII, Prime G1 et G2,
Casio(s) fx 602P, 702P, 4000P, 4500P, 6000G, 6900G, 7700G, 8500g, PB-700, CG-20, Graph 95 sd
Psion(s)II LZ64, siena, s3a, s3mx, s5mx.
Sharp(s) pc-1350, 1403, 1500A, E500, El 5120, 9200, 9600
Canon X-07
-
- Fonctionne à 1200 bauds
- Messages : 445
- Enregistré le : 14 mai 2010 19:15
Re: Sharp PC-G850V
Ben oui, c'est tout ce qu'on peut trouver en Français...
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: Sharp PC-G850V
Tu peux toujours poser des questions ici.
Quelques uns ont bien planché sur cette machine et peuvent répondre.
Quelques uns ont bien planché sur cette machine et peuvent répondre.
-
- Fonctionne à 1200 bauds
- Messages : 445
- Enregistré le : 14 mai 2010 19:15
Re: Sharp PC-G850V
Il y a beaucoup de questions, et plutôt techniques :
Quelle est la cartographie mémoire ?
Quels sont les appels système ?
Trouver le service manual, avec les schémas et la reproduction des circuits imprimés...
Est-ce que le mode d'emploi est identique, totalement ou partiellement, avec les 'cousins' PC1600, PCE220 ?
Ou est-ce que quelqu'un maîtrisant le Japonais a traduit la doc ?
Parce que moi aussi, j'ai essayé avec Reverso et Google trad, mais on obtient un charabia pseudo-Français, qu'on peut décrypter sur certains passages du texte, mais qui reste obscur pour le reste...
Quelle est la cartographie mémoire ?
Quels sont les appels système ?
Trouver le service manual, avec les schémas et la reproduction des circuits imprimés...
Est-ce que le mode d'emploi est identique, totalement ou partiellement, avec les 'cousins' PC1600, PCE220 ?
Ou est-ce que quelqu'un maîtrisant le Japonais a traduit la doc ?
Parce que moi aussi, j'ai essayé avec Reverso et Google trad, mais on obtient un charabia pseudo-Français, qu'on peut décrypter sur certains passages du texte, mais qui reste obscur pour le reste...
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: Sharp PC-G850V
Pour la cartographie mémoire c'est page 384 du manuel
La MEM commence en 8000H
Le MEV en 100H
0~100H : Zone réservée
Instruction ORG pour reservation LM
Quelques appels :
ATTENTE D'UNE TOUCHE
--------------------
10 PRINT "PRESS ANY KEY"
20 CALL 48381
30 PRINT "THANK YOU"
10 CALL 48381
20 PRINT INKEY$ ;
30 GOTO 10
10 CALL 48381
20 K$=INKEY$
30 IF K$="" GOTO 10
40 PRINT K$;
50 GOTO 10
LOGIQUE
-------
A=(B=3)
IF A=1 THEN A=0 ELSE A=1
A=1 XOR A
A=-(A=0)
A=1-A
10 A=0
20 A=1-A
30 PRINT A
40 CALL 48381
50 GOTO 20
A=(A+1) MOD 5
10 A=0
20 A=(A+1) MOD 5
30 PRINT A
40 CALL 48381
50 GOTO 20
TEXTE
-----
10 IF A=0 THEN PRINT "EASY"
20 IF A=1 THEN PRINT "NORMAL"
30 IF A=2 THEN PRINT "HARD"
PRINT MID$("ABCDE",3,2)
PRINT MID$("EASY NORMALHARD",A*6+1,6)
PRINT MID$ ("EASYNORMALHARD",(A=2)*-2+A*4+1,(A=0)*2+6)
AUTRE
-----
10 LCOPY
10 LCOPY
20 ABCDE
----------
ASSEMBLEUR
----------
10 ORG 100H
20 LD B,11
30 LD DE,0204H
40 LD HL,WORD
50 CALL 0BFF1H
60 RET
70WORD:DB 'Hello,world'
10 #define H 0x7800
20 main(){
30 int j;
40 for(j=0;j<8;j++)printf(" %2X",peek(j+H));
50 for(j=0;j<8;j++){gotoxy(j*3+2,1);putchar(peek(j+H));}
60 }
ORG 0100H
; ラストアンサーに文字列を入れるためのフォーマット
LD HL,FORMAT
LD DE,79A0H
LD BC,7
LDIR
; 文字列の長さを設定
LD A,STRL
LD (79A7H),A
RET
FORMAT: DB 0,0,0,0,0D0H
DW STR
STR: DB 'Pocket'
STRL EQU 6
L'ordre du G850 BASIC LINE [[GPRINT 』』 et il ya des instructions graphiques liés, tels que
Ces déclarations sont valables seulement BASIC, et les graphiques des commandes telles que le langage machine
SHARP a été publié dans IOCS n'est pas inclus.
Après la dernière fois, G850 dans le système graphique IOCS introduit les sous-programmes utilisés dans le vent.
Liste des sources pour voir, je me demande pourquoi est-ce? "Et trop penser à
S'il vous plaît essayez de l'utiliser si l'occasion se présente pour le moment.
Vous remarquerez que si vous lisez le dernier
Cette liste des sources, G815 dispose d'un peu plus longtemps que la source de la liste.
Parce que, G850 série G850, G850S, G850V Il existe trois types,
ROM est légèrement différente pour chacune des matières de l'adresse va changer ainsi l'exécution.
Alors, comment fonctionne correctement dès le début dans la série G850
Le programme comprend également la détermination des modèles dans la liste des sources
J'ai longtemps été la source de la liste en conséquence.
Note: Ce sous-programme G850, G850S, G850V seulement!
La série G850 S'il vous plaît ne pas utiliser d'autres modèles.
POINT
Registre d'entrée
E: X coordonnées 0~ 143 (~ 00H 8FH)
D: Y 0 coordonnées 0~ 47 (00H ~ 2FH)
registre de sortie
A: 1=point allumé, 0=point éteint
Commentaire
Coordonnée X registre E, D coordonnées dans le registre Y 』POI [lorsque l'Appel,
Si les feux de point de coordonnées [1 dans le registre d'entrée dans le A,
Non point lumineux champ si vous avez plus ou coordonner les
Un registre contient
POI:LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S1 ;┃DETERMINATION DU
LD A,0CDH ;┃MODELE DE G850
JR S2 ;┃
S1: LD A,0CBH ;┃
S2: LD (N1+1),A ;┛
LD H,0
LD L,E
LD E,D
LD D,0
CALL N1
AND C
RET Z
LD A,1
RET
N1: CALL 9300H
DB 0EH
DW 0CA08H
RET
PSET / PRESET
Registre d'entrée
E: Coordonné X 0~ 143 (~ 00H 8FH)
D: Coordonné Y 0~ 47 (00H ~ 2FH)
A: Effacement du point= 0, Affichage du point = 1 ; Inversion du point = 2
Commentaire
E coordonner les registres X, Y D registre de mettre les coordonnées [SET 』Puis appelez
Et le point est allumé, et peuvent être effacées.
Un registre des points [0 』off vous
[1 dans le registre un solide point de la
Un certain nombre de deux registres seront mis en évidence à la dot.
SET:PUSH AF
LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S3 ;┃DETERMINATION DU
LD A,0CDH ;┃MODELE DE G850
JR S4 ;┃
S3: LD A,0CBH ;┃
S4: LD (N2+1),A ;┛
POP AF
LD H,0
LD L,E
LD E,D
LD D,0
LD (7967H),HL
LD (7969H),DE
LD IX,0FFFFH
LD (777DH),IX
LD (777FH),A
CALL N2
RET
N2: CALL 9300H
DB 0DH
DW 0C595H
RET
LINE
Registre d'entrée
HL: Coordonnée X de l’origine de la ligne -32768 X ~ 32767 (8000H ~ 7FFFH)
DE: Coordonnée Y de l’origine de la ligne -32768 ~ 32767 (8000H ~ 7FFFH)
IX: Coordonnée X de la fin de la ligne -32768 32767 (8000H ~ 7FFFH)
IY: Coordonnée Y de la fin de la ligne 32767 (8000H ~ 7FFFH)
A: Effacement du point= 0, Affichage du point = 1 ; Inversion du point = 2
B: Ligne = 0, Rectangle=1, Rectangle= 2
Commentaire
Entrez le numéro de registre et les coordonnées de chaque individu LIN [』puis un appel
Et tracer la ligne entre la source et de destination, vous pouvez décrire un rectangle avec des lignes diagonales début et la fin.
B 』registre tracer une ligne entre 0 [points de début et de fin et à
[B 1 dans le registre de décrire un rectangle en diagonale vers le début et la fin.
registres B en deux, deux et remplir le rectangle avec diagonale représentant le début et la fin.
Un registre des points [0 』off vous
[1 dans le registre un solide point de la
Un registre de numéro deux est mis en évidence lorsque le point.
Notes
BASIC LINE de l'instruction, mais peut être omis de tirer quelques lignes,
Dans ce sous-programme, s'il vous plaît mettez toutes les données de registre d'entrée à chaque fois.
LIN:PUSH AF
LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S5 ;┃
LD A,0CDH ;┃DETERMINATION DU
JR S6 ;┃MODELE DE G850
S5: LD A,0CBH ;┃
S6: LD (N3+1),A ;┃
LD (N4+1),A ;┃
LD (N5+1),A ;┛
POP AF
LD (7967H),IX
LD (7969H),IY
LD IX,0FFFFH
LD (777DH),IX
LD (777FH),A
LD A,B
CP 1
JR C,P0
JR Z,P1
CALL N5
RET
P0: CALL N3
RET
P1: CALL N4
RET
N3: CALL 9300H
DB 0DH
DW 0C595H
N4: CALL 9300H
DB 0DH
DW 0C442H
N5: CALL 9300H
DB 0DH
DW 0C4CBH
RET
Exemple de programme
LD HL,100 ;┓
LD DE,4 ;┃(1)
LD IX,120 ;┃Tracer une ligne
LD IY,31 ;┃ Entre (100,4)et(120,31)
LD A,1 ;┃
LD B,0 ;┃
CALL LIN ;┛
LD HL,-3 ;┓
LD DE,-6 ;┃(2)
LD IX,55 ;┃(-3,-6)と(55,18)を対角線とする
LD IY,18 ;┃ 四角形を書く
LD A,1 ;┃
LD B,1 ;┃
CALL LIN ;┛
LD HL,40 ;┓
LD DE,10 ;┃(3)
LD IX,72 ;┃(40,10)と(72,24)を対角線とする
LD IY,24 ;┃ 四角形を書き、中を塗りつぶす
LD A,1 ;┃
LD B,2 ;┃
CALL LIN ;┛
LD HL,75 ;┓
LD DE,0 ;┃(4)
LD IX,45 ;┃(75,0)と(45,50)を結ぶ
LD IY,50 ;┃ 直線を引く
LD A,2 ;┃ ただし直線は画面に対して反転する
LD B,0 ;┃
CALL LIN ;┛
RET
GCURSOR / GPRINT
Registre d'entrée
IX: GCURSOR la coordonnée X de -32768 ~ 32767 (8000H ~ 7FFFH)
IY: GCURSOR coordonnée Y de -32768 ~ 32767 (8000H ~ 7FFFH)
HL: Lieu de départ des données graphiques
B: points horizontaux Gurafukkudeta 1 ~ 144 (~ 01H 90H)
Commentaire
Mettez l'adresse HL début du registre que vous souhaitez afficher des données graphiques,
Les instructions de la même manière GCURSOR BASIC IX, IY s'inscrire et d'entrer les coordonnées
GPR [CALL 』pour voir les graphiques alors.
Notes
Les coordonnées des GCURSOR, affichage graphique de base ainsi que l'instruction sera [』inférieure gauche.
Le modèle de données graphiques en format peu
BASIC GPRINT qu'ils respectent l'ordre, montrent que joue dans [CALL 0BFD0H
S'il vous plaît noter le motif de bits, les formats de données différents.
Pour plus d'informations, des instructions écrites sur le G850, GPRINT S'il vous plaît lisez la description de l'instruction.
GPR:LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S7 ;┃DETERMINATION DU
LD A,0CDH ;┃MODELE DE G850
JR S8 ;┃
S7: LD A,0CBH ;┃
S8: LD (N6+1),A ;┛
LD (79DBH),IX
LD (79DDH),IY
L1: XOR A
LD (777FH),A
LD A,(HL)
PUSH BC
PUSH HL
CALL N6
POP HL
INC HL
POP BC
DJNZ L1
RET
N6: CALL 9300H
DB 0EH
DW 0C92EH
RET
Exemple de programme
LD IX,20 ;X座標は20
LD IY,17 ;Y座標は17
LD B,12 ;グラフィックの横の長さは12ドット
LD HL,BOX ;グラフィックデータの開始アドレスを読み込む
CALL GPR ;『GPRINT』IOCSをCALL
RET ;
BOX:DB 1EH ;┓
DB 9CH ;┃
DB 5CH ;┃
DB 3CH ;┃
DB 5CH ;┃
DB 9CH ;┃グラフィックのデータ
DB 1CH ;┃CALL 0BFD0H用とは異なるので注意!
DB 88H ;┃
DB 0EBH ;┃
DB 3FH ;┃
DB 0BCH ;┃
DB 0F0H ;┛
La MEM commence en 8000H
Le MEV en 100H
0~100H : Zone réservée
Instruction ORG pour reservation LM
Quelques appels :
ATTENTE D'UNE TOUCHE
--------------------
10 PRINT "PRESS ANY KEY"
20 CALL 48381
30 PRINT "THANK YOU"
10 CALL 48381
20 PRINT INKEY$ ;
30 GOTO 10
10 CALL 48381
20 K$=INKEY$
30 IF K$="" GOTO 10
40 PRINT K$;
50 GOTO 10
LOGIQUE
-------
A=(B=3)
IF A=1 THEN A=0 ELSE A=1
A=1 XOR A
A=-(A=0)
A=1-A
10 A=0
20 A=1-A
30 PRINT A
40 CALL 48381
50 GOTO 20
A=(A+1) MOD 5
10 A=0
20 A=(A+1) MOD 5
30 PRINT A
40 CALL 48381
50 GOTO 20
TEXTE
-----
10 IF A=0 THEN PRINT "EASY"
20 IF A=1 THEN PRINT "NORMAL"
30 IF A=2 THEN PRINT "HARD"
PRINT MID$("ABCDE",3,2)
PRINT MID$("EASY NORMALHARD",A*6+1,6)
PRINT MID$ ("EASYNORMALHARD",(A=2)*-2+A*4+1,(A=0)*2+6)
AUTRE
-----
10 LCOPY
10 LCOPY
20 ABCDE
----------
ASSEMBLEUR
----------
10 ORG 100H
20 LD B,11
30 LD DE,0204H
40 LD HL,WORD
50 CALL 0BFF1H
60 RET
70WORD:DB 'Hello,world'
10 #define H 0x7800
20 main(){
30 int j;
40 for(j=0;j<8;j++)printf(" %2X",peek(j+H));
50 for(j=0;j<8;j++){gotoxy(j*3+2,1);putchar(peek(j+H));}
60 }
ORG 0100H
; ラストアンサーに文字列を入れるためのフォーマット
LD HL,FORMAT
LD DE,79A0H
LD BC,7
LDIR
; 文字列の長さを設定
LD A,STRL
LD (79A7H),A
RET
FORMAT: DB 0,0,0,0,0D0H
DW STR
STR: DB 'Pocket'
STRL EQU 6
L'ordre du G850 BASIC LINE [[GPRINT 』』 et il ya des instructions graphiques liés, tels que
Ces déclarations sont valables seulement BASIC, et les graphiques des commandes telles que le langage machine
SHARP a été publié dans IOCS n'est pas inclus.
Après la dernière fois, G850 dans le système graphique IOCS introduit les sous-programmes utilisés dans le vent.
Liste des sources pour voir, je me demande pourquoi est-ce? "Et trop penser à
S'il vous plaît essayez de l'utiliser si l'occasion se présente pour le moment.
Vous remarquerez que si vous lisez le dernier
Cette liste des sources, G815 dispose d'un peu plus longtemps que la source de la liste.
Parce que, G850 série G850, G850S, G850V Il existe trois types,
ROM est légèrement différente pour chacune des matières de l'adresse va changer ainsi l'exécution.
Alors, comment fonctionne correctement dès le début dans la série G850
Le programme comprend également la détermination des modèles dans la liste des sources
J'ai longtemps été la source de la liste en conséquence.
Note: Ce sous-programme G850, G850S, G850V seulement!
La série G850 S'il vous plaît ne pas utiliser d'autres modèles.
POINT
Registre d'entrée
E: X coordonnées 0~ 143 (~ 00H 8FH)
D: Y 0 coordonnées 0~ 47 (00H ~ 2FH)
registre de sortie
A: 1=point allumé, 0=point éteint
Commentaire
Coordonnée X registre E, D coordonnées dans le registre Y 』POI [lorsque l'Appel,
Si les feux de point de coordonnées [1 dans le registre d'entrée dans le A,
Non point lumineux champ si vous avez plus ou coordonner les
Un registre contient
POI:LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S1 ;┃DETERMINATION DU
LD A,0CDH ;┃MODELE DE G850
JR S2 ;┃
S1: LD A,0CBH ;┃
S2: LD (N1+1),A ;┛
LD H,0
LD L,E
LD E,D
LD D,0
CALL N1
AND C
RET Z
LD A,1
RET
N1: CALL 9300H
DB 0EH
DW 0CA08H
RET
PSET / PRESET
Registre d'entrée
E: Coordonné X 0~ 143 (~ 00H 8FH)
D: Coordonné Y 0~ 47 (00H ~ 2FH)
A: Effacement du point= 0, Affichage du point = 1 ; Inversion du point = 2
Commentaire
E coordonner les registres X, Y D registre de mettre les coordonnées [SET 』Puis appelez
Et le point est allumé, et peuvent être effacées.
Un registre des points [0 』off vous
[1 dans le registre un solide point de la
Un certain nombre de deux registres seront mis en évidence à la dot.
SET:PUSH AF
LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S3 ;┃DETERMINATION DU
LD A,0CDH ;┃MODELE DE G850
JR S4 ;┃
S3: LD A,0CBH ;┃
S4: LD (N2+1),A ;┛
POP AF
LD H,0
LD L,E
LD E,D
LD D,0
LD (7967H),HL
LD (7969H),DE
LD IX,0FFFFH
LD (777DH),IX
LD (777FH),A
CALL N2
RET
N2: CALL 9300H
DB 0DH
DW 0C595H
RET
LINE
Registre d'entrée
HL: Coordonnée X de l’origine de la ligne -32768 X ~ 32767 (8000H ~ 7FFFH)
DE: Coordonnée Y de l’origine de la ligne -32768 ~ 32767 (8000H ~ 7FFFH)
IX: Coordonnée X de la fin de la ligne -32768 32767 (8000H ~ 7FFFH)
IY: Coordonnée Y de la fin de la ligne 32767 (8000H ~ 7FFFH)
A: Effacement du point= 0, Affichage du point = 1 ; Inversion du point = 2
B: Ligne = 0, Rectangle=1, Rectangle= 2
Commentaire
Entrez le numéro de registre et les coordonnées de chaque individu LIN [』puis un appel
Et tracer la ligne entre la source et de destination, vous pouvez décrire un rectangle avec des lignes diagonales début et la fin.
B 』registre tracer une ligne entre 0 [points de début et de fin et à
[B 1 dans le registre de décrire un rectangle en diagonale vers le début et la fin.
registres B en deux, deux et remplir le rectangle avec diagonale représentant le début et la fin.
Un registre des points [0 』off vous
[1 dans le registre un solide point de la
Un registre de numéro deux est mis en évidence lorsque le point.
Notes
BASIC LINE de l'instruction, mais peut être omis de tirer quelques lignes,
Dans ce sous-programme, s'il vous plaît mettez toutes les données de registre d'entrée à chaque fois.
LIN:PUSH AF
LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S5 ;┃
LD A,0CDH ;┃DETERMINATION DU
JR S6 ;┃MODELE DE G850
S5: LD A,0CBH ;┃
S6: LD (N3+1),A ;┃
LD (N4+1),A ;┃
LD (N5+1),A ;┛
POP AF
LD (7967H),IX
LD (7969H),IY
LD IX,0FFFFH
LD (777DH),IX
LD (777FH),A
LD A,B
CP 1
JR C,P0
JR Z,P1
CALL N5
RET
P0: CALL N3
RET
P1: CALL N4
RET
N3: CALL 9300H
DB 0DH
DW 0C595H
N4: CALL 9300H
DB 0DH
DW 0C442H
N5: CALL 9300H
DB 0DH
DW 0C4CBH
RET
Exemple de programme
LD HL,100 ;┓
LD DE,4 ;┃(1)
LD IX,120 ;┃Tracer une ligne
LD IY,31 ;┃ Entre (100,4)et(120,31)
LD A,1 ;┃
LD B,0 ;┃
CALL LIN ;┛
LD HL,-3 ;┓
LD DE,-6 ;┃(2)
LD IX,55 ;┃(-3,-6)と(55,18)を対角線とする
LD IY,18 ;┃ 四角形を書く
LD A,1 ;┃
LD B,1 ;┃
CALL LIN ;┛
LD HL,40 ;┓
LD DE,10 ;┃(3)
LD IX,72 ;┃(40,10)と(72,24)を対角線とする
LD IY,24 ;┃ 四角形を書き、中を塗りつぶす
LD A,1 ;┃
LD B,2 ;┃
CALL LIN ;┛
LD HL,75 ;┓
LD DE,0 ;┃(4)
LD IX,45 ;┃(75,0)と(45,50)を結ぶ
LD IY,50 ;┃ 直線を引く
LD A,2 ;┃ ただし直線は画面に対して反転する
LD B,0 ;┃
CALL LIN ;┛
RET
GCURSOR / GPRINT
Registre d'entrée
IX: GCURSOR la coordonnée X de -32768 ~ 32767 (8000H ~ 7FFFH)
IY: GCURSOR coordonnée Y de -32768 ~ 32767 (8000H ~ 7FFFH)
HL: Lieu de départ des données graphiques
B: points horizontaux Gurafukkudeta 1 ~ 144 (~ 01H 90H)
Commentaire
Mettez l'adresse HL début du registre que vous souhaitez afficher des données graphiques,
Les instructions de la même manière GCURSOR BASIC IX, IY s'inscrire et d'entrer les coordonnées
GPR [CALL 』pour voir les graphiques alors.
Notes
Les coordonnées des GCURSOR, affichage graphique de base ainsi que l'instruction sera [』inférieure gauche.
Le modèle de données graphiques en format peu
BASIC GPRINT qu'ils respectent l'ordre, montrent que joue dans [CALL 0BFD0H
S'il vous plaît noter le motif de bits, les formats de données différents.
Pour plus d'informations, des instructions écrites sur le G850, GPRINT S'il vous plaît lisez la description de l'instruction.
GPR:LD A,(93CDH) ;┓
CP 0E5H ;┃
JR NZ,S7 ;┃DETERMINATION DU
LD A,0CDH ;┃MODELE DE G850
JR S8 ;┃
S7: LD A,0CBH ;┃
S8: LD (N6+1),A ;┛
LD (79DBH),IX
LD (79DDH),IY
L1: XOR A
LD (777FH),A
LD A,(HL)
PUSH BC
PUSH HL
CALL N6
POP HL
INC HL
POP BC
DJNZ L1
RET
N6: CALL 9300H
DB 0EH
DW 0C92EH
RET
Exemple de programme
LD IX,20 ;X座標は20
LD IY,17 ;Y座標は17
LD B,12 ;グラフィックの横の長さは12ドット
LD HL,BOX ;グラフィックデータの開始アドレスを読み込む
CALL GPR ;『GPRINT』IOCSをCALL
RET ;
BOX:DB 1EH ;┓
DB 9CH ;┃
DB 5CH ;┃
DB 3CH ;┃
DB 5CH ;┃
DB 9CH ;┃グラフィックのデータ
DB 1CH ;┃CALL 0BFD0H用とは異なるので注意!
DB 88H ;┃
DB 0EBH ;┃
DB 3FH ;┃
DB 0BCH ;┃
DB 0F0H ;┛
- charognard
- Fonctionne à 9600 bauds
- Messages : 4412
- Enregistré le : 06 juin 2007 19:28
- Localisation : Indre et loire
- Contact :
Re: Sharp PC-G850V
Exemple d'injection d'assembleur dans du C
320 /*fonction inkey**/
330 /*****************/
340 unsigned int key(unsigned char* code,unsigned char* ascii){
350 unsigned int touche;
360 touche=call((int)"\xCD\x53\xBE\x6F\xCD\x56\xBE\x67 /*le code assembleur de la routine*/
370 *code=touche; /*le code de la touche*/
380 *ascii=touche>>8; /*sa valeur à ski*/
390 if(touche)return 1; /*on retourne 1 si une touche est pressée*/
400 else return 0; /*sinon 0*/
410 }
Appel exemple :
touche=key(&code,&ascii);
610 if(touche&lache){
620 switch(ascii){
630 case 8: ....
320 /*fonction inkey**/
330 /*****************/
340 unsigned int key(unsigned char* code,unsigned char* ascii){
350 unsigned int touche;
360 touche=call((int)"\xCD\x53\xBE\x6F\xCD\x56\xBE\x67 /*le code assembleur de la routine*/
370 *code=touche; /*le code de la touche*/
380 *ascii=touche>>8; /*sa valeur à ski*/
390 if(touche)return 1; /*on retourne 1 si une touche est pressée*/
400 else return 0; /*sinon 0*/
410 }
Appel exemple :
touche=key(&code,&ascii);
610 if(touche&lache){
620 switch(ascii){
630 case 8: ....