mirror of
https://github.com/Pecusx/jataricart.git
synced 2026-05-20 22:33:22 +02:00
removed obsolete files
This commit is contained in:
@@ -1,383 +0,0 @@
|
|||||||
; JatariCart256 Action!3.6 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
|
|
||||||
.def TWOCHIPS
|
|
||||||
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
|
|
||||||
mva #$A0 106
|
|
||||||
jsr opened
|
|
||||||
lda 20
|
|
||||||
@ cmp 20
|
|
||||||
beq @-
|
|
||||||
@ lda #$1
|
|
||||||
sta 66
|
|
||||||
; waiting for cart to be inserted
|
|
||||||
jsr print
|
|
||||||
dta c'Insert cartridge...',0
|
|
||||||
sta $D500
|
|
||||||
@ 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
|
|
||||||
jeq CHECKONLY
|
|
||||||
; start
|
|
||||||
FORMAT
|
|
||||||
jsr printformatting
|
|
||||||
jsr print
|
|
||||||
dta c'1...',0
|
|
||||||
ldx #0
|
|
||||||
jsr flashformatchip
|
|
||||||
bcs formatfailed
|
|
||||||
.if .def TWOCHIPS
|
|
||||||
jsr printdone
|
|
||||||
jsr printformatting
|
|
||||||
jsr print
|
|
||||||
dta c'2...',0
|
|
||||||
ldx #$40
|
|
||||||
jsr flashformatchip
|
|
||||||
bcs formatfailed
|
|
||||||
.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
|
|
||||||
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
|
|
||||||
|
|
||||||
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)
|
|
||||||
; ---------------------------------------
|
|
||||||
; blocks for every 8kb bank
|
|
||||||
.rept 24, #
|
|
||||||
.print "A :1"
|
|
||||||
.local block:1
|
|
||||||
;------------
|
|
||||||
org BankNum
|
|
||||||
dta b(:1)
|
|
||||||
dta b(1) ; Counter
|
|
||||||
;------------
|
|
||||||
org _SOURCE
|
|
||||||
ins "PoP_Atarimax_20211024_final.car",+:1*8192,8192
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(MAIN_PROCESS)
|
|
||||||
;------------
|
|
||||||
.endl
|
|
||||||
.endr
|
|
||||||
;------------
|
|
||||||
org $2e2
|
|
||||||
dta a(FINISH_PROCESS)
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1,303 +0,0 @@
|
|||||||
; flash eeprom library
|
|
||||||
; by JHusak , 04.01.2020
|
|
||||||
; free to use.
|
|
||||||
lstore_x dta 0
|
|
||||||
; x - 0x0 or 0x40 - chip select
|
|
||||||
; c - 1 - format, 0 - write
|
|
||||||
;.print flashcnt
|
|
||||||
flashoppreamble
|
|
||||||
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
; when write byte x must be set to either 0 or 40 temporarily
|
|
||||||
and #$40
|
|
||||||
tax
|
|
||||||
; $5555<$aa
|
|
||||||
@ sta $d502,x
|
|
||||||
lda #$aa
|
|
||||||
sta $b555
|
|
||||||
; $2aaa<$55
|
|
||||||
sta $d501,x
|
|
||||||
lda #$55
|
|
||||||
sta $aaaa
|
|
||||||
; $5555<$80
|
|
||||||
sta $d502,x
|
|
||||||
; sector format: carry set
|
|
||||||
scc
|
|
||||||
lda #$80 ; sector erase
|
|
||||||
scs
|
|
||||||
lda #$a0 ; byte programm
|
|
||||||
sta $b555
|
|
||||||
bcc @+
|
|
||||||
; $5555<$aa
|
|
||||||
sta $d502,x
|
|
||||||
lda #$aa
|
|
||||||
sta $b555
|
|
||||||
; $2aaa<$55
|
|
||||||
sta $d501,x
|
|
||||||
lda #$55
|
|
||||||
sta $aaaa
|
|
||||||
|
|
||||||
; PREPARE FOR SECTOR TO ERASE
|
|
||||||
|
|
||||||
; set upper bank bits
|
|
||||||
@ pla
|
|
||||||
tax
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
|
|
||||||
; --------------------------
|
|
||||||
; PROCEDURE
|
|
||||||
; x = 0 or 0x40 - flash chip address.
|
|
||||||
store_x dta 0
|
|
||||||
flashformatchip2
|
|
||||||
ldx #$40
|
|
||||||
dta { bit.w }
|
|
||||||
flashformatchip
|
|
||||||
|
|
||||||
sei
|
|
||||||
stx store_x
|
|
||||||
sec ; format preamble
|
|
||||||
jsr flashoppreamble ; does not touch A
|
|
||||||
sta $d502,x
|
|
||||||
lda #$10
|
|
||||||
sta $b555
|
|
||||||
lda #$ff
|
|
||||||
sta flashcmp
|
|
||||||
jsr flashcheckresult
|
|
||||||
beq @+
|
|
||||||
; cart is off and cli
|
|
||||||
; sec ; error
|
|
||||||
; rts
|
|
||||||
@ lda #$3f
|
|
||||||
sta flashformatcounter
|
|
||||||
@ sei
|
|
||||||
ldx store_x
|
|
||||||
flashformatcounter equ*+1
|
|
||||||
sta $d5FF,x ; set chip (x) and bank
|
|
||||||
; set pages count
|
|
||||||
ldy #$20
|
|
||||||
; reset address
|
|
||||||
lda #$a0
|
|
||||||
sta flashformataddrcheck + 2
|
|
||||||
; check whole sector against 0xff
|
|
||||||
jsr flashchecksectorformatted_bare ; destroys x
|
|
||||||
bcs @+ ; format error
|
|
||||||
dec flashformatcounter
|
|
||||||
bpl @-
|
|
||||||
@ jmp flashcartoff ; preserves C
|
|
||||||
|
|
||||||
|
|
||||||
; --------------------------
|
|
||||||
; PROCEDURE
|
|
||||||
flashformatsector
|
|
||||||
; x - even sector 00 - 7f
|
|
||||||
; a - erase 4KB from $B000 if A=$B0, FROM $A000 IF A=$A0
|
|
||||||
; format 4kb evensector
|
|
||||||
; strange form - easily maps to cartridge banks
|
|
||||||
; to format bank, must format sector (x<<1) and (x<<1) +1
|
|
||||||
; first check if all ff
|
|
||||||
; this is to avoid wear
|
|
||||||
stx flashformatstorex
|
|
||||||
sta flashformatstorea
|
|
||||||
sei
|
|
||||||
sta $d500,x
|
|
||||||
sta flashformataddrcheck + 2
|
|
||||||
jsr flashchecksectorformatted
|
|
||||||
bcc flashsectorformatgood
|
|
||||||
sei
|
|
||||||
flashformatstorex equ * + 1
|
|
||||||
ldx #0 ; filled before
|
|
||||||
flashformatstorea equ * + 1
|
|
||||||
lda #0 ; filled before
|
|
||||||
; check least sector bit
|
|
||||||
|
|
||||||
sec ; format preamble
|
|
||||||
jsr flashoppreamble ; does not touch A,X
|
|
||||||
sta $D500,x
|
|
||||||
; A must be either $A0 or $B0
|
|
||||||
sta flashtmpaddr+1
|
|
||||||
sta flashformataddrcheck + 2
|
|
||||||
|
|
||||||
lda #$30
|
|
||||||
flashtmpaddr equ *+1
|
|
||||||
sta $a000 ; Format!
|
|
||||||
jsr flashcheckresult
|
|
||||||
sei
|
|
||||||
|
|
||||||
lda flashformatstorea
|
|
||||||
sta flashformataddrcheck+2
|
|
||||||
|
|
||||||
ldx flashformatstorex
|
|
||||||
sta $d500,x
|
|
||||||
|
|
||||||
; check if all data in sector is $ff
|
|
||||||
flashchecksectorformatted
|
|
||||||
ldy #$10
|
|
||||||
flashchecksectorformatted_bare
|
|
||||||
lda #$ff
|
|
||||||
ldx #0
|
|
||||||
flashformataddrcheck
|
|
||||||
cmp $a000,x
|
|
||||||
bne flashsectorformaterror
|
|
||||||
inx
|
|
||||||
bne flashformataddrcheck
|
|
||||||
inc flashformataddrcheck + 2
|
|
||||||
dey
|
|
||||||
bne flashformataddrcheck
|
|
||||||
|
|
||||||
flashsectorformatgood
|
|
||||||
jsr flashcartoff
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
flashsectorformaterror
|
|
||||||
jsr flashcartoff
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
|
|
||||||
; ---------------------
|
|
||||||
; PROCEDURE
|
|
||||||
|
|
||||||
flashwritebyte
|
|
||||||
|
|
||||||
; a - byte to write
|
|
||||||
; x - 8kb bank to switch, $00 to $7f, also chip select
|
|
||||||
; flashaddr - addres in flash - must be a000-offset
|
|
||||||
; do not programm byte if already good
|
|
||||||
sei
|
|
||||||
sta $D500,x ; select bank, chip
|
|
||||||
ldy #{ cmp.w }
|
|
||||||
jsr flashprocessbyte
|
|
||||||
bne @+
|
|
||||||
;clc
|
|
||||||
;jmp flashcartoff
|
|
||||||
sta $D580
|
|
||||||
cli
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
@ sta flashcmp
|
|
||||||
|
|
||||||
sei
|
|
||||||
clc ; write byte preamble
|
|
||||||
jsr flashoppreamble ; preserves A,X
|
|
||||||
|
|
||||||
sta $D500,x
|
|
||||||
|
|
||||||
ldy #{ sta.w }
|
|
||||||
; WRITE BYTE !
|
|
||||||
jsr flashprocessbyte
|
|
||||||
|
|
||||||
flashcheckresult ; sei mode
|
|
||||||
mva #0 flashcnt
|
|
||||||
ldy #5 ; first time wait short first turn to speed up byte write.
|
|
||||||
bne @+
|
|
||||||
|
|
||||||
flashwaitfordone
|
|
||||||
; approx 100ms in overall for chip erase:
|
|
||||||
; as many cycles needed, as 256*cycles >100ms * (1+epsilon)
|
|
||||||
; 100 ms is 180000 cycles
|
|
||||||
; so max 256 rough loops must last longer
|
|
||||||
; 180000 / 256 = 703
|
|
||||||
; 700 cycles by 6 cycles loop lasts = 116.
|
|
||||||
; so flipipng values, and adding margin,
|
|
||||||
; we count 128*6 cycles in inner loop.
|
|
||||||
; max sector erase by datasheet: 25 ms
|
|
||||||
; max chip erase by datasheet: 100 ms
|
|
||||||
ldy#250
|
|
||||||
@ dey
|
|
||||||
nop
|
|
||||||
bne @-
|
|
||||||
|
|
||||||
@ ldy #{ lda.w }
|
|
||||||
jsr flashprocessbyte
|
|
||||||
ldy #{ eor.w }
|
|
||||||
jsr flashprocessbyte
|
|
||||||
inc flashcnt
|
|
||||||
bne @+
|
|
||||||
jsr flashcartoff
|
|
||||||
lda #$ff ; status
|
|
||||||
rts
|
|
||||||
@
|
|
||||||
and #$40
|
|
||||||
bne flashwaitfordone
|
|
||||||
; in acc will be mismatched byte
|
|
||||||
ldy #{ lda.w }
|
|
||||||
jsr flashprocessbyte
|
|
||||||
jsr flashcartoff ; preserves axy, not p
|
|
||||||
flashcmp equ *+1
|
|
||||||
cmp #0
|
|
||||||
; when non zero = error
|
|
||||||
rts
|
|
||||||
|
|
||||||
flashcnt
|
|
||||||
dta 0
|
|
||||||
; ----------------------
|
|
||||||
; PROCEDURE
|
|
||||||
|
|
||||||
flashprocessbyte
|
|
||||||
|
|
||||||
; y - byteop for cpu to do with byte
|
|
||||||
; flashaddr - stored address
|
|
||||||
sty flashbyteop
|
|
||||||
flashaddr equ *+1
|
|
||||||
flashbyteop
|
|
||||||
sta $aaaa
|
|
||||||
rts
|
|
||||||
|
|
||||||
flashincaddr
|
|
||||||
inw flashaddr
|
|
||||||
rts
|
|
||||||
|
|
||||||
flashsetaddr
|
|
||||||
stx flashaddr
|
|
||||||
sty flashaddr+1
|
|
||||||
rts
|
|
||||||
|
|
||||||
flashcartoff
|
|
||||||
pha
|
|
||||||
sta $d580
|
|
||||||
lda $d013
|
|
||||||
sta $3fa
|
|
||||||
cli
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
|
|
||||||
; PROCEDURE
|
|
||||||
; Y-char to write
|
|
||||||
PRINTWHAT
|
|
||||||
php
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
pha
|
|
||||||
jsr $f2b0
|
|
||||||
pla
|
|
||||||
tay
|
|
||||||
pla
|
|
||||||
tax
|
|
||||||
pla
|
|
||||||
plp
|
|
||||||
rts
|
|
||||||
PRINTDOT
|
|
||||||
php
|
|
||||||
pha
|
|
||||||
txa
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
pha
|
|
||||||
lda #'.'
|
|
||||||
jsr $f2b0
|
|
||||||
pla
|
|
||||||
tay
|
|
||||||
pla
|
|
||||||
tax
|
|
||||||
pla
|
|
||||||
plp
|
|
||||||
rts
|
|
||||||
; ----------------------- IINT
|
|
||||||
; org $2e2
|
|
||||||
; dta a($600)
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
cd `dirname $0`
|
|
||||||
mads flashwrite.asx -o:PoPflashwrite.xex
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user