added verify empty flash before formatting

This commit is contained in:
Jakub Husak
2023-02-09 12:01:27 +01:00
parent 24c0508616
commit 1cec3ddd8e
3 changed files with 33 additions and 23 deletions
+14 -9
View File
@@ -175,7 +175,7 @@ FORMAT
ldx #0
jsr flashformatchip
bcs formatfailed
jsr flashend ; restores display etc.
jsr flashend ; restores display etc. preserves all
.if .def TWOCHIPS
jsr printdone
jsr printformatting
@@ -184,7 +184,7 @@ FORMAT
ldx #$40
jsr flashformatchip
bcs formatfailed
jsr flashend ; restores display etc.
jsr flashend ; restores display etc. preserves all
.endif
printdone jsr print
dta c'done:)',$9b,0
@@ -196,6 +196,7 @@ printformatting
rts
formatfailed
jsr flashend
jsr print
dta c'failed:(',$9b,'Waiting for reboot...',$9b,0
jmp *
@@ -231,7 +232,6 @@ CHECKINIT
mwa #_DEST _cdst
sei
CHECK
mva #0 badcompare_counter
sta badcompare_counter+1
ldx BankNum
@@ -241,21 +241,25 @@ _csrc equ * + 1
lda $6000 ; src
_cdst equ * + 1
cmp $A000 ; dst
beq @+
beq _byte_ok
lda _csrc
ldx _csrc+1
jsr BADCOMPARE
@ inw _csrc
_byte_ok
inw _csrc
inw _cdst
lda _csrc+1
cmp #>_SOURCE+$20
bne checkloop
cpw #0 badcompare_counter
beq @+
beq _all_bytes_ok
; several differences found...
; cart off
sta $d580
lda $d013
sta $3fa
cli
; print status
jsr print
dta 253,c'non-match byte#:',0
lda badcompare_counter+1
@@ -266,13 +270,14 @@ _cdst equ * + 1
dta c' (START-cont)',0
lda #7
cmp CONSOL
cmp CONSOL ; wait for consol
req
jsr printnl
sec
rts
@ sta $d580
_all_bytes_ok
sta $d580
lda $d013
sta $3fa
cli
@@ -351,7 +356,7 @@ _tsrc equ * + 1
dew _tcnt
bne _tsrc -1
calccrc_bank equ * +1
lda #$ba ; nk number
lda #$ba ;nk number
asl
tax
plp
+18 -13
View File
@@ -145,22 +145,26 @@ flashformatchip1
; PROCEDURE
; x = 0 or 0x40 - flash chip address.
flashformatchip
sei
; first check if not formatted
stx store_x
jsr flashcheckempty
bcc flashformatexit
sei
sec ; will format flash!
ldx store_x
lda #flashoppreamble
jsr jsrtovectorproc ; preserves A
; not needed to mva $ff flashcmp
jsr wait4flashcheckresult ; waits for format finished
; then check number of banks for FFs
flashcheckempty
lda #$3f ; this depends on flash size, $0f, $1f, $3f
sta flashformatcounter
flashbankloop sei
ldx store_x
flashformatcounter equ*+1
sta $d5FF,x ; set chip (x) and bank
; set pages count
; set pages count, 8kB
ldy #$20
; reset address
lda #$a0
@@ -170,7 +174,17 @@ flashformatcounter equ*+1
bcs flashformatexit ; format error if c set
dec flashformatcounter
bpl flashbankloop
flashformatexit jmp flashcartoff ; preserves C
flashformatexit
flashcartoff ; preserves C
pha
sta $d580
lda $d013
sta $3fa
cli
pla
rts
; --------------------------
store_x dta 0
; --------------------------
@@ -399,12 +413,3 @@ flashsetbank
sta $3fa
rts
flashcartoff
pha
sta $d580
lda $d013
sta $3fa
cli
pla
rts
+1 -1
View File
@@ -6,7 +6,7 @@ echo Copy $outfile to card?
read
while true; do
[ -d "$vol" ] && cp "$outfile" "$vol"/ATARI/ && { eject; exit; }
[ -d "$vol" ] && cp -v "$outfile" "$vol"/ATARI/ && { eject; exit; }
echo Waiting for card inserted...
sleep 1