MSX Village forum

La Place des Développeurs [Basic] Trop de locate & print ?

Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 03/01/2017 à 22h59
Je me suis remis au basic tout récemment, et je me heurte à un truc de base...
En effet, pour afficher un tableau de lancement (c'est un menu de lancement de roms), je balance allègrement des LOCATE x,x:PRINT"xxx"
Je me rends compte, que mon programme a l'air de saturer avec moults affichage à l'écran.
En fait, au bout d'un moment, j'ai un écran bleu... Il n'affiche plus rien !
J'enlève une ou 2 lignes avec des LOCATE et PRINT tout basiques, et il remarche...

késako ?

Si je pouvais dessiner un tableau autrement qu'avec des LOCATEx,x:PRINT"------------------------", c'est sûr que ça irait mieux, mais je ne veux pas passer en SCREEN 2.


Clé de sol

Site web    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1512

Le 04/01/2017 à 09h50
As-tu essayé une solution alternative comme PRINT TAB ?


MSX un jour, MSX toujours ! :D
Site web    
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 04/01/2017 à 09h57
Le PRINT TAB ne permet pas d'afficher de cadre (ligne) ?


Clé de sol

Site web    
granced Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 09/10/2009 à 09h18

Messages: 1512

Le 04/01/2017 à 10h01
Non, c'est juste une tabulation que tu indiques à ton instruction PRINT.

Après pour faire un tableau en SCREEN 0 je pense qu'il te faudra utiliser des caractères spéciaux, sinon c'est SCREEN 2, mais c'est plus pénible pour l'affichage de texte...


MSX un jour, MSX toujours ! :D
Site web    
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 04/01/2017 à 10h53
Ouais surtout que pour l'affichage de texte, c'est un peu hardcore avec des récupérations de chaines envoyées par un fichier .php :)

Non mais je vais me démerder comme ça... Je te remercie.


Clé de sol

Site web    
GDX Membre non connecté

Conseiller Municipal

Rang

Avatar

Inscrit le : 17/01/2011 à 08h52

Messages: 3004

Le 04/01/2017 à 11h22
Tu dis que c'est pour lancer des ROM. L'écran bleu survient quand ?
Trop de PRINT ne peut en aucun cas provoquer un plantage.

Tu peux manquer de mémoire libre ou réservée pour les chaines.

Pour gagner de la mémoire, un PRINT STRING$(24,45) prend moins de place que PRINT"------------------------".

Pour reserver plus de place pour les chaines, il faut utiliser l'instruction CLEAR xxxx.

L'écran bleu vient probablement du fait que tu coupes le programme basic en changeant de slot pour charger une ROM, non ? Edité par GDX Le 04/01/2017 à 14h15
   
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 04/01/2017 à 12h27
Non, l'écran bleu intervient avant, c'est bizarre, pas assez de place pour les chaines surement.
Merci GDX, tu me donnes des pistes ;)


Clé de sol

Site web    
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 04/01/2017 à 13h39
C'était bien ça ! Merci GDX :top


Clé de sol

Site web    
Bastion Rebel Membre non connecté

Conseiller Municipal

Rang

Avatar

Groupe : Shoutbox

Inscrit le : 21/09/2013 à 07h42

Messages: 1887

Le 06/01/2017 à 09h14
salut

tiens essais ca !!

en screen 0 mode 80 col

1 CLS
10 A=255
20 FOR X=2TO 50
30 LOCATE 40-(X/2),10
40 GOSUB 200
41 LOCATE 40-(X/2),11
42 GOSUB 100
43 LOCATE 40-(X/2),12
44 GOSUB 100
45 LOCATE 40-(X/2),13
46 GOSUB 100
48 LOCATE 40-(X/2),14
49 GOSUB 200
50 NEXT X
99 END
100 PRINT CHR$(A);STRING$(X-2,32);CHR$(A)
110 RETURN
200 PRINT STRING$(X,A)
210 RETURN


TURBO-R FS-A1ST 512/128ko MSX2+ NMS 8250 F4 /Fix Audio /Ram 1/4Mb VDP9958 VRAM 192ko 2FDD SANYO WAVY PHC35J MSX2 NMS 8280 Ram 4Mb VDP9938 VRAM 192ko 2FDD NMS 8250 128/128ko 2FDD VG8235/39 128/128ko 1FDD SONY HB-F700D MSX1 MC810 32/16k VG 8020 64k HB75F 64k HX-22 64k RS232/ CX5M 32k HB501F EXT : My Exp 4X/[b] MegaFlashSCC 512ko/BERT R2/BEER CF/SUNRISE 2CF/FUNRICE V2.01/MAXIOL/MEGASCSI HDD-CD/SDMSX 1SD/FMPAC SRAM/NMS1205+1160/RS 232 Harukaze/GR8NET/DOS2/ HOMER V2 RAM512ko/Floppy Pack/MAXduino/ROM1664/FM Pak /GR8NET /AMIGA/ PC/ RaspB Pi(B) / ARDUINO
E-mail    
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 06/01/2017 à 11h30
Sympa ! Mais bon sang que c'est long à l'affichage :)


Clé de sol

Site web    
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 06/01/2017 à 22h05
Ah yes, merci les amis, vos connaissances en MSX-Basic me scotchent... :top


Clé de sol

Site web    
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 07/01/2017 à 15h54
je vais essayer ça :top


Clé de sol

Site web    
Visiteur

Vagabond

Rang

Avatar

Message : 0

Le 07/01/2017 à 16h06
GDX:
Le MSX-Basic, c'est comme le vélo : une fois qu'on sait en faire ça reste toujours. :)

Comme le vélo vaut quand même mieux s'entraîner régulièrement si on ne veut pas mettre pied à terre à la première difficulté. ;)
Comme Sebbeug je m'essaye au MSX-Basic que j'ai cotoyé il y a 25 ou 30 ans ; c'est pas gagné.
   
Sebbeug Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h33

Messages: 2525

Le 07/01/2017 à 16h42
Bon j'ai essayé, effectivement c'est plus rapide.
Mais bon, je vais rester sur un affichage "classique", car je voulais juste un tableau en lignes fines et sans effet d'apparition progressive ;)



Clé de sol

Site web    
Jipe Membre non connecté

Maire-adjoint

Rang

Avatar

Association

Inscrit le : 02/10/2009 à 19h41

Messages: 10730

Le 07/01/2017 à 18h30
pour faire un effet d'apparition instantané on peut utiliser 2 routines du Bios

DEFUSR=&H41:X=USR(0) ; disable screen display -> l'écran devient noir
DEFUSR=&H44:X=USR(0) ; enable screen display -> l'écran se rallume

tous les affichages mis entre ces 2 lignes se feront en mode caché


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