03cd817d40
git-svn-id: svn://kolibrios.org@1156 a494cfbc-eb01-0410-851d-a64ba20cac60
2148 lines
144 KiB
Plaintext
2148 lines
144 KiB
Plaintext
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, '<27>'
|
||
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.
|