Derniers sujets
» **NEW** EDGE for ORIC !!!!
Hier à 18:53 par drpsy

» ORIX : Release officielles de certains outils/soft
Sam 19 Aoû 2017 - 17:21 par drpsy

» [Jeu] - Athanor 2 la légende des hommes oiseaux
Sam 19 Aoû 2017 - 10:41 par maximus

» 3D isométrique et masques de sprites
Ven 18 Aoû 2017 - 8:01 par drpsy

» [Jeu] - Fer d'Amnukor (le) - Norsoft
Jeu 17 Aoû 2017 - 22:28 par Symoon

» outil de dessin Orixel en développement
Jeu 17 Aoû 2017 - 22:18 par Star42

» ORIC ATMOS sur LE BON COIN
Mer 16 Aoû 2017 - 20:02 par didierv

» rs
Mer 16 Aoû 2017 - 20:00 par didierv

» La flute inca Help ! Help! Demande de solution
Mer 16 Aoû 2017 - 14:08 par Invité

» Load Vader
Mar 15 Aoû 2017 - 16:42 par Symoon

Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 29 le Mer 25 Fév 2015 - 14:01
Connexion

Récupérer mon mot de passe

Statistiques
Nous avons 122 membres enregistrés
L'utilisateur enregistré le plus récent est TotoShampoin

Nos membres ont posté un total de 5570 messages dans 401 sujets
Portail ORIC




F83-Standard par Thierry Bestel

Voir le sujet précédent Voir le sujet suivant Aller en bas

F83-Standard par Thierry Bestel

Message  guy fortabat le Sam 8 Nov 2014 - 16:54

Bonjour,

Je reviens vers l'ATMOS 25 ans après, et je dois dire que je ne suis pas déçu par ce qui s'est passé depuis.
Mon premier réflexe a été de télécharger le F83-Standard, dont le travail d'unification documentaire par Thierry Bestel est époustoufflant !

Sur quelles machines:
- Sous Android avec GoOric (excellent) et le disque fourni par Thierry Bestel F83DEVF.DSK
- Sous Oricutron

Pourquoi le Forth ? Parce qu'une fois qu'on l'a sous la peau, impossible de s'en débarasser, ça colle fort !!!

Je ne sais pas s'il y a un ou plusieurs utilisateurs de ce logiciel, car j'aurai besoin d'éclaircissements sur la documentation qui est vraiment exemplaire, par exemple à quoi corresponds le mot "BOT" que l'on vois dans beaucoup de descriptions de mots (et oui sous forth, nous parlons de mots et de phrases :-)
Ces descriptions sont en assembleur, ce qui ne gâche rien; Quand à programmer en hybride (Forth + Assembleur, ou Basic + Assembleur), là j'ai besoin d'être tuyauté !

Voici le lien du site:

http://oric.free.fr/F83/f83m-1.html

Merci à vous tous d'être restés en lien autour de cette formidable machine !

Guy Fortabat
avatar
guy fortabat

Messages : 14
Date d'inscription : 08/11/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Sam 8 Nov 2014 - 18:39

Bonjour,

Je ne possède pas le F-83 mais la version Fig-Forth pour Oric.
De mémoire, BOT est l'abréviation de BOTTOM.
Ce n'est pas un mot mais une adresse mémoire qui indique le bas de la pile des données Forth.

Exemple:
Code:

CODE EXECUTE ( cfa -- )
BOT LDA, W STA, BOT 1+ LDA, W 1+ STA, INX, INX, W 1- JMP, ;C
Une fois remis dans le bon ordre:
Code:

LDA BOT      ; Récupère le poids faible de la valeur sur la pile Forth (le cfa)
STA W        ; Dans le poids faible du registre forth W
LDA BOT+1    ; Récupère le poids fort de la valeur sur la pile Forth
STA W+1      ; Dans le poids fort du registre forth W
INX          ; Mise à jour de l'offset pour la pile
INX
JMP W-1      ; Execution du cfa

Les 2 INX peuvent sembler bizares mais c'est parce que le registre X du 6502 est utilisé comme offset par rapport à BOT.
Le code assembleur réel est le suivant (extrait du Fig-Forth Oric):
Code:

LDA BOT,X    ; Récupère le poids faible de la valeur sur la pile Forth (le cfa)
STA W        ; Dans le poids faible du registre forth W
LDA BOT+1,X  ; Récupère le poids fort de la valeur sur la pile Forth
STA W+1      ; Dans le poids fort du registre forth W
INX          ; Mise à jour de l'offset pour la pile
INX
JMP W-1       ; Execution du cfa

Je pense que le F-83 auquel tu fais référence fonctionne de la même manière que le Fig-Forth (au moins pour les principes de base)
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Voilà qui éclaircit tout !

Message  guy fortabat le Sam 8 Nov 2014 - 18:49

Bonsoir,

Merci pour cette réponse qui déverrouille toutes les explications accompagnées de code ASM.
Il ne me reste plus qu'à éplucher et à m'habituer aux différents modes d'adressage du 6502.
Je n'ai pas vu de fig-forth pour Oric. Je vais rechercher. Cela fera autant d'information à croiser
avec ce que j'ai déjà.

Merci encore ,

Guy
avatar
guy fortabat

Messages : 14
Date d'inscription : 08/11/2014

Revenir en haut Aller en bas

PS:

Message  guy fortabat le Sam 8 Nov 2014 - 20:06

Y a t-il un dictionnaire d'adresses utilisées par le Fig ou le f83 ?
J'ai cherché Fig-Forth ORIC et je n'ai pas trouvé ....

Avec mes remerciements,
avatar
guy fortabat

Messages : 14
Date d'inscription : 08/11/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Sam 8 Nov 2014 - 20:24

Le Fig-Forth en question est celui qui a été distribué par ASN en France, si tu as un compte sur le site oric.org, il y en a une version ici que tu peux utiliser dans un émulateur Oric.

Il y a quelques différences entre cette version qui est une version 79 et la version F-83, certains mots ont été modifés et la structure des mots est un peu différente.

On peut trouver les sources pour le 6502 assez facilement sur le Net pour ces 2 versions.
SI l'anglais ne te pose pas de problèmes ce site devrait t'intéresser (les sources 6502 sont disponibles sur cette page)

Pour information, le noyau Forth fait moins de 1Ko de code assembleur, tout le reste est en Forth Very Happy
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Merci pour toutes ces infos !

Message  guy fortabat le Sam 8 Nov 2014 - 20:43

Et en prime les noyaux pour les autres processeurs sont présents !

avatar
guy fortabat

Messages : 14
Date d'inscription : 08/11/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  ]0[v] le Jeu 16 Mar 2017 - 10:31

J'ai lu que la taille du noyau forth en asm est de ca. 1KB, le reste etant définit en FORTH donc au final quequ'un serait combien ça "pése"? Question

avatar
]0[v]

Messages : 12
Date d'inscription : 09/08/2016

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Jeu 16 Mar 2017 - 11:11

Le noyau assembleur est effectivement très compact et peut même faire moins de 1Ko suivant le processeur.
Pour ce qui est de la taille finale, en fait ça dépend de ce que tu ajoutes ensuite.

A titre indicatif, celui vendu par ASN pour l'Oric faisait moins de 8Ko auquels il faut ajouter 8Ko de RAM pour les tampons de l'éditeur si tu l'utilises.
Je lui avais ajouté le suppport des lecteurs de disquettes Jasmin et cela n'avait pris que quelques dizaines d'octets supplémentaires.

L'un des avantages du Forth est que c'est toi qui décide des mots qu'ils doit contenir, tu peux donc en faire un sur mesure et supprimer tous les mots qui ne te servent pas.

Si tu cherches des sources assembleur 6502 pour un Forth, on peut en trouver facilement sur le Net (par exemple ici)
Je dois en avoir également quelque part sur mon disque dur.
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  ]0[v] le Jeu 16 Mar 2017 - 13:33

@assinie : merci!
j'ai trouvé une bonne piste ,  mais si tu as des trucs dispo je veux bien y jeter un oeil.  Wink
j'ai un petit niveau en forth mais c vrai que c puissant et compact donc parfaitement adapté à l'oric, quand tu vois la vitesse d'execution sur le "jupiter ace" c'est terrible de se dire que tous ces micro ont ete pollués par le basic!
Il y a un gars qui a fait "forthOS" c pas mal je trouve de s'inspirer de ça pour l'oric?...

La question que je me pose compare au basic c'est si la taille de la pile n'est pas un problème à tâche égale?
avatar
]0[v]

Messages : 12
Date d'inscription : 09/08/2016

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Jeu 16 Mar 2017 - 14:52

Faire un OS en Forth est assez simple.

Je vais télécharger l'iso de ForthOS pour voir ce qu'il y a dedans mais c'est pour un processeur Intel donc il faudrait refaire tout ce qui est en assembleur ce qui n'est pas forcément un gros travail suivant comment cela a été fait.

Pour l'Oric, je pense qu'on doit pouvoir trouver les sources de F83 ou du TéléForth du Téléstrat.
Je dois pouvoir générer et documenter les sources pour le Forth vendu par ASN que j'utilisais, de mémoire il est très proche du Fig-Forth 79 d'origine.

Ce qu'il faut faire ensuite, c'est ajouter des primitives assembleur pour accéder aux lecteurs de disquettes ou de SD, puis ajouter des mots Forth qui s'appuient dessus.
Les primitives dépendent uniquement du matériel (contrôleur disque) et les mots Forth s'appuient dessus.
Tu peux faire évoluer les deux pratiquement indépendamment, ce qui permet de s'adapter en fonction du matériel et/ou de l'OS (si la disquette doit être lisible sur un PC par exemple)

C'est comme ça que je pouvais lire des disquettes DOS, Atari ST, FT-Dos ou Sedoric avec mon Oric-1.

Si tu as besoin d'un coup de main, pas de problème Smile
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Jeu 16 Mar 2017 - 15:58


Pour la pile, ce n'est pas non plus vraiment un problème, Forth en utilise deux.
Une pour les données et l'autre pour les appels des différents mots.
La seconde est généralemenrt la même que celle du 6502, mais ce n'est pas le cas de la première (sauf erreur de ma part).

Globalement, l'appel d'un mot correspond à un JSR, donc, à moins d'avoir des appels récursifs en pagaille ou d'avoir une profondeur d'appel très importante, il n'y a aucun problème.
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  ]0[v] le Ven 17 Mar 2017 - 16:44

@assinie :
pour la pile je comprends c'est sûr on est pas en lisp du coup c'est pas critique.
Je pense que je saisit le truc des mots forth générique pour la gestion des I/O par example et un noyau en asm 6502 + couches de gestion dépendante du matériel? ainsi en changeant de matériel seul le noyau doit être modifié, j'ai bon là? Laughing
Le Forth c'est plus un divertissement (petit niveau pour l'instant) l'idée c'était de l'utiliser sur l'oric, je pense pas être en mesure de coder un OS, c'est un domaine que je connais pas, par contre j'aimerais bien apprendre mais je sais pas trop comment commencer?...
Ce que j'ai dans l'idée:
outils:
emulateur (e.g oricutron) car plus rapide pour tester
assembleur xa65 vs. cc65 (faut regarder objectivement les +/- de chacun)
Apprendre:
Comment modifier et regénerer une ROM pour intégrer/modifer des instructions

D'après ce que j'ai vu c'est très encourageant il y a un gars qui à produit un assembleur de 96 octets en forth! Donc du coup on pourrait mettre plus d'appli dans les 16K geek
On trouve pour le C64 un unix-like "Lunix" qui est vraiment pas mal donc je vais m'inspirer de ça et puis le gars a développer qq outils, donc ça semble être une bonne piste pour commencer ensuite il y a bien sûr le forum! Laughing




avatar
]0[v]

Messages : 12
Date d'inscription : 09/08/2016

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Ven 17 Mar 2017 - 22:37

\" a écrit:0[v] "] ainsi en changeant de matériel seul le noyau doit être modifié, j'ai bon là?
C'est exactement ça  Very Happy

En général, on utilise un méta-compilateur qui permet de re-créer un Forth complet (noyau + mots Forth) directement en Forth, de cette façon l'Oric peut se mettre à jour tout seul!
Par exemple, le premier démarrage du Forth vérifie sur quelle machine il s'exécute, Oric-1 ou Atmos, demande à l'utilisateur quelles extensions il veut inclure et génère la version finale adaptée.
On peut aussi utiliser le méta-compilateur sur un PC pour créer le binaire ou l'image ROM pour un Oric...

Si il s'agit uniquement de changer la partie "driver" pour un contrôleur de disquette par exemple, il y a une autre méthode qui peut être utilisée.
Pour cela, il faut utiliser un système de "mots vecteurs" dans les mots Forth pour appeler les routines de bas niveau.

C'est le même principe que les vecteurs utiisés par la ROM BASIC de l'Oric pour certaines fonctions: $23E-$23F pour l'imprimante,  $2F5-$2F6 pour !, ...

Si le contôleur est modifié, il suffit de modifier l'adresse vers laquelle pointe le vecteur.
Il existe des mots Forth qui permettent de définir et modifier de tels "mots vecteurs"
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  ]0[v] le Lun 20 Mar 2017 - 16:36

@assinie:
si tu as des sources concernant le forth en version k7 je suis preneur. J'ai pas trouvé grand chose jusqu'ici...
avatar
]0[v]

Messages : 12
Date d'inscription : 09/08/2016

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  didierv le Lun 20 Mar 2017 - 20:18

???
les versions tansoft et asn sont disponible sur le site oric.org

_________________
DidierV - CEO Mag
alias coco.oric sur Defence-Force
avatar
didierv

Messages : 468
Date d'inscription : 19/01/2014
Age : 54
Localisation : Nord de la France

http://www.dmacoco.fr

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  ]0[v] le Mar 21 Mar 2017 - 11:01

@didierv:
  j'ai bien trouvé différents forth de 16k a ca. 500K sur différent site mais il n'y a pas les sources du noyaux le reste des mots est bien en forth donc ça c'est ok. Après j'ai peu être pas assez fouiné? Wink

 j'ai bien trouvé ça : http://www.forth.org/fig-forth/fig-forth_6502.pdf ce qui semble être un bon début si les sources du noyau pour l'oric ne sont pas accesibles...
 Il est noté, dixit "Transportation to other systems only requires ; alteration of: XEMIT, XKEY, XQTER, XCR, and RSLW."
 Cependant l'adresse des pile, et le mapping memoire par rapport à celui de l'oric n'est pas le même donc il y a du travail de ce côté là, non? (ça serait trop facile sinon Smile"

Voici la doc associée aucode (http://wiki.yak.net/1089/fig-FORTH_Manuals_May79.pdf) ça aide Laughing


Dernière édition par ]0[v] le Mar 21 Mar 2017 - 17:09, édité 1 fois
avatar
]0[v]

Messages : 12
Date d'inscription : 09/08/2016

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Mar 21 Mar 2017 - 13:33

@ ]0[v]
Le PDF que tu as trouvé correspond à la version originale et est très proche de celle de l'Oric.
Je vais générer les sources assembleur + commentaires de la version ASN que je connais bien.

Je vous préviens dès que j'ai fini ça Smile
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  ]0[v] le Mar 21 Mar 2017 - 14:28

@assinie:
  Super, besoin d'aide?

si c'est pas trop long a expliqué bien sûr, te serait-il possible d'expliquer de manière succinte les points a modifier ensuite pour l'aspect pédagogique je m'essaierai aux modifications du code que j'ai trouvé.

En quoi le code d'"ASN' est-il différent de celui trouvé sur le site?
avatar
]0[v]

Messages : 12
Date d'inscription : 09/08/2016

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Mar 21 Mar 2017 - 18:55

Ca devrait aller, je te remercie.

Les différences concernent quelques primitives pour la gestion clavier/écran/K7 (soit ce qui est indiqué au début du PDF), ainsi que quelques mots supplémentaires.
L'adresse d'exécution est également différente $0400 pour l'Oric au lieu de $0200.

Pour le reste c'est pratiquement identique (même la partie pour le debug est présente!)

Le principe est assez simple, par exemple, la primitive XKEY d'origine est la suivante (page 67, ligne 3207)
Code:

XKEY: stx XSAVE
       jsr INCH      ; Appel en ROM pour le KIM qui attend l'appui sur une touche et retourne le code de la touche dans l'accumulateur
       ldx XSAVE
       jmp PUSH0A

Il faut donc modifier l'appel à INCH par un équivalent dans la ROM Oric si c'est possible, où ajouter une petite routine qui fasse la même chose.
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  iss le Mer 22 Mar 2017 - 9:19

Some more resources about forth for Oric:
http://oric-soft.bedroomlan.org/files/F83/

another implementation with sources:
http://passionoric.free.fr/fr/forth.htm
http://passionoric.free.fr/fr/download.htm

I like Forth too and hope this will help. Cool
avatar
iss

Messages : 35
Date d'inscription : 30/10/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  ]0[v] le Mer 22 Mar 2017 - 14:11

@iss:
bravo Well done! This is exactly what I was looking for. Obviously I didn't search enough...Embarassed
I wanted to implement it so as to replace the ugly slow basic. For this project they started from the documentation and code given in the link above.
In all case I don't if I will have at this time managed to go so far. I will study it and rebuild it from scratch to see if I have well understood the process Laughing

Let's play!

avatar
]0[v]

Messages : 12
Date d'inscription : 09/08/2016

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  assinie le Mar 11 Avr 2017 - 16:33

Bonjour,

Le fichier joint correspond à la version désassemblée avec quelques commentaires du contenu du fichier forth.tap disponible sur le site www.oric.org, il s'agit du Forth distribué par ASN.


Cette version n'est pas directement utilisable avec un assembleur à cause des labels que j'ai utilisé.
Je pense que que pour une étude du code Forth, un label du genre '?TERMINAL' ou ';' est plus lisible que 'QTERM' ou 'SEMIS'.

A noter la présence des outils de TRACE mais incorrects ainsi qu'une série de mots non accessibles et qui ne correspondent à rien à ma connaissance pour l'Oric (ces mots sont situés de $1DBA à $1F6C)
Le mot "MON" qui devrait permettre un retour au BASIC est incorrect et plante l'Oric, on peut le remettre en état en tapant ' MON DUP CFA ! ou HEX 1DB4 1DB2 ! mais on ne pourra pas revenir au Forth sans problèmes...

Je peux faire une version correcte pour un assembleur en respectant les labels d'origines du fig-forth si besoin.

Je mettrais bien tout ça sur un dépot Github mais je ne sais pas si j'ai le droit de le faire...

Remarque:
Le fichier tap présent sur le site est incomplet. La cassette d'origine comporte le source de l'editeur (7 écrans) à la suite du programme ainsi que le source de l'assembleur (5 écran), des extensions (7 écrans) et une démo "tunesmith" (4 écrans) sur la face B
Fichiers joints
Forth-ASN.zip Source forth ASNVous n'avez pas la permission de télécharger les fichiers joints.(39 Ko) Téléchargé 4 fois
avatar
assinie

Messages : 171
Date d'inscription : 09/02/2014

Revenir en haut Aller en bas

Re: F83-Standard par Thierry Bestel

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum