MSX Village forum

La Place des Développeurs gagner de la memoire en basic

ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/12/2013 à 16h27
je viens de constater avec un programme en nestor basic, qu'un Turbor n'a,pas tout a fait la meme capacité memoire qu'un msx2+

un programme qui passe tres bien sur TR, me fait un out of memory sur 2+ !
Pourquoi ?

connaissez vous des astuces pour gagner quelques octets sous basic ?
Quel est exactement l'effet d'un "clear 200" par exemple ?

pour gagner de la place j'ai déja un defint a-z

l'appui sur ctrl au boot pourais me libérer quelques octets, mais ce n'est pas une option "pro"
existe t'il un moyen logiciel pour avoir le même effet ?

merci d'avance pour vos astuces Edité par ericb59 Le 30/12/2013 à 16h28


banniere-ericb59e
Site web    
msx45 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 09/12/2009 à 21h08

Messages: 872

Le 30/12/2013 à 16h38
Salut,
pour desactiver le 2eme drive on doit appuyer sur CTRL au demarrage
Comme tu dis c'est pas une solution tres pro

Moi j'utilise l'utilitaire ONEDRIVE qui fonctionne sous MSDOS et sous BASIC MSX
Ce logiciel desactive le 2eme DISKDRIVE MSX

http://www.msx.org/news/software/en/onedrive-10

Sous BASIC voila la syntaxe :

5 poke &hffff,170
10 BL0AD"ONEDRIVE.COM"
20 A=PEEK(-833)+256*PEEK(-832)
30 DEFUSR=A
40 A=USR("a:menu.bas")


A+ Edité par msx45 Le 30/12/2013 à 16h51
E-mail    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/12/2013 à 16h48
interresant ça ! merci,pour cette info !
mais le lien sur msx.org est mort !

peux tu me l'envoyer ou le mettre sur le forum ?


banniere-ericb59e
Site web    
msx45 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 09/12/2009 à 21h08

Messages: 872

Le 30/12/2013 à 16h53
Voila le le prog

onedrive.zip

:tchin
E-mail    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/12/2013 à 17h01
merci je regarde ça en rentrant !
tu as mis la doc avec ?


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 30/12/2013 à 17h03
sur un 2+ le dos 2 permet aussi d'avoir plus de place pour le basic


:noel
Site web    
msx45 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 09/12/2009 à 21h08

Messages: 872

Le 30/12/2013 à 17h07
ericb59 :
merci je regarde ça en rentrant !

tu as mis la doc avec ?




Desolé j'ai pas retrouvé les docs



sous MSDOS tu tapes ONEDRIVE



sous BASIC tu tapes les commandes que j'ai donné plus haut

bien sur tu remplaces le "menu.bas" par le fichier que tu veux lancer



A+ Edité par msx45 Le 30/12/2013 à 17h28
E-mail    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/12/2013 à 18h33
msx45 : le code que tu indiques me fait booter le MSX en boucle !

edit c'est le poke &hffff,170 qui fait rebooter ! Edité par ericb59 Le 30/12/2013 à 18h35


banniere-ericb59e
Site web    
msx45 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 09/12/2009 à 21h08

Messages: 872

Le 30/12/2013 à 18h44
poke &Hffff,170 (pour un MSX PHILIPS)
poke &Hffff,255 (pour un MSX SONY)

C'est pas obligé de taper cette ligne c'est juste pour améliorer la compatibilité des softs

sinon tu as le poke universel
c'est pratique pour les MSX avec struture de slots non standard

The universal poke to do this is:
POKE -1,1.0625*(NOT(PEEK(-1))AND&HF0)
The same POKE, but a bit shorter:
POKE -1,(15-PEEK(-1)16)*17 Edité par msx45 Le 30/12/2013 à 18h48
E-mail    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/12/2013 à 18h49
c'est censé faire quoi ce poke au juste ?

Sinon ça à l'air de fonctionner sans le poke... C'est cool !


Tiens j'ai aussi trouvé ça pour gagner quelques octets

maxfiles=0



banniere-ericb59e
Site web    
msx45 Membre non connecté

Villageois

Rang

Avatar

Inscrit le : 09/12/2009 à 21h08

Messages: 872

Le 30/12/2013 à 18h51
Ce poke sert a faire tourner certains jeux recalcitrant
Ca ameliore grandement la compatibilité
Avec ce poke 100% des softs se lanceront sur ton MSX
E-mail    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 30/12/2013 à 18h52
poke &HFFFF.0 (pour un 2+ ou un Turbo-R)

le poke est fonction de l'emplacement du slot de mémoire

et pour mettre tout le monde d'accord voici un poke universel : POKE-1,(15-PEEK(-1)16)*17

-1 et &HFFFF ça revient au même ;)


:noel
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 30/12/2013 à 18h57
pour "gagner" de la mémoire il faut optimiser ses programmes

pas de ligne de REM
au possible taper plusieurs instructions sur la même ligne ça fait gagner des octets
ne travailler qu'avec des entiers
oublier les espaces entre 2 instructions ex: le msx interprête pareil MOTOR ON et MOTORON
oublier les gros tableaux de variables

ensuite si on a pas assez de place
mettre la demo ou l'intro dans un programme a part qui fait appel au programme principal
idem pour la fin


:noel
Site web    
ericb59 Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : compte ++ Groupe : Shoutbox

Inscrit le : 17/04/2012 à 10h25

Messages: 5485

Le 30/12/2013 à 19h28

Je n'avais jamais remarqué mais un
Turbo-R Boot avec 25271 Octets de libre pour le basic
un MSX2+ avec 23414 Octets
un MSX2 abev 23432 Octets

D'ou provient cette différence ?


banniere-ericb59e
Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10356

Le 30/12/2013 à 20h24
c'est parce que tu boot en dos2

essaye d'appuyer sur 1 au démarrage et jusqu'au beep , on est alors sous Disk BASIC 1.0 et on obtiens 23414 Octets avec un ST comme un 2+


:noel
Site web    
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie