Aquí tienes una publicación de anuncio lista para copiar, adaptada para CPCWiki y los foros de Amstrad CPC:
Asunto: [Lanzamiento] LocoPad v1.0 – Un moderno editor y borrador de Locomotive BASIC para navegador con .DSK instantáneo y emulación
Hola a todos:
Aquí tenéis algo en lo que he estado trabajando, a raíz de la conversación sobre las fichas superpuestas de BASIC.
Me alegra compartir LocoPad, un editor de código web, bloc de notas y herramienta interactiva de referencia de firmware diseñada específicamente para escribir Locomotive BASIC y desarrollar para el Amstrad CPC directamente desde el navegador.
Esto lo preparé después de terminar la mayor parte del trabajo con los comandos de firmware y BASIC para integrar en el foro.
Ejecutar en el emulador de CPC con un clic: Pulsa Ejecutar en CPC (►) y LocoPad compilará inmediatamente los archivos de tu proyecto activo en una imagen .DSK de 40 pistas para AMSDOS, e iniciará directamente un Amstrad CPC 6128 emulado (RVMPlayer, igual que en el foro y la Wiki) ejecutando tu programa.
Exportación instantánea a .DSK de AMSDOS y .BAS: Exporta archivos .BAS estándar o imágenes de disco .DSK multifichero completas y listas para usar.
Panel de ayuda integrado y referencia completa de CPC (498 símbolos):
Inspector de BASIC y Firmware: Pasa el cursor sobre o busca cualquiera de los 187 comandos de Locomotive BASIC o los 311 vectores Jumpblock del firmware del CPC (&BB00–&BD5D) para ver la sintaxis en tiempo real, los requisitos de registros de entrada/salida, los registros alterados y las plantillas de código.
Paleta de hardware de 27 colores del CPC: Selector de paleta de colores interactivo con un generador de fragmentos de código para PEN, PAPER e INK a un solo clic (simplemente porque me encanta la etiqueta de la disquetera del 6128).
Gestión de proyectos multifichero: Organiza programas BASIC divididos en varios archivos, tablas de datos y documentos de texto con guardado automático local en el navegador y barras laterales de tamaño ajustable (Ctrl+B).
Motor de edición doble: Elige entre un motor ligero y de respuesta ultrarrápida como CodeMirror 6 (predeterminado) o el Monaco Editor (el motor de VS Code).
100 % local. Tu trabajo se guarda automáticamente de forma local en el almacenamiento de tu navegador. No se sube nada a ningún servidor.
LocoPad funciona totalmente del lado del cliente, es muy ligero y no requiere cuenta:
Gracias por los comentarios Sinceramente, no sabía si le sería útil a alguien. BASin parece ser popular en la comunidad de Speccy y, aunque por supuesto es un programa mucho más avanzado, le faltan algunas pequeñas comodidades y un flujo de trabajo simple.
Respecto a los botones: no son para cargar/descargar, sino para importar/exportar, por lo que la lógica es correcta; pero si la gente los prefiere al revés, es un cambio que lleva 10 segundos
Entendido… Así que depende de lo que consideres el destino y lo que veas como el origen. Puedo vivir con ello No te preocupes.
No sé qué tan a menudo lo usaré, pero definitivamente lo haré de vez en cuando. Parece genial para probar cosas rápidamente y poder copiar/pegar o guardar.
Y cuando desarrollé mi juego Cameronne, me habría ayudado muchísimo para la reestructuración del código que tenía que hacer de vez en cuando..
Y también el proyecto de bienvenida para probarlo rápidamente.
El proyecto de ejemplo parece ejecutarse muy rápido. ¿La emulación está acelerada?
Un pequeño detalle: como se requiere hacer clic en el botón «Jugar», lo ideal sería que el emulador se iniciara de inmediato sin mostrar el anuncio de «RVM» ni exigir el clic de costumbre.
(Y, pensándolo bien, pasa lo mismo en otras páginas web donde aparece el emulador).
Pequeño error: si has ejecutado el emulador y luego haces clic en la cruz para cerrarlo, el emulador sigue ejecutándose y mantiene el foco del teclado. Por ejemplo, puedes escribir letras, pulsar la flecha arriba o abajo y escuchar el pitido del CPC.
Además, si vuelves a pulsar el botón «reproducir», parece que se inicia otro emulador, ya que la carga del sistema anfitrión aumenta aún más.
Y tendrías que haber visto mi cara cuando descubrí que el botón de ejecutar compila tu código y lanza el emulador…
Con respecto al tema de los botones de importar/exportar, la verdad es que creo que están invertidos. Además, si te fijas, el icono de «Descargar archivo ASCII .BAS estándar» tiene la flecha apuntando hacia arriba, mientras que aquí en el foro se usa ese mismo icono para la función contraria (el botón de Compartir).
Así que compartir e importar vienen a ser lo mismo: estás enviando cosas desde tu ordenador a otros programas; mientras que exportar/descargar… bueno, DEScarga los archivos a tu ordenador y debería tener el icono con la flecha apuntando hacia abajo.
PD: ¿Crees que sería mejor poner los números de línea de la izquierda en un color ligeramente diferente al del texto principal? Es que da la sensación de que se mezclan, al estar justo al lado de los números de línea básicos.
Corregido el cierre involuntario del emulador (fue un fallo bastante tonto por mi parte; limpié el <div> pero no me aseguré de que el emulador dejara de funcionar en segundo plano…)
Botones de importar/exportar intercambiados (listo, ya está corregido)
Ajustados los números de línea del margen (y ya de paso, puse códigos de colores a los números de línea de BASIC):
Excelente panel de preferencias con opciones relevantes.
No recuerdo cuál era la fuente predeterminada.
Efectos de monitor CRT retro:
Es bueno que permita la renderización básica de píxeles sin efectos.
Una emulación de monitor muy fiel sí es buena para trabajos gráficos realmente avanzados, como el de Sylvestre Amstrad CPC - Technique graphique (7-épaisseur & luminosité des pixels). Pero para la mayoría de las demás tareas, incluido el desarrollo en BASIC, considero que los efectos de monitor son totalmente inútiles y un obstáculo.
Pero… ¿parece que los ignora? El emulador siempre se inicia con los efectos activados.
¡Buen trabajo, @Gryzor !
Por lo que he visto, ¡ya es un proyecto muy maduro!
En mi opinión, podría faltar una distinción importante: BASIC 1.0 frente a BASIC 1.1.
Podría ser útil identificar qué instrucciones no están disponibles en el Amstrad CPC 464. Ten en cuenta que no te estoy pidiendo que añadas compatibilidad con BASIC 1.0; solo me gustaría que los usuarios estén al tanto de cualquier requisito específico de BASIC 1.1.
De nuevo, ¡un gran trabajo, felicidades!
¡¡¡Aaaaargh!!! ¡Y yo que estaba listo para publicar la siguiente versión!
Es una sugerencia muy buena, y sí, creo que puedo hacerlo fácilmente porque la información ya está ahí.
Así que, filtrando mis archivos JSON, tengo estos comandos marcados como 1.1:
FRAME, FILL, SWAP, ROUND, MASK, GRAPHICS PEN, GRAPHICS PAPER, DEC$, COPYCHR$, CURSOR, REMAIN, DERR, WINDOW SWAP y las tres sentencias ON BREAK (CONT, GOSUB, STOP). Espero no dejarme nada.
Podemos intentar añadir compatibilidad para esto en LocoPad:
Sugerencias del Linter para CPC 464: Si usas cualquiera de estas 16 instrucciones, el linter mostrará un aviso de compatibilidad con la alternativa para el 464 de fábrica (por ejemplo, sugiriendo CALL &BD19 para FRAME, o intercambio de variables para SWAP).
Insignias del Inspector: El inspector de símbolos y el panel pueden destacar algo como [Solo BASIC 1.1 (CPC 664/6128)] y proporcionar la sintaxis equivalente para el 464 cuando corresponda.
Solo son dos condiciones más por añadir… bueno, en realidad solo una. También tengo que crear una tabla de equivalencias, claro. ¿Alguna fuente para eso?
¡Muchas gracias por tus amables palabras! Significa muchísimo viniendo de ti.