mirror of https://github.com/zxdos/zxuno.git
81 lines
2.7 KiB
PHP
81 lines
2.7 KiB
PHP
; 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
|