0,0 → 1,2147 |
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. |