mirror of https://github.com/zxdos/zxuno.git
utils: separated `wrflsh` function into `wrflsh.inc` file
This commit is contained in:
parent
afd46fc97e
commit
aac709bed5
|
@ -77,6 +77,7 @@ $(BUILD_DIR)/CORCLEAN: corclean.asm\
|
||||||
zxuno.def\
|
zxuno.def\
|
||||||
Print.inc\
|
Print.inc\
|
||||||
rdflsh.inc\
|
rdflsh.inc\
|
||||||
|
wrflsh.inc\
|
||||||
| $(BUILD_DIR)
|
| $(BUILD_DIR)
|
||||||
$(AS) $(AFLAGS) --raw=$@ $<
|
$(AS) $(AFLAGS) --raw=$@ $<
|
||||||
|
|
||||||
|
@ -85,6 +86,7 @@ $(BUILD_DIR)/COREBIOS: corebios.asm\
|
||||||
esxdos.def\
|
esxdos.def\
|
||||||
Print.inc\
|
Print.inc\
|
||||||
rdflsh.inc\
|
rdflsh.inc\
|
||||||
|
wrflsh.inc\
|
||||||
| $(BUILD_DIR)
|
| $(BUILD_DIR)
|
||||||
$(AS) $(AFLAGS) --raw=$@ $<
|
$(AS) $(AFLAGS) --raw=$@ $<
|
||||||
|
|
||||||
|
@ -101,6 +103,7 @@ $(BUILD_DIR)/ROMSUPGR: romsupgr.asm\
|
||||||
esxdos.def\
|
esxdos.def\
|
||||||
Print.inc\
|
Print.inc\
|
||||||
rdflsh.inc\
|
rdflsh.inc\
|
||||||
|
wrflsh.inc\
|
||||||
| $(BUILD_DIR)
|
| $(BUILD_DIR)
|
||||||
$(AS) $(AFLAGS) --raw=$@ $<
|
$(AS) $(AFLAGS) --raw=$@ $<
|
||||||
|
|
||||||
|
@ -108,6 +111,7 @@ $(BUILD_DIR)/UPGR16M: upgr16m.asm\
|
||||||
zxuno.def\
|
zxuno.def\
|
||||||
esxdos.def\
|
esxdos.def\
|
||||||
Print.inc\
|
Print.inc\
|
||||||
|
wrflsh.inc\
|
||||||
| $(BUILD_DIR)
|
| $(BUILD_DIR)
|
||||||
$(AS) $(AFLAGS) --raw=$@ $<
|
$(AS) $(AFLAGS) --raw=$@ $<
|
||||||
|
|
||||||
|
@ -115,6 +119,7 @@ $(BUILD_DIR)/UPGRZX2: upgr32m.asm\
|
||||||
zxuno.def\
|
zxuno.def\
|
||||||
esxdos.def\
|
esxdos.def\
|
||||||
Print.inc\
|
Print.inc\
|
||||||
|
wrflsh.inc\
|
||||||
| $(BUILD_DIR)
|
| $(BUILD_DIR)
|
||||||
echo ' define zxdos 1' >upgr32m.def
|
echo ' define zxdos 1' >upgr32m.def
|
||||||
$(AS) $(AFLAGS) --raw=$@ $<
|
$(AS) $(AFLAGS) --raw=$@ $<
|
||||||
|
@ -124,6 +129,7 @@ $(BUILD_DIR)/UPGRZXD: upgr32m.asm\
|
||||||
zxuno.def\
|
zxuno.def\
|
||||||
esxdos.def\
|
esxdos.def\
|
||||||
Print.inc\
|
Print.inc\
|
||||||
|
wrflsh.inc\
|
||||||
| $(BUILD_DIR)
|
| $(BUILD_DIR)
|
||||||
echo ' define zxdos 0' >upgr32m.def
|
echo ' define zxdos 0' >upgr32m.def
|
||||||
$(AS) $(AFLAGS) --raw=$@ $<
|
$(AS) $(AFLAGS) --raw=$@ $<
|
||||||
|
@ -133,6 +139,7 @@ $(BUILD_DIR)/UPGRADE: upgrade.asm\
|
||||||
zxuno.def\
|
zxuno.def\
|
||||||
esxdos.def\
|
esxdos.def\
|
||||||
Print.inc\
|
Print.inc\
|
||||||
|
wrflsh.inc\
|
||||||
| $(BUILD_DIR)
|
| $(BUILD_DIR)
|
||||||
$(AS) $(AFLAGS) --raw=$@ $<
|
$(AS) $(AFLAGS) --raw=$@ $<
|
||||||
|
|
||||||
|
|
|
@ -74,75 +74,7 @@ normal ld a, 0
|
||||||
|
|
||||||
include Print.inc
|
include Print.inc
|
||||||
include rdflsh.inc
|
include rdflsh.inc
|
||||||
|
include wrflsh.inc
|
||||||
; ------------------------
|
|
||||||
; Write to SPI flash
|
|
||||||
; Parameters:
|
|
||||||
; A: number of pages (256 bytes) to write
|
|
||||||
; DE: target address without last byte
|
|
||||||
; HL': source address from memory
|
|
||||||
; ------------------------
|
|
||||||
wrflsh ex af, af'
|
|
||||||
xor a
|
|
||||||
wrfls1 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, $20 ; envío sector erase
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
wrfls2 call waits5
|
|
||||||
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, 2 ; page program
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
ld a, $20
|
|
||||||
exx
|
|
||||||
ld bc, zxuno_port+$100
|
|
||||||
wrfls3 inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
dec a
|
|
||||||
jr nz, wrfls3
|
|
||||||
exx
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ex af, af'
|
|
||||||
dec a
|
|
||||||
jr z, waits5
|
|
||||||
ex af, af'
|
|
||||||
inc e
|
|
||||||
ld a, e
|
|
||||||
and $0f
|
|
||||||
jr nz, wrfls2
|
|
||||||
ld hl, wrfls1
|
|
||||||
push hl
|
|
||||||
waits5 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
|
||||||
wreg flash_spi, 5 ; envío read status
|
|
||||||
in a, (c)
|
|
||||||
waits6 in a, (c)
|
|
||||||
and 1
|
|
||||||
jr nz, waits6
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ret
|
|
||||||
|
|
||||||
rst28 ld bc, zxuno_port + $100
|
rst28 ld bc, zxuno_port + $100
|
||||||
pop hl
|
pop hl
|
||||||
|
|
|
@ -132,75 +132,7 @@ normal ld a, 0
|
||||||
|
|
||||||
include Print.inc
|
include Print.inc
|
||||||
include rdflsh.inc
|
include rdflsh.inc
|
||||||
|
include wrflsh.inc
|
||||||
; ------------------------
|
|
||||||
; Write to SPI flash
|
|
||||||
; Parameters:
|
|
||||||
; A: number of pages (256 bytes) to write
|
|
||||||
; DE: target address without last byte
|
|
||||||
; HL': source address from memory
|
|
||||||
; ------------------------
|
|
||||||
wrflsh ex af, af'
|
|
||||||
xor a
|
|
||||||
wrfls1 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, $20 ; envío sector erase
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
wrfls2 call waits5
|
|
||||||
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, 2 ; page program
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
ld a, $20
|
|
||||||
exx
|
|
||||||
ld bc, zxuno_port+$100
|
|
||||||
wrfls3 inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
dec a
|
|
||||||
jr nz, wrfls3
|
|
||||||
exx
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ex af, af'
|
|
||||||
dec a
|
|
||||||
jr z, waits5
|
|
||||||
ex af, af'
|
|
||||||
inc e
|
|
||||||
ld a, e
|
|
||||||
and $0f
|
|
||||||
jr nz, wrfls2
|
|
||||||
ld hl, wrfls1
|
|
||||||
push hl
|
|
||||||
waits5 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
|
||||||
wreg flash_spi, 5 ; envío read status
|
|
||||||
in a, (c)
|
|
||||||
waits6 in a, (c)
|
|
||||||
and 1
|
|
||||||
jr nz, waits6
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ret
|
|
||||||
|
|
||||||
rst28 ld bc, zxuno_port + $100
|
rst28 ld bc, zxuno_port + $100
|
||||||
pop hl
|
pop hl
|
||||||
|
|
|
@ -181,75 +181,7 @@ wrear0 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
||||||
|
|
||||||
include Print.inc
|
include Print.inc
|
||||||
include rdflsh.inc
|
include rdflsh.inc
|
||||||
|
include wrflsh.inc
|
||||||
; ------------------------
|
|
||||||
; Write to SPI flash
|
|
||||||
; Parameters:
|
|
||||||
; A: number of pages (256 bytes) to write
|
|
||||||
; DE: target address without last byte
|
|
||||||
; HL': source address from memory
|
|
||||||
; ------------------------
|
|
||||||
wrflsh ex af, af'
|
|
||||||
xor a
|
|
||||||
wrfls1 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, $20 ; envío sector erase
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
wrfls2 call waits5
|
|
||||||
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, 2 ; page program
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
ld a, $20
|
|
||||||
exx
|
|
||||||
ld bc, zxuno_port+$100
|
|
||||||
wrfls3 inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
dec a
|
|
||||||
jr nz, wrfls3
|
|
||||||
exx
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ex af, af'
|
|
||||||
dec a
|
|
||||||
jr z, waits5
|
|
||||||
ex af, af'
|
|
||||||
inc e
|
|
||||||
ld a, e
|
|
||||||
and $0f
|
|
||||||
jr nz, wrfls2
|
|
||||||
ld hl, wrfls1
|
|
||||||
push hl
|
|
||||||
waits5 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
|
||||||
wreg flash_spi, 5 ; envío read status
|
|
||||||
in a, (c)
|
|
||||||
waits6 in a, (c)
|
|
||||||
and 1
|
|
||||||
jr nz, waits6
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ret
|
|
||||||
|
|
||||||
rst28 ld bc, zxuno_port + $100
|
rst28 ld bc, zxuno_port + $100
|
||||||
pop hl
|
pop hl
|
||||||
|
|
|
@ -125,76 +125,7 @@ ReadOK ld a, $40
|
||||||
ret
|
ret
|
||||||
|
|
||||||
include Print.inc
|
include Print.inc
|
||||||
|
include wrflsh.inc
|
||||||
; ------------------------
|
|
||||||
; Write to SPI flash
|
|
||||||
; Parameters:
|
|
||||||
; A: number of pages (256 bytes) to write
|
|
||||||
; DE: target address without last byte
|
|
||||||
; BC': zxuno_port+$100 (constant)
|
|
||||||
; HL': source address from memory
|
|
||||||
; ------------------------
|
|
||||||
wrflsh ex af, af'
|
|
||||||
xor a
|
|
||||||
wrfls1 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, $20 ; envío sector erase
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
wrfls2 call waits5
|
|
||||||
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, 2 ; page program
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
ld a, $20
|
|
||||||
exx
|
|
||||||
ld bc, zxuno_port+$100
|
|
||||||
wrfls3 inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
dec a
|
|
||||||
jr nz, wrfls3
|
|
||||||
exx
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ex af, af'
|
|
||||||
dec a
|
|
||||||
jr z, waits5
|
|
||||||
ex af, af'
|
|
||||||
inc e
|
|
||||||
ld a, e
|
|
||||||
and $0f
|
|
||||||
jr nz, wrfls2
|
|
||||||
ld hl, wrfls1
|
|
||||||
push hl
|
|
||||||
waits5 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
|
||||||
wreg flash_spi, 5 ; envío read status
|
|
||||||
in a, (c)
|
|
||||||
waits6 in a, (c)
|
|
||||||
and 1
|
|
||||||
jr nz, waits6
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ret
|
|
||||||
|
|
||||||
rst28 ld bc, zxuno_port + $100
|
rst28 ld bc, zxuno_port + $100
|
||||||
pop hl
|
pop hl
|
||||||
|
|
|
@ -158,76 +158,7 @@ ReadOK ld a, $40
|
||||||
ret
|
ret
|
||||||
|
|
||||||
include Print.inc
|
include Print.inc
|
||||||
|
include wrflsh.inc
|
||||||
; ------------------------
|
|
||||||
; Write to SPI flash
|
|
||||||
; Parameters:
|
|
||||||
; A: number of pages (256 bytes) to write
|
|
||||||
; DE: target address without last byte
|
|
||||||
; BC': zxuno_port+$100 (constant)
|
|
||||||
; HL': source address from memory
|
|
||||||
; ------------------------
|
|
||||||
wrflsh ex af, af'
|
|
||||||
xor a
|
|
||||||
wrfls1 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, $20 ; envío sector erase
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
wrfls2 call waits5
|
|
||||||
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, 2 ; page program
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
ld a, $20
|
|
||||||
exx
|
|
||||||
ld bc, zxuno_port+$100
|
|
||||||
wrfls3 inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
dec a
|
|
||||||
jr nz, wrfls3
|
|
||||||
exx
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ex af, af'
|
|
||||||
dec a
|
|
||||||
jr z, waits5
|
|
||||||
ex af, af'
|
|
||||||
inc e
|
|
||||||
ld a, e
|
|
||||||
and $0f
|
|
||||||
jr nz, wrfls2
|
|
||||||
ld hl, wrfls1
|
|
||||||
push hl
|
|
||||||
waits5 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
|
||||||
wreg flash_spi, 5 ; envío read status
|
|
||||||
in a, (c)
|
|
||||||
waits6 in a, (c)
|
|
||||||
and 1
|
|
||||||
jr nz, waits6
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ret
|
|
||||||
|
|
||||||
rst28 ld bc, zxuno_port + $100
|
rst28 ld bc, zxuno_port + $100
|
||||||
pop hl
|
pop hl
|
||||||
|
|
|
@ -108,76 +108,7 @@ ReadOK ld a, $40
|
||||||
ret
|
ret
|
||||||
|
|
||||||
include Print.inc
|
include Print.inc
|
||||||
|
include wrflsh.inc
|
||||||
; ------------------------
|
|
||||||
; Write to SPI flash
|
|
||||||
; Parameters:
|
|
||||||
; A: number of pages (256 bytes) to write
|
|
||||||
; DE: target address without last byte
|
|
||||||
; BC': zxuno_port+$100 (constant)
|
|
||||||
; HL': source address from memory
|
|
||||||
; ------------------------
|
|
||||||
wrflsh ex af, af'
|
|
||||||
xor a
|
|
||||||
wrfls1 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, $20 ; envío sector erase
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
wrfls2 call waits5
|
|
||||||
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, 2 ; page program
|
|
||||||
out (c), d
|
|
||||||
out (c), e
|
|
||||||
out (c), a
|
|
||||||
ld a, $20
|
|
||||||
exx
|
|
||||||
ld bc, zxuno_port+$100
|
|
||||||
wrfls3 inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
inc b
|
|
||||||
outi
|
|
||||||
dec a
|
|
||||||
jr nz, wrfls3
|
|
||||||
exx
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ex af, af'
|
|
||||||
dec a
|
|
||||||
jr z, waits5
|
|
||||||
ex af, af'
|
|
||||||
inc e
|
|
||||||
ld a, e
|
|
||||||
and $0f
|
|
||||||
jr nz, wrfls2
|
|
||||||
ld hl, wrfls1
|
|
||||||
push hl
|
|
||||||
waits5 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
|
||||||
wreg flash_spi, 5 ; envío read status
|
|
||||||
in a, (c)
|
|
||||||
waits6 in a, (c)
|
|
||||||
and 1
|
|
||||||
jr nz, waits6
|
|
||||||
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
|
||||||
ret
|
|
||||||
|
|
||||||
rst28 ld bc, zxuno_port + $100
|
rst28 ld bc, zxuno_port + $100
|
||||||
pop hl
|
pop hl
|
||||||
|
|
|
@ -0,0 +1,80 @@
|
||||||
|
; wrflsh.inc
|
||||||
|
;
|
||||||
|
; SPDX-FileCopyrightText: Copyright (C) 2019, 2021 Antonio Villena
|
||||||
|
;
|
||||||
|
; SPDX-License-Identifier: GPL-3.0-only
|
||||||
|
|
||||||
|
; Compatible compilers:
|
||||||
|
; SJAsmPlus, <https://github.com/sjasmplus/sjasmplus/>
|
||||||
|
|
||||||
|
include zxuno.def
|
||||||
|
|
||||||
|
; ------------------------
|
||||||
|
; Write to SPI flash
|
||||||
|
; Parameters:
|
||||||
|
; A: number of pages (256 bytes) to write
|
||||||
|
; DE: target address without last byte
|
||||||
|
; BC': zxuno_port+$100 (constant)
|
||||||
|
; HL': source address from memory
|
||||||
|
; ------------------------
|
||||||
|
wrflsh ex af, af'
|
||||||
|
xor a
|
||||||
|
wrfls1 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, $20 ; envío sector erase
|
||||||
|
out (c), d
|
||||||
|
out (c), e
|
||||||
|
out (c), a
|
||||||
|
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
||||||
|
wrfls2 call waits5
|
||||||
|
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, 2 ; page program
|
||||||
|
out (c), d
|
||||||
|
out (c), e
|
||||||
|
out (c), a
|
||||||
|
ld a, $20
|
||||||
|
exx
|
||||||
|
ld bc, zxuno_port+$100
|
||||||
|
wrfls3 inc b
|
||||||
|
outi
|
||||||
|
inc b
|
||||||
|
outi
|
||||||
|
inc b
|
||||||
|
outi
|
||||||
|
inc b
|
||||||
|
outi
|
||||||
|
inc b
|
||||||
|
outi
|
||||||
|
inc b
|
||||||
|
outi
|
||||||
|
inc b
|
||||||
|
outi
|
||||||
|
inc b
|
||||||
|
outi
|
||||||
|
dec a
|
||||||
|
jr nz, wrfls3
|
||||||
|
exx
|
||||||
|
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
||||||
|
ex af, af'
|
||||||
|
dec a
|
||||||
|
jr z, waits5
|
||||||
|
ex af, af'
|
||||||
|
inc e
|
||||||
|
ld a, e
|
||||||
|
and $0f
|
||||||
|
jr nz, wrfls2
|
||||||
|
ld hl, wrfls1
|
||||||
|
push hl
|
||||||
|
waits5 wreg flash_cs, 0 ; activamos spi, enviando un 0
|
||||||
|
wreg flash_spi, 5 ; envío read status
|
||||||
|
in a, (c)
|
||||||
|
waits6 in a, (c)
|
||||||
|
and 1
|
||||||
|
jr nz, waits6
|
||||||
|
wreg flash_cs, 1 ; desactivamos spi, enviando un 1
|
||||||
|
ret
|
Loading…
Reference in New Issue