imprimir cadenas de texto y números en ensamblador

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

imprimir cadenas de texto y números en ensamblador

Notapor Kodaly el Dom Oct 02, 2016 4:49 pm

Hola. Estoy probando a imprimir cadenas de texto usando una llamada a la rom (call 8252) y también a imprimir valores de variables llamando a la dirección 6683 de la rom. Funcionar funciona pero el caso es que me salen bugs y cosas raras si uso este método. Por ejemplo, sólo me imprime correctamente un determinado valor dependiendo de dónde lo coloque en el listado.
¿Alguien usa este sistema sin darle problemas? ¿Qué otra forma de imprimir texto y números de forma sencilla con el set de carácteres por defecto del spectrum me recomendáis? Gracias de antemano.
Kodaly
Herbert
 
Mensajes: 71
Registrado: Lun Jul 23, 2012 1:55 pm

Re: imprimir cadenas de texto y números en ensamblador

Notapor mcleod_ideafix el Lun Oct 03, 2016 11:18 pm

Pon un ejemplo (código) de cómo lo haces, a ver si detectamos algo extraño
Web: ZX Projects | Twitter: @zxprojects
Avatar de Usuario
mcleod_ideafix
Johnny Jones
 
Mensajes: 3963
Registrado: Vie Sep 21, 2007 1:26 am
Ubicación: Jerez de la Frontera

Re: imprimir cadenas de texto y números en ensamblador

Notapor climacus el Mar Oct 04, 2016 8:37 am

Kodaly escribió:Hola. Estoy probando a imprimir cadenas de texto usando una llamada a la rom (call 8252) y también a imprimir valores de variables llamando a la dirección 6683 de la rom. Funcionar funciona pero el caso es que me salen bugs y cosas raras si uso este método. Por ejemplo, sólo me imprime correctamente un determinado valor dependiendo de dónde lo coloque en el listado.
¿Alguien usa este sistema sin darle problemas? ¿Qué otra forma de imprimir texto y números de forma sencilla con el set de carácteres por defecto del spectrum me recomendáis? Gracias de antemano.


En el wiki del Speccy de Santiago Romero hay unas rutinas muy útiles:

https://wiki.speccy.org/cursos/ensamblador/gfx4_fuentes
Todos mis juegos en formato físico
http://www.matranet.net/boutique/zx/zx.php
Avatar de Usuario
climacus
Sabreman
 
Mensajes: 407
Registrado: Mar Ago 25, 2009 1:46 pm

Re: imprimir cadenas de texto y números en ensamblador

Notapor Kodaly el Mar Oct 04, 2016 8:36 pm

mcleod_ideafix escribió:Pon un ejemplo (código) de cómo lo haces, a ver si detectamos algo extraño


Mcleod, me he basado en el tutorial de Chuntey: How to write Zx Spectrum games. En concreto, en este código:

ld a,2 ; upper screen
call 5633 ; open channel
ld de,string ; address of string
ld bc,eostr-string ; length of string to print
call 8252 ; print our string
ret
string defb 22,21,31,'!'
eostr equ $

Hay cadenas de texto que las imprime sin problemas, pero al incluir otras (otras incluso iguales que las anteriores para probar) éstas se imrprimen bien pero se producen fallos en el programa, como si se pisara alguna dirección de memoria.

Para imprimir valores de una variable uso esto (también del tutorial anterior):
ld bc,(score)
call 6683

Me ocurre que, siguiendo el ejemplo, según donde ponga score defb 0 en el listado puede imprimirse bien el valor o salen números que no deberían. Si se imprime algún número raro, cambio de lugar score defb 0 y ya va bien. Algo debo hacer mal.

Climacus, gracias a ti también por el enlace. No sabía que también ahí se explicaban rutinas para el charset de la rom.
Kodaly
Herbert
 
Mensajes: 71
Registrado: Lun Jul 23, 2012 1:55 pm

Re: imprimir cadenas de texto y números en ensamblador

Notapor Kodaly el Sab Oct 08, 2016 4:20 pm

Tras varias pruebas creo que el problema viene de lo siguiente. A partir de una zona del listado del programa los datos que meto se corrompen. Esta zona es al final del programa, donde van todos los datos de gráficos y variables. Hay muchísimos bytes que se leen con normalidad y a partir de un punto...empiezan las cosillas raras.

Edito: Novatada. Me he dado cuenta de que la zona de memoria afectada es lógicamente la que uso para el doble buffer. Éste sobreescribe los datos. :oops:
Kodaly
Herbert
 
Mensajes: 71
Registrado: Lun Jul 23, 2012 1:55 pm


Volver a Programación y nuevos desarrollos

¿Quién está conectado?

Usuarios navegando este Foro: No hay usuarios registrados visitando el Foro y 2 invitados