Calculate data start

This commit is contained in:
Byron Lathi
2023-12-04 18:40:21 -08:00
parent 16a7f4db4d
commit 84814f05f9

View File

@@ -12,7 +12,9 @@
.data
fat_start_sector: .res 2
data_start_sector: .res 2
data_start_sector: .res 4
fat_size: .res 4
sd_buf: .res 512
bps_val_str: .asciiz "Bytes Per Sector: 0x%x\n"
@@ -23,6 +25,7 @@ fat_sect_str: .asciiz "Sectors per FAT: 0x%x\n"
fat_size_tot_str: .asciiz "Total fat size: 0x%lx\n"
rsv_sect_bytes_str: .asciiz "Total reserved bytes: 0x%x\n"
rsv_sd_sectors: .asciiz "Reserved SD Sectors: 0x%x\n"
data_start_sect_str: .asciiz "Data sector start: 0x%lx\n"
.code
@@ -93,9 +96,15 @@ sectors_per_fat = sd_buf + $24
ldx bytes_per_sector+1
jsr _imulii
jsr pushax
phx
ldy #$4
jsr _cprintf
pla
lsr
sta fat_start_sector
stz fat_start_sector + 1
lda #<fat_size_tot_str
ldx #>fat_size_tot_str
jsr pushax
@@ -107,9 +116,57 @@ sectors_per_fat = sd_buf + $24
lda sectors_per_fat
ldx sectors_per_fat+1
jsr _lmulii
sta fat_size
stx fat_size+1
lda sreg
sta fat_size+2
lda sreg+1
sta fat_size+3
lda fat_size
ldx fat_size+1
jsr pusheax
ldy #$6
jsr _cprintf
lda fat_size
adc fat_start_sector
sta data_start_sector
lda fat_size+1
adc fat_start_sector+1
sta data_start_sector+1
lda fat_size+2
sta data_start_sector+2
lda fat_size+3
sta data_start_sector+3
lda #<data_start_sect_str
ldx #>data_start_sect_str
jsr pushax
lda data_start_sector+2
sta sreg
lda data_start_sector+3
sta sreg+1
lda data_start_sector
ldx data_start_sector+1
jsr pusheax
ldy #$6
jsr _cprintf
; load sector <data_start> into sd_buf
lda data_start_sector+2
sta sreg
lda data_start_sector+3
sta sreg+1
lda data_start_sector
ldx data_start_sector+1
jsr pusheax
lda #<sd_buf
ldx #>sd_buf
jsr pushax
lda #<ptr1
ldx #>ptr1
jsr _SD_readSingleBlock
rts
.endproc