Corrupción en la VRAM

Door assembler

Champion (378)

afbeelding van assembler

12-04-2011, 08:50

Tengo una rutina que borra una determinada zona de la pantalla.

Cuando tengo las interrupciones activas (donde, entre otras cosas, actualizo los sprites desde un buffer), en determinadas zonas de la pantalla aparecen caracteres que no corresponden.

He probado a desactivar las interrupciones totalmente y el resultado es el esperado.

Para borrar utilizo la llamada a la bios FILVRM. He probado a colocar un DI y un EI antes y después de la llamada a dicha función, y falla igualmente.

¿Hay algo que se me esté escapando?

Muchas gracias.

Aangemeld of registreer om reacties te plaatsen

Van assembler

Champion (378)

afbeelding van assembler

12-04-2011, 10:54

Acabo de ver lo que fallaba.

He revisado el código de la función en la BIOS y ella solita se encargaba de activar la interrupción.

He copiado el código para hacer mi propia función de relleno y de paso he hecho lo mismo con la función LDIRVM

Lo que se aprende mirandole las tripas al MSX Tongue

Van anonymous

incognito ergo sum (109)

afbeelding van anonymous

12-04-2011, 16:09

La BIOS es tu amiga... hasta que deja de serlo LOL!LOL!LOL!

Van assembler

Champion (378)

afbeelding van assembler

12-04-2011, 20:19

Supongo que sirve para aprovecharte de las cosas que hace mientras no te preparas tus propias rutinas que hacen lo que tú quieres como tú quieres...

Van anonymous

incognito ergo sum (109)

afbeelding van anonymous

12-04-2011, 20:47

...y cuando tú quieres. Y sin sorpresas como un EI al salir Wink

Van mesiasmsx

Prophet (3173)

afbeelding van mesiasmsx

14-04-2011, 22:39

La BIOS es tu amiga... hasta que deja de serlo LOL!LOL!LOL!

Dimelo a mi. 8 años comiendo Bios de Danone pa que...pa naaa

TongueTongue

Van assembler

Champion (378)

afbeelding van assembler

15-04-2011, 13:18

XD