Consulta emulación TS2068

Avatar de Usuario
chernandezba
Mensajes: 841
Registrado: 02 Oct 2015, 23:35

Re: Consulta emulación TS2068

Mensaje por chernandezba » 04 Ene 2017, 16:34

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
----

ZEsarUX
ZX Second-Emulator And Released for UniX
https://github.com/chernandezba/zesarux

Rickyarg
Mensajes: 20
Registrado: 29 Dic 2016, 11:46

Re: Consulta emulación TS2068

Mensaje por Rickyarg » 04 Ene 2017, 18:01

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!

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Consulta emulación TS2068

Mensaje por antoniovillena » 04 Ene 2017, 19:08

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.

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Consulta emulación TS2068

Mensaje por mcleod_ideafix » 04 Ene 2017, 19:20

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.
http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
mcleod_ideafix
Mensajes: 831
Registrado: 27 Sep 2015, 00:14
Ubicación: Jerez de la Frontera
Contactar:

Re: Consulta emulación TS2068

Mensaje por mcleod_ideafix » 04 Ene 2017, 19:56

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)

http://www.zxuno.com
ZX-Uno · Clon de ordenador ZX Spectrum basado en FPGA

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Consulta emulación TS2068

Mensaje por antoniovillena » 04 Ene 2017, 19:57

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).

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Consulta emulación TS2068

Mensaje por antoniovillena » 04 Ene 2017, 20:02

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)


Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Consulta emulación TS2068

Mensaje por antoniovillena » 04 Ene 2017, 20:05

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.

Avatar de Usuario
antoniovillena
Mensajes: 2621
Registrado: 27 Sep 2015, 20:41

Re: Consulta emulación TS2068

Mensaje por antoniovillena » 04 Ene 2017, 20:09

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

Avatar de Usuario
aowen
Mensajes: 178
Registrado: 07 Oct 2015, 13:32

Re: Consulta emulación TS2068

Mensaje por aowen » 04 Ene 2017, 22:30

You can already run TS2068 software. Just run in Chloe mode and use the TS2068 emulator.

Responder