Actualizo firmware a 0.78

-Cambio de ESXDOS.ZXn a ESXDOS.BIN el fichero a actualizar
-Añado opción color burst para mejora aliasing en ZXUNO+
This commit is contained in:
antoniovillena 2020-08-01 17:45:16 +02:00
parent 88c165f9dc
commit 4d1036b3bf
4 changed files with 183 additions and 155 deletions

Binary file not shown.

View File

@ -1,141 +1,142 @@
macro wreg dir, dato
rst $28
defb dir, dato
endm
output bootloader.rom
define zxuno_port $fc3b
define master_conf 0
define master_mapper 1
define flash_spi 2
define flash_cs 3
define joyconf 6
define scandbl_ctrl 11
di
ld sp, $bfff-ini+6
wreg flash_cs, 1 ; desactivamos spi, enviando un 0
ld de, $c771 ; tras el out (c), h de bffc se ejecuta
push de ; un rst 0 para iniciar la nueva ROM
ld de, $ed80 ; en $bffc para evitar que el cambio de ROM
push de ; colisione con la siguiente instruccion
ld bc, $bffc-ini+6
push bc
wreg flash_cs, 0 ; activamos spi, enviando un 0
wreg flash_spi, 6 ; envío write enable
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
wreg flash_cs, 0 ; activamos spi, enviando un 0
wreg flash_spi, $c5 ; envío wrear
out (c), 0
jp cont
nop
rst28 ld bc, zxuno_port + $100
pop hl
outi
ld b, (zxuno_port >> 8)+2
outi
jp (hl)
getbit ld a, (hl)
dec hl
adc a, a
ret
nop
rst38 jp $c006
block $0066 - $
nmi66 jp $c003
retn
cont wreg flash_cs, 1 ; desactivamos spi, enviando un 1
wreg joyconf, %00010000
wreg master_mapper, 8 ; paginamos la ROM en $c000
wreg scandbl_ctrl, $c0 ; lo pongo a 28MHz
in a, ($1f)
cp %00011000 ; arriba y disparo a la vez
jr z, recov
cp %00010100 ; arriba y disparo a la vez
jr z, recov
wreg flash_cs, 0 ; activamos spi, enviando un 0
wreg flash_spi, 3 ; envio flash_spi un 3, orden de lectura
ini out (c), h ; envia direccion 008000, a=00,e=80,a=00
out (c), e
out (c), h
add hl, sp
boot ini
inc b
cp h ; compruebo si la direccion es 0000 (final)
jr c, boot ; repito si no lo es
boot1 dec b
out (c), 0 ; a master_conf quiero enviar un 0 para pasar
inc b
ret
recov ld hl, firmware-1
ld de, $ffff
push bc
call dzx7b
pop bc
jr boot1
block $0100 - $
include scroll/define.asm
ld sp, 0
ld de, $5e6d+filesize-1
ld hl, scroll-1
call dzx7b
jp $7be4
; -----------------------------------------------------------------------------
; ZX7 Backwards by Einar Saukas, Antonio Villena
; Parameters:
; HL: source address (compressed data)
; DE: destination address (decompressing)
; -----------------------------------------------------------------------------
dzx7b ld bc, $8000
ld a, b
copyby inc c
ldd
mainlo add a, a
call z, getbit
jr nc, copyby
push de
ld d, c
defb $30
lenval add a, a
call z, getbit
rl c
rl b
add a, a
call z, getbit
jr nc, lenval
inc c
jr z, exitdz
ld e, (hl)
dec hl
sll e
jr nc, offend
ld d, $10
nexbit add a, a
call z, getbit
rl d
jr nc, nexbit
inc d
srl d
offend rr e
ex (sp), hl
ex de, hl
adc hl, de
lddr
exitdz pop hl
jr nc, mainlo
ret
incbin firmware.rom.zx7b
firmware
incbin scroll/scroll.bin.zx7b
scroll
;block $4000 - $
macro wreg dir, dato
rst $28
defb dir, dato
endm
output bootloader.rom
define zxuno_port $fc3b
define master_conf 0
define master_mapper 1
define flash_spi 2
define flash_cs 3
define joyconf 6
define scandbl_ctrl 11
di
ld sp, $bfff-ini+6
wreg flash_cs, 1 ; desactivamos spi, enviando un 0
ld de, $c771 ; tras el out (c), h de bffc se ejecuta
push de ; un rst 0 para iniciar la nueva ROM
ld de, $ed80 ; en $bffc para evitar que el cambio de ROM
push de ; colisione con la siguiente instruccion
ld bc, $bffc-ini+6
push bc
wreg flash_cs, 0 ; activamos spi, enviando un 0
wreg flash_spi, 6 ; envío write enable
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
wreg flash_cs, 0 ; activamos spi, enviando un 0
wreg flash_spi, $c5 ; envío wrear
out (c), 0
jp cont
nop
rst28 ld bc, zxuno_port + $100
pop hl
outi
ld b, (zxuno_port >> 8)+2
outi
jp (hl)
getbit ld a, (hl)
dec hl
adc a, a
ret
nop
rst38 jp $c006
block $0066 - $
nmi66 jp $c003
retn
cont wreg flash_cs, 1 ; desactivamos spi, enviando un 1
wreg joyconf, %00010000
wreg master_mapper, 8 ; paginamos la ROM en $c000
lee in a, ($1f)
djnz lee
wreg scandbl_ctrl, $c0 ; lo pongo a 28MHz
cp %00011000 ; arriba y disparo a la vez
jr z, recov
cp %00010100 ; arriba y disparo a la vez
jr z, recov
wreg flash_cs, 0 ; activamos spi, enviando un 0
wreg flash_spi, 3 ; envio flash_spi un 3, orden de lectura
ini out (c), h ; envia direccion 008000, a=00,e=80,a=00
out (c), e
out (c), h
add hl, sp
boot ini
inc b
cp h ; compruebo si la direccion es 0000 (final)
jr c, boot ; repito si no lo es
boot1 dec b
out (c), 0 ; a master_conf quiero enviar un 0 para pasar
inc b
ret
recov ld hl, firmware-1
ld de, $ffff
push bc
call dzx7b
pop bc
jr boot1
block $0100 - $
include scroll/define.asm
ld sp, 0
ld de, $5e6d+filesize-1
ld hl, scroll-1
call dzx7b
jp $7be4
; -----------------------------------------------------------------------------
; ZX7 Backwards by Einar Saukas, Antonio Villena
; Parameters:
; HL: source address (compressed data)
; DE: destination address (decompressing)
; -----------------------------------------------------------------------------
dzx7b ld bc, $8000
ld a, b
copyby inc c
ldd
mainlo add a, a
call z, getbit
jr nc, copyby
push de
ld d, c
defb $30
lenval add a, a
call z, getbit
rl c
rl b
add a, a
call z, getbit
jr nc, lenval
inc c
jr z, exitdz
ld e, (hl)
dec hl
sll e
jr nc, offend
ld d, $10
nexbit add a, a
call z, getbit
rl d
jr nc, nexbit
inc d
srl d
offend rr e
ex (sp), hl
ex de, hl
adc hl, de
lddr
exitdz pop hl
jr nc, mainlo
ret
incbin firmware.rom.zx7b
firmware
incbin scroll/scroll.bin.zx7b
scroll
;block $4000 - $

View File

@ -1,5 +1,5 @@
include version.asm
define recovery 1
define recovery 0
define recodire 0
define zesarux 0
define vertical 0
@ -80,6 +80,7 @@
define freque scanli+1
define cpuspd freque+1
define copt cpuspd+1
define cburst copt+1
define tmpbuf $7800
define tmpbu2 $7880
@ -256,11 +257,16 @@ start ld bc, chrend-sdtab
jr nc, start0
set 4, h
start0 ld a, (outvid)
push af
rrca
ld a, (cburst)
adc a, a
ld de, ad724<<8 | scandbl_ctrl
ld bc, zxuno_port
out (c), d
inc b
out (c), a
pop af
dec b
out (c), e
inc b
@ -1059,7 +1065,7 @@ runbit ld b, h
ld e, core_addr
out (c), e
inc b
IF version=3
IF version=4
ld a, (alto highb+1)
out (c), a
out (c), h
@ -2813,6 +2819,10 @@ advan1 call showop ; Joy Keypad & DB9
defw cad90
defw cad96
defw $ffff
call showop ; Color Burst
defw cad10c
defw cad10d
defw $ffff
ld de, $1201
call listas
defb $04
@ -2823,6 +2833,7 @@ advan1 call showop ; Joy Keypad & DB9
defb $0d
defb $0e
defb $0f
defb $10
defb $ff
defw cad84
defw cad85
@ -2832,6 +2843,7 @@ advan1 call showop ; Joy Keypad & DB9
defw cad100
defw cad101
defw cad10a
defw cad10b
jp c, main9
ld (menuop+1), a
ld hl, layout
@ -2898,11 +2910,17 @@ advan7 djnz advan8
defw cad113
defw $ffff
ret
advan8 call popupw ; CSync
advan8 djnz advan9
call popupw ; CSync
defw cad90
defw cad96
defw $ffff
ret
advan9 call popupw ; Color Burst
defw cad10c
defw cad10d
defw $ffff
ret
;**** Exit Menu ****
@ -4448,7 +4466,11 @@ subnn sub 6
IF version=4
defw $1200
ELSE
IF version=2
defw $0740
ELSE
defw $0c40
ENDIF
ENDIF
subnn sub 6*4
ENDIF

View File

@ -4,7 +4,7 @@ cad1 defb 'http://zxuno.speccy.org', 0
ELSE
cad1 defb 'http://zxdos.forofpga.es', 0
ENDIF
defb 'ZX-Uno BIOS v0.77', 0
defb 'ZX-Uno BIOS v0.78', 0
defb 'Copyleft ', 127, ' 2018 ZX-Uno Team', 0
defb 'Processor: Z80 3.5MHz', 0
defb 'Memory: '
@ -41,7 +41,7 @@ cad8 defb $10, ' ', $10, ' ', $10, 0
cad9 defb $14, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11
defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $18, $11
defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $15, 0
defb ' BIOS v0.77 ', $7f, '2018 ZX-Uno Team', 0
defb ' BIOS v0.78 ', $7f, '2018 ZX-Uno Team', 0
ELSE
defb 'Press <Edit> to Setup',0
defb ' <Break> Boot Menu', 0
@ -72,7 +72,7 @@ cad8 defb $10, ' ', $10, 0
cad9 defb $14, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11
defb $11, $11, $11, $11
defb $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $11, $15, 0
defb ' BIOS v0.77 ', $7f, '2018 ZX1 Team', 0
defb ' BIOS v0.78 ', $7f, '2018 ZX1 Team', 0
defs $66
ENDIF
cad10 defb 'Hardware tests', 0
@ -317,14 +317,14 @@ cad79 defb ' Successfully burned ', 0
cad80 defb 'EAR input', 0
cad81 defb 'SD file', 0
cad82 defb 'Input machine\'s name', 0
IF version=2
files defb 'ESXDOS ZX', LX16
defb 'FIRMWAREZX', LX16
defb 'FLASH ZX', LX16
defb 'SPECTRUMZX', LX16
fileco defb 'CORE ZX', LX16
IF version=3
files defb 'ESXDOS BIN'
defb 'FIRMWAREZXD'
defb 'FLASH ZXD'
defb 'SPECTRUMZXD'
fileco defb 'CORE ZXD'
ELSE
files defb 'ESXDOS ZX', $30+version
files defb 'ESXDOS BIN'
defb 'FIRMWAREZX', $30+version
defb 'FLASH ZX', $30+version
defb 'SPECTRUMZX', $30+version
@ -343,7 +343,8 @@ cad83 defb 'Input', 0
defb 'Scanlines', 0
defb 'Frequency', 0
defb 'CPU Speed', 0
defb 'CSync', 0, 0
defb 'CSync', 0
defb 'Color Burst', 0, 0
cad84 defb 'Select PS/2', 0
defb 'mapping to', 0
defb 'spectrum', 0, 0
@ -364,6 +365,10 @@ cad101 defb 'Set CPU', 0
defb 'speed', 0, 0
cad10a defb 'CSync method', 0
defb 'to use', 0, 0
cad10b defb 'Select FPGA to', 0
defb 'avoid aliasing', 0, 0
cad10c defb 'Crystal', 0
cad10d defb 'FPGA', 0
cad102 defb '50', 0
cad103 defb '51', 0
cad104 defb '53.5', 0