HispaMSX

Re: [hispamsx] final bout

2001-06-25 10:09:04


"Fernandez D. Sopra-Bull" wrote:

Hola!


Pues no tengo ni idea. De qué MSX2 se trata??

Hasta luego


Hmmm ... creo que se donde está el problema

Desgraciadamente los holandeses son tan listos que probaron su moonblaster para 
sus
fm-pacs y como consecuencia no funcionan perfectamente todos, o algo así no 
recuerdo.

El caso es que en los japoneses hay que poner el bit 0 de la dirección 07FF6h 
de la rom
del FM, a 1
para que funcione la cosa ...

Aquí adjunto una rutina ASM que realiza la búsqueda y arregla el problema.

 FIND FM
; Busca e inicializa si es necesario el FM
; Si es un cartucho externo hay que inicializarlo (Antes de OPLL hay PAC2)
; Si es interno no hace falta. Ademas en los 2+ de Panasonic se cuelga
; Si se inicializa.

Bdos : equ  05h ; o 0F37Dh si es basic

FindFM_PAC: call FindFM
 push de
 di
 ld a,(0F342h)
 ld h,040h
 call 024h
 ei
 pop de
 ld c,09h
 jp Bdos


FindFM: ld hl,0FCCAh
 xor a
 ld b,4
FMLP2: push bc
 ld b,4
FMLP1: push bc
 push af
 push hl
 set 7,a
 di
 ld h,040h
 call 024h
 ei
 pop hl
 push hl
 ld a,(hl)
 cp 020h
 call z,FMTest
 jp z,FMFnd
 pop hl
 pop af
 add a,4
 and 0Fh
 inc hl
 inc hl
 inc hl
 inc hl
 pop bc
 djnz FMLP1
 add a,1
 and 03h
 pop bc
 djnz FMLP2
 ld de,NoFM_txt
 ei
 ret
FMTest: ld hl,0401Ch
 ld de,FMText
 ld b,4
FMLP: ld a,(de)
 cp (hl)
 ret nz
 inc hl
 inc de
 djnz FMLP
 cp a
 ret
FMFnd: pop hl
 pop af
 pop bc
 pop bc
 ld a,(SaveChip)
 set 1,a
 ld (SaveChip),a
 ld (SaveMusPlay),a
FM_Check: ld hl,04018h
 ld de,FM_Japones
 ld b,4
Japo: ld a,(de)
 cp (hl)
 jp nz,Es_Japones
 inc hl
 inc de
 djnz Japo
 ei
 ld de,Internal_txt
 ret
Es_Japones: ld a,(07FF6h)
 or 1
 ld (07FF6h),a
 ei
 ld de,External_txt
 ret
FMText: defm "OPLL"
FM_Japones: defm "APRL"
Internal_txt: defm "Internal FM found."
 defb 0Dh,0Ah,"$"
External_txt: defm "External FM found."
 defb 0Dh,0Ah,"$"
NoFM_txt: defm "FM Not Found!!!!! :("
 defb 0Dh,0Ah,"$



--
Un saludo,

Armando Pérez Abad
HELIO YAGO, S.L.
http://www.bogamari.com
Tlf: (96) 363 43 17
Fax: (96) 390 27 17



<Anterior en la conversación] Conversación actual [Siguiente en la conversación>