[Philips] VG5000 Forth
Modérateurs : Papy.G, fneck, Carl
Re: [Philips] VG5000 Forth
Un grand merci à Daniel, le curseur vient de disparaitre.
http://forthretro.new.fr/download/forthbeta02.zip
(Suivre les memes orientations pour l'installation que la version beta01)
Il ne me reste plus qu'à écrire une notice, ainsi qu'une commande pour retourner au basic, afin que vous profitiez un peu plus de ce compilateur.
A l'attention de ceux qui ont manifesté leur désir de regarder Forth avec un peu plus d'attention : Vous ne pouvez pas savoir la joie que cela me procure !
Ce compilateur version B est tout ce qu'il y a de plus simple et de plus réduit en Forth (il tient de 5500 à 60d0). En fait c'est le 'noyau du Forth' c'est à dire le strict minimum. Il n'est pas 100 % compatible avec le fameux standard FigForth, bien qu'il en soit proche. Ce qui est tout à fait extraordinaire avec Forth, en plus de sa rapidité et du fait d'être aussi compact est qu'on va l'enrichir petit à petit. Un peu comme si nous n'avions acheté qu'une carrosserie, 4 roues, un volant et un moteur et qu'on veuille en faire un bolide de luxe avec toutes les options, GPS, clim, airbag etc..
- Après avoir écrit la notice, je passerai au compilateur FigForth
http://forthretro.new.fr/download/forthbeta02.zip
(Suivre les memes orientations pour l'installation que la version beta01)
Il ne me reste plus qu'à écrire une notice, ainsi qu'une commande pour retourner au basic, afin que vous profitiez un peu plus de ce compilateur.
A l'attention de ceux qui ont manifesté leur désir de regarder Forth avec un peu plus d'attention : Vous ne pouvez pas savoir la joie que cela me procure !
Ce compilateur version B est tout ce qu'il y a de plus simple et de plus réduit en Forth (il tient de 5500 à 60d0). En fait c'est le 'noyau du Forth' c'est à dire le strict minimum. Il n'est pas 100 % compatible avec le fameux standard FigForth, bien qu'il en soit proche. Ce qui est tout à fait extraordinaire avec Forth, en plus de sa rapidité et du fait d'être aussi compact est qu'on va l'enrichir petit à petit. Un peu comme si nous n'avions acheté qu'une carrosserie, 4 roues, un volant et un moteur et qu'on veuille en faire un bolide de luxe avec toutes les options, GPS, clim, airbag etc..
- Après avoir écrit la notice, je passerai au compilateur FigForth
Re: [Philips] VG5000 Forth
Très bien, et quelle rapidité de developpement
- Carl
- Modérateur
- Messages : 13253
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [Philips] VG5000 Forth
Bravo Dominique
le simulateur de clavier serait un plus pour injecter un listing :
le simulateur de clavier serait un plus pour injecter un listing :
Code : Tout sélectionner
: \ 0 word drop ; immediate
\ Heat Seeker
\ A game for the Jupiter Ace
\ Copyright (C) 2009 Marcos Cruz (http://programandala.net)
\ License: http://programandala.net/license
\ Based on "Chase", by Andrew Curtis, 1983:
\ http://www.jupiter-ace.co.uk/listing_PCWeekly_830127p18.html
\ History
\ 2009-06-15 First version.
\ 2009-06-16 Inner loop a bit simplified.
forth definitions decimal
\ Man
10 variable ym
15 variable xm
ascii x constant man_char
ascii 5 constant left
ascii 6 constant up
ascii 7 constant down
ascii 8 constant right
: at_man ( -- ) ym @ xm @ at ;
: .man ( -- ) at_man man_char emit ;
: -man ( -- ) at_man space ;
: key ( c -- u ) inkey = 2 * ;
: man>x ( -- ) xm @ left key - right key + 1 max 30 min xm ! ;
: man>y ( -- ) ym @ up key - down key + 1 max 20 min ym ! ;
: man> ( -- ) man>x man>y ;
: man ( -- ) -man man> .man ;
\ Missile
1 variable yr
1 variable xr
ascii * constant rocket_char
: at_rocket ( -- ) yr @ xr @ at ;
: .rocket ( -- ) at_rocket rocket_char emit ;
: -rocket ( -- ) at_rocket space ;
: +coord ( coord1 coord2 -- coord3 ) over > + ;
: -coord ( coord0 coord1 coord2 -- coord3 ) < negate + ;
: rocket>y ( -- ) yr @ ym @ +coord ym @ yr @ -coord yr ! ;
: rocket>x ( -- ) xr @ xm @ +coord xm @ xr @ -coord xr ! ;
: rocket> ( -- ) rocket>x rocket>y ;
: rocket ( -- ) -rocket rocket> .rocket ;
\ Instructions
: .about ( -- )
cr ." Heat Seeker"
cr
cr ." Copyright (C) 2009 Marcos Cruz"
cr ." http://programandala.net"
cr ." License:"
cr ." http://programandala.net/license"
;
: .key ( c -- ) emit space ;
: .keys ( -- ) left .key up .key down .key right .key ;
: .player ( c -- ) ascii ( emit emit ascii ) emit ;
: .objective ( -- )
cr ." The objective is to dodge the"
cr ." heat guided missile (" rocket_char .player ascii ) emit
cr ." for as long as possible."
cr ." You ( " man_char .player ." ) can move twice as"
cr ." fast as the missile but it can"
cr ." move diagonally..."
;
: .start ( -- ) cr ." Type RUN and press ENTER." ;
: .press ( -- ) cr ." Press any key to start." ;
: pause ( -- ) begin inkey until ;
: .instructions ( -- ) cr ." Control keys: " .keys cr .objective ;
\ Init
: page ( -- ) cls invis ;
: init_coords ( -- ) 10 ym ! 15 xm ! 1 dup yr ! xr ! ;
: init_round ( -- ) cls init_coords ;
: init_game ( -- ) page .about cr .instructions cr .press pause cls ;
\ Yes/No
: lowercase ( c1 -- c2 ) 32 or ;
: y/n= ( c1 -- c2 f ) lowercase dup ascii y = over ascii n = or ;
: y/n ( -- c ) 0 begin drop inkey y/n= until ;
: more? ( -- f ) 11 13 at ." More?" y/n ascii y = ;
\ End
: (blast) ( -- ) .man 64 0 do loop .rocket ;
: blast ( -- ) 256 0 do (blast) loop -rocket ;
: end ( -- ) cls ." Bye!" vis ;
: game_over ( -- ) blast 10 11 at ." Game Over" 250 1000 beep ;
\ Main
: bleep ( -- ) 250 70 beep ;
: leave? ( -- f ) more? 0= ;
: crash? ( -- f ) ym @ yr @ = xm @ xr @ = and ;
: (round) ( -- ) bleep man rocket ;
: round ( -- )
init_round begin (round) crash? until game_over
;
: heat_seeker ( -- ) init_game begin round leave? until end ;
: run ( -- ) heat_seeker ;
page .about cr .start
Re: [Philips] VG5000 Forth
Hé hé hé, Carl
Je vois que tu es passé voir les amis de Jupiter Ace.
Il me faut d'abord trouver un moyen d'enregistrer notre compilateur au fur et à mesure que nous lui rajoutons des mots dans son dictionnaire.
J'ai envi d'aller au plus rapide : un retour au Basic et de là faire un CSAVEM du compilateur agrémenté des nouvelles commandes.
L'idéal serait bien entendu de faire un CSAVE et un CLOAD à partir du Forth. Mais on verra plus tard.
Chiche pour Heat Seeker !
(OBS : Marcos Cruz est un brésilien, comme quoi au Brésil on a été à bonne école. Là bas nous nous nourrissions d'une revue très bien faite - Micro Sistemas -)
Je vois que tu es passé voir les amis de Jupiter Ace.
Il me faut d'abord trouver un moyen d'enregistrer notre compilateur au fur et à mesure que nous lui rajoutons des mots dans son dictionnaire.
J'ai envi d'aller au plus rapide : un retour au Basic et de là faire un CSAVEM du compilateur agrémenté des nouvelles commandes.
L'idéal serait bien entendu de faire un CSAVE et un CLOAD à partir du Forth. Mais on verra plus tard.
Chiche pour Heat Seeker !
(OBS : Marcos Cruz est un brésilien, comme quoi au Brésil on a été à bonne école. Là bas nous nous nourrissions d'une revue très bien faite - Micro Sistemas -)
Re: [Philips] VG5000 Forth
J'imagine que le simulateur permet de saisir le texte dans un fichier txt.Carl a écrit :
le simulateur de clavier serait un plus pour injecter un listing :
Mais je ne vois pas comment l'injecter dans le VG5000 ni où.
Orientations svp
Re: [Philips] VG5000 Forth
Le retour au basic est en fait beaucoup plus simple qu'il ne semblait au départ :
1 - On va créer deux mots très utiles qui sont HEX et DECIMAL. Forth possède une variable, appelée BASE
qui, comme son nom l'indique est la base numérique. Pour travailler avec des hexadécimaux il faut mettre
10 dans la base, et pour travailler avec des décimaux il faut mettre 0A (puisque par défaut nous sommes en hexa).
Voici comment faire :
CLS <NL> \ histoire de nettoyer l'écran
: HEX 10 BASE ! ;
: DECIMAL 0A BASE ! ;
2 - Comme on l'a vu dans les messages précédents on a désactivé les interruptions par la commande en LM 'DI'
Pour revenir au BASIC il faudra les re activer ce qui se fait par 'EI' (code FB)
3 - Comme Forth se sert de la pile SP, j'avais enregistré au départ l'adresse de SP dans la variable à l'adresse 5526h
- instruction LD (5526h), SP
On fera l'inverse soit LD SP, (5526h) - ED 7B 26 55
4 - Le livre sur 'les clefs du VG5000' conseille de préserver le registre HL au départ pour le récupérer avant de revenir au Basic.
Pour cette raison je fais un PUSH HL - E5 au départ du compilateur. Il suffira de faire un POP HL - E1.
5 - Il ne reste plus qu'à faire RETURN - C9 pour revenir au Basic.
Ecrivons avec le Forth le programme en LM
CREATE BASIC FB C, ED C, 7B C, 5526 , E1 C, C9 C,
6 - Nous aurons besoin, pour enregistrer le compilateur de l'adresse 5500h en décimales.
HEX 5500 DECIMAL . <NL> 21760
et de sa longueur.
La variable du Forth HERE, donne l'adresse de fin du compilateur (auquel nous avons rajouté des mots)
Donc, pour calculer la longueur du compilateur, faire
HEX \revenons en hexa
HERE 5500 - DECIMAL . <NL> 3080
on note l'adresse de départ et la longueur, on fait
BASIC <NL>
1 - On va créer deux mots très utiles qui sont HEX et DECIMAL. Forth possède une variable, appelée BASE
qui, comme son nom l'indique est la base numérique. Pour travailler avec des hexadécimaux il faut mettre
10 dans la base, et pour travailler avec des décimaux il faut mettre 0A (puisque par défaut nous sommes en hexa).
Voici comment faire :
CLS <NL> \ histoire de nettoyer l'écran
: HEX 10 BASE ! ;
: DECIMAL 0A BASE ! ;
2 - Comme on l'a vu dans les messages précédents on a désactivé les interruptions par la commande en LM 'DI'
Pour revenir au BASIC il faudra les re activer ce qui se fait par 'EI' (code FB)
3 - Comme Forth se sert de la pile SP, j'avais enregistré au départ l'adresse de SP dans la variable à l'adresse 5526h
- instruction LD (5526h), SP
On fera l'inverse soit LD SP, (5526h) - ED 7B 26 55
4 - Le livre sur 'les clefs du VG5000' conseille de préserver le registre HL au départ pour le récupérer avant de revenir au Basic.
Pour cette raison je fais un PUSH HL - E5 au départ du compilateur. Il suffira de faire un POP HL - E1.
5 - Il ne reste plus qu'à faire RETURN - C9 pour revenir au Basic.
Ecrivons avec le Forth le programme en LM
CREATE BASIC FB C, ED C, 7B C, 5526 , E1 C, C9 C,
6 - Nous aurons besoin, pour enregistrer le compilateur de l'adresse 5500h en décimales.
HEX 5500 DECIMAL . <NL> 21760
et de sa longueur.
La variable du Forth HERE, donne l'adresse de fin du compilateur (auquel nous avons rajouté des mots)
Donc, pour calculer la longueur du compilateur, faire
HEX \revenons en hexa
HERE 5500 - DECIMAL . <NL> 3080
on note l'adresse de départ et la longueur, on fait
BASIC <NL>
Dernière modification par Dominique le 24 mars 2010 00:23, modifié 1 fois.
Re: [Philips] VG5000 Forth
et dans le Basic (après avoir chargé la K7)
CSAVEM "FORB", 21760, 3080
CSAVEM "FORB", 21760, 3080
Re: [Philips] VG5000 Forth
Bravo Dominique
Pour que le retour au Basic soit parfait, il reste peut-être à remettre le curseur
La simulation du clavier dans dcvg5k permet de lire un fichier texte et de positionner les bits des ports 0x80-0x87 comme l'appui sur une touche, en fonction du caractère lu. Normalement ce mécanisme doit permettre la saisie automatique d'un programme dans l'éditeur Forth. J'ai ajusté la vitesse de frappe aux possibilités de l'éditeur Basic. Si elle est trop rapide pour le Forth je peux la diminuer.
Suite à ce regain d'intérêt pour le Forth, j'ai mis sur le site dcmoto, à la page http://dcmoto.free.fr/onlinedoc/index.html , le livre Initiation au Forth S.E.F.I. de Cedic Nathan. Il est destiné aux machines Thomson, mais les concepts sont probablement identiques à ceux du Forth VG5000
Pour que le retour au Basic soit parfait, il reste peut-être à remettre le curseur
La simulation du clavier dans dcvg5k permet de lire un fichier texte et de positionner les bits des ports 0x80-0x87 comme l'appui sur une touche, en fonction du caractère lu. Normalement ce mécanisme doit permettre la saisie automatique d'un programme dans l'éditeur Forth. J'ai ajusté la vitesse de frappe aux possibilités de l'éditeur Basic. Si elle est trop rapide pour le Forth je peux la diminuer.
Suite à ce regain d'intérêt pour le Forth, j'ai mis sur le site dcmoto, à la page http://dcmoto.free.fr/onlinedoc/index.html , le livre Initiation au Forth S.E.F.I. de Cedic Nathan. Il est destiné aux machines Thomson, mais les concepts sont probablement identiques à ceux du Forth VG5000
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- Carl
- Modérateur
- Messages : 13253
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [Philips] VG5000 Forth
merci Dominique pour cette nouvelle version et les commentaires qui vont avec car je découvre la chose...
Merci Daniel pour le bouquin...
Dominique, à chaque fois que tu ajoutes des nouvelles fonctions, il faut faire un csavem, comment détérmines tu la longueur (ex :3080 octets) ?
pourquoi ne pas mettre lors du CSAVEM "FORB", 21760, 3080, 22062
afin que le forth démarre en auto...
carl
Merci Daniel pour le bouquin...
Dominique, à chaque fois que tu ajoutes des nouvelles fonctions, il faut faire un csavem, comment détérmines tu la longueur (ex :3080 octets) ?
pourquoi ne pas mettre lors du CSAVEM "FORB", 21760, 3080, 22062
afin que le forth démarre en auto...
carl
Re: [Philips] VG5000 Forth
Carl a écrit :Dominique, à chaque fois que tu ajoutes des nouvelles fonctions, il faut faire un csavem, comment détérmines tu la longueur (ex :3080 octets) ?
Salut Carl
1 - Pour calculer la longueur du compilateur, qui augmentera au fur et à mesure que nous y rajouterons du vocabulaire :
La variable HERE ( taper simplement HERE <NL> met au sommet de la pile la prochaine adresse de compilation disponible. On peut la connaitre donc comme ça (ne pas oublier les espaces)
Code : Tout sélectionner
HEX HERE . <NL> 6108 OK
Code : Tout sélectionner
HERE 5500 - . <NL> C08 OK
Code : Tout sélectionner
HEX HERE 5500 - DECIMAL . <NL> 3080 OK
Code : Tout sélectionner
HEX C08 DECIMAL . <NL> 3080 OK
j'avais essayé, mais ça me donnait une erreur (genre ligne inconnue, je ne me souviens pas)Carl a écrit : pourquoi ne pas mettre lors du CSAVEM "FORB", 21760, 3080, 22062
afin que le forth démarre en auto...
Tu y es arrivé ?
J'ai pensé mettre un appel depuis le BASIC, et il suffisait de faire un RUN
Code : Tout sélectionner
20 CALL &"562E"
Re: [Philips] VG5000 Forth
C'est pour ça que dans la nouvelle version beta, la routine qui désactive et reactive le curseur sera la suivante, A contenant la valeur 2E ou 6E selon le casDaniel a écrit :Pour que le retour au Basic soit parfait, il reste peut-être à remettre le curseur
Code : Tout sélectionner
push AF
3e20 ld a,20h ;20=Status
d38f out (8fh),a
3e82 ld a,82h ;82=Indirect
d3cf out (0cfh),a
cd8602 call 0286h ; attente EF9345 pret
3e29 ld a,29h ;29=Data register R1 + exec request
d38f out (8fh),a
pop AF ; 2e ou 6e
d3cf out (0cfh),a ;ecriture dans R1 + commande IND
De toute façon, et pour être logique, je vais la modifier comme ci dessus dans la prochaine version
Merci pour le lien, je vais regarder ça.Daniel a écrit :
La prochaine étape sera :
- Faire l'éditeur Forth pour taper, corriger et compiler nos programmes
- Avec cet éditeur on pourra mettre le jeu qu'a donné Carl.
Au sujet de ton interface "simulation clavier" j'y vois des possibilités fascinantes de pouvoir dialoguer avec le Forth via le fichier Text.
Cependant, et nous en parlerons bientôt, en plus des caractères ASCII, Forth a besoin de la longueur de la chaine.
Par exemple :
Si j'ai tapé les commandes :
Code : Tout sélectionner
HEX HERE 5500 . <NL>
10 00 48 45 58 20 48 45 52 45 20 35 35 30 30 20 2E 20 FF
10 00 est la longueur de la chaine
48 45 58 etc... sont les caractères ASCII de la commande
FF marque la fin de la chaine.
Obs : ne te fixe pas sur l'adresse 4ffe, Forth est parfaitement paramétrable et, à partir de Forth lui même, on peut modifier l'adresse du Buffer. C'est d'ailleurs le principe de l'éditeur Forth : On change l'adresse du buffer qu'on met où on veut, on fait un autre buffer à la suite, puis un autre etc... Comme ça on a un brouillon modifiable. divisé en plusieurs lignes, puis on lui dit de compiler les lignes les unes après les autres. Mais le format de la chaine de chaque buffer est toujours la même avec longueur de la chaine et FF en fin
Re: [Philips] VG5000 Forth
Nouvelle version
http://forthretro.new.fr/download/forthbeta03.zip Corrigé
http://forthretro.new.fr/download/forthbeta04.zip
principaux points :
1 - Modifications de la routine du curseur et retour au BASIC selon dit plus haut. corrigé
2 - Modif de l'adresse du compilateur. Je l'ai baissé de l'adresse 5500 à 5200 (le Buffer toujours à 5000).
200 me semble largement suffisant pour le buffer et nous gagnons 300 en mémoire haute, ce qui est important pour le 16 K
3 - Voir fichier txt joint dans le zip pour les nouvelles adresses.
Pour enregistrer, prendre note que l'adresse de début est devenue 5200 et non plus 5500 !!
4 - Nous sommes tout près de la version définitive. Cependant je voudrai remanier l'affichage afin de re intégrer la fameuse ligne 0 (voir discussion précédentes)
5 - Ce soir des tonnes de vocabulaire à intégrer à ce noyau pour en faire un compilateur digne de ce nom
http://forthretro.new.fr/download/forthbeta03.zip Corrigé
http://forthretro.new.fr/download/forthbeta04.zip
principaux points :
1 - Modifications de la routine du curseur et retour au BASIC selon dit plus haut. corrigé
2 - Modif de l'adresse du compilateur. Je l'ai baissé de l'adresse 5500 à 5200 (le Buffer toujours à 5000).
200 me semble largement suffisant pour le buffer et nous gagnons 300 en mémoire haute, ce qui est important pour le 16 K
3 - Voir fichier txt joint dans le zip pour les nouvelles adresses.
Pour enregistrer, prendre note que l'adresse de début est devenue 5200 et non plus 5500 !!
4 - Nous sommes tout près de la version définitive. Cependant je voudrai remanier l'affichage afin de re intégrer la fameuse ligne 0 (voir discussion précédentes)
5 - Ce soir des tonnes de vocabulaire à intégrer à ce noyau pour en faire un compilateur digne de ce nom
Re: [Philips] VG5000 Forth
http://forthretro.new.fr/download/forthbeta05A.zip
Deux fichiers inclus :
Un beta05A (juste le noyau corrigé d'un bug, avec le mot BASIC pour revenir au Basic)
Un Forthp3 qui comprend un premier vocabulaire qui le rend + complet.
Ce Forthp3. est le beta05A avec tout le vocabulaire qui suit.
Pour obtenir le vocabulaire disponible dans le forthp3 :
VLIST <NL>
Vocabulaire inclus à partir du noyau (Définitions en mode HEX)....
***************
http://img179.imageshack.us/img179/9739/vocp1.jpg
**************
Forth soit avec vous
Deux fichiers inclus :
Un beta05A (juste le noyau corrigé d'un bug, avec le mot BASIC pour revenir au Basic)
Un Forthp3 qui comprend un premier vocabulaire qui le rend + complet.
Ce Forthp3. est le beta05A avec tout le vocabulaire qui suit.
Pour obtenir le vocabulaire disponible dans le forthp3 :
VLIST <NL>
Vocabulaire inclus à partir du noyau (Définitions en mode HEX)....
***************
http://img179.imageshack.us/img179/9739/vocp1.jpg
Code : Tout sélectionner
: IMMEDIATE ENTRY DUP DUP C@ 1+ + DUP @ CURRENT @ ! COMPILER @ SWAP ! COMPILER ! ;
: DO 59B6 DO, ; IMMEDIATE
: LOOP 5A14 END, ; IMMEDIATE
: BEGIN HERE ; IMMEDIATE
: UNTIL *# *END END, ; IMMEDIATE
: WHILE *# *IF DO, 0 C, ; IMMEDIATE
: REPEAT SWAP *# *WHILE END, HERE OVER - SWAP C! ; IMMEDIATE
: FORGET CURRENT @ CONTEXT ! ' DUP BEGIN COMPILER @ OVER OVER < WHILE DUP C@ + 1+ @ COMPILER ! REPEAT DROP 2 - @ CURRENT @ ! DP @ C@ 3 + - DP ! ;
: DECIMAL 0A BASE ! ;
: HEX 10 BASE ! ;
Code : Tout sélectionner
: +LOOP 5A38 END, ; IMMEDIATE
: LEAVE 5A42 , ; IMMEDIATE
: ." *# *( , 22 TOKEN HERE C@ 1+ DP +! ; IMMEDIATE
: MIN OVER OVER > IF SWAP THEN DROP ;
: MAX OVER OVER < IF SWAP THEN DROP ;
: ALLOT DP +! ;
: / 0 SWAP D/MOD DROP ;
CREATE OR E1 C, D1 C, 7D C, B3 C, 6F C, 7C C, B2 C, 67 C, E5 C, NEXT
CREATE NOT E1 C, 7D C, B4 C, 11 C, 0 , 20 C, 01 C, 1C C, D5 C, NEXT
: /MOD 0 SWAP D/MOD SWAP ;
Code : Tout sélectionner
CREATE AT E1 C, D1 C, AF C, 7B C, C6 C, 08 C, 67 C, 2C C, 22 C, 5258 , NEXT
: LIST DUP DUP 2 - @ + SWAP DO I C@ EMIT LOOP ;
CREATE LIST-WORD E1 C, 5E C, 23 C, CD C, 5517 , 23 C, 5E C, 23 C, 56 C, D5 C, NEXT
: LIST-VOC 17 0 AT CR CR BEGIN LIST-WORD DUP 0= NOT IF 17 14 AT LIST-WORD THEN KEY DROP CR DUP 0= UNTIL DROP ;
: VLIST CR ENTRY LIST-VOC CR CR COMPILER @ LIST-VOC CR ;
Forth soit avec vous
Dernière modification par Dominique le 24 mars 2010 22:41, modifié 1 fois.
- Carl
- Modérateur
- Messages : 13253
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: [Philips] VG5000 Forth
C'est beau ! (mais il dit que c'est pas disponible)Carl a écrit :Bravo
Je me languis de le voir marcher pour de vrai.... Si quelqu'un peut m'indiquer comment transformer K7 en WAV....
Dans le fichier TXT , j'ai commis une erreur. la définition de ." c'est
Code : Tout sélectionner
: ." *# *( , 22 TOKEN HERE C@ 1+ DP +! ; IMMEDIATE
J'sais pas pourquoi j'ai écrit 0B à la place de 22, puisque le caractère " c'est 22.
En passant je viens de finir le mot INKEY - pas de jeu sans INKEY
Code : Tout sélectionner
CREATE INKEY C5 C, AF C, 67 C, E5 C, CD C, 02A7 , CB C, AF C, E1 C, 6F C, C1 C, E5 C, NEXT
Si vous faites une boucle genre :
Code : Tout sélectionner
: TESTE 100 0 DO INKEY . LOOP ;