Changeset 78
- Timestamp:
- Apr 8, 2017, 12:26:16 AM (8 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/bootcode/airboot.asm
r77 r78 120 120 BIOS_AUXPARMS_DEFAULT EQU (AUX_INIT_PARMS SHL 8) OR BIOS_COM_PORT 121 121 122 ; Default byte value for BIOS_BootDisk variabl s122 ; Default byte value for BIOS_BootDisk variable 123 123 BIOS_BOOTDISK_DEFAULT EQU 80h 124 124 -
trunk/bootcode/regular/driveio.asm
r67 r78 39 39 mov es, ax 40 40 mov bx, offset Configuration 41 mov dx, 0080h ; First harddrive, Sector 55... 42 mov cx, 0037h 41 xor dh, dh 42 mov dl, [BIOS_BootDisk] ; Disk we booted from 43 mov cx, 0037h ; Sector 55 (CHS) 43 44 mov ax, 0201h ; Function 02, read 1 sector... 44 45 int 13h … … 86 87 ; ES == CS 87 88 mov bx, offset Configuration 88 mov dx, 0080h ; First harddrive, Sector 55... 89 mov cx, 0037h 89 xor dh, dh 90 mov dl, [BIOS_BootDisk] ; Disk we booted from 91 mov cx, 0037h ; Sector 55 (CHS) 90 92 91 93 ; Changed from 5 to calculated value … … 173 175 mov di, offset LBASwitchTable 174 176 mov dh, [TotalHarddiscs] 175 mov dl, 80h 177 mov dl, 80h ; First disk to process 176 178 DIOILUT_DriveLoop: 177 179 push dx … … 197 199 mov bptr ds:[di], ah ; Save that value 198 200 inc di ; Go to next BYTE 199 inc dl 200 dec dh 201 jnz DIOILUT_DriveLoop 201 inc dl ; Next disk 202 dec dh ; Decrease disks to process 203 jnz DIOILUT_DriveLoop ; Next disk if DH != 0 202 204 ret 203 205 DriveIO_InitLBASwitchTable EndP … … 800 802 ; checking the AiR-BOOT MBR. 801 803 ; 802 cmp dl, 80h803 j aDriveIO_ProtectMBR_is_not_bootdisk804 cmp dl, [BIOS_BootDisk] 805 jne DriveIO_ProtectMBR_is_not_bootdisk 804 806 805 807 ; -
trunk/bootcode/regular/other.asm
r76 r78 166 166 call MBR_TeletypeNL 167 167 168 ; 169 ; Write MBR back to disk to sync MBR variables. 170 ; Otherwise subsequent MBR loads will differ from the RAM stored one, 171 ; which is used by MBR protection to validate parts of the MBR. 172 ; 173 xor bx, bx 174 mov cx, 1 175 xor dh, dh 176 mov dl, [BIOS_BootDisk] 177 mov al, 1 178 mov ah, 03h 179 int 13h 180 181 182 ; Start with disk at index 0 168 183 xor cx,cx 184 169 185 PRECRAP_Main_next_disk: 170 186 187 ; Get next disk and convert to BIOS disk-number 171 188 mov dl,cl 172 189 or dl,80h … … 431 448 mov ah, 41h 432 449 mov bx, 55AAh 433 mov dl, 80h450 mov dl, [BIOS_BootDisk] ; We check using the boot-disk 434 451 int 13h 435 452 cmp bx, 0AA55h -
trunk/bootcode/regular/partmain.asm
r76 r78 1318 1318 ; --- HIDE COMPLETED --- 1319 1319 ; So something got hidden and we have to remark a primary partition, 1320 ; if we are booting something non-primary from 1st hdd. 1321 cmp bptr [si+LocIPT_Drive], 80h 1322 ja PSP_HideAdjustPrimaryMark ; When booting any hdd, but 1st 1320 ; if we are booting something non-primary from the boot-disk. 1321 mov al, [BIOS_BootDisk] 1322 cmp bptr [si+LocIPT_Drive], al 1323 jne PSP_HideAdjustPrimaryMark ; When booting any hdd, but boot-disk 1323 1324 mov ax, wptr [si+LocIPT_AbsolutePartTable] 1324 1325 mov bx, wptr [si+LocIPT_AbsolutePartTable+2] 1325 1326 or ax, ax 1326 1327 jnz PSP_HideAdjustPrimaryMark ; or booting non-primary partition 1327 or bx, bx ; on 1st harddrive.1328 or bx, bx ; on boot-disk. 1328 1329 jz PSP_NoHideAdjustPrimaryMark 1329 1330 … … 1333 1334 xor bx, bx 1334 1335 mov cx, 0001h ; Cylinder 0, Sector 1 1335 mov dx, 0080h ; First HD, Head 0 1336 ; Load MBR 1336 xor dh, dh ; Head 0 1337 mov dl, [BIOS_BootDisk] ; Boot Disk 1338 1339 ; This uses the boot-disk and alters 'CurPartition_Location'. 1340 ; CHECKME: How does 81h being the boot-disk influences this ? 1337 1341 call DriveIO_LoadPartition ; Load Primary Partition Table 1342 1343 ; This would only be needed for very old BIOSses 1338 1344 call PART_MarkFirstGoodPrimary 1339 call DriveIO_SavePartition ; Saves the Partition-Table 1345 1346 ; CHECKME: Disabled writing back MBR with modified boot flags 1347 ; This is a safety measure now that booting AirBoot from other disks 1348 ; than 80h can occur. 1349 ;~ call DriveIO_SavePartition ; Saves the Partition-Table 1340 1350 1341 1351 -
trunk/bootcode/regular/partscan.asm
r76 r78 305 305 ; Clearing the boot-flags on other disks would prevent booting them 306 306 ; from the BIOS. (TRAC ticket #6) 307 cmp dl, 080h; See if this is boot-disk307 cmp dl, [BIOS_BootDisk] ; See if this is boot-disk 308 308 jne PSSP_Skip_Clear_BootFlag ; Nope, skip clear flag 309 309 and byte ptr [si+LocBRPT_Flags], 7Fh ; Reset the Active-Flag … … 313 313 jb PSSP_ScanLoop 314 314 ; If we are on first HDD and in primary partition table -> mark primary 315 cmp bptr [CurPartition_Location+4], 80h ; Drive 315 mov al, [BIOS_BootDisk] 316 cmp bptr [CurPartition_Location+4], al ; Drive 316 317 jne PSSP_NoMarkPrimary 317 318 cmp wptr [CurPartition_Location+0], 0 318 319 jne PSSP_NoMarkPrimary 319 cmp wptr [CurPartition_Location+2], 0 ; Absolute Location320 cmp wptr [CurPartition_Location+2], 0 ; Absolute Location 320 321 jne PSSP_NoMarkPrimary 321 322 call PART_MarkFirstGoodPrimary -
trunk/include/version.h
r76 r78 32 32 #define BLDLVL_YEAR "2017" 33 33 #define BLDLVL_MONTH "03" 34 #define BLDLVL_DAY "1 8"34 #define BLDLVL_DAY "19" 35 35 // Build time 36 36 //~ #define BLDLVL_HOURS "01" -
trunk/include/version.inc
r76 r78 70 70 AB_YEAR EQU 2017h 71 71 AB_MONTH EQU 03h 72 AB_DAY EQU 1 8h72 AB_DAY EQU 19h 73 73 74 74 ; The Hours, Minutes and Seconds, again in BCD for easy manipulation.
Note:
See TracChangeset
for help on using the changeset viewer.