|
|
|
@ -79,35 +79,20 @@ lsfs_format_disk:
|
|
|
|
|
popa |
|
|
|
|
ret |
|
|
|
|
|
|
|
|
|
.lsfs_format_disk_buffer db 'LSFS v0.0.4', 13, 10, '(LessSimpelFileSystem)', 13, 10, 'Developed to SingOS', 13, 10, 'by Jorn Guldberg', 13, 10, 0 ; 66 chars + 8 bytes |
|
|
|
|
.lsfs_format_disk_buffer db 'LSFS v0.0.6', 13, 10, '(LessSimpelFileSystem)', 13, 10, 'Developed to SingOS', 13, 10, 'by Jorn Guldberg', 13, 10, 0 ; 66 chars + 8 bytes |
|
|
|
|
times 429 db 0 |
|
|
|
|
dw LSFS_magic_start_sector, 0, 1 ; Start index, number of files, next free index |
|
|
|
|
|
|
|
|
|
lsfs_get_fs_info: |
|
|
|
|
pusha |
|
|
|
|
|
|
|
|
|
xor ax, ax |
|
|
|
|
xor bx, bx |
|
|
|
|
xor cx, cx |
|
|
|
|
xor dx, dx |
|
|
|
|
|
|
|
|
|
.DAPACK: |
|
|
|
|
db 0x10 |
|
|
|
|
db 0 |
|
|
|
|
.blkcnt: dw 1 ; int 13 resets this to # of blocks actually read/written |
|
|
|
|
.db_add: dw 0x0000 ; memory buffer destination address (0:7c00) |
|
|
|
|
.db_add_sec: dw 0x0050 ; in memory page zero |
|
|
|
|
|
|
|
|
|
.d_lba: dd LSFS_magic_start_sector ; put the lba to read in this spot |
|
|
|
|
dd 0 ; more storage bytes only for big lba's ( > 4 bytes ) |
|
|
|
|
|
|
|
|
|
mov DWORD [.d_lba], LSFS_magic_start_sector |
|
|
|
|
mov WORD [.blkcnt], 0x1 |
|
|
|
|
mov WORD [.db_add_sec], 0x50 |
|
|
|
|
mov WORD [.db_add], lsfs_loading_buffer |
|
|
|
|
mov si, .DAPACK ; address of "disk address packet" |
|
|
|
|
mov WORD [DAPACK.db_addr_offset], lsfs_loading_buffer |
|
|
|
|
mov WORD [DAPACK.lba_addr_dw_one], LSFS_magic_start_sector |
|
|
|
|
mov WORD [DAPACK.blkcnt], 0x1 ; Read to sectors, that is what the space is for the buffer in svim |
|
|
|
|
mov WORD [DAPACK.db_addr_segment], 0x50 |
|
|
|
|
mov si, DAPACK ; address of "disk address packet" |
|
|
|
|
mov ah, 0x42 ; READ |
|
|
|
|
mov dl, [global_disk_identifier] ; drive number 0 (OR the drive # with 0x80) |
|
|
|
|
mov dl, [global_disk_identifier] |
|
|
|
|
int 0x13 |
|
|
|
|
|
|
|
|
|
mov si, lsfs_loading_buffer |
|
|
|
|