Re: Consulta emulación TS2068
Publicado: 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
Forum to discuss about the ZX-Uno project
https://www.zxuno.com/forum/
Excelente! Muchas gracias!antoniovillena escribió:Ah vale, gracias. Pone EX bank 0 & 1. Pues me pongo con la ROM y comento los resultados por aquí.
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.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
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.antoniovillena escribió: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.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
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)
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).mcleod_ideafix escribió: La pregunta es: por qué necesitas el modo rooted?
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)
Código: Seleccionar todo
ld hl,2000h
ld de,0
ld bc,8192
ldir
Código: Seleccionar todo
ld a,DEVCTRL2
out (c),a
inc b
xor a
out (c),a ;habilita modos Timex