mirror of
https://github.com/Pecusx/jataricart.git
synced 2026-05-21 06:39:37 +02:00
more flashers converted
This commit is contained in:
BIN
Binary file not shown.
Binary file not shown.
@@ -1,487 +0,0 @@
|
|||||||
; JatariCart256 flasher
|
|
||||||
; by Jakub Husak , 04.01.2020
|
|
||||||
; All Rights Reserved.
|
|
||||||
;
|
|
||||||
; JatariCart is free software: you can redistribute it and/or modify
|
|
||||||
; it under the terms of the GNU General Public License as published by
|
|
||||||
; the Free Software Foundation, either version 3 of the License, or
|
|
||||||
; (at your option) any later version.
|
|
||||||
;
|
|
||||||
; JatariCart is distributed in the hope that it will be useful,
|
|
||||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
; GNU General Public License for more details.
|
|
||||||
;
|
|
||||||
; You should have received a copy of the GNU General Public License
|
|
||||||
; along with JatariCart256. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
;
|
|
||||||
icl '../../lib/atari.hea'
|
|
||||||
; flash image is included at the end of file
|
|
||||||
; uncomment when flashing all cart or want to check all blocks written so far.
|
|
||||||
;.def compareall
|
|
||||||
|
|
||||||
BankNum equ $88
|
|
||||||
Counter equ $89
|
|
||||||
operation equ $8a
|
|
||||||
start equ 6 ; format chip and program
|
|
||||||
select equ 5 ; ferify and format sectors
|
|
||||||
option equ 3 ; verify
|
|
||||||
outchar equ $F2B0
|
|
||||||
memtop equ $2e5
|
|
||||||
dmactls equ $22f
|
|
||||||
|
|
||||||
_SOURCE equ $6000
|
|
||||||
_DEST equ $A000
|
|
||||||
|
|
||||||
; test code
|
|
||||||
org $2000
|
|
||||||
STARTFLASHWRITE
|
|
||||||
mva #$A0 106
|
|
||||||
jsr opened
|
|
||||||
lda 20
|
|
||||||
@ cmp 20
|
|
||||||
beq @-
|
|
||||||
@ lda #$1
|
|
||||||
sta 66
|
|
||||||
; waiting for cart to be inserted
|
|
||||||
jsr print
|
|
||||||
TITLE+128
|
|
||||||
dta $9b,c'JatariCart/MaxFlash flasher'
|
|
||||||
dta $9b
|
|
||||||
dta c'by JHusak, I.2023'
|
|
||||||
dta $9b
|
|
||||||
dta c'JatariCart of size '
|
|
||||||
CARTSIZE+128
|
|
||||||
dta c' kB needed',$9b,$9b
|
|
||||||
dta c'Insert JatariCart of '
|
|
||||||
CARTSIZE+128
|
|
||||||
dta c' kB...',0
|
|
||||||
|
|
||||||
sta $D500
|
|
||||||
?wloop lda $D013
|
|
||||||
lsr
|
|
||||||
bcc ?wloop
|
|
||||||
|
|
||||||
ldx #$25
|
|
||||||
?lloop
|
|
||||||
bit VCOUNT
|
|
||||||
bmi *-3
|
|
||||||
bit VCOUNT
|
|
||||||
bpl *-3
|
|
||||||
dex
|
|
||||||
bne ?lloop
|
|
||||||
|
|
||||||
jsr print
|
|
||||||
dta c' inserted.',$9b,0
|
|
||||||
|
|
||||||
; cart inserted, fake it was not changed
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
|
|
||||||
ldx #0 ; chip address
|
|
||||||
stx numchips
|
|
||||||
_check_chips
|
|
||||||
stx _storex
|
|
||||||
jsr check_type
|
|
||||||
bcc ?_next
|
|
||||||
jsr print
|
|
||||||
dta c'unrecognized chip: ',0
|
|
||||||
lda m_vendor
|
|
||||||
jsr printhex
|
|
||||||
lda m_kind
|
|
||||||
jsr printhex
|
|
||||||
cpx #$0
|
|
||||||
seq
|
|
||||||
jmp *
|
|
||||||
jsr print
|
|
||||||
dta c'ignoring chip ...',0
|
|
||||||
jmp menu
|
|
||||||
?_next inc numchips
|
|
||||||
lda numchips
|
|
||||||
clc
|
|
||||||
adc #$30
|
|
||||||
sta chipno
|
|
||||||
|
|
||||||
jsr print
|
|
||||||
dta c'chip '
|
|
||||||
chipno
|
|
||||||
dta c'0'
|
|
||||||
dta c' vend/prod: ',0
|
|
||||||
lda m_vendor
|
|
||||||
jsr printhex
|
|
||||||
lda m_kind
|
|
||||||
jsr printhex
|
|
||||||
jsr print
|
|
||||||
dta c' code: ',0
|
|
||||||
|
|
||||||
; print memory type
|
|
||||||
lda M_VECTOR
|
|
||||||
clc
|
|
||||||
adc #flash_idstr ; will print flashmem text id
|
|
||||||
sta ?taddr
|
|
||||||
lda M_VECTOR+1
|
|
||||||
adc #0
|
|
||||||
sta ?taddr+1
|
|
||||||
ldy #0
|
|
||||||
?loop ; write string onscreen till 0
|
|
||||||
lda ?taddr:$ffff,y
|
|
||||||
beq ?exit
|
|
||||||
sty st_y
|
|
||||||
jsr outchar
|
|
||||||
ldy st_y:#0
|
|
||||||
iny
|
|
||||||
bne ?loop
|
|
||||||
?exit
|
|
||||||
jsr printnl
|
|
||||||
ldx _storex
|
|
||||||
cpx #0
|
|
||||||
bne menu
|
|
||||||
lda m_vendor
|
|
||||||
sta t_vendor
|
|
||||||
lda m_kind
|
|
||||||
sta t_kind
|
|
||||||
ldx #$40
|
|
||||||
jmp _check_chips
|
|
||||||
menu
|
|
||||||
jsr printnl
|
|
||||||
;lda #$ff
|
|
||||||
;sta $d301
|
|
||||||
|
|
||||||
jsr print
|
|
||||||
dta c'Press:',$9b
|
|
||||||
dta c'START - format cart and programm',$9b
|
|
||||||
;dta c'SELECT - verify; repair bad blocks.',$9b
|
|
||||||
dta c'OPTION - verify',$9b,0
|
|
||||||
?wloop lda 53279
|
|
||||||
cmp #7
|
|
||||||
beq ?wloop
|
|
||||||
sta operation
|
|
||||||
|
|
||||||
cmp #select
|
|
||||||
beq ?wloop
|
|
||||||
|
|
||||||
cmp #option
|
|
||||||
jeq CHECKONLY
|
|
||||||
|
|
||||||
cmp #start
|
|
||||||
beq FORMAT
|
|
||||||
bne ?wloop
|
|
||||||
|
|
||||||
; start
|
|
||||||
FORMAT
|
|
||||||
jsr printformatting
|
|
||||||
jsr print
|
|
||||||
dta c'1...',0
|
|
||||||
ldx #0
|
|
||||||
jsr flashformatchip
|
|
||||||
bcs formatfailed
|
|
||||||
jsr flashend ; restores display etc.
|
|
||||||
.if .def TWOCHIPS
|
|
||||||
jsr printdone
|
|
||||||
jsr printformatting
|
|
||||||
jsr print
|
|
||||||
dta c'2...',0
|
|
||||||
ldx #$40
|
|
||||||
jsr flashformatchip
|
|
||||||
bcs formatfailed
|
|
||||||
jsr flashend ; restores display etc.
|
|
||||||
.endif
|
|
||||||
printdone jsr print
|
|
||||||
dta c'done:)',$9b,0
|
|
||||||
rts
|
|
||||||
|
|
||||||
printformatting
|
|
||||||
jsr print
|
|
||||||
dta c'Formatting cart chip ',0
|
|
||||||
rts
|
|
||||||
|
|
||||||
formatfailed
|
|
||||||
jsr print
|
|
||||||
dta c'failed:(',$9b,'Waiting for reboot...',$9b,0
|
|
||||||
jmp *
|
|
||||||
VERIFYREPAIR
|
|
||||||
jsr print
|
|
||||||
dta c'Verify and ',0
|
|
||||||
CHECKONLY
|
|
||||||
jsr print
|
|
||||||
dta c'Compare.',$9b,0
|
|
||||||
rts
|
|
||||||
|
|
||||||
t_vendor .byte 0
|
|
||||||
t_kind .byte 0
|
|
||||||
numchips .byte 0
|
|
||||||
_storex .byte 0
|
|
||||||
|
|
||||||
crcsums
|
|
||||||
:128 dta 0,0
|
|
||||||
opened
|
|
||||||
ldx #0
|
|
||||||
lda #12
|
|
||||||
jsr icio
|
|
||||||
mwa #name icbufa,x
|
|
||||||
mva #$0c icax1,x
|
|
||||||
mva #$0 icax2,x
|
|
||||||
lda #3
|
|
||||||
icio sta iccmd,x
|
|
||||||
jmp $e456
|
|
||||||
name dta 'E:',$9b
|
|
||||||
|
|
||||||
CHECKINIT
|
|
||||||
mwa #_SOURCE _csrc
|
|
||||||
mwa #_DEST _cdst
|
|
||||||
sei
|
|
||||||
CHECK
|
|
||||||
|
|
||||||
mva #0 badcompare_counter
|
|
||||||
sta badcompare_counter+1
|
|
||||||
ldx BankNum
|
|
||||||
sta $d500,x
|
|
||||||
checkloop
|
|
||||||
_csrc equ * + 1
|
|
||||||
lda $6000 ; src
|
|
||||||
_cdst equ * + 1
|
|
||||||
cmp $A000 ; dst
|
|
||||||
beq @+
|
|
||||||
lda _csrc
|
|
||||||
ldx _csrc+1
|
|
||||||
jsr BADCOMPARE
|
|
||||||
@ inw _csrc
|
|
||||||
inw _cdst
|
|
||||||
lda _csrc+1
|
|
||||||
cmp #>_SOURCE+$20
|
|
||||||
bne checkloop
|
|
||||||
cpw #0 badcompare_counter
|
|
||||||
beq @+
|
|
||||||
sta $d580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
jsr print
|
|
||||||
dta c'non-match byte#:',0
|
|
||||||
lda badcompare_counter+1
|
|
||||||
jsr printhex
|
|
||||||
lda badcompare_counter
|
|
||||||
jsr printhex
|
|
||||||
jsr printnl
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
@ sta $d580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
lda #'o'
|
|
||||||
jsr outchar
|
|
||||||
@ clc
|
|
||||||
dmaon mva #34 dmactls
|
|
||||||
sta dmactl
|
|
||||||
rts
|
|
||||||
VERIFY
|
|
||||||
;mwa #_SOURCE _csrc
|
|
||||||
;mwa #_DEST _cdst
|
|
||||||
jsr CHECKINIT
|
|
||||||
bcc v_rts
|
|
||||||
lda #'f'
|
|
||||||
jsr outchar
|
|
||||||
ldx BankNum
|
|
||||||
lda #$a0
|
|
||||||
jsr flashformatsector
|
|
||||||
ldx BankNum
|
|
||||||
lda #$b0
|
|
||||||
jsr flashformatsector
|
|
||||||
jsr FORMATTED
|
|
||||||
dec Counter
|
|
||||||
bne VERIFY
|
|
||||||
v_rts jmp dmaon
|
|
||||||
|
|
||||||
COMPARE_CRC16_DEST_ALL
|
|
||||||
lda BankNum
|
|
||||||
sta _tbanknum
|
|
||||||
@ sei
|
|
||||||
_tbanknum equ * + 1
|
|
||||||
sta $D500
|
|
||||||
clc
|
|
||||||
mva _tbanknum calccrc_bank
|
|
||||||
jsr CALCCRC_DEST
|
|
||||||
jsr status_crc
|
|
||||||
.ifdef compareall
|
|
||||||
dec _tbanknum
|
|
||||||
bpl @-
|
|
||||||
.endif
|
|
||||||
sta $D580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
rts
|
|
||||||
status_crc
|
|
||||||
php
|
|
||||||
jsr printBank_t
|
|
||||||
plp
|
|
||||||
php
|
|
||||||
sne
|
|
||||||
lda #'o'
|
|
||||||
plp
|
|
||||||
seq
|
|
||||||
lda #'!'
|
|
||||||
jsr outchar
|
|
||||||
lda #','
|
|
||||||
jmp outchar
|
|
||||||
|
|
||||||
|
|
||||||
CALCCRC_DEST
|
|
||||||
php
|
|
||||||
mwa #_DEST _tsrc
|
|
||||||
bne crccont
|
|
||||||
|
|
||||||
CALCCRC ; c=1 - write; c=0 - check
|
|
||||||
php
|
|
||||||
mwa #_SOURCE _tsrc
|
|
||||||
mwa #$2000 _tcnt
|
|
||||||
crccont mwa #$ffff crc16.crc
|
|
||||||
_tsrc equ * + 1
|
|
||||||
lda $ffff
|
|
||||||
jsr crc16.updCRC
|
|
||||||
inw _tsrc
|
|
||||||
dew _tcnt
|
|
||||||
bne _tsrc -1
|
|
||||||
calccrc_bank equ * +1
|
|
||||||
lda #$ba ; nk number
|
|
||||||
asl
|
|
||||||
tax
|
|
||||||
plp
|
|
||||||
bcc crccheck
|
|
||||||
mwa crc16.crc crcsums,x
|
|
||||||
rts
|
|
||||||
_tcnt :2 dta 0
|
|
||||||
crccheck
|
|
||||||
cpw crc16.crc crcsums,x
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
printBank_t
|
|
||||||
lda _tbanknum
|
|
||||||
bpl @+
|
|
||||||
printBank
|
|
||||||
jsr printnl
|
|
||||||
lda BankNum
|
|
||||||
@ pha
|
|
||||||
lda #'B'
|
|
||||||
jsr outchar
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
lda #':'
|
|
||||||
jmp outchar
|
|
||||||
|
|
||||||
MAIN_PROCESS
|
|
||||||
;mva #0 dmactls
|
|
||||||
;sta dmactl
|
|
||||||
sec
|
|
||||||
mva BankNum calccrc_bank
|
|
||||||
jsr CALCCRC
|
|
||||||
mwa #_DEST flashaddr
|
|
||||||
jsr printBank
|
|
||||||
|
|
||||||
lda operation
|
|
||||||
cmp #select
|
|
||||||
jeq VERIFY
|
|
||||||
|
|
||||||
cmp #option
|
|
||||||
jeq CHECKINIT
|
|
||||||
|
|
||||||
FORMATTED
|
|
||||||
mwa #_SOURCE _writeaddr
|
|
||||||
lda _writeaddr+1
|
|
||||||
clc
|
|
||||||
adc #$20
|
|
||||||
sta _cmpaddr ; only hi byte
|
|
||||||
mwa #_DEST flashaddr
|
|
||||||
; sec
|
|
||||||
formatted_next
|
|
||||||
ldx BankNum
|
|
||||||
formatted_next2
|
|
||||||
_writeaddr equ *+1
|
|
||||||
lda $ffff
|
|
||||||
jsr flashwritebyte
|
|
||||||
jsr flashincaddr
|
|
||||||
inw _writeaddr
|
|
||||||
_cmpaddr equ * + 1
|
|
||||||
lda #$ff
|
|
||||||
cmp _writeaddr+1
|
|
||||||
bne formatted_next2
|
|
||||||
jsr flashend
|
|
||||||
jmp COMPARE_CRC16_DEST_ALL
|
|
||||||
|
|
||||||
FINISH_PROCESS
|
|
||||||
jsr print
|
|
||||||
dta $9b,'Finished',0
|
|
||||||
jmp *
|
|
||||||
rts
|
|
||||||
badcompare_counter dta 0,0
|
|
||||||
BADCOMPARE
|
|
||||||
ldy 53279
|
|
||||||
cpy #7
|
|
||||||
beq @+
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
lda #'!'
|
|
||||||
jsr outchar
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
lda #':'
|
|
||||||
jsr outchar
|
|
||||||
mwa _csrc badcompare_tmp1
|
|
||||||
badcompare_tmp1 equ * +1
|
|
||||||
lda $ffff
|
|
||||||
jsr printhex
|
|
||||||
lda #'/'
|
|
||||||
jsr outchar
|
|
||||||
mwa _cdst badcompare_tmp2
|
|
||||||
badcompare_tmp2 equ * +1
|
|
||||||
lda $ffff
|
|
||||||
jsr printhex
|
|
||||||
jsr printnl
|
|
||||||
@ inw badcompare_counter
|
|
||||||
sec
|
|
||||||
jmp dmaon
|
|
||||||
; -------
|
|
||||||
icl '../../lib/flashwritelib.asx'
|
|
||||||
|
|
||||||
icl '../../lib/crc16_v2.asm'
|
|
||||||
|
|
||||||
;jsr print
|
|
||||||
;dta c'AlaMaKota.',$9b,0
|
|
||||||
;lda #$55
|
|
||||||
;jsr printhex
|
|
||||||
;lda #$aa
|
|
||||||
;jsr printhex
|
|
||||||
;jmp *
|
|
||||||
icl '../../lib/print2.asx'
|
|
||||||
org $2e2
|
|
||||||
dta a(STARTFLASHWRITE)
|
|
||||||
; ---------------------------------------
|
|
||||||
; blocks for every 8kb bank
|
|
||||||
.rept BANKS, #
|
|
||||||
.print "A :1"
|
|
||||||
.local block:1
|
|
||||||
;------------
|
|
||||||
org BankNum
|
|
||||||
dta b(:1)
|
|
||||||
dta b(1) ; Counter
|
|
||||||
;------------
|
|
||||||
org _SOURCE
|
|
||||||
BANKS_FILE(:1)
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(MAIN_PROCESS)
|
|
||||||
;------------
|
|
||||||
.endl
|
|
||||||
.endr
|
|
||||||
;------------
|
|
||||||
.if .def CUSTOM_CART_LAYOUT
|
|
||||||
CUSTOM_CART_LAYOUT
|
|
||||||
.endif
|
|
||||||
|
|
||||||
org $2e2
|
|
||||||
dta a(FINISH_PROCESS)
|
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
; Action!3.6: Copyright 1983 by Clinton W Parker.
|
||||||
|
; D500 A000 20 6c offset:$0000
|
||||||
|
; D503 A000 85 86 offset $1000
|
||||||
|
; D504 A000 20 dd offset $2000
|
||||||
|
; All: B000 36 01 offset $3000
|
||||||
|
;
|
||||||
|
.define TITLE dta c'BASICXE 4.1'
|
||||||
|
.define CARTSIZE dta c'>=128'
|
||||||
|
.define BANKS 0
|
||||||
|
|
||||||
|
.macro CUSTOM_CART_LAYOUT
|
||||||
|
;------------
|
||||||
|
org BankNum
|
||||||
|
dta b(0) ; $d500
|
||||||
|
dta b(1) ; Counter
|
||||||
|
;------------
|
||||||
|
org _SOURCE
|
||||||
|
ins "BASIC XE 4.1.rom",+$1000,$1000
|
||||||
|
ins "BASIC XE 4.1.rom",+$0000,$1000
|
||||||
|
;------------
|
||||||
|
org $2e2
|
||||||
|
dta a(MAIN_PROCESS)
|
||||||
|
;------------
|
||||||
|
org BankNum
|
||||||
|
dta b(1) ; d501
|
||||||
|
dta b(1) ; Counter
|
||||||
|
;------------
|
||||||
|
org _SOURCE
|
||||||
|
ins "BASIC XE 4.1.rom",+$3000,$1000
|
||||||
|
ins "BASIC XE 4.1.rom",+$0000,$1000
|
||||||
|
;------------
|
||||||
|
org $2e2
|
||||||
|
dta a(MAIN_PROCESS)
|
||||||
|
;------------
|
||||||
|
org BankNum
|
||||||
|
dta b(9) ; $d509
|
||||||
|
dta b(1) ; Counter
|
||||||
|
;------------
|
||||||
|
org _SOURCE
|
||||||
|
ins "BASIC XE 4.1.rom",+$2000,$1000
|
||||||
|
ins "BASIC XE 4.1.rom",+$0000,$1000
|
||||||
|
;------------
|
||||||
|
org $2e2
|
||||||
|
dta a(MAIN_PROCESS)
|
||||||
|
;------------
|
||||||
|
.endm
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
outfile=BASICXEflashwrite
|
|
||||||
cd `dirname $0`
|
|
||||||
mads flashwrite.asx -m:macroflashname.asx -o:"$outfile".xex
|
|
||||||
rm "$outfile".lst
|
|
||||||
|
|
||||||
|
|
||||||
Binary file not shown.
@@ -1,378 +0,0 @@
|
|||||||
; JatariCart256 Action!3.6 flasher
|
|
||||||
; by Jakub Husak , 04.01.2020
|
|
||||||
; All Rights Reserved.
|
|
||||||
;
|
|
||||||
; Action!3.6: Copyright 1983 by Clinton W Parker.
|
|
||||||
;
|
|
||||||
; JatariCart256 is free software: you can redistribute it and/or modify
|
|
||||||
; it under the terms of the GNU General Public License as published by
|
|
||||||
; the Free Software Foundation, either version 3 of the License, or
|
|
||||||
; (at your option) any later version.
|
|
||||||
;
|
|
||||||
; JatariCart256 is distributed in the hope that it will be useful,
|
|
||||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
; GNU General Public License for more details.
|
|
||||||
;
|
|
||||||
; You should have received a copy of the GNU General Public License
|
|
||||||
; along with JatariCart256. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
;
|
|
||||||
icl '../../lib/atari.hea'
|
|
||||||
; uncomment when flashing all cart or want to check all blocks written so far.
|
|
||||||
;.def compareall
|
|
||||||
BankNum equ $88
|
|
||||||
Counter equ $89
|
|
||||||
operation equ $8a
|
|
||||||
start equ 6 ; format chip and program
|
|
||||||
select equ 5 ; ferify and format sectors
|
|
||||||
option equ 3 ; verify
|
|
||||||
outchar equ $F2B0
|
|
||||||
memtop equ $2e5
|
|
||||||
dmactls equ $22f
|
|
||||||
|
|
||||||
_SOURCE equ $6000
|
|
||||||
_DEST equ $A000
|
|
||||||
|
|
||||||
; test code
|
|
||||||
org $2000
|
|
||||||
jsr $f420 ; clrscr
|
|
||||||
lda portb
|
|
||||||
cmp #$fd
|
|
||||||
beq @+
|
|
||||||
jsr print
|
|
||||||
dta c'Run with BASIC enabled and restart.',0
|
|
||||||
jmp *
|
|
||||||
@ lda #$1
|
|
||||||
sta 66
|
|
||||||
; waiting for cart to be inserted
|
|
||||||
jsr print
|
|
||||||
dta c'Insert cartridge...',0
|
|
||||||
@ lda $D013
|
|
||||||
lsr
|
|
||||||
bcc @-
|
|
||||||
jsr print
|
|
||||||
dta c' inserted.',$9b,0
|
|
||||||
|
|
||||||
; cart inserted, fake it was not changed
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
|
|
||||||
;lda #$ff
|
|
||||||
;sta $d301
|
|
||||||
|
|
||||||
jsr print
|
|
||||||
dta c'Press:',$9b
|
|
||||||
dta c'START - format cart and programm',$9b
|
|
||||||
dta c'SELECT - verify; repair bad blocks.',$9b
|
|
||||||
dta c'OPTION - verify only',$9b,0
|
|
||||||
@ lda 53279
|
|
||||||
cmp #7
|
|
||||||
beq @-
|
|
||||||
sta operation
|
|
||||||
|
|
||||||
cmp #select
|
|
||||||
beq VERIFYREPAIR
|
|
||||||
|
|
||||||
cmp #option
|
|
||||||
beq CHECKONLY
|
|
||||||
; start
|
|
||||||
FORMAT
|
|
||||||
jsr print
|
|
||||||
dta c'Formatting cart ...',0
|
|
||||||
jsr flashformatchip
|
|
||||||
bcs formatfailed
|
|
||||||
jsr print
|
|
||||||
dta c'done:)',$9b,0
|
|
||||||
rts
|
|
||||||
formatfailed
|
|
||||||
jsr print
|
|
||||||
dta c'failed:(',$9b,'Waiting for reboot...',$9b,0
|
|
||||||
jmp *
|
|
||||||
VERIFYREPAIR
|
|
||||||
jsr print
|
|
||||||
dta c'Verify and ',0
|
|
||||||
CHECKONLY
|
|
||||||
jsr print
|
|
||||||
dta c'Compare.',$9b,0
|
|
||||||
rts
|
|
||||||
crcsums
|
|
||||||
:128 dta 0,0
|
|
||||||
|
|
||||||
CHECKINIT
|
|
||||||
mwa #_SOURCE _csrc
|
|
||||||
mwa #_DEST _cdst
|
|
||||||
sei
|
|
||||||
CHECK
|
|
||||||
|
|
||||||
mva #0 badcompare_counter
|
|
||||||
sta badcompare_counter+1
|
|
||||||
ldx BankNum
|
|
||||||
sta $d500,x
|
|
||||||
checkloop
|
|
||||||
_csrc equ * + 1
|
|
||||||
lda $6000 ; src
|
|
||||||
_cdst equ * + 1
|
|
||||||
cmp $A000 ; dst
|
|
||||||
beq @+
|
|
||||||
lda _csrc
|
|
||||||
ldx _csrc+1
|
|
||||||
jsr BADCOMPARE
|
|
||||||
@ inw _csrc
|
|
||||||
inw _cdst
|
|
||||||
lda _csrc+1
|
|
||||||
cmp #>_SOURCE+$20
|
|
||||||
bne checkloop
|
|
||||||
cpw #0 badcompare_counter
|
|
||||||
beq @+
|
|
||||||
sta $d580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
jsr print
|
|
||||||
dta c'non-match byte#:',0
|
|
||||||
lda badcompare_counter+1
|
|
||||||
jsr printhex
|
|
||||||
lda badcompare_counter
|
|
||||||
jsr printhex
|
|
||||||
jsr printnl
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
@ sta $d580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
lda #'o'
|
|
||||||
jsr outchar
|
|
||||||
@ clc
|
|
||||||
dmaon mva #34 dmactls
|
|
||||||
sta dmactl
|
|
||||||
rts
|
|
||||||
VERIFY
|
|
||||||
;mwa #_SOURCE _csrc
|
|
||||||
;mwa #_DEST _cdst
|
|
||||||
jsr CHECKINIT
|
|
||||||
bcc v_rts
|
|
||||||
lda #'f'
|
|
||||||
jsr outchar
|
|
||||||
ldx BankNum
|
|
||||||
lda #$a0
|
|
||||||
jsr flashformatsector
|
|
||||||
ldx BankNum
|
|
||||||
lda #$b0
|
|
||||||
jsr flashformatsector
|
|
||||||
jsr FORMATTED
|
|
||||||
dec Counter
|
|
||||||
bne VERIFY
|
|
||||||
v_rts jmp dmaon
|
|
||||||
|
|
||||||
COMPARE_CRC16_DEST_ALL
|
|
||||||
lda BankNum
|
|
||||||
sta _tbanknum
|
|
||||||
@ sei
|
|
||||||
_tbanknum equ * + 1
|
|
||||||
sta $D500
|
|
||||||
clc
|
|
||||||
mva _tbanknum calccrc_bank
|
|
||||||
jsr CALCCRC_DEST
|
|
||||||
jsr status_crc
|
|
||||||
.ifdef compareall
|
|
||||||
dec _tbanknum
|
|
||||||
bpl @-
|
|
||||||
.endif
|
|
||||||
sta $D580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
rts
|
|
||||||
status_crc
|
|
||||||
php
|
|
||||||
jsr printBank_t
|
|
||||||
plp
|
|
||||||
php
|
|
||||||
sne
|
|
||||||
lda #'o'
|
|
||||||
plp
|
|
||||||
seq
|
|
||||||
lda #'!'
|
|
||||||
jsr outchar
|
|
||||||
lda #','
|
|
||||||
jmp outchar
|
|
||||||
|
|
||||||
|
|
||||||
CALCCRC_DEST
|
|
||||||
php
|
|
||||||
mwa #_DEST _tsrc
|
|
||||||
bne crccont
|
|
||||||
|
|
||||||
CALCCRC ; c=1 - write; c=0 - check
|
|
||||||
php
|
|
||||||
mwa #_SOURCE _tsrc
|
|
||||||
mwa #$2000 _tcnt
|
|
||||||
crccont mwa #$ffff crc16.crc
|
|
||||||
_tsrc equ * + 1
|
|
||||||
lda $ffff
|
|
||||||
jsr crc16.updCRC
|
|
||||||
inw _tsrc
|
|
||||||
dew _tcnt
|
|
||||||
bne _tsrc -1
|
|
||||||
calccrc_bank equ * +1
|
|
||||||
lda #$ba ; nk number
|
|
||||||
asl
|
|
||||||
tax
|
|
||||||
plp
|
|
||||||
bcc crccheck
|
|
||||||
mwa crc16.crc crcsums,x
|
|
||||||
rts
|
|
||||||
_tcnt :2 dta 0
|
|
||||||
crccheck
|
|
||||||
cpw crc16.crc crcsums,x
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
printBank_t
|
|
||||||
lda _tbanknum
|
|
||||||
bpl @+
|
|
||||||
printBank
|
|
||||||
jsr printnl
|
|
||||||
lda BankNum
|
|
||||||
@ pha
|
|
||||||
lda #'B'
|
|
||||||
jsr outchar
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
lda #':'
|
|
||||||
jmp outchar
|
|
||||||
|
|
||||||
MAIN_PROCESS
|
|
||||||
;mva #0 dmactls
|
|
||||||
;sta dmactl
|
|
||||||
sec
|
|
||||||
mva BankNum calccrc_bank
|
|
||||||
jsr CALCCRC
|
|
||||||
mwa #_DEST flashaddr
|
|
||||||
jsr printBank
|
|
||||||
|
|
||||||
lda operation
|
|
||||||
cmp #select
|
|
||||||
jeq VERIFY
|
|
||||||
|
|
||||||
cmp #option
|
|
||||||
jeq CHECKINIT
|
|
||||||
|
|
||||||
FORMATTED
|
|
||||||
mwa #_SOURCE _writeaddr
|
|
||||||
lda _writeaddr+1
|
|
||||||
clc
|
|
||||||
adc #$20
|
|
||||||
sta _cmpaddr
|
|
||||||
mwa #_DEST flashaddr
|
|
||||||
sec
|
|
||||||
formatted_next
|
|
||||||
ldx BankNum
|
|
||||||
formatted_next2
|
|
||||||
_writeaddr equ *+1
|
|
||||||
lda $ffff
|
|
||||||
jsr flashwritebyte
|
|
||||||
jsr flashincaddr
|
|
||||||
inw _writeaddr
|
|
||||||
_cmpaddr equ * + 1
|
|
||||||
lda #$ff
|
|
||||||
cmp _writeaddr+1
|
|
||||||
bne formatted_next2
|
|
||||||
|
|
||||||
jmp COMPARE_CRC16_DEST_ALL
|
|
||||||
|
|
||||||
FINISH_PROCESS
|
|
||||||
jsr print
|
|
||||||
dta $9b,'Finished',0
|
|
||||||
jmp *
|
|
||||||
rts
|
|
||||||
badcompare_counter dta 0,0
|
|
||||||
BADCOMPARE
|
|
||||||
ldy 53279
|
|
||||||
cpy #7
|
|
||||||
beq @+
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
lda #'!'
|
|
||||||
jsr outchar
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
lda #':'
|
|
||||||
jsr outchar
|
|
||||||
mwa _csrc badcompare_tmp1
|
|
||||||
badcompare_tmp1 equ * +1
|
|
||||||
lda $ffff
|
|
||||||
jsr printhex
|
|
||||||
lda #'/'
|
|
||||||
jsr outchar
|
|
||||||
mwa _cdst badcompare_tmp2
|
|
||||||
badcompare_tmp2 equ * +1
|
|
||||||
lda $ffff
|
|
||||||
jsr printhex
|
|
||||||
jsr printnl
|
|
||||||
@ inw badcompare_counter
|
|
||||||
sec
|
|
||||||
jmp dmaon
|
|
||||||
; -------
|
|
||||||
icl '../../lib/flashwritelib.asx'
|
|
||||||
|
|
||||||
icl '../../lib/crc16_v2.asm'
|
|
||||||
|
|
||||||
;jsr print
|
|
||||||
;dta c'AlaMaKota.',$9b,0
|
|
||||||
;lda #$55
|
|
||||||
;jsr printhex
|
|
||||||
;lda #$aa
|
|
||||||
;jsr printhex
|
|
||||||
;jmp *
|
|
||||||
icl '../../lib/print2.asx'
|
|
||||||
org $2e2
|
|
||||||
dta a($2000)
|
|
||||||
; ---------------------------------------
|
|
||||||
; D500 A000 20 6c offset:$0000
|
|
||||||
; D503 A000 85 86 offset $1000
|
|
||||||
; D504 A000 20 dd offset $2000
|
|
||||||
; All: B000 36 01 offset $3000
|
|
||||||
; blocks for every 8kb bank
|
|
||||||
;------------
|
|
||||||
org BankNum
|
|
||||||
dta b(0) ; $d500
|
|
||||||
dta b(1) ; Counter
|
|
||||||
;------------
|
|
||||||
org _SOURCE
|
|
||||||
ins "OSSBasicXL103.rom",+$1000,$1000
|
|
||||||
ins "OSSBasicXL103.rom",+$0000,$1000
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(MAIN_PROCESS)
|
|
||||||
;------------
|
|
||||||
org BankNum
|
|
||||||
dta b(1) ; d501
|
|
||||||
dta b(1) ; Counter
|
|
||||||
;------------
|
|
||||||
org _SOURCE
|
|
||||||
ins "OSSBasicXL103.rom",+$3000,$1000
|
|
||||||
ins "OSSBasicXL103.rom",+$0000,$1000
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(MAIN_PROCESS)
|
|
||||||
;------------
|
|
||||||
org BankNum
|
|
||||||
dta b(9) ; $d509
|
|
||||||
dta b(1) ; Counter
|
|
||||||
;------------
|
|
||||||
org _SOURCE
|
|
||||||
ins "OSSBasicXL103.rom",+$2000,$1000
|
|
||||||
ins "OSSBasicXL103.rom",+$0000,$1000
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(MAIN_PROCESS)
|
|
||||||
;------------
|
|
||||||
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(FINISH_PROCESS)
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
cd `dirname $0`
|
|
||||||
mads flashwrite.asx -o:BASICXLflashwrite.xex
|
|
||||||
|
|
||||||
@@ -1,358 +0,0 @@
|
|||||||
; JatariCart256 flasher
|
|
||||||
; by Jakub Husak , 04.01.2020
|
|
||||||
; All Rights Reserved.
|
|
||||||
;
|
|
||||||
; JatariCart256 is free software: you can redistribute it and/or modify
|
|
||||||
; it under the terms of the GNU General Public License as published by
|
|
||||||
; the Free Software Foundation, either version 3 of the License, or
|
|
||||||
; (at your option) any later version.
|
|
||||||
;
|
|
||||||
; JatariCart256 is distributed in the hope that it will be useful,
|
|
||||||
; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
; GNU General Public License for more details.
|
|
||||||
;
|
|
||||||
; You should have received a copy of the GNU General Public License
|
|
||||||
; along with JatariCart256. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
;
|
|
||||||
icl '../../lib/atari.hea'
|
|
||||||
; uncomment when flashing all cart or want to check all blocks written so far.
|
|
||||||
;.def compareall
|
|
||||||
BankNum equ $88
|
|
||||||
Counter equ $89
|
|
||||||
operation equ $8a
|
|
||||||
start equ 6 ; format chip and program
|
|
||||||
select equ 5 ; ferify and format sectors
|
|
||||||
option equ 3 ; verify
|
|
||||||
outchar equ $F2B0
|
|
||||||
memtop equ $2e5
|
|
||||||
dmactls equ $22f
|
|
||||||
|
|
||||||
_SOURCE equ $6000
|
|
||||||
_DEST equ $A000
|
|
||||||
|
|
||||||
; test code
|
|
||||||
org $2000
|
|
||||||
jsr $f420 ; clrscr
|
|
||||||
lda portb
|
|
||||||
cmp #$fd
|
|
||||||
beq @+
|
|
||||||
jsr print
|
|
||||||
dta c'Run with BASIC enabled and restart.',0
|
|
||||||
jmp *
|
|
||||||
@ lda #$1
|
|
||||||
sta 66
|
|
||||||
; waiting for cart to be inserted
|
|
||||||
jsr print
|
|
||||||
dta c'Insert cartridge...',0
|
|
||||||
@ lda $D013
|
|
||||||
lsr
|
|
||||||
bcc @-
|
|
||||||
jsr print
|
|
||||||
dta c' inserted.',$9b,0
|
|
||||||
|
|
||||||
; cart inserted, fake it was not changed
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
|
|
||||||
;lda #$ff
|
|
||||||
;sta $d301
|
|
||||||
|
|
||||||
jsr print
|
|
||||||
dta c'Press:',$9b
|
|
||||||
dta c'START - format cart and programm',$9b
|
|
||||||
dta c'SELECT - verify; repair bad blocks.',$9b
|
|
||||||
dta c'OPTION - verify only',$9b,0
|
|
||||||
@ lda 53279
|
|
||||||
cmp #7
|
|
||||||
beq @-
|
|
||||||
sta operation
|
|
||||||
|
|
||||||
cmp #select
|
|
||||||
beq VERIFYREPAIR
|
|
||||||
|
|
||||||
cmp #option
|
|
||||||
beq CHECKONLY
|
|
||||||
; start
|
|
||||||
FORMAT
|
|
||||||
jsr print
|
|
||||||
dta c'Formatting cart ...',0
|
|
||||||
jsr flashformatchip
|
|
||||||
bcs formatfailed
|
|
||||||
jsr print
|
|
||||||
dta c'done:)',$9b,0
|
|
||||||
rts
|
|
||||||
formatfailed
|
|
||||||
jsr print
|
|
||||||
dta c'failed:(',$9b,'Waiting for reboot...',$9b,0
|
|
||||||
jmp *
|
|
||||||
VERIFYREPAIR
|
|
||||||
jsr print
|
|
||||||
dta c'Verify and ',0
|
|
||||||
CHECKONLY
|
|
||||||
jsr print
|
|
||||||
dta c'Compare.',$9b,0
|
|
||||||
rts
|
|
||||||
crcsums
|
|
||||||
:128 dta 0,0
|
|
||||||
|
|
||||||
CHECKINIT
|
|
||||||
mwa #_SOURCE _csrc
|
|
||||||
mwa #_DEST _cdst
|
|
||||||
sei
|
|
||||||
CHECK
|
|
||||||
|
|
||||||
mva #0 badcompare_counter
|
|
||||||
sta badcompare_counter+1
|
|
||||||
ldx BankNum
|
|
||||||
sta $d500,x
|
|
||||||
checkloop
|
|
||||||
_csrc equ * + 1
|
|
||||||
lda $6000 ; src
|
|
||||||
_cdst equ * + 1
|
|
||||||
cmp $A000 ; dst
|
|
||||||
beq @+
|
|
||||||
lda _csrc
|
|
||||||
ldx _csrc+1
|
|
||||||
jsr BADCOMPARE
|
|
||||||
@ inw _csrc
|
|
||||||
inw _cdst
|
|
||||||
lda _csrc+1
|
|
||||||
cmp #>_SOURCE+$20
|
|
||||||
bne checkloop
|
|
||||||
cpw #0 badcompare_counter
|
|
||||||
beq @+
|
|
||||||
sta $d580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
jsr print
|
|
||||||
dta c'non-match byte#:',0
|
|
||||||
lda badcompare_counter+1
|
|
||||||
jsr printhex
|
|
||||||
lda badcompare_counter
|
|
||||||
jsr printhex
|
|
||||||
jsr printnl
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
@ sta $d580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
lda #'o'
|
|
||||||
jsr outchar
|
|
||||||
@ clc
|
|
||||||
dmaon mva #34 dmactls
|
|
||||||
sta dmactl
|
|
||||||
rts
|
|
||||||
VERIFY
|
|
||||||
;mwa #_SOURCE _csrc
|
|
||||||
;mwa #_DEST _cdst
|
|
||||||
jsr CHECKINIT
|
|
||||||
bcc v_rts
|
|
||||||
lda #'f'
|
|
||||||
jsr outchar
|
|
||||||
ldx BankNum
|
|
||||||
lda #$a0
|
|
||||||
jsr flashformatsector
|
|
||||||
ldx BankNum
|
|
||||||
lda #$b0
|
|
||||||
jsr flashformatsector
|
|
||||||
jsr FORMATTED
|
|
||||||
dec Counter
|
|
||||||
bne VERIFY
|
|
||||||
v_rts jmp dmaon
|
|
||||||
|
|
||||||
COMPARE_CRC16_DEST_ALL
|
|
||||||
lda BankNum
|
|
||||||
sta _tbanknum
|
|
||||||
@ sei
|
|
||||||
_tbanknum equ * + 1
|
|
||||||
sta $D500
|
|
||||||
clc
|
|
||||||
mva _tbanknum calccrc_bank
|
|
||||||
jsr CALCCRC_DEST
|
|
||||||
jsr status_crc
|
|
||||||
.ifdef compareall
|
|
||||||
dec _tbanknum
|
|
||||||
bpl @-
|
|
||||||
.endif
|
|
||||||
sta $D580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
rts
|
|
||||||
status_crc
|
|
||||||
php
|
|
||||||
jsr printBank_t
|
|
||||||
plp
|
|
||||||
php
|
|
||||||
sne
|
|
||||||
lda #'o'
|
|
||||||
plp
|
|
||||||
seq
|
|
||||||
lda #'!'
|
|
||||||
jsr outchar
|
|
||||||
lda #','
|
|
||||||
jmp outchar
|
|
||||||
|
|
||||||
|
|
||||||
CALCCRC_DEST
|
|
||||||
php
|
|
||||||
mwa #_DEST _tsrc
|
|
||||||
bne crccont
|
|
||||||
|
|
||||||
CALCCRC ; c=1 - write; c=0 - check
|
|
||||||
php
|
|
||||||
mwa #_SOURCE _tsrc
|
|
||||||
mwa #$2000 _tcnt
|
|
||||||
crccont mwa #$ffff crc16.crc
|
|
||||||
_tsrc equ * + 1
|
|
||||||
lda $ffff
|
|
||||||
jsr crc16.updCRC
|
|
||||||
inw _tsrc
|
|
||||||
dew _tcnt
|
|
||||||
bne _tsrc -1
|
|
||||||
calccrc_bank equ * +1
|
|
||||||
lda #$ba ; nk number
|
|
||||||
asl
|
|
||||||
tax
|
|
||||||
plp
|
|
||||||
bcc crccheck
|
|
||||||
mwa crc16.crc crcsums,x
|
|
||||||
rts
|
|
||||||
_tcnt :2 dta 0
|
|
||||||
crccheck
|
|
||||||
cpw crc16.crc crcsums,x
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
printBank_t
|
|
||||||
lda _tbanknum
|
|
||||||
bpl @+
|
|
||||||
printBank
|
|
||||||
jsr printnl
|
|
||||||
lda BankNum
|
|
||||||
@ pha
|
|
||||||
lda #'B'
|
|
||||||
jsr outchar
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
lda #':'
|
|
||||||
jmp outchar
|
|
||||||
|
|
||||||
MAIN_PROCESS
|
|
||||||
;mva #0 dmactls
|
|
||||||
;sta dmactl
|
|
||||||
sec
|
|
||||||
mva BankNum calccrc_bank
|
|
||||||
jsr CALCCRC
|
|
||||||
mwa #_DEST flashaddr
|
|
||||||
jsr printBank
|
|
||||||
|
|
||||||
lda operation
|
|
||||||
cmp #select
|
|
||||||
jeq VERIFY
|
|
||||||
|
|
||||||
cmp #option
|
|
||||||
jeq CHECKINIT
|
|
||||||
|
|
||||||
FORMATTED
|
|
||||||
mwa #_SOURCE _writeaddr
|
|
||||||
lda _writeaddr+1
|
|
||||||
clc
|
|
||||||
adc #$20
|
|
||||||
sta _cmpaddr
|
|
||||||
mwa #_DEST flashaddr
|
|
||||||
sec
|
|
||||||
formatted_next
|
|
||||||
ldx BankNum
|
|
||||||
formatted_next2
|
|
||||||
_writeaddr equ *+1
|
|
||||||
lda $ffff
|
|
||||||
jsr flashwritebyte
|
|
||||||
jsr flashincaddr
|
|
||||||
inw _writeaddr
|
|
||||||
_cmpaddr equ * + 1
|
|
||||||
lda #$ff
|
|
||||||
cmp _writeaddr+1
|
|
||||||
bne formatted_next2
|
|
||||||
|
|
||||||
jmp COMPARE_CRC16_DEST_ALL
|
|
||||||
|
|
||||||
FINISH_PROCESS
|
|
||||||
jsr print
|
|
||||||
dta $9b,'Finished',0
|
|
||||||
jmp *
|
|
||||||
rts
|
|
||||||
badcompare_counter dta 0,0
|
|
||||||
BADCOMPARE
|
|
||||||
ldy 53279
|
|
||||||
cpy #7
|
|
||||||
beq @+
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
lda #'!'
|
|
||||||
jsr outchar
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
pla
|
|
||||||
jsr printhex
|
|
||||||
lda #':'
|
|
||||||
jsr outchar
|
|
||||||
mwa _csrc badcompare_tmp1
|
|
||||||
badcompare_tmp1 equ * +1
|
|
||||||
lda $ffff
|
|
||||||
jsr printhex
|
|
||||||
lda #'/'
|
|
||||||
jsr outchar
|
|
||||||
mwa _cdst badcompare_tmp2
|
|
||||||
badcompare_tmp2 equ * +1
|
|
||||||
lda $ffff
|
|
||||||
jsr printhex
|
|
||||||
jsr printnl
|
|
||||||
@ inw badcompare_counter
|
|
||||||
sec
|
|
||||||
jmp dmaon
|
|
||||||
; -------
|
|
||||||
icl '../../lib/flashwritelib.asx'
|
|
||||||
|
|
||||||
icl '../../lib/crc16_v2.asm'
|
|
||||||
|
|
||||||
;jsr print
|
|
||||||
;dta c'AlaMaKota.',$9b,0
|
|
||||||
;lda #$55
|
|
||||||
;jsr printhex
|
|
||||||
;lda #$aa
|
|
||||||
;jsr printhex
|
|
||||||
;jmp *
|
|
||||||
icl '../../lib/print2.asx'
|
|
||||||
org $2e2
|
|
||||||
dta a($2000)
|
|
||||||
; ---------------------------------------
|
|
||||||
; code generator for bank by bank programming.
|
|
||||||
; .rept number of cartridge banks of 8kb; set this for 8kb banks number:
|
|
||||||
; 256kb flash - 32
|
|
||||||
; 128 kb flash - 16
|
|
||||||
; 8 kb flash - 1
|
|
||||||
;.rept 32, #
|
|
||||||
.rept 1, #
|
|
||||||
.print "A :1"
|
|
||||||
.local block:1
|
|
||||||
;------------
|
|
||||||
org BankNum
|
|
||||||
dta b(:1)
|
|
||||||
dta b(1) ; Counter
|
|
||||||
;------------
|
|
||||||
org _SOURCE
|
|
||||||
ins "missile.bin",+:1*8192,8192
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(MAIN_PROCESS)
|
|
||||||
;------------
|
|
||||||
.endl
|
|
||||||
.endr
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(FINISH_PROCESS)
|
|
||||||
Binary file not shown.
@@ -1,3 +0,0 @@
|
|||||||
cd `dirname $0`
|
|
||||||
mads flashwrite.asx -o:flashwrite.xex
|
|
||||||
|
|
||||||
@@ -1,9 +1,10 @@
|
|||||||
Umieść ten plik na dysku, w pliku atr lub po prostu skopiuj i uruchom z sio2sd lub innego urządzenia, które pozwala na uruchomienie plików wykonywalnych. Uruchom komputer z wciśniętym OPTION. Wtedy albo:
|
Umieść plik z wybranego katalogu na dysku, w pliku atr lub po prostu skopiuj i uruchom z sio2sd lub innego urządzenia, które pozwala na uruchomienie plików wykonywalnych. Uruchom komputer z wciśniętym OPTION. Wtedy albo:
|
||||||
1. komputer się uruchomi i pozwoli wczytać flasher,
|
1. komputer się uruchomi i pozwoli wczytać flasher,
|
||||||
albo
|
albo
|
||||||
2. uruchomi się kartridż.
|
2. uruchomi się kartridż.
|
||||||
W drugim przypadku, należy trzymając OPTION po kilka-kilkanaście razy kilka razy na sekundę wciskać klawisz RESET, aż zaziała tzw. błąd resetu i komputer zbootuje się na zimno i pozwoli wczytać flasher. Jeśli na kartridżu jest coś nagrane, to w zależności co, można:
|
W drugim przypadku, należy trzymając OPTION po kilka-kilkanaście razy kilka razy na sekundę wciskać klawisz RESET, aż zadziała tzw. błąd resetu i komputer zbootuje się na zimno i pozwoli wczytać flasher. Jeśli na kartridżu jest coś nagrane, to w zależności co, można:
|
||||||
* jeśli jest nagrane coś, co wyłącza kartridż, należy poczekać do tego momentu, następnie wcisnąć reset lub wykorzystać błąd reset.
|
* jeśli jest nagrane coś, co wyłącza kartridż, należy poczekać do tego momentu, następnie wcisnąć reset lub wykorzystać błąd reset.
|
||||||
|
* kartridże z językami programowania pozwalają systemowi bootować się, więc nie ma problemu
|
||||||
* jeśli jest nagrane coś, co kartridża nie wyłącza, należy próbować wykorzystać błąd reset, a w ostateczności, jak nijak nie idzie, włożyć dokładnie i poziomo stanowczym ruchem włożyć kartridż po uruchomieniu flashera, gdy prosi on o włożenie kartridża. Jednak grozi to uszkodzeniem komputera (mała szansa ale jednak).
|
* jeśli jest nagrane coś, co kartridża nie wyłącza, należy próbować wykorzystać błąd reset, a w ostateczności, jak nijak nie idzie, włożyć dokładnie i poziomo stanowczym ruchem włożyć kartridż po uruchomieniu flashera, gdy prosi on o włożenie kartridża. Jednak grozi to uszkodzeniem komputera (mała szansa ale jednak).
|
||||||
* wykorzystać przejściówkę - rozgałęziacz kartridży, np. ten od toriego na 4 sztuki.
|
* wykorzystać przejściówkę - rozgałęziacz kartridży, np. ten od toriego na 4 sztuki.
|
||||||
|
|
||||||
@@ -11,26 +12,25 @@ Gdy wszystko pójdzie dobrze, pojawi się menu:
|
|||||||
|
|
||||||
Press:
|
Press:
|
||||||
START - format cart and programm
|
START - format cart and programm
|
||||||
SELECT - verify; repair bad blocks.
|
|
||||||
OPTION - verify only
|
OPTION - verify only
|
||||||
|
|
||||||
Wybierz START.
|
Wybierz START.
|
||||||
|
|
||||||
Po kilku popikiwaniach i przerwach flasher kończy pracę.
|
Po kilku(nastu,dziesięciu) popikiwaniach i przerwach flasher kończy pracę:
|
||||||
|
|
||||||
Finished.
|
Finished.
|
||||||
|
|
||||||
__NIE PRZERYWAJ PRACY PODCZAS FLASHOWANIA!!! (tzn. gdy flasher nie odczytuje z dysku, a zapisuje do kartridża)__
|
__NIE PRZERYWAJ PRACY PODCZAS FLASHOWANIA!!! (tzn. gdy flasher nie odczytuje z dysku, a zapisuje do kartridża)__
|
||||||
Można to zrobić podczas czytania danych z pliku.
|
Można to zrobić podczas czytania danych z pliku.
|
||||||
|
|
||||||
|
Aby wygenerować flasher (plik .xex) należy wejść do wybranego katalogu i wykonać ../makeflashwrite.sh
|
||||||
|
|
||||||
|
|
||||||
---------------------------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
||||||
EN:
|
EN:
|
||||||
|
|
||||||
Please put those file on disk, or on atr file or simply copy and run from sio2sd or another device which allows running executables.
|
Please put the file from chosen catalog on some disk, atr file or simply copy and run from sio2sd or another device which allows running executables.
|
||||||
Turn on your Atari with OPTION. Then one of two cases will occur:
|
Turn on your Atari with OPTION. Then one of two cases will occur:
|
||||||
1. computer boots up from device and runs flasher,
|
1. computer boots up from device and runs flasher,
|
||||||
2. the cartridge will run.
|
2. the cartridge will run.
|
||||||
@@ -43,14 +43,15 @@ When all is ok, the menu will appear:
|
|||||||
|
|
||||||
Press:
|
Press:
|
||||||
START - format cart and programm
|
START - format cart and programm
|
||||||
SELECT - verify; repair bad blocks.
|
|
||||||
OPTION - verify only
|
OPTION - verify only
|
||||||
|
|
||||||
Choose your option (START will be good)
|
Choose your option (START will be good)
|
||||||
|
|
||||||
After some beeps and pauses the flasher finishes it's job.
|
After some beeps and pauses the flasher finishes it's job:
|
||||||
|
|
||||||
Finished.
|
Finished.
|
||||||
|
|
||||||
__DO NOT BREAK THE JOB DURING FLASHING!!! (ie when flasher does not read from the disk, but writes to it)__
|
__DO NOT BREAK THE JOB DURING FLASHING!!! (ie when flasher does not read from the disk, but writes to it)__
|
||||||
You are free to do it during read from device.
|
You are free to do it during read from device.
|
||||||
|
|
||||||
|
To generate flasher (.xex file) go to chosen catalog and run: ../makeflashwrite.sh
|
||||||
|
|||||||
Reference in New Issue
Block a user