|
|
- /* Adress to dump ax, 7C2A*/
- /* Address to print 7C47*/
- /* */
- /* */
- #include "main.h"
-
- int main(selector, pointer_parameter_segment, pointer_parameter_struct)
- int selector;
- void* pointer_parameter_segment;
- void* pointer_parameter_struct;
- {
- /* selectot should be a "selector" for which disk service*/
- /* one wnats to use. */
- /* 0 should not be used, to try to ensure that a value has been set explicitly. */
- FSCI fsci;
-
- Service_Action service_action;
- Directory_Table current_table;
- Parameter_Struct parameter_struct;
- int local_segment = 0x7e0;
- unsigned int heap_start = 0x2000;
- unsigned int heap_end = 0xffff;
- int stack_segment = 0x8fc0;
- int path_length;
- long index_as_long;
-
- char *local_path = 0;
- service_action = selector;
-
- switch (service_action)
- {
- case SERIVCE_LOAD_DISK:
- {
- /*
- What do we need to know:
- Index of FSCI
- */
- index_as_long = pointer_parameter_struct;
- disk_service_read_data_from_disk(index_as_long, 1, &fsci, stack_segment);
- print("File System has been loaded: ");
- print_newline();
- set_heap_settings(heap_start, heap_end);
- print_stack(fsci.filesystem_information);
- print_newline();
- } break;
- case SERVICE_FIND_ENTRY:
- {
- String_Array *path_array;
- int i;
- memcpy(¶meter_struct, stack_segment, pointer_parameter_struct, pointer_parameter_segment, sizeof(Parameter_Struct));
- path_length = strlen(parameter_struct.path, pointer_parameter_segment);
- local_path = malloc(256);
- memcpy(local_path, local_segment, parameter_struct.path, pointer_parameter_segment, path_length);
- local_path[path_length] = 0;
- print(local_path);
-
- path_array = string_split_c(local_path, '/', 0);
-
- print_newline();
- print_newline();
- for (i = 0; i < path_array->length; ++i)
- {
- print(path_array->strings[i]->chars);
- print_newline();
- }
- print_newline();
- print_newline();
-
- print_newline();
- disk_service_read_data_from_disk(fsci.master_table_index[0], DEFAULT_TABLE_SIZE, ¤t_table, stack_segment);
- print("Current table: ");
- print_newline();
- print_stack(current_table.entries[0].filename);
- print_newline();
- print_stack(current_table.entries[1].filename);
- print_newline();
- print_stack(current_table.entries[2].filename);
- print_newline();
-
- } break;
- case SERIVCE_READ_DATA:
- {
- /*
- What do we need to know:
- path
- Buffer:
- destination_segment
- destination_address
- buffer_size
- offset_into_file
- */
- print("Hit READ case");
- } break;
- case SERIVCE_WRITE_DATA:
- {
- print("Hit WRITE case");
- } break;
- default:
- {
- print("Default case");
- }
- }
-
- return 0;
-
- }
-
- /* void load_*/
|