; *** SHELL COMMANDS *** fsOnCmd: .db "fson", 0, 0, 0 jp fsOn ; Lists filenames in currently active FS flsCmd: .db "fls", 0, 0, 0, 0 ld iy, .iter call fsIter ret z ld a, FS_ERR_NO_FS ret .iter: ld a, FS_META_FNAME_OFFSET call addHL call printstr jp printcrlf ; Takes one byte block number to allocate as well we one string arg filename ; and allocates a new file in the current fs. fnewCmd: .db "fnew", 0b001, 0b1001, 0b001 push hl ld a, (hl) inc hl call intoHL call fsAlloc pop hl xor a ret ; Deletes filename with specified name fdelCmd: .db "fdel", 0b1001, 0b001, 0 push hl call intoHL ; HL now holds the string we look for call fsFindFN jr nz, .notfound ; Found! delete call fsDel jr z, .end ; weird error, continue to error condition .notfound: ld a, FS_ERR_NOT_FOUND .end: pop hl ret ; Opens specified filename in specified file handle. ; First argument is file handle, second one is file name. ; Example: fopn 0 foo.txt fopnCmd: .db "fopn", 0b001, 0b1001, 0b001 push hl push de ld a, (hl) ; file handle index call fsHandle ; DE now points to file handle inc hl call intoHL ; HL now holds the string we look for call fsFindFN jr nz, .notfound ; Found! ; FS_PTR points to the file we want to open push de \ pop ix ; IX now points to the file handle. call fsOpen jr .end .notfound: ld a, FS_ERR_NOT_FOUND .end: pop de pop hl ret