Duda tonta tamaño VRAM

Programando el Amstrad en Ensamblador.
Reglas del Foro
Debido a que hay varios temas pidiendo ayuda para programar en ensamblador máquinas distintas al Amstrad CPC, con micro distinto al Z80 y que incluso dependen del sistema operativo, nos vemos en la necesidad de poner por escrito que estos posts son bienvenidos pero que no es el lugar adecuado ya que por estos lares nos dedicamos más al ensamblador del Z80, un microprocesador de 8 bits que tuvo su gran auge en ordenadores y consolas de los años 80.

De todas formas, esto no quita que alguien que sepa del asunto pueda postear alguna respuesta pero es más fácil encontrar foros dedicados a programar en ensamblador en Windows o MS-DOS que ayudarán más que nosotros:
http://www.lawebdelprogramador.com/news ... nsamblador
Susso
Lechoncillo
Lechoncillo
Mensajes: 23
Registrado: Jue 13 Nov , 2014 6:13 pm

Duda tonta tamaño VRAM

Mensajepor Susso » Jue 20 Nov , 2014 11:33 am

Buenas again! me pasa una cosa rara, me dispongo a rellenar de unos la vram para empezar a trabajar con máscaras, estoy con el modo 1 de 4 colores, que yo sepa esta resolución tiene 320 pixels por 200, así que...
320 pixels/8*2=80 bytes ocupa cada línea que multiplicado por 200 líneas me salen 16000 bytes en total a rellenar la vram con unos.
Así que:

Código: Seleccionar todo

ld hl,#C000
ld de,#C001
ld a,#ff
ld (hl),a
ld bc,16000-1
ldir


Pero me quedan todavía líneas sin rellenar y no son 16000 sino que a pelo compruebo que son 16336 bytes :8o
¿donde me estoy equivocando? #-o

Nuevamente gracias.

Avatar de Usuario
Artaburu
Trasteador
Trasteador
Mensajes: 6582
Registrado: Vie 07 Oct , 2005 6:18 pm
Ubicación: En tu pantalla

Re: Duda tonta tamaño VRAM

Mensajepor Artaburu » Jue 20 Nov , 2014 12:02 pm

Simplificando muchísimo:

Es que el CPC en su configuración estándar no muestra los 16Kbs completos, además, tal como se configuran los caracteres y las líneas, hay un punto en el que hay un salto y se dejan bytes sin utilizar. Estos serían los últimos bytes de cada línea del último caracter de la pantalla en configuración estándar (caracter de abajo a la derecha):
&C7CF
&CFCF
&D7CF
&DFCF
&E7CF
&EFCF
&F7CF
&FFCF
los bytes que vande desde cada &XXCF hasta &XXFF no se representan en pantalla. Al rellenar 16000 bytes linealmente, estás escribiendo esos bytes (los de las primeras filas) y sin embargo no llegas a las últimas.

Imagino que te he liado más que aclarar :mrgreen:
Salu2,
Arta

Susso
Lechoncillo
Lechoncillo
Mensajes: 23
Registrado: Jue 13 Nov , 2014 6:13 pm

Re: Duda tonta tamaño VRAM

Mensajepor Susso » Jue 20 Nov , 2014 12:07 pm

No, que va! Lo entiendo!
Hay 42 bytes extras por cada 2000 como basura.
Ok ok!!!! Esta muy claro.
Muchas gracias!

Avatar de Usuario
ronaldo
Megaforero
Megaforero
Mensajes: 279
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: Duda tonta tamaño VRAM

Mensajepor ronaldo » Dom 23 Nov , 2014 1:00 am

En realidad no son basura: se utilizan para hacer el scroll por hardware con los registros R12 y R13 del CRTC. El inicio de la memoria de vídeo se puede cambiar para que no sea C000 y así cambiar los bytes que son mostrados en pantalla. El firmware lo usa para hacer el scroll vertical que sucede al bajar de la línea 25.

Susso
Lechoncillo
Lechoncillo
Mensajes: 23
Registrado: Jue 13 Nov , 2014 6:13 pm

Re: Duda tonta tamaño VRAM

Mensajepor Susso » Dom 23 Nov , 2014 2:06 am

Ok! Ok! ¿Si no se utiliza esos registros de scroll por hardware se puede rellenar sin priblemas esos 42 bytes con cualquier cosa?
Es que quiero rellenar toda la vram de un tiro por cuestión de velocidad y no 2000 bytes si o otros 42 no, otros 2000 si...

Avatar de Usuario
robcfg
Keeper of The Forum
Keeper of The Forum
Mensajes: 787
Registrado: Jue 03 Abr , 2008 5:32 pm
Ubicación: Madrid

Re: Duda tonta tamaño VRAM

Mensajepor robcfg » Dom 23 Nov , 2014 11:14 am

Ten tambien en cuenta que la memoria de video del CPC no es lineal, sino que va por lineas de caracteres.

Mas informacion aqui.

Avatar de Usuario
ronaldo
Megaforero
Megaforero
Mensajes: 279
Registrado: Sab 14 Sep , 2013 9:31 pm
Ubicación: Alicante
Contactar:

Re: Duda tonta tamaño VRAM

Mensajepor ronaldo » Dom 23 Nov , 2014 11:39 am

Susso escribió:Ok! Ok! ¿Si no se utiliza esos registros de scroll por hardware se puede rellenar sin priblemas esos 42 bytes con cualquier cosa?

Por supuesto. La RAM puedes llenarla siempre con lo que te dé la gana. Lo único que puede darte problemas es que sobreescribas la zona del firmware teniéndolo activo o la zona RST del principio de la memoria. El resto de la memoria es tuya, puedes hacer con ella lo que quieras :D.

Por darte un apunte, hace poco hicimos un juego en BASIC en el que guardábamos cosas en la zona que no se estaba mostrando de la VRAM (que, en Amstrad no es más que una zona de la RAM normal). Así que mete ahí lo que quieras :D


Volver a “Ensamblador”

¿Quién está conectado?

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

La Comunidad Española
ESP Soft, juegos para tu CPC Foro de Amstrad CPC Todos los juegos para CPC en un CD El portal del CPC Web dedicada al Amstrad CPC (utilidades) Información útil para el CPC (talleres) El sitio del Amstrad CPC Mundo CPC Pree Play then any Key CPC Basic