Derniers sujets
» CEO-MAG 324
Hier à 23:40 par kenneth

» Fumons un peu...
Sam 22 Avr 2017 - 22:50 par Symoon

» Rions un peu....
Sam 22 Avr 2017 - 19:21 par kiwilevrai

» Bienvenue dans le Forum des Oriciens
Ven 14 Avr 2017 - 10:48 par Jede

» Organisation RAM vidéo
Jeu 13 Avr 2017 - 21:39 par Davros

» mode HIRES et mémoire perdue ?
Jeu 13 Avr 2017 - 8:44 par didierv

» MISE EN PLACE DE L'ENVIRONNEMENT C
Mer 12 Avr 2017 - 16:13 par Davros

» F83-Standard par Thierry Bestel
Mar 11 Avr 2017 - 16:33 par assinie

» AC 2017: écrans Hires
Lun 10 Avr 2017 - 21:11 par Symoon

» Interface Son Oric ?
Lun 10 Avr 2017 - 20:42 par Davros

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 116 membres enregistrés
L'utilisateur enregistré le plus récent est Davros

Nos membres ont posté un total de 5239 messages dans 371 sujets
Portail ORIC




Programmation BASIC

Page 1 sur 3 1, 2, 3  Suivant

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

Programmation BASIC

Message  maximus le Sam 25 Jan 2014 - 13:30

Je me penche sur l'utilisation du BASIC, aussi j'ai téléchargé l'OSDK de DBug et ses outils
J'avais un souvenir de grande simplicité puisqu'il suffit de taper le code dans le notepad, puis d'utiliser bas2tap.exe pour créer une cassette utilisable dans l'émulateur.

Jusque là tout va bien, mais dans Oricutron, rien n'y fait, je reste bloqué sur Loading B
voila le screen




j'ai changé dans oricutron les options hardware, mais invariablement il bloque, en mettant le son, il semble que le fichier TAP soit incomplet, si qqu'un a une idée ??? j'ai windows 8 pour info.
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  Dom50 le Sam 25 Jan 2014 - 14:00

Essaie avec Euphoric  Smile 
avatar
Dom50

Messages : 623
Date d'inscription : 06/12/2012
Localisation : Normandie

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Sam 25 Jan 2014 - 14:16

Bingo !

nickel avec Euphoric  Very Happy 

NB: donc attention à Oricutron qui a encore du boulot pour être compatible ORIC  à 100% Wink 

merci Dom


Dernière édition par maximus le Sam 8 Fév 2014 - 11:15, édité 1 fois
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Sam 8 Fév 2014 - 11:14

ACCENTS

Bon avec les livres disponibles on trouve assez vite les réponses aux problèmes courants, mais je n'arrive pas à afficher les accents, ainsi é devient i, etc...

La table de caractère semble ignorer les accents, le BASIC Oric les ignore peut-être, après tout ça n'existe pas en anglais

Quelqu'un peut il m'expliquer la bonne méthode  ? Very Happy
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  kenneth le Dim 9 Fév 2014 - 14:15

Il n y a pas d' accentuation dans la table de caractères de ORIC No 
Il faut modifier par des POKE les tables de caractères peu utilisés (Livre sterling, accolades etc) pour les transformer en voyelles accentuées. (On le voit dans les listings des jeux d aventure en français, quand on fait LIST apres un reset, le texte est ponctué de caractères incongrus à l emplacement des lettres françaises) Cool
avatar
kenneth
Modérateur

Messages : 325
Date d'inscription : 13/01/2013
Age : 49
Localisation : 63

Revenir en haut Aller en bas

Virer le curseur

Message  maximus le Jeu 20 Fév 2014 - 15:40

Bon j'essaie de virer le curseur avec PRINT CHR$(17)

évidemment ç afonctionne, mais quand le programme revient sur l'instruction, il reapparait

Y a t il un moyen pour le virer une fois pour toute ?  Wink 
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

A Propos du Curseur

Message  Zodiac le Jeu 20 Fév 2014 - 20:20

Bonjour Maximus,

Je passais a tout hasard sur le forum et j'ai vu ta question.

A l'Adresse $026A (618 en décimal) si ma mémoire ne me fait pas défaut, dans le premier quartet de l'octet, les bits servent d'interrupteur pour le curseur, le bip clavier et autre.
Enfin si tu veux vraiment  le détail de cette adresse je consulterais mes vieilles fiches Oric.
ci joint un petit exemple qui touchera juste le curseur et pas les autres bits.

10 X = PEEK(618)
20 PRINT "PAS DE CURSEUR"
30 IF X AND 1 THEN POKE 618, X AND 254
40 GET A$
50 PRINT "CURSEUR"
60 X= PEEK(618)
70 IF NOT (X AND 1) THEN POKE 618,X+1

A+
avatar
Zodiac

Messages : 93
Date d'inscription : 27/01/2014
Localisation : Yvelines

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  Dom50 le Jeu 20 Fév 2014 - 20:31

maximus a écrit:
ACCENTS
Je n'arrive pas à afficher les accents, ainsi é devient i, etc...
La table de caractère semble ignorer les accents, le BASIC Oric les ignore peut-être, après tout ça n'existe pas en anglais
Quelqu'un peut il m'expliquer la bonne méthode  ? Very Happy

Si Tyrann 3 est prévu pour tourner sur disquette, SEDORIC 3 gère les accents.
Il faut taper l'instruction ACCENT SET en début de programme
la correspondance est alors:

Code ASCII   40  5C  7B  7C  7D  7E
ACCENT OFF @ \ { | }  
ACCENT SET à ç é ù è ê
avatar
Dom50

Messages : 623
Date d'inscription : 06/12/2012
Localisation : Normandie

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Jeu 20 Fév 2014 - 20:38

Very Happy hé merci Zodiac, Dbug m'a fait la même réponse  Wink 

Dom> pour l'instant je suis dans le BASIC pur et dur et sous format TAP

mais idéalement oui le format DSK serait idéal, tu m'expliqueras comment s'en servir  clown 
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

OUT OF MEMORY

Message  maximus le Mer 12 Mar 2014 - 12:48

Bon l'un des principaux problèmes de l'Oric c'est sa mémoire limitée

Comment faire pour liberer de la mémoire pdt l'éxécution d'un programme ? peut on tuer des variables en les vidant après usage ?

Mwala  clown 
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Vider les Variables

Message  Zodiac le Ven 14 Mar 2014 - 18:54

Bonjour Maximus,

Je viens de voir ton message, dans la majorité des basic l'instruction pour vider les variables est FRE (on appelle cela le garbage)
Pour l'Oric Voila ce que je te propose en basic, lorsque tu effectue beaucoup d'affectation du type x =x +15; y=y+20 alors place après un g=FRE("").
Le g est une variable mais tu peux prendre n'importe laquelle que tu n'utilise pas dans ton programme.

Bon courage et A+

avatar
Zodiac

Messages : 93
Date d'inscription : 27/01/2014
Localisation : Yvelines

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Sam 15 Mar 2014 - 12:26

Merci Zodiac pour ta réponse
j'ai fait qqs essais, mais je ne vois hélas pas de gain de mémoire Crying or Very sad  peut-être n'ai je pas compris

exemple de code:
Code:
50190 FOR I=1TO 19:READ ARM$(I):ITEM$(I)=ARM$(I):NEXTI:T=19:QQ=FRE("")
50205 FOR I=1TO 12:READ IMPACT(I):NEXTI
50210 FOR I=1TO 11:READ POT$(I):ITEM$(T+I)=POT$(I):NEXTI:T=T+11:QQ=FRE("")
50230 FOR I=1TO 11:READ OBJ$(I):ITEM$(T+I)=OBJ$(I):NEXTI:T=T+11:QQ=FRE("")
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Plus de MEMOIRE pour l'ORIC

Message  Zodiac le Sam 15 Mar 2014 - 15:21

Bonjour Maximus,

Je pense avoir compris ton problème.
Bon eh bien avec 48ko c'est sûr que c'est toujours compliqué.
Alors, il ne te reste qu'une solution; éviter le gaspillage d'octets.

Pour revenir à l'instruction 'FRE', tu as parfaitement compris.
Mais j'avoue que ce n'est pas une instruction très efficace d'ailleurs sur les autres machines également.

Pour bien utiliser FRE, voila ce qu'il faut faire.
------------------------------------------------------------------
1er Cas: ITEM$(1) = ARM$(1)  (inutile d'employer FRE)
------------------------------------------------------------------
2ème Cas : ITEM$(1) = ARM$(1)
          ITEM$(1) = ITEM$(1) + ARM$(2) (QQ=FRE("") fera effet)

Ce cas est aussi valable pour les variables numériques
Pourquoi QQ=Fre("") fera effet dans ce cas, eh bien du fait que le
premier ITEM$(1)=ARM$(1) n'est plus utile puisque ITEM$(1) vient
d'être réaffecté par le ITEM$(1)=ITEM$(1) + ARM$(2). Donc le premier
ITEM$(1) = ARM$(1) n'a pas lieu d'être gardé.
Tous les Basic font le ménage  dès qu'il manque de la mémoire et puis
ensuite le cas échéant envoie le message out of memory.
D'ailleurs lorsque le programme manque de mémoire et qu'il effectue
un garbage ou un FRE si tu veux; le programme basic ralentit du fait
du temps pris pour nettoyer les vieilles variables, donc il est pas
inutile de faire quelques FRE à des points cruciaux pour éviter un
trop long garbage.
------------------------------------------------------------------

Dans ton cas et avec l'explication ci-dessus, tu peux d'ores et déjà
conclure qu'il te manque de la mémoire et que tous les FRE du monde
ne t'aideront pas. Il ne te reste plus qu'une solution: la chasse au  
gaspi.

1ère méthode: si tu n'utilises pas le mode haute résolution HIRES,
tu peux récupérer un peu plus de 6ko en plaçant en début de programme
l'instruction 'GRAB'.
Tu peux faire l'essai en mode direct en tapant GRAB suivi de return
puis ?FRE("") suivi de return et dans un deuxième temps toujours en
mode direct RELEASE suivi de return, puis ?FRE("") suivi de return.

2ème méthode: eviter au maximum les redondances par exemple dans ton cas
ITEM$ reprend ARM$, POT$, OBJ$,donc on a avec ITEM$ une copie des données,
donc une double occupation.
Je te propose de garder ITEM$ simplement et d'affecter directement les données
dans ITEM$ et si tu veux par exemple les définir par catégorie dans ITEM$.
Tu fais par exemple ITEM$(1) = "A" + "?????"     (pour ARM$)
  "       "        ITEM$(20) = "P" + "?????"    (pour POT$)
                   ITEM$(32) = "O" + "?????"    (pour OBJ$)
Dans ce cas si ARM$(1) occupe 20 octets et bien tu gagnes 19 octets sur une ligne

Enfin il y a toujours une solution et lorsqu'on l'a trouvée, on se dit que
finalement ce n'était pas bien compliqué.

Voilà j'ai été un peux long, mais j'espère que cela t'aidera, si tu as besoin
d'un avis, n'hésite pas à me contacter.

Bonne journée, Maximus et A+.
avatar
Zodiac

Messages : 93
Date d'inscription : 27/01/2014
Localisation : Yvelines

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Sam 15 Mar 2014 - 20:16

Merci de tes conseils et n'hésite pas à être long  Very Happy 

Oui chssez le gaspi c'est le plus difficile pour un bricolo comme moi  Laughing 
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  kenneth le Dim 16 Mar 2014 - 11:30

Je crois que les variables "entières" prennent moins de place (
deux octets pour le contenu).
Si on a pas besoin de décimales on peut rajouter "pourcentage" a la suite de la variable.
ex
10 FOR A=1 TO 10
20 LV%=LV%+1
30 NEXT

PRINT FRE(0)

en essayant le programme avec et sans "pourcentage" j ai une difference de 2 octets pour une variable, c est déjà ca d'économisé... Very Happy
Inconvénient: la valeur ne peut exceder 32767.
A plus.
avatar
kenneth
Modérateur

Messages : 325
Date d'inscription : 13/01/2013
Age : 49
Localisation : 63

Revenir en haut Aller en bas

Cartouche ORIC

Message  Zodiac le Dim 16 Mar 2014 - 14:36

Bonjour kenneth,

Je pense que l'Oric comme tous les autres Ordi doit consommer 2 Octets pour les variables entières, tu as bien fait de le préciser à Maximus.
Mais l'objet de mon message n'est pas pour parler des variables entireres, mais tout simplement te féliciter pour ta réalisation que j'ai pu voir sur le forum.

Chapeau l'artiste.

Bonne journée A+
avatar
Zodiac

Messages : 93
Date d'inscription : 27/01/2014
Localisation : Yvelines

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Dim 16 Mar 2014 - 14:38

Salut Kenneth et merci de ton astuce

j'ai eu des résultats zarbis  Laughing  gain pour certaines variables et perte pour d'autres

merci les gars, j'en suis à 3000 octets de gagnés en 3 jours, je crois être au maxi là
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programation basic

Message  Zodiac le Dim 16 Mar 2014 - 15:01

Bonjour Maximus,

Kenneth a bien fait de t'orienter vers les variables numériques, effectivement les variables réels consomment beaucoup plus que les variables entières.
Bravo, une économie de 3000 octets tu as vraiment chassé le gaspi.

Bon courage A+
avatar
Zodiac

Messages : 93
Date d'inscription : 27/01/2014
Localisation : Yvelines

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  kenneth le Dim 16 Mar 2014 - 15:04

Zodiac a écrit:Bonjour kenneth,

Je pense que l'Oric comme tous les autres Ordi doit consommer 2 Octets pour les variables entières, tu as bien fait de le préciser à Maximus.
Mais l'objet de mon message n'est pas pour parler des variables entireres, mais tout simplement te féliciter pour ta réalisation que j'ai pu voir sur le forum.

Chapeau l'artiste.

Bonne journée A+
Merci. Dès que je reçois la carte version usine je posterais des photos détaillées de la 2e interface. Wink 
maximus a écrit:Salut Kenneth et merci de ton astuce

j'ai eu des résultats zarbis  Laughing  gain pour certaines variables et perte pour d'autres

merci les gars, j'en suis à 3000 octets de gagnés en 3 jours, je crois être au maxi là
Ca n' a peut être pas d'importance, mais il me semble aussi qu'avec ces variables, la machine "rame" un peu plus.. Suspect Very Happy 
avatar
kenneth
Modérateur

Messages : 325
Date d'inscription : 13/01/2013
Age : 49
Localisation : 63

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Mar 18 Mar 2014 - 19:22

Bon je reviens avec mon problème de mémoire, je pense qu'il n'y a qu'une solution, couper le programme en 2 ou 3 fichiers
mais bon des fichier TAP est ce vraiment l'idéal ? ne vaut il pas mieux créer une disquette ?

Bref vous feriez comment ?
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programation basic

Message  Zodiac le Mar 18 Mar 2014 - 20:22

Bonsoir Maximus,

Sur AppleII, il y' a certains jeux qui fonctionne comme cela.
Au fil des niveaux du jeu, le programme charge d'autres morceaux de code.
Moi, je pense que si tu  coupes ton programme en plusieurs morceaux et qu'au chargement de chaqu'un des morceaux, tu mets une image d'attente comme pour montrer que tu passes à un autre niveau ça le fera.

Bon courage et A+
avatar
Zodiac

Messages : 93
Date d'inscription : 27/01/2014
Localisation : Yvelines

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  Dom50 le Mar 18 Mar 2014 - 20:29

Maximus a écrit:des fichier TAP est ce vraiment l'idéal ? ne vaut il pas mieux créer une disquette ?
Salut Maxi,
Il n'y a pas d’inconvénient à créer plusieurs fichiers Tap qui s’enchaînent. ( Tyrann et le Fer d'Amnukor sont fait comme cela à l'origine).

Les fichiers sur disquettes sont plus pratiques seulement si on doit les recharger plusieurs fois au court d'une partie.

Je parle "sur émulateur" bien sûr, car autrement, il n'y a pas photo le chargment de fichiers sur disquette sera bien plus rapide sur un oric Réel Smile
avatar
Dom50

Messages : 623
Date d'inscription : 06/12/2012
Localisation : Normandie

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Mar 18 Mar 2014 - 21:12

Merci à vous 2 , je n'ai pas d'autre choix, (mon code doit être pourri  Laughing )

J'utilise OSDK donc des fichiers TXT convertis en TAP, comment alors les mettre sur un disque DSK ?
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  kiwilevrai le Mar 18 Mar 2014 - 22:32

Bonsoir Maximus,

Lorsque je veux ajouter des fichiers .TAP à une disquette (sous Euphoric), je charge le SEDORIC dans le lecteur A.

Je charge ensuite les fichiers .TAP un part un avec cload et je les sauvegarde un part un sur ma disquette SEDORIC avec la commande :

SAVE "nomduprogramme",A#dddd,E#ffff,AUTO

nomduprogramme --> nom du programme à sauvegarder
A#dddd --> dddd = adresse en hexadécimal de début du programme .tap
E#ffff --> ffff = adresse en hexadecimal de fin du programme .tap
AUTO -->  si tu veux que le programme se lance en auto après chargement.

Ex :
1) CLOAD "partie.tap"
2) Recherche de l'adresse de début et de fin du programme partie.tap
3) SAVE "partie1",A#500,E#2000,AUTO (Sauve le programme nommé "partie1' qui commence en $500 (hexa) et fini en $2000(hexa) avec lancement automatiquement en fin de chargement)

Au final j'obtiens des fichiers .COM sur la disquette.

Je ne sais pas si j'ai bien expliqué le principe, il se fait un peu tard  et le clavier ne répond plus très bien  Very Happy  Very Happy  Very Happy 

A plus.
avatar
kiwilevrai

Messages : 131
Date d'inscription : 11/03/2014
Localisation : Nord

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  maximus le Mer 19 Mar 2014 - 0:25

Merci ton tutoriel est limpide, n'ayant jamais eu de lecteur de disquette ORIC, je suis un peu largué, ainsi il m'a fallu du temps pour comprendre qu'il fallait: insérer un disque vierge ET le formater avec INIT B  Embarassed 

précision: il ne semble pas obligatoire de rentrer les adresses mémoires

ainsi en tapant SAVE"B-laby", il me sauve un fichier laby.com sur le lecteur B


Dernière édition par maximus le Dim 23 Mar 2014 - 9:32, édité 1 fois
avatar
maximus

Messages : 1079
Date d'inscription : 02/12/2012
Age : 56
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Re: Programmation BASIC

Message  Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 3 1, 2, 3  Suivant

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