more fixes

This commit is contained in:
Kelvin Sherlock 2021-07-18 13:05:17 -04:00
parent d2507eb925
commit f5b2c0860d
1 changed files with 36 additions and 7 deletions

View File

@ -232,6 +232,10 @@ readfile proc
beq rdone beq rdone
stz r0 ; block stz r0 ; block
lda #buffer
sta pro.buffer
; need to re-set cmd/slot as well?
@rloop @rloop
lda r0 lda r0
jsr read_file_block jsr read_file_block
@ -301,6 +305,7 @@ prepare_path proc
; SYSTEM ? ; SYSTEM ?
ldx #3 ldx #3
ldy #2
@loop @loop
lda [path],y lda [path],y
cmp s1,y cmp s1,y
@ -377,9 +382,12 @@ f ; check for FSTs folder
target target
; now set target_str / len ; now set target_str / len
lda [path] lda [path]
inc a
inc a ; compensate for string length.
sec sec
sbc r0 sbc r0
beq fnf ; close enough beq fnf ; close enough
bmi fnf
sta target_str_len sta target_str_len
cmp #16 cmp #16
bcs fnf bcs fnf
@ -402,7 +410,7 @@ target
blt @next blt @next
and #$ff xor $20 and #$ff xor $20
@next sta target_str_len,x @next sta target_str,x
iny iny
inx inx
cpx target_str_len cpx target_str_len
@ -449,6 +457,14 @@ read_block_abs
sta pro.block sta pro.block
endif endif
;
; need to save/restore the stack. start.gs.os will call w/ high stack
;
tsc
sta _stack
lda #$01bf ; should be enough space
tcs
clc clc
php php
sec sec
@ -463,16 +479,25 @@ vector dc.w $ffff
bcs @fail bcs @fail
xce xce
plp plp
lda _stack
tcs
lda #0
rts rts
@fail @fail
clc clc
xce xce
plp plp
tax ; save
lda _stack
tcs
sec sec
txa
and #$ff and #$ff
rts rts
_stack ds.w 1
endp endp
@ -831,27 +856,27 @@ file
lda buffer+dataExtents+0,y lda buffer+dataExtents+0,y
xba xba
stz file_extents+0 sta file_extents+0
lda buffer+dataExtents+2,y lda buffer+dataExtents+2,y
xba xba
stz file_extents+2 sta file_extents+2
lda buffer+dataExtents+4,y lda buffer+dataExtents+4,y
xba xba
stz file_extents+4 sta file_extents+4
lda buffer+dataExtents+6,y lda buffer+dataExtents+6,y
xba xba
stz file_extents+6 sta file_extents+6
lda buffer+dataExtents+8,y lda buffer+dataExtents+8,y
xba xba
stz file_extents+8 sta file_extents+8
lda buffer+dataExtents+10,y lda buffer+dataExtents+10,y
xba xba
stz file_extents+10 sta file_extents+10
lda buffer+fileID+2,y lda buffer+fileID+2,y
xba xba
@ -1084,6 +1109,10 @@ read
lda at lda at
sta auxtype sta auxtype
lda #buffer
sta pro.buffer ; kind of important...
lda #0
jmp $6800 jmp $6800
bad pha bad pha