diff --git a/vsfs/lsfs.nasm b/vsfs/lsfs.nasm index 7eae8b2..abbf315 100644 --- a/vsfs/lsfs.nasm +++ b/vsfs/lsfs.nasm @@ -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