basic: add fnew and fdel commands
This commit is contained in:
parent
817088f794
commit
264e72e0fd
@ -224,6 +224,11 @@ handle 1 maps to blkid 2.
|
|||||||
Once a file is opened, you can use the mapped blkid as you would with any block
|
Once a file is opened, you can use the mapped blkid as you would with any block
|
||||||
device (bseek, getb, putb).
|
device (bseek, getb, putb).
|
||||||
|
|
||||||
|
**fnew <blkcnt> <fname>**: Allocates space of "blkcnt" blocks (each block is
|
||||||
|
0x100 bytes in size) for a new file names "fname". Maximum blkcnt is 0xff.
|
||||||
|
|
||||||
|
**fdel <fname>**: Mark file named "fname" as deleted.
|
||||||
|
|
||||||
**ldbas <fname>**: loads the content of the file specified in the argument
|
**ldbas <fname>**: loads the content of the file specified in the argument
|
||||||
(as an unquoted filename) and replace the current code listing with this
|
(as an unquoted filename) and replace the current code listing with this
|
||||||
contents. Any line not starting with a number is ignored (not an error).
|
contents. Any line not starting with a number is ignored (not an error).
|
||||||
|
@ -4,6 +4,7 @@
|
|||||||
.equ BFS_FILE_HDL BFS_RAMSTART
|
.equ BFS_FILE_HDL BFS_RAMSTART
|
||||||
.equ BFS_RAMEND @+FS_HANDLE_SIZE
|
.equ BFS_RAMEND @+FS_HANDLE_SIZE
|
||||||
|
|
||||||
|
; Lists filenames in currently active FS
|
||||||
basFLS:
|
basFLS:
|
||||||
ld iy, .iter
|
ld iy, .iter
|
||||||
jp fsIter
|
jp fsIter
|
||||||
@ -77,6 +78,25 @@ basFOPEN:
|
|||||||
push de \ pop ix ; IX now points to the file handle.
|
push de \ pop ix ; IX now points to the file handle.
|
||||||
jp fsOpen
|
jp fsOpen
|
||||||
|
|
||||||
|
; Takes one byte block number to allocate as well we one string arg filename
|
||||||
|
; and allocates a new file in the current fs.
|
||||||
|
basFNEW:
|
||||||
|
call rdExpr ; file block count
|
||||||
|
ret nz
|
||||||
|
call rdSep ; HL now points to filename
|
||||||
|
push ix \ pop de
|
||||||
|
ld a, e
|
||||||
|
out (42), a
|
||||||
|
jp fsAlloc
|
||||||
|
|
||||||
|
; Deletes filename with specified name
|
||||||
|
basFDEL:
|
||||||
|
call fsFindFN
|
||||||
|
ret nz
|
||||||
|
; Found! delete
|
||||||
|
jp fsDel
|
||||||
|
|
||||||
|
|
||||||
basPgmHook:
|
basPgmHook:
|
||||||
; Cmd to find is in (DE)
|
; Cmd to find is in (DE)
|
||||||
ex de, hl
|
ex de, hl
|
||||||
@ -107,4 +127,8 @@ basFSCmds:
|
|||||||
.db "ldbas", 0
|
.db "ldbas", 0
|
||||||
.dw basFOPEN
|
.dw basFOPEN
|
||||||
.db "fopen", 0
|
.db "fopen", 0
|
||||||
|
.dw basFNEW
|
||||||
|
.db "fnew", 0, 0
|
||||||
|
.dw basFDEL
|
||||||
|
.db "fdel", 0, 0
|
||||||
.db 0xff, 0xff, 0xff ; end of table
|
.db 0xff, 0xff, 0xff ; end of table
|
||||||
|
Loading…
Reference in New Issue
Block a user