Skip to content

Commit

Permalink
Finally fix mkdir
Browse files Browse the repository at this point in the history
  • Loading branch information
beckadamtheinventor committed Mar 28, 2021
1 parent e77ace5 commit d06fd9e
Show file tree
Hide file tree
Showing 15 changed files with 157 additions and 30 deletions.
15 changes: 15 additions & 0 deletions bos.inc
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,21 @@
?fd_subdir := 4
?fd_archive := 5
?fd_device := 6
?fsentry_endofdir := $00
?fsentry_dot := $2E
?fsentry_deleted := $F0
?fsentry_longfilename := $F1
?fsentry_endofdir2 := $FF
?fsentry_filename := $00
?fsentry_filename.len := 8
?fsentry_fileext := $08
?fsentry_fileext.len := 3
?fsentry_fileattr := $0B
?fsentry_fileattr.len := 1
?fsentry_filesector := $0C
?fsentry_filesector.len := 2
?fsentry_filelen := $0E
?fsentry_filelen.len := 2
?bIsFlashUnlocked := 0
?bKeepFlashUnlocked := 1
?mIsFlashUnlocked := 1
Expand Down
Binary file modified src/data/adrive/obj/main.bin
Binary file not shown.
3 changes: 3 additions & 0 deletions src/data/adrive/src/fs/bin/ls.asm
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,8 @@ ls_main:
jq z,.exit
inc a
jq z,.exit
cp a,bos.fsentry_deleted+1
jq z,.next
cp a,'.'+1
jq z,.hidden
bit bos.fd_hidden,(iy+$B) ;check if file is hidden
Expand Down Expand Up @@ -70,6 +72,7 @@ ls_main:
ld (hl),$9
call bos.gui_Print
call bos.gui_NewLine
.next:
lea iy,iy+16
jq .loop
.exit:
Expand Down
15 changes: 15 additions & 0 deletions src/data/adrive/src/include/bos.inc
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,21 @@
?fd_subdir := 4
?fd_archive := 5
?fd_device := 6
?fsentry_endofdir := $00
?fsentry_dot := $2E
?fsentry_deleted := $F0
?fsentry_longfilename := $F1
?fsentry_endofdir2 := $FF
?fsentry_filename := $00
?fsentry_filename.len := 8
?fsentry_fileext := $08
?fsentry_fileext.len := 3
?fsentry_fileattr := $0B
?fsentry_fileattr.len := 1
?fsentry_filesector := $0C
?fsentry_filesector.len := 2
?fsentry_filelen := $0E
?fsentry_filelen.len := 2
?bIsFlashUnlocked := 0
?bKeepFlashUnlocked := 1
?mIsFlashUnlocked := 1
Expand Down
20 changes: 20 additions & 0 deletions src/data/adrive/src/include/defines.inc
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,26 @@ fd_subdir := 4
fd_archive := 5
fd_device := 6

; file entry first byte
fsentry_endofdir := $00
fsentry_dot := $2E
fsentry_deleted := $F0
fsentry_longfilename := $F1
fsentry_endofdir2 := $FF

; file entry offsets
fsentry_filename := $00
fsentry_filename.len := 8
fsentry_fileext := $08
fsentry_fileext.len := 3
fsentry_fileattr := $0B
fsentry_fileattr.len := 1
fsentry_filesector := $0C
fsentry_filesector.len := 2
fsentry_filelen := $0E
fsentry_filelen.len := 2


; flashStatusByte flags
bIsFlashUnlocked := 0
bKeepFlashUnlocked := 1
Expand Down
15 changes: 15 additions & 0 deletions src/data/adrive/src/lib/include/bos.inc
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,21 @@
?fd_subdir := 4
?fd_archive := 5
?fd_device := 6
?fsentry_endofdir := $00
?fsentry_dot := $2E
?fsentry_deleted := $F0
?fsentry_longfilename := $F1
?fsentry_endofdir2 := $FF
?fsentry_filename := $00
?fsentry_filename.len := 8
?fsentry_fileext := $08
?fsentry_fileext.len := 3
?fsentry_fileattr := $0B
?fsentry_fileattr.len := 1
?fsentry_filesector := $0C
?fsentry_filesector.len := 2
?fsentry_filelen := $0E
?fsentry_filelen.len := 2
?bIsFlashUnlocked := 0
?bKeepFlashUnlocked := 1
?mIsFlashUnlocked := 1
Expand Down
20 changes: 20 additions & 0 deletions src/data/adrive/src/lib/include/defines.inc
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,26 @@ fd_subdir := 4
fd_archive := 5
fd_device := 6

; file entry first byte
fsentry_endofdir := $00
fsentry_dot := $2E
fsentry_deleted := $F0
fsentry_longfilename := $F1
fsentry_endofdir2 := $FF

; file entry offsets
fsentry_filename := $00
fsentry_filename.len := 8
fsentry_fileext := $08
fsentry_fileext.len := 3
fsentry_fileattr := $0B
fsentry_fileattr.len := 1
fsentry_filesector := $0C
fsentry_filesector.len := 2
fsentry_filelen := $0E
fsentry_filelen.len := 2


; flashStatusByte flags
bIsFlashUnlocked := 0
bKeepFlashUnlocked := 1
Expand Down
2 changes: 1 addition & 1 deletion src/data/buildno.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
BOS 1.05.0020 alpha
BOS 1.05.0028 alpha
4 changes: 2 additions & 2 deletions src/fs/CreateDir.asm
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ fs_CreateDir:
ex.s hl,de
pop bc
ld (ix-3),hl ; save parent directory sector
ld hl,32
ld de,(ix+9)
ld hl,48
ld bc,(ix+6)
push hl,de,bc
call fs_CreateFile
Expand All @@ -37,7 +37,7 @@ fs_CreateDir:
call fs_GetSectorAddress
pop bc
ld (ix-9),hl ; save pointer to current directory data section
ld bc,48
ld bc,32
push bc
call sys_Malloc
jq c,.fail
Expand Down
8 changes: 8 additions & 0 deletions src/fs/CreateFile.asm
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,17 @@ fs_CreateFile:
ex (sp),hl
pop bc
push hl
ld a,c
or a,b
jq z,.found_last_slash
ld a,'/'
add hl,bc
cp a,(hl)
jq nz,.find_last_slash
dec hl
.find_last_slash:
cpdr ;find last '/' in path string
.found_last_slash:
pop de
push hl
sbc hl,de
Expand Down
19 changes: 8 additions & 11 deletions src/fs/DeleteFile.asm
Original file line number Diff line number Diff line change
Expand Up @@ -3,28 +3,25 @@
;@INPUT bool fs_DeleteFile(const char *name);
;@OUTPUT true if success, otherwise fail
fs_DeleteFile:
call ti._frameset0
ld hl,(ix+6)
pop bc,hl
push hl,bc
push hl
call fs_OpenFile
pop bc
jq c,.fail
push hl
ld bc,fsentry_fileattr
add hl,bc
bit fsbit_readonly,(hl)
pop de
jq nz,.fail
ld de,(ix+6)
ld hl,.deleted_header
ld bc,8+3 ;clear 8.3 file name but leave attribute byte and data position/length data
push bc,hl,de
call sys_WriteFlashFull
pop bc,bc,bc
ld c,fsentry_deleted ;mark file as deleted
push bc,de
call sys_WriteFlashByteFull
pop bc,bc
db $3E ;ld a,...
.fail:
xor a,a
or a,a
pop ix
ret
.deleted_header:
db fsentry_deleted, 7+3 dup 0

1 change: 0 additions & 1 deletion src/fs/ParentDir.asm
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ fs_ParentDir:
pop bc,hl
ret c
push de
dec bc
ldir ;copy the path up until last '/'
xor a,a
ld (de),a ;terminate the string
Expand Down
30 changes: 15 additions & 15 deletions src/fs/fs_defines.asm
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,22 @@ fsbit_subfile := 3 ;file is a sub-file. Contents are at (fsentry&0x1FF) +
fsbit_subdirectory := 4
fsbit_archive := 5 ;has been changed since last backup

fsentry_endofdir := $00
fsentry_dot := $2E
fsentry_deleted := $F0
fsentry_longfilename := $F1
fsentry_endofdir2 := $FF
;fsentry_endofdir := $00
;fsentry_dot := $2E
;fsentry_deleted := $F0
;fsentry_longfilename := $F1
;fsentry_endofdir2 := $FF

fsentry_filename := $00
fsentry_filename.len := 8
fsentry_fileext := $08
fsentry_fileext.len := 3
fsentry_fileattr := $0B
fsentry_fileattr.len := 1
fsentry_filesector := $0C
fsentry_filesector.len := 2
fsentry_filelen := $0E
fsentry_filelen.len := 2
;fsentry_filename := $00
;fsentry_filename.len := 8
;fsentry_fileext := $08
;fsentry_fileext.len := 3
;fsentry_fileattr := $0B
;fsentry_fileattr.len := 1
;fsentry_filesector := $0C
;fsentry_filesector.len := 2
;fsentry_filelen := $0E
;fsentry_filelen.len := 2


f_readonly := 1
Expand Down
15 changes: 15 additions & 0 deletions src/include/bos.inc
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,21 @@
?fd_subdir := 4
?fd_archive := 5
?fd_device := 6
?fsentry_endofdir := $00
?fsentry_dot := $2E
?fsentry_deleted := $F0
?fsentry_longfilename := $F1
?fsentry_endofdir2 := $FF
?fsentry_filename := $00
?fsentry_filename.len := 8
?fsentry_fileext := $08
?fsentry_fileext.len := 3
?fsentry_fileattr := $0B
?fsentry_fileattr.len := 1
?fsentry_filesector := $0C
?fsentry_filesector.len := 2
?fsentry_filelen := $0E
?fsentry_filelen.len := 2
?bIsFlashUnlocked := 0
?bKeepFlashUnlocked := 1
?mIsFlashUnlocked := 1
Expand Down
20 changes: 20 additions & 0 deletions src/include/defines.inc
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,26 @@ fd_subdir := 4
fd_archive := 5
fd_device := 6

; file entry first byte
fsentry_endofdir := $00
fsentry_dot := $2E
fsentry_deleted := $F0
fsentry_longfilename := $F1
fsentry_endofdir2 := $FF

; file entry offsets
fsentry_filename := $00
fsentry_filename.len := 8
fsentry_fileext := $08
fsentry_fileext.len := 3
fsentry_fileattr := $0B
fsentry_fileattr.len := 1
fsentry_filesector := $0C
fsentry_filesector.len := 2
fsentry_filelen := $0E
fsentry_filelen.len := 2


; flashStatusByte flags
bIsFlashUnlocked := 0
bKeepFlashUnlocked := 1
Expand Down

0 comments on commit d06fd9e

Please sign in to comment.