Establecer modo de pantalla SCREEN 2 sin llamar a la BIOS

By Visualedu

Resident (33)

Visualedu's picture

03-02-2019, 18:15

Hola, ¿sabéis que registros del VDP debo modificar para cambiar el modo a SCREEN 2 (para MSX1)? (para sustituir la llamada a la función de la BIOS CHGMOD)
He probado a introducir el valor 00000010b en el registro 0 pero parece no ser correcto porque me aparece toda la pantalla en colores rojos Sad.
Esto es lo que he intentado:
IN A,(#99) ;Sincronizo con el VDP
ld a,00000010b ;valor que indica SCREEN 2
out (#99),a
ld a,128 ;Registro 0 (+128)
out (#99),a

Gracias, Visualedu

Login or register to post comments

By [WYZ]

Champion (406)

[WYZ]'s picture

03-02-2019, 19:36

Hola,

Pues no es muy recomendable hacer el cambio de modo de video BIOS free, por eso mismo yo lo suelo hacer Smile
Te pongo aquí algunos modos y mi rutina para cargarlo:

Para llamar el modo:

LD HL,SCREEN2
CALL SCREEN_MODE
;SCREEN MODE
;IN [HL]=DIRECCION DE VALORES DEL VDP

SCREEN_MODE:    LD      BC,$8099        
SCRMDJR0:       OUTI
                INC     B
                OUT     [C],B
                INC     B
                
                BIT     3,B
                JR      Z,SCRMDJR0
                
                LD      DE,VDPREG+8
                LD      BC,$0008
                LDDR
                RET
                
SCREEN2:        DB      $02,$E0,$06,$FF,$03,$36,$07,$01         ;SCREEN 2 - 16X16 NOMAG
SCREEN1:        DB      $00,$E3,$06,$80,$00,$36,$07,$01
SCREEN3:        DB      $00,$E8,$02,$00,$00,$36,$07,$01   
KONAMI_SCR:  DB	$02,$E2,$0E,$7F,$07,$76,$03,$E0

Espero que te sirva

By Visualedu

Resident (33)

Visualedu's picture

03-02-2019, 20:11

Bingo! gracias WYZ!,
ya lo tengo funcionando sin llamar a CHGMOD. (También me arriesgaré a hacer el cambio BIOS free Smile )

Visualedu

By Visualedu

Resident (33)

Visualedu's picture

08-02-2019, 18:29

Hola de nuevo, aunque funciona la función (thanks again!). Lo he estado pensando y supongo que tal como dices siempre es recomendable usar las funciones de la BIOS.
Si mi intención es generar una rom de 64K siempre podría paginar de forma puntual con el registro A8 para que la página 0 apunte al slot 0 (BIOS) y llamar a CHGMOD. Inmediatamente después podría restituir la página 0 de mi rom.
¿estoy en lo cierto?
¿generan alguna problemática los cambios puntuales en el registro de A8?

Gracias

By [WYZ]

Champion (406)

[WYZ]'s picture

08-02-2019, 22:39

A gusto del consumidor Smile
No creo que haya ningún problema, también es cuestión de probarlo.

64kb... eso suena a juegaco.

By Visualedu

Resident (33)

Visualedu's picture

09-02-2019, 00:27

64k en mi caso suenan a un aprovechamiento poco optimizado de los recursos Wink