Un 0 en BASIC

Avatar de Usuario
frankrodiii
Mensajes: 557
Registrado: 26 May 2019 14:46
Ubicación: ??!!!#=?¿****!!! ©
Agradecido : 411 veces
Agradecimiento recibido: 231 veces
Contactar:

Un 0 en BASIC

Mensajepor frankrodiii » 03 Ago 2022 19:40

Hace un par de días estaba comentando por un grupo del telegram un tema que ha surgido interesante. Se trata del uso de la línea 0 en BASIC.

Iván Izaguirre nos adjuntó una publicación del ANSI sobre un hipotético BASIC estándar. La parte que nos concierne nos la cita:
Line-number zero is not allowed; leading zeroes shall have no effect. Lines shall occur in ascending line-number order (cf. Section 16). All references to line-numbers within a program unit shall be to line-numbers of lines within that program-unit. The number of digits in a line-number shall not exceed 5. The value of a line-number shall not exceed 50000.


Por lo tanto no puede haber una línea 0, ni una 01, 001, así como que tampoco puede haber una línea 50001 en adelante.

Pero claro, de todo hay en la viña del Señor. Hace tiempo estaba cacharreando el emulador del Applesoft BASIC escrito en JavaScript, y varios programas utilizan esa línea, la mayoría son REM comentando de qué va el programa.

El DOS 3.3 al cargarte el Integer BASIC (el WozBASIC podríamos decir -507 ) en memoria te da opción a usarlo y este te deja sólo hasta la línea 32767. Poniendo más líneas te salta este error. Me gusta la retórica de los errores del integer BASIC, abreviados pero explicativos.

Código: Seleccionar todo

*** >32767 ERR

El del Applesoft, en estos menesteres es más o menos lo mismo pero te deja hasta la línea 63999. A partir de la 64000 ya te suelta un syntax error.

Por último y esto ya fuera de tema pero me hace gracia comentarlo. El Applesoft te deja reconducir errores con el comando ONERR GOTO y el RESUME. Una manera de usarlo bastante interesante es para salir de algun programa con bucle infinito que te trastoca los modos de video. Puedes decir que cuando ocurra un error que te devuelva al modo texto y si quieres que te borre toda la pantalla.

En vuestro sistema favorito, podéis escribir en la línea 0? Hasta dónde llega vuestro BASIC? Tenéis la posibilidad de gestionar errores?
frankrodriguez.net - -m4c SE/30 - SiDi - Apple IIc

jltursan
Mensajes: 4622
Registrado: 20 Sep 2011 13:59
Ubicación: Madrid
Agradecido : 667 veces
Agradecimiento recibido: 1506 veces
Contactar:

Re: Un 0 en BASIC

Mensajepor jltursan » 03 Ago 2022 21:32

¿0?, mucho mejor que eso...

LynxBASIC.png
LynxBASIC.png (2.04 KiB) Visto 468 veces

Avatar de Usuario
mgyv
Mensajes: 93
Registrado: 10 May 2021 21:49
Ubicación: Vigo
Agradecido : 103 veces
Agradecimiento recibido: 71 veces

Re: Un 0 en BASIC

Mensajepor mgyv » 03 Ago 2022 21:36

En el spectrum 48k, por defecto desde el editor no te dejaba,..
Pero se podía convertir la linea 1 en la línea 0 a base de pokes (si la memoria no me falla):
poke peek 23635+256 * peek 23636,0
Y convertir de nuevo la linea 0 en la 1:
poke peek 23635+256 * peek 23636,1
Lo curioso es que la línea 0 no la podías borrar. Se utilizaba mucho en las cabeceras de los juegos para que no tocaras.
-coam1 A2000 [TF534+6mb ZII+opalvision], A500 [ide68k+1.5 slow], CD32 [TF330], PiStorm

Avatar de Usuario
mgyv
Mensajes: 93
Registrado: 10 May 2021 21:49
Ubicación: Vigo
Agradecido : 103 veces
Agradecimiento recibido: 71 veces

Re: Un 0 en BASIC

Mensajepor mgyv » 03 Ago 2022 21:37

Creo que me colé un +1 (no recuerdo bien)
poke peek 23635+256 * peek 23636 +1,0
-coam1 A2000 [TF534+6mb ZII+opalvision], A500 [ide68k+1.5 slow], CD32 [TF330], PiStorm

Avatar de Usuario
frankrodiii
Mensajes: 557
Registrado: 26 May 2019 14:46
Ubicación: ??!!!#=?¿****!!! ©
Agradecido : 411 veces
Agradecimiento recibido: 231 veces
Contactar:

Re: Un 0 en BASIC

Mensajepor frankrodiii » 03 Ago 2022 21:49

jltursan escribió:¿0?, mucho mejor que eso...

Se han superado. -drinks Por cierto qué bonita que es la "tipografía" del Camputers Lynx... y también la del QL.
frankrodriguez.net - -m4c SE/30 - SiDi - Apple IIc

Avatar de Usuario
minter
Mensajes: 4088
Registrado: 22 Jul 2014 18:51
Agradecido : 5477 veces
Agradecimiento recibido: 2078 veces

Re: Un 0 en BASIC

Mensajepor minter » 03 Ago 2022 21:56

frankrodiii escribió:En vuestro sistema favorito, podéis escribir en la línea 0? Hasta dónde llega vuestro BASIC? Tenéis la posibilidad de gestionar errores?


Linea 0.jpg
Linea 0.jpg (35.71 KiB) Visto 452 veces


Y si queremos volver sobre la línea 0...

Linea 01.jpg
Linea 01.jpg (34.27 KiB) Visto 447 veces

-507

Avatar de Usuario
mgyv
Mensajes: 93
Registrado: 10 May 2021 21:49
Ubicación: Vigo
Agradecido : 103 veces
Agradecimiento recibido: 71 veces

Re: Un 0 en BASIC

Mensajepor mgyv » 03 Ago 2022 22:23

Vamos a hacerlo mejor (antes me pillasteis con prisa, -grin )
Spectrum01.png
Spectrum01.png (2.25 KiB) Visto 437 veces


Spectrum02.png
Spectrum02.png (1.91 KiB) Visto 437 veces


Spectrum03.png
Spectrum03.png (2.58 KiB) Visto 437 veces


Si al final me vais a hacer montar el spectrum de mi sobrino -507
-coam1 A2000 [TF534+6mb ZII+opalvision], A500 [ide68k+1.5 slow], CD32 [TF330], PiStorm

Avatar de Usuario
Peluko
Mensajes: 25
Registrado: 27 Jun 2022 15:47
Agradecido : 16 veces
Agradecimiento recibido: 17 veces

Re: Un 0 en BASIC

Mensajepor Peluko » 03 Ago 2022 23:14

Parece que el MSX Basic no tiene problemas con la línea 0. Pero es curioso cómo añade un espacio extra después del número al hacer el 'list':

Imagen

Y se traga hasta la 65529:

Imagen

Saludos.
Adjuntos
IMG_6153.jpeg
(656.33 KiB) No descargado aún
IMG_6152.jpeg
(730.79 KiB) No descargado aún

Avatar de Usuario
carlosjuliopr
Mensajes: 543
Registrado: 20 Ago 2012 22:13
Ubicación: Puerto Rico
Agradecido : 193 veces
Agradecimiento recibido: 97 veces

Re: Un 0 en BASIC

Mensajepor carlosjuliopr » 04 Ago 2022 06:29

frankrodiii escribió:En vuestro sistema favorito, podéis escribir en la línea 0? Hasta dónde llega vuestro BASIC? Tenéis la posibilidad de gestionar errores?


En el Commodore 128 si se puede :

xc128 linea 0 si se puede.png
xc128 linea 0 si se puede.png (88.06 KiB) Visto 362 veces


y a línea final llega a 63999, 64000 da syntax error -thumbup
"We need to build computers for the masses, not the classes",Jack Tramiel -cocbm1

Avatar de Usuario
frankrodiii
Mensajes: 557
Registrado: 26 May 2019 14:46
Ubicación: ??!!!#=?¿****!!! ©
Agradecido : 411 veces
Agradecimiento recibido: 231 veces
Contactar:

Re: Un 0 en BASIC

Mensajepor frankrodiii » 04 Ago 2022 14:38

Creo que podemos llegar a la conclusión que los BASIC de microsoft van de la 0 a la 63999. Más allá syntax error. -thumbup
frankrodriguez.net - -m4c SE/30 - SiDi - Apple IIc

Avatar de Usuario
Peluko
Mensajes: 25
Registrado: 27 Jun 2022 15:47
Agradecido : 16 veces
Agradecimiento recibido: 17 veces

Re: Un 0 en BASIC

Mensajepor Peluko » 04 Ago 2022 19:35

frankrodiii escribió:Creo que podemos llegar a la conclusión que los BASIC de microsoft van de la 0 a la 63999. Más allá syntax error. -thumbup

El de MSX traga hasta la 65529

Avatar de Usuario
minter
Mensajes: 4088
Registrado: 22 Jul 2014 18:51
Agradecido : 5477 veces
Agradecimiento recibido: 2078 veces

Re: Un 0 en BASIC

Mensajepor minter » 04 Ago 2022 21:17

Amiga Basic by Mricrosoft.jpg
Amiga Basic by Mricrosoft.jpg (63.06 KiB) Visto 234 veces

Amiga Basic by Mocosoft.jpg
Amiga Basic by Mocosoft.jpg (72.88 KiB) Visto 233 veces

afx
Mensajes: 717
Registrado: 25 Nov 2010 23:26
Agradecido : 60 veces
Agradecimiento recibido: 97 veces

Re: Un 0 en BASIC

Mensajepor afx » 04 Ago 2022 21:41

Por curiosidad he comprobado el rango de números de línea válido en el SuperBasic del QL. La línea 0 no es válida y el número de línea más alto permitido es el 32767. Curioso...

QL_Line0.png
QL_Line0.png (484.25 KiB) Visto 227 veces

Elurdio
Mensajes: 410
Registrado: 07 Dic 2021 21:33
Ubicación: Barcelona
Agradecido : 90 veces
Agradecimiento recibido: 84 veces

Re: Un 0 en BASIC

Mensajepor Elurdio » 04 Ago 2022 23:25

afx escribió:Por curiosidad he comprobado el rango de números de línea válido en el SuperBasic del QL. La línea 0 no es válida y el número de línea más alto permitido es el 32767. Curioso...

QL_Line0.png


32767 es el mayor número positivo de un entero de 2 bytes en complemento a dos.

Avatar de Usuario
frankrodiii
Mensajes: 557
Registrado: 26 May 2019 14:46
Ubicación: ??!!!#=?¿****!!! ©
Agradecido : 411 veces
Agradecimiento recibido: 231 veces
Contactar:

Re: Un 0 en BASIC

Mensajepor frankrodiii » 04 Ago 2022 23:47

Me lo esperaba del QL. Recuerdo probar el BASIC del spectrum (no está hecho por los mismos, lo sé) y era mucho más estricto en su sintaxis.
frankrodriguez.net - -m4c SE/30 - SiDi - Apple IIc

Avatar de Usuario
cpcbegin
Mensajes: 376
Registrado: 27 Ago 2014 22:02
Agradecido : 222 veces
Agradecimiento recibido: 153 veces
Contactar:

Re: Un 0 en BASIC

Mensajepor cpcbegin » 05 Ago 2022 02:45

Cuando he visto el título he pensado que a alguien habían cateado en Basic. -rofl
He probado y tal como recordaba el Locomotive Basic de los CPC no soportaba 0 ni no reales como números de línea.
La verdad es que no le veo ningún problema teniendo el comando renum.
Otra cosa es que no tuviera CLS, control de errores o gestión de interrupciones... -507

¡Ah! La línea máxima está entre 65000 y 66000 por lo que he comprobado.


Volver a “General”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado