Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Custom Fonts with ASM defb
#1
Hola:

Quiero utilizar un set de caracteres personalizados que tengo en formato defb, pero no encuentro como hacerlo funcionar:

Code:
REM Fuente personalizada
POKE UINTEGER 23606,@Fuente-256

SUB Fuente()
  ASM
    defb 0,128,128,64,23,.........
    defb ...
  END ASM
END SUB

Que estoy haciendo mal?

Gracias por vuestra ayuda!
Duefectu
www.duefectucorp.com
duefectu@sd-a.com
Reply
#2
Duefectu Wrote:Hola:

Quiero utilizar un set de caracteres personalizados que tengo en formato defb, pero no encuentro como hacerlo funcionar:

Code:
REM Fuente personalizada
POKE UINTEGER 23606,@Fuente-256

SUB Fuente()
  ASM
    defb 0,128,128,64,23,.........
    defb ...
  END ASM
END SUB

Que estoy haciendo mal?

Gracias por vuestra ayuda!
Esta bien. Es un buen truco usar lo que has hecho, pero tienes que declarar la SUB como FASTCALL. Así:
Code:
SUB FASTCALL Fuente()
  ASM
    defb 0,128,128,64,23,.........
    defb ...
  END ASM
END SUB
Esto debería funcionar. Prueba y me dices! :roll:
Así mismo, si usas PRINT, prueba los efectos de PRINT BOLD 1; y PRINT ITALIC 1; por si te sirven para algo.
Reply
#3
Gracias por tu ayuda @boriel

La verdad es que tenia un error en los defb, se me habían colado datos antes, por eso no me salían los caracteres correctos.
Por otra parte sin el FASTCALL, la dirección se desplaza 8 bytes, por lo que el poke debía ser "POKE UINTEGER 23606,@Font1-256+8".
Con el FASTCALL se queda en "POKE UINTEGER 23606,@Font1-256"

Por cierto, me encanta tu compilador. Me ha sorprendido la velocidad. He creado un juego en Assembler y estaba trabajando en uno en C con el Z88dk, pero este compilador de BASIC me ha alegrado bastante! :mrgreen:

Buen trabajo!
Duefectu
www.duefectucorp.com
duefectu@sd-a.com
Reply
#4
Lo del desplazamiento de 8 bytes es porque si no usas FASTCALL, el compilador meterá código de gestión de la Pila: las funciones FASTCALL están pensadas para ser implementadas en ensamblador y sólo un parámetro (que irá en registros).
Si se pone más de un parámetro del 2º en adelante irían en la pila y saldrá un Warning.

Me alegro de que te guste el compilador!! Si echas algo en falta o tienes alguna duda no dudes en preguntar.
También tienes la wiki (<!-- m --><a class="postlink" href="http://zxbasic.net">http://zxbasic.net</a><!-- m -->) y el directorio examples/ que viene con el compilador, con un montón de ejemplos.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)