|
@ -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,66 +3177,60 @@ 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] |
|
|
!BCC_EOS |
|
|
! Debug: func () void = dump_ax+0 (used reg = ) |
|
|
! 88 print("Kernel file size: "); |
|
|
call _dump_ax |
|
|
! Debug: list * char = .69+0 (used reg = ) |
|
|
|
|
|
mov bx,#.69 |
|
|
|
|
|
push bx |
|
|
|
|
|
! Debug: func () void = print+0 (used reg = ) |
|
|
|
|
|
call _print |
|
|
|
|
|
inc sp |
|
|
|
|
|
inc sp |
|
|
|
|
|
!BCC_EOS |
|
|
|
|
|
! 89 print_newline(); |
|
|
|
|
|
! Debug: func () void = print_newline+0 (used reg = ) |
|
|
|
|
|
call _print_newline |
|
|
|
|
|
!BCC_EOS |
|
|
|
|
|
! 90 print("Kernel first data pointer: "); |
|
|
|
|
|
! Debug: list * char = .6A+0 (used reg = ) |
|
|
|
|
|
mov bx,#.6A |
|
|
|
|
|
push bx |
|
|
|
|
|
! Debug: func () void = print+0 (used reg = ) |
|
|
|
|
|
call _print |
|
|
|
|
|
inc sp |
|
|
inc sp |
|
|
inc sp |
|
|
inc sp |
|
|
!BCC_EOS |
|
|
!BCC_EOS |
|
|
! 91 |
|
|
! 88 |
|
|
! 92 lsfs_disk_read_data_from_file(find_file, 0xffff, 0x |
|
|
! 89 lsfs_disk_read_data_from_file(find_file, parameter_struct.buffer_size, parameter_struct.buffer_a |
|
|
! 92 00, (long) 0x0, 0x50); |
|
|
! 89 ddress, (long) 0x0, parameter_struct.buffer_segment); |
|
|
! Debug: list int = const $50 (used reg = ) |
|
|
! Debug: list unsigned int parameter_struct = [S+$2030-$2014] (used reg = ) |
|
|
mov ax,*$50 |
|
|
push -$2012[bp] |
|
|
push ax |
|
|
|
|
|
! Debug: list long = const 0 (used reg = ) |
|
|
! Debug: list long = const 0 (used reg = ) |
|
|
xor ax,ax |
|
|
xor ax,ax |
|
|
xor bx,bx |
|
|
xor bx,bx |
|
|
push bx |
|
|
push bx |
|
|
push ax |
|
|
push ax |
|
|
! Debug: list int = const 0 (used reg = ) |
|
|
! Debug: list unsigned int parameter_struct = [S+$2036-$2012] (used reg = ) |
|
|
xor ax,ax |
|
|
push -$2010[bp] |
|
|
push ax |
|
|
! Debug: list unsigned int parameter_struct = [S+$2038-$2010] (used reg = ) |
|
|
! Debug: list unsigned int = const $FFFF (used reg = ) |
|
|
push -$200E[bp] |
|
|
mov ax,#$FFFF |
|
|
|
|
|
push ax |
|
|
|
|
|
! Debug: list * struct lsfs_file find_file = [S+$203A-$202E] (used reg = ) |
|
|
! Debug: list * struct lsfs_file find_file = [S+$203A-$202E] (used reg = ) |
|
|
push -$202C[bp] |
|
|
push -$202C[bp] |
|
|
! Debug: func () int = lsfs_disk_read_data_from_file+0 (used reg = ) |
|
|
! Debug: func () int = lsfs_disk_read_data_from_file+0 (used reg = ) |
|
|
call _lsfs_disk_read_data_from_file |
|
|
call _lsfs_disk_read_data_from_file |
|
|
add sp,*$C |
|
|
add sp,*$C |
|
|
!BCC_EOS |
|
|
!BCC_EOS |
|
|
! 93 |
|
|
! 90 |
|
|
! 94 |
|
|
! 91 |
|
|
! 95 } break; |
|
|
! 92 } break; |
|
|
|
|
|
jmp .5C |
|
|
|
|
|
!BCC_EOS |
|
|
|
|
|
! 93 case SERIVCE_READ_DATA: |
|
|
|
|
|
! 94 { |
|
|
|
|
|
.69: |
|
|
|
|
|
! 95 # 103 |
|
|
|
|
|
! 103 |
|
|
|
|
|
! 104 print("Hit READ case"); |
|
|
|
|
|
! Debug: list * char = .6A+0 (used reg = ) |
|
|
|
|
|
mov bx,#.6A |
|
|
|
|
|
push bx |
|
|
|
|
|
! Debug: func () void = print+0 (used reg = ) |
|
|
|
|
|
call _print |
|
|
|
|
|
inc sp |
|
|
|
|
|
inc sp |
|
|
|
|
|
!BCC_EOS |
|
|
|
|
|
! 105 } 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 |
|
|