Dudas basicas de Basic

Programando el Amstrad en BASIC, C, etc.
Avatar de Usuario
EnriquePbart
Me voy lanzando
Me voy lanzando
Mensajes: 54
Registrado: Lun 31 Dic , 2018 7:44 pm
Contactar:

Re: Dudas basicas de Basic

Mensajepor EnriquePbart » Mar 08 Ene , 2019 12:01 pm

Gracias de nuevo.

Vereis no quiero abrir un post nuevo preguntando esto asi que lo pongo aqui.

Ayer empece a jugar a algunos juegos para despejarme un poco, y luego descubri la web de 4MHZ y me descargue un juego, el tema es que no pude cargarlo de ninguna forma, el Winape me decia noseque de la memoria, lo intente poniendole hasta los 4MB de RAM y nada...

Aparte de eso vi el video del juego que tienen puesto, y me quede sorprendido de la fluidez que tenia en los movimientos, cuando antes habia estado jugando al SATAN y bueno no era tan fluido...(aunque me encanto el satan la verdad).

Mi pregunta basicamente es como puede ser esa diferencia de fluidez ?...programacion? mas sprites?, ni idea :oops: ...

Luego ya volviendo a la programacion hay una cosa que no comprendo con los MODES.... A mi personalmente me agobia el estar programando con la letra del editor tan grande asi que me pongo el Mode 2 y a funcionar... Peero lo que no pillo es....El MODE0 que se ve todo fatal es el que mas colores admite? ](*,) ](*,) ](*,) ...pero xq?, osea cuando uno hace un juego muy colorido entonces es siempre mode 0 ?, no seria mas logico que el 2 fuera el de mas resolucion?....perdonad mi TOTAL IGNORANCIA, pero bueno poco a poco todo se aprende.

Lo de los Modes lo pregunto ya que ahora estoy en ese tema (de un curso de BASIC) que estoy haciendo.

Y luego para terminar, ayer me descargue el QBasic64 , y bueno todo lo que he hecho hasta ahora no me ha dado ningun error, me resulta amigable solo por 3 cosas 1 tamaño del texto a la hora de programar , 2 te resalta los fallos y 3 puedo moverme por el codigo sin tener que hacer EDITS....Pero como me dijisteis supongo que llegara el momento mas adelante que empiece a darme fallos por temas de ser diferentes versiones de Basic...asi que no me acomodare mucho con el (solo era por comparar nada mas).

De todas formas me he dado cuenta que en el ensamblador puedes sacar el codigo escrito en Basic lo cual es genial para copiarlo y pegarlo por ahi, ahora mirare si se puede escribir ahi en el editor y luego pasarlo a la ventana de programacion (lo cual seria mas facil para editar lineas con errores y demas).

Un saludo y perdonad la chapa que os acabo de meter #-o :oops: :-ss
Racing Is life... Anithing that happens before or after is just waiting.

Poliyo
Keeper of The Forum
Keeper of The Forum
Mensajes: 909
Registrado: Jue 12 May , 2016 10:07 pm
Ubicación: Valencia

Re: Dudas basicas de Basic

Mensajepor Poliyo » Mar 08 Ene , 2019 1:31 pm

Bueno. Modos de pantalla.
El CPC incorpora solo tres modos de pantalla por defecto. La norma es la misma que en otras plataformas, a mayor color menor resolución.
Los mode son 0, 1 y 2
Respectivamente 20, 40 y 80 columnas.
Yo para programar usaba Mode 2 con fondo negro y tinta naranja, pero en Mode 1 se puede programar bien.
A colores, respectivamente, 2, 4 y 16
La pantalla gráfica también es distinta pero ahora no recuerdo sus valores, creo que eran 640*400, 640*200 y 320*200 .
Esto es lo estándar.
Con "trucos" de programación pues sacar nuevos modos pero eso ya es "no estándar".
El sistema operativo del Amstrad solo incorpora edición de línea, no como qbasic u otros. Si quieres edición de pantalla puedes grabar tu programa como
Save "nombre.bas",A (coma A)
Esto te graba el programa como ASCII y puedes editar con un procesador de textos o con el pc (en este último caso ten en cuenta que solo será común el ASCII bajo, nada de caracteres especiales)

Avatar de Usuario
6128
Moderador
Moderador
Mensajes: 7922
Registrado: Lun 12 Dic , 2005 6:08 pm

Re: Dudas basicas de Basic

Mensajepor 6128 » Mar 08 Ene , 2019 5:24 pm

El Mode 0 bien trabajado se mea en lo que puedas ver en otros micros de 8 bits, aunque tenga menos resolución.

Avatar de Usuario
a13x15
Lechoncillo
Lechoncillo
Mensajes: 15
Registrado: Mié 23 Ago , 2017 6:19 pm
Ubicación: the matrix

Re: Dudas basicas de Basic

Mensajepor a13x15 » Mar 08 Ene , 2019 6:32 pm

Mi pregunta basicamente es como puede ser esa diferencia de fluidez ?...programacion? mas sprites?, ni idea :oops: ...
El lenguaje de programación puede influir, en basic será mas lento que en C que a su vez será mas lento que ensamblador. La complejidad del juego, tamaño y cantidad de sprites etc. también influye. El saber hacer del autor y su motivación también son importantes (no es lo mismo hacer un juego para una empresa, con plazos etc. que por amor al arte y quiero destacar la importancia de "amor" y "arte" en los juegos que están saliendo últimamente).
Luego ya volviendo a la programacion hay una cosa que no comprendo con los MODES.... A mi personalmente me agobia el estar programando con la letra del editor tan grande asi que me pongo el Mode 2 y a funcionar... Peero lo que no pillo es....El MODE0 que se ve todo fatal es el que mas colores admite? ](*,) ](*,) ](*,) ...pero xq?, osea cuando uno hace un juego muy colorido entonces es siempre mode 0 ?, no seria mas logico que el 2 fuera el de mas resolucion?....perdonad mi TOTAL IGNORANCIA, pero bueno poco a poco todo se aprende.
Es una cuestión de hacer compromisos.

Cuantos mas colores quieras mas información (bits, memoria) necesitas para representarlos. Con un bit puedes representar dos valores (0 y 1) esto te permite representar dos colores distintos (lo que seria el mode 2), con 2 bits puedes representar 4 valores/colores (00, 01, 10 y 11, mode 1) y con 4 bits 16 valores (0000, 0001, ..., 1110 y 1111, mode 0).

Si tienes una pantalla con W pixeles en horizontal, H pixeles en vertical y cada pixel necesita N bits para representar los colores, en total necesitas (W x H x N) / 8 bytes de memoria para almacenar el contenido de la pantalla.

Amstrad dedica una cantidad fija de memoria, M, para vídeo (16Kb, 16384 bytes, en los modos estándar y 32Kb, creo, con overscan). Cualquier modo de vídeo ha de satisfacer la relación:

(W x H x N) / 8 < M

donde M está en bytes, W y H en pixels y N en bits/pixel.

En el caso del Amstrad H es fijo (200 pixeles), con lo cual, si aumentas W (número de pixeles horizontales) tienes que reducir N (colores) y al revés, si quieres más colores (aumentas N) tienes que reducir el número de pixeles (W).

En realidad el tema de los colores es un poco mas complicado. El valor del pixel no es el color sino el número de pluma (pen) que está rellena con una tinta (ink) a elegir de una paleta de 27 colores, pero no quiero liarte mas. Mírate las instrucciones PEN e INK del basic y lo entenderás fácil.

Para trabajar con texto el modo 0 es un dolor pero un buen artista del pixel puede hacer virguerias con el.

No se si me he explicado pero como mínimo espero no haberte liado mas.

Poliyo
Keeper of The Forum
Keeper of The Forum
Mensajes: 909
Registrado: Jue 12 May , 2016 10:07 pm
Ubicación: Valencia

Re: Dudas basicas de Basic

Mensajepor Poliyo » Mar 08 Ene , 2019 6:47 pm

Me ha encantado tu explicación.
Recuerdo cuando empecé a trastear con mi f030 y sus múltiples resoluciones de pantalla. Entonces busqué una relación al consumo de memoria con relación a la resolución pero al final lo único que hice fue "documentarme" cuánta memoria RAM libre me dejaba cada resolución.

Avatar de Usuario
a13x15
Lechoncillo
Lechoncillo
Mensajes: 15
Registrado: Mié 23 Ago , 2017 6:19 pm
Ubicación: the matrix

Re: Dudas basicas de Basic

Mensajepor a13x15 » Mar 08 Ene , 2019 7:22 pm

Me ha encantado tu explicación.
Recuerdo cuando empecé a trastear con mi f030 y sus múltiples resoluciones de pantalla. Entonces busqué una relación al consumo de memoria con relación a la resolución pero al final lo único que hice fue "documentarme" cuánta memoria RAM libre me dejaba cada resolución.
Me alegra, me preocupaba haberme perdido en demasiados detalles técnicos.

No sé que es el f030 ... google tampoco :shock:

Mi explicación vale en sistemas que utilizan algún tipo de framebuffer. Si no recuerdo mal el spectrum utiliza un sistema distinto en el que la información de color se asigna a un bloque de pixeles y no a pixeles individuales. Sigue existiendo una relación entre pixeles, colores y memoria necesaria pero es un poco mas enrevesada.

Es curioso/interesante ver las distintas formas en que los ingenieros de aquella época resolvieron el mismo problema dentro de las restricciones de cada sistema.

Avatar de Usuario
EnriquePbart
Me voy lanzando
Me voy lanzando
Mensajes: 54
Registrado: Lun 31 Dic , 2018 7:44 pm
Contactar:

Re: Dudas basicas de Basic

Mensajepor EnriquePbart » Mar 08 Ene , 2019 8:38 pm

Buena explicacion =D>
Racing Is life... Anithing that happens before or after is just waiting.

Poliyo
Keeper of The Forum
Keeper of The Forum
Mensajes: 909
Registrado: Jue 12 May , 2016 10:07 pm
Ubicación: Valencia

Re: Dudas basicas de Basic

Mensajepor Poliyo » Mar 08 Ene , 2019 8:54 pm

F030 = Atari Falcon 030
El último modelo de ordenador de Atari que permitía resoluciones true color (65.000 y pico) 256, 16, 4 y 2 colores y diversos anchos y largos de pantalla.

Avatar de Usuario
EnriquePbart
Me voy lanzando
Me voy lanzando
Mensajes: 54
Registrado: Lun 31 Dic , 2018 7:44 pm
Contactar:

Re: Dudas basicas de Basic

Mensajepor EnriquePbart » Vie 11 Ene , 2019 10:04 pm

Muy buenas gente, que tal?

Una duda rapida, me he impreso el manual de 8BDP , Eso se puede ir mirando mientras se aprende Basic o es demasiado avanzado?, he conseguido por amazon un par de libros tambien uno de ellos es uno que se llama "Programacion en Basic" de Schaum de "Byron S. Gottefried.
Racing Is life... Anithing that happens before or after is just waiting.

Poliyo
Keeper of The Forum
Keeper of The Forum
Mensajes: 909
Registrado: Jue 12 May , 2016 10:07 pm
Ubicación: Valencia

Re: Dudas basicas de Basic

Mensajepor Poliyo » Sab 12 Ene , 2019 12:14 am

Yo aún no le he metido mano.
Para mí sería como un segundo frente abierto, igual es complementario, igual puedes manejar dos frentes. La verdad es que no te se decir pues desconozco a fondo el 8bdp

Avatar de Usuario
EnriquePbart
Me voy lanzando
Me voy lanzando
Mensajes: 54
Registrado: Lun 31 Dic , 2018 7:44 pm
Contactar:

Re: Dudas basicas de Basic

Mensajepor EnriquePbart » Sab 12 Ene , 2019 10:42 am

Yo lo imprimi y encuaderne (no me gusta leer mucho en pantalla), se qie tiene muchas cosas para desarrollar. Lo cual es lo que me tira atras a la hora de comprarme un CPC ya que por lo visto todo el mundo usa el 8bp...y claro en un cpc eso no lo tienes... Resumiendo que no se como hacian los juegos en aquella epoca.
Racing Is life... Anithing that happens before or after is just waiting.

Avatar de Usuario
coco
Me voy lanzando
Me voy lanzando
Mensajes: 73
Registrado: Mar 01 Ene , 2019 5:34 pm

Re: Dudas basicas de Basic

Mensajepor coco » Mar 15 Ene , 2019 7:56 pm

Gracias gracias, si ya he estado haciendo cosas con ficheros y demas, ya me aclaro con el Cat el list, edit, load, save y con el for, if then etc, este finde he estado trasteando bastante y haciendo ejercicios basicos.

Me cuesta un poco ya que estaba acostumbrado a programar en C, y claro por lo que veo aqui nada de corchetes. (que no toco C desde hara 12 años que termine, y claro como deje la programacion por el 3D pues tampoco es que me acuerde de mucho).

Lo que me marea un poco es el GOTO, jaja siempre me decian que eso era "inestable" usarlo y ahora lo veo en todos lados.

Pero bueno poco a poco.
No sé si te servirá pero hay un par de comandos en BASIC para depurar, que son TRON (TRace ON) y TROFF (TRace OFF). Lo que hacen es activar y desactivar el traceado de las líneas de BASIC que se van ejecutando y te las va imprimiendo en pantalla entre corchetes (mira, hablando de corchetes :lol: ).

Por ejemplo, para un programa como:

10 a=10
20 input b
30 c= 10+b
40 print a+c
50 goto 50

pues al poner "TRON" y ejecutarlo saldría por la pantalla:

[10][20]? 5
[30][40] 25
[50][50][50][50][50][50] ...

y con TROFF lo desactivas. La única pega como ves es que te mezcla la salida por pantalla del programa con la del comando, y si tu programa juega mucho con los colores y las posiciones del cursor pues no hay quien siga la pista #-o

Avatar de Usuario
EnriquePbart
Me voy lanzando
Me voy lanzando
Mensajes: 54
Registrado: Lun 31 Dic , 2018 7:44 pm
Contactar:

Re: Dudas basicas de Basic

Mensajepor EnriquePbart » Mié 16 Ene , 2019 10:07 pm

Eso seria como las frases que se suelen poner para testear el programa supongo no?. Pero te muestra la ejecucion imprimiendo los numeros de linea claro.
Racing Is life... Anithing that happens before or after is just waiting.

Avatar de Usuario
coco
Me voy lanzando
Me voy lanzando
Mensajes: 73
Registrado: Mar 01 Ene , 2019 5:34 pm

Re: Dudas basicas de Basic

Mensajepor coco » Jue 17 Ene , 2019 11:58 pm

Eso seria como las frases que se suelen poner para testear el programa supongo no?. Pero te muestra la ejecucion imprimiendo los numeros de linea claro.
Correcto. De todas formas para las frases que dices del tipo "La variable xxx vale yyy" tienes que usar PRINT junto con el nombre de la variable. No había manera de hacer un "watch" a cierta variable como hacen los depuradores modernos mientras se ejecuta el programa. No había más espacio en la ROM del BASIC para un depurador mejorcito y había que tirar de alguna que otra utilidad para "mejorar" algo la depuración de programas BASIC.

Avatar de Usuario
EnriquePbart
Me voy lanzando
Me voy lanzando
Mensajes: 54
Registrado: Lun 31 Dic , 2018 7:44 pm
Contactar:

Re: Dudas basicas de Basic

Mensajepor EnriquePbart » Dom 03 Feb , 2019 1:31 pm

Hola chicos, estoy mirandome todo el manual del 6128 los temas de Basic y tal.

Bueno tengo una duda que el libro no la aclara, es sobre el comando GOSUB, en el libro te pone un ejemplo con una cancion donde te explica como utlizar el comando (en este ejemplo hace una GOSUB a la linea donde esta el estribillo), hasta ahi bien, mi duda es, si la subrrutina son un monton de lineas?...

...Se pondria la subrutina seguida y se termina con un RETURN en la ultima linea de esta?.

POR EJEMPLO

10 ' Programa basico de subrutina, en este ejemplo introducimos los valores
20 ' X e Y y enviamos los valores a la subrutina de suma para despues ser
30 ' devueltos por el programa.
40 INPUT "Introduce el primer valor:";A
50 PRINT
60 INPUT "Introduce el segundo valor:";B
61 PRINT
70 GOSUB 100
80 PRINT"Linea de control que NO deberia de ser mostrada..."
100 z=A+B
110 RETURN
115 PRINT "El valor de la suma es de";z
116 PRINT : PRINT
120 PRINT "Gracias por usar el programa"

Si pongo eso asi, me salta error en el Return...

Ya se que ese ejemplo es muy absurdo, pero solo era para ver que no imprimia la linea 80.
Última edición por EnriquePbart el Dom 03 Feb , 2019 2:33 pm, editado 2 veces en total.
Racing Is life... Anithing that happens before or after is just waiting.


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro


La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) Selección de juegos de Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic