Lost work
This commit is contained in:
1 parent
0f6e818ff6
commit
8adca8f575
6 files changed
+174
-166
No files matched your search
+1
-1
@@ -9,7 +9,7 @@ unsigned int data_buffer_segment;
|
|||||||
{
|
{
|
||||||
|
|
||||||
#asm
|
#asm
|
||||||
#define index 4[bp]; // Note that this is a 32-bit argument.
|
#define index 4[bp]; /* Note that this is a 32-bit argument. */
|
||||||
#define number_sectors 8[bp];
|
#define number_sectors 8[bp];
|
||||||
#define data_buffer 12[bp];
|
#define data_buffer 12[bp];
|
||||||
#define data_buffer_segment 14[bp];
|
#define data_buffer_segment 14[bp];
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ short drop_filename;
|
|||||||
String_Array *split_path;
|
String_Array *split_path;
|
||||||
Directory_Table *dir_table = calloc(1, sizeof(Directory_Table));
|
Directory_Table *dir_table = calloc(1, sizeof(Directory_Table));
|
||||||
/* printf("Table index: %lu \n",fsci.master_table_index ); */
|
/* printf("Table index: %lu \n",fsci.master_table_index ); */
|
||||||
disk_service_read_data_from_disk(fsci.master_table_index[0], DEFAULT_TABLE_SIZE, dir_table, 0x7e0);
|
disk_service_read_data_from_disk(fsci.master_table_index[0], DEFAULT_TABLE_SIZE, dir_table, 0x50);
|
||||||
split_path = string_split_c(path, '/', false);
|
split_path = string_split_c(path, '/', false);
|
||||||
|
|
||||||
number_of_traversal = split_path->length;
|
number_of_traversal = split_path->length;
|
||||||
@@ -118,10 +118,10 @@ unsigned int data_segment;
|
|||||||
{
|
{
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
disk_service_read_data_from_disk(file->data_pointer[data_pointer_index], DEFAULT_DATA_POINTER_SIZE, tmp_buffer, 0x7e0);
|
disk_service_read_data_from_disk(file->data_pointer[data_pointer_index], DEFAULT_DATA_POINTER_SIZE, tmp_buffer, 0x50);
|
||||||
print_newline();
|
print_newline();
|
||||||
print_newline();
|
print_newline();
|
||||||
memcpy((data + amount_read), data_segment, tmp_buffer, 0x7e0, amount_to_read);
|
memcpy((data + amount_read), data_segment, tmp_buffer, 0x50, amount_to_read);
|
||||||
data_length -= amount_to_read;
|
data_length -= amount_to_read;
|
||||||
amount_read += amount_to_read;
|
amount_read += amount_to_read;
|
||||||
data_pointer_index = data_pointer_index + 2; /* Rember that we only use 32-bit, and thats why we jump to at a time*/
|
data_pointer_index = data_pointer_index + 2; /* Rember that we only use 32-bit, and thats why we jump to at a time*/
|
||||||
@@ -141,9 +141,9 @@ unsigned int data_segment;
|
|||||||
amount_to_read = ((DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE) - remaining_offset);
|
amount_to_read = ((DEFAULT_DATA_POINTER_SIZE * SECTOR_SIZE) - remaining_offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
disk_service_read_data_from_disk(file->data_pointer[data_pointer_index], DEFAULT_DATA_POINTER_SIZE, tmp_buffer, 0x7e0);
|
disk_service_read_data_from_disk(file->data_pointer[data_pointer_index], DEFAULT_DATA_POINTER_SIZE, tmp_buffer, 0x50);
|
||||||
|
|
||||||
memcpy(data, data_segment, (tmp_buffer + remaining_offset), 0x7e0, amount_to_read);
|
memcpy(data, data_segment, (tmp_buffer + remaining_offset), 0x50, amount_to_read);
|
||||||
data_length -= amount_to_read;
|
data_length -= amount_to_read;
|
||||||
amount_read += amount_to_read;
|
amount_read += amount_to_read;
|
||||||
remaining_offset -= amount_to_read;
|
remaining_offset -= amount_to_read;
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ void* pointer_parameter_struct;
|
|||||||
Service_Action service_action;
|
Service_Action service_action;
|
||||||
Directory_Table current_table;
|
Directory_Table current_table;
|
||||||
Parameter_Struct parameter_struct;
|
Parameter_Struct parameter_struct;
|
||||||
int local_segment = 0x7e0;
|
int local_segment = 0x50;
|
||||||
unsigned int heap_start = 0x2200;
|
unsigned int heap_start = 0x2200;
|
||||||
unsigned int heap_end = 0xffff;
|
unsigned int heap_end = 0xffff;
|
||||||
int stack_segment = 0x8fc0;
|
int stack_segment = 0x8fc0;
|
||||||
@@ -80,16 +80,13 @@ void* pointer_parameter_struct;
|
|||||||
find_file = calloc(sizeof(lsfs_file), 1);
|
find_file = calloc(sizeof(lsfs_file), 1);
|
||||||
lsfs_disk_getattr(find_file, local_path, fsci);
|
lsfs_disk_getattr(find_file, local_path, fsci);
|
||||||
print_newline();
|
print_newline();
|
||||||
print("Loding SingOS kernel: ");
|
print("Buffer_address: ");
|
||||||
print(find_file->filename);
|
dump_ax(parameter_struct.buffer_address);
|
||||||
print_newline();
|
print_newline();
|
||||||
print("Kernel file id: ");
|
print("Buffer_segmnent: ");
|
||||||
print_newline();
|
dump_ax(parameter_struct.buffer_segment);
|
||||||
print("Kernel file size: ");
|
|
||||||
print_newline();
|
|
||||||
print("Kernel first data pointer: ");
|
|
||||||
|
|
||||||
lsfs_disk_read_data_from_file(find_file, 0xffff, 0x00, (long) 0x0, 0x50);
|
lsfs_disk_read_data_from_file(find_file, parameter_struct.buffer_size, parameter_struct.buffer_address, (long) 0x0, parameter_struct.buffer_segment);
|
||||||
|
|
||||||
|
|
||||||
} break;
|
} break;
|
||||||
@@ -110,9 +107,17 @@ void* pointer_parameter_struct;
|
|||||||
{
|
{
|
||||||
print("Hit WRITE case");
|
print("Hit WRITE case");
|
||||||
} break;
|
} break;
|
||||||
|
case SERIVCE_WRITE_FS_INFO:
|
||||||
|
{
|
||||||
|
print_newline();
|
||||||
|
print(fsci->filesystem_information);
|
||||||
|
print_newline();
|
||||||
|
} break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
print("Default case");
|
print("Default case: ");
|
||||||
|
dump_ax(service_action);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ typedef enum Service_Action
|
|||||||
SERVICE_FIND_ENTRY = 2,
|
SERVICE_FIND_ENTRY = 2,
|
||||||
SERIVCE_READ_DATA = 3,
|
SERIVCE_READ_DATA = 3,
|
||||||
SERIVCE_WRITE_DATA = 4,
|
SERIVCE_WRITE_DATA = 4,
|
||||||
|
SERIVCE_WRITE_FS_INFO = 10,
|
||||||
|
|
||||||
} Service_Action;
|
} Service_Action;
|
||||||
|
|
||||||
@@ -61,11 +62,11 @@ struct Parameter_Struct
|
|||||||
{
|
{
|
||||||
char* path;
|
char* path;
|
||||||
char* new_path;
|
char* new_path;
|
||||||
int buffer_segment;
|
unsigned int buffer_segment;
|
||||||
int buffer_address;
|
unsigned int buffer_address;
|
||||||
int buffer_size;
|
unsigned int buffer_size;
|
||||||
int data_length;
|
unsigned int data_length;
|
||||||
int byte_offset_into_file;
|
unsigned int byte_offset_into_file;
|
||||||
short entry_kind;
|
short entry_kind;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -1422,10 +1422,7 @@ _disk_service_read_data_from_disk.data_buffer set $A
|
|||||||
_disk_service_read_data_from_disk.number_sectors set 6
|
_disk_service_read_data_from_disk.number_sectors set 6
|
||||||
_disk_service_read_data_from_disk.data_buffer_segment set $C
|
_disk_service_read_data_from_disk.data_buffer_segment set $C
|
||||||
_disk_service_read_data_from_disk.index set 2
|
_disk_service_read_data_from_disk.index set 2
|
||||||
|
! 12 16
|
||||||
! 13 define number_sectors 8[bp];
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
push bp
|
push bp
|
||||||
mov bp,sp
|
mov bp,sp
|
||||||
@@ -1489,59 +1486,60 @@ ret
|
|||||||
! 38 SERVICE_FIND_ENTRY = 2,
|
! 38 SERVICE_FIND_ENTRY = 2,
|
||||||
! 39 SERIVCE_READ_DATA = 3,
|
! 39 SERIVCE_READ_DATA = 3,
|
||||||
! 40 SERIVCE_WRITE_DATA = 4,
|
! 40 SERIVCE_WRITE_DATA = 4,
|
||||||
! 41
|
! 41 SERIVCE_WRITE_FS_INFO = 10,
|
||||||
! 42 } Service_Action;
|
! 42
|
||||||
|
! 43 } Service_Action;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 43
|
! 44
|
||||||
! 44 struct File_System_Control_Information
|
! 45 struct File_System_Control_Information
|
||||||
! 45 {
|
! 46 {
|
||||||
! 46 char filesystem_information[256];
|
! 47 char filesystem_information[256];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 47 long master_table_index[2];
|
! 48 long master_table_index[2];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 48 long this_partition_offset_on_disk[2];
|
! 49 long this_partition_offset_on_disk[2];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 49 long next_free_sector[2
|
! 50 long next_free_sector[2];
|
||||||
! 49 ];
|
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 50 long next_uniqe_id[2];
|
! 51
|
||||||
|
! 51 long next_uniqe_id[2];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 51 long next_sector_reuse_pointer[2];
|
! 52 long next_sector_reuse_pointer[2];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 52 long last_sector_index_on_partition[2];
|
! 53 long last_sector_index_on_partition[2];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 53 long maximum_sectors_on_disk[2];
|
! 54 long maximum_sectors_on_disk[2];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 54 long sector_size_on_disk[2];
|
! 55 long sector_size_on_disk[2];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 55 long not_used[48];
|
! 56 long not_used[48];
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 56
|
! 57
|
||||||
! 57 };
|
! 58 };
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 58
|
|
||||||
! 59
|
! 59
|
||||||
! 60 struct Parameter_Struct
|
! 60
|
||||||
! 61 {
|
! 61 struct Parameter_Struct
|
||||||
! 62 char* path;
|
! 62 {
|
||||||
|
! 63 char* path;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 63 char* new_path;
|
! 64 char* new_path;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 64 int buffer_segment;
|
! 65 unsigned int buffer_segment;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 65 int buffer_address;
|
! 66 unsigned int buffer_address;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 66 int buffer_size;
|
! 67 unsigned int buffer_size;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 67 int data_length;
|
! 68 unsigned int data_length;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 68 int byte_offset_into_file;
|
! 69 unsigned int byte_offset_into_file;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 69 short entry_kind;
|
! 70 short entry_kind;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 70 };
|
! 71 };
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 71 # 6 "implementation/lsfs.h"
|
! 72 # 6 "implementation/lsfs.h"
|
||||||
! 6 typedef struct lsfs_file lsfs_file;
|
! 6 typedef struct lsfs_file lsfs_file;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 7 typedef struct Directory_Table Directory_Table;
|
! 7 typedef struct Directory_Table Directory_Table;
|
||||||
@@ -1681,10 +1679,10 @@ mov -$A[bp],bx
|
|||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 83
|
! 83
|
||||||
! 84
|
! 84
|
||||||
! 85 Directory_Table *dir_table = lsfs_find_directory(pa
|
! 85 Directory
|
||||||
|
! 85 _Table *dir_table = lsfs_find_directory(path, 1 , fsci);
|
||||||
dec sp
|
dec sp
|
||||||
dec sp
|
dec sp
|
||||||
! 85 th, 1 , fsci);
|
|
||||||
! Debug: list * struct File_System_Control_Information fsci = [S+$E+6] (used reg = )
|
! Debug: list * struct File_System_Control_Information fsci = [S+$E+6] (used reg = )
|
||||||
push 8[bp]
|
push 8[bp]
|
||||||
! Debug: list int = const 1 (used reg = )
|
! Debug: list int = const 1 (used reg = )
|
||||||
@@ -2144,8 +2142,9 @@ mov -6[bp],ax
|
|||||||
! 146 }
|
! 146 }
|
||||||
! 147
|
! 147
|
||||||
! 148
|
! 148
|
||||||
! 149 for (i = 0; i < number_of_traversal; ++i)
|
! 149 for (i =
|
||||||
.38:
|
.38:
|
||||||
|
! 149 0; i < number_of_traversal; ++i)
|
||||||
! Debug: eq int = const 0 to int i = [S+$10-$A] (used reg = )
|
! Debug: eq int = const 0 to int i = [S+$10-$A] (used reg = )
|
||||||
xor ax,ax
|
xor ax,ax
|
||||||
mov -8[bp],ax
|
mov -8[bp],ax
|
||||||
@@ -2154,8 +2153,7 @@ mov -8[bp],ax
|
|||||||
! 150 {
|
! 150 {
|
||||||
br .3C
|
br .3C
|
||||||
.3D:
|
.3D:
|
||||||
! 151
|
! 151 for (j = 0; j < 16 ; ++j)
|
||||||
! 151 for (j = 0; j < 16 ; ++j)
|
|
||||||
! Debug: eq int = const 0 to int j = [S+$10-$C] (used reg = )
|
! Debug: eq int = const 0 to int j = [S+$10-$C] (used reg = )
|
||||||
xor ax,ax
|
xor ax,ax
|
||||||
mov -$A[bp],ax
|
mov -$A[bp],ax
|
||||||
@@ -2520,6 +2518,7 @@ br .4A
|
|||||||
call _print_newline
|
call _print_newline
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 225 dump_ax(file->data_pointer[data_pointer_index]);
|
! 225 dump_ax(file->data_pointer[data_pointer_index]);
|
||||||
|
! 225
|
||||||
mov bx,4[bp]
|
mov bx,4[bp]
|
||||||
! Debug: ptradd int data_pointer_index = [S+$1A-$18] to [$36] long = bx+$44 (used reg = )
|
! Debug: ptradd int data_pointer_index = [S+$1A-$18] to [$36] long = bx+$44 (used reg = )
|
||||||
mov ax,-$16[bp]
|
mov ax,-$16[bp]
|
||||||
@@ -2537,8 +2536,7 @@ add sp,*4
|
|||||||
! Debug: func () void = print_newline+0 (used reg = )
|
! Debug: func () void = print_newline+0 (used reg = )
|
||||||
call _print_newline
|
call _print_newline
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 227
|
! 227 next_data = data + amount_read;
|
||||||
! 227 next_data = data + amount_read;
|
|
||||||
! Debug: ptradd unsigned int amount_read = [S+$1A-$10] to * char data = [S+$1A+6] (used reg = )
|
! Debug: ptradd unsigned int amount_read = [S+$1A-$10] to * char data = [S+$1A+6] (used reg = )
|
||||||
mov ax,-$E[bp]
|
mov ax,-$E[bp]
|
||||||
add ax,8[bp]
|
add ax,8[bp]
|
||||||
@@ -2802,14 +2800,14 @@ _main:
|
|||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 15 Parameter_Struct parameter_struct;
|
! 15 Parameter_Struct parameter_struct;
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 16 int local_segment = 0x7e0;
|
! 16 int local_segment = 0x50;
|
||||||
push bp
|
push bp
|
||||||
mov bp,sp
|
mov bp,sp
|
||||||
push di
|
push di
|
||||||
push si
|
push si
|
||||||
add sp,#-$2014
|
add sp,#-$2014
|
||||||
! Debug: eq int = const $7E0 to int local_segment = [S+$201A-$201A] (used reg = )
|
! Debug: eq int = const $50 to int local_segment = [S+$201A-$201A] (used reg = )
|
||||||
mov ax,#$7E0
|
mov ax,*$50
|
||||||
mov -$2018[bp],ax
|
mov -$2018[bp],ax
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 17 unsigned int heap_start = 0x2200;
|
! 17 unsigned int heap_start = 0x2200;
|
||||||
@@ -2864,12 +2862,12 @@ mov ax,4[bp]
|
|||||||
mov -6[bp],ax
|
mov -6[bp],ax
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 26
|
! 26
|
||||||
|
! 27
|
||||||
! 27 switch (service_action)
|
! 27 switch (service_action)
|
||||||
mov ax,-6[bp]
|
mov ax,-6[bp]
|
||||||
! 28 {
|
! 28 {
|
||||||
br .5E
|
br .5E
|
||||||
! 29
|
! 29 case SERIVCE_LOAD_DISK:
|
||||||
! 29 case SERIVCE_LOAD_DISK:
|
|
||||||
! 30 {
|
! 30 {
|
||||||
.5F:
|
.5F:
|
||||||
! 31
|
! 31
|
||||||
@@ -3149,7 +3147,7 @@ add sp,*6
|
|||||||
! Debug: func () void = print_newline+0 (used reg = )
|
! Debug: func () void = print_newline+0 (used reg = )
|
||||||
call _print_newline
|
call _print_newline
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 83 print("Loding SingOS kernel: ");
|
! 83 print("Buffer_address: ");
|
||||||
! Debug: list * char = .67+0 (used reg = )
|
! Debug: list * char = .67+0 (used reg = )
|
||||||
mov bx,#.67
|
mov bx,#.67
|
||||||
push bx
|
push bx
|
||||||
@@ -3158,12 +3156,11 @@ call _print
|
|||||||
inc sp
|
inc sp
|
||||||
inc sp
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 84 print(find_file->filename);
|
! 84 dump_ax(parameter_struct.buffer_address);
|
||||||
mov bx,-$202C[bp]
|
! Debug: list unsigned int parameter_struct = [S+$2030-$2012] (used reg = )
|
||||||
! Debug: list * char = [bx+$12] (used reg = )
|
push -$2010[bp]
|
||||||
push $12[bx]
|
! Debug: func () void = dump_ax+0 (used reg = )
|
||||||
! Debug: func () void = print+0 (used reg = )
|
call _dump_ax
|
||||||
call _print
|
|
||||||
inc sp
|
inc sp
|
||||||
inc sp
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
@@ -3171,7 +3168,7 @@ inc sp
|
|||||||
! Debug: func () void = print_newline+0 (used reg = )
|
! Debug: func () void = print_newline+0 (used reg = )
|
||||||
call _print_newline
|
call _print_newline
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 86 print("Kernel file id: ");
|
! 86 print("Buffer_segmnent: ");
|
||||||
! Debug: list * char = .68+0 (used reg = )
|
! Debug: list * char = .68+0 (used reg = )
|
||||||
mov bx,#.68
|
mov bx,#.68
|
||||||
push bx
|
push bx
|
||||||
@@ -3180,24 +3177,45 @@ call _print
|
|||||||
inc sp
|
inc sp
|
||||||
inc sp
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 87 print_newline();
|
! 87 dump_ax(parameter_struct.buffer_segment);
|
||||||
! Debug: func () void = print_newline+0 (used reg = )
|
! Debug: list unsigned int parameter_struct = [S+$2030-$2014] (used reg = )
|
||||||
call _print_newline
|
push -$2012[bp]
|
||||||
|
! Debug: func () void = dump_ax+0 (used reg = )
|
||||||
|
call _dump_ax
|
||||||
|
inc sp
|
||||||
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 88 print("Kernel file size: ");
|
! 88
|
||||||
! Debug: list * char = .69+0 (used reg = )
|
! 89 lsfs_disk_read_data_from_file(find_file, parameter_struct.buffer_size, parameter_struct.buffer_a
|
||||||
mov bx,#.69
|
! 89 ddress, (long) 0x0, parameter_struct.buffer_segment);
|
||||||
|
! Debug: list unsigned int parameter_struct = [S+$2030-$2014] (used reg = )
|
||||||
|
push -$2012[bp]
|
||||||
|
! Debug: list long = const 0 (used reg = )
|
||||||
|
xor ax,ax
|
||||||
|
xor bx,bx
|
||||||
push bx
|
push bx
|
||||||
! Debug: func () void = print+0 (used reg = )
|
push ax
|
||||||
call _print
|
! Debug: list unsigned int parameter_struct = [S+$2036-$2012] (used reg = )
|
||||||
inc sp
|
push -$2010[bp]
|
||||||
inc sp
|
! Debug: list unsigned int parameter_struct = [S+$2038-$2010] (used reg = )
|
||||||
|
push -$200E[bp]
|
||||||
|
! Debug: list * struct lsfs_file find_file = [S+$203A-$202E] (used reg = )
|
||||||
|
push -$202C[bp]
|
||||||
|
! Debug: func () int = lsfs_disk_read_data_from_file+0 (used reg = )
|
||||||
|
call _lsfs_disk_read_data_from_file
|
||||||
|
add sp,*$C
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 89 print_newline();
|
! 90
|
||||||
! Debug: func () void = print_newline+0 (used reg = )
|
! 91
|
||||||
call _print_newline
|
! 92 } break;
|
||||||
|
jmp .5C
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 90 print("Kernel first data pointer: ");
|
! 93 case SERIVCE_READ_DATA:
|
||||||
|
! 94 {
|
||||||
|
.69:
|
||||||
|
! 95 # 103
|
||||||
|
! 103
|
||||||
|
! 104 print("Hit READ case");
|
||||||
! Debug: list * char = .6A+0 (used reg = )
|
! Debug: list * char = .6A+0 (used reg = )
|
||||||
mov bx,#.6A
|
mov bx,#.6A
|
||||||
push bx
|
push bx
|
||||||
@@ -3206,40 +3224,13 @@ call _print
|
|||||||
inc sp
|
inc sp
|
||||||
inc sp
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 91
|
! 105 } break;
|
||||||
! 92 lsfs_disk_read_data_from_file(find_file, 0xffff, 0x
|
|
||||||
! 92 00, (long) 0x0, 0x50);
|
|
||||||
! Debug: list int = const $50 (used reg = )
|
|
||||||
mov ax,*$50
|
|
||||||
push ax
|
|
||||||
! Debug: list long = const 0 (used reg = )
|
|
||||||
xor ax,ax
|
|
||||||
xor bx,bx
|
|
||||||
push bx
|
|
||||||
push ax
|
|
||||||
! Debug: list int = const 0 (used reg = )
|
|
||||||
xor ax,ax
|
|
||||||
push ax
|
|
||||||
! Debug: list unsigned int = const $FFFF (used reg = )
|
|
||||||
mov ax,#$FFFF
|
|
||||||
push ax
|
|
||||||
! Debug: list * struct lsfs_file find_file = [S+$203A-$202E] (used reg = )
|
|
||||||
push -$202C[bp]
|
|
||||||
! Debug: func () int = lsfs_disk_read_data_from_file+0 (used reg = )
|
|
||||||
call _lsfs_disk_read_data_from_file
|
|
||||||
add sp,*$C
|
|
||||||
!BCC_EOS
|
|
||||||
! 93
|
|
||||||
! 94
|
|
||||||
! 95 } break;
|
|
||||||
jmp .5C
|
jmp .5C
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 96 case SERIVCE_READ_DATA:
|
! 106 case SERIVCE_WRITE_DATA:
|
||||||
! 97 {
|
! 107 {
|
||||||
.6B:
|
.6B:
|
||||||
! 98 # 106
|
! 108 print("Hit WRITE case");
|
||||||
! 106
|
|
||||||
! 107 print("Hit READ case");
|
|
||||||
! Debug: list * char = .6C+0 (used reg = )
|
! Debug: list * char = .6C+0 (used reg = )
|
||||||
mov bx,#.6C
|
mov bx,#.6C
|
||||||
push bx
|
push bx
|
||||||
@@ -3248,40 +3239,57 @@ call _print
|
|||||||
inc sp
|
inc sp
|
||||||
inc sp
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 108 } break;
|
! 109 } break;
|
||||||
jmp .5C
|
jmp .5C
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 109 case SERIVCE_WRITE_DATA:
|
! 110 case SERIVCE_WRITE_FS_INFO:
|
||||||
! 110 {
|
! 111 {
|
||||||
.6D:
|
.6D:
|
||||||
! 111 print("Hit WRITE case");
|
! 112 print_newline();
|
||||||
! Debug: list * char = .6E+0 (used reg = )
|
! Debug: func () void = print_newline+0 (used reg = )
|
||||||
mov bx,#.6E
|
call _print_newline
|
||||||
push bx
|
!BCC_EOS
|
||||||
|
! 113 print(fsci->filesystem_information);
|
||||||
|
! Debug: cast * char = const 0 to [$100] char fsci = [S+$202A-$202A] (used reg = )
|
||||||
|
! Debug: list * char fsci = [S+$202A-$202A] (used reg = )
|
||||||
|
push -$2028[bp]
|
||||||
! Debug: func () void = print+0 (used reg = )
|
! Debug: func () void = print+0 (used reg = )
|
||||||
call _print
|
call _print
|
||||||
inc sp
|
inc sp
|
||||||
inc sp
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 112 } break;
|
! 114 print_newline();
|
||||||
|
! Debug: func () void = print_newline+0 (used reg = )
|
||||||
|
call _print_newline
|
||||||
|
!BCC_EOS
|
||||||
|
! 115 } break;
|
||||||
jmp .5C
|
jmp .5C
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 113 default:
|
! 116
|
||||||
! 114 {
|
! 117 default:
|
||||||
.6F:
|
! 118 {
|
||||||
! 115 print("Default case");
|
.6E:
|
||||||
! Debug: list * char = .70+0 (used reg = )
|
! 119 print("Default case: ");
|
||||||
mov bx,#.70
|
! Debug: list * char = .6F+0 (used reg = )
|
||||||
|
mov bx,#.6F
|
||||||
push bx
|
push bx
|
||||||
! Debug: func () void = print+0 (used reg = )
|
! Debug: func () void = print+0 (used reg = )
|
||||||
call _print
|
call _print
|
||||||
inc sp
|
inc sp
|
||||||
inc sp
|
inc sp
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 116 }
|
! 120 dump_ax(service_action);
|
||||||
! 117 }
|
! Debug: list int service_action = [S+$202A-8] (used reg = )
|
||||||
! 118
|
push -6[bp]
|
||||||
! 119 return 0;
|
! Debug: func () void = dump_ax+0 (used reg = )
|
||||||
|
call _dump_ax
|
||||||
|
inc sp
|
||||||
|
inc sp
|
||||||
|
!BCC_EOS
|
||||||
|
! 121 }
|
||||||
|
! 122 }
|
||||||
|
! 123
|
||||||
|
! 124 return 0;
|
||||||
jmp .5C
|
jmp .5C
|
||||||
.5E:
|
.5E:
|
||||||
add sp,*-6
|
add sp,*-6
|
||||||
@@ -3290,10 +3298,12 @@ beq .5F
|
|||||||
sub ax,*1
|
sub ax,*1
|
||||||
beq .61
|
beq .61
|
||||||
sub ax,*1
|
sub ax,*1
|
||||||
je .6B
|
je .69
|
||||||
sub ax,*1
|
sub ax,*1
|
||||||
|
je .6B
|
||||||
|
sub ax,*6
|
||||||
je .6D
|
je .6D
|
||||||
jmp .6F
|
jmp .6E
|
||||||
.5C:
|
.5C:
|
||||||
..FFFF = -$2030
|
..FFFF = -$2030
|
||||||
add sp,*6
|
add sp,*6
|
||||||
@@ -3304,52 +3314,44 @@ pop di
|
|||||||
pop bp
|
pop bp
|
||||||
ret
|
ret
|
||||||
!BCC_EOS
|
!BCC_EOS
|
||||||
! 120
|
! 125
|
||||||
! 121 }
|
! 126 }
|
||||||
! 122
|
! 127
|
||||||
! Register BX used in function main
|
! Register BX used in function main
|
||||||
|
.6F:
|
||||||
.70:
|
.70:
|
||||||
.71:
|
.ascii "Default case: "
|
||||||
.ascii "Default case"
|
|
||||||
.byte 0
|
|
||||||
.6E:
|
|
||||||
.72:
|
|
||||||
.ascii "Hit WRITE case"
|
|
||||||
.byte 0
|
.byte 0
|
||||||
.6C:
|
.6C:
|
||||||
.73:
|
.71:
|
||||||
.ascii "Hit READ case"
|
.ascii "Hit WRITE case"
|
||||||
.byte 0
|
.byte 0
|
||||||
.6A:
|
.6A:
|
||||||
.74:
|
.72:
|
||||||
.ascii "Kernel first data pointer: "
|
.ascii "Hit READ case"
|
||||||
.byte 0
|
|
||||||
.69:
|
|
||||||
.75:
|
|
||||||
.ascii "Kernel file size: "
|
|
||||||
.byte 0
|
.byte 0
|
||||||
.68:
|
.68:
|
||||||
.76:
|
.73:
|
||||||
.ascii "Kernel file id: "
|
.ascii "Buffer_segmnent: "
|
||||||
.byte 0
|
.byte 0
|
||||||
.67:
|
.67:
|
||||||
.77:
|
.74:
|
||||||
.ascii "Loding SingOS kernel: "
|
.ascii "Buffer_address: "
|
||||||
.byte 0
|
.byte 0
|
||||||
.60:
|
.60:
|
||||||
.78:
|
.75:
|
||||||
.ascii "File System has been loaded: "
|
.ascii "File System has been loaded: "
|
||||||
.byte 0
|
.byte 0
|
||||||
.43:
|
.43:
|
||||||
.79:
|
.76:
|
||||||
.ascii "vs "
|
.ascii "vs "
|
||||||
.byte 0
|
.byte 0
|
||||||
.42:
|
.42:
|
||||||
.7A:
|
.77:
|
||||||
.ascii "New: "
|
.ascii "New: "
|
||||||
.byte 0
|
.byte 0
|
||||||
.2E:
|
.2E:
|
||||||
.7B:
|
.78:
|
||||||
.ascii "Size of table_entry: "
|
.ascii "Size of table_entry: "
|
||||||
.byte 0
|
.byte 0
|
||||||
.bss
|
.bss
|
||||||
|
|||||||
Reference in new issue
Block a user