Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

¿ Usan Visual Studio Code ?.
#1

Buenas!.

La idea es poder usar Visual Code para programar en el basic de Zx Spectrum (Basic Sinclair) y que el editor me permita usar un script en bash para convertir
y ejecutar en el emulador.  Este script lo lamaría Visual Code.

Visual Code dispone de distintos "complementos" que permiten desde "descatar" palabras reservadas de un basic de Commodore,
Msx, Zx Spectrum y mucho más. Esto también lo hacen otros editores, como SublimeText y su alternativa libre que ahora no recuerdo el nombre.

Este es el script que pretendo ejecutar. Claro, el archivo fuente de basic creado deberá ser guardado en un directorio a escoger por el usuario y entonces llamarlo.
( Perdonar la sencillez del script, que seguro que es mejorable. Lo principal es que  funciona ). Rolleyes

Bash
  1. #!/bin/bash
  2.  
  3. # Convierte un archivo .bas que debe contener codigo basic de Zx Spectrum
  4. # Se le pasa como único parámetro un archivo con extensión .bas
  5. # Se asigna su valor, nombre, a la variable f
  6. f=$1
  7.  
  8. # La extensión a la que convertimos es tap
  9. extension='.tap'
  10.  
  11. # Eliminamos la extensión bas quedando solo el nombre sin esta para poder concatenar luego
  12. noextension="${f%.*}"
  13.  
  14. # Convertimos el nombre original del archivo con la extensión .bas al mismo pero con .tap
  15. # Y ademas usamos el guión -n para que a la hora de cargar la cinta se vea su nombre en el emulador
  16. zmakebas $1 -o $noextension$extension -n $noextension
  17.  
  18. # Inicia el emulador fuse para ver la cinta creada con nuestro programa
  19. fuse $noextension$extension



Siempre pregunto y no busco lo suficiente. Wink

Es algo como si tuvieras un código escrito en "C" y le dijeses al editor que programa debe usar para ejecutar el código y que opciones.
En este caso Visual Code grabaría el archivo.bas en un directorio y le pasaría el nombre al script para su conversión a cinta.

Saludos

El código en Visual Studio Code:

[Imagen: 0aNGgZ2.png]

El script lo guardé en /usr/local/bin
En este caso le paso el HolaMundo.bas que tengo en un directorio cualquiera.
El emulador carga la cinta y muestro el código en su interprete basic.

[Imagen: 3PPJ87A.png]

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#2

He tenido que modificar el script. Ya que al final se le pasaba como nombre de programa toda la ruta completa, en vez de solo un nombre.
Imaginar, load "" y mostraba como nombre del programa /home/usuario

Ademas para los que conocisteis esos ordenadores, recordar que la longitud de aquellos nombres de programas podían estar limitados a diez caracteres.


Bash
  1. #!/bin/bash
  2.  
  3. # Convierte un archivo .bas que debe contener codigo basic de Zx Spectrum
  4. # Se le pasa como único parámetro un archivo con extensión .bas
  5.  
  6. # El nombre del archivo sin ruta es
  7. nombrebase=$(basename $1)
  8.  
  9. # La extensión a la que convertimos es tap
  10. extension='.tap'
  11.  
  12. # Eliminamos la extensión bas quedando solo el nombre sin esta para poder concatenar luego
  13. noextension="${nombrebase%.*}"
  14.  
  15. # Convertimos el nombre original del archivo con la extensión .bas a el mismo
  16. # Y ademas usamos el guión -n para que a la hora de cargar se vea su nombre en el emulador
  17. zmakebas $1 -o $noextension$extension -n $noextension
  18.  
  19. # Inicia el emulador fuse para ver la cinta creada con nuestro programa
  20. fuse $noextension$extension



Por cierto, en Mate uso Xed para editar archivos, cuando edita como administrador los colores de los comentarios son horribles!!!. Ni se ven.

Cuidado:

[Imagen: xRVR1Ph.png]

Mortal.

"El buen perfume en frasco pequeño se vende"
[-] Los siguientes 1 usuarios dice gracias a Shell por este post:
  • Shordi
    ¡Gracias!
#3

No, nunca lo he usado.

Saludos

No podemos regresar
    ¡Gracias!
#4

Magnifico aporte, Shell.

Mi primer ordenador, un Spectrum ZX con 128 Kb de memoria. Una máquina impresionante. Y por supuesto programar mi pequeños programas. Creo que la nostalgia y los recuerdos se están apoderando de mi y voy a usar tu script para hacer algún pequeño programa en el Spectrum. Nunca he usado Visual Code pero supongo que no será complicado.

Un saludo.
    ¡Gracias!
#5

(01-12-2022, 22:54)guizans escribió:  Mi primer ordenador, un Spectrum ZX con 128 Kb de memoria. Una máquina impresionante. Y por supuesto programar mi pequeños programas. Creo que la nostalgia y los recuerdos se están apoderando de mi y voy a usar tu script para hacer algún pequeño programa en el Spectrum. Nunca he usado Visual Code pero supongo que no será complicado.

Realmente se puede escribir desde un editor de texto cualquiera, siempre que se respete las líneas y la estructura del programa y eso ya lo conoces.
Naturalmente no es tan cómodo como el editor de Gambas. El complemento lo que hace es destacar las instrucciones de basic. Puedo asegurarte que
hay otro complementos más sofisticados. Y unas de las peculiaridades que tienen es que hacen uso desde un compilador de basic ( De Boriel supongo )
y ademas que este basic compilado, admite desde el clásico basic de Sinclair, hasta el uso de funciones (cosa que no existía en aquella época en el ordenador ),
como es también de no tener necesidad de número de líneas.

Aquí donde su creador  habla del compilador: ( ya existían en Spectrum, compiladores del basic, algunos muy buenos como el Hisoft basic).
Lo que te muestro es más actual (dentro de las posibilidades).

Zx Basic compiler

No pido tanto, tan solo poder escribir ejemplos de aquellos programas, mejorarlos, adaptarlos a gambas, etc. Funciones ya me parece ya,
rizar el rizo.

Entrando en más materia y complicándose un poco.

Preparando el ambiente para programar para Next con Boriel ZX Basic y NextBuild

Saludos

"El buen perfume en frasco pequeño se vende"
    ¡Gracias!
#6

Encontré una forma de hacerlo.

Cuando creamos un proyecto en Gambas, le damos un nombre, crea archivos por defecto y a medida que vamos modificando o añadiendo cosas, grabamos.
En un editor más sencillo tal como se inicia, vemos la entrada de texto, escribimos y guardamos. En el caso de Visual Code, el código fuente
se habría escrito en algún lugar antes de ejecutar el script. Aunque lo suyo es trabajar con proyectos, suelo hacerlos con archivos sueltos,
sobre todo en Python. ( Siempre dentro del mismo directorio ). Para algo sencillo es suficiente.

How to run a command in Visual Studio Code with launch.json

Se hace mediante tareas, no es ejecución o depuración, su menú es otro.
En el post se explica un poco como hacerlo, algunos lo hacen desde Linux y otros desde Windows.
Es más reducido de lo que parece.

El archivo tasks.json se me ha quedado así: ( Parece que con todos los lenguajes que soporta geshi en el editor de Gambas, json no lo admite.
Javascript
  1. {  
  2.     "version": "2.0.0",
  3.     "tasks": [
  4.         {
  5.             "label": "echo",
  6.             "type": "shell",
  7.             "command": "convbas2tape ${file}",                                                           
  8.             }
  9.         }
  10.     ]
  11. }



convbas2tape es el script que hice y tengo en /usr/local/bin 

No dudo que puede haber cosas sobrantes. Títulos como label no adecuados (echo). Son cosas del archivo plantilla.

Esto se hace desde el menú Terminal y allí, abajo de todo las opciones, existen dos.
Configurar tarea y configurar tarea de compilación predeterminada.
Y este es el archivo tasks.json. En este si se encuentra la propiedad "preLaunchTask"
 
Javascript
  1. {
  2.     // See https://go.microsoft.com/fwlink/?LinkId=733558
  3.     // for the documentation about the tasks.json format
  4.     "version": "2.0.0",
  5.     "configurations": [
  6.         {
  7.             "type": "node",
  8.             "request": "launch",
  9.             "name": "launch program",
  10.             "skipFiles": [ "<node_insertnals>/**"],
  11.             "preLaunchTask": "convbas2tape"
  12.                    
  13.                       
  14.                         
  15.             
  16.         }
  17.     ]
  18. }



Aunque los dos se llaman igual, su ubicación es distinta. Hay uno que se encuentra dentro un directorio oculto de la home del usuario en  el .config
Y el otro igual, solo que es ya dentro de .vscode.

Intenté probar con editores como SublimeText ( solo existe el complemento MSX) y Atom. No hubo suerte.

Luego configuraciones más complicadas si se quería hacer más ya parecía algo más pensado para Windows.
Ya que el tipo de aplicaciones eran ejecutables en su sistema. Que probablemente haya una emulación, pero paso.
Ejecuta emuladores de este sistema. Se sale bastante de lo que quiero. Y aunque no lo uso mucho, tengo Windows 10.

Lo que si debe ser imposible al menos en este editor, es la creación de G.D.U's. Gráficos definidos por el usuario.
Para eso hay otros y no voy por estos temas.

Dominar los archivos scripts en Linux  y darles uso es fundamental.  Es programación solo que a nivel de scrpit bash.
Ahorra mucho tiempo y tareas.

Saludos

"El buen perfume en frasco pequeño se vende"
[-] Los siguientes 1 usuarios dice gracias a Shell por este post:
  • guizans
    ¡Gracias!


Posibles temas similares…
Tema / Autor Respuestas Vistas Último mensaje

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)