Changeset 45 for trunk/BOOTCODE/REGULAR
- Timestamp:
- Apr 12, 2014, 12:36:45 AM (12 years ago)
- Location:
- trunk/BOOTCODE/REGULAR
- Files:
-
- 6 edited
-
AUXIO.ASM (modified) (6 diffs)
-
BOOTMENU.ASM (modified) (4 diffs)
-
DEBUG.ASM (modified) (5 diffs)
-
PARTMAIN.ASM (modified) (3 diffs)
-
PARTSCAN.ASM (modified) (10 diffs)
-
STD_TEXT.ASM (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/BOOTCODE/REGULAR/AUXIO.ASM
r44 r45 84 84 AuxIO_Teletype_NoLogging: 85 85 ret 86 AuxIO_Tele Type EndP86 AuxIO_Teletype EndP 87 87 88 88 … … 92 92 call AuxIO_Teletype 93 93 ret 94 AuxIO_Tele TypeNL EndP94 AuxIO_TeletypeNL EndP 95 95 96 96 … … 107 107 call AuxIO_Teletype ; Output to com-port 108 108 ret 109 AuxIO_Tele TypeHexByte EndP109 AuxIO_TeletypeHexByte EndP 110 110 111 111 ; Print hex-word to com-port (teletype style) … … 120 120 call AuxIO_TeletypeHexByte ; Output to com-port 121 121 ret 122 AuxIO_Tele TypeHexWord EndP122 AuxIO_TeletypeHexWord EndP 123 123 124 124 … … 134 134 call AuxIO_TeletypeHexWord ; Low word next 135 135 ret 136 AuxIO_Tele TypeHexDWord EndP136 AuxIO_TeletypeHexDWord EndP 137 137 138 138 … … 150 150 call AuxIO_TeletypeHexDWord ; Low dword next 151 151 ret 152 AuxIO_Tele TypeHexQWord EndP152 AuxIO_TeletypeHexQWord EndP 153 153 154 154 -
trunk/BOOTCODE/REGULAR/BOOTMENU.ASM
r43 r45 72 72 mov Menu_AbsoluteX, dl 73 73 74 ; Display Top-Infos in Boot-Window74 ; Display Top-Infos (labels) in Boot-Window 75 75 76 76 CLR_TOP_INFOS_CLASSIC = 0b01h … … 190 190 mov cx, CLR_INFO_WINDOW_BM 191 191 ;mov cx, 0C06h ; brown, main background 192 call VideoIO_Color ; Ccolor info window192 call VideoIO_Color ; Color info window 193 193 194 194 mov bx, 1401h 195 195 mov dx, 1950h 196 call VideoIO_MakeWindow ; Information-Window196 call VideoIO_MakeWindow ; Information-Window 197 197 ; den kleinen Strich... 198 198 mov cx, 1602h … … 210 210 CLR_INFO_TEXT_BM = 0701h 211 211 212 mov cx, CLR_INFO_TEXT_BM ; Info text213 call VideoIO_Color ; Color info text212 mov cx, CLR_INFO_TEXT_BM ; Info text 213 call VideoIO_Color ; Color info text 214 214 215 215 mov si, offset TXT_BootMenuHelpText1 … … 587 587 CLR_SELECTION_BAR_CLASSIC = 50h 588 588 CLR_SELECTION_BAR_BM = 090h 589 CLR_SELECTION_BAR_WARNING = 040h 589 590 590 591 591 592 592 593 BMBCB_AfterScrolling: 593 mov cl, CLR_SELECTION_BAR_BM ; Color PINK, Partition DL 594 mov cl, CLR_SELECTION_BAR_BM 595 test byte ptr [TooManyPartitions],0ffh ; Check for too many partitions. 596 jz BOOTMENU_BuildChoiceBar_normal 597 mov cl, CLR_SELECTION_BAR_WARNING ; Set red bar if so. 598 BOOTMENU_BuildChoiceBar_normal: 594 599 call BOOTMENU_ReColorPart 595 600 ret -
trunk/BOOTCODE/REGULAR/DEBUG.ASM
r44 r45 37 37 38 38 DEBUG_CheckMath Proc Near 39 pushf 40 pusha 41 42 ; Msg check math-module 43 mov si,offset db_checkmath 44 call AuxIO_Print 45 46 ; Output hex-word 47 mov ax,0BABEh 48 call AuxIO_TeletypeHexWord 49 50 mov al,' ' 51 call AuxIO_Teletype 52 mov al,'*' 53 call AuxIO_Teletype 54 mov al,' ' 55 call AuxIO_Teletype 56 57 ; Output hex-word 58 mov ax,0BABEh 59 call AuxIO_TeletypeHexWord 60 61 mov al,' ' 62 call AuxIO_Teletype 63 mov al,'=' 64 call AuxIO_Teletype 65 mov al,' ' 66 call AuxIO_Teletype 67 68 mov ax,0BABEh 69 mul ax 70 call AuxIO_TeletypeHexDWord 71 72 ; Start new line 73 call AuxIO_TeletypeNL 74 75 ; Output hex-dword 76 mov dx,0DEADh 77 mov ax,0FACEh 78 call AuxIO_TeletypeHexDWord 79 80 mov al,' ' 81 call AuxIO_Teletype 82 mov al,'*' 83 call AuxIO_Teletype 84 mov al,' ' 85 call AuxIO_Teletype 86 87 ; Output hex-dword 88 mov dx,0DEADh 89 mov ax,0FACEh 90 call AuxIO_TeletypeHexDWord 91 92 mov al,' ' 93 call AuxIO_Teletype 94 mov al,'=' 95 call AuxIO_Teletype 96 mov al,' ' 97 call AuxIO_Teletype 98 99 mov bx,0DEADh 100 mov cx,0FACEh 101 mov dx,0DEADh 102 mov ax,0FACEh 103 call MATH_Mul32 104 call AuxIO_TeletypeHexQWord 105 106 ; Start new line 107 call AuxIO_TeletypeNL 108 39 ;~ pushf 40 ;~ pusha 41 ;~ 42 ;~ ; Msg check math-module 43 ;~ mov si,offset db_checkmath 44 ;~ call AuxIO_Print 45 ;~ 46 ;~ ; Output hex-word 47 ;~ mov ax,0BABEh 48 ;~ call AuxIO_TeletypeHexWord 49 ;~ 50 ;~ mov al,' ' 51 ;~ call AuxIO_Teletype 52 ;~ mov al,'*' 53 ;~ call AuxIO_Teletype 54 ;~ mov al,' ' 55 ;~ call AuxIO_Teletype 56 ;~ 57 ;~ ; Output hex-word 58 ;~ mov ax,0BABEh 59 ;~ call AuxIO_TeletypeHexWord 60 ;~ 61 ;~ mov al,' ' 62 ;~ call AuxIO_Teletype 63 ;~ mov al,'=' 64 ;~ call AuxIO_Teletype 65 ;~ mov al,' ' 66 ;~ call AuxIO_Teletype 67 ;~ 68 ;~ mov ax,0BABEh 69 ;~ mul ax 70 ;~ call AuxIO_TeletypeHexDWord 71 ;~ 109 72 ;~ ; Start new line 110 call AuxIO_TeletypeNL 111 112 popa 113 popf 73 ;~ call AuxIO_TeletypeNL 74 ;~ 75 ;~ ; Output hex-dword 76 ;~ mov dx,0DEADh 77 ;~ mov ax,0FACEh 78 ;~ call AuxIO_TeletypeHexDWord 79 ;~ 80 ;~ mov al,' ' 81 ;~ call AuxIO_Teletype 82 ;~ mov al,'*' 83 ;~ call AuxIO_Teletype 84 ;~ mov al,' ' 85 ;~ call AuxIO_Teletype 86 ;~ 87 ;~ ; Output hex-dword 88 ;~ mov dx,0DEADh 89 ;~ mov ax,0FACEh 90 ;~ call AuxIO_TeletypeHexDWord 91 ;~ 92 ;~ mov al,' ' 93 ;~ call AuxIO_Teletype 94 ;~ mov al,'=' 95 ;~ call AuxIO_Teletype 96 ;~ mov al,' ' 97 ;~ call AuxIO_Teletype 98 ;~ 99 ;~ mov bx,0DEADh 100 ;~ mov cx,0FACEh 101 ;~ mov dx,0DEADh 102 ;~ mov ax,0FACEh 103 ;~ call MATH_Mul32 104 ;~ call AuxIO_TeletypeHexQWord 105 ;~ 106 ;~ call AuxIO_TeletypeNL 107 ;~ call AuxIO_TeletypeNL 108 ;~ 109 ;~ popa 110 ;~ popf 114 111 115 112 ret … … 118 115 119 116 DEBUG_DumpGeo Proc 120 pushf121 pusha122 123 ; BIOS cyls124 mov dx,word ptr [BIOS_Cyls+02]125 mov ax,word ptr [BIOS_Cyls+00]126 call AuxIO_TeletypeHexDWord127 call AuxIO_TeletypeNL128 129 ; BIOS heads130 mov dx,word ptr [BIOS_Heads+02]131 mov ax,word ptr [BIOS_Heads+00]132 call AuxIO_TeletypeHexDWord133 call AuxIO_TeletypeNL134 135 ; BIOS secs136 mov dx,word ptr [BIOS_Secs+02]137 mov ax,word ptr [BIOS_Secs+00]138 call AuxIO_TeletypeHexDWord139 call AuxIO_TeletypeNL140 141 ; Bytes per sector142 mov ax,[BIOS_Bytes]143 call AuxIO_TeletypeHexWord144 call AuxIO_TeletypeNL145 146 ; Total secs147 mov bx, word ptr [BIOS_TotalSecs+06]148 mov cx, word ptr [BIOS_TotalSecs+04]149 mov dx, word ptr [BIOS_TotalSecs+02]150 mov ax, word ptr [BIOS_TotalSecs+00]151 call AuxIO_TeletypeHexDWord152 call AuxIO_TeletypeNL153 154 ; CHS to LBA155 mov dx,1156 mov ax,29e5h157 mov bx,23h158 mov cx,9h159 call CONV_CHS2LBA160 call AuxIO_TeletypeHexDWord161 call AuxIO_TeletypeNL162 163 popa164 popf117 ;~ pushf 118 ;~ pusha 119 ;~ 120 ;~ ; BIOS cyls 121 ;~ mov dx,word ptr [BIOS_Cyls+02] 122 ;~ mov ax,word ptr [BIOS_Cyls+00] 123 ;~ call AuxIO_TeletypeHexDWord 124 ;~ call AuxIO_TeletypeNL 125 ;~ 126 ;~ ; BIOS heads 127 ;~ mov dx,word ptr [BIOS_Heads+02] 128 ;~ mov ax,word ptr [BIOS_Heads+00] 129 ;~ call AuxIO_TeletypeHexDWord 130 ;~ call AuxIO_TeletypeNL 131 ;~ 132 ;~ ; BIOS secs 133 ;~ mov dx,word ptr [BIOS_Secs+02] 134 ;~ mov ax,word ptr [BIOS_Secs+00] 135 ;~ call AuxIO_TeletypeHexDWord 136 ;~ call AuxIO_TeletypeNL 137 ;~ 138 ;~ ; Bytes per sector 139 ;~ mov ax,[BIOS_Bytes] 140 ;~ call AuxIO_TeletypeHexWord 141 ;~ call AuxIO_TeletypeNL 142 ;~ 143 ;~ ; Total secs 144 ;~ mov bx, word ptr [BIOS_TotalSecs+06] 145 ;~ mov cx, word ptr [BIOS_TotalSecs+04] 146 ;~ mov dx, word ptr [BIOS_TotalSecs+02] 147 ;~ mov ax, word ptr [BIOS_TotalSecs+00] 148 ;~ call AuxIO_TeletypeHexDWord 149 ;~ call AuxIO_TeletypeNL 150 ;~ 151 ;~ ; CHS to LBA 152 ;~ mov dx,1 153 ;~ mov ax,29e5h 154 ;~ mov bx,23h 155 ;~ mov cx,9h 156 ;~ call CONV_CHS2LBA 157 ;~ call AuxIO_TeletypeHexDWord 158 ;~ call AuxIO_TeletypeNL 159 ;~ 160 ;~ popa 161 ;~ popf 165 162 166 163 ret … … 186 183 call AuxIO_TeletypeNL 187 184 185 ;~ call DEBUG_DumpHidePartTables 186 188 187 ;~ call DEBUG_CheckMath 189 188 190 189 ;~ call DEBUG_DumpGeo 191 190 192 call DEBUG_CheckBitFields191 ;~ call DEBUG_CheckBitFields 193 192 194 193 popa … … 199 198 200 199 DEBUG_DumpBSSSectors Proc Near 200 ;~ pushf 201 ;~ pusha 202 ;~ 203 ;~ mov si, offset [PartitionSector] 204 ;~ call AuxIO_DumpSector 205 ;~ call AuxIO_TeletypeNL 206 ;~ 207 ;~ mov si, offset [JfsPBR] 208 ;~ call AuxIO_DumpSector 209 ;~ call AuxIO_TeletypeNL 210 ;~ 211 ;~ mov si, offset [LVMSector] 212 ;~ call AuxIO_DumpSector 213 ;~ call AuxIO_TeletypeNL 214 ;~ 215 ;~ mov si, offset [TmpSector] 216 ;~ call AuxIO_DumpSector 217 ;~ call AuxIO_TeletypeNL 218 ;~ 219 ;~ mov si, offset [NewPartTable] 220 ;~ call AuxIO_DumpSector 221 ;~ call AuxIO_TeletypeNL 222 ;~ call AuxIO_TeletypeNL 223 ;~ 224 ;~ popa 225 ;~ popf 226 ret 227 DEBUG_DumpBSSSectors EndP 228 229 230 DEBUG_DumpHidePartTables Proc Near 201 231 pushf 202 232 pusha 203 233 204 mov si, offset [PartitionSector] 234 mov cx,3 235 mov si, offset [HidePartitionTable] 236 again1: 205 237 call AuxIO_DumpSector 206 call AuxIO_TeletypeNL 207 208 mov si, offset [JfsPBR] 238 add si,512 239 loop again1 240 call AuxIO_TeletypeNL 241 242 mov cx,3 243 mov si, offset [PartitionXref] 244 again2: 245 call AuxIO_DumpParagraph 246 call AuxIO_TeletypeNL 247 add si,16 248 loop again2 249 call AuxIO_TeletypeNL 250 251 mov cx,3 252 mov si, offset [NewHidePartTable] 253 again3: 209 254 call AuxIO_DumpSector 210 call AuxIO_TeletypeNL 211 212 mov si, offset [LVMSector] 213 call AuxIO_DumpSector 214 call AuxIO_TeletypeNL 215 216 mov si, offset [TmpSector] 217 call AuxIO_DumpSector 218 call AuxIO_TeletypeNL 219 220 mov si, offset [NewPartTable] 221 call AuxIO_DumpSector 222 call AuxIO_TeletypeNL 255 add si,512 256 loop again3 223 257 call AuxIO_TeletypeNL 224 258 … … 226 260 popf 227 261 ret 228 DEBUG_Dump BSSSectors EndP262 DEBUG_DumpHidePartTables EndP 229 263 230 264 231 265 DEBUG_CheckBitFields Proc 232 pushf 233 pusha 234 235 mov bx,offset [ott] 236 237 mov al,0 238 mov dl,0 239 mov dh,6 240 DEBUG_CheckBitFields_next_write: 241 call CONV_SetBitfieldValue 242 inc al 243 inc dl 244 ;~ cmp dl,70 245 jnz DEBUG_CheckBitFields_next_write 246 247 mov dl,0 248 mov dh,6 249 DEBUG_CheckBitFields_next_read: 250 mov al,dl 251 call AuxIO_TeletypeHexByte 252 mov al,':' 253 call AuxIO_Teletype 254 call CONV_GetBitfieldValue 255 call AuxIO_TeletypeHexWord 256 call AuxIO_TeletypeNL 257 inc dl 258 ;~ cmp dl,70 259 jnz DEBUG_CheckBitFields_next_read 260 261 popa 262 popf 266 ;~ pushf 267 ;~ pusha 268 ;~ 269 ;~ mov bx,offset [ott] 270 ;~ 271 ;~ mov al,0 272 ;~ mov dl,0 273 ;~ mov dh,6 274 ;~ DEBUG_CheckBitFields_next_write: 275 ;~ call CONV_SetBitfieldValue 276 ;~ inc al 277 ;~ inc dl 278 ;~ jnz DEBUG_CheckBitFields_next_write 279 ;~ 280 ;~ mov dl,0 281 ;~ mov dh,6 282 ;~ DEBUG_CheckBitFields_next_read: 283 ;~ mov al,dl 284 ;~ call AuxIO_TeletypeHexByte 285 ;~ mov al,':' 286 ;~ call AuxIO_Teletype 287 ;~ call CONV_GetBitfieldValue 288 ;~ call AuxIO_TeletypeHexWord 289 ;~ call AuxIO_TeletypeNL 290 ;~ inc dl 291 ;~ jnz DEBUG_CheckBitFields_next_read 292 ;~ 293 ;~ popa 294 ;~ popf 263 295 ret 264 296 DEBUG_CheckBitFields EndP -
trunk/BOOTCODE/REGULAR/PARTMAIN.ASM
r44 r45 972 972 ; First, find Hide-Config 973 973 mov dl, BootPartNo ; EntryNumber is straight view 974 mov ax, LocIPT_MaxPartitions 974 ;~ mov ax, LocIPT_MaxPartitions 975 mov ax, LocHPT_LenOfHPT 975 976 mul dl 976 977 mov di, offset HidePartitionTable 977 978 add di, ax ; We got the pointer 978 ; So process Hide-Config. Read out Byte-Entries, each points to a partition 979 ; 0FFh is end-marker / maximum entries = CFG_Partitions 980 mov cl, CFG_Partitions 981 PSP_PartitionsHideLoop: 982 mov dl, es:[di] 983 inc di 984 cmp dl, 0FFh 985 je PSP_EndOfHideProcess ; -> End of Hiding 986 call PART_HidePartition ; Now hide that partition 987 dec cl 988 jnz PSP_PartitionsHideLoop 989 PSP_EndOfHideProcess: 979 980 981 ; So process Hide-Config. Read out Bitfield-Entries, 982 ; each points to a partition. 983 ; 3Fh is end-marker / maximum entries = CFG_Partitions 984 mov cl, CFG_Partitions 985 mov ch,0 ; Index in bitfield array. 986 mov dh,6 ; Bitfield width. 987 mov bx,di ; Pointer to entry. 988 PSP_PartitionsHideLoop: 989 mov dl,ch 990 call CONV_GetBitfieldValue 991 mov dl,al 992 993 ;~ mov dl, es:[di] 994 ;~ inc di 995 ;~ cmp dl, 0FFh 996 cmp dl,3fh ; Max value for 6-bits field. 997 je PSP_EndOfHideProcess ; -> End of Hiding 998 call PART_HidePartition ; Now hide that partition 999 inc ch ; Next bitfield. 1000 dec cl 1001 jnz PSP_PartitionsHideLoop 1002 PSP_EndOfHideProcess: 1003 990 1004 ; --- HIDE COMPLETED --- 991 1005 ; So something got hidden and we have to remark a primary partition, … … 1646 1660 jne start_pbr 1647 1661 1648 ;xor ax,ax1649 ;mov [CurPartition_Location+00],ax1650 ;mov [CurPartition_Location+02],ax1651 ;mov [CurPartition_Location+04],ax1652 ;mov [CurPartition_Location+06],ax1653 1654 ;pusha1655 ;xor al,al1656 ;mov di,si1657 ;add di,LocIPT_Name1658 ;mov cx,121659 ;cld1660 ;rep stosb1661 ;popa1662 1663 1664 1662 ;push ds 1665 1663 ;pop es … … 1742 1740 1743 1741 PART_StartPartition EndP 1742 1743 1744 1745 ; 1746 ; THE FUNCTIONS HERE BELOW WERE INTRODUCED TO ENHANCE THE PBR PROCESSING, 1747 ; BUT THEY ARE ACTUALLY OBSOLETE BECAUSE THE INFORMATION THEY PROVIDE CAN 1748 ; ALSO BE OBTAINED FROM THE IPT. HOWEVER, THE IPT USES DIFFERENT IDENTIFIERS 1749 ; FOR PARTICULAR FILE-SYSTEMS / PBR TYPES, LIKE JFS BEING REPRESENTED AS 0FCh. 1750 ; POSSIBLY THE INFO IN THE IPT NEEDS TO BE EXPANDED TO DISTINGUISH BETWEEN 1751 ; OTHER BOOT-RECORDS AND FILE-SYSTEMS TOO, LIKE VISTA/WIN7 BMGR AND GRUB, ETC. 1752 ; THIS WOULD NEED TO BE DONE IN THE PARTSCAN ROUTINES. 1753 ; SO, FOR NOW WE KEEP USING THE STUFF BELOW. 1754 ; 1744 1755 1745 1756 -
trunk/BOOTCODE/REGULAR/PARTSCAN.ASM
r44 r45 48 48 mov CurIO_Scanning, 0 ; Reset flag due scanning complete 49 49 50 IFDEF AUX_DEBUG 51 pusha 52 call DEBUG_DumpHidePartTables 53 popa 54 ENDIF 50 55 ; Use X-Reference to sync NewPartitionTable with Hide-Config 51 56 call PARTSCAN_SyncHideConfigWithXref 57 58 IFDEF AUX_DEBUG 59 pusha 60 call DEBUG_DumpHidePartTables 61 popa 62 ENDIF 52 63 53 64 ; Now we copy the new IPT over the old one... … … 197 208 je PSSP_IgnorePartition 198 209 ; Ignore these partitions, because there are no real Partitions 199 ;~ call DEBUG_DumpBSSSectors 210 211 ; 212 ; Stop scanning if too many partitions. 213 ; 214 cmp word ptr [cs:NewPartitions],LocIPT_MaxPartitions 215 jae skip_check 200 216 call PARTSCAN_CheckThisPartition 201 ;~ call DEBUG_DumpBSSSectors 217 jmp PSSP_IgnorePartition 218 skip_check: 219 ; Cannot boot LVM-Data partitions 220 pusha 221 mov byte ptr [cs:TooManyPartitions],1 222 mov cx, 0C04h 223 ;~ mov si, offset TXT_ERROR_TooManyPartitions 224 mov si, offset TXT_TooManyPartitions 225 add si,5 ; We stole this string, so skip new-line and dash. 226 ;~ call SETUP_Warning_AreYouSure 227 call SETUP_ShowErrorBox 228 popa 229 202 230 PSSP_IgnorePartition: 203 231 ; Lscht das Boot-Able Flag... … … 687 715 jbe PCCTP_NotTooManyPartitions 688 716 717 ; Should not be reached since scanning is stopped outside this 718 ; function when partition limit exceeds. 689 719 mov si, offset TXT_TooManyPartitions 690 720 call MBR_Teletype … … 730 760 ; Reset X-Reference 731 761 PARTSCAN_ResetXref Proc Near Uses ax cx di 732 mov di, offset PartitionXref ; X-Reference for later syncing762 mov di, offset PartitionXref ; X-Reference for later syncing 733 763 mov cx, LocIPT_MaxPartitions 734 mov ax, 0FFFFh ; Fill up with FFh -- Influences OVERWRITE BUG !764 mov ax, 0FFFFh ; Fill up with FFh 735 765 rep stosb 736 mov di, offset NewHidePartTable ; Temporary Hide-Config Table766 mov di, offset NewHidePartTable ; Temporary Hide-Config Table 737 767 ;~ mov cx, LocIPT_MaxPartitions * LocIPT_LenOfIPT 738 mov cx, LocIPT_MaxPartitions * LocHPT_LenOfHPT ; Checken !!!739 rep stosb ; Fill up with FFFFh768 mov cx, LocIPT_MaxPartitions * LocHPT_LenOfHPT 769 rep stosb ; Fill up with FFFFh 740 770 mov di, offset NewDriveLetters 741 mov cx, LocIPT_MaxPartitions ; Temporary Logical-Drive Letter Table771 mov cx, LocIPT_MaxPartitions ; Temporary Logical-Drive Letter Table 742 772 xor ax, ax 743 rep stosb ; Fill up with 0000h773 rep stosb ; Fill up with 0000h 744 774 ret 745 775 PARTSCAN_ResetXref EndP … … 759 789 mov si, offset HidePartitionTable 760 790 mov di, offset NewHidePartTable 761 mov bl, LocIPT_MaxPartitions 791 ;~ mov bl, LocIPT_MaxPartitions 792 mov bl, LocHPT_LenOfHPT 762 793 mov al, dl 763 794 mul bl … … 766 797 mul bl 767 798 add di, ax 768 mov cx, LocIPT_MaxPartitions 799 ;~ mov cx, LocIPT_MaxPartitions 800 mov cx, LocHPT_LenOfHPT 769 801 rep movsb ; Copy Hide-Config to NewHideTable 770 802 ; Process Logical-Drive-Letter table as well... … … 797 829 798 830 799 831 ; 832 ; Rousseau: Adjusted for packed hidden-part-table ! 833 ; Needs to be re-written. 834 ; 800 835 ; This here updates the contents of the Hide-Configuration to the current IPT 801 836 ; table. … … 803 838 mov si, offset NewHidePartTable 804 839 mov di, offset HidePartitionTable 805 mov ch, LocIPT_MaxPartitions 840 mov dh, LocIPT_MaxPartitions ; Max entries in hide-tables. 841 806 842 PSSHCWX_SyncPartLoop: 807 mov cl, LocIPT_MaxPartitions 843 mov cl, LocIPT_MaxPartitions ; Max entries per hide-entry. 808 844 xor dl, dl ; Partition Lost Counter 845 846 mov ch,0 ; Index. 847 809 848 PSSHCWX_SyncLoop: 810 lodsb ; Get Part-Pointer from Hide-Cfg 811 cmp al, 0FFh 849 mov bx,si 850 851 ;~ lodsb ; Get Part-Pointer from Hide-Cfg 852 853 push dx 854 mov dl,ch 855 mov dh,6 856 call CONV_GetBitfieldValue 857 pop dx 858 859 ;~ cmp al, 0FFh 860 cmp al, 3Fh 812 861 je PSSHCWX_SyncEmpty 813 862 ;movzx bx, al … … 816 865 817 866 mov al, [PartitionXref+bx] ; Translate it 818 cmp al, 0FFh 867 ;~ cmp al, 0FFh 868 cmp al, 3Fh 819 869 je PSSHCWX_PartLost 870 820 871 PSSHCWX_SyncEmpty: 821 stosb ; Put translated pointer to new table 872 mov bx,di 873 ;~ stosb ; Put translated pointer to new table 874 875 push dx 876 mov dl,ch 877 mov dh,6 878 call CONV_SetBitfieldValue 879 pop dx 880 881 inc ch 822 882 dec cl 823 883 jnz PSSHCWX_SyncLoop 884 824 885 jmp PSSHCWX_SyncLoopEnd 886 825 887 PSSHCWX_PartLost: 826 888 inc dl ; One partition got lost... … … 829 891 830 892 PSSHCWX_SyncLoopEnd: 893 894 895 IFDEF AUX_DEBUG 896 pusha 897 mov al,dl 898 call AuxIO_TeletypeHexByte 899 call AuxIO_TeletypeNL 900 popa 901 ENDIF 902 903 831 904 or dl, dl 832 905 jz PSSHCWX_NothingLost 833 mov al, 0FFh ; Influences OVERWRITE BUG ! (OUT OF BOUNDS !!) 834 PSSHCWX_LostFillLoop: 835 stosb 906 ;~ mov al, 0FFh ; Influences OVERWRITE BUG ! (OUT OF BOUNDS !!) 907 mov al, 3Fh 908 909 PSSHCWX_LostFillLoop: ; CHECK !! 910 ;~ stosb 836 911 dec cl 837 912 jnz PSSHCWX_LostFillLoop 838 913 839 ; debug code 840 mov ax,di 841 call AuxIO_TeletypeHexWord 842 call AuxIO_TeletypeNL 914 IFDEF AUX_DEBUG 915 ; debug code 916 mov ax,di 917 call AuxIO_TeletypeHexWord 918 call AuxIO_TeletypeNL 919 ENDIF 843 920 844 921 PSSHCWX_NothingLost: 845 dec ch 922 add si, LocHPT_LenOfHPT 923 add di, LocHPT_LenOfHPT 924 dec dh 846 925 jnz PSSHCWX_SyncPartLoop 926 847 927 ret 848 928 PARTSCAN_SyncHideConfigWithXref EndP -
trunk/BOOTCODE/REGULAR/STD_TEXT.ASM
r44 r45 41 41 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate>> (build: #18)', 0 42 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: 201202 14)', 044 Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Internal Release 2 g>> (bld: 20120221)', 043 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Release Candidate 2>> (bld: 20120224)', 0 44 Copyright db ' AiR-BOOT v1.0.8 - (c) 2012 M. Kiewitz <<Internal Release 2l>> (bld: 20120224)', 0 45 45 ;Copyright db ' AiR-BOOT v1.0.8 - (c) 1998-2012 M. Kiewitz, Dedicated to Gerd Kiewitz', 0 46 46 47 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', 048 TXT_SETUP_NoEditType35 db 'Labels of LVM-Data partitions cannot be changed.', 0 49 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 50 TXT_SETUP_NoBootType35 db 'LVM-Data partitions cannot be set bootable.', 0 51 52 ;TXT_ERROR_TooManyPartitions db 'Too many partitions! -- Proper operation not guaranteed!', 0 51 53 52 54 ; Rousseau: switch around
Note:
See TracChangeset
for help on using the changeset viewer.
