DELETE en tiempo de ejecución, detiene la ejecución

Programando el Amstrad en BASIC, C, etc.
Avatar de Usuario
MoteroV4
Forero habitual
Forero habitual
Mensajes: 106
Registrado: Jue 02 May , 2019 9:26 pm

DELETE en tiempo de ejecución, detiene la ejecución

Mensajepor MoteroV4 » Mié 20 Abr , 2022 8:08 am

Buenas, me he quedado sin memoria en un programa BASIC.

Dentro tengo un par de subrutinas que una vez ejecutadas ya no uso más y he intentado borrarlas en tiempo de ejecución con:

Código: Seleccionar todo

DELETE <margen de números de línea>
, para dejar espacio a las variables.

Para mi sorpresa el programa se para, sin error alguno. La instrucción borra bien pero se interrumpe el programa y sale al sistema operativo, como si hubiera pulsado escape. La documentación del 6128 no dice nada. No veo que tenga más parámetros. En el Manual de Referencia del 464 sí lo avisa, pero no da solución.

Luego le hago manualmente un GOTO a la siguiente línea tras el DELETE para poder continuar el programa, pero eso no es factible.

¿Alguna idea?

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

Re: DELETE en tiempo de ejecución, detiene la ejecución

Mensajepor Poliyo » Mié 20 Abr , 2022 8:22 am

Yo probaria con
CHAIN MERGE ‹file name›[,‹line number expression› | [,[‹line number expression›],DELETE ‹line number range›]]
Loads the specified program from tape or disc, merges it into the program in memory, and starts execution of the merged program. The parameter DELETE ‹line number range› is used to delete part of the original program before running it, if required.

Usando un programa fake

Supongo que te relentizará ejecución al acceder a disco o cinta pero no te rompera ejecución

Avatar de Usuario
MoteroV4
Forero habitual
Forero habitual
Mensajes: 106
Registrado: Jue 02 May , 2019 9:26 pm

Re: DELETE en tiempo de ejecución, detiene la ejecución

Mensajepor MoteroV4 » Jue 21 Abr , 2022 12:46 am

Yo probaria con
CHAIN MERGE ‹file name›[,‹line number expression› | [,[‹line number expression›],DELETE ‹line number range›]]
Loads the specified program from tape or disc, merges it into the program in memory, and starts execution of the merged program. The parameter DELETE ‹line number range› is used to delete part of the original program before running it, if required.

Usando un programa fake

Supongo que te relentizará ejecución al acceder a disco o cinta pero no te rompera ejecución
Muchas gracias @Poliyo, me obliga a hacer 2 pequeñas cargas extras de disco (o cinta) pero me hace el apaño. Funciona. :D


¿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