Defeated 16-bit, we can now load the kernel by path

This commit is contained in:
Jørn Guldberg committed 2019-06-30 20:46:39 +00:00
1 parent ec61cd8b8a
commit a6a338c17a
11 files changed
+6065 -1049

No files matched your search

+11 -5
View File
@@ -2,30 +2,36 @@ int data_from_disk(index, number_sectors, data_buffer, data_buffer_segment);
int disk_service_read_data_from_disk(index, number_sectors, data_buffer, data_buffer_segment);
int disk_service_read_data_from_disk(index, number_sectors, data_buffer, data_buffer_segment)
long* index;
long index;
long number_sectors;
void* data_buffer;
int data_buffer_segment;
unsigned int data_buffer_segment;
{
#asm
#define index 4[bp]; // Note that this is a 32-bit argument.
#define number_sectors 8[bp];
#define data_buffer 10[bp];
#define data_buffer_segment 12[bp];
#define data_buffer 12[bp];
#define data_buffer_segment 14[bp];
push bp
mov bp,sp
pusha
lsfs_load_data:
mov ax, index
call 0x0000:0x7C2A
mov WORD [DAPACK.lba_addr_dw_low], ax
mov bx, number_sectors
mov ax, bx
call 0x0000:0x7C2A
mov WORD [DAPACK.blkcnt], bx
mov cx, data_buffer_segment
mov ax, cx
call 0x0000:0x7C2A
mov WORD [DAPACK.db_addr_segment], cx
mov dx, data_buffer;
mov ax, dx
call 0x0000:0x7C2A
mov WORD [DAPACK.db_addr_offset], dx
mov si, #DAPACK ; address of
mov ah, #0x42 ; READ