Autor Tema: Learning BASIC Like It's 1983 (Traduccion + link) /V2/  (Leído 3252 veces)

HK

  • Commodorero
  • **
  • Mensajes: 39
    • Ver Perfil
Learning BASIC Like It's 1983 (Traduccion + link) /V2/
« en: Septiembre 03, 2018, 20:36:47 »
Traducido para quien no sepa ingles >

"Todavía no estaba vivo en 1983. Esto es algo que ocasionalmente lamento. Siento especialmente no haber experimentado la era de la computadora de 8 bits como estaba sucediendo, porque creo que las personas que  encontraron primero las computadoras cuando eran relativamente simples y restringidas, tienen una gran ventaja sobre el resto de nosotros.

Hoy, (casi) todos saben cómo usar una computadora, pero muy pocas personas, incluso en la industria de la informática, comprenden todo lo que sucede dentro de una sola máquina. Ahora hay tantas capas de software haciendo tantas cosas diferentes que a uno le cuesta identificar las partes que son esenciales. En 1983, sin embargo, las computadoras hogareñas no eran lo suficientemente sofisticadas como para que una persona diligente pudiera aprender cómo funcionaba una computadora en particular. Esa persona está hoy probablemente menos desconcertada que yo por todas las abstracciones que los sistemas operativos modernos acumulan sobre el hardware. Espero que estas capas de abstracciones fueran fáciles de entender una por una a medida que fueron introducidas; hoy, los nuevos programadores tienen que tratar de entenderlos a todos trabajando de arriba hacia abajo y hacia atrás en el tiempo.

Muchos programadores famosos, particularmente en la industria de los videojuegos, comenzaron a programar juegos en la infancia en computadoras de 8 bits como el Apple II y el Commodore 64. John Romero, Richard Garriott y Chris Roberts son todos ejemplos. Es fácil ver cómo sucedió esto. En la era de la computadora de 8 bits, muchos juegos estaban disponibles solo como listados impresos de BASIC en revistas y libros de computadora. Si querías jugar uno de esos juegos, tenías que escribir todo el programa a mano. Inevitablemente, obtendría algo mal, por lo que tendría que depurar su programa. Cuando lo hiciste funcionar, ya sabías lo suficiente sobre cómo funcionaba el programa para comenzar a modificarlo tú mismo. Si eras un ávido jugador, te convertiste en un buen programador casi por necesidad.

También jugué juegos de computadora durante toda mi infancia. Pero los juegos que jugué vinieron en CD-ROM. A veces tuve que buscar en Google cómo arreglar un instalador bloqueado, lo que implicaba editar el Registro de Windows o algo así. Este tipo de solución de problemas menores me puede haber hecho sentir lo suficientemente cómodo con las computadoras para considerar estudiar informática en la universidad. Pero nunca me enseñó nada crucial sobre cómo funcionaban las computadoras o cómo controlarlas.

Ahora, por supuesto, les digo a las computadoras qué hacer para ganarse la vida. De todos modos, no puedo dejar de sentir que me perdí una idea fundamental que se ofrece solo a aquellos que crecieron programando computadoras más simples. ¿Cómo hubiera sido encontrar computadoras por primera vez a principios de los años ochenta? ¿Cómo hubiera sido eso diferente de la experiencia de usar una computadora hoy?

Esta publicación va a ser un poco diferente de la publicación habitual de Historial de dos bits porque voy a tratar de imaginar una respuesta a estas preguntas.

1983
Fue la semana pasada que viste el anuncio de Commodore 64 en TV. Ahora que M * A * S * H ​​había terminado, usted estaba en el mercado para hacer algo nuevo los lunes por la noche. Esta cosa de Commodore 64 parecía incluso mejor que la Apple II que la familia de Rudy tenía en su sótano. Además, el anuncio prometía que la nueva computadora pronto traería amigos "derribando" tu puerta. Conocías a mucha gente en la escuela que prefería pasar el rato en tu casa que Rudy, si pudieran jugar a Zork allí.

Entonces persuadiste a tus padres a comprar uno. Tu madre dijo que lo considerarían solo si tener una computadora en casa significaba que te mantienes alejado de la sala de juegos. Usted aceptó a regañadientes. Tu padre pensó que comenzaría a rastrear las finanzas de la familia en MultiPlan, el programa de hoja de cálculo del que había oído hablar, razón por la cual la computadora se puso en la sala de estar. Un año más tarde, sin embargo, serías el único que todavía lo está usando. Finalmente se le permitió ponerlo en el escritorio de su habitación, justo debajo de su cartel de la Policía.

(Su hermana protestó por esta decisión, pero fue en 1983 y las computadoras no eran para ella).

Papá lo recogió de ComputerLand en el camino a casa del trabajo. Los dos pusieron la caja al lado del televisor y la abrieron. "BIENVENIDO AL MUNDO DE LA COMPUTACIÓN AMISTOSA", dijo el envase. Veinte minutos después, no estaba convencido: los dos todavía estaban tratando de conectar el Commodore al televisor y se preguntaban si el cable de antena del televisor era del tipo coaxial de 75 ohm o 300 ohmios. Pero finalmente fue capaz de encender su televisor en el canal 3 y ver una imagen morada y granulada.



LISTO, informó la computadora. Tu padre empujó la computadora hacia ti, indicando que debes ser el primero en probarla. HOLA, escribiste, buscando cuidadosamente cada letra. La respuesta de la computadora fue desconcertante.



Intentó escribir algunas palabras diferentes, pero la respuesta fue siempre la misma. Tu padre dijo que es mejor que leas el resto del manual. Eso no sería una hazaña, el manual que vino con el Commodore 64 era un pequeño libro. Pero eso no te molestó, porque la introducción al manual presagiaba maravillas.

El Commodore 64, decía, tenía "el creador de imágenes más avanzado en la industria de los microordenadores", lo que le permitiría "diseñar sus propias imágenes en cuatro colores diferentes, como los que ve en los videojuegos de tipo arcade". The Commodore 64 también tenía "música incorporada y efectos de sonido que rivalizaban con muchos sintetizadores de música conocidos". Todas estas herramientas se pondrían en sus manos, porque el manual lo guiaría a través de todo:

Tan importante como todo el hardware disponible es el hecho de que esta GUÍA DEL USUARIO le ayudará a desarrollar su comprensión de las computadoras. No le dirá todo lo que debe saber sobre computadoras, pero lo referirá a una amplia variedad de publicaciones para obtener información más detallada sobre los temas presentados. Commodore quiere que realmente disfrutes de tu nuevo COMMODORE 64. Y para divertirte, recuerda: la programación no es el tipo de cosa que puedes aprender en un día. Sea paciente consigo mismo a medida que avanza en la GUÍA DEL USUARIO.

Esa noche, en la cama, leíste los tres primeros capítulos completos: "Configuración", "Comenzando" y "Comenzando la Programación BÁSICA", antes de sucumbir finalmente al sueño con el manual extendido sobre tu pecho.

Commodore BASIC
Ahora es sábado por la mañana y estás ansioso por probar lo que has aprendido. Una de las primeras cosas que el manual le enseña a hacer es cambiar los colores en la pantalla. Siga las instrucciones, presione CTRL-9 para ingresar al modo de tipo inverso y luego mantenga presionada la barra espaciadora para crear líneas largas. Puede cambiar entre colores usando CTRL-1 a CTRL-8, deleitándose con su nueva potencia repentina sobre la pantalla del televisor.



Tan genial como esto, te das cuenta de que no cuenta como programación. Para programar la computadora, aprendiste anoche, tienes que hablar con ella en un idioma llamado BASIC. Para ti, BASIC parece sacado de Star Wars, pero BASIC es, en 1983, casi dos décadas de antigüedad. Fue inventado por dos profesores de Dartmouth, John Kemeny y Tom Kurtz, quienes deseaban que la informática fuera accesible para los estudiantes de pregrado en ciencias sociales y humanidades. Estaba ampliamente disponible en miniordenadores y popular en las clases de matemáticas de la universidad. Luego se convirtió en estándar en microcomputadoras después de que Bill Gates y Paul Allen escribieran el intérprete de MicroSoft BASIC para Altair. Pero el manual no explica nada de esto y no lo aprenderá durante muchos años.

Uno de los primeros comandos BASIC que el manual sugiere que intente es el comando PRINT. Escriba "IMPRIMIR" COMMODORE 64 ", lentamente, ya que le lleva un tiempo encontrar el símbolo de comilla encima de la tecla 2. Presionas RETORNO y esta vez, en lugar de quejarte, la computadora hace exactamente lo que le indicaste que haga y muestra "COMMODORE 64" en la siguiente línea.

Now you try using the PRINT command on all sorts of different things: two numbers added together, two numbers multiplied together, even several decimal numbers. You stop typing out PRINT and instead use ?, since the manual has advised you that ? is an abbreviation for PRINT often used by expert programmers. You feel like an expert already, but then you remember that you haven’t even made it to chapter three, “Beginning BASIC Programming.”

You get there soon enough. The chapter begins by prompting you to write your first real BASIC program. You type in NEW and hit RETURN, which gives you a clean slate. You then type your program in:

Código: [Seleccionar]
10 ?"COMMODORE 64"
20 GOTO 10

El 10 y el 20, explica el manual, son números de línea. Ellos ordenan las declaraciones para la computadora. También permiten al programador referirse a otras líneas del programa en ciertos comandos, tal como lo hizo aquí con el comando GOTO, que dirige el programa de nuevo a la línea 10. "Es una buena práctica de programación", opina el manual, "Para numerar líneas en incrementos de 10 en caso de que necesite insertar algunas declaraciones más adelante".

Escribe RUN y mira mientras la pantalla se obstruye con "COMMODORE 64", repetido una y otra vez.



No estás seguro de que esto no vaya a explotar tu computadora. Te lleva un segundo recordar que se supone que debes presionar la tecla RUN / STOP para romper el ciclo.

Las siguientes secciones del manual le enseñan acerca de las variables, que el manual le dice que es como "un número de cajas dentro de la computadora que pueden contener cada una un número o una cadena de caracteres de texto". Las variables que terminan en un símbolo% están completas números, mientras que las variables que terminan en un símbolo $ son cadenas de caracteres. Todas las otras variables son algo llamado variables de "coma flotante". El manual le advierte que tenga cuidado con los nombres de las variables, ya que la computadora solo reconoce las dos primeras letras del nombre, aunque nada le impide crear un nombre el tiempo que desee. (Esto no te molesta en particular, pero podrías ver cómo en 30 años a partir de ahora esto podría golpear a alguien como completamente loco).

A continuación, aprende sobre las construcciones IF ... THEN ... y FOR ... NEXT ... Con todas estas nuevas herramientas, te sientes equipado para afrontar el próximo gran desafío que el manual te ofrece. "Si eres del tipo ambicioso", "es curioso", escribe el siguiente programa y ve lo que sucede. "El programa es más largo y más complicado que cualquiera que hayas visto hasta ahora, pero te mueres por saber lo que hace :

Código: [Seleccionar]
10  REM BOUNCING BALL
20  PRINT "{CLR/HOME}"
25  FOR X = 1 TO 10 : PRINT "{CRSR/DOWN}" : NEXT
30  FOR BL = 1 TO 40
40  PRINT " ●{CRSR LEFT}";:REM (● is a Shift-Q)
50  FOR TM = 1 TO 5
60  NEXT TM
70  NEXT BL
75  REM MOVE BALL RIGHT TO LEFT
80  FOR BL = 40 TO 1 STEP -1
90  PRINT " {CRSR LEFT}{CRSR LEFT}●{CRSR LEFT}";
100 FOR TM = 1 TO 5
110 NEXT TM
120 NEXT BL
130 GOTO 20

El programa anterior aprovecha una de las características más geniales del Commodore 64. Los caracteres de comando no imprimibles, cuando se pasan al comando PRINT como parte de una cadena, simplemente realizan la acción que generalmente realizan en lugar de imprimir en la pantalla. Esto le permite reproducir cadenas de comandos arbitrarias imprimiendo cadenas desde sus programas.

Te lleva mucho tiempo escribir el programa anterior. Comete varios errores y tiene que volver a introducir algunas de las líneas. Pero finalmente puedes escribir RUN y contemplar una obra maestra:



Piensas que este es un contendiente importante por la cosa más genial que jamás hayas visto. Sin embargo, te olvidas casi de inmediato, porque una vez que conoces las funciones integradas de BASIC, como RND (que devuelve un número aleatorio) y CHR $ (que devuelve el carácter que coincide con un código de número dado), el manual te muestra un programa que muchos años a partir de ahora seguirán siendo lo suficientemente famosos como para ser el título de una antología de ensayo:

Código: [Seleccionar]
10 PRINT "{CLR/HOME}"
20 PRINT CHR$(205.5 + RND(1));
40 GOTO 20

Cuando se ejecuta, el programa anterior produce un laberinto aleatorio:



Esta es definitivamente la mejor cosa que jamás hayas visto.

PEEK y POKE
Ya ha salido de los primeros cuatro capítulos del manual de Commodore 64, incluido el capítulo titulado "Advanced BASIC", por lo que se siente muy orgulloso de usted mismo. Has aprendido mucho este sábado por la mañana. Pero esta tarde (después de un almuerzo rápido), vas a aprender algo que hará que esta máquina mágica en tu sala de estar sea mucho menos misteriosa.

El siguiente capítulo del manual se titula "Comandos gráficos y de color avanzados". Comienza revisando las barras de colores que pudo escribir a primera hora esta mañana y le muestra cómo puede hacer lo mismo desde un programa. Luego, le enseña a cambiar los colores de fondo de la pantalla.

Para hacer esto, necesita usar los comandos BASIC PEEK y POKE. Esos comandos le permiten, respectivamente, examinar y escribir en una dirección de memoria. El Commodore 64 tiene un color de fondo principal y un color de borde. Cada uno está controlado por una dirección de memoria especialmente designada. Puede escribir cualquier valor de color que quiera en esas direcciones para hacer el fondo o borde de ese color.

El manual explica:

Del mismo modo que las variables pueden considerarse como una representación de "cajas" dentro de la máquina donde usted colocó su información, también puede pensar en algunas "cajas" especialmente definidas dentro de la computadora que representan ubicaciones de memoria específicas.

El Commodore 64 observa estas ubicaciones de memoria para ver cuál debe ser el fondo de la pantalla y el color del borde, qué caracteres se mostrarán en la pantalla y dónde y una serie de otras tareas.

Usted escribe un programa para recorrer todas las combinaciones disponibles de fondo y color de borde:

Código: [Seleccionar]
10 FOR BA = 0 TO 15
20 FOR BO = 0 TO 15
30 POKE 53280, BA
40 POKE 53281, BO
50 FOR X = 1 TO 500 : NEXT X
60 NEXT BO : NEXT BA

Mientras que los comandos POKE, con sus grandes operandos, parecían intimidantes al principio, ahora ves que el valor real del número no importa demasiado. Obviamente, debe obtener el número correcto, pero todo lo que representa el número es una "caja" que Commodore acaba de almacenar en la dirección 53280. Este cuadro tiene un propósito especial: Commodore lo usa para determinar de qué color debe ser el fondo de la pantalla.




Crees que esto es bastante limpio. Simplemente escribiendo en un cuadro de propósito especial en la memoria, puede controlar una propiedad fundamental de la computadora. No está seguro de cómo el circuito del Commodore 64 toma el valor que escribe en la memoria y cambia el color de la pantalla, pero está bien no saberlo. Al menos entiendes todo hasta ese punto.

Cajas especiales
No terminas el manual completo ese sábado, ya que ahora estás empezando a quedarse sin energía. Pero finalmente lo lees todo. En el proceso, aprenderá sobre muchas más cajas de propósito especial del Commodore 64. Hay cuadros que puedes escribir para controlar lo que está en la pantalla, una caja, de hecho, para cada lugar donde aparezca un personaje. En el capítulo seis, "Gráficos de Sprite", aprenderá sobre los cuadros de propósito especial que le permiten definir imágenes que se pueden mover e incluso ampliar y reducir. En el capítulo siete, "Creación de sonido", aprendes acerca de las cajas en las que puedes escribir para hacer que tu Commodore 64 cante "Michael Row the Boat en tierra". El Commodore 64, tiene muy poco en el camino de qué más adelante aprenderás que se llama API. Controlar el Commodore 64 principalmente implica escribir en direcciones de memoria a las que el circuito les ha dado un significado especial.

Los muchos años que finalmente pasa escribiendo en esas cajas especiales se quedan con usted. Incluso muchas décadas más tarde, cuando se encuentra programando una máquina con una amplia API de gráficos o sonido, sabe que, detrás de la cortina, la API finalmente está escribiendo en esos cuadros o algo así. A veces se preguntará acerca de los programadores más jóvenes que solo han usado API, y se preguntará qué deben pensar que la API está haciendo por ellos. Quizás piensan que la API llama a otra API oculta. Pero entonces, ¿qué crees que está haciendo API oculta? Sentirás lástima por los programadores más jóvenes, porque deben estar muy confundidos.
"



SI, esta traducido con google translator

Link en ingles > https://twobithistory.org/2018/09/02/learning-basic.html
« última modificación: Septiembre 03, 2018, 21:17:27 por josepzin »

mjj

  • Commodore Master
  • *****
  • Mensajes: 456
  • SYS 0
    • Ver Perfil
Re:Learning BASIC Like It's 1983 (Traduccion + link) /V2/
« Respuesta #1 en: Septiembre 03, 2018, 23:11:34 »
Código: [Seleccionar]
10 PRINT "{CLR/HOME}"
20 PRINT CHR$(205.5 + RND(1));
40 GOTO 20

Cuando se ejecuta, el programa anterior produce un laberinto aleatorio:



Las mejores 3 líneas de código de la historia :D :D :D

Angel_64

  • C=64
  • Commodorista
  • ***
  • Mensajes: 61
  • Ctrl+Alt+Suprimir
    • Ver Perfil
Re:Learning BASIC Like It's 1983 (Traduccion + link) /V2/
« Respuesta #2 en: Septiembre 04, 2018, 17:09:33 »
Yo viví esa experiencia en el 84 !!!, el mismo dia que lo compré juntando todos los ahorros me quedé toda la noche despierto probandolo!! Genial!!! Y no me importaba, al principio que se borrara toda la información y volver a teclear el dia siguiente lo mismo. El datassette vino cuando pude ahorrar un poco más!

Maniako

  • Desarrolladores
  • Commodore Master
  • ******
  • Mensajes: 1008
  • SYS 8*4096
    • Ver Perfil
Re:Learning BASIC Like It's 1983 (Traduccion + link) /V2/
« Respuesta #3 en: Septiembre 05, 2018, 10:17:49 »
Casi lo mismo.
Era para mi hermano y al final, por abandono , me lo quedé yo.

Recuerdo ir a cambiar el primero al corte inglés por que al pokear por debajo de 2023, alteraba la memoria basic y aparecia un error de sintáxis, pero eso yo no lo sabia.
Loco se volvió el dependiente y al final me lo cambiarón XD.
LDA #$50
STA $0400
RTS
Lloré cuando conseguí hacer esto con el monitor del FC1.