flat assembler version 1.68 (65535 kilobytes memory) 0000: E9 E1 0A jmp start 0003: 53 65 63 6F 6E 64 61 72 79 20 4C 6F 61 version db 'Secondary Loader v 0.009', 0 0010: 64 65 72 20 76 20 30 2E 30 30 39 00 001C: 53 65 6C 65 63 74 20 73 65 63 74 69 6F select_section db 'Select section:' 0029: 6E 3A 002B: 53 65 63 74 69 6F 6E 20 64 65 73 63 72 section_description db 'Section description:' 0038: 69 70 74 69 6F 6E 3A 003F: 53 6F 66 74 20 28 63 29 20 32 30 30 38 soft_mes db 'Soft (c) 2008' 004C: 3E 46 61 74 61 6C 20 2D 20 43 50 55 20 badprocessor db '>Fatal - CPU 586+ required.', 0 0059: 35 38 36 2B 20 72 65 71 75 69 72 65 64 0066: 2E 00 0068: 3E 45 72 72 6F 72 3A 20 63 61 6E 6E 6F error_ini_f1 db '>Error: cannot load ini file, buffer is full', 0 0075: 74 20 6C 6F 61 64 20 69 6E 69 20 66 69 0082: 6C 65 2C 20 62 75 66 66 65 72 20 69 73 008F: 20 66 75 6C 6C 00 0095: 3E 45 72 72 6F 72 3A 20 69 6E 69 20 66 error_ini_f2 db '>Error: ini file not found', 0 00A2: 69 6C 65 20 6E 6F 74 20 66 6F 75 6E 64 00AF: 00 00B0: 3E 45 72 72 6F 72 3A 20 63 61 6E 6E 6F error_ini_f3 db '>Error: cannot read ini file', 0 00BD: 74 20 72 65 61 64 20 69 6E 69 20 66 69 00CA: 6C 65 00 00CD: 3E 45 72 72 6F 72 3A 20 75 6E 72 65 63 error_ini_nf db '>Error: unrecognized error when loading ini file', 0 00DA: 6F 67 6E 69 7A 65 64 20 65 72 72 6F 72 00E7: 20 77 68 65 6E 20 6C 6F 61 64 69 6E 67 00F4: 20 69 6E 69 20 66 69 6C 65 00 00FE: 3E 4E 6F 74 20 66 6F 75 6E 64 20 73 65 not_found_sec_loader db '>Not found section [loader]', 0 010B: 63 74 69 6F 6E 20 5B 6C 6F 61 64 65 72 0118: 5D 00 011A: 3E 4E 6F 74 20 66 6F 75 6E 64 20 76 61 not_found_def_sect db '>Not found value default in section [loader]', 0 0127: 6C 75 65 20 64 65 66 61 75 6C 74 20 69 0134: 6E 20 73 65 63 74 69 6F 6E 20 5B 6C 6F 0141: 61 64 65 72 5D 00 0147: 3E 45 72 72 6F 72 20 69 6E 20 73 65 63 default_eq_loader db '>Error in section [loader] parametr default=loader', 0 0154: 74 69 6F 6E 20 5B 6C 6F 61 64 65 72 5D 0161: 20 70 61 72 61 6D 65 74 72 20 64 65 66 016E: 61 75 6C 74 3D 6C 6F 61 64 65 72 00 017A: 3E 46 6F 75 6E 64 20 65 71 75 61 6C 20 found_equal_default db '>Found equal parametr default will be use first value', 0 0187: 70 61 72 61 6D 65 74 72 20 64 65 66 61 0194: 75 6C 74 20 77 69 6C 6C 20 62 65 20 75 01A1: 73 65 20 66 69 72 73 74 20 76 61 6C 75 01AE: 65 00 01B0: 3E 46 6F 75 6E 64 20 65 71 75 61 6C 20 found_equal_timeout db '>Found equal parametr timeout will be use first value', 0 01BD: 70 61 72 61 6D 65 74 72 20 74 69 6D 65 01CA: 6F 75 74 20 77 69 6C 6C 20 62 65 20 75 01D7: 73 65 20 66 69 72 73 74 20 76 61 6C 75 01E4: 65 00 01E6: 3E 53 65 63 74 69 6F 6E 20 74 69 6D 65 set_default_timeout_val db '>Section timeout has incorrect value, will be use default value', 0 01F3: 6F 75 74 20 68 61 73 20 69 6E 63 6F 72 0200: 72 65 63 74 20 76 61 6C 75 65 2C 20 77 020D: 69 6C 6C 20 62 65 20 75 73 65 20 64 65 021A: 66 61 75 6C 74 20 76 61 6C 75 65 00 0226: 3E 49 20 77 69 6C 6C 20 75 73 65 20 70 error_ini_common db '>I will use predefined settings and try to boot. Let's hope for the best...' 0233: 72 65 64 65 66 69 6E 65 64 20 73 65 74 0240: 74 69 6E 67 73 20 61 6E 64 20 74 72 79 024D: 20 74 6F 20 62 6F 6F 74 2E 20 4C 65 74 025A: 27 73 20 68 6F 70 65 20 66 6F 72 20 74 0267: 68 65 20 62 65 73 74 2E 2E 2E 0271: 0D 0A 50 72 65 73 73 20 61 6E 79 20 6B db 13, 10, 'Press any key to continue...', 0 027E: 65 79 20 74 6F 20 63 6F 6E 74 69 6E 75 028B: 65 2E 2E 2E 00 0290: 3E 49 6E 69 20 66 69 6C 65 20 6C 6F 61 load_ini db '>Ini file loaded successfully', 0 029D: 64 65 64 20 73 75 63 63 65 73 73 66 75 02AA: 6C 6C 79 00 02AE: 3E 45 6E 64 20 70 61 72 73 69 6E 67 20 parse_ini_end db '>End parsing ini file', 0 02BB: 69 6E 69 20 66 69 6C 65 00 02C4: 3E 50 6F 69 6E 74 20 74 6F 20 64 65 66 point_to_default_sec_not_found db '>Point to default section is not found in ini file', 0 02D1: 61 75 6C 74 20 73 65 63 74 69 6F 6E 20 02DE: 69 73 20 6E 6F 74 20 66 6F 75 6E 64 20 02EB: 69 6E 20 69 6E 69 20 66 69 6C 65 00 02F7: 3E 49 6E 63 6F 72 65 63 74 20 73 65 63 incorect_section_define db '>Incorect section define not found ']'', 0 0304: 74 69 6F 6E 20 64 65 66 69 6E 65 20 6E 0311: 6F 74 20 66 6F 75 6E 64 20 27 5D 27 00 031E: 22 53 65 63 74 69 6F 6E 20 75 6E 6E 61 default_section_name db '"Section unname"' 032B: 6D 65 22 032E: 50 72 65 73 73 20 61 6E 79 20 6B 65 79 start_msg db 'Press any key to change default section, press [Enter] to continue booting' 033B: 20 74 6F 20 63 68 61 6E 67 65 20 64 65 0348: 66 61 75 6C 74 20 73 65 63 74 69 6F 6E 0355: 2C 20 70 72 65 73 73 20 5B 45 6E 74 65 0362: 72 5D 20 74 6F 20 63 6F 6E 74 69 6E 75 036F: 65 20 62 6F 6F 74 69 6E 67 0378: 6F 72 20 77 61 69 74 20 34 20 73 65 63 time_msg db 'or wait 4 seconds before default continuation' 0385: 6F 6E 64 73 20 62 65 66 6F 72 65 20 64 0392: 65 66 61 75 6C 74 20 63 6F 6E 74 69 6E 039F: 75 61 74 69 6F 6E 03A5: 73 65 63 6F 6E 64 73 20 62 65 66 6F 72 time_str db 'seconds before default continuation' 03B2: 65 20 64 65 66 61 75 6C 74 20 63 6F 6E 03BF: 74 69 6E 75 61 74 69 6F 6E 03C8: 53 65 74 20 73 74 61 63 6B 20 26 20 73 stack_msg db 'Set stack & segments is have completed', 0 03D5: 65 67 6D 65 6E 74 73 20 69 73 20 68 61 03E2: 76 65 20 63 6F 6D 70 6C 65 74 65 64 00 03EF: 48 61 76 65 20 6C 6F 61 64 65 64 20 73 show_string db 'Have loaded size:' 03FC: 69 7A 65 3A 0400: 20 20 20 20 20 20 00 show_decode db ' ', 0 0407: 20 20 20 20 20 20 20 2D 4D 65 73 73 61 show_db1 db ' -Message debug1', 0 0414: 67 65 20 64 65 62 75 67 31 00 041E: 20 20 20 20 20 20 20 2D 4D 65 73 73 61 show_db2 db ' -Message debug2', 0 042B: 67 65 20 64 65 62 75 67 32 00 0435: 5B 6C 6F 61 64 65 72 5D 20 69 73 20 66 lm_l_found db '[loader] is found', 0 0442: 6F 75 6E 64 00 0447: 74 69 6D 65 6F 75 74 20 69 73 20 66 6F lm_lf_timeout db 'timeout is found', 0 0454: 75 6E 64 00 0458: 6E 61 6D 65 20 64 65 66 61 75 6C 74 20 lm_lf_default db 'name default is found and end parsing section', 0 0465: 69 73 20 66 6F 75 6E 64 20 61 6E 64 20 0472: 65 6E 64 20 70 61 72 73 69 6E 67 20 73 047F: 65 63 74 69 6F 6E 00 0486: 66 6F 75 6E 64 20 73 65 63 74 69 6F 6E lm_lf_section db 'found section [', 0 0493: 20 5B 00 0496: 66 6F 75 6E 64 20 64 65 66 61 75 6C 74 lm_lf_default_f db 'found default parametr', 0 04A3: 20 70 61 72 61 6D 65 74 72 00 04AD: 73 65 63 74 69 6F 6E 20 5B 6C 6F 61 64 lm_l_end db 'section [loader] is end', 0 04BA: 65 72 5D 20 69 73 20 65 6E 64 00 04C5: 53 48 4F 57 20 41 4C 4C 20 53 65 63 74 show_all_sect db 'SHOW ALL Sections', 0 04D2: 69 6F 6E 73 00 04D7: 4E 6F 74 20 73 68 6F 77 20 73 65 63 74 no_show_only_w db 'Not show sections - only work on default sect', 0 04E4: 69 6F 6E 73 20 2D 20 6F 6E 6C 79 20 77 04F1: 6F 72 6B 20 6F 6E 20 64 65 66 61 75 6C 04FE: 74 20 73 65 63 74 00 0505: 5B 20 6E 6F 74 20 66 6F 75 6E 64 00 _not_found db '[ not found', 0 0511: 5B 5D 20 66 6F 75 6E 64 00 _found_1 db '[] found', 0 051A: 5B 20 66 6F 75 6E 64 00 _found_2 db '[ found', 0 0522: 48 65 6C 6C 6F 20 24 29 00 say_hello db 'Hello $)', 0 052B: 53 74 61 72 74 20 75 73 65 5F 52 61 6D ramdiskFS_st db 'Start use_RamdiskFS macros', 0 0538: 64 69 73 6B 46 53 20 6D 61 63 72 6F 73 0545: 00 0546: 20 20 20 20 20 20 20 2D 4B 62 20 61 76 free_memory_msg db ' -Kb availability system free memory', 0 0553: 61 69 6C 61 62 69 6C 69 74 79 20 73 79 0560: 73 74 65 6D 20 66 72 65 65 20 6D 65 6D 056D: 6F 72 79 00 0571: 20 20 20 20 20 20 20 2D 4B 62 20 65 71 RamdiskSize_msg db ' -Kb equal RamdiskSize', 0 057E: 75 61 6C 20 52 61 6D 64 69 73 6B 53 69 058B: 7A 65 00 058E: 20 20 20 20 20 20 20 20 2D 62 79 74 73 RamdiskSector_msg db ' -byts RamdiskSector', 0 059B: 20 52 61 6D 64 69 73 6B 53 65 63 74 6F 05A8: 72 00 05AA: 20 20 20 20 20 20 20 2D 52 61 6D 64 69 RamdiskCluster_msg db ' -RamdiskCluster', 0 05B7: 73 6B 43 6C 75 73 74 65 72 00 05C1: 20 20 20 20 20 20 20 2D 73 69 7A 65 20 RamdiskFile_msg db ' -size RamdiskFile', 0 05CE: 52 61 6D 64 69 73 6B 46 69 6C 65 00 05DA: 20 20 20 20 20 20 20 2D 66 69 72 73 74 fat_create_msg db ' -first create fat table, point to next block', 0 05E7: 20 63 72 65 61 74 65 20 66 61 74 20 74 05F4: 61 62 6C 65 2C 20 70 6F 69 6E 74 20 74 0601: 6F 20 6E 65 78 74 20 62 6C 6F 63 6B 00 060E: 20 20 20 20 20 20 20 2D 69 6E 20 62 79 BPB_msg db ' -in byte, why we get data from move BPB struct', 0 061B: 74 65 2C 20 77 68 79 20 77 65 20 67 65 0628: 74 20 64 61 74 61 20 66 72 6F 6D 20 6D 0635: 6F 76 65 20 42 50 42 20 73 74 72 75 63 0642: 74 00 0644: 20 20 20 20 20 20 20 2D 66 69 72 73 74 firstDataSect_msg db ' -first data sector, offset to data in sectors', 0 0651: 20 64 61 74 61 20 73 65 63 74 6F 72 2C 065E: 20 6F 66 66 73 65 74 20 74 6F 20 64 61 066B: 74 61 20 69 6E 20 73 65 63 74 6F 72 73 0678: 00 0679: 20 20 20 20 20 20 20 2D 73 69 7A 65 20 size_root_dir_msg db ' -size root dir in sectrors', 0 0686: 72 6F 6F 74 20 64 69 72 20 69 6E 20 73 0693: 65 63 74 72 6F 72 73 00 069B: 20 20 20 20 20 20 20 2D 73 69 7A 65 20 DataClasters_msg db ' -size data in Clasters', 0 06A8: 64 61 74 61 20 69 6E 20 43 6C 61 73 74 06B5: 65 72 73 00 06B9: 20 20 20 20 20 20 20 2D 69 66 20 2D 31 check_name_fat_msg db ' -if -1 name is present, else 0 then not present name', 0 06C6: 20 6E 61 6D 65 20 69 73 20 70 72 65 73 06D3: 65 6E 74 2C 20 65 6C 73 65 20 30 20 74 06E0: 68 65 6E 20 6E 6F 74 20 70 72 65 73 65 06ED: 6E 74 20 6E 61 6D 65 00 06F5: 20 20 20 20 20 20 20 2D 69 66 20 2D 31 convertion_file_name_msg db ' -if -1, then destination name is bad', 0 0702: 2C 20 74 68 65 6E 20 64 65 73 74 69 6E 070F: 61 74 69 6F 6E 20 6E 61 6D 65 20 69 73 071C: 20 62 61 64 00 0721: 2D 4D 61 6B 65 20 46 41 54 31 32 20 52 make_fat12_RFS_msg db '-Make FAT12 Ram FS', 0 072E: 61 6D 20 46 53 00 0734: 2D 45 6E 64 20 6D 61 6B 65 20 52 61 6D get_type_FS_msg db '-End make RamDisk', 0 0741: 44 69 73 6B 00 0746: 20 20 20 20 2D 72 65 74 75 72 6E 20 63 return_code_af_move db ' -return code after 0x87 int 0x15, move block', 0 0753: 6F 64 65 20 61 66 74 65 72 20 30 78 38 0760: 37 20 69 6E 74 20 30 78 31 35 2C 20 6D 076D: 6F 76 65 20 62 6C 6F 63 6B 00 0777: 20 20 20 20 2D 72 65 74 75 72 6E 20 63 return_code_af_fat_m db ' -return code after 0x87 int 0x15, move fat struc', 0 0784: 6F 64 65 20 61 66 74 65 72 20 30 78 38 0791: 37 20 69 6E 74 20 30 78 31 35 2C 20 6D 079E: 6F 76 65 20 66 61 74 20 73 74 72 75 63 07AB: 00 07AC: 5B 6C 6F 61 64 65 72 5D parse_loader db '[loader]' 07B4: 74 69 6D 65 6F 75 74 parse_l_timeout db 'timeout' 07BB: 64 65 66 61 75 6C 74 parse_l_default db 'default' 07C2: 61 6D 65 parse_name db 'ame' 07C5: 64 65 73 63 72 69 70 74 parse_descript db 'descript' 07CD: 4C 6F 61 64 65 72 4D 6F 64 75 6C 65 parse_LoaderModule db 'LoaderModule' 07D9: 52 61 6D 64 69 73 6B 53 69 7A 65 parse_RamdiskSize db 'RamdiskSize' 07E4: 52 61 6D 64 69 73 6B 46 53 parse_RamdiskFS db 'RamdiskFS' 07ED: 52 61 6D 64 69 73 6B 53 65 63 74 6F 72 parse_RamdiskSector db 'RamdiskSector' 07FA: 52 61 6D 64 69 73 6B 43 6C 75 73 74 65 parse_RamdiskCluster db 'RamdiskCluster' 0807: 72 0808: 46 41 54 parse_RFS_FAT db 'FAT' 080B: 4B 52 46 53 parse_RFS_KRFS db 'KRFS' 080F: 4C 6F 61 64 65 72 49 6D 61 67 65 parse_Loader_Image db 'LoaderImage' 081A: 52 61 6D 64 69 73 6B 46 69 6C 65 parse_RamdiskFile db 'RamdiskFile' 0825: 66 39 C8 cmp eax, ecx 0828: 72 0D jb @f 082A: 66 31 D2 xor edx, edx 082D: 66 F7 F1 div ecx 0830: 66 52 push edx 0832: E8 F0 FF call decode 0835: 66 58 pop eax 0837: 0C 30 or al, 0x30 0839: 88 05 mov [ ds : di ], al 083B: 47 inc di 083C: C3 ret 083D: B4 0E mov ah, 0Eh 083F: B7 00 mov bh, 0 0841: CD 10 int 10h 0843: C3 ret 0844: 60 pusha 0845: AC lodsb 0846: E8 F4 FF call putchar 0849: AC lodsb 084A: 3C 00 cmp al, 0 084C: 75 F8 jnz @b 084E: B0 0D mov al, 13 0850: E8 EA FF call putchar 0853: B0 0A mov al, 10 0855: E8 E5 FF call putchar 0858: 61 popa 0859: C3 ret 085A: B4 00 mov ah, 0 085C: CD 16 int 16h 085E: 38 D8 cmp al, bl 0860: 72 F8 jb getkey 0862: 38 F8 cmp al, bh 0864: 77 F4 ja getkey 0866: 50 push ax 0867: E8 D3 FF call putchar 086A: 58 pop ax 086B: 83 E0 0F and ax, 0Fh 086E: 75 02 jnz @f 0870: B0 0A mov al, 10 0872: C3 ret 0873: 26 8A 05 mov al, byte [ es : di ] 0876: 47 inc di 0877: 49 dec cx 0878: E3 20 jcxz .exit 087A: 3C 0A cmp al, 0xa 087C: 74 0A jz ._entry 087E: 3C 3B cmp al, ';' 0880: 75 F1 jnz .start 0882: B0 0A mov al, 0xa 0884: F2 repnz 0885: AE scasb 0886: E3 12 jcxz .exit 0888: 26 8A 05 mov al, byte [ es : di ] 088B: 3C 20 cmp al, ' ' 088D: 75 07 jnz .not_space 088F: F3 repe 0890: AE scasb 0891: 4F dec di 0892: 41 inc cx 0893: 26 8A 05 mov al, byte [ es : di ] 0896: 3C 3B cmp al, ';' 0898: 74 E8 jz .first_com 089A: C3 ret 089B: 56 push si 089C: 68 00 20 push ini_data_ 089F: 07 pop es 08A0: B0 5D mov al, ']' 08A2: F2 repnz 08A3: AE scasb 08A4: 85 C9 test cx, cx 08A6: 0F 84 0F 02 jz error.incorect_section_def 08AA: B0 6E mov al, 'n' 08AC: F2 repnz 08AD: AE scasb 08AE: E3 69 jcxz .not_name_sec_fb 08B0: BE C2 07 mov si, parse_name 08B3: 51 push cx 08B4: 57 push di 08B5: B9 03 00 mov cx, parse_name_e - parse_name 08B8: F3 repe 08B9: A6 cmpsb 08BA: 5F pop di 08BB: 59 pop cx 08BC: 74 02 jz .yaaa_find_value 08BE: EB EC jmp .find_val_name_fb 08C0: 83 E9 03 sub cx, parse_name_e - parse_name 08C3: 83 C7 03 add di, parse_name_e - parse_name 08C6: B8 20 3D mov ax, 0x3d20 08C9: F3 repe 08CA: AE scasb 08CB: 85 C9 test cx, cx 08CD: 74 4A jz .not_name_sec_fb 08CF: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 08D3: 75 D5 jnz .find_val_name_fb1 08D5: F3 repe 08D6: AE scasb 08D7: 41 inc cx 08D8: 4F dec di 08D9: 06 push es 08DA: 1F pop ds 08DB: 68 00 B8 push 0xb800 08DE: 07 pop es 08DF: 31 C0 xor ax, ax 08E1: B8 20 07 mov ax, 0x0720 08E4: B9 27 00 mov cx, 39 08E7: 89 FE mov si, di 08E9: 89 D7 mov di, dx 08EB: 83 EF 02 sub di, 2 08EE: F3 rep 08EF: AB stosw 08F0: 89 D7 mov di, dx 08F2: B4 0F mov ah, color_sym_white 08F4: B9 24 00 mov cx, 36 08F7: AC lodsb 08F8: 83 EF 02 sub di, 2 08FB: 3C 22 cmp al, '"' 08FD: 74 04 jz @f 08FF: 3C 27 cmp al, ''' 0901: 75 12 jnz .end_sh_name_sec 0903: AC lodsb 0904: AB stosw 0905: AC lodsb 0906: 3C 22 cmp al, '"' 0908: 74 0B jz .end_sh_name_sec 090A: 3C 27 cmp al, ''' 090C: 74 07 jz .end_sh_name_sec 090E: E2 F4 loop @b 0910: B0 7D mov al, '}' 0912: B4 0E mov ah, color_sym_yellow 0914: AB stosw 0915: 0E push cs 0916: 1F pop ds 0917: 5E pop si 0918: C3 ret 0919: 0E push cs 091A: 1F pop ds 091B: BF 1E 03 mov di, default_section_name 091E: EB BB jmp .def_sect_name 0920: 8B 7E F4 mov di, point_default 0923: 68 00 20 push ini_data_ 0926: 07 pop es 0927: 89 F9 mov cx, di 0929: 89 CB mov bx, cx 092B: FD std 092C: B0 0A mov al, 0xa 092E: F2 repnz 092F: AE scasb 0930: E3 25 jcxz .go_ 0932: 89 7E C6 mov find_sec_di, di 0935: 89 F9 mov cx, di 0937: 29 CB sub bx, cx 0939: 89 D9 mov cx, bx 093B: FC cld 093C: E8 34 FF call get_firs_sym 093F: E3 0D jcxz ._not_section 0941: 3B 7E F6 cmp di, point_loader 0944: 74 08 jz ._not_section 0946: 3C 5B cmp al, '[' 0948: 75 04 jnz ._not_section 094A: 89 7E F4 mov point_default, di 094D: C3 ret 094E: 8B 7E C6 mov di, find_sec_di 0951: 89 F9 mov cx, di 0953: 89 CB mov bx, cx 0955: EB D4 jmp .find_start_section 0957: FC cld 0958: 89 D9 mov cx, bx 095A: 26 8A 05 mov al, byte [ es : di ] 095D: 68 6A 09 push word .f_go 0960: 3C 20 cmp al, ' ' 0962: 74 03 jz @f 0964: E9 2F FF jmp get_firs_sym.not_space 0967: E9 21 FF jmp get_firs_sym.first_sp 096A: E3 E1 jcxz .exit_scan_sect 096C: 3B 7E F6 cmp di, point_loader 096F: 74 DC jz .exit_scan_sect 0971: 3C 5B cmp al, '[' 0973: 75 D8 jnz .exit_scan_sect 0975: 89 7E F4 mov point_default, di 0978: C3 ret 0979: 8B 7E F4 mov di, point_default 097C: 68 00 20 push ini_data_ 097F: 07 pop es 0980: 8B 4E FE mov cx, save_cx 0983: 29 F9 sub cx, di 0985: EB 17 jmp .let_s_go 0987: 68 00 20 push ini_data_ 098A: 07 pop es 098B: 8B 4E FE mov cx, save_cx 098E: 26 8A 05 mov al, byte [ es : di ] 0991: 68 A1 09 push word .let_s_go_ret 0994: 3C 20 cmp al, ' ' 0996: 74 03 jz @f 0998: E9 FB FE jmp get_firs_sym.not_space 099B: E9 ED FE jmp get_firs_sym.first_sp 099E: E8 D2 FE call get_firs_sym 09A1: E3 0C jcxz .exit_scan_sect 09A3: 3C 5B cmp al, '[' 09A5: 75 F7 jnz .let_s_go 09A7: 3B 7E F6 cmp di, point_loader 09AA: 74 F2 jz .let_s_go 09AC: 89 7E F4 mov point_default, di 09AF: C3 ret 09B0: 8D 76 F2 lea si, point_to_hframe 09B3: BF 22 03 mov di, 962 - 160 09B6: 8B 56 F4 mov dx, point_default 09B9: B9 12 00 mov cx, 18 09BC: 8B 1C mov bx, [ si ] 09BE: 81 C7 A0 00 add di, 160 09C2: 39 D3 cmp bx, dx 09C4: 74 05 jz .clean_cursor_ 09C6: 83 EE 02 sub si, 2 09C9: E2 F1 loop .clean_show_cur 09CB: 68 00 B8 push 0xb800 09CE: 07 pop es 09CF: 50 push ax 09D0: 89 76 CA mov point_to_point_def, si 09D3: 31 C0 xor ax, ax 09D5: B8 20 07 mov ax, 0x0720 09D8: AB stosw 09D9: 83 C7 44 add di, 68 09DC: AB stosw 09DD: 58 pop ax 09DE: C3 ret 09DF: B4 00 mov ah, 0 09E1: CD 1A int 1Ah 09E3: 91 xchg ax, cx 09E4: 66 C1 E0 10 shl eax, 10h 09E8: 92 xchg ax, dx 09E9: C3 ret 09EA: 1E push ds 09EB: 0E push cs 09EC: 1F pop ds 09ED: 9C pushf 09EE: FF 1E D4 1A call far dword [ old_timer ] 09F2: 66 60 pushad 09F4: E8 E8 FF call gettime 09F7: 66 2B 06 D8 1A sub eax, dword [ start_timer ] 09FC: 8B 1E D2 1A mov bx, word [ value_timeout ] 0A00: 6B DB 12 imul bx, 18 0A03: 29 C3 sub bx, ax 0A05: 76 1F jbe .timergo 0A07: 06 push es 0A08: 68 00 B8 push 0xb800 0A0B: 07 pop es 0A0C: 89 D8 mov ax, bx 0A0E: BB 12 00 mov bx, 18 0A11: 31 D2 xor dx, dx 0A13: F7 F3 div bx 0A15: BB 0A 00 mov bx, 10 0A18: BF 96 0E mov di, 3734 0A1B: E8 24 00 call .decode 0A1E: 31 C0 xor ax, ax 0A20: AB stosw 0A21: 07 pop es 0A22: 66 61 popad 0A24: 1F pop ds 0A25: CF iret 0A26: 6A 00 push 0 0A28: 07 pop es 0A29: 66 A1 D4 1A mov eax, dword [ old_timer ] 0A2D: 26 66 A3 20 00 mov [ es : 8 * 4 ], eax 0A32: 66 A3 DC 1A mov dword [ timer_ ], eax 0A36: 8B 26 E0 1A mov sp, word [ start_stack ] 0A3A: 8B 2E E2 1A mov bp, word [ save_bp_from_timer ] 0A3E: FB sti 0A3F: E9 D8 06 jmp parse_start.parse_run_only 0A42: 39 D8 cmp ax, bx 0A44: 72 09 jb @f 0A46: 31 D2 xor dx, dx 0A48: F7 F3 div bx 0A4A: 52 push dx 0A4B: E8 F4 FF call .decode 0A4E: 58 pop ax 0A4F: 0C 30 or al, 0x30 0A51: 50 push ax 0A52: B4 09 mov ah, 9 0A54: AB stosw 0A55: 58 pop ax 0A56: C3 ret 0A57: 8B 5E C8 mov bx, point_to_eframe 0A5A: 8D 76 F2 lea si, point_to_hframe 0A5D: BA C6 03 mov dx, 966 0A60: 39 DE cmp si, bx 0A62: 72 12 jb ._show_space_fb 0A64: 8B 3C mov di, [ si ] 0A66: 83 EE 02 sub si, 2 0A69: 8B 0C mov cx, [ si ] 0A6B: 29 F9 sub cx, di 0A6D: E8 2B FE call show_name_section 0A70: 81 C2 A0 00 add dx, 160 0A74: EB EA jmp .home_show_fb 0A76: 83 EA 04 sub dx, 4 0A79: 68 00 B8 push 0xb800 0A7C: 07 pop es 0A7D: 81 FA 64 0E cmp dx, 0xE64 0A81: 77 12 ja .exit_show_fb 0A83: 89 D7 mov di, dx 0A85: 31 C0 xor ax, ax 0A87: B8 20 07 mov ax, 0x0720 0A8A: B9 27 00 mov cx, 39 0A8D: F3 rep 0A8E: AB stosw 0A8F: 81 C2 A0 00 add dx, 160 0A93: EB E8 jmp @b 0A95: C3 ret 0A96: 89 C7 mov di, ax 0A98: 89 D9 mov cx, bx 0A9A: FF 66 FC jmp ret_on_ch 0A9D: C9 leave 0A9E: BE 1A 01 mov si, not_found_def_sect 0AA1: E9 F4 00 jmp err_show_ini 0AA4: C9 leave 0AA5: BE FE 00 mov si, not_found_sec_loader 0AA8: E9 ED 00 jmp err_show_ini 0AAB: C9 leave 0AAC: BE 47 01 mov si, default_eq_loader 0AAF: E9 E6 00 jmp err_show_ini 0AB2: C9 leave 0AB3: BE C4 02 mov si, point_to_default_sec_not_found 0AB6: E9 DF 00 jmp err_show_ini 0AB9: C9 leave 0ABA: BE F7 02 mov si, incorect_section_define 0ABD: E9 D8 00 jmp err_show_ini 0AC0: 68 00 B8 push word 0xb800 0AC3: 07 pop es 0AC4: C3 ret 0AC5: 00 00 00 20 file_data dw 0x0, ini_data_ 0AC9: 10 00 size_data dw 16 0ACB: 6B 6F 72 64 2F 73 74 61 72 74 6F 73 2E name_ini_f db 'kord/startos.ini', 0 0AD8: 69 6E 69 00 0ADC: 00 00 00 00 loader_callback dd ? 0AE0: 00 00 load_drive dw ? 0AE2: 00 00 load_ft dw ? 0AE4: 2E 89 36 DC 0A mov word [ cs : loader_callback ], si 0AE9: 2E 8C 1E DE 0A mov word [ cs : loader_callback + 2 ], ds 0AEE: 2E A3 E0 0A mov word [ cs : load_drive ], ax 0AF2: 2E 89 1E E2 0A mov word [ cs : load_ft ], bx 0AF7: 8C C8 mov ax, cs 0AF9: 8E D0 mov ss, ax 0AFB: 31 E4 xor sp, sp 0AFD: 8E D8 mov ds, ax 0AFF: 8E C0 mov es, ax 0B01: FC cld 0B02: FB sti 0B03: B8 03 00 mov ax, 3 0B06: CD 10 int 0x10 0B08: BE 03 00 mov si, version 0B0B: E8 36 FD call printplain 0B0E: B0 23 mov al, '#' 0B10: B9 50 00 mov cx, 80 0B13: E8 27 FD call putchar 0B16: E2 FB loop @b 0B18: BE C8 03 mov si, stack_msg 0B1B: E8 26 FD call printplain 0B1E: 31 DB xor bx, bx 0B20: 8E DB mov ds, bx 0B22: FF 77 1A push word [ bx + 6 * 4 + 2 ] 0B25: FF 77 18 push word [ bx + 6 * 4 ] 0B28: C7 47 18 4A 0B mov word [ bx + 6 * 4 ], ud16 0B2D: 8C 4F 1A mov word [ bx + 6 * 4 + 2 ], cs 0B30: 66 31 C0 xor eax, eax 0B33: 0F A2 cpuid 0B35: 66 85 C0 test eax, eax 0B38: 74 10 jz cpubad 0B3A: 66 31 C0 xor eax, eax 0B3D: 40 inc ax 0B3E: 0F A2 cpuid 0B40: F6 C2 10 test dl, 10h 0B43: 74 05 jz cpubad 0B45: F6 C2 20 test dl, 20h 0B48: 75 12 jnz cpugood 0B4A: 8F 06 18 00 pop word [ 6 * 4 ] 0B4E: 8F 06 1A 00 pop word [ 6 * 4 + 2 ] 0B52: 0E push cs 0B53: 1F pop ds 0B54: BE 4C 00 mov si, badprocessor 0B57: E8 EA FC call printplain 0B5A: EB FE jmp $ 0B5C: 66 8F 06 18 00 pop dword [ 6 * 4 ] 0B61: 0E push cs 0B62: 1F pop ds 0B63: 66 0F B7 E4 movzx esp, sp 0B67: B9 03 00 mov cx, loop_read_startos_file 0B6C: 31 C0 xor ax, ax 0B6E: BF C5 0A mov di, file_data 0B71: 40 inc ax 0B72: 51 push cx 0B73: FF 1E DC 0A call far dword [ loader_callback ] 0B77: 59 pop cx 0B78: 0E push cs 0B79: 0E push cs 0B7A: 1F pop ds 0B7B: 07 pop es 0B7C: 85 DB test bx, bx 0B7E: 74 28 jz check_conf_file 0B80: 49 dec cx 0B81: 75 E9 jnz load_startos_file 0B83: BE 68 00 mov si, error_ini_f1 0B86: 4B dec bx 0B87: 74 0F jz err_show_ini 0B89: BE 95 00 mov si, error_ini_f2 0B8C: 4B dec bx 0B8D: 74 09 jz err_show_ini 0B8F: BE B0 00 mov si, error_ini_f3 0B92: 4B dec bx 0B93: 74 03 jz err_show_ini 0B95: BE CD 00 mov si, error_ini_nf 0B98: E8 A9 FC call printplain 0B9B: BE 26 02 mov si, error_ini_common 0B9E: E8 A3 FC call printplain 0BA1: 31 C0 xor ax, ax 0BA3: CD 16 int 16h 0BA5: EB FE jmp $ 0BA8: 50 push ax 0BA9: B9 0A 00 mov cx, 0x0a 0BAC: BF 00 04 mov di, show_decode 0BAF: E8 73 FC call decode 0BB2: BE EF 03 mov si, show_string 0BB5: E8 8C FC call printplain 0BB8: BE 90 02 mov si, load_ini 0BBB: E8 86 FC call printplain 0BBE: 59 pop cx 0BBF: C8 00 01 00 enter 256, 0 0BC3: 89 2E E2 1A mov word [ save_bp_from_timer ], bp 0BC7: 89 4E FE mov save_cx, cx 0BCA: C4 3E C5 0A les di, dword [ file_data ] 0BCE: 31 C0 xor ax, ax 0BD0: 89 46 F8 mov status_flag, ax 0BD3: C7 46 C4 00 30 mov info_real_mode_size, ini_data_ + 0x1000 0BD8: FC cld 0BD9: C7 46 FC EE 0B mov ret_on_ch, .start 0BDE: 26 8A 05 mov al, byte [ es : di ] 0BE1: 68 F1 0B push word .first_ret 0BE4: 3C 20 cmp al, ' ' 0BE6: 74 03 jz .first_sp_1 0BE8: E9 AB FC jmp get_firs_sym.not_space 0BEB: E9 9D FC jmp get_firs_sym.first_sp 0BEE: E8 82 FC call get_firs_sym 0BF1: 85 C9 test cx, cx 0BF3: 0F 84 AD FE jz error.not_loader 0BF7: 3C 5B cmp al, '[' 0BF9: 74 02 jz .parse_loader 0BFB: EB F1 jmp .start 0BFD: 89 CB mov bx, cx 0BFF: 89 F8 mov ax, di 0C01: BE AC 07 mov si, parse_loader 0C04: B9 08 00 mov cx, parse_loader_e - parse_loader 0C07: F3 repe 0C08: A6 cmpsb 0C09: 0F 85 89 FE jnz error.rest_value 0C0D: 89 46 F6 mov point_loader, ax 0C10: 83 EB 08 sub bx, parse_loader_e - parse_loader 0C13: 01 CB add bx, cx 0C15: 89 D9 mov cx, bx 0C17: 60 pusha 0C18: BE 35 04 mov si, lm_l_found 0C1B: E8 26 FC call printplain 0C1E: 61 popa 0C1F: 89 FA mov dx, di 0C21: E8 4F FC call get_firs_sym 0C24: E3 04 jcxz .loader_f_end 0C26: 3C 5B cmp al, '[' 0C28: 75 F7 jnz @b 0C2A: 29 CB sub bx, cx 0C2C: 89 D7 mov di, dx 0C2E: 89 D9 mov cx, bx 0C30: C7 46 FC 35 0C mov ret_on_ch, .get_next_str 0C35: E8 3B FC call get_firs_sym 0C38: 85 C9 test cx, cx 0C3A: 0F 84 57 01 jz .end_loader 0C3E: 3C 74 cmp al, 't' 0C40: 0F 84 DE 00 jz .loader_timeout 0C44: 3C 64 cmp al, 'd' 0C46: 75 ED jnz .get_next_str 0C48: 89 CB mov bx, cx 0C4A: 89 F8 mov ax, di 0C4C: BE BB 07 mov si, parse_l_default 0C4F: B9 07 00 mov cx, parse_l_default_e - parse_l_default 0C52: F3 repe 0C53: A6 cmpsb 0C54: 0F 85 3E FE jnz error.rest_value 0C58: 83 EB 07 sub bx, parse_l_default_e - parse_l_default 0C5B: 01 CB add bx, cx 0C5D: 89 D9 mov cx, bx 0C5F: F7 46 F8 01 00 test status_flag, flag_found_default 0C64: 74 08 jz .correct_is_not_set 0C66: BE 7A 01 mov si, found_equal_default 0C69: E8 D8 FB call printplain 0C6C: EB C7 jmp .get_next_str 0C6E: B8 20 3D mov ax, 0x3d20 0C71: F3 repe 0C72: AE scasb 0C73: 85 C9 test cx, cx 0C75: 0F 84 1C 01 jz .end_loader 0C79: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 0C7D: 75 B6 jnz .get_next_str 0C7F: F3 repe 0C80: AE scasb 0C81: 41 inc cx 0C82: 4F dec di 0C83: 89 CB mov bx, cx 0C85: 89 FA mov dx, di 0C87: 26 8A 05 mov al, byte [ es : di ] 0C8A: 47 inc di 0C8B: 49 dec cx 0C8C: 85 C9 test cx, cx 0C8E: 0F 84 0B FE jz error.error_get_size_d_sect 0C92: 3C 20 cmp al, ' ' 0C94: 74 F1 jz @b 0C96: 3C 0D cmp al, 0xd 0C98: 74 04 jz .found_size_d_sect 0C9A: 3C 0A cmp al, 0xa 0C9C: 75 E9 jnz @b 0C9E: 41 inc cx 0C9F: 89 D8 mov ax, bx 0CA1: 29 CB sub bx, cx 0CA3: 89 5E FA mov save_cx_d, bx 0CA6: 89 D7 mov di, dx 0CA8: 89 D9 mov cx, bx 0CAA: 89 C3 mov bx, ax 0CAC: 89 D0 mov ax, dx 0CAE: BE AC 07 mov si, parse_loader 0CB1: 46 inc si 0CB2: F3 repe 0CB3: A6 cmpsb 0CB4: 75 03 jnz .check_section 0CB6: E9 F2 FD jmp error.default_eq_loader 0CB9: 89 D9 mov cx, bx 0CBB: 89 C7 mov di, ax 0CBD: 89 FE mov si, di 0CBF: 57 push di 0CC0: 51 push cx 0CC1: 8B 4E FE mov cx, save_cx 0CC4: C4 3E C5 0A les di, dword [ file_data ] 0CC8: 26 8A 05 mov al, byte [ es : di ] 0CCB: 68 DB 0C push word .first_ret_d 0CCE: 3C 20 cmp al, ' ' 0CD0: 74 03 jz .first_sp_1_d 0CD2: E9 C1 FB jmp get_firs_sym.not_space 0CD5: E9 B3 FB jmp get_firs_sym.first_sp 0CD8: E8 98 FB call get_firs_sym 0CDB: E3 38 jcxz .correct_exit 0CDD: 3C 5B cmp al, '[' 0CDF: 74 02 jz .found_sect_d 0CE1: EB F5 jmp .start_d 0CE3: 89 CB mov bx, cx 0CE5: 89 F8 mov ax, di 0CE7: 56 push si 0CE8: 8B 4E FA mov cx, save_cx_d 0CEB: 06 push es 0CEC: 1F pop ds 0CED: 47 inc di 0CEE: F3 repe 0CEF: A6 cmpsb 0CF0: 0E push cs 0CF1: 1F pop ds 0CF2: 5E pop si 0CF3: 75 1A jnz .not_compare_d_s 0CF5: 26 80 3D 5D cmp byte [ es : di ], ']' 0CF9: 75 14 jnz .not_compare_d_s 0CFB: 83 4E F8 01 or status_flag, flag_found_default 0CFF: 59 pop cx 0D00: 5F pop di 0D01: 89 46 F4 mov point_default, ax 0D04: 60 pusha 0D05: BE 96 04 mov si, lm_lf_default_f 0D08: E8 39 FB call printplain 0D0B: 61 popa 0D0C: E9 26 FF jmp .get_next_str 0D0F: 89 D9 mov cx, bx 0D11: 89 C7 mov di, ax 0D13: EB C3 jmp .start_d 0D15: 59 pop cx 0D16: 5F pop di 0D17: 60 pusha 0D18: BE 58 04 mov si, lm_lf_default 0D1B: E8 26 FB call printplain 0D1E: 61 popa 0D1F: E9 13 FF jmp .get_next_str 0D22: 89 CB mov bx, cx 0D24: 89 F8 mov ax, di 0D26: BE B4 07 mov si, parse_l_timeout 0D29: B9 07 00 mov cx, parse_l_timeout_e - parse_l_timeout 0D2C: F3 repe 0D2D: A6 cmpsb 0D2E: 0F 85 64 FD jnz error.rest_value 0D32: 83 EB 07 sub bx, parse_l_timeout_e - parse_l_timeout 0D35: 01 CB add bx, cx 0D37: 89 D9 mov cx, bx 0D39: F7 46 F8 02 00 test status_flag, flag_found_timeout 0D3E: 74 09 jz .correct_is_not_set_t 0D40: BE B0 01 mov si, found_equal_timeout 0D43: E8 FE FA call printplain 0D46: E9 EC FE jmp .get_next_str 0D49: B8 20 3D mov ax, 0x3d20 0D4C: F3 repe 0D4D: AE scasb 0D4E: E3 35 jcxz .timeout_sec_end_d 0D50: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 0D54: 0F 85 DD FE jnz .get_next_str 0D58: F3 repe 0D59: AE scasb 0D5A: 41 inc cx 0D5B: 4F dec di 0D5C: 51 push cx 0D5D: 31 DB xor bx, bx 0D5F: B9 02 00 mov cx, 2 0D62: 26 8A 05 mov al, byte [ es : di ] 0D65: 3C 30 cmp al, '0' 0D67: 72 0B jb .end_get_val_t 0D69: 3C 39 cmp al, '9' 0D6B: 77 07 ja .end_get_val_t 0D6D: 6B DB 0A imul bx, 10 0D70: 34 30 xor al, 0x30 0D72: 00 C3 add bl, al 0D74: 47 inc di 0D75: E2 EB loop @b 0D77: 89 1E D2 1A mov word [ value_timeout ], bx 0D7B: 60 pusha 0D7C: BE 47 04 mov si, lm_lf_timeout 0D7F: E8 C2 FA call printplain 0D82: 61 popa 0D83: EB 0C jmp @f 0D85: C7 06 D2 1A 05 00 mov word [ value_timeout ], default_timeout_value 0D8B: BE E6 01 mov si, set_default_timeout_val 0D8E: E8 B3 FA call printplain 0D91: 59 pop cx 0D92: E9 A0 FE jmp .get_next_str 0D95: 60 pusha 0D96: BE AD 04 mov si, lm_l_end 0D99: E8 A8 FA call printplain 0D9C: 61 popa 0D9D: 31 C0 xor ax, ax 0D9F: CD 16 int 16h 0DA1: 60 pusha 0DA2: A1 D2 1A mov ax, word [ value_timeout ] 0DA5: B9 0A 00 mov cx, 0x0a 0DA8: BF 07 04 mov di, show_db1 0DAB: 66 C7 05 20 20 20 20 mov dword [ ds : di ], ' ' 0DB2: C7 45 04 20 20 mov word [ ds : di + 4 ], ' ' 0DB7: E8 6B FA call decode 0DBA: BE 07 04 mov si, show_db1 0DBD: E8 84 FA call printplain 0DC0: 61 popa 0DC1: 85 C0 test ax, ax 0DC3: 0F 84 53 03 jz .parse_run_only 0DC7: 60 pusha 0DC8: BE C5 04 mov si, show_all_sect 0DCB: E8 76 FA call printplain 0DCE: 61 popa 0DCF: B0 F6 mov al, 0xf6 0DD1: E6 60 out 0x60, al 0DD3: 31 C9 xor cx, cx 0DD5: E4 64 in al, 64h 0DD7: 24 02 and al, 00000010b 0DD9: E0 FA loopnz .wait_loop 0DDB: B0 F3 mov al, 0xf3 0DDD: E6 60 out 0x60, al 0DDF: 31 C9 xor cx, cx 0DE1: E4 64 in al, 64h 0DE3: A8 02 test al, 2 0DE5: E0 FA loopnz @b 0DE7: B0 00 mov al, 0 0DE9: E6 60 out 0x60, al 0DEB: 31 C9 xor cx, cx 0DED: E4 64 in al, 64h 0DEF: A8 02 test al, 2 0DF1: E0 FA loopnz @b 0DF3: E8 E9 FB call gettime 0DF6: 66 A3 D8 1A mov dword [ start_timer ], eax 0DFA: C7 06 DC 1A EA 09 mov word [ timer_ ], newtimer 0E00: 8C 0E DE 1A mov word [ timer_ + 2 ], cs 0E04: FA cli 0E05: 6A 00 push 0 0E07: 07 pop es 0E08: 26 66 FF 36 20 00 push dword [ es : 8 * 4 ] 0E0E: 66 8F 06 D4 1A pop dword [ old_timer ] 0E13: 66 FF 36 DC 1A push dword [ timer_ ] 0E18: 26 66 8F 06 20 00 pop dword [ es : 8 * 4 ] 0E1E: FB sti 0E1F: C7 46 BE 12 00 mov save_descript_size, 18 0E24: 31 C0 xor ax, ax 0E26: B8 20 07 mov ax, 0x0720 0E29: 68 00 B8 push 0xb800 0E2C: 07 pop es 0E2D: 31 FF xor di, di 0E2F: B9 D0 07 mov cx, 25 * 80 0E32: F3 rep 0E33: AB stosw 0E34: BF A4 00 mov di, 164 0E37: BE 03 00 mov si, version 0E3A: B9 19 00 mov cx, version_end - version 0E3D: B4 0E mov ah, color_sym_yellow 0E3F: AC lodsb 0E40: AB stosw 0E41: E2 FC loop @b 0E43: BF 1E 01 mov di, 286 0E46: B4 0C mov ah, color_sym_pink 0E48: B0 4B mov al, 'K' 0E4A: AB stosw 0E4B: B0 20 mov al, ' ' 0E4D: AB stosw 0E4E: B4 07 mov ah, color_sym_lightgray 0E50: BE 3F 00 mov si, soft_mes 0E53: B9 0D 00 mov cx, soft_mes_end - soft_mes 0E56: AC lodsb 0E57: AB stosw 0E58: E2 FC loop @b 0E5A: BF E0 01 mov di, 480 0E5D: B4 0E mov ah, color_sym_yellow 0E5F: B0 C4 mov al, 'Ä' 0E61: B9 3D 00 mov cx, 61 0E64: F3 rep 0E65: AB stosw 0E66: BF 24 03 mov di, 804 0E69: BE 1C 00 mov si, select_section 0E6C: B9 0F 00 mov cx, select_section_end - select_section 0E6F: B4 07 mov ah, color_sym_lightgray 0E71: AC lodsb 0E72: AB stosw 0E73: E2 FC loop @b 0E75: BF 70 03 mov di, 880 0E78: BE 2B 00 mov si, section_description 0E7B: B9 14 00 mov cx, section_description_end - section_description 0E7E: AC lodsb 0E7F: AB stosw 0E80: E2 FC loop @b 0E82: 8B 4E FE mov cx, save_cx 0E85: C4 3E C5 0A les di, dword [ file_data ] 0E89: 89 FE mov si, di 0E8B: 89 CB mov bx, cx 0E8D: BA 12 00 mov dx, size_show_section 0E90: 26 8A 05 mov al, byte [ es : di ] 0E93: 68 B9 0E push word .first_ret_bl_sc 0E96: 3C 20 cmp al, ' ' 0E98: 74 03 jz .first_bl_sc 0E9A: E9 F9 F9 jmp get_firs_sym.not_space 0E9D: E9 EB F9 jmp get_firs_sym.first_sp 0EA0: E8 D0 F9 call get_firs_sym 0EA3: 85 C9 test cx, cx 0EA5: 0F 84 09 FC jz error.correct_exit_bl 0EA9: 3C 5B cmp al, '[' 0EAB: 75 F3 jnz .start_hbl 0EAD: 89 FE mov si, di 0EAF: 89 CB mov bx, cx 0EB1: BA 12 00 mov dx, size_show_section 0EB4: EB 09 jmp .analisist_al 0EB6: E8 BA F9 call get_firs_sym 0EB9: 85 C9 test cx, cx 0EBB: 0F 84 F3 FB jz error.correct_exit_bl 0EBF: 3C 5B cmp al, '[' 0EC1: 75 F3 jnz .start_bl 0EC3: 3B 7E F6 cmp di, point_loader 0EC6: 74 EE jz .start_bl 0EC8: 3B 7E F4 cmp di, point_default 0ECB: 74 05 jz .save_point_def 0ECD: 4A dec dx 0ECE: 75 E6 jnz .start_bl 0ED0: EB CE jmp .start_hbl 0ED2: 89 F7 mov di, si 0ED4: 89 D9 mov cx, bx 0ED6: 8D 76 F2 lea si, point_to_hframe 0ED9: BA 13 00 mov dx, size_show_section + 1 0EDC: 26 8A 05 mov al, byte [ es : di ] 0EDF: 68 EF 0E push word .first_ret_mfb 0EE2: 3C 20 cmp al, ' ' 0EE4: 74 03 jz .first_bl_mbf 0EE6: E9 AD F9 jmp get_firs_sym.not_space 0EE9: E9 9F F9 jmp get_firs_sym.first_sp 0EEC: E8 84 F9 call get_firs_sym 0EEF: E3 13 jcxz .val_buff_comp 0EF1: 3C 5B cmp al, '[' 0EF3: 75 F7 jnz .start_mfb 0EF5: 3B 7E F6 cmp di, point_loader 0EF8: 74 F2 jz .start_mfb 0EFA: 89 3C mov [ si ], di 0EFC: 83 EE 02 sub si, 2 0EFF: 4A dec dx 0F00: 75 EA jnz .start_mfb 0F02: EB 08 jmp @f 0F04: FF 76 FE push save_cx 0F07: 8F 04 pop word [ si ] 0F09: 83 EE 02 sub si, 2 0F0C: 83 C6 04 add si, 4 0F0F: 89 76 C8 mov point_to_eframe, si 0F12: E8 42 FB call show_bl_sc_sect 0F15: 8D 76 F2 lea si, point_to_hframe 0F18: BF 22 03 mov di, 962 - 160 0F1B: 8B 46 F4 mov ax, point_default 0F1E: B9 12 00 mov cx, size_show_section 0F21: 8B 1C mov bx, [ si ] 0F23: 81 C7 A0 00 add di, 160 0F27: 39 C3 cmp bx, ax 0F29: 74 05 jz .show_cursor_activ 0F2B: 83 EE 02 sub si, 2 0F2E: E2 F1 loop .home_show_cur 0F30: 89 76 CA mov point_to_point_def, si 0F33: B8 10 04 mov ax, ( color_sym_red * 0x100 + 0x10 ) 0F36: AB stosw 0F37: 83 C7 44 add di, 68 0F3A: 40 inc ax 0F3B: AB stosw 0F3C: 8B 7E F4 mov di, point_default 0F3F: 68 00 20 push ini_data_ 0F42: 8B 76 CA mov si, point_to_point_def 0F45: 07 pop es 0F46: 83 EE 02 sub si, 2 0F49: 8B 0C mov cx, [ si ] 0F4B: 29 F9 sub cx, di 0F4D: E8 23 F9 call get_firs_sym 0F50: 85 C9 test cx, cx 0F52: 0F 84 91 00 jz .exit?0Pz 0F56: 3C 64 cmp al, 'd' 0F58: 75 F3 jnz .start_p_sh_d?0Py 0F5A: 89 CB mov bx, cx 0F5C: 89 F8 mov ax, di 0F5E: BE C5 07 mov si, parse_descript 0F61: B9 08 00 mov cx, parse_descript_e - parse_descript 0F64: F3 repe 0F65: A6 cmpsb 0F66: 75 78 jnz .rest_value_loop_sh_d?0Q0 0F68: 83 EB 08 sub bx, parse_descript_e - parse_descript 0F6B: 01 CB add bx, cx 0F6D: 89 D9 mov cx, bx 0F6F: B8 20 3D mov ax, 0x3d20 0F72: F3 repe 0F73: AE scasb 0F74: E3 6A jcxz .rest_value_loop_sh_d?0Q0 0F76: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 0F7A: 75 64 jnz .rest_value_loop_sh_d?0Q0 0F7C: F3 repe 0F7D: AE scasb 0F7E: 41 inc cx 0F7F: 4F dec di 0F80: 57 push di 0F81: 5E pop si 0F82: 06 push es 0F83: 1F pop ds 0F84: 68 00 B8 push 0xb800 0F87: 07 pop es 0F88: BF 10 04 mov di, 1040 0F8B: BB 12 00 mov bx, 18 0F8E: 89 7E C6 mov find_sec_di, di 0F91: 89 5E FA mov save_cx_d, bx 0F94: 57 push di 0F95: 31 C0 xor ax, ax 0F97: B9 26 00 mov cx, 38 0F9A: 57 push di 0F9B: F3 rep 0F9C: AB stosw 0F9D: 5F pop di 0F9E: 39 5E BE cmp save_descript_size, bx 0FA1: 74 07 jz @f 0FA3: 81 C7 A0 00 add di, 160 0FA7: 4B dec bx 0FA8: 75 ED jnz @b 0FAA: 5F pop di 0FAB: AC lodsb 0FAC: B4 0A mov ah, color_sym_lettuce 0FAE: 3C 22 cmp al, '"' 0FB0: 74 04 jz .loop_message?0Q2 0FB2: 3C 27 cmp al, ''' 0FB4: 75 20 jnz .end_sh_desc_sec?0Q1 0FB6: B9 26 00 mov cx, 38 0FB9: AC lodsb 0FBA: 3C 22 cmp al, '"' 0FBC: 74 18 jz .end_sh_desc_sec?0Q1 0FBE: 3C 27 cmp al, ''' 0FC0: 74 14 jz .end_sh_desc_sec?0Q1 0FC2: AB stosw 0FC3: E2 F4 loop @b 0FC5: 81 46 C6 A0 00 add find_sec_di, 160 0FCA: 8B 7E C6 mov di, find_sec_di 0FCD: FF 4E FA dec save_cx_d 0FD0: 83 7E FA 00 cmp save_cx_d, 0 0FD4: 75 E0 jnz .loop_message?0Q2 0FD6: FF 76 FA push save_cx_d 0FD9: 8F 46 BE pop save_descript_size 0FDC: 0E push cs 0FDD: 1F pop ds 0FDE: EB 07 jmp .exit?0Pz 0FE0: 89 C7 mov di, ax 0FE2: 89 D9 mov cx, bx 0FE4: E9 66 FF jmp .start_p_sh_d?0Py 0FE7: 66 A1 D4 1A mov eax, dword [ old_timer ] 0FEB: 66 3B 06 DC 1A cmp eax, dword [ timer_ ] 0FF0: 74 5E jz .interrupt_16 0FF2: 31 C0 xor ax, ax 0FF4: BF 20 0D mov di, 3360 0FF7: B9 40 01 mov cx, 80 * 4 0FFA: F3 rep 0FFB: AB stosw 0FFC: BF 22 0D mov di, 3362 0FFF: B4 0C mov ah, color_sym_pink 1001: B0 DA mov al, 0xDA 1003: AB stosw 1004: B0 C4 mov al, 0xc4 1006: B9 4C 00 mov cx, 76 1009: F3 rep 100A: AB stosw 100B: B0 BF mov al, 0xBF 100D: AB stosw 100E: 83 C7 04 add di, 4 1011: B0 B3 mov al, 0xb3 1013: AB stosw 1014: 81 C7 98 00 add di, 152 1018: AB stosw 1019: 83 C7 04 add di, 4 101C: AB stosw 101D: 81 C7 98 00 add di, 152 1021: AB stosw 1022: 83 C7 04 add di, 4 1025: B0 C0 mov al, 0xc0 1027: AB stosw 1028: B0 C4 mov al, 0xc4 102A: B9 4C 00 mov cx, 76 102D: F3 rep 102E: AB stosw 102F: B0 D9 mov al, 0xd9 1031: AB stosw 1032: BE 2E 03 mov si, start_msg 1035: B9 4A 00 mov cx, start_msg_e - start_msg 1038: BF C6 0D mov di, 3526 103B: AC lodsb 103C: AB stosw 103D: E2 FC loop @b 103F: 83 C7 2C add di, 44 1042: BE 78 03 mov si, time_msg 1045: B9 2D 00 mov cx, time_msg_e - time_msg 1048: AC lodsb 1049: AB stosw 104A: E2 FC loop @b 104C: 89 26 E0 1A mov word [ start_stack ], sp 1050: 31 C0 xor ax, ax 1052: CD 16 int 0x16 1054: 66 8B 1E D4 1A mov ebx, dword [ old_timer ] 1059: 66 3B 1E DC 1A cmp ebx, dword [ timer_ ] 105E: 74 2A jz @f 1060: FA cli 1061: 6A 00 push 0 1063: 07 pop es 1064: 26 66 89 1E 20 00 mov [ es : 8 * 4 ], ebx 106A: 66 89 1E DC 1A mov dword [ timer_ ], ebx 106F: FB sti 1070: 50 push ax 1071: 68 00 B8 push 0xb800 1074: 07 pop es 1075: 31 C0 xor ax, ax 1077: B8 20 07 mov ax, 0x0720 107A: BF 20 0D mov di, 3360 107D: B9 40 01 mov cx, 80 * 4 1080: F3 rep 1081: AB stosw 1082: 68 00 20 push ini_data_ 1085: 07 pop es 1086: E8 CE F9 call show_bl_sc_sect 1089: 58 pop ax 108A: E8 23 F9 call clean_active_cursor 108D: 80 FC 48 cmp ah, 0x48 1090: 74 21 jz .up 1092: 80 FC 50 cmp ah, 0x50 1095: 74 3A jz .down 1097: 80 FC 49 cmp ah, 0x49 109A: 74 53 jz .pgup 109C: 80 FC 51 cmp ah, 0x51 109F: 74 5B jz .pgdown 10A1: 80 FC 47 cmp ah, 0x47 10A4: 74 63 jz .home 10A6: 80 FC 4F cmp ah, 0x4f 10A9: 74 66 jz .end 10AB: 3C 0D cmp al, 0xD 10AD: 0F 85 64 FE jnz .show_active_cursor 10B1: EB 6F jmp .end_show_all 10B3: 8B 76 CA mov si, point_to_point_def 10B6: 83 C6 02 add si, 2 10B9: 8D 46 F2 lea ax, point_to_hframe 10BC: 39 C6 cmp si, ax 10BE: 77 0B ja @f 10C0: 89 76 CA mov point_to_point_def, si 10C3: 8B 04 mov ax, [ si ] 10C5: 89 46 F4 mov point_default, ax 10C8: E9 4A FE jmp .show_active_cursor 10CB: E8 52 F8 call find_before_sect 10CE: E9 B1 FD jmp .show_all_scr 10D1: 8B 76 CA mov si, point_to_point_def 10D4: 8B 46 C8 mov ax, point_to_eframe 10D7: 83 EE 02 sub si, 2 10DA: 39 C6 cmp si, ax 10DC: 72 0B jb @f 10DE: 89 76 CA mov point_to_point_def, si 10E1: 8B 04 mov ax, [ si ] 10E3: 89 46 F4 mov point_default, ax 10E6: E9 2C FE jmp .show_active_cursor 10E9: E8 8D F8 call find_next_sect 10EC: E9 93 FD jmp .show_all_scr 10EF: B9 12 00 mov cx, size_show_section 10F2: 51 push cx 10F3: E8 2A F8 call find_before_sect 10F6: 59 pop cx 10F7: E2 F9 loop @b 10F9: E9 86 FD jmp .show_all_scr 10FC: B9 12 00 mov cx, size_show_section 10FF: 51 push cx 1100: E8 76 F8 call find_next_sect 1103: 59 pop cx 1104: E2 F9 loop @b 1106: E9 79 FD jmp .show_all_scr 1109: 31 FF xor di, di 110B: E8 79 F8 call find_next_sect.h 110E: E9 71 FD jmp .show_all_scr 1111: 8B 7E FE mov di, save_cx 1114: E8 0C F8 call find_before_sect.e 1117: E9 68 FD jmp .show_all_scr 111A: 60 pusha 111B: BE D7 04 mov si, no_show_only_w 111E: E8 23 F7 call printplain 1121: 61 popa 1122: 8B 7E F4 mov di, point_default 1125: 68 00 20 push ini_data_ 1128: 07 pop es 1129: 8B 76 CA mov si, point_to_point_def 112C: 83 EE 02 sub si, 2 112F: 8B 0C mov cx, [ si ] 1131: 31 C0 xor ax, ax 1133: 29 F9 sub cx, di 1135: 89 4E FA mov save_cx_d, cx 1138: 89 46 F8 mov status_flag, ax 113B: BE 2B 05 mov si, ramdiskFS_st 113E: E8 03 F7 call printplain 1141: 31 C0 xor ax, ax 1143: 89 46 C0 mov show_errors_sect, ax 1146: B4 88 mov ah, 0x88 1148: CD 15 int 0x15 114A: 73 02 jnc ._support_function_use_free_memory 114C: 31 C0 xor ax, ax 114E: 89 46 C2 mov free_ad_memory, ax 1151: 60 pusha 1152: 66 0F B7 C0 movzx eax, ax 1156: B9 0A 00 mov cx, 0x0a 1159: BF 46 05 mov di, free_memory_msg 115C: 66 C7 05 20 20 20 20 mov dword [ ds : di ], ' ' 1163: C7 45 04 20 20 mov word [ ds : di + 4 ], ' ' 1168: E8 BA F6 call decode 116B: BE 46 05 mov si, free_memory_msg 116E: E8 D3 F6 call printplain 1171: 61 popa 1172: 8B 7E F4 mov di, point_default 1175: 8B 4E FA mov cx, save_cx_d 1178: E8 F8 F6 call get_firs_sym 117B: 85 C9 test cx, cx 117D: 74 6E jz ._end_parse_RS?0k2 117F: 3C 52 cmp al, 'R' 1181: 75 F5 jnz .start_p_RS?0ju 1183: 89 CB mov bx, cx 1185: 89 F8 mov ax, di 1187: BE D9 07 mov si, parse_RamdiskSize 118A: B9 0B 00 mov cx, parse_RamdiskSize_e - parse_RamdiskSize 118D: F3 repe 118E: A6 cmpsb 118F: 75 4C jnz .rest_value_loop_RS?0jz 1191: 83 EB 0B sub bx, parse_RamdiskSize_e - parse_RamdiskSize 1194: 01 CB add bx, cx 1196: 89 D9 mov cx, bx 1198: F7 46 F8 02 00 test status_flag, flag_found_RS 119D: 74 00 jz .correct_is_not_set_RS?0jv 119F: B8 20 3D mov ax, 0x3d20 11A2: F3 repe 11A3: AE scasb 11A4: E3 3D jcxz .end_get_RS_ERROR_1?0k0 11A6: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 11AA: 75 CC jnz .start_p_RS?0ju 11AC: F3 repe 11AD: AE scasb 11AE: 41 inc cx 11AF: 4F dec di 11B0: 31 DB xor bx, bx 11B2: B9 05 00 mov cx, 5 11B5: 26 8A 05 mov al, byte [ es : di ] 11B8: 3C 30 cmp al, '0' 11BA: 72 04 jb .CS?0jw 11BC: 3C 39 cmp al, '9' 11BE: 76 06 jbe .correct_val_RS?0jx 11C0: 3C 4B cmp al, 'K' 11C2: 74 0C jz .correct_size_RS?0jy 11C4: EB 23 jmp .end_get_RS_ERROR_2?0k1 11C6: 6B DB 0A imul bx, 10 11C9: 34 30 xor al, 0x30 11CB: 00 C3 add bl, al 11CD: 47 inc di 11CE: E2 E5 loop @b 11D0: 85 DB test bx, bx 11D2: 75 07 jnz @f 11D4: 83 4E C0 04 or show_errors_sect, show_error_3 11D8: BB 40 00 mov bx, 64 11DB: EB 10 jmp ._end_parse_RS?0k2 11DD: 89 C7 mov di, ax 11DF: 89 D9 mov cx, bx 11E1: EB 95 jmp .start_p_RS?0ju 11E3: 83 4E C0 01 or show_errors_sect, show_error_1 11E7: EB 04 jmp ._end_parse_RS?0k2 11E9: 83 4E C0 02 or show_errors_sect, show_error_2 11ED: 60 pusha 11EE: 66 0F B7 C3 movzx eax, bx 11F2: B9 0A 00 mov cx, 0x0a 11F5: BF 71 05 mov di, RamdiskSize_msg 11F8: 66 C7 05 20 20 20 20 mov dword [ ds : di ], ' ' 11FF: C7 45 04 20 20 mov word [ ds : di + 4 ], ' ' 1204: E8 1E F6 call decode 1207: BE 71 05 mov si, RamdiskSize_msg 120A: E8 37 F6 call printplain 120D: 61 popa 120E: 39 5E C2 cmp free_ad_memory, bx 1211: 0F 86 80 07 jbe ._not_memory_in_sys?0iL 1215: 66 0F B7 C3 movzx eax, bx 1219: 66 C1 E0 0A shl eax, 10 121D: 66 89 46 BA mov save_ramdisksize, eax 1221: 8B 7E F4 mov di, point_default 1224: 8B 4E FA mov cx, save_cx_d 1227: E8 49 F6 call get_firs_sym 122A: 85 C9 test cx, cx 122C: 0F 84 5D 07 jz ._end_parse_FRS 1230: 3C 52 cmp al, 'R' 1232: 75 F3 jnz .start_g_tpe_RFS 1234: 89 CB mov bx, cx 1236: 89 F8 mov ax, di 1238: BE E4 07 mov si, parse_RamdiskFS 123B: B9 09 00 mov cx, parse_RamdiskFS_e - parse_RamdiskFS 123E: F3 repe 123F: A6 cmpsb 1240: 0F 85 38 07 jnz .start_g_tpe_RFS_rest_v 1244: 83 EB 09 sub bx, parse_RamdiskFS_e - parse_RamdiskFS 1247: 01 CB add bx, cx 1249: 89 D9 mov cx, bx 124B: F7 46 F8 04 00 test status_flag, flag_found_GTRFMS 1250: 74 00 jz .correct_is_not_set_FRS 1252: B8 20 3D mov ax, 0x3d20 1255: F3 repe 1256: AE scasb 1257: 85 C9 test cx, cx 1259: 0F 84 26 07 jz .end_get_FRS_ERROR_1 125D: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 1261: 75 C4 jnz .start_g_tpe_RFS 1263: F3 repe 1264: AE scasb 1265: 41 inc cx 1266: 4F dec di 1267: 89 CB mov bx, cx 1269: 89 F8 mov ax, di 126B: BE 08 08 mov si, parse_RFS_FAT 126E: B9 03 00 mov cx, parse_RFS_FAT_e - parse_RFS_FAT 1271: F3 repe 1272: A6 cmpsb 1273: 0F 85 F7 06 jnz .krfs_cmp 1277: 8B 7E F4 mov di, point_default 127A: 8B 4E FA mov cx, save_cx_d 127D: E8 F3 F5 call get_firs_sym 1280: 85 C9 test cx, cx 1282: 74 54 jz .end_RamdiskSector 1284: 3C 52 cmp al, 'R' 1286: 75 F5 jnz .start_RamdiskSector 1288: 89 CB mov bx, cx 128A: 89 F8 mov ax, di 128C: BE ED 07 mov si, parse_RamdiskSector 128F: B9 0D 00 mov cx, parse_RamdiskSector_e - parse_RamdiskSector 1292: F3 repe 1293: A6 cmpsb 1294: 75 3C jnz .RamdiskSector_rest_val 1296: 83 EB 0D sub bx, parse_RamdiskSector_e - parse_RamdiskSector 1299: 01 CB add bx, cx 129B: 89 D9 mov cx, bx 129D: F7 46 F8 08 00 test status_flag, flag_found_RamdiskSector 12A2: 74 00 jz .correct_is_not_set_RamdiskSector 12A4: B8 20 3D mov ax, 0x3d20 12A7: F3 repe 12A8: AE scasb 12A9: E3 2D jcxz .end_get_RamS_ERROR_1 12AB: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 12AF: 75 CC jnz .start_RamdiskSector 12B1: F3 repe 12B2: AE scasb 12B3: 41 inc cx 12B4: 4F dec di 12B5: 31 DB xor bx, bx 12B7: B9 04 00 mov cx, 4 12BA: 26 0F B6 05 movzx ax, byte [ es : di ] 12BE: 3C 30 cmp al, '0' 12C0: 72 16 jb .end_RamdiskSector 12C2: 3C 39 cmp al, '9' 12C4: 77 12 ja .end_RamdiskSector 12C6: 6B DB 0A imul bx, 10 12C9: 34 30 xor al, 0x30 12CB: 01 C3 add bx, ax 12CD: 47 inc di 12CE: E2 EA loop @b 12D0: EB 06 jmp .end_RamdiskSector 12D2: 89 D9 mov cx, bx 12D4: 89 C7 mov di, ax 12D6: EB A5 jmp .start_RamdiskSector 12D8: 89 D8 mov ax, bx 12DA: 60 pusha 12DB: 66 0F B7 C3 movzx eax, bx 12DF: B9 0A 00 mov cx, 0x0a 12E2: BF 8E 05 mov di, RamdiskSector_msg 12E5: 66 C7 05 20 20 20 20 mov dword [ ds : di ], ' ' 12EC: 66 C7 45 04 20 20 20 20 mov dword [ ds : di + 4 ], ' ' 12F4: E8 2E F5 call decode 12F7: BE 8E 05 mov si, RamdiskSector_msg 12FA: E8 47 F5 call printplain 12FD: 61 popa 12FE: 3D 00 10 cmp ax, 4096 1301: 77 04 ja .RS1?0sn 1303: 85 C0 test ax, ax 1305: 75 06 jnz @f 1307: C7 06 87 1A 00 02 mov word [ fat12_buffer.BPB_BytsPerSec ], 512 130D: A3 87 1A mov word [ fat12_buffer.BPB_BytsPerSec ], ax 1310: 8B 7E F4 mov di, point_default 1313: 8B 4E FA mov cx, save_cx_d 1316: E8 5A F5 call get_firs_sym 1319: 85 C9 test cx, cx 131B: 74 47 jz .end_RamdiskCluster 131D: 3C 52 cmp al, 'R' 131F: 75 F5 jnz .start_RamdiskCluster 1321: 89 CB mov bx, cx 1323: 89 F8 mov ax, di 1325: BE FA 07 mov si, parse_RamdiskCluster 1328: B9 0E 00 mov cx, parse_RamdiskCluster_e - parse_RamdiskCluster 132B: F3 repe 132C: A6 cmpsb 132D: 75 2F jnz .RamdiskCluster_rest_val 132F: 83 EB 0E sub bx, parse_RamdiskCluster_e - parse_RamdiskCluster 1332: 01 CB add bx, cx 1334: 89 D9 mov cx, bx 1336: F7 46 F8 16 00 test status_flag, flag_found_RamdiskCluster 133B: 74 00 jz .correct_is_not_set_RamdiskCluster 133D: B8 20 3D mov ax, 0x3d20 1340: F3 repe 1341: AE scasb 1342: E3 20 jcxz .end_get_RamSC_ERROR_1 1344: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 1348: 75 CC jnz .start_RamdiskCluster 134A: F3 repe 134B: AE scasb 134C: 41 inc cx 134D: 4F dec di 134E: 26 0F B6 05 movzx ax, byte [ es : di ] 1352: 3C 30 cmp al, '0' 1354: 72 0E jb .end_RamdiskCluster 1356: 3C 39 cmp al, '9' 1358: 77 0A ja .end_RamdiskCluster 135A: 34 30 xor al, 0x30 135C: EB 06 jmp .end_RamdiskCluster 135E: 89 D9 mov cx, bx 1360: 89 C7 mov di, ax 1362: EB B2 jmp .start_RamdiskCluster 1364: 60 pusha 1365: B9 0A 00 mov cx, 0x0a 1368: BF AA 05 mov di, RamdiskCluster_msg 136B: E8 B7 F4 call decode 136E: BE AA 05 mov si, RamdiskCluster_msg 1371: E8 D0 F4 call printplain 1374: 61 popa 1375: 3C 80 cmp al, 128 1377: 77 6B ja @f 1379: A2 89 1A mov byte [ fat12_buffer.BPB_SecPerClus ], al 137C: 66 0F B7 06 87 1A movzx eax, word [ fat12_buffer.BPB_BytsPerSec ] 1382: 66 0F B6 1E 89 1A movzx ebx, byte [ fat12_buffer.BPB_SecPerClus ] 1388: 66 0F AF D8 imul ebx, eax 138C: 66 8B 46 BA mov eax, save_ramdisksize 1390: 66 99 cdq 1392: 66 F7 FB idiv ebx 1395: 66 3D F5 0F 00 00 cmp eax, 4085 139B: 0F 82 8E 00 jb .fat12?0so 139F: 66 3D F5 FF 00 00 cmp eax, 65525 13A5: 72 18 jb .fat16?0sp 13A7: C7 46 B4 20 00 mov set_ramfs, 32 13AC: C7 06 8A 1A 20 00 mov word [ fat12_buffer.BPB_RsvdSecCnt ], 32 13B2: 66 31 C0 xor eax, eax 13B5: A3 8D 1A mov word [ fat12_buffer.BPB_RootEntCnt ], ax 13B8: A3 8F 1A mov word [ fat12_buffer.BPB_TotSec16 ], ax 13BB: 66 A3 9C 1A mov dword [ fat12_buffer.BPB_TotSec32 ], eax 13BF: EB FE jmp $ 13C1: C7 46 B4 10 00 mov set_ramfs, 16 13C6: 66 0F B6 1E 89 1A movzx ebx, byte [ fat12_buffer.BPB_SecPerClus ] 13CC: 66 0F AF C3 imul eax, ebx 13D0: 66 3D 00 00 01 00 cmp eax, 0x10000 13D6: 73 0C jae @f 13D8: A3 8F 1A mov word [ fat12_buffer.BPB_TotSec16 ], ax 13DB: 66 C7 06 9C 1A 00 00 00 00 mov dword [ fat12_buffer.BPB_TotSec32 ], 0 13E4: 66 B8 E0 00 00 00 mov eax, root_dir_entry_count 13EA: A3 8D 1A mov word [ fat12_buffer.BPB_RootEntCnt ], ax 13ED: 66 0F B7 1E 87 1A movzx ebx, word [ fat12_buffer.BPB_BytsPerSec ] 13F3: 66 6B C0 20 imul eax, 32 13F7: 66 01 D8 add eax, ebx 13FA: 66 48 dec eax 13FC: 66 99 cdq 13FE: 66 F7 FB idiv ebx 1401: 66 0F B7 1E 8A 1A movzx ebx, word [ fat12_buffer.BPB_RsvdSecCnt ] 1407: 66 01 C3 add ebx, eax 140A: 66 0F B7 06 8F 1A movzx eax, word [ fat12_buffer.BPB_TotSec16 ] 1410: 66 29 D8 sub eax, ebx 1413: 66 C1 E7 08 shl edi, 8 1417: 66 0F B6 0E 8C 1A movzx ecx, byte [ fat12_buffer.BPB_NumFATs ] 141D: 66 01 CF add edi, ecx 1420: 66 01 F8 add eax, edi 1423: 66 48 dec eax 1425: 66 99 cdq 1427: 66 F7 FF idiv edi 142A: A3 92 1A mov word [ fat12_buffer.BPB_FATSz16 ], ax 142D: C7 46 B4 0C 00 mov set_ramfs, 12 1432: 66 0F B6 1E 89 1A movzx ebx, byte [ fat12_buffer.BPB_SecPerClus ] 1438: 66 0F AF C3 imul eax, ebx 143C: 66 3D 00 00 01 00 cmp eax, 0x10000 1442: 73 0C jae @f 1444: A3 8F 1A mov word [ fat12_buffer.BPB_TotSec16 ], ax 1447: 66 C7 06 9C 1A 00 00 00 00 mov dword [ fat12_buffer.BPB_TotSec32 ], 0 1450: 66 B8 E0 00 00 00 mov eax, root_dir_entry_count 1456: A3 8D 1A mov word [ fat12_buffer.BPB_RootEntCnt ], ax 1459: 66 0F B7 06 8F 1A movzx eax, word [ fat12_buffer.BPB_TotSec16 ] 145F: 66 6B C0 0C imul eax, 12 1463: 66 C1 E8 03 shr eax, 3 1467: 66 0F B7 1E 87 1A movzx ebx, word [ fat12_buffer.BPB_BytsPerSec ] 146D: 66 99 cdq 146F: 66 F7 FB idiv ebx 1472: 40 inc ax 1473: A3 92 1A mov word [ fat12_buffer.BPB_FATSz16 ], ax 1476: A1 92 1A mov ax, word [ fat12_buffer.BPB_FATSz16 ] 1479: 0F B6 1E 8C 1A movzx bx, byte [ fat12_buffer.BPB_NumFATs ] 147E: 0F AF C3 imul ax, bx 1481: 8B 1E 8D 1A mov bx, word [ fat12_buffer.BPB_RootEntCnt ] 1485: C1 EB 04 shr bx, 4 1488: 01 D8 add ax, bx 148A: 89 5E B0 mov size_root_dir, bx 148D: 0F B6 1E 8A 1A movzx bx, byte [ fat12_buffer.BPB_RsvdSecCnt ] 1492: 01 D8 add ax, bx 1494: 89 46 AE mov firstDataSect, ax 1497: 8B 1E 8F 1A mov bx, word [ fat12_buffer.BPB_TotSec16 ] 149B: 29 C3 sub bx, ax 149D: 89 D8 mov ax, bx 149F: 0F B6 1E 89 1A movzx bx, byte [ fat12_buffer.BPB_SecPerClus ] 14A4: 99 cwd 14A5: F7 FB idiv bx 14A7: 89 46 AC mov DataClasters, ax 14AA: 60 pusha 14AB: 8B 46 AE mov ax, firstDataSect 14AE: B9 0A 00 mov cx, 0x0a 14B1: BF 44 06 mov di, firstDataSect_msg 14B4: E8 6E F3 call decode 14B7: BE 44 06 mov si, firstDataSect_msg 14BA: E8 87 F3 call printplain 14BD: 8B 46 B0 mov ax, size_root_dir 14C0: B9 0A 00 mov cx, 0x0a 14C3: BF 79 06 mov di, size_root_dir_msg 14C6: E8 5C F3 call decode 14C9: BE 79 06 mov si, size_root_dir_msg 14CC: E8 75 F3 call printplain 14CF: 8B 46 AC mov ax, DataClasters 14D2: B9 0A 00 mov cx, 0x0a 14D5: BF 9B 06 mov di, DataClasters_msg 14D8: E8 4A F3 call decode 14DB: BE 9B 06 mov si, DataClasters_msg 14DE: E8 63 F3 call printplain 14E1: 61 popa 14E2: A0 91 1A mov al, byte [ fat12_buffer.BPB_Media ] 14E5: 1E push ds 14E6: 8B 7E C4 mov di, info_real_mode_size 14E9: 81 C7 00 10 add di, 0x1000 14ED: 57 push di 14EE: 31 FF xor di, di 14F0: 89 7E AA mov point_to_free_root, di 14F3: 1F pop ds 14F4: 88 05 mov byte [ di ], al 14F6: 83 C8 FF or ax, - 1 14F9: 47 inc di 14FA: 89 05 mov word [ di ], ax 14FC: 1F pop ds 14FD: C7 46 B2 03 00 mov point_next_fat_str, 3 1502: 60 pusha 1503: 8B 46 B2 mov ax, point_next_fat_str 1506: B9 0A 00 mov cx, 0x0a 1509: BF DA 05 mov di, fat_create_msg 150C: E8 16 F3 call decode 150F: BE DA 05 mov si, fat_create_msg 1512: E8 2F F3 call printplain 1515: 61 popa 1516: B8 7C 1A mov ax, fat12_buffer 1519: BE 3C 1A mov si, table_15_87 151C: 01 44 12 add word [ si + 8 * 2 + 2 ], ax 151F: 06 push es 1520: 1E push ds 1521: 07 pop es 1522: B9 1F 00 mov cx, 31 1525: B4 87 mov ah, 0x87 1527: CD 15 int 0x15 1529: 07 pop es 152A: 60 pusha 152B: 8B 44 12 mov ax, word [ si + 8 * 2 + 2 ] 152E: B9 0A 00 mov cx, 0x0a 1531: BF 0E 06 mov di, BPB_msg 1534: E8 EE F2 call decode 1537: BE 0E 06 mov si, BPB_msg 153A: E8 07 F3 call printplain 153D: 61 popa 153E: 8B 7E F4 mov di, point_default 1541: 8B 4E FA mov cx, save_cx_d 1544: C7 46 A6 00 00 mov data_offset, 0 1549: E8 27 F3 call get_firs_sym 154C: 85 C9 test cx, cx 154E: 0F 84 B3 03 jz ._end?1D2 1552: 3C 52 cmp al, 'R' 1554: 75 F3 jnz .start_loop?1D1 1556: 89 CB mov bx, cx 1558: 89 F8 mov ax, di 155A: BE 1A 08 mov si, parse_RamdiskFile 155D: B9 0B 00 mov cx, parse_RamdiskFile_e - parse_RamdiskFile 1560: F3 repe 1561: A6 cmpsb 1562: 0F 85 98 03 jnz .rest_value_loop?1D3 1566: 83 EB 0B sub bx, parse_RamdiskFile_e - parse_RamdiskFile 1569: 01 CB add bx, cx 156B: 89 D9 mov cx, bx 156D: B8 20 3D mov ax, 0x3d20 1570: F3 repe 1571: AE scasb 1572: 66 85 C9 test ecx, ecx 1575: 0F 84 85 03 jz .rest_value_loop?1D3 1579: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 157D: 0F 85 7D 03 jnz .rest_value_loop?1D3 1581: F3 repe 1582: AE scasb 1583: 41 inc cx 1584: 4F dec di 1585: 89 7E A2 mov save_di_RAMDISK, di 1588: 89 4E A0 mov save_cx_RAMDISK, cx 158B: 26 8A 05 mov al, byte [ es : di ] 158E: 3C 2C cmp al, ',' 1590: 74 04 jz .found_end_str 1592: 47 inc di 1593: 49 dec cx 1594: 75 F5 jnz @b 1596: 89 7E A8 mov point_to_dest_file_name, di 1599: 47 inc di 159A: BE BA 1A mov si, shot_name_fat 159D: 83 4E A4 FF or first_input, - 1 15A1: B9 0B 00 mov cx, 11 15A4: 26 8A 05 mov al, byte [ es : di ] 15A7: 3C 0A cmp al, 0xa 15A9: 74 7D jz .st4_s?1GP 15AB: 3C 0D cmp al, 0xd 15AD: 74 79 jz .st4_s?1GP 15AF: 3C 20 cmp al, 0x20 15B1: 74 75 jz .st4_s?1GP 15B3: 3C 20 cmp al, 0x20 15B5: 72 7A jb .error?1GK 15B7: 3C 22 cmp al, 0x22 15B9: 74 76 jz .error?1GK 15BB: 3C 2A cmp al, 0x2a 15BD: 74 72 jz .error?1GK 15BF: 3C 2B cmp al, 0x2b 15C1: 74 6E jz .error?1GK 15C3: 3C 2C cmp al, 0x2c 15C5: 74 6A jz .error?1GK 15C7: 3C 2F cmp al, 0x2F 15C9: 74 66 jz .error?1GK 15CB: 3C 3A cmp al, 0x3a 15CD: 74 62 jz .error?1GK 15CF: 3C 3B cmp al, 0x3b 15D1: 74 5E jz .error?1GK 15D3: 3C 3C cmp al, 0x3c 15D5: 74 5A jz .error?1GK 15D7: 3C 3D cmp al, 0x3d 15D9: 74 56 jz .error?1GK 15DB: 3C 3E cmp al, 0x3E 15DD: 74 52 jz .error?1GK 15DF: 3C 3F cmp al, 0x3F 15E1: 74 4E jz .error?1GK 15E3: 3C 5B cmp al, 0x5b 15E5: 74 4A jz .error?1GK 15E7: 3C 5C cmp al, 0x5c 15E9: 74 46 jz .error?1GK 15EB: 3C 5D cmp al, 0x5d 15ED: 74 42 jz .error?1GK 15EF: 3C 7C cmp al, 0x7c 15F1: 74 3E jz .error?1GK 15F3: 83 7E A4 FF cmp first_input, - 1 15F7: 75 08 jnz .next_step?1GJ 15F9: 83 66 A4 00 and first_input, 0 15FD: 3C 2E cmp al, '.' 15FF: 74 30 jz .error?1GK 1601: 3C 2E cmp al, 0x2e 1603: 75 13 jnz .st2?1GM 1605: B0 20 mov al, ' ' 1607: 80 F9 03 cmp cl, 3 160A: 76 0C jbe .st2?1GM 160C: 88 04 mov byte [ si ], al 160E: 46 inc si 160F: 49 dec cx 1610: 83 F9 03 cmp cx, 3 1613: 77 F7 ja .st3?1GO 1615: 47 inc di 1616: EB 8C jmp @b 1618: 3C 60 cmp al, 0x60 161A: 76 02 jbe .st2_l?1GN 161C: 34 20 xor al, 0x20 161E: 88 04 mov byte [ si ], al 1620: 47 inc di 1621: 46 inc si 1622: E2 80 loop @b 1624: 31 C0 xor ax, ax 1626: EB 0C jmp @f 1628: B0 20 mov al, ' ' 162A: 88 04 mov byte [ si ], al 162C: 46 inc si 162D: E2 FB loop .st4?1GQ 162F: EB F3 jmp .st5?1GR 1631: 83 C8 FF or ax, - 1 1634: 60 pusha 1635: B9 0A 00 mov cx, 0x0a 1638: BF F5 06 mov di, convertion_file_name_msg 163B: E8 E7 F1 call decode 163E: BE F5 06 mov si, convertion_file_name_msg 1641: E8 00 F2 call printplain 1644: BE BA 1A mov si, shot_name_fat 1647: C6 44 0C 00 mov byte [ si + 12 ], 0 164B: E8 F6 F1 call printplain 164E: 61 popa 164F: 85 C0 test ax, ax 1651: 75 39 jnz .exit?1GI 1653: BE BA 1A mov si, shot_name_fat 1656: 8B 7E AE mov di, firstDataSect 1659: 2B 7E B0 sub di, size_root_dir 165C: C1 E7 09 shl di, 9 165F: BA E0 00 mov dx, root_dir_entry_count 1662: 8B 46 C4 mov ax, info_real_mode_size 1665: 05 00 10 add ax, 0x1000 1668: 8E E8 mov gs, ax 166A: B9 0B 00 mov cx, 11 166D: 8A 00 mov al, byte [ ds : si + bx ] 166F: 65 8A 21 mov ah, byte [ gs : di + bx ] 1672: 43 inc bx 1673: 38 C4 cmp ah, al 1675: 75 07 jnz .no_equal?1GH 1677: E2 F4 loop @b 1679: 83 C8 FF or ax, - 1 167C: EB 0E jmp .exit?1GI 167E: B9 0B 00 mov cx, 11 1681: 31 DB xor bx, bx 1683: 83 C7 20 add di, 32 1686: 4A dec dx 1687: 75 E4 jnz @b 1689: 83 E0 00 and ax, 0 168C: 60 pusha 168D: B9 0A 00 mov cx, 0x0a 1690: BF B9 06 mov di, check_name_fat_msg 1693: 66 C7 05 20 20 20 20 mov dword [ di ], ' ' 169A: C7 45 04 20 20 mov word [ di + 4 ], ' ' 169F: E8 83 F1 call decode 16A2: BE B9 06 mov si, check_name_fat_msg 16A5: E8 9C F1 call printplain 16A8: 61 popa 16A9: 8B 7E A2 mov di, save_di_RAMDISK 16AC: 8B 4E A0 mov cx, save_cx_RAMDISK 16AF: 84 C0 test al, al 16B1: 0F 85 94 FE jnz .start_loop?1D1 16B5: 26 66 FF 75 FA push dword [ es : di - 6 ] 16BA: 8D 75 FA lea si, [ di - 6 ] 16BD: 26 FF 75 FE push word [ es : di - 2 ] 16C1: 57 push di 16C2: 31 C0 xor ax, ax 16C4: 26 89 45 FA mov word [ es : di - 6 ], ax 16C8: 8B 46 C4 mov ax, info_real_mode_size 16CB: 26 89 45 FC mov word [ es : di - 4 ], ax 16CF: 26 C7 45 FE 10 00 mov word [ es : di - 2 ], 16 16D5: 8B 7E A8 mov di, point_to_dest_file_name 16D8: 26 FF 35 push word [ es : di ] 16DB: 51 push cx 16DC: 31 C0 xor ax, ax 16DE: 26 89 05 mov word [ es : di ], ax 16E1: 57 push di 16E2: 89 F7 mov di, si 16E4: 40 inc ax 16E5: 56 push si 16E6: 06 push es 16E7: 55 push bp 16E8: 06 push es 16E9: 1F pop ds 16EA: 0E push cs 16EB: 07 pop es 16EC: 26 FF 1E DC 0A call far dword [ es : loader_callback ] 16F1: 0E push cs 16F2: 1F pop ds 16F3: 5D pop bp 16F4: 07 pop es 16F5: 5E pop si 16F6: 83 FB 02 cmp bx, 2 16F9: 0F 87 01 02 ja .error?1D4 16FD: 89 5E 9E mov status_flag_loader_f, bx 1700: 66 C1 E2 10 shl edx, 16 1704: 89 C2 mov dx, ax 1706: 66 89 56 B6 mov save_file_size, edx 170A: 66 89 D0 mov eax, edx 170D: 5F pop di 170E: 59 pop cx 170F: 26 8F 05 pop word [ es : di ] 1712: 5F pop di 1713: 26 8F 45 FE pop word [ es : di - 2 ] 1717: 26 66 8F 45 FA pop dword [ es : di - 6 ] 171C: 60 pusha 171D: B9 0A 00 mov cx, 0x0a 1720: BF C1 05 mov di, RamdiskFile_msg 1723: 66 C7 05 20 20 20 20 mov dword [ ds : di ], ' ' 172A: E8 F8 F0 call decode 172D: BE C1 05 mov si, RamdiskFile_msg 1730: E8 11 F1 call printplain 1733: 61 popa 1734: 06 push es 1735: 8B 46 C4 mov ax, info_real_mode_size 1738: 05 00 10 add ax, 0x1000 173B: 8E C0 mov es, ax 173D: 8B 7E AE mov di, firstDataSect 1740: 2B 7E B0 sub di, size_root_dir 1743: C1 E7 09 shl di, 9 1746: 03 7E AA add di, point_to_free_root 1749: BE BA 1A mov si, shot_name_fat 174C: B9 0B 00 mov cx, 11 174F: AC lodsb 1750: AA stosb 1751: E2 FC loop @b 1753: 31 C0 xor ax, ax 1755: B4 08 mov ah, ATTR_VOLUME_ID 1757: 26 89 05 mov word [ es : di ], ax 175A: 83 C7 02 add di, 2 175D: 26 C6 05 64 mov byte [ es : di ], 100 1761: 47 inc di 1762: 26 C7 05 2B 03 mov word [ es : di ], 0x032b 1767: 83 C7 02 add di, 2 176A: 26 C7 05 00 00 mov word [ es : di ], 0x0 176F: 83 C7 02 add di, 2 1772: 26 C7 05 2B 03 mov word [ es : di ], 0x032b 1777: 83 C7 02 add di, 2 177A: 26 C7 05 00 00 mov word [ es : di ], 0x0 177F: 83 C7 02 add di, 2 1782: 26 C7 05 00 00 mov word [ es : di ], 0x0 1787: 83 C7 02 add di, 2 178A: 26 C7 05 2B 03 mov word [ es : di ], 0x032b 178F: 83 C7 02 add di, 2 1792: 8B 46 B2 mov ax, point_next_fat_str 1795: 26 89 05 mov word [ es : di ], ax 1798: 83 C7 02 add di, 2 179B: 57 push di 179C: 89 C3 mov bx, ax 179E: D1 EB shr bx, 1 17A0: 01 D8 add ax, bx 17A2: 8B 1E 87 1A mov bx, word [ fat12_buffer.BPB_BytsPerSec ] 17A6: 99 cwd 17A7: F7 FB idiv bx 17A9: 89 C6 mov si, ax 17AB: 66 0F B7 06 87 1A movzx eax, word [ fat12_buffer.BPB_BytsPerSec ] 17B1: 66 0F B6 1E 89 1A movzx ebx, byte [ fat12_buffer.BPB_SecPerClus ] 17B7: 66 0F AF C3 imul eax, ebx 17BB: 66 8B 5E B6 mov ebx, save_file_size 17BF: 66 29 C3 sub ebx, eax 17C2: 66 39 C3 cmp ebx, eax 17C5: 76 29 jbe .eof_file?1US 17C7: FF 46 B2 inc point_next_fat_str 17CA: 8B 4E B2 mov cx, point_next_fat_str 17CD: 89 C2 mov dx, ax 17CF: D1 EA shr dx, 1 17D1: 01 D1 add cx, dx 17D3: F7 C6 01 00 test si, 0x1 17D7: 74 0B jz .step2?1UP 17D9: C1 E1 04 shl cx, 4 17DC: 26 89 0C mov word [ es : si ], cx 17DF: 46 inc si 17E0: 01 C1 add cx, ax 17E2: EB DB jmp @b 17E4: 81 E1 FF 0F and cx, 0x0FFF 17E8: 26 89 0C mov word [ es : si ], cx 17EB: 46 inc si 17EC: 01 C1 add cx, ax 17EE: EB CF jmp @b 17F0: B9 FF 0F mov cx, 0x0fff 17F3: F7 C6 01 00 test si, 0x1 17F7: 74 08 jz .step3?1UQ 17F9: C1 E1 04 shl cx, 4 17FC: 26 89 0C mov word [ es : si ], cx 17FF: EB 07 jmp .end?1UR 1801: 81 E1 FF 0F and cx, 0x0FFF 1805: 26 89 0C mov word [ es : si ], cx 1808: FF 46 B2 inc point_next_fat_str 180B: 5F pop di 180C: 66 8B 46 B6 mov eax, save_file_size 1810: 26 66 89 05 mov dword [ es : di ], eax 1814: 66 60 pushad 1816: 8B 7E AE mov di, firstDataSect 1819: 2B 7E B0 sub di, size_root_dir 181C: C1 E7 09 shl di, 9 181F: 03 7E AA add di, point_to_free_root 1822: BE C6 1A mov si, dest_name_fat 1825: B9 0B 00 mov cx, 11 1828: 26 8A 05 mov al, byte [ es : di ] 182B: 47 inc di 182C: 88 04 mov byte [ ds : si ], al 182E: 46 inc si 182F: E2 F7 loop @b 1831: 31 C0 xor ax, ax 1833: 88 04 mov byte [ si ], al 1835: BE C6 1A mov si, dest_name_fat 1838: E8 09 F0 call printplain 183B: 66 61 popad 183D: 83 46 AA 20 add point_to_free_root, 32 1841: 07 pop es 1842: 8B 46 C4 mov ax, info_real_mode_size 1845: BE 3C 1A mov si, table_15_87 1848: 89 44 12 mov word [ si + 8 * 2 + 2 ], ax 184B: 66 0F B7 46 AE movzx eax, firstDataSect 1850: 66 0F B7 56 A6 movzx edx, data_offset 1855: 66 01 D0 add eax, edx 1858: 66 0F B7 1E 87 1A movzx ebx, word [ fat12_buffer.BPB_BytsPerSec ] 185E: 66 0F B6 16 89 1A movzx edx, byte [ fat12_buffer.BPB_SecPerClus ] 1864: 0F AF DA imul bx, dx 1867: 66 53 push ebx 1869: 66 0F AF C3 imul eax, ebx 186D: 60 pusha 186E: B9 0A 00 mov cx, 0x0a 1871: BF 07 04 mov di, show_db1 1874: E8 AE EF call decode 1877: BE 07 04 mov si, show_db1 187A: E8 C7 EF call printplain 187D: 61 popa 187E: B2 10 mov dl, 0x10 1880: 66 3D 00 00 01 00 cmp eax, 0x00010000 1886: 72 0A jb @f 1888: 66 2D 00 00 01 00 sub eax, 0x00010000 188E: FE C2 inc dl 1890: EB EE jmp @b 1892: 88 54 1B mov byte [ si + 8 * 3 + 3 ], dl 1895: 89 44 1A mov word [ si + 8 * 3 + 2 ], ax 1898: 66 8B 4E B6 mov ecx, save_file_size 189C: 66 81 F9 FF FF 00 00 cmp ecx, 0x0000ffff 18A3: 76 0A jbe .correct_on_byte?1cJ 18A5: 66 B9 00 00 01 00 mov ecx, 0x00010000 18AB: 66 29 4E B6 sub save_file_size, ecx 18AF: 66 58 pop eax 18B1: 66 51 push ecx 18B3: FF 46 A6 inc data_offset 18B6: 66 39 C8 cmp eax, ecx 18B9: 73 05 jae @f 18BB: 66 29 C1 sub ecx, eax 18BE: EB F3 jmp @b 18C0: 66 59 pop ecx 18C2: 66 F7 C1 01 00 00 00 test ecx, 0x1 18C9: 74 02 jz .st1?1cI 18CB: 66 41 inc ecx 18CD: 66 D1 E9 shr ecx, 1 18D0: 06 push es 18D1: 1E push ds 18D2: 07 pop es 18D3: B4 87 mov ah, 0x87 18D5: CD 15 int 0x15 18D7: 07 pop es 18D8: 60 pusha 18D9: B9 0A 00 mov cx, 0x0a 18DC: BF 46 07 mov di, return_code_af_move 18DF: E8 43 EF call decode 18E2: BE 46 07 mov si, return_code_af_move 18E5: E8 5C EF call printplain 18E8: 61 popa 18E9: 83 7E 9E 01 cmp status_flag_loader_f, 0x1 18ED: 75 00 jnz @f 18EF: 8B 7E A2 mov di, save_di_RAMDISK 18F2: 8B 4E A0 mov cx, save_cx_RAMDISK 18F5: 60 pusha 18F6: 31 C0 xor ax, ax 18F8: CD 16 int 0x16 18FA: 61 popa 18FB: E9 4B FC jmp .start_loop?1D1 18FE: 89 C7 mov di, ax 1900: 89 D9 mov cx, bx 1902: E9 44 FC jmp .start_loop?1D1 1905: 8B 46 C4 mov ax, info_real_mode_size 1908: 05 00 10 add ax, 0x1000 190B: BE 3C 1A mov si, table_15_87 190E: 89 44 12 mov word [ si + 8 * 2 + 2 ], ax 1911: B8 00 02 mov ax, 512 1914: 89 44 1A mov word [ si + 8 * 3 + 2 ], ax 1917: 66 0F B7 0E 92 1A movzx ecx, word [ fat12_buffer.BPB_FATSz16 ] 191D: 0F B6 1E 8C 1A movzx bx, byte [ fat12_buffer.BPB_NumFATs ] 1922: 0F AF CB imul cx, bx 1925: 03 4E B0 add cx, size_root_dir 1928: 66 C1 E1 09 shl ecx, 9 192C: 66 F7 C1 01 00 00 00 test ecx, 0x1 1933: 74 02 jz .st1?1ho 1935: 66 41 inc ecx 1937: 66 D1 E9 shr ecx, 1 193A: 06 push es 193B: 1E push ds 193C: 07 pop es 193D: B4 87 mov ah, 0x87 193F: CD 15 int 0x15 1941: 07 pop es 1942: 60 pusha 1943: B9 0A 00 mov cx, 0x0a 1946: BF 77 07 mov di, return_code_af_fat_m 1949: E8 D9 EE call decode 194C: BE 77 07 mov si, return_code_af_fat_m 194F: E8 F2 EE call printplain 1952: 61 popa 1953: 60 pusha 1954: B9 0A 00 mov cx, 0x0a 1957: BF 07 04 mov di, show_db1 195A: E8 C8 EE call decode 195D: BE 07 04 mov si, show_db1 1960: E8 E1 EE call printplain 1963: 61 popa 1964: 60 pusha 1965: BE 21 07 mov si, make_fat12_RFS_msg 1968: E8 D9 EE call printplain 196B: 61 popa 196C: EB 1F jmp ._end_parse_FRS 196E: 89 D9 mov cx, bx 1970: 89 C7 mov di, ax 1972: BE 0B 08 mov si, parse_RFS_KRFS 1975: B9 04 00 mov cx, parse_RFS_KRFS_e - parse_RFS_KRFS 1978: F3 repe 1979: A6 cmpsb 197A: EB 11 jmp ._end_parse_FRS 197C: 89 D9 mov cx, bx 197E: 89 C7 mov di, ax 1980: E9 A4 F8 jmp .start_g_tpe_RFS 1983: 83 4E C0 01 or show_errors_sect, show_error_1 1987: EB 04 jmp ._end_parse_FRS 1989: 83 4E C0 02 or show_errors_sect, show_error_2 198D: 60 pusha 198E: BE 34 07 mov si, get_type_FS_msg 1991: E8 B0 EE call printplain 1994: 61 popa 1995: 31 C0 xor ax, ax 1997: CD 16 int 0x16 1999: 8B 7E F4 mov di, point_default 199C: 8B 4E FA mov cx, save_cx_d 199F: E8 D1 EE call get_firs_sym 19A2: 85 C9 test cx, cx 19A4: 0F 84 8E 00 jz ._afterLoaderModule 19A8: 3C 4C cmp al, 'L' 19AA: 75 F3 jnz .start_p_LM 19AC: 89 CB mov bx, cx 19AE: 89 F8 mov ax, di 19B0: BE CD 07 mov si, parse_LoaderModule 19B3: B9 0C 00 mov cx, parse_LoaderModule_e - parse_LoaderModule 19B6: F3 repe 19B7: A6 cmpsb 19B8: 75 75 jnz .rest_value_loop_LM 19BA: 83 EB 0C sub bx, parse_LoaderModule_e - parse_LoaderModule 19BD: 01 CB add bx, cx 19BF: 89 D9 mov cx, bx 19C1: F7 46 F8 01 00 test status_flag, flag_found_LM 19C6: 74 00 jz .correct_is_not_set_LM 19C8: B8 20 3D mov ax, 0x3d20 19CB: F3 repe 19CC: AE scasb 19CD: E3 60 jcxz .rest_value_loop_LM 19CF: 26 3A 65 FF cmp ah, byte [ es : di - 1 ] 19D3: 75 5A jnz .rest_value_loop_LM 19D5: F3 repe 19D6: AE scasb 19D7: 41 inc cx 19D8: 4F dec di 19D9: 26 66 FF 75 FA push dword [ es : di - 6 ] 19DE: 8D 75 FA lea si, [ di - 6 ] 19E1: 26 FF 75 FE push word [ es : di - 2 ] 19E5: 31 C0 xor ax, ax 19E7: 26 89 45 FA mov word [ es : di - 6 ], ax 19EB: 8B 46 C4 mov ax, info_real_mode_size 19EE: 26 89 45 FC mov word [ es : di - 4 ], ax 19F2: 26 C7 45 FE 10 00 mov word [ es : di - 2 ], 16 19F8: 26 8A 05 mov al, byte [ es : di ] 19FB: 3C 20 cmp al, ' ' 19FD: 74 0C jz .found_end_str?1mb 19FF: 3C 0A cmp al, 0xa 1A01: 74 08 jz .found_end_str?1mb 1A03: 3C 0D cmp al, 0xd 1A05: 74 04 jz .found_end_str?1mb 1A07: 47 inc di 1A08: 49 dec cx 1A09: 75 ED jnz @b 1A0B: 26 FF 35 push word [ es : di ] 1A0E: 31 C0 xor ax, ax 1A10: 26 89 05 mov word [ es : di ], ax 1A13: 89 F7 mov di, si 1A15: 40 inc ax 1A16: 56 push si 1A17: 06 push es 1A18: 06 push es 1A19: 1F pop ds 1A1A: 0E push cs 1A1B: 07 pop es 1A1C: 26 FF 1E DC 0A call far dword [ es : loader_callback ] 1A21: 0E push cs 1A22: 1F pop ds 1A23: 07 pop es 1A24: 5E pop si 1A25: 85 DB test bx, bx 1A27: 75 03 jnz .error_LM 1A29: 26 FF 2C jmp far dword [ es : si ] 1A2C: E8 91 F0 call error.LoaderModule 1A2F: 89 C7 mov di, ax 1A31: 89 D9 mov cx, bx 1A33: E9 69 FF jmp .start_p_LM 1A36: EB FE jmp $ 1A38: E9 6A F1 jmp ini_loaded 1A3C: 00 00 00 00 00 00 00 00 db 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x0, 0x0 1A44: 00 00 00 00 00 00 00 00 db 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x0, 0x0 1A4C: FF FF db 0xff, 0xff 1A4E: 00 10 db 0x0, 0x10 1A50: 00 93 00 00 db 0x00, 0x93, 0x0, 0x0 1A54: FF FF 00 00 10 93 00 00 db 0xff, 0xff, 0x0, 0x00, 0x10, 0x93, 0x0, 0x0 1A5C: 00 00 00 00 00 00 00 00 db 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x0, 0x0 1A64: 00 00 00 00 00 00 00 00 db 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x0, 0x0 1A6C: 00 00 00 00 00 00 00 00 db 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x0, 0x0 1A74: 00 00 00 00 00 00 00 00 db 0x00, 0x00, 0x0, 0x00, 0x00, 0x00, 0x0, 0x0 1A7C: 90 90 90 .BS_jmpBoot db 0x90, 0x90, 0x90 1A7F: 4B 20 53 79 53 20 36 34 .BS_OEMName db 'K SyS 64' 1A87: 00 02 .BPB_BytsPerSec dw 512 1A89: 01 .BPB_SecPerClus db 0x1 1A8A: 01 00 .BPB_RsvdSecCnt dw 0x1 1A8C: 01 .BPB_NumFATs db 0x1 1A8D: 00 02 .BPB_RootEntCnt dw 512 1A8F: 00 00 .BPB_TotSec16 dw 0x0 1A91: F0 .BPB_Media db 0xF0 1A92: 00 00 .BPB_FATSz16 dw 0x0 1A94: 00 00 .BPB_SecPerTrk dw 0x0 1A96: 00 00 .BPB_NumHeads dw 0x0 1A98: 00 00 00 00 .BPB_HiddSec dd 0x0 1A9C: 00 00 00 00 .BPB_TotSec32 dd 0x0 1AA0: 52 .BS_DrvNum db 'R' 1AA1: 00 .BS_Reserved1 db 0x0 1AA2: 29 .BS_BootSig db 0x29 1AA3: 52 46 4B 53 .BS_VolID db 'RFKS' 1AA7: 52 41 4D 20 44 49 53 4B 20 46 53 .BS_VolLab db 'RAM DISK FS' 1AB2: 46 41 54 31 32 20 20 20 .BS_FilSysType db 'FAT12 ' 1ABA: shot_name_fat rb 11 1AC5: rb 1 1AC6: dest_name_fat rb 12 1AD2: value_timeout rw 1 1AD4: old_timer rd 1 1AD8: start_timer rd 1 1ADC: timer_ rd 1 1AE0: start_stack rw 1 1AE2: save_bp_from_timer rw 1 3 passes, 0.8 seconds, 6842 bytes.