Vale, he desinstalado la versión de ayer (zxbasic-1.2.6r1550.msi 19-Apr-2010 19:35 2.4M), he instalado la de hoy, y he hecho pruebas.
1.- Activando -O 3, si incluyo screen.bas sigo obteniendo los mismos warnings,
pero compila y funciona perfectamente. Código: Seleccionar todo
F:\Dev\Speccy\Cabezooon>"\Dev\Utils\zxbasic\zxb.exe" -O3 -T -B -a cabezooon.bas
cabezooon.bas:29: warning: Variable 'col' is never used
cabezooon.bas:29: warning: Variable 'row' is never used
INFO: __STORE_STR is not defined. No optimization is done.
INFO: BORDER is not defined. No optimization is done.
INFO: COPY_ATTR is not defined. No optimization is done.
INFO: CLS is not defined. No optimization is done.
INFO: __EQ16 is not defined. No optimization is done.
INFO: __LOADSTR is not defined. No optimization is done.
INFO: __STORE_STR2 is not defined. No optimization is done.
INFO: __STREQ is not defined. No optimization is done.
INFO: __FTOU32REG is not defined. No optimization is done.
INFO: __STRLEN is not defined. No optimization is done.
INFO: __STRSLICE is not defined. No optimization is done.
INFO: __ASC is not defined. No optimization is done.
INFO: __MEM_FREE is not defined. No optimization is done.
INFO: __MEM_ALLOC is not defined. No optimization is done.
INFO: PROC0.__S_SCRNS_BC is not defined. No optimization is done.
INFO: __FPSTACK_POP is not defined. No optimization is done.
INFO: PROC0.RECLAIM2 is not defined. No optimization is done.
INFO: __U8TOFREG is not defined. No optimization is done.
INFO: __AND8 is not defined. No optimization is done.
INFO: BRIGHT_TMP is not defined. No optimization is done.
INFO: PRINT_STR is not defined. No optimization is done.
INFO: __ILOADSTR is not defined. No optimization is done.
INFO: PRINT_STR_FREE is not defined. No optimization is done.
INFO: PRINT_EOL_ATTR is not defined. No optimization is done.
INFO: BEEP is not defined. No optimization is done.
INFO: __NEF is not defined. No optimization is done.
INFO: __SUB32 is not defined. No optimization is done.
INFO: __AND16 is not defined. No optimization is done.
INFO: __I32TOFREG is not defined. No optimization is done.
INFO: CHR is not defined. No optimization is done.
INFO: __MUL16_FAST is not defined. No optimization is done.
INFO: __MUL8_FAST is not defined. No optimization is done.
INFO: RANDOMIZE is not defined. No optimization is done.
INFO: __STRNE is not defined. No optimization is done.
INFO: __ADDSTR is not defined. No optimization is done.
INFO: __PRINTI16 is not defined. No optimization is done.
INFO: PRINT_EOL is not defined. No optimization is done.
INFO: __PAUSE is not defined. No optimization is done.
cabezooon.bas:20: warning: Variable 'i' is never used
cabezooon.bas:22: warning: Variable 'k' is never used
cabezooon.bas:21: warning: Variable 'j' is never used
2.- El string slicing: ya no se cuelga, pero parece que cadena (0 To -1) devuelve "cadena", sin hacer nada, en lugar de devolver la cadena vacía. Con este código:
Código: Seleccionar todo
pass = "A"
print at 0,0;pass;" "
pass = pass (0 To Len (pass) - 2)
print at 1,0;pass;" "
Como pass vale "A", Len (pass) vale 1. En la asignación, por tanto, se hace pass = pass (0 To -1), que devería devolver "". Sin embargo, en el segundo print se imprime "A".
3.- EDITO: Comparación de cadenas: Sigue sin funcionar correctamente. Sólo es necesario que tengan el mismo número de carácteres para que una comparación devuelva "cierto":
Código: Seleccionar todo
pass = "ITYC"
Print pass
If pass = "CACA" Then
Print "check"
Else
Print "not check"
End If
Imprime "check".