Forum Oric
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Derniers sujets
» rs
Programmation BASIC EmptyDim 31 Mar 2024 - 14:35 par kenneth

» Bla Bla général du Jury
Programmation BASIC EmptyJeu 21 Mar 2024 - 8:51 par Dom50

» carte mère Oric (re)tracée
Programmation BASIC EmptyMar 5 Mar 2024 - 18:54 par kenneth

» Meurtre à Grande Vitesse
Programmation BASIC EmptyDim 25 Fév 2024 - 5:09 par Iurius

» ORIC-1 sur LE BON COIN
Programmation BASIC EmptyVen 23 Fév 2024 - 23:01 par Mcar

» ORIC ATMOS sur LE BON COIN
Programmation BASIC EmptyDim 4 Fév 2024 - 12:06 par kiwilevrai

» Problème d'affichage des couleurs avec un Oric Atmos
Programmation BASIC EmptySam 27 Jan 2024 - 1:26 par pierbail

» Bienvenue dans le Forum des Oriciens
Programmation BASIC EmptyMar 9 Jan 2024 - 12:33 par Dom50

» Rencontre avec Laurant Weill, co-fondateur de Loriciel, et mon garçon de 12 ans
Programmation BASIC EmptyVen 29 Déc 2023 - 14:13 par Arcade-des-Monts

» Bonnes fêtes
Programmation BASIC EmptyMar 26 Déc 2023 - 10:21 par Dom50

» Murders in Venice / Meutres à Venise
Programmation BASIC EmptySam 18 Nov 2023 - 22:44 par retroric

» Un clavier PS/2 pour tester un ORIC
Programmation BASIC EmptyDim 27 Aoû 2023 - 9:49 par Voyageur

» Disquette 3" Sedoric
Programmation BASIC EmptyMar 1 Aoû 2023 - 14:22 par AtomeX

» faire un 6502 avec des phototransistor
Programmation BASIC EmptyDim 16 Juil 2023 - 17:26 par Voyageur

» Oricutron linux et DSK
Programmation BASIC EmptyJeu 29 Juin 2023 - 18:34 par Voyageur

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

Nos membres ont posté un total de 8922 messages dans 811 sujets
Sites Sympas

> Culture Club


Le Deal du moment : -28%
Brandt LVE127J – Lave-vaisselle encastrable 12 ...
Voir le deal
279.99 €

Programmation BASIC

+4
Zodiac
kenneth
Dom50
maximus
8 participants

Page 1 sur 3 1, 2, 3  Suivant

Aller en bas

Programmation BASIC Empty Programmation BASIC

Message par maximus 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


Programmation BASIC Oricut10

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.
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par Dom50 Sam 25 Jan 2014 - 14:00

Essaie avec Euphoric  Smile 
Dom50
Dom50

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par kenneth 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
kenneth
kenneth
Modérateur

Messages : 879
Date d'inscription : 13/01/2013
Age : 56
Localisation : 63

Revenir en haut Aller en bas

Programmation BASIC Empty Virer le curseur

Message par maximus 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 
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty A Propos du Curseur

Message par Zodiac 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+
Zodiac
Zodiac

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par Dom50 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 à ç é ù è ê
Dom50
Dom50

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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 
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty OUT OF MEMORY

Message par maximus 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 
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Vider les Variables

Message par Zodiac 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+

Zodiac
Zodiac

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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("")
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Plus de MEMOIRE pour l'ORIC

Message par Zodiac 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+.
Zodiac
Zodiac

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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 
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par kenneth 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.
kenneth
kenneth
Modérateur

Messages : 879
Date d'inscription : 13/01/2013
Age : 56
Localisation : 63

Revenir en haut Aller en bas

Programmation BASIC Empty Cartouche ORIC

Message par Zodiac 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+
Zodiac
Zodiac

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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à
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Programation basic

Message par Zodiac 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+
Zodiac
Zodiac

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par kenneth 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 
kenneth
kenneth
Modérateur

Messages : 879
Date d'inscription : 13/01/2013
Age : 56
Localisation : 63

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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 ?
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Programation basic

Message par Zodiac 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+
Zodiac
Zodiac

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par Dom50 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
Dom50
Dom50

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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 ?
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par kiwilevrai 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.
kiwilevrai
kiwilevrai

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

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par maximus 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
maximus
maximus

Messages : 1274
Date d'inscription : 02/12/2012
Age : 63
Localisation : Nimes

http://cinema.forumactif.org/

Revenir en haut Aller en bas

Programmation BASIC Empty Re: Programmation BASIC

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 1 sur 3 1, 2, 3  Suivant

Revenir en haut

- Sujets similaires

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