07-24-2012, 07:01 PM
@tachuelita, te traduzco lo que dice @LCD:
ZX BASIC usa la numeración 0..n-1 para las cadenas. O sea, la primera letra de un String A$ sería A$(0), mientras que en el BASIC original del Spectrum es A$(1). Esto se hace por rendimiento. Pero puedes hacer que empiecen en 1, usando el parámetro --string-base=1. Para arrays sucede lo mismo, y puedes usar --array-base=1 para que empiecen en 1, como en el Sinclair BASIC.
También ten en cuenta que cuando ZX BASIC evalúa una condición booleana en un IF, el resultado puede ser 0 (False) o <>0 (True). En el BASIC original de Sinclair siempre era 0 ó 1, aquí no, porque esto da más velocidad. No obstante, puedes forzar que siempre sean 0 ó 1, usando el flag de compilación --strict-bool a costa de un pequeño (mínimo) impacto en el rendimiento.
Por último, si quieres despreocuparte de todo esto, puedes usar el flag --spectrum que activa todo lo de arriba a la vez para mayor compatibilidad.
ZX BASIC usa la numeración 0..n-1 para las cadenas. O sea, la primera letra de un String A$ sería A$(0), mientras que en el BASIC original del Spectrum es A$(1). Esto se hace por rendimiento. Pero puedes hacer que empiecen en 1, usando el parámetro --string-base=1. Para arrays sucede lo mismo, y puedes usar --array-base=1 para que empiecen en 1, como en el Sinclair BASIC.
También ten en cuenta que cuando ZX BASIC evalúa una condición booleana en un IF, el resultado puede ser 0 (False) o <>0 (True). En el BASIC original de Sinclair siempre era 0 ó 1, aquí no, porque esto da más velocidad. No obstante, puedes forzar que siempre sean 0 ó 1, usando el flag de compilación --strict-bool a costa de un pequeño (mínimo) impacto en el rendimiento.
Por último, si quieres despreocuparte de todo esto, puedes usar el flag --spectrum que activa todo lo de arriba a la vez para mayor compatibilidad.