Página 3 de 6

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 16:34
por chernandezba
Si, porque los bloques de timex son de 8kb, mientras que vosotros los dividís en 16kb, por eso el bloque 24 vuestro de 16 kb son los dos bloques primeros de EX

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 18:01
por Rickyarg
antoniovillena escribió:Ah vale, gracias. Pone EX bank 0 & 1. Pues me pongo con la ROM y comento los resultados por aquí.
Excelente! Muchas gracias!

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 19:08
por antoniovillena
chernandezba escribió:Si, porque los bloques de timex son de 8kb, mientras que vosotros los dividís en 16kb, por eso el bloque 24 vuestro de 16 kb son los dos bloques primeros de EX
De todas formas me viene bien, porque así no tengo que usar compresión. En una parte pequeña de esos 8Kb que sobran irá el código que reubique los bancos y que inicialice en el TS2068 en modo no root.

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 19:20
por mcleod_ideafix
antoniovillena escribió:
chernandezba escribió:Si, porque los bloques de timex son de 8kb, mientras que vosotros los dividís en 16kb, por eso el bloque 24 vuestro de 16 kb son los dos bloques primeros de EX
De todas formas me viene bien, porque así no tengo que usar compresión. En una parte pequeña de esos 8Kb que sobran irá el código que reubique los bancos y que inicialice en el TS2068 en modo no root.
La pregunta es: por qué necesitas el modo rooted? Toda la memoria que necesita el Timex, incluyendo aquella donde se ubican los 8KB de ROM extra, está disponible cuando se activa la MMU horizontal. Te haría falta una ROM de 32KB (como la del 128K). El ROM 0 habría un pequeño programa cuyo cometido se describe a contnuación, más los 8KB de ROM extra. En ROM 1 estaría la ROM principal del Timex.

Al arrancar desde ROM 0, se activaría el soporte de MMU horizontal de Timex, se copiarían 8KB de memoria desde esa misma ROM hacia el bloque 0 de EX (quizás usando RAM como paso intermedio). Luego, se paginaría ROM 1 donde estarían los 16KB de la ROM principal del Timex, se fijaría el bit de inhabilitar cambio de ROM para el puerto 7FFD y 1FFD para impedir que se pueda cambiar de ROM accidentalmente, y por último, se iniciaría la ROM principal con un JP 0.

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 19:56
por mcleod_ideafix
Algo como esto (no probado)

Código: Seleccionar todo

ZXUNOADDR               equ 0fc3bh
DEVCONTROL              equ 0eh
DEVCTRL2                equ 0fh
TIMEXSCREEN             equ 0ffh
TIMEXMMU                equ 0f4h

                        org 0000h

Start                   di
                        ld hl,CodigoParaRAM
                        ld de,23296
                        ld bc,LCodigoParaRAM
                        ldir
                        jp 23296

CodigoParaRAM           ;Esto se ejecutará en realidad en RAM
                        ld bc,ZXUNOADDR
                        ld a,DEVCONTROL
                        out (c),a
                        inc b
                        ld a,01001000b  ;habilita MMU y deshabilita puerto 1FFDh
                        out (c),a
                        dec b
                        ld a,DEVCTRL2
                        out (c),a
                        inc b
                        xor a
                        out (c),a       ;habilita modos Timex

                        ld a,128        ;selecciona EX-ROM for MMU
                        out (TIMEXSCREEN),a
                        ld a,1
                        out (TIMEXMMU),a  ;pagina banco 0 de EXROM en area 0000-1FFF
                        ld hl,2000h
                        ld de,0
                        ld bc,8192
                        ldir
                        xor a
                        out (TIMEXMMU),a  ;despagina banco 0 de EXROM
                        out (TIMEXSCREEN),a  ;resetea registro de modo de pantalla del Timex

                        ld bc,7FFDh
                        ld a,00110000b   ;pagina ROM 1 y bloquea cualquier otra operación de paginación
                        jp 0             ;salta a la ROM 1, que es la principal del Timex
                        
LCodigoParaRAM          equ $-CodigoParaRAM

                        org 2000h
EXROMCode               incbin "exrom.bin"   ; ROM extra para Timex (8 KB)

                        org 4000h
                        incbin "ts2068.bin"  ; ROM principal de Timex (16 KB)


Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 19:57
por antoniovillena
mcleod_ideafix escribió: La pregunta es: por qué necesitas el modo rooted?
Porque quiero mover el contenido de la ROM de un sitio a otro. La BIOS por defecto carga los 32Kb en los bancos 8 y 9. Yo quiero que estén en los bancos 8 y mitad inferior del 24. Si se puede escribir en el banco 24 en modo no rooted, es posible hacerlo más fácil aunque no sería la ROM exacta (tendría un pequeño parche).

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 20:02
por antoniovillena
No veo cómo mueves los 8Kb de EXROM. Me explico. La BIOS cargará los 32Kb de la ROM de la siguiente forma.

-Primeros 16K (código y EXROM) en banco 8
-Siguientes 16K (Main ROM) en banco 9

El main ROM lo cargas bien porque paginas el banco 9 y justo después deshabilitas. Pero la EXROM debería ir al banco 24 del ZX-Uno. ¿No es así?
mcleod_ideafix escribió:Algo como esto (no probado)

Código: Seleccionar todo

ZXUNOADDR               equ 0fc3bh
DEVCONTROL              equ 0eh
DEVCTRL2                equ 0fh
TIMEXSCREEN             equ 0ffh
TIMEXMMU                equ 0f4h

                        org 0000h

Start                   di
                        ld hl,CodigoParaRAM
                        ld de,23296
                        ld bc,LCodigoParaRAM
                        ldir
                        jp 23296

CodigoParaRAM           ;Esto se ejecutará en realidad en RAM
                        ld bc,ZXUNOADDR
                        ld a,DEVCONTROL
                        out (c),a
                        inc b
                        ld a,01001000b  ;habilita MMU y deshabilita puerto 1FFDh
                        out (c),a
                        dec b
                        ld a,DEVCTRL2
                        out (c),a
                        inc b
                        xor a
                        out (c),a       ;habilita modos Timex

                        ld a,128        ;selecciona EX-ROM for MMU
                        out (TIMEXSCREEN),a
                        ld a,1
                        out (TIMEXMMU),a  ;pagina banco 0 de EXROM en area 0000-1FFF
                        ld hl,2000h
                        ld de,0
                        ld bc,8192
                        ldir
                        xor a
                        out (TIMEXMMU),a  ;despagina banco 0 de EXROM
                        out (TIMEXSCREEN),a  ;resetea registro de modo de pantalla del Timex

                        ld bc,7FFDh
                        ld a,00110000b   ;pagina ROM 1 y bloquea cualquier otra operación de paginación
                        jp 0             ;salta a la ROM 1, que es la principal del Timex
                        
LCodigoParaRAM          equ $-CodigoParaRAM

                        org 2000h
EXROMCode               incbin "exrom.bin"   ; ROM extra para Timex (8 KB)

                        org 4000h
                        incbin "ts2068.bin"  ; ROM principal de Timex (16 KB)


Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 20:05
por antoniovillena
Vale. Ya lo veo:

Código: Seleccionar todo

                        ld hl,2000h
                        ld de,0
                        ld bc,8192
                        ldir
Pues tienes razón. Así es más fácil y no hace falta modo root.

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 20:09
por antoniovillena
Entonces lo tienes ya casi. Esto no haría falta:

Código: Seleccionar todo

                        ld a,DEVCTRL2
                        out (c),a
                        inc b
                        xor a
                        out (c),a       ;habilita modos Timex
Puesto que estos bits los configura la BIOS dependiendo de los parámetros que hayas puesto para la ROM con GenRom o con ZX1RomPack

Re: Consulta emulación TS2068

Publicado: 04 Ene 2017, 22:30
por aowen
You can already run TS2068 software. Just run in Chloe mode and use the TS2068 emulator.