Changeset 38
- Timestamp:
- Apr 11, 2014, 9:36:56 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/BOOTCODE/AIR-BOOT.ASM
r37 r38 484 484 LocIPT_AbsoluteBegin equ 26 ; Absolute Sector of Begin 485 485 LocIPT_AbsolutePartTable equ 30 ; Absolute Sector of PartTable 486 487 ; Hidden Partition Table 488 LocHPT_LenOfHPT equ 30 ; Length of an HPT-entry 486 489 487 490 ; AiR-BOOT IPT-Flags … … 1199 1202 ;call MBR_TeletypeNL 1200 1203 pop si 1201 add si, 30 1204 add si, 30 ; Add remainder of IPT entry 1202 1205 loop MBR_Parts 1203 1206 … … 1854 1857 ; --------------------> 34 Bytes (total maximum partition-entries = 30) 1855 1858 1856 db ( partition_count * 34) dup (0)1859 db (LocIPT_MaxPartitions * LocIPT_LenOfIPT) dup (0) 1857 1860 1858 1861 … … 1889 1892 sos58: 1890 1893 ; 7400h 1891 HidePartitionTable db ( partition_count * 30) dup (0FFh)1894 HidePartitionTable db (LocIPT_MaxPartitions * LocHPT_LenOfHPT) dup (0FFh) 1892 1895 ; Format is: 1893 1896 ;============ 1894 1897 ; PartitionPtr : BYTE * 30 1895 ; --------------------> 30 Bytes * 301896 1897 DriveLetters db partition_count dup ('L')1898 ; --------------------> 30 Bytes * 45 1899 1900 DriveLetters db LocIPT_MaxPartitions dup (0) 1898 1901 ; Format is: 1899 1902 ;============ 1900 1903 ; Drive-Letter : BYTE (80h-C:, 81h-D:) 1901 ; --------------------> 1 Byte * 301904 ; --------------------> 1 Byte * 45 1902 1905 1903 1906 ; … … 1981 1984 ;------------------------------------------------------------------------------ 1982 1985 ; 1983 ; Disabling the org, so it comes directly after the 1984 ; image, does not work. All floppy entries. 1985 ; Something goes wrong, so we offset the BSS for 1986 ; now. 1986 ; Removed org for BSS data to be more compatible 1987 ; with segment-concatenated layout. 1987 1988 ; 1988 org 02000h ; Uninitialized1989 ;org 0A000h ; Uninitialized 1989 1990 1990 1991 … … 1998 1999 ; Everything used to build a new IPT and reference it to the old one 1999 2000 NewPartTable db 1536 dup (?) ; New Partition Table 2000 NewHidePartTable db partition_count * 30dup (?) ; New Hide-Partition Table2001 NewHidePartTable db partition_count * LocHPT_LenOfHPT dup (?) ; New Hide-Partition Table 2001 2002 NewDriveLetters db partition_count dup (?) ; Logical Drive-Letters 2002 2003 -
trunk/BOOTCODE/BLDDATE.ASM
r37 r38 1 1 IFDEF JWASM 2 BUILD_DATE db 'Build Date: 15 Feb 2012 at 1 1:15:00 [JWasm]',02 BUILD_DATE db 'Build Date: 15 Feb 2012 at 19:30:00 [JWasm]',0 3 3 ENDIF 4 4 IFDEF TASM 5 BUILD_DATE db 'Build Date: 15 Feb 2012 at 1 1:15:00 [Tasm]',05 BUILD_DATE db 'Build Date: 15 Feb 2012 at 19:30:00 [Tasm]',0 6 6 ENDIF -
trunk/BOOTCODE/REGULAR/BOOTMENU.ASM
r37 r38 718 718 ; Will Set some Vars after user selected entry to boot... 719 719 ; ...don't select Straight View ! 720 BOOTMENU_SetVarsAfterMenu Proc Near 720 BOOTMENU_SetVarsAfterMenu Proc Near Uses 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 783 push dx 782 push ax dx 784 783 call TIMER_GetTicCount 785 784 mov dx, word ptr [TimedTimeOut] … … 794 793 cmp al, 0 795 794 jne BME_NoTimeOut 796 pop dx 797 pop ax 795 pop dx ax 798 796 mov dl, Menu_EntryDefault 799 797 and CFG_TimedBootLast, 1 … … 807 805 808 806 BME_NoTimeOut: 809 pop dx 810 pop ax 807 pop dx ax 811 808 BME_NoTimedBoot: 812 809 ; ------------------------------------------------ FLOPPY-NAME TIMER … … 814 811 jz BME_NoFloppyNameTimer 815 812 ; Wait 2 Seconds everytime 816 push ax 817 push dx 813 push ax dx 818 814 call TIMER_GetTicCount 819 815 cmp dx, wptr [FloppyGetNameTimer+2] … … 823 819 BME_ExpiredGetFloppy: 824 820 call BOOTMENU_ResetGetFloppy 825 pop dx 826 pop ax 821 pop dx ax 827 822 jmp BME_RefreshFloppyName 828 823 BME_NoFloppyNameExpired: 829 pop dx 830 pop ax 824 pop dx ax 831 825 BME_NoFloppyNameTimer: 832 826 ; ------------------------------------------------ KEYBOARD … … 854 848 int 16h 855 849 pop dx 856 cmp ah, Keys_E NTER850 cmp ah, Keys_Enter 857 851 je BME_KeyEnter 858 852 cmp ah, Keys_F10 -
trunk/BOOTCODE/REGULAR/DRIVEIO.ASM
r37 r38 153 153 154 154 DriveIO_GetHardDriveCount Proc Near Uses ds si 155 push ds 156 push si 155 push ds si 157 156 push 0040h 158 157 pop ds 159 158 mov si, 0075h 160 159 mov dh, ds:[si] ; 40:75 -> POST: Total Harddiscs == DL 161 pop si 162 pop ds 160 pop si ds 163 161 mov TotalHarddiscs, dh 164 162 ret … … 175 173 mov dl, 80h 176 174 DIOILUT_DriveLoop: 177 push dx 178 push di 175 push dx di 179 176 mov ah, 08h 180 177 int 13h ; DISK - GET DRIVE PARAMETERS … … 193 190 ; bit 16-23 of the LBA address 194 191 DIOILUT_Error: 195 pop di 196 pop dx 192 pop di dx 197 193 mov bptr ds:[di], ah ; Save that value 198 194 inc di ; Go to next BYTE … … 210 206 ; Rousseau: Enhanced to handle sector-numbers 127 and 255 besides 63 for LVM-info sectors. 211 207 ; Ugly, need to cleanup. 212 DriveIO_LVMAdjustToInfoSector Proc Near 208 DriveIO_LVMAdjustToInfoSector Proc Near Uses 213 209 214 210 … … 475 471 DriveIO_LVMAdjustToInfoSector EndP 476 472 477 drive 478 before_lvm_adjust 479 after_lvm_adjust 480 before_lvm_adjust_log 481 after_lvm_adjust_log 482 spt_used 473 drive: db 'drive : ',0 474 before_lvm_adjust: db 'before lvm adjust : ',0 475 after_lvm_adjust: db 'after lvm adjust : ',0 476 before_lvm_adjust_log: db 'before lvm logical adjust: ',0 477 after_lvm_adjust_log: db 'after lvm logical adjust : ',0 478 spt_used: db 'spt used : ',0 483 479 484 480 … … 555 551 556 552 ; Keeps DS:SI for caller 557 DriveIO_LoadTmpSector Proc Near 553 DriveIO_LoadTmpSector Proc Near Uses 558 554 mov si, offset TmpSector 559 555 call DriveIO_LoadSector ; Uses INT13X if needed … … 562 558 563 559 ; Keeps DS:SI for caller 564 DriveIO_SaveTmpSector Proc Near 560 DriveIO_SaveTmpSector Proc Near Uses 565 561 mov si, offset TmpSector 566 562 call DriveIO_SaveSector … … 630 626 631 627 ; Memory-Block that holds information for LBA-access via INT 13h 632 DriveIO_DAP 628 DriveIO_DAP: db 10h ; Size of paket 633 629 db 0 ; Reserved 634 630 DriveIO_DAP_NumBlocks dw 0 ; Number of blocks … … 656 652 mov bptr [si+5], dl 657 653 call MBR_Teletype 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 654 jmp MBRLE_Halt 664 655 DriveIO_GotLoadError EndP 665 656 … … 1246 1237 1247 1238 ; Values for sectors per track table corresponding to DriveIO_IsHugeDrive return value. 1248 secs_per_track_table 1239 secs_per_track_table: db 63,127,255,255,255,255 1249 1240 1250 1241 ;db_lmlvm: db 'Load Master LVM -- disk: ',0 -
trunk/BOOTCODE/REGULAR/OTHER.ASM
r37 r38 83 83 GetLenOfStrings EndP 84 84 85 PRECRAP_Main Proc Near 85 PRECRAP_Main Proc Near Uses 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 359 AFTERCRAP_Main Proc Near Uses 360 360 ; =================================================== 361 361 ; Now get volume label of FloppyDrive, if wanted... -
trunk/BOOTCODE/REGULAR/PARTMAIN.ASM
r37 r38 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 292 PART_ConvertToStraight Proc Near Uses 293 293 ;movzx bx, dl 294 294 mov bl,dl ; partition number to bl … … 928 928 929 929 PSP_ForceI13X: 930 push es 931 push di 932 push si 930 push es di si 933 931 934 932 ; Setup ES and FS. … … 954 952 mov wptr es:[di+06], ax 955 953 956 pop si 957 pop di 958 pop es 954 pop si di es 959 955 960 956 … … 1155 1151 jz PSP_NoMBRprotect 1156 1152 ; -------------------------------------------------- INSTALLS MBR-PROTECTION 1157 ; We need DS:SI later... 1158 push ds 1159 push si 1153 push ds si ; We need DS:SI later... 1160 1154 ; First subtract 1024 bytes from Base-Memory... 1161 1155 push ds … … 1201 1195 mov ds:[si+2], dx ; Vector hardcoded at DS:0009 1202 1196 ; MBR-Protection now active :) 1203 ; Restore DS:SI 1204 pop si 1205 pop ds 1197 pop si ds ; Restore DS:SI 1206 1198 1207 1199 … … 1287 1279 mov ax,bx 1288 1280 call VideoIO_PrintHexWord 1289 mov ax,[si+LocIPT_AbsolutePartTable+02]1290 call VideoIO_PrintHexWord1291 mov ax,[si+LocIPT_AbsolutePartTable+00]1292 call VideoIO_PrintHexWord1293 mov al,[ExtendedAbsPosSet]1294 call VideoIO_PrintHexByte1295 1281 popa 1296 1282 … … 1308 1294 1309 1295 ; 1310 ; Update the phys-disk field 1311 ; DI points to PartitionSector 1312 ; BX holds index to phys-disk field 1296 ; Update the phys-drive field 1313 1297 ; 1314 1298 mov al,byte ptr [si+LocIPT_Drive] … … 1683 1667 ;popa 1684 1668 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 1669 1670 ; About 1.5 seconds 1671 mov al,30 1708 1672 call TIMER_WaitTicCount 1709 loop print_next_dot1710 popa1711 1712 ;1713 ; Enter here to skip delay.1714 ;1715 skip_delay:1716 1717 1718 1673 1719 1674 ; … … 2122 2077 ; CY = Set if BOOTMGR found, clear if not 2123 2078 ; 2124 ;PART_IsWinBMGR Proc Near Uses ax bx cx dx si di ds es2125 ; 2126 ;; Load specified LBA sector (BX:CX) from the disk in DL2127 ;mov di,ds2128 ;mov si,offset [TmpSector]2129 ;call DriveIO_LoadSectorLBA2130 2131 ;; Point to location of 'BOOTMGR' signature.2132 ;add si,169h2133 2134 ;; DL holds equality status2135 ;xor dl,dl2136 ;cld2137 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 ;lodsb2142 ;xor al,'B'2143 ;or dl,al2144 ;lodsb2145 ;xor al,'O'2146 ;or dl,al2147 ;lodsb2148 ;xor al,'O'2149 ;or dl,al2150 ;lodsb2151 ;xor al,'T'2152 ;or dl,al2153 ;lodsb2154 ;xor al,'M'2155 ;or dl,al2156 ;lodsb2157 ;xor al,'G'2158 ;or dl,al2159 ;lodsb2160 ;xor al,'R'2161 ;or dl,al2162 2163 ;; Assume not present2164 ;clc2165 ;jnz PART_IsWinBMGR_exit2166 2167 ;; BOOTMGR signature found2168 ;stc2169 2170 ;PART_IsWinBMGR_exit:2171 ;ret2172 ;PART_IsWinBMGR Endp2079 PART_IsWinBMGR Proc Near Uses ax bx cx dx si di ds es 2080 2081 ; Load specified LBA sector (BX:CX) from the disk in DL 2082 mov di,ds 2083 mov si,offset [TmpSector] 2084 call DriveIO_LoadSectorLBA 2085 2086 ; Point to location of 'BOOTMGR' signature. 2087 add si,169h 2088 2089 ; DL holds equality status 2090 xor dl,dl 2091 cld 2092 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 lodsb 2097 xor al,'B' 2098 or dl,al 2099 lodsb 2100 xor al,'O' 2101 or dl,al 2102 lodsb 2103 xor al,'O' 2104 or dl,al 2105 lodsb 2106 xor al,'T' 2107 or dl,al 2108 lodsb 2109 xor al,'M' 2110 or dl,al 2111 lodsb 2112 xor al,'G' 2113 or dl,al 2114 lodsb 2115 xor al,'R' 2116 or dl,al 2117 2118 ; Assume not present 2119 clc 2120 jnz PART_IsWinBMGR_exit 2121 2122 ; BOOTMGR signature found 2123 stc 2124 2125 PART_IsWinBMGR_exit: 2126 ret 2127 PART_IsWinBMGR Endp 2173 2128 2174 2129 -
trunk/BOOTCODE/REGULAR/PARTSCAN.ASM
r37 r38 28 28 ; here. 29 29 30 PARTSCAN_ScanForPartitions Proc Near 30 PARTSCAN_ScanForPartitions Proc Near Uses 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 122 PARTSCAN_ScanDriveForPartitions Proc Near Uses 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 286 push dx 287 push si 288 push di 285 push ax dx si di 289 286 mov si, wptr [PartPtr] 290 287 mov ax, wptr [si+LocBRPT_RelativeBegin] ; Absolute Sector … … 338 335 339 336 PCCTP_NoIbmBm: 340 pop di 341 pop si 342 pop dx 343 pop ax 337 pop di si dx ax 344 338 mov si, offset MBR_NoName_Patched 345 339 xor ah, ah ; no Flags_NoPartName … … 347 341 348 342 PCCTP_CheckBootRecord: 349 pop di 350 pop si 351 pop dx 352 pop ax 343 pop di si dx ax 353 344 test ah, FileSysFlags_NoName ; No-Name-Flag ? -> No Partition Name 354 345 … … 400 391 ; Now compare IPT with current Partition 401 392 mov cx, 15 ; Serial&Name (15-Bytes) 402 push si 403 push di 393 push si di 404 394 repz cmpsb 405 pop di 406 pop si 395 pop di si 407 396 408 397 jne PCCTP_NoMatchYet … … 426 415 ; Now compare IPT with current Partition 427 416 mov cx, 11 ; Name only (11-Bytes) 428 push si 429 push di 417 push si di 430 418 add si, 4 431 419 add di, 4 ; Skip over Serial-Field 432 420 repz cmpsb 433 pop di 434 pop si 421 pop di si 435 422 jne PCCTP_NameNoMatch 436 423 mov cx, [si+0] ; Get Serial … … 501 488 ; Build a standard-Volume Label from FileSystemNamePtr 502 489 ; We have to call SearchFileSysName again because of NTFS 503 push ax 504 push cx 490 push ax cx 505 491 mov al, dh 506 492 call PART_SearchFileSysName ; We want SI here <- FileSystemNamePtr … … 515 501 stosb ; Fill last 3 bytes with "NUL" 516 502 mov si, offset MBR_NoName_Patched 517 pop cx 518 pop ax 503 pop cx ax 519 504 ;======================================================= 520 505 ; LOCATION SEARCH in IPT-Table … … 827 812 PARTSCAN_SyncHideConfigWithXref EndP 828 813 829 ibm_bm_name 830 ;win_bm_name: 814 ibm_bm_name: db 'OS2 BootMgr',0 815 ;win_bm_name: db 'BOOTMGR',0 -
trunk/BOOTCODE/REGULAR/PASSWORD.ASM
r37 r38 142 142 PASSWORD_AskSpecifiedPassword EndP 143 143 144 PasswordSpace 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
r37 r38 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 43 Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate 2>> (bld: 20120214)', 0 42 Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate 1>> (bld: 20120124)', 0 44 43 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 1998-2012 M. Kiewitz, Dedicated to Gerd Kiewitz', 0 45 46 ; Message in case the user wants to edit the label of a type 0x35 partition47 TXT_SETUP_NoEditType35 db 'The label of an LVM-Data partition cannot be edited', 048 ; Message in case the user wants to make a type 0x35 partition bootable49 TXT_SETUP_NoBootType35 db 'An LVM-Data partition cannot be set bootable', 050 44 51 45 ; Rousseau: switch around -
trunk/BOOTCODE/REGULAR/VIDEOIO.ASM
r37 r38 24 24 ENDIF 25 25 26 VideoIO_WaitRetrace Proc Near Uses ax dx27 28 29 30 31 32 33 34 35 36 37 VideoIO_WaitRetrace EndP26 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 Proc Near Uses cx51 52 53 54 55 56 57 58 59 60 61 62 VideoIO_Locate EndP50 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 839 ;BiosCyls 840 BiosHeads 841 BiosSecs 842 LvmSecs 843 BiosLBA 844 845 846 HugeBootDisk 847 DisksFound 848 PartitionsFound 849 ;AutoStartPart 850 851 Phase1 852 853 854 ShowMenu 855 ;ShowBootLog 856 857 Yes 858 No 859 On 860 Off 861 None 862 Active 863 NotActive 838 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 866 NL: db 0dh, 0ah, 0 -
trunk/BOOTCODE/SETUP/MAIN.ASM
r37 r38 30 30 LocMENU_ItemPack equ 8 ; only if VariablePtr>0 31 31 32 SETUP_UpperFixString db 'SETUP ',0 ; AddOn for "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 fr "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 71 SETUP_CheckEnterSETUP Proc Near Uses 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 ; the main-menu routine119 SETUP_MenuTask Proc Near Uses ; 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 296 SETUP_DrawMenuOnScreen Proc Near Uses 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 ; BackUp Coordinates and ItemPackPtr 399 push cx 400 push si 398 push cx si ; BackUp Coordinates and ItemPackPtr 401 399 push cx 402 400 cmp cl, 40 … … 422 420 call VideoIO_PrintSingleChar ; Write double-point 423 421 mov word ptr TextColorFore, dx 424 pop si 425 pop cx 422 pop si cx 426 423 add cl, 26 ; Fix X-coordinate (for ItemPack) 427 424 call VideoIO_Locate … … 501 498 SETUP_DrawMenuWindow EndP 502 499 503 SETUP_DrawMenuBase Proc Near 504 call BOOTMENU_BuildBack ground500 SETUP_DrawMenuBase Proc Near Uses 501 call BOOTMENU_BuildBackGround 505 502 ; -------------------------------------------- Upper Copyright... 506 503 mov cx, 0F00h … … 708 705 ;SETUP_EnterMenu_LinuxCommandLine EndP 709 706 710 SETUP_EnterMenu_DefineMasterPassword Proc Near 707 SETUP_EnterMenu_DefineMasterPassword Proc Near Uses 711 708 mov di, offset CFG_MasterPassword 712 709 call SETUP_EnterMenu_DefinePassword … … 714 711 SETUP_EnterMenu_DefineMasterPassword EndP 715 712 716 SETUP_EnterMenu_DefineBootPassword Proc Near 713 SETUP_EnterMenu_DefineBootPassword Proc Near Uses 717 714 mov di, offset CFG_BootPassword 718 715 call SETUP_EnterMenu_DefinePassword … … 723 720 724 721 ; [Linux support removed since v1.02] 725 ;SETUP_EnterMenu_EnterLinuxCmdLine Proc Near 722 ;SETUP_EnterMenu_EnterLinuxCmdLine Proc Near Uses 726 723 ; mov cx, 0D05h 727 724 ; call VideoIO_Color … … 848 845 mov ax, VideoIO_Page2 849 846 call VideoIO_BackUpTo 850 push ax 851 push di 847 push ax di 852 848 mov ax, 20h ; Space 853 849 mov cx, 16 854 850 rep stosb ; Kill new password 855 851 mov es:[di], ah ; ending NUL 856 pop di 857 pop ax 852 pop di ax 858 853 cmp ax, 0ABABh ; Magic Processing... 859 854 je SLEP_MagicLayOut … … 1044 1039 SEMSAES_DoThis: 1045 1040 xor al, al 1046 mov CFG_AutoEnterS etup, al1041 mov CFG_AutoEnterSETUP, al 1047 1042 add CFG_LastTimeEditLow, 1 1048 1043 adc CFG_LastTimeEditHi, 0 ; Update Time-Stamp … … 1060 1055 jnz SEMEWS_UserAbort 1061 1056 ; If we were forced to enter Setup, save configuration anyway... 1062 test CFG_AutoEnterS etup, 11057 test CFG_AutoEnterSETUP, 1 1063 1058 jz SEMEWS_DoThis 1064 1059 jmp SEMEWS_DoThis ; Cross-Jump to SaveAndExitSetup! … … 1077 1072 ; Out: Non-Zero Flag set -> User is sure 1078 1073 ; Destroyed: None 1079 SETUP_Warning_AreYouSure Proc Near 1074 SETUP_Warning_AreYouSure Proc Near Uses 1080 1075 mov cx, 0C04h 1081 1076 call VideoIO_Color … … 1172 1167 1173 1168 ; Cur Value in DL, Maximum Value in DH. Add/Sub in CL 1174 SETUPMAGIC_InternalCheckUp Proc Near 1169 SETUPMAGIC_InternalCheckUp Proc Near Uses 1175 1170 or cl, cl ; CL==0? -> Decrease 1176 1171 jz SMICU_Substract ; otherwise -> Increase … … 1227 1222 mov al, dl 1228 1223 call VideoIO_PrintByteDynamicNumber 1229 ; Pseudo-(XCHG DS, ES) 1230 push ds 1231 push es 1232 pop ds 1233 pop es 1234 1224 push ds es 1225 pop ds es ; Pseudo-(XCHG DS, ES) 1235 1226 mov di, si 1236 1227 add di, LocMENU_ItemPack ; ES:DI - ItemPack 1237 1228 mov si, 4000 ; DS:SI - Screen Page 1 1238 push es 1239 push di 1229 push es di 1240 1230 mov cx, 4 1241 1231 SMCBD_Loop: … … 1243 1233 stosb 1244 1234 loop SMCBD_Loop ; okay we got it...trick! 1245 ; DS:SI - ItemPack 1246 pop si 1247 pop ds 1235 pop si ds ; DS:SI - ItemPack 1248 1236 mov cx, 12 1249 1237 call GetLenOfName ; Gets the length of the number … … 1311 1299 call PART_GetPartitionPointer 1312 1300 mov ax, ds:[si+LocIPT_Flags] 1313 test ax, Flags_Boot able1301 test ax, Flags_BootAble 1314 1302 jz SMCP_Inc_RejectPartition 1315 1303 jmp SMCP_GotSelection … … 1342 1330 call PART_GetPartitionPointer 1343 1331 mov ax, ds:[si+LocIPT_Flags] 1344 test ax, Flags_Boot able1332 test ax, Flags_BootAble 1345 1333 jz SMCP_Dec_RejectPartition 1346 1334 -
trunk/BOOTCODE/SETUP/MENUS.ASM
r37 r38 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
r37 r38 25 25 26 26 ; This here is called from Menu in AIR-BSET.asm 27 PARTSETUP_Main Proc Near 27 PARTSETUP_Main Proc Near Uses 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 implemented113 ; in PARTSETUP_ChangePartitionName.114 112 PSM_KeyENTER: 115 113 call PARTSETUP_ChangePartitionName … … 122 120 PSM_KeyBootAble: 123 121 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_IsType35128 je PSM_KeyBootAble_istype35129 130 PSM_KeyBootAble_notype35:131 122 mov al, [si+LocIPT_Flags] 132 xor al, Flags_Boot able123 xor al, Flags_BootAble 133 124 mov [si+LocIPT_Flags], al 134 125 call PARTSETUP_DrawPartitionInfo 135 126 call PARTSETUP_BuildChoiceBar 136 PSM_KeyBootAble_istype35:137 127 jmp PSM_MainLoop 138 128 … … 174 164 PARTSETUP_Main EndP 175 165 176 177 ; See if this is a partition of type 0x35 and display error178 ; when user tries to set it as bootable.179 ; IN: SI = Pointer to partition180 ; OUT: ZF = Set if 0x35, clear otherwise181 PARTSETUP_IsType35 Proc Near182 mov al, [si+LocIPT_SystemID]183 cmp al, 35h184 jne PARTSETUP_IsType35_end185 pushf186 pusha187 ; Cannot boot LVM-Data partitions188 mov cx, 0C04h189 mov si, offset TXT_SETUP_NoBootType35190 call SETUP_ShowErrorBox191 popa192 call PARTSETUP_DrawMenuBase193 call PARTSETUP_RefreshPartitions194 call PARTSETUP_BuildChoiceBar195 popf196 PARTSETUP_IsType35_end:197 ret198 PARTSETUP_IsType35 EndP199 200 201 166 ; Draw all standard-things for Partition Setup, dynamic content not included. 202 167 PARTSETUP_DrawMenuBase Proc Near Uses dx … … 286 251 call VideoIO_FixedPrint 287 252 288 mov si, offset TXT_SETUPHELP_P artSetup253 mov si, offset TXT_SETUPHELP_PARTSETUP 289 254 call SETUP_DrawMenuHelp 290 255 ret … … 405 370 mov cl, 11 406 371 call VideoIO_FixedPrint 407 pop si 408 pop cx 372 pop si cx 409 373 410 374 ; Display "Flags" field aka "BVHL" … … 415 379 mov bh, bl 416 380 mov al, TXT_SETUP_FlagLetterBootable 417 and bl, Flags_Boot able381 and bl, Flags_BootAble 418 382 call PARTSETUP_DrawOneFlag 419 383 mov bl, bh … … 465 429 ; DH - New Active (to be activated) 466 430 ; Destroyed: None 467 PARTSETUP_BuildChoiceBar Proc Near 431 PARTSETUP_BuildChoiceBar Proc Near Uses 468 432 cmp dl, dh 469 433 je PSBCB_SkipRetrace … … 702 666 cmp byte ptr [si+LocIPT_SystemID], 035h 703 667 jnz no_type_35h 704 705 ; Cannot boot LVM-Data partitions706 pusha707 mov cx, 0C04h708 mov si, offset TXT_SETUP_NoEditType35709 call SETUP_ShowErrorBox710 popa711 712 713 668 jmp PSCPN_AllDone 714 669 no_type_35h: 715 670 716 671 mov cx, 11 ; Partition-Name-Length = 11 Bytes 717 push si 718 push di 672 push si di 719 673 add si, LocIPT_Name ; DS:SI -> Partition-Name 720 674 repz cmpsb 721 pop di 722 pop si 675 pop di si 723 676 jne PSCPN_LetUserEditPartName ; -> No BR/LVM Changing/Saving 724 677 … … 788 741 789 742 ; ----------------------------------------------[LVM SAVE PARTITION NAME]--- 790 ; Copy 11 bytes from IPT into LVM Partit ionName, back-padd with zero's743 ; Copy 11 bytes from IPT into LVM PartitonName, back-padd with zero's 791 744 mov cx, 11 792 745 push si … … 895 848 cmp ah, Keys_F1 896 849 je PHSM_KeyF1 897 cmp ah, Keys_E NTER850 cmp ah, Keys_Enter 898 851 je PHSM_KeyToogle 899 852 cmp ah, Keys_Plus … … 1005 958 sub dl, cl ; Adjust position 1006 959 sub dl, 2 1007 push cx 1008 push si ; SI == Label Field 960 push cx si ; SI == Label Field 1009 961 mov cx, dx 1010 962 call VideoIO_Locate … … 1013 965 mov si, offset TXT_SETUP_HideFeature2 1014 966 call VideoIO_Print 1015 pop si 1016 pop cx 967 pop si cx 1017 968 call VideoIO_FixedPrint 1018 969 mov al, '>' … … 1183 1134 ; DH - New Active (to be activated) 1184 1135 ; Destroyed: None 1185 PARTHIDESETUP_BuildChoiceBar Proc Near 1136 PARTHIDESETUP_BuildChoiceBar Proc Near Uses 1186 1137 cmp dl, dh 1187 1138 je PHSBCB_SkipRetrace … … 1314 1265 mov di, offset HidePartitionTable 1315 1266 add di, ax ; We got the pointer 1316 push di 1317 push di 1267 push di di 1318 1268 mov cx, LocIPT_MaxPartitions 1319 1269 mov al, 0FFh … … 1417 1367 cmp ah, Keys_ESC 1418 1368 je PSDLS_KeyDONE 1419 cmp ah, Keys_E NTER1369 cmp ah, Keys_Enter 1420 1370 je PSDLS_KeyDONE 1421 1371 ; Direct-Letter-Input -
trunk/BOOTCODE/SPECIAL/F00K/BILLSUXX.ASM
r37 r38 51 51 jz MSHPPT_NoMShack 52 52 MSHPPT_HarddriveLoop: 53 push ax 54 push bx 55 push cx 56 push dx 53 push ax bx cx dx 57 54 xor ax, ax 58 55 xor bx, bx ; Location Absolute Sector 0 … … 60 57 xor dh, dh ; Location Cylinder 0, Head 0, Sector 1 MBR/PPT 61 58 call DriveIO_LoadPartition 62 pop dx 63 pop cx 64 pop bx 65 pop ax 59 pop dx cx bx ax 66 60 jc MSHPPT_Failure 67 61 -
trunk/BOOTCODE/SPECIAL/FAT16.ASM
r37 r38 103 103 xor di, di 104 104 FAT16SE_SearchLoop: 105 push si 106 push di 105 push si di 107 106 mov cx, 11 108 107 repe cmpsb ; Compare total 11-bytes 109 pop di 110 pop si 108 pop di si 111 109 je FAT16SE_EntryFound 112 110 add di, 32 ; Skip 1 FAT16-Entry now :) … … 223 221 224 222 ; Set Size-Entry in KernelSizeTable 225 push ds 226 push si 227 push di 223 push ds si di 228 224 mov bx, ds:[si+30] 229 225 mov ax, ds:[si+28] ; BX:AX - Size of file in Bytes … … 244 240 mov di, si 245 241 call PART_FillOutSizeElement ; BX:AX -> ES:DI (Size Element) 246 pop di 247 pop si 248 pop ds 242 pop di si ds 249 243 250 244 ; Copy entry and make append extension to basename -
trunk/BOOTCODE/SPECIAL/FX.ASM
r37 r38 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 34 FX_CalculateTables Proc Near Uses 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 59 FX_MakeCooperBarColors Proc Near Uses 60 60 mov bh, ah 61 61 shl bh, 4 … … 82 82 add di, 3 83 83 loop FX_MCBC_BuildColorLoop1 84 push ax 85 push bx 84 push ax bx 86 85 add ax, 0101h 87 86 add bl, 01h … … 93 92 mov es:[di+5], bl 94 93 add di, 6 95 pop bx 96 pop ax 94 pop bx ax 97 95 mov cx, 15 98 96 FX_MCBC_BuildColorLoop2: … … 111 109 ; If FX is active, we will modify the base segment for videoio to page 2, 112 110 ; so the screen will be generated there instead of the current page. 113 FX_StartScreen Proc Near 111 FX_StartScreen Proc Near Uses 114 112 test CFG_CooperBars, 1 115 113 jz FXSS_NoFX … … 122 120 ; If FX is active, we will copy the new screen to scroll area, do the FX, 123 121 ; copy the new screen to Page 0 and activate it. 124 FX_EndScreenLeft Proc Near 122 FX_EndScreenLeft Proc Near Uses 125 123 test CFG_CooperBars, 1 126 124 jnz FXESL_Go … … 143 141 FX_EndScreenLeft EndP 144 142 145 FX_ScrollScreenLeft Proc Near 143 FX_ScrollScreenLeft Proc Near Uses 146 144 mov FX_WideScrollerCurPos, 640 147 145 mov FX_WideScrollerDirection, 0 … … 151 149 FX_ScrollScreenLeft EndP 152 150 153 FX_EndScreenRight Proc Near 151 FX_EndScreenRight Proc Near Uses 154 152 test CFG_CooperBars, 1 155 153 jnz FXESR_Go … … 172 170 FX_EndScreenRight EndP 173 171 174 FX_ScrollScreenRight Proc Near 172 FX_ScrollScreenRight Proc Near Uses 175 173 mov FX_WideScrollerCurPos, 0 176 174 mov FX_WideScrollerDirection, 1 … … 180 178 FX_ScrollScreenRight EndP 181 179 182 FX_EndScreenInternalGo Proc Near 180 FX_EndScreenInternalGo Proc Near Uses 183 181 mov FX_WideScrollerSpeed, 1 184 182 mov FX_WideScrollerSpeedState, 1 … … 201 199 FX_EndScreenInternalGo EndP 202 200 203 FX_EndScreenInternalCleanUp Proc Near 201 FX_EndScreenInternalCleanUp Proc Near Uses 204 202 mov ax, -1 205 203 call FX_SetVideoStart … … 359 357 ; Out: *none* 360 358 ; Destroyed: all 361 FX_CalculateCoopers Proc Near 359 FX_CalculateCoopers Proc Near Uses 362 360 ; Logic: When Intro-State: Increase CooperPos by 1 till 256 -> then active 363 361 ; Active-State: Use SinusTable, till SinusPos=7Fh -> then Extro … … 416 414 FX_CalculateCoopers EndP 417 415 418 FX_CalculateWideScroller Proc Near 416 FX_CalculateWideScroller Proc Near Uses 419 417 mov bx, FX_WideScrollerCurPos 420 418 ;movzx cx, FX_WideScrollerSpeed … … 517 515 FX_CalculateWideScroller EndP 518 516 519 FX_WaitRetrace Proc Near 517 FX_WaitRetrace Proc Near Uses 520 518 mov dx, 3DAh 521 519 FX_WR1: … … 530 528 FX_WaitRetrace EndP 531 529 532 FX_WaitVRetrace Proc Near 530 FX_WaitVRetrace Proc Near Uses 533 531 mov dx, 3DAh 534 532 FX_WVR1: -
trunk/BOOTCODE/SPECIAL/LINUX.ASM
r37 r38 188 188 add di, LocIPT_Name 189 189 LSKN_SearchLoop: 190 push cx 191 push si 192 push di 190 push cx si di 193 191 mov cx, 11 194 192 repe cmpsb ; Compare total 11-bytes 195 pop di 196 pop si 197 pop cx 193 pop di si cx 198 194 je LSKN_Found 199 195 add di, LocIPT_LenOfIPT … … 228 224 ; Linux has 1 'BR' (which is crap) and some setup sectors 229 225 ; we load them at 9000:0, what a luck, we are at 8000:0 :-)) 230 push ds 231 push es 226 push ds es 232 227 mov ax, 9000h 233 228 mov es, ax … … 260 255 mov ax, 6000h 261 256 mov es, ax 262 ; Push Kernel-Entry-Pointer 263 push cx 264 push si 257 push cx si ; Push Kernel-Entry-Pointer 265 258 mov si, di 266 259 shl cx, 9 ; Sectors to Byte Count … … 269 262 shr cx, 1 270 263 rep movsw ; Copy Data... 271 ; Get Kernel-Entry-Pointer back 272 pop si 273 pop cx 264 pop si cx ; Get Kernel-Entry-Pointer back 274 265 LLL_GotAll: 275 pop es 276 pop ds 277 278 ; Push Missing-Sectors, StartCluster 279 push cx 280 push dx 266 pop es ds 267 268 push cx dx ; Push Missing-Sectors, StartCluster 281 269 mov ax, 9000h 282 270 mov ds, ax … … 348 336 stosb ; Write another NUL 349 337 pop cx 350 ; Pop StartCluster, Missing-Sectors 351 pop dx 352 pop bx 338 pop dx bx ; Pop StartCluster, Missing-Sectors 353 339 ; CX - Sector-Count of Kernel Image, DX - Starting Cluster of Kernel Image 354 340 ; BX - Sector-Count left over in 6000:0 area from Setup Code loading -
trunk/BOOTCODE/SPECIAL/LVM.ASM
r37 r38 24 24 ENDIF 25 25 26 LVM_InitCRCTable Proc Near 26 LVM_InitCRCTable Proc Near Uses 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 92 LVM_CheckSectorSignature Proc Near Uses 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 in casethey179 ; they are allprimary ones.178 ; sector of track0; for all four partition entries should they 179 ; all be primary ones. 180 180 ; 181 181 ; LVM DLAT info for logical partitions is stored in the sector -
trunk/BOOTCODE/SPECIAL/VIRUS.ASM
r37 r38 33 33 mov di, offset CFG_VIR_INT08 34 34 push di 35 rep escasb35 rep scasb 36 36 pop di 37 37 jne VCFS_AlreadyInitiated … … 102 102 int 16h ; Waits for any keystroke 103 103 jmp VCFS_InitNow 104 105 104 VCFS_WhewThisIsOne: 106 call VIRUS_TryRestore 107 108 ; Code should no reach this since we halt the system in VIRUS_TryRestore. 109 ret 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 110 126 VIRUS_CheckForStealth EndP 111 112 ;113 ; This procedure is created to avoid jumping to labels that are local to114 ; procedures. JWasm does not allow that.115 ; Should be fixed better later.116 ;117 VIRUS_TryRestore Proc Near118 mov si, offset TXT_VirusFoundMain119 call MBR_Teletype120 ; Now check BackUp MBR for validation (AiRBOOT signature), do this121 ; using direct-calls to original bios handler.122 call ANTIVIR_RestoreMBR123 jnc VIRUS_TryRestore_ValidRestore124 125 mov si, offset TXT_VirusFound1damn126 call MBR_Teletype127 call MBR_Teletype ; VirusFound1any128 mov si, offset TXT_VirusFoundEnd129 call MBR_Teletype130 jmp MBR_HaltSystem131 132 VIRUS_TryRestore_ValidRestore:133 mov si, offset TXT_VirusFound1ok134 call MBR_Teletype135 mov si, offset TXT_VirusFound1any136 call MBR_Teletype137 mov si, offset TXT_VirusFoundEnd138 call MBR_Teletype139 jmp MBR_HaltSystem140 141 ; Code should not reach this since we halt the system.142 VIRUS_TryRestore Endp143 144 127 145 128 ; Checks system for normal-MBR-virus... (done by comparing current MBR with … … 148 131 ; Segment Registers preserved 149 132 VIRUS_CheckForVirus Proc Near Uses ds si es di 150 push cs 151 push cs 152 pop ds 153 pop es 133 push cs cs 134 pop ds es 154 135 mov bx, offset TmpSector 155 136 mov dx, 0080h … … 164 145 mov cx, 223 ; Compare 446 bytes 165 146 repz cmpsw ; if fail: Cross call to Stealth-Virus 166 ;jne VCFS_WhewThisIsOne 167 je VIRUS_CheckForVirus_end 168 call VIRUS_TryRestore 169 VIRUS_CheckForVirus_end: 147 jne VCFS_WhewThisIsOne 170 148 ret 171 149 VIRUS_CheckForVirus EndP … … 189 167 190 168 ; Will report Carry-Clear, if BackUp MBR is valid (supposingly) 191 ANTIVIR_CheckBackUpMBR Proc Near 192 push cs 193 push cs 194 pop es 195 pop ds 169 ANTIVIR_CheckBackUpMBR Proc Near Uses 170 push cs cs 171 pop es ds 196 172 mov bx, offset TmpSector 197 173 mov dx, 0080h … … 214 190 ANTIVIR_CheckBackUpMBR EndP 215 191 216 ANTIVIR_RestoreMBR Proc Near 192 ANTIVIR_RestoreMBR Proc Near Uses 217 193 call ANTIVIR_CheckBackUpMBR 218 194 jnc ARMBR_DoIt -
trunk/BOOTCODE/TEXT/TXTMBR.ASM
r37 r38 1 Include TEXT/EN/MBR.ASM 1 Include TEXT/EN/MBR.ASM -
trunk/BOOTCODE/TEXT/TXTMENUS.ASM
r37 r38 1 Include TEXT/EN/MENUS.ASM 1 Include TEXT/EN/MENUS.ASM -
trunk/BOOTCODE/TEXT/TXTOTHER.ASM
r37 r38 1 Include TEXT/EN/OTHER.ASM 1 Include TEXT/EN/OTHER.ASM -
trunk/INSTALL/INST_X86/INSTALL.INC
r37 r38 687 687 ; Rousseau: changed above to 7 688 688 ; Rousseau: Changed back to 5 to be compatible with the v1.07 OS/2 and WIN 689 ; installers AIRBOOT2.EXE and AIRBOOTW.EXE dat do a CRC over 5 sectors.689 ; installers AIRBOOT2.EXE and AIRBOOTW.EXE that do a CRC over 5 sectors. 690 690 mov cx, 5 691 691 … … 864 864 ; Carry set, if invalid BackUp 865 865 Init_CheckBackupMBR Proc Near Uses si 866 mov si, 7600h ; Fixed location of backup 866 ; Now 7a00h 867 mov si, 7a00h ; Fixed location of backup 867 868 call Init_CheckThisMBR 868 869 ret … … 924 925 pop ds 925 926 pop es ; Exchange DS&ES so DS==HDD, ES==New BootCode 926 mov si, 7600h ; Sector 60... 927 ; Now 7a00h 928 mov si, 7a00h ; Sector 62... 927 929 mov di, offset BootImage ; -> to Sector 1 of New BootCode 928 930 mov cx, 256
Note:
See TracChangeset
for help on using the changeset viewer.