Changeset 40
- Timestamp:
- Apr 11, 2014, 9:58:17 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BOOTCODE/AIR-BOOT.ASM
r39 r40 1 ; 2 ; BSS moet op A000 liggen 3 ; Segmented werkt niet 4 ; Moet met Tasm/DOS assembleren 5 ; Wat we dus *niet* willen !! 6 ; 7 8 9 1 10 ; AiR-BOOT (c) Copyright 1998-2008 M. Kiewitz 2 11 ; … … 1987 1996 ; with segment-concatenated layout. 1988 1997 ; 1989 ;org 0A000h ; Uninitialized1998 org 0A000h ; Uninitialized 1990 1999 1991 2000 -
trunk/BOOTCODE/REGULAR/BOOTMENU.ASM
r38 r40 718 718 ; Will Set some Vars after user selected entry to boot... 719 719 ; ...don't select Straight View ! 720 BOOTMENU_SetVarsAfterMenu Proc Near Uses720 BOOTMENU_SetVarsAfterMenu Proc Near 721 721 ; No Straight View in here...we got filtered view since BootMenu-Startup... 722 722 mov al, CFG_RememberTimed … … 780 780 jz BME_NoTimedBoot 781 781 ; ------------------------------------------------ TIMED BOOT 782 push ax dx 782 push ax 783 push dx 783 784 call TIMER_GetTicCount 784 785 mov dx, word ptr [TimedTimeOut] … … 793 794 cmp al, 0 794 795 jne BME_NoTimeOut 795 pop dx ax 796 pop dx 797 pop ax 796 798 mov dl, Menu_EntryDefault 797 799 and CFG_TimedBootLast, 1 … … 805 807 806 808 BME_NoTimeOut: 807 pop dx ax 809 pop dx 810 pop ax 808 811 BME_NoTimedBoot: 809 812 ; ------------------------------------------------ FLOPPY-NAME TIMER … … 811 814 jz BME_NoFloppyNameTimer 812 815 ; Wait 2 Seconds everytime 813 push ax dx 816 push ax 817 push dx 814 818 call TIMER_GetTicCount 815 819 cmp dx, wptr [FloppyGetNameTimer+2] … … 819 823 BME_ExpiredGetFloppy: 820 824 call BOOTMENU_ResetGetFloppy 821 pop dx ax 825 pop dx 826 pop ax 822 827 jmp BME_RefreshFloppyName 823 828 BME_NoFloppyNameExpired: 824 pop dx ax 829 pop dx 830 pop ax 825 831 BME_NoFloppyNameTimer: 826 832 ; ------------------------------------------------ KEYBOARD … … 848 854 int 16h 849 855 pop dx 850 cmp ah, Keys_E nter856 cmp ah, Keys_ENTER 851 857 je BME_KeyEnter 852 858 cmp ah, Keys_F10 -
trunk/BOOTCODE/REGULAR/DRIVEIO.ASM
r38 r40 153 153 154 154 DriveIO_GetHardDriveCount Proc Near Uses ds si 155 push ds si 155 push ds 156 push si 156 157 push 0040h 157 158 pop ds 158 159 mov si, 0075h 159 160 mov dh, ds:[si] ; 40:75 -> POST: Total Harddiscs == DL 160 pop si ds 161 pop si 162 pop ds 161 163 mov TotalHarddiscs, dh 162 164 ret … … 173 175 mov dl, 80h 174 176 DIOILUT_DriveLoop: 175 push dx di 177 push dx 178 push di 176 179 mov ah, 08h 177 180 int 13h ; DISK - GET DRIVE PARAMETERS … … 190 193 ; bit 16-23 of the LBA address 191 194 DIOILUT_Error: 192 pop di dx 195 pop di 196 pop dx 193 197 mov bptr ds:[di], ah ; Save that value 194 198 inc di ; Go to next BYTE … … 206 210 ; Rousseau: Enhanced to handle sector-numbers 127 and 255 besides 63 for LVM-info sectors. 207 211 ; Ugly, need to cleanup. 208 DriveIO_LVMAdjustToInfoSector Proc Near Uses212 DriveIO_LVMAdjustToInfoSector Proc Near 209 213 210 214 … … 471 475 DriveIO_LVMAdjustToInfoSector EndP 472 476 473 drive :db 'drive : ',0474 before_lvm_adjust :db 'before lvm adjust : ',0475 after_lvm_adjust :db 'after lvm adjust : ',0476 before_lvm_adjust_log :db 'before lvm logical adjust: ',0477 after_lvm_adjust_log :db 'after lvm logical adjust : ',0478 spt_used :db 'spt used : ',0477 drive db 'drive : ',0 478 before_lvm_adjust db 'before lvm adjust : ',0 479 after_lvm_adjust db 'after lvm adjust : ',0 480 before_lvm_adjust_log db 'before lvm logical adjust: ',0 481 after_lvm_adjust_log db 'after lvm logical adjust : ',0 482 spt_used db 'spt used : ',0 479 483 480 484 … … 551 555 552 556 ; Keeps DS:SI for caller 553 DriveIO_LoadTmpSector Proc Near Uses557 DriveIO_LoadTmpSector Proc Near 554 558 mov si, offset TmpSector 555 559 call DriveIO_LoadSector ; Uses INT13X if needed … … 558 562 559 563 ; Keeps DS:SI for caller 560 DriveIO_SaveTmpSector Proc Near Uses564 DriveIO_SaveTmpSector Proc Near 561 565 mov si, offset TmpSector 562 566 call DriveIO_SaveSector … … 626 630 627 631 ; Memory-Block that holds information for LBA-access via INT 13h 628 DriveIO_DAP :db 10h ; Size of paket632 DriveIO_DAP db 10h ; Size of paket 629 633 db 0 ; Reserved 630 634 DriveIO_DAP_NumBlocks dw 0 ; Number of blocks … … 652 656 mov bptr [si+5], dl 653 657 call MBR_Teletype 654 jmp MBRLE_Halt 658 659 ; JWasm: cannot jump to local label in procedure. 660 ; Changed to halt here. 661 ;jmp MBRLE_Halt 662 DriveIO_GotLoadError_halt: 663 jmp DriveIO_GotLoadError_halt 655 664 DriveIO_GotLoadError EndP 656 665 … … 1237 1246 1238 1247 ; Values for sectors per track table corresponding to DriveIO_IsHugeDrive return value. 1239 secs_per_track_table :db 63,127,255,255,255,2551248 secs_per_track_table db 63,127,255,255,255,255 1240 1249 1241 1250 ;db_lmlvm: db 'Load Master LVM -- disk: ',0 -
trunk/BOOTCODE/REGULAR/OTHER.ASM
r38 r40 83 83 GetLenOfStrings EndP 84 84 85 PRECRAP_Main Proc Near Uses85 PRECRAP_Main Proc Near 86 86 ; First initialize Variable-Area (everything with NUL) 87 87 mov di, offset BeginOfVariables … … 264 264 265 265 MBR_Main_BootThrough: 266 call MBR_Tele Type266 call MBR_Teletype 267 267 xor si,si 268 268 call MBR_TeletypeNL … … 357 357 358 358 359 AFTERCRAP_Main Proc Near Uses359 AFTERCRAP_Main Proc Near 360 360 ; =================================================== 361 361 ; Now get volume label of FloppyDrive, if wanted... -
trunk/BOOTCODE/REGULAR/PARTMAIN.ASM
r38 r40 114 114 call PART_GetPartitionPointer ; Gets SI for partition DL 115 115 mov al, ds:[si+LocIPT_Flags] 116 and al, Flags_Boot Able116 and al, Flags_Bootable 117 117 jnz PFUPN_Found 118 118 dec cl … … 290 290 ; In: DL - Number of partition in filtered view 291 291 ; Out: DL - Number of partition in straight view 292 PART_ConvertToStraight Proc Near Uses292 PART_ConvertToStraight Proc Near 293 293 ;movzx bx, dl 294 294 mov bl,dl ; partition number to bl … … 928 928 929 929 PSP_ForceI13X: 930 push es di si 930 push es 931 push di 932 push si 931 933 932 934 ; Setup ES and FS. … … 952 954 mov wptr es:[di+06], ax 953 955 954 pop si di es 956 pop si 957 pop di 958 pop es 955 959 956 960 … … 1151 1155 jz PSP_NoMBRprotect 1152 1156 ; -------------------------------------------------- INSTALLS MBR-PROTECTION 1153 push ds si ; We need DS:SI later... 1157 ; We need DS:SI later... 1158 push ds 1159 push si 1154 1160 ; First subtract 1024 bytes from Base-Memory... 1155 1161 push ds … … 1195 1201 mov ds:[si+2], dx ; Vector hardcoded at DS:0009 1196 1202 ; MBR-Protection now active :) 1197 pop si ds ; Restore DS:SI 1203 ; Restore DS:SI 1204 pop si 1205 pop ds 1198 1206 1199 1207 … … 1279 1287 mov ax,bx 1280 1288 call VideoIO_PrintHexWord 1289 mov ax,[si+LocIPT_AbsolutePartTable+02] 1290 call VideoIO_PrintHexWord 1291 mov ax,[si+LocIPT_AbsolutePartTable+00] 1292 call VideoIO_PrintHexWord 1293 mov al,[ExtendedAbsPosSet] 1294 call VideoIO_PrintHexByte 1281 1295 popa 1282 1296 … … 1294 1308 1295 1309 ; 1296 ; Update the phys-drive field 1310 ; Update the phys-disk field 1311 ; DI points to PartitionSector 1312 ; BX holds index to phys-disk field 1297 1313 ; 1298 1314 mov al,byte ptr [si+LocIPT_Drive] … … 1667 1683 ;popa 1668 1684 1669 1670 ; About 1.5 seconds 1671 mov al,30 1685 ;~ jmp skip_delay 1686 1687 1688 ; 1689 ; Show "wait dots" 1690 ; 1691 pusha 1692 ; Color white on black 1693 mov ch,7 1694 mov cl,0 1695 call VideoIO_Color 1696 ; Locate cursor for output of debug-info 1697 mov ch,8 1698 mov cl,1 1699 call VideoIO_Locate 1700 1701 ; Print dots with interval. 1702 mov cx,10 1703 print_next_dot: 1704 mov al,'.' 1705 call VideoIO_PrintSingleChar 1706 ; Value 30 is about 1.5 seconds 1707 mov al,1 1672 1708 call TIMER_WaitTicCount 1709 loop print_next_dot 1710 popa 1711 1712 ; 1713 ; Enter here to skip delay. 1714 ; 1715 skip_delay: 1716 1717 1673 1718 1674 1719 ; … … 2077 2122 ; CY = Set if BOOTMGR found, clear if not 2078 2123 ; 2079 PART_IsWinBMGR Proc Near Uses ax bx cx dx si di ds es2080 2081 ; Load specified LBA sector (BX:CX) from the disk in DL2082 mov di,ds2083 mov si,offset [TmpSector]2084 call DriveIO_LoadSectorLBA2085 2086 ; Point to location of 'BOOTMGR' signature.2087 add si,169h2088 2089 ; DL holds equality status2090 xor dl,dl2091 cld2092 2093 ; Load letter into AL, xor with letter will result 0 if the same.2094 ; Then or to DL.2095 ; If at the end of the sequence DL is zero, the signature is present.2096 lodsb2097 xor al,'B'2098 or dl,al2099 lodsb2100 xor al,'O'2101 or dl,al2102 lodsb2103 xor al,'O'2104 or dl,al2105 lodsb2106 xor al,'T'2107 or dl,al2108 lodsb2109 xor al,'M'2110 or dl,al2111 lodsb2112 xor al,'G'2113 or dl,al2114 lodsb2115 xor al,'R'2116 or dl,al2117 2118 ; Assume not present2119 clc2120 jnz PART_IsWinBMGR_exit2121 2122 ; BOOTMGR signature found2123 stc2124 2125 PART_IsWinBMGR_exit:2126 ret2127 PART_IsWinBMGR Endp2124 ;PART_IsWinBMGR Proc Near Uses ax bx cx dx si di ds es 2125 ; 2126 ; ; Load specified LBA sector (BX:CX) from the disk in DL 2127 ; mov di,ds 2128 ; mov si,offset [TmpSector] 2129 ; call DriveIO_LoadSectorLBA 2130 2131 ; ; Point to location of 'BOOTMGR' signature. 2132 ; add si,169h 2133 2134 ; ; DL holds equality status 2135 ; xor dl,dl 2136 ; cld 2137 2138 ; ; Load letter into AL, xor with letter will result 0 if the same. 2139 ; ; Then or to DL. 2140 ; ; If at the end of the sequence DL is zero, the signature is present. 2141 ; lodsb 2142 ; xor al,'B' 2143 ; or dl,al 2144 ; lodsb 2145 ; xor al,'O' 2146 ; or dl,al 2147 ; lodsb 2148 ; xor al,'O' 2149 ; or dl,al 2150 ; lodsb 2151 ; xor al,'T' 2152 ; or dl,al 2153 ; lodsb 2154 ; xor al,'M' 2155 ; or dl,al 2156 ; lodsb 2157 ; xor al,'G' 2158 ; or dl,al 2159 ; lodsb 2160 ; xor al,'R' 2161 ; or dl,al 2162 2163 ; ; Assume not present 2164 ; clc 2165 ; jnz PART_IsWinBMGR_exit 2166 2167 ; ; BOOTMGR signature found 2168 ; stc 2169 2170 ; PART_IsWinBMGR_exit: 2171 ; ret 2172 ;PART_IsWinBMGR Endp 2128 2173 2129 2174 -
trunk/BOOTCODE/REGULAR/PARTSCAN.ASM
r38 r40 28 28 ; here. 29 29 30 PARTSCAN_ScanForPartitions Proc Near Uses30 PARTSCAN_ScanForPartitions Proc Near 31 31 ; Reset X-Reference 32 32 call PARTSCAN_ResetXref … … 120 120 ; Falls eine fehlerhafte Partition gefunden wird, wird abgebrochen. 121 121 ; falls eine Extended Partition (DOS) gefunden wird, wird erneut gescannt. 122 PARTSCAN_ScanDriveForPartitions Proc Near Uses122 PARTSCAN_ScanDriveForPartitions Proc Near 123 123 xor ax, ax 124 124 xor bx, bx ; Location Absoluter Sektor 0 … … 283 283 ; First check, if LVM Information Sector is available and this partition 284 284 ; is supported. 285 push ax dx si di 285 push ax 286 push dx 287 push si 288 push di 286 289 mov si, wptr [PartPtr] 287 290 mov ax, wptr [si+LocBRPT_RelativeBegin] ; Absolute Sector … … 335 338 336 339 PCCTP_NoIbmBm: 337 pop di si dx ax 340 pop di 341 pop si 342 pop dx 343 pop ax 338 344 mov si, offset MBR_NoName_Patched 339 345 xor ah, ah ; no Flags_NoPartName … … 341 347 342 348 PCCTP_CheckBootRecord: 343 pop di si dx ax 349 pop di 350 pop si 351 pop dx 352 pop ax 344 353 test ah, FileSysFlags_NoName ; No-Name-Flag ? -> No Partition Name 345 354 … … 391 400 ; Now compare IPT with current Partition 392 401 mov cx, 15 ; Serial&Name (15-Bytes) 393 push si di 402 push si 403 push di 394 404 repz cmpsb 395 pop di si 405 pop di 406 pop si 396 407 397 408 jne PCCTP_NoMatchYet … … 415 426 ; Now compare IPT with current Partition 416 427 mov cx, 11 ; Name only (11-Bytes) 417 push si di 428 push si 429 push di 418 430 add si, 4 419 431 add di, 4 ; Skip over Serial-Field 420 432 repz cmpsb 421 pop di si 433 pop di 434 pop si 422 435 jne PCCTP_NameNoMatch 423 436 mov cx, [si+0] ; Get Serial … … 488 501 ; Build a standard-Volume Label from FileSystemNamePtr 489 502 ; We have to call SearchFileSysName again because of NTFS 490 push ax cx 503 push ax 504 push cx 491 505 mov al, dh 492 506 call PART_SearchFileSysName ; We want SI here <- FileSystemNamePtr … … 501 515 stosb ; Fill last 3 bytes with "NUL" 502 516 mov si, offset MBR_NoName_Patched 503 pop cx ax 517 pop cx 518 pop ax 504 519 ;======================================================= 505 520 ; LOCATION SEARCH in IPT-Table … … 712 727 rep stosb 713 728 mov di, offset NewHidePartTable ; Temporary Hide-Config Table 714 mov cx, 450 ; Size is 900715 rep stos w; Fill up with FFFFh729 mov cx, LocIPT_MaxPartitions * LocIPT_LenOfIPT 730 rep stosb ; Fill up with FFFFh 716 731 mov di, offset NewDriveLetters 717 mov cx, 15; Temporary Logical-Drive Letter Table718 xor ax, ax ; Size is 30719 rep stos w; Fill up with 0000h732 mov cx, LocIPT_MaxPartitions ; Temporary Logical-Drive Letter Table 733 xor ax, ax 734 rep stosb ; Fill up with 0000h 720 735 ret 721 736 PARTSCAN_ResetXref EndP … … 812 827 PARTSCAN_SyncHideConfigWithXref EndP 813 828 814 ibm_bm_name :db 'OS2 BootMgr',0815 ;win_bm_name: db 'BOOTMGR',0829 ibm_bm_name db 'OS2 BootMgr',0 830 ;win_bm_name: db 'BOOTMGR',0 -
trunk/BOOTCODE/REGULAR/PASSWORD.ASM
r38 r40 142 142 PASSWORD_AskSpecifiedPassword EndP 143 143 144 PasswordSpace :db 16 dup (0) ; Space for Password-Encoding...144 PasswordSpace db 16 dup (0) ; Space for Password-Encoding... 145 145 dw 0BABEh ; All of these 8 bytes are insider 146 146 dw 0FC77h ; jokes. I bet no one will solve -
trunk/BOOTCODE/REGULAR/STD_TEXT.ASM
r38 r40 40 40 ;Copyright db ' AiR-BOOT v1.0.8-internal-beta - ** !! NOT FOR DISTRIBUTION !! **', 0 41 41 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate>> (build: #18)', 0 42 Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate 1>> (bld: 20120124)', 0 42 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate 1>> (bld: 20120124)', 0 43 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate 2>> (bld: 20120214)', 0 44 Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Internal Release 2b>> (bld: 20120215)', 0 43 45 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 1998-2012 M. Kiewitz, Dedicated to Gerd Kiewitz', 0 46 47 ; Message in case the user wants to edit the label of a type 0x35 partition 48 TXT_SETUP_NoEditType35 db 'The label of an LVM-Data partition cannot be edited', 0 49 ; Message in case the user wants to make a type 0x35 partition bootable 50 TXT_SETUP_NoBootType35 db 'An LVM-Data partition cannot be set bootable', 0 44 51 45 52 ; Rousseau: switch around -
trunk/BOOTCODE/REGULAR/VIDEOIO.ASM
r38 r40 24 24 ENDIF 25 25 26 VideoIO_WaitRetrace 27 mov dx, 3DAh28 VIOWR_Jump1:29 in al, dx30 test al, 831 jnz VIOWR_Jump132 VIOWR_Jump2:33 in al, dx34 test al, 835 jz VIOWR_Jump236 ret37 VideoIO_WaitRetrace 26 VideoIO_WaitRetrace Proc Near Uses ax dx 27 mov dx, 3DAh 28 VIOWR_Jump1: 29 in al, dx 30 test al, 8 31 jnz VIOWR_Jump1 32 VIOWR_Jump2: 33 in al, dx 34 test al, 8 35 jz VIOWR_Jump2 36 ret 37 VideoIO_WaitRetrace EndP 38 38 39 39 … … 41 41 ; Holds the current position. Yeah, I know this is in the code area, but who 42 42 ; cares :)) 43 TextPosY db0h44 TextPosX db0h45 TextColorFore db7h46 TextColorBack db0h43 TextPosY db 0h 44 TextPosX db 0h 45 TextColorFore db 7h 46 TextColorBack db 0h 47 47 48 48 ; In: CH - Cursor Column, CL - Cursor Row (Start at 1,1) 49 49 ; Destroyed: None 50 VideoIO_Locate 51 or ch, ch52 jz VIOL_IgnoreY53 dec ch54 mov TextPosY, ch55 VIOL_IgnoreY:56 or cl, cl57 jz VIOL_IgnoreX58 dec cl59 mov TextPosX, cl60 VIOL_IgnoreX:61 ret62 VideoIO_Locate 50 VideoIO_Locate Proc Near Uses cx 51 or ch, ch 52 jz VIOL_IgnoreY 53 dec ch 54 mov TextPosY, ch 55 VIOL_IgnoreY: 56 or cl, cl 57 jz VIOL_IgnoreX 58 dec cl 59 mov TextPosX, cl 60 VIOL_IgnoreX: 61 ret 62 VideoIO_Locate EndP 63 63 64 64 ; In: CH - Cursor Column, CL - Center Cursor Row (Start at 1,1) … … 549 549 cmp ah, Keys_ESC 550 550 je VIOLUES_KeyESC 551 cmp ah, Keys_E nter551 cmp ah, Keys_ENTER 552 552 je VIOLUES_KeyENTER 553 553 cmp ah, Keys_Backspace … … 836 836 837 837 ; Disk Info to Dump to AB LogScreen 838 Disk :db "DISK ",0839 ;BiosCyls :db "Cyls :",0840 BiosHeads :db "Heads :",0841 BiosSecs :db "Secs :",0842 LvmSecs :db "SecsLVM :",0843 BiosLBA :db "LBA Secs:",0844 845 846 HugeBootDisk :db "Boot Disk is Huge : ",0847 DisksFound :db "Disks Found : ",0848 PartitionsFound :db "Partitions Found : ",0849 ;AutoStartPart :db "Auto Start Partition : ",0850 851 Phase1 :db "eCS Install Phase 1 : ",0852 853 854 ShowMenu :db "Press TAB to return to the AiR-BOOT Menu",0855 ;ShowBootLog :db "Press TAB to see the Boot Log...",0856 857 Yes :db "YES",0858 No :db "NO",0859 On :db "ON",0860 Off :db "OFF",0861 None :db "NONE",0862 Active :db "ACTIVE",0863 NotActive :db "NOT ACTIVE",0838 Disk db "DISK ",0 839 ;BiosCyls db "Cyls :",0 840 BiosHeads db "Heads :",0 841 BiosSecs db "Secs :",0 842 LvmSecs db "SecsLVM :",0 843 BiosLBA db "LBA Secs:",0 844 845 846 HugeBootDisk db "Boot Disk is Huge : ",0 847 DisksFound db "Disks Found : ",0 848 PartitionsFound db "Partitions Found : ",0 849 ;AutoStartPart db "Auto Start Partition : ",0 850 851 Phase1 db "eCS Install Phase 1 : ",0 852 853 854 ShowMenu db "Press TAB to return to the AiR-BOOT Menu",0 855 ;ShowBootLog db "Press TAB to see the Boot Log...",0 856 857 Yes db "YES",0 858 No db "NO",0 859 On db "ON",0 860 Off db "OFF",0 861 None db "NONE",0 862 Active db "ACTIVE",0 863 NotActive db "NOT ACTIVE",0 864 864 865 865 ; New Line for use by MBR_Teletype 866 NL :db 0dh, 0ah, 0866 NL db 0dh, 0ah, 0 -
trunk/BOOTCODE/SETUP/MAIN.ASM
r38 r40 30 30 LocMENU_ItemPack equ 8 ; only if VariablePtr>0 31 31 32 SETUP_UpperFixString : db 'SETUP ',0 ; AddOn fr "AiR-BOOT SETUP vX.XX"33 34 Include SETUP \MENUS.ASM ; Menu structures35 Include SETUP \PART_SET.ASM ; Partition Setup (in extra file)32 SETUP_UpperFixString db 'SETUP ',0 ; AddOn for "AiR-BOOT SETUP vX.XX" 33 34 Include SETUP/MENUS.ASM ; Menu structures 35 Include SETUP/PART_SET.ASM ; Partition Setup (in extra file) 36 36 37 37 ; CH - Current Item Number … … 69 69 SETUP_SwitchToSelectedItem EndP 70 70 71 SETUP_CheckEnterSETUP Proc Near Uses71 SETUP_CheckEnterSETUP Proc Near 72 72 73 73 … … 117 117 ; In: BP - Pointer to Menu 118 118 ; CurMenu: Left Side 0-6, Right Side 8-14 (Bit 3!) 119 SETUP_MenuTask Proc Near Uses; the main-menu routine119 SETUP_MenuTask Proc Near ; the main-menu routine 120 120 cmp SETUP_ExitEvent, 1 121 121 jne SMT_NoImmediateExit … … 129 129 130 130 mov ax, ds:[bp+1] ; Help Pointer 131 cmp ax, offset TXT_SETUPHELP_M AIN; ask only in main-menu...131 cmp ax, offset TXT_SETUPHELP_Main ; ask only in main-menu... 132 132 jne SMT_NotMainMenu 133 133 call FX_EndScreenLeft ; Do FX, if requested... … … 155 155 cmp ah, Keys_Right 156 156 je SMT_KeyLeftRight 157 cmp ah, Keys_E nter158 je SMT_KeyE nter157 cmp ah, Keys_ENTER 158 je SMT_KeyENTER 159 159 cmp ah, Keys_Plus 160 160 je SMT_KeyPlus … … 199 199 jmp SMT_FixUpModify 200 200 201 SMT_KeyE nter: ; Enters Menu, if no ItemPack available201 SMT_KeyENTER: ; Enters Menu, if no ItemPack available 202 202 mov ch, dh 203 203 call SETUP_SwitchToSelectedItem ; Calculates SI for Item-No (CH) … … 238 238 SMT_KeyEsc: 239 239 mov ax, ds:[bp+1] ; Help Pointer 240 cmp ax, offset TXT_SETUPHELP_M AIN; embarassing? ;-)240 cmp ax, offset TXT_SETUPHELP_Main ; embarassing? ;-) 241 241 jne SMT_ReturnPrev 242 242 jmp SMT_ExitWithoutSaving … … 294 294 ; In: BP - Pointer to Menu 295 295 ; Out: DH - Active Item on Screen 296 SETUP_DrawMenuOnScreen Proc Near Uses296 SETUP_DrawMenuOnScreen Proc Near 297 297 call SETUP_DrawMenuWindow 298 298 mov cx, CLR_MENU_WINDOW_BM … … 396 396 add ch, 6 ; Fix coordinate... 397 397 ; Display the Name and a double-point first 398 push cx si ; BackUp Coordinates and ItemPackPtr 398 ; BackUp Coordinates and ItemPackPtr 399 push cx 400 push si 399 401 push cx 400 402 cmp cl, 40 … … 420 422 call VideoIO_PrintSingleChar ; Write double-point 421 423 mov word ptr TextColorFore, dx 422 pop si cx 424 pop si 425 pop cx 423 426 add cl, 26 ; Fix X-coordinate (for ItemPack) 424 427 call VideoIO_Locate … … 498 501 SETUP_DrawMenuWindow EndP 499 502 500 SETUP_DrawMenuBase Proc Near Uses501 call BOOTMENU_BuildBack Ground503 SETUP_DrawMenuBase Proc Near 504 call BOOTMENU_BuildBackground 502 505 ; -------------------------------------------- Upper Copyright... 503 506 mov cx, 0F00h … … 705 708 ;SETUP_EnterMenu_LinuxCommandLine EndP 706 709 707 SETUP_EnterMenu_DefineMasterPassword Proc Near Uses710 SETUP_EnterMenu_DefineMasterPassword Proc Near 708 711 mov di, offset CFG_MasterPassword 709 712 call SETUP_EnterMenu_DefinePassword … … 711 714 SETUP_EnterMenu_DefineMasterPassword EndP 712 715 713 SETUP_EnterMenu_DefineBootPassword Proc Near Uses716 SETUP_EnterMenu_DefineBootPassword Proc Near 714 717 mov di, offset CFG_BootPassword 715 718 call SETUP_EnterMenu_DefinePassword … … 720 723 721 724 ; [Linux support removed since v1.02] 722 ;SETUP_EnterMenu_EnterLinuxCmdLine Proc Near Uses725 ;SETUP_EnterMenu_EnterLinuxCmdLine Proc Near 723 726 ; mov cx, 0D05h 724 727 ; call VideoIO_Color … … 845 848 mov ax, VideoIO_Page2 846 849 call VideoIO_BackUpTo 847 push ax di 850 push ax 851 push di 848 852 mov ax, 20h ; Space 849 853 mov cx, 16 850 854 rep stosb ; Kill new password 851 855 mov es:[di], ah ; ending NUL 852 pop di ax 856 pop di 857 pop ax 853 858 cmp ax, 0ABABh ; Magic Processing... 854 859 je SLEP_MagicLayOut … … 1039 1044 SEMSAES_DoThis: 1040 1045 xor al, al 1041 mov CFG_AutoEnterS ETUP, al1046 mov CFG_AutoEnterSetup, al 1042 1047 add CFG_LastTimeEditLow, 1 1043 1048 adc CFG_LastTimeEditHi, 0 ; Update Time-Stamp … … 1055 1060 jnz SEMEWS_UserAbort 1056 1061 ; If we were forced to enter Setup, save configuration anyway... 1057 test CFG_AutoEnterS ETUP, 11062 test CFG_AutoEnterSetup, 1 1058 1063 jz SEMEWS_DoThis 1059 1064 jmp SEMEWS_DoThis ; Cross-Jump to SaveAndExitSetup! … … 1072 1077 ; Out: Non-Zero Flag set -> User is sure 1073 1078 ; Destroyed: None 1074 SETUP_Warning_AreYouSure Proc Near Uses1079 SETUP_Warning_AreYouSure Proc Near 1075 1080 mov cx, 0C04h 1076 1081 call VideoIO_Color … … 1167 1172 1168 1173 ; Cur Value in DL, Maximum Value in DH. Add/Sub in CL 1169 SETUPMAGIC_InternalCheckUp Proc Near Uses1174 SETUPMAGIC_InternalCheckUp Proc Near 1170 1175 or cl, cl ; CL==0? -> Decrease 1171 1176 jz SMICU_Substract ; otherwise -> Increase … … 1222 1227 mov al, dl 1223 1228 call VideoIO_PrintByteDynamicNumber 1224 push ds es 1225 pop ds es ; Pseudo-(XCHG DS, ES) 1229 ; Pseudo-(XCHG DS, ES) 1230 push ds 1231 push es 1232 pop ds 1233 pop es 1234 1226 1235 mov di, si 1227 1236 add di, LocMENU_ItemPack ; ES:DI - ItemPack 1228 1237 mov si, 4000 ; DS:SI - Screen Page 1 1229 push es di 1238 push es 1239 push di 1230 1240 mov cx, 4 1231 1241 SMCBD_Loop: … … 1233 1243 stosb 1234 1244 loop SMCBD_Loop ; okay we got it...trick! 1235 pop si ds ; DS:SI - ItemPack 1245 ; DS:SI - ItemPack 1246 pop si 1247 pop ds 1236 1248 mov cx, 12 1237 1249 call GetLenOfName ; Gets the length of the number … … 1299 1311 call PART_GetPartitionPointer 1300 1312 mov ax, ds:[si+LocIPT_Flags] 1301 test ax, Flags_Boot Able1313 test ax, Flags_Bootable 1302 1314 jz SMCP_Inc_RejectPartition 1303 1315 jmp SMCP_GotSelection … … 1330 1342 call PART_GetPartitionPointer 1331 1343 mov ax, ds:[si+LocIPT_Flags] 1332 test ax, Flags_Boot Able1344 test ax, Flags_Bootable 1333 1345 jz SMCP_Dec_RejectPartition 1334 1346 -
trunk/BOOTCODE/SETUP/MENUS.ASM
r38 r40 69 69 SETUP_MainMenu: 70 70 db 0 ; Where Current Item will get saved 71 dw offset TXT_SETUPHELP_M AIN; Pointer to help information71 dw offset TXT_SETUPHELP_Main ; Pointer to help information 72 72 ; The Menu-Items start here... 73 73 dw offset SETUP_EnterMenu_PartitionSetup, 0 … … 103 103 SETUP_BasicOptions: 104 104 db 0 ; Where Current Item will get saved 105 dw offset TXT_SETUPHELP_S UBMENU; Pointer to help info105 dw offset TXT_SETUPHELP_SubMenu ; Pointer to help info 106 106 ; The Menu-Items start here... 107 107 dw offset SETUPMAGIC_ChangeDefaultSelection, offset CFG_PartDefault … … 135 135 dw 0, 0 136 136 dw offset SETUPMAGIC_EnableDisable, offset CFG_ProtectMBR 137 dw offset TXT_SETUP_M BRprotection, offset TXT_SETUPHELP_MBRprotection137 dw offset TXT_SETUP_MbrProtection, offset TXT_SETUPHELP_MbrProtection 138 138 dw 6 dup (0) 139 139 dw offset SETUPMAGIC_EnableDisable, offset CFG_IgnoreWriteToMBR 140 dw offset TXT_SETUP_IgnoreM BRwrites, offset TXT_SETUPHELP_IGNOREMBRWRITES140 dw offset TXT_SETUP_IgnoreMbrWrites, offset TXT_SETUPHELP_IgnoreMbrWrites 141 141 dw 6 dup (0) 142 142 dw 0, 0 … … 151 151 SETUP_AdvancedOptions: 152 152 db 0 ; Where Current Item will get saved 153 dw offset TXT_SETUPHELP_S UBMENU; Pointer to help info153 dw offset TXT_SETUPHELP_SubMenu ; Pointer to help info 154 154 ; The Menu-Items start here... 155 155 dw offset SETUPMAGIC_ChangeBootMenu, offset CFG_BootMenuActive … … 163 163 ; Separator Line 164 164 dw 0, 0 165 dw offset TXT_SETUP_S ECURITYOPTIONS, 0165 dw offset TXT_SETUP_SecurityOptions, 0 166 166 dw offset SETUPMAGIC_EnableDisable, offset CFG_PasswordSetup 167 167 dw offset TXT_SETUP_PasswordedSetup, offset TXT_SETUPHELP_PasswordedSetup … … 198 198 SETUP_ExtendedBootOptions: 199 199 db 0 ; Where Current Item will get saved 200 dw offset TXT_SETUPHELP_S UBMENU; Pointer to help information200 dw offset TXT_SETUPHELP_SubMenu ; Pointer to help information 201 201 ; The Menu-Items start here... 202 202 ; [Linux support removed since v1.02] -
trunk/BOOTCODE/SETUP/PART_SET.ASM
r38 r40 25 25 26 26 ; This here is called from Menu in AIR-BSET.asm 27 PARTSETUP_Main Proc Near Uses27 PARTSETUP_Main Proc Near 28 28 ; Build Fixed Content... 29 29 call PARTSETUP_DrawMenuBase … … 53 53 cmp ah, Keys_F1 54 54 je PSM_KeyF1 55 cmp ah, Keys_E nter55 cmp ah, Keys_ENTER 56 56 je PSM_KeyENTER 57 57 ; Flags-Change … … 110 110 jmp PSM_MainLoop 111 111 112 ; Disabling editing for type 0x35 is currently implemented 113 ; in PARTSETUP_ChangePartitionName. 112 114 PSM_KeyENTER: 113 115 call PARTSETUP_ChangePartitionName … … 120 122 PSM_KeyBootAble: 121 123 call PART_GetPartitionPointer ; Gets Partition (DL) Pointer -> SI 124 ; See if this is an eCS LVM Volume. 125 ; In that case, we don't allow it to be made bootable. 126 ; We also show a popup to inform the user. 127 call PARTSETUP_IsType35 128 je PSM_KeyBootAble_istype35 129 130 PSM_KeyBootAble_notype35: 122 131 mov al, [si+LocIPT_Flags] 123 xor al, Flags_Boot Able132 xor al, Flags_Bootable 124 133 mov [si+LocIPT_Flags], al 125 134 call PARTSETUP_DrawPartitionInfo 126 135 call PARTSETUP_BuildChoiceBar 136 PSM_KeyBootAble_istype35: 127 137 jmp PSM_MainLoop 128 138 … … 164 174 PARTSETUP_Main EndP 165 175 176 177 ; See if this is a partition of type 0x35 and display error 178 ; when user tries to set it as bootable. 179 ; IN: SI = Pointer to partition 180 ; OUT: ZF = Set if 0x35, clear otherwise 181 PARTSETUP_IsType35 Proc Near 182 mov al, [si+LocIPT_SystemID] 183 cmp al, 35h 184 jne PARTSETUP_IsType35_end 185 pushf 186 pusha 187 ; Cannot boot LVM-Data partitions 188 mov cx, 0C04h 189 mov si, offset TXT_SETUP_NoBootType35 190 call SETUP_ShowErrorBox 191 popa 192 call PARTSETUP_DrawMenuBase 193 call PARTSETUP_RefreshPartitions 194 call PARTSETUP_BuildChoiceBar 195 popf 196 PARTSETUP_IsType35_end: 197 ret 198 PARTSETUP_IsType35 EndP 199 200 166 201 ; Draw all standard-things for Partition Setup, dynamic content not included. 167 202 PARTSETUP_DrawMenuBase Proc Near Uses dx … … 251 286 call VideoIO_FixedPrint 252 287 253 mov si, offset TXT_SETUPHELP_P ARTSETUP288 mov si, offset TXT_SETUPHELP_PartSetup 254 289 call SETUP_DrawMenuHelp 255 290 ret … … 370 405 mov cl, 11 371 406 call VideoIO_FixedPrint 372 pop si cx 407 pop si 408 pop cx 373 409 374 410 ; Display "Flags" field aka "BVHL" … … 379 415 mov bh, bl 380 416 mov al, TXT_SETUP_FlagLetterBootable 381 and bl, Flags_Boot Able417 and bl, Flags_Bootable 382 418 call PARTSETUP_DrawOneFlag 383 419 mov bl, bh … … 429 465 ; DH - New Active (to be activated) 430 466 ; Destroyed: None 431 PARTSETUP_BuildChoiceBar Proc Near Uses467 PARTSETUP_BuildChoiceBar Proc Near 432 468 cmp dl, dh 433 469 je PSBCB_SkipRetrace … … 666 702 cmp byte ptr [si+LocIPT_SystemID], 035h 667 703 jnz no_type_35h 704 705 ; Cannot boot LVM-Data partitions 706 pusha 707 mov cx, 0C04h 708 mov si, offset TXT_SETUP_NoEditType35 709 call SETUP_ShowErrorBox 710 popa 711 712 668 713 jmp PSCPN_AllDone 669 714 no_type_35h: 670 715 671 716 mov cx, 11 ; Partition-Name-Length = 11 Bytes 672 push si di 717 push si 718 push di 673 719 add si, LocIPT_Name ; DS:SI -> Partition-Name 674 720 repz cmpsb 675 pop di si 721 pop di 722 pop si 676 723 jne PSCPN_LetUserEditPartName ; -> No BR/LVM Changing/Saving 677 724 … … 741 788 742 789 ; ----------------------------------------------[LVM SAVE PARTITION NAME]--- 743 ; Copy 11 bytes from IPT into LVM Partit onName, back-padd with zero's790 ; Copy 11 bytes from IPT into LVM PartitionName, back-padd with zero's 744 791 mov cx, 11 745 792 push si … … 848 895 cmp ah, Keys_F1 849 896 je PHSM_KeyF1 850 cmp ah, Keys_E nter897 cmp ah, Keys_ENTER 851 898 je PHSM_KeyToogle 852 899 cmp ah, Keys_Plus … … 958 1005 sub dl, cl ; Adjust position 959 1006 sub dl, 2 960 push cx si ; SI == Label Field 1007 push cx 1008 push si ; SI == Label Field 961 1009 mov cx, dx 962 1010 call VideoIO_Locate … … 965 1013 mov si, offset TXT_SETUP_HideFeature2 966 1014 call VideoIO_Print 967 pop si cx 1015 pop si 1016 pop cx 968 1017 call VideoIO_FixedPrint 969 1018 mov al, '>' … … 1134 1183 ; DH - New Active (to be activated) 1135 1184 ; Destroyed: None 1136 PARTHIDESETUP_BuildChoiceBar Proc Near Uses1185 PARTHIDESETUP_BuildChoiceBar Proc Near 1137 1186 cmp dl, dh 1138 1187 je PHSBCB_SkipRetrace … … 1265 1314 mov di, offset HidePartitionTable 1266 1315 add di, ax ; We got the pointer 1267 push di di 1316 push di 1317 push di 1268 1318 mov cx, LocIPT_MaxPartitions 1269 1319 mov al, 0FFh … … 1367 1417 cmp ah, Keys_ESC 1368 1418 je PSDLS_KeyDONE 1369 cmp ah, Keys_E nter1419 cmp ah, Keys_ENTER 1370 1420 je PSDLS_KeyDONE 1371 1421 ; Direct-Letter-Input -
trunk/BOOTCODE/SPECIAL/F00K/BILLSUXX.ASM
r38 r40 51 51 jz MSHPPT_NoMShack 52 52 MSHPPT_HarddriveLoop: 53 push ax bx cx dx 53 push ax 54 push bx 55 push cx 56 push dx 54 57 xor ax, ax 55 58 xor bx, bx ; Location Absolute Sector 0 … … 57 60 xor dh, dh ; Location Cylinder 0, Head 0, Sector 1 MBR/PPT 58 61 call DriveIO_LoadPartition 59 pop dx cx bx ax 62 pop dx 63 pop cx 64 pop bx 65 pop ax 60 66 jc MSHPPT_Failure 61 67 -
trunk/BOOTCODE/SPECIAL/FAT16.ASM
r38 r40 103 103 xor di, di 104 104 FAT16SE_SearchLoop: 105 push si di 105 push si 106 push di 106 107 mov cx, 11 107 108 repe cmpsb ; Compare total 11-bytes 108 pop di si 109 pop di 110 pop si 109 111 je FAT16SE_EntryFound 110 112 add di, 32 ; Skip 1 FAT16-Entry now :) … … 221 223 222 224 ; Set Size-Entry in KernelSizeTable 223 push ds si di 225 push ds 226 push si 227 push di 224 228 mov bx, ds:[si+30] 225 229 mov ax, ds:[si+28] ; BX:AX - Size of file in Bytes … … 240 244 mov di, si 241 245 call PART_FillOutSizeElement ; BX:AX -> ES:DI (Size Element) 242 pop di si ds 246 pop di 247 pop si 248 pop ds 243 249 244 250 ; Copy entry and make append extension to basename -
trunk/BOOTCODE/SPECIAL/FX.ASM
r38 r40 27 27 ; If you rip this code, I will ./ your ass. =] 28 28 29 Include SPECIAL \FXTABLES.asm29 Include SPECIAL/FXTABLES.ASM 30 30 31 31 FX_MaxScanLine equ 384 32 32 FX_TotalCooperBars equ 7 33 33 34 FX_CalculateTables Proc Near Uses34 FX_CalculateTables Proc Near 35 35 ; Calculate the Cooper-Bar Color-Table -> FX_CooperColors 36 36 mov di, offset FX_CooperColors … … 57 57 ; Out: *none* 58 58 ; Destroyed: DI - updated, +96 59 FX_MakeCooperBarColors Proc Near Uses59 FX_MakeCooperBarColors Proc Near 60 60 mov bh, ah 61 61 shl bh, 4 … … 82 82 add di, 3 83 83 loop FX_MCBC_BuildColorLoop1 84 push ax bx 84 push ax 85 push bx 85 86 add ax, 0101h 86 87 add bl, 01h … … 92 93 mov es:[di+5], bl 93 94 add di, 6 94 pop bx ax 95 pop bx 96 pop ax 95 97 mov cx, 15 96 98 FX_MCBC_BuildColorLoop2: … … 109 111 ; If FX is active, we will modify the base segment for videoio to page 2, 110 112 ; so the screen will be generated there instead of the current page. 111 FX_StartScreen Proc Near Uses113 FX_StartScreen Proc Near 112 114 test CFG_CooperBars, 1 113 115 jz FXSS_NoFX … … 120 122 ; If FX is active, we will copy the new screen to scroll area, do the FX, 121 123 ; copy the new screen to Page 0 and activate it. 122 FX_EndScreenLeft Proc Near Uses124 FX_EndScreenLeft Proc Near 123 125 test CFG_CooperBars, 1 124 126 jnz FXESL_Go … … 141 143 FX_EndScreenLeft EndP 142 144 143 FX_ScrollScreenLeft Proc Near Uses145 FX_ScrollScreenLeft Proc Near 144 146 mov FX_WideScrollerCurPos, 640 145 147 mov FX_WideScrollerDirection, 0 … … 149 151 FX_ScrollScreenLeft EndP 150 152 151 FX_EndScreenRight Proc Near Uses153 FX_EndScreenRight Proc Near 152 154 test CFG_CooperBars, 1 153 155 jnz FXESR_Go … … 170 172 FX_EndScreenRight EndP 171 173 172 FX_ScrollScreenRight Proc Near Uses174 FX_ScrollScreenRight Proc Near 173 175 mov FX_WideScrollerCurPos, 0 174 176 mov FX_WideScrollerDirection, 1 … … 178 180 FX_ScrollScreenRight EndP 179 181 180 FX_EndScreenInternalGo Proc Near Uses182 FX_EndScreenInternalGo Proc Near 181 183 mov FX_WideScrollerSpeed, 1 182 184 mov FX_WideScrollerSpeedState, 1 … … 199 201 FX_EndScreenInternalGo EndP 200 202 201 FX_EndScreenInternalCleanUp Proc Near Uses203 FX_EndScreenInternalCleanUp Proc Near 202 204 mov ax, -1 203 205 call FX_SetVideoStart … … 357 359 ; Out: *none* 358 360 ; Destroyed: all 359 FX_CalculateCoopers Proc Near Uses361 FX_CalculateCoopers Proc Near 360 362 ; Logic: When Intro-State: Increase CooperPos by 1 till 256 -> then active 361 363 ; Active-State: Use SinusTable, till SinusPos=7Fh -> then Extro … … 414 416 FX_CalculateCoopers EndP 415 417 416 FX_CalculateWideScroller Proc Near Uses418 FX_CalculateWideScroller Proc Near 417 419 mov bx, FX_WideScrollerCurPos 418 420 ;movzx cx, FX_WideScrollerSpeed … … 515 517 FX_CalculateWideScroller EndP 516 518 517 FX_WaitRetrace Proc Near Uses519 FX_WaitRetrace Proc Near 518 520 mov dx, 3DAh 519 521 FX_WR1: … … 528 530 FX_WaitRetrace EndP 529 531 530 FX_WaitVRetrace Proc Near Uses532 FX_WaitVRetrace Proc Near 531 533 mov dx, 3DAh 532 534 FX_WVR1: -
trunk/BOOTCODE/SPECIAL/LINUX.ASM
r38 r40 188 188 add di, LocIPT_Name 189 189 LSKN_SearchLoop: 190 push cx si di 190 push cx 191 push si 192 push di 191 193 mov cx, 11 192 194 repe cmpsb ; Compare total 11-bytes 193 pop di si cx 195 pop di 196 pop si 197 pop cx 194 198 je LSKN_Found 195 199 add di, LocIPT_LenOfIPT … … 224 228 ; Linux has 1 'BR' (which is crap) and some setup sectors 225 229 ; we load them at 9000:0, what a luck, we are at 8000:0 :-)) 226 push ds es 230 push ds 231 push es 227 232 mov ax, 9000h 228 233 mov es, ax … … 255 260 mov ax, 6000h 256 261 mov es, ax 257 push cx si ; Push Kernel-Entry-Pointer 262 ; Push Kernel-Entry-Pointer 263 push cx 264 push si 258 265 mov si, di 259 266 shl cx, 9 ; Sectors to Byte Count … … 262 269 shr cx, 1 263 270 rep movsw ; Copy Data... 264 pop si cx ; Get Kernel-Entry-Pointer back 271 ; Get Kernel-Entry-Pointer back 272 pop si 273 pop cx 265 274 LLL_GotAll: 266 pop es ds 267 268 push cx dx ; Push Missing-Sectors, StartCluster 275 pop es 276 pop ds 277 278 ; Push Missing-Sectors, StartCluster 279 push cx 280 push dx 269 281 mov ax, 9000h 270 282 mov ds, ax … … 336 348 stosb ; Write another NUL 337 349 pop cx 338 pop dx bx ; Pop StartCluster, Missing-Sectors 350 ; Pop StartCluster, Missing-Sectors 351 pop dx 352 pop bx 339 353 ; CX - Sector-Count of Kernel Image, DX - Starting Cluster of Kernel Image 340 354 ; BX - Sector-Count left over in 6000:0 area from Setup Code loading -
trunk/BOOTCODE/SPECIAL/LVM.ASM
r38 r40 24 24 ENDIF 25 25 26 LVM_InitCRCTable Proc Near Uses26 LVM_InitCRCTable Proc Near 27 27 ; Initializes our LVM-CRC-Table 28 28 xor cl, cl … … 90 90 ; Out: Carry set, if valid LVM signature found 91 91 ; Destroyed: None 92 LVM_CheckSectorSignature Proc Near Uses92 LVM_CheckSectorSignature Proc Near 93 93 test [CFG_IgnoreLVM], 1 ; We are supposed to ignore LVM, so 94 94 jnz LVMCSS_InvalidSignature ; any sector is bad! … … 176 176 LVM_GetDriveLetter Proc Near Uses bx cx dx si di ds es 177 177 ; For primary partitions this information is stored in the last 178 ; sector of track0; for all four partition entries shouldthey179 ; all beprimary ones.178 ; sector of track0; for all four partition entries in case they 179 ; they are all primary ones. 180 180 ; 181 181 ; LVM DLAT info for logical partitions is stored in the sector -
trunk/BOOTCODE/SPECIAL/VIRUS.ASM
r38 r40 33 33 mov di, offset CFG_VIR_INT08 34 34 push di 35 rep scasb35 repe scasb 36 36 pop di 37 37 jne VCFS_AlreadyInitiated … … 102 102 int 16h ; Waits for any keystroke 103 103 jmp VCFS_InitNow 104 104 105 VCFS_WhewThisIsOne: 105 mov si, offset TXT_VirusFoundMain 106 call MBR_Teletype 107 ; Now check BackUp MBR for validation (AiRBOOT signature), do this 108 ; using direct-calls to original bios handler. 109 call ANTIVIR_RestoreMBR 110 jnc VCFS_ValidRestore 111 mov si, offset TXT_VirusFound1damn 112 call MBR_Teletype 113 call MBR_Teletype ; VirusFound1any 114 mov si, offset TXT_VirusFoundEnd 115 call MBR_Teletype 116 jmp MBR_HaltSystem 117 118 VCFS_ValidRestore: 119 mov si, offset TXT_VirusFound1ok 120 call MBR_Teletype 121 mov si, offset TXT_VirusFound1any 122 call MBR_Teletype 123 mov si, offset TXT_VirusFoundEnd 124 call MBR_Teletype 125 jmp MBR_HaltSystem 106 call VIRUS_TryRestore 107 108 ; Code should no reach this since we halt the system in VIRUS_TryRestore. 109 ret 126 110 VIRUS_CheckForStealth EndP 111 112 ; 113 ; This procedure is created to avoid jumping to labels that are local to 114 ; procedures. JWasm does not allow that. 115 ; Should be fixed better later. 116 ; 117 VIRUS_TryRestore Proc Near 118 mov si, offset TXT_VirusFoundMain 119 call MBR_Teletype 120 ; Now check BackUp MBR for validation (AiRBOOT signature), do this 121 ; using direct-calls to original bios handler. 122 call ANTIVIR_RestoreMBR 123 jnc VIRUS_TryRestore_ValidRestore 124 125 mov si, offset TXT_VirusFound1damn 126 call MBR_Teletype 127 call MBR_Teletype ; VirusFound1any 128 mov si, offset TXT_VirusFoundEnd 129 call MBR_Teletype 130 jmp MBR_HaltSystem 131 132 VIRUS_TryRestore_ValidRestore: 133 mov si, offset TXT_VirusFound1ok 134 call MBR_Teletype 135 mov si, offset TXT_VirusFound1any 136 call MBR_Teletype 137 mov si, offset TXT_VirusFoundEnd 138 call MBR_Teletype 139 jmp MBR_HaltSystem 140 141 ; Code should not reach this since we halt the system. 142 VIRUS_TryRestore Endp 143 127 144 128 145 ; Checks system for normal-MBR-virus... (done by comparing current MBR with … … 131 148 ; Segment Registers preserved 132 149 VIRUS_CheckForVirus Proc Near Uses ds si es di 133 push cs cs 134 pop ds es 150 push cs 151 push cs 152 pop ds 153 pop es 135 154 mov bx, offset TmpSector 136 155 mov dx, 0080h … … 145 164 mov cx, 223 ; Compare 446 bytes 146 165 repz cmpsw ; if fail: Cross call to Stealth-Virus 147 jne VCFS_WhewThisIsOne 166 ;jne VCFS_WhewThisIsOne 167 je VIRUS_CheckForVirus_end 168 call VIRUS_TryRestore 169 VIRUS_CheckForVirus_end: 148 170 ret 149 171 VIRUS_CheckForVirus EndP … … 167 189 168 190 ; Will report Carry-Clear, if BackUp MBR is valid (supposingly) 169 ANTIVIR_CheckBackUpMBR Proc Near Uses 170 push cs cs 171 pop es ds 191 ANTIVIR_CheckBackUpMBR Proc Near 192 push cs 193 push cs 194 pop es 195 pop ds 172 196 mov bx, offset TmpSector 173 197 mov dx, 0080h … … 190 214 ANTIVIR_CheckBackUpMBR EndP 191 215 192 ANTIVIR_RestoreMBR Proc Near Uses216 ANTIVIR_RestoreMBR Proc Near 193 217 call ANTIVIR_CheckBackUpMBR 194 218 jnc ARMBR_DoIt -
trunk/DOCS/GENERIC/DISCLAIM.TXT
r29 r40 8 8 º warranty for bug-free operation, fitness for a particular purpose or the º 9 9 º appropriate behaviour of the program. º 10 º º11 º This software may not be used in any way by US government. This means it º12 º may not be used on any US government/military computers in any case. It º13 º also means that if you are working for US government in any way, then you º14 º are not allowed to use it as well. º15 10 º º 16 11 º THE SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED º … … 32 27 º º 33 28 º All trademarks mentioned anywhere around here are property of their owners º 34 º and the like... This means e.g. "Microsoft Windows (9x/NT/2000/XP/YP/ZP", º 35 º "Microsoft", "bugfix" and "exploit" are trademarks of Microsoft Corp. º 36 º Also "killing people for oil" and "torturing for freedom" are trademarks º 37 º of american government. º 29 º and the like... º 38 30 º º 39 31 ÓÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ ú ú ÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄœ
Note:
See TracChangeset
for help on using the changeset viewer.