https://foro.gambas-es.org/viewtopic.php?f=1&t=8081
-----------------------------------
Shell
Martes, 02 Junio 2020, 10:02

Como Guardaban Los Datos Los Antiguos Basic De Los 8 Bits
-----------------------------------
Buenas!.

Si, ya se que no tiene que ver con Gambas, pero si con el basic en general, un basic algo más antiguo.
Vosotros habréis tenido un ordenador de 8 bit. Muchos de los que estamos aquí ya tenemos más de 30. En fin, no me refiero si tuvisteís un Spectrum, 
un Amstrad, Commodore, Msx....etc,etc. 

Vamos a ver, en estos ordenadores teníamos la sentencia "DIM", igual que hoy lo tenemos en Gambas traído de otra época y algo que se usaban eran
los "DATAS".

Al igual que en Gambas, podíamos tener arrays de una dimensión, de dos, etc. Estos podían contener números o cadenas.
Voy por el problema que quiero plantear.

Los arrays necesitaban definirse sus dimensiones. En un Spectrum y probablemente en otro ocho bit , si yo quería guardar cinco nombres de una longitud máxima 
de caracteres tenía que definir el array de tal manera como esta:

[quote]
DIM n$(5,30)
[/quote]

Algo curioso es que la variable no podía exceder de un carácter cuando hablábamos de cadenas, cosa que en Commodore, si y en Dragon igual.. 
Ok. Para guardar el array se guardaba de la siguiente forma: (Al menos en cinta ).

[quote]
SAVE "datos" DATA n$()
[/quote]

A la hora de cargar esos datos no tenemos por que usar el mismo nombre del array. n$, pero si tenemos que dimensionar el array
donde se va almacenar los datos cargados con el mismo número de dimensiones....

Pero tan solo puede grabar  lo que dice el array 5 elementos que miden 30 caracteres.
Recordar que hay dimensionar el array.

Entonces, ¿ que pasa si yo hubiese querido añadir ahora un sexto nombre ?¿?¿?.  :shock:

Y si yo hago trampa al cargarlo y hago algo como esto: Le añado un elemento más.

[quote]
DIM e$(6,30)
[/quote]

Ahora le digo que cargue el array..

No necesito decirle el nombre, suponiendo que tan solo tengo un archivo.
En este caso he cambiado el nombre del array y le puse e$ que es el voy
a usar en otro programa.

[quote]
LOAD "" DATA e$()
[/quote]

Pues al definir un nuevo elemento. Algo como  asignar así, en Spectrum se usaba LET, en otros microordenadores no era necesario.

[quote]
LET e$(6,30)="Manuel"
[/quote]

(Puede que la segunda dimensión no sea necesaria)

El interprete nos saltaba con error de subindice incorrecto!!.  :evil:

¿ Sabéis cual era la solución ?. 

Cuando se definían los arrays se pretendía siempre "saber" de antemano cuantos elementos iba a tener siempre el array!!.
Entonces, podíamos tener 100 aunque solo usáramos 6, tendríamos un límite de 100. Ademas es que te obligaba a definir
el número de elementos por narices.

¿ Saben o recuerdan si existían otras formas para la época ?. Desde Basic me parece que no.  :roll: 


Saludos


-----------------------------------
gambafeliz
Martes, 02 Junio 2020, 14:58

Re: Como Guardaban Los Datos Los Antiguos Basic De Los 8 Bits
-----------------------------------
Oye macho yo te voy a contestar mas tarde, yo en lo particular, borro mi memoria para dejar cosas nuevas entrar y sinceramente he programado mucho mucho en Basic pero a penas recuerdo ya código avanzado, se que lo explicas pero la pregunta es para alguien que lo tenga fresquito, recien sacado del frigo y yo, ya no me acuerdo.

Lo miro y contesto, prometido.

Saludos. Anda que estas hecho un perla :)


-----------------------------------
Shell
Miercoles, 03 Junio 2020, 23:15

Re: Como Guardaban Los Datos Los Antiguos Basic De Los 8 Bits
-----------------------------------
Buenas!.

Para los que quiera pasar el rato . El vídeo es largo. Os explicará como eran aquellos DIM de otras épocas.
No resuelve mi pregunta, ya que no tiene mucha solución...como se llamaba aquel programa. "Mas vale prevenir"..
el número de elementos del array.

Lo que no tenía ni idea que un array numérico ocupase más "bytes" que un alfanumérico. Números más que letras... :? 
Alfa, 1 byte y las numéricas 5 byte. Minuto  20 más o menos.

[youtube]YsvVzTdO8NY[/youtube]

Saludos


-----------------------------------
tincho
Jueves, 04 Junio 2020, 13:30

Re: Como Guardaban Los Datos Los Antiguos Basic De Los 8 Bits
-----------------------------------
[quote user="Shell" post="48708"]...Lo que no tenía ni idea que un array numérico ocupase más "bytes" que un alfanumérico. Números más que letras... :? 
Alfa, 1 byte y las numéricas 5 byte. Minuto  20 más o menos.
[/quote]
Es interesante ver la página 28 del libro "A Beginner's Guide to GAMBAS rfv3" ahi se muestran todos los usos de memoria de las variables de gambas.
Saludos.


-----------------------------------
Shell
Viernes, 05 Junio 2020, 13:58

Re: Como Guardaban Los Datos Los Antiguos Basic De Los 8 Bits
-----------------------------------
Tincho:

[quote]
Es interesante ver la página 28 del libro "A Beginner's Guide to gambas rfv3" ahi se muestran todos los usos de memoria de las variables de gambas.
[/quote]

Si, viene en la tabla. No veas la Variant 12 bytes....un puntero tambien ocupa lo suyo, bytes.

Pero desde el punto de vista de ocupar por espacio en memoria con los equipos actuales a lo mejor nos debería preocupar.
Cuando eran equipos de pocos recursos, si.

Algo distinto es la velocidad de acceso a esos tipos de variables. Que eso si que influye.  :o 

Saludos


