32-bit MSDOS (Announce)
> I assume that CHS and LBA are mutually exclusive?
Not at all. You simply use the LBA detection int 13 call and if that is positive, you are allowed to use LBA style disk access. You can always stick to CHS, but of course CHS has the added complexity that the same LBA sector can have different CHS locations depending on how your current geometry is arranged, for example based on your BIOS CMOS settings. But of course there also is an int 13 call to query the current CHS geometry
> Or can you write code, including a boot sector, that
> gracefully detects whether you are on an LBA-capable
> system and switch to LBA?
Of course, yes. The detection is simple, just write your own public domain code to use it. From RBIL:
INT 13 - IBM/MS INT 13 Extensions - INSTALLATION CHECK
AH = 41h
BX = 55AAh
DL = drive (80h-FFh)
Return: CF set on error (extensions not supported)
AH = 01h (invalid function)
CF clear if successful
BX = AA55h if installed
AH = major version of extensions
01h = 1.x
20h = 2.0 / EDD-1.0
21h = 2.1 / EDD-1.1
30h = EDD-3.0
AL = internal use
CX = API subset support bitmap (see #00271)
DH = extension version
Bitfields for IBM/MS INT 13 Extensions API support bitmap:
Bit(s) Description (Table 00271)
0 extended disk access functions (AH=42h-44h,47h,48h) supported
1 removable drive controller functions (AH=45h,46h,48h,49h,INT 15/AH=52h)
supported
2 enhanced disk drive (EDD) functions (AH=48h,AH=4Eh) supported
extended drive parameter table is valid (see #00273,#00278)
3-15 reserved (0)
One of the reserved bits later got used to indicate support for linear pointers to RAM, I think even supporting 64-bit pointers for buffers beyond your first 4 GB of RAM, for int 13 LBA calls. Read the updated EDD specs for details if you want to use that feature.
See int 13 functions 08 and 48 for details about checking the current CHS geometry. To access sector contents, use functions 2 and 3 for CHS or 42 and 43 for LBA style.
---
FreeDOS / DOSEMU2 / ...
Complete thread:
- 32-bit MSDOS - kerravon, 26.06.2021, 15:52 (Announce)
- 32-bit MSDOS - tom, 27.06.2021, 13:23
- 32-bit MSDOS - kerravon, 27.06.2021, 13:46
- 32-bit MSDOS - tom, 27.06.2021, 14:14
- 32-bit MSDOS - kerravon, 27.06.2021, 14:58
- 32-bit MSDOS - Japheth, 27.06.2021, 16:09
- 32-bit MSDOS - kerravon, 27.06.2021, 17:46
- 32-bit MSDOS - Japheth, 28.06.2021, 05:54
- 32-bit MSDOS - kerravon, 28.06.2021, 07:15
- 32-bit MSDOS - RayeR, 28.06.2021, 13:43
- 32-bit MSDOS - kerravon, 28.06.2021, 15:04
- 32-bit MSDOS - tkchia, 28.06.2021, 19:00
- 32-bit MSDOS - kerravon, 29.06.2021, 00:34
- 32-bit MSDOS - kerravon, 29.06.2021, 01:52
- 32-bit MSDOS - marcov, 30.06.2021, 15:11
- 32-bit MSDOS - kerravon, 30.06.2021, 22:32
- 32-bit MSDOS - marcov, 30.06.2021, 22:42
- 32-bit MSDOS - kerravon, 30.06.2021, 22:57
- 32-bit MSDOS - marcov, 01.07.2021, 09:45
- 32-bit MSDOS - kerravon, 01.07.2021, 13:39
- 32-bit MSDOS - marcov, 01.07.2021, 15:54
- 32-bit MSDOS - kerravon, 02.07.2021, 00:59
- 32-bit MSDOS - kerravon, 02.07.2021, 13:31
- 32-bit MSDOS - marcov, 03.07.2021, 19:28
- 32-bit MSDOS - kerravon, 04.07.2021, 01:55
- 32-bit MSDOS - marcov, 04.07.2021, 22:29
- 32-bit MSDOS - kerravon, 05.07.2021, 00:31
- 32-bit MSDOS - marcov, 05.07.2021, 10:05
- 32-bit MSDOS - kerravon, 05.07.2021, 10:28
- 32-bit MSDOS - mceric, 05.07.2021, 12:40
- 32-bit MSDOS - kerravon, 05.07.2021, 14:00
- 32-bit MSDOS - mceric, 05.07.2021, 16:27
- 32-bit MSDOS - kerravon, 05.07.2021, 23:55
- 32-bit MSDOS - tom, 06.07.2021, 09:51
- 32-bit MSDOS - kerravon, 06.07.2021, 11:06
- 32-bit MSDOS - kerravon, 07.07.2021, 09:31
- 32-bit MSDOS - kerravon, 06.07.2021, 11:06
- 32-bit MSDOS - tom, 06.07.2021, 09:51
- 32-bit MSDOS - kerravon, 05.07.2021, 23:55
- 32-bit MSDOS - mceric, 05.07.2021, 16:27
- 32-bit MSDOS - kerravon, 05.07.2021, 14:00
- 32-bit MSDOS - mceric, 05.07.2021, 12:40
- 32-bit MSDOS - kerravon, 05.07.2021, 10:28
- 32-bit MSDOS - marcov, 05.07.2021, 10:05
- 32-bit MSDOS - kerravon, 05.07.2021, 00:31
- 32-bit MSDOS - marcov, 04.07.2021, 22:29
- 32-bit MSDOS - kerravon, 04.07.2021, 01:55
- 32-bit MSDOS - marcov, 03.07.2021, 19:28
- 32-bit MSDOS - marcov, 02.07.2021, 14:05
- 32-bit MSDOS - kerravon, 02.07.2021, 15:19
- 32-bit MSDOS - marcov, 02.07.2021, 16:02
- 32-bit MSDOS - mceric, 02.07.2021, 17:15
- 32-bit MSDOS - kerravon, 02.07.2021, 17:43
- 32-bit MSDOS - kerravon, 03.07.2021, 05:14
- 32-bit MSDOS - mceric, 03.07.2021, 13:03
- 32-bit MSDOS - kerravon, 03.07.2021, 13:16
- 32-bit MSDOS - marcov, 03.07.2021, 15:35
- 32-bit MSDOS - kerravon, 03.07.2021, 15:45
- 32-bit MSDOS - marcov, 03.07.2021, 19:06
- 32-bit MSDOS - kerravon, 04.07.2021, 02:00
- 32-bit MSDOS - kerravon, 04.07.2021, 02:50
- 32-bit MSDOS - marcov, 04.07.2021, 22:59
- 32-bit MSDOS - kerravon, 05.07.2021, 00:51
- 32-bit MSDOS - marcov, 05.07.2021, 10:00
- 32-bit MSDOS - kerravon, 05.07.2021, 10:23
- 32-bit MSDOS - marcov, 05.07.2021, 13:19
- 32-bit MSDOS - kerravon, 05.07.2021, 13:48
- 32-bit MSDOS - marcov, 05.07.2021, 13:19
- 32-bit MSDOS - kerravon, 05.07.2021, 10:23
- 32-bit MSDOS - marcov, 05.07.2021, 10:00
- 32-bit MSDOS - kerravon, 05.07.2021, 00:51
- 32-bit MSDOS - marcov, 04.07.2021, 22:59
- 32-bit MSDOS - kerravon, 04.07.2021, 03:10
- 32-bit MSDOS - kerravon, 04.07.2021, 03:15
- 32-bit MSDOS - kerravon, 04.07.2021, 05:24
- 32-bit MSDOS - kerravon, 04.07.2021, 05:32
- 32-bit MSDOS - marcov, 04.07.2021, 23:08
- 32-bit MSDOS - kerravon, 05.07.2021, 01:00
- 32-bit MSDOS - kerravon, 05.07.2021, 04:10
- 32-bit MSDOS - tkchia, 05.07.2021, 15:09
- 32-bit MSDOS - kerravon, 05.07.2021, 15:48
- 32-bit MSDOS - kerravon, 05.07.2021, 01:00
- 32-bit MSDOS - kerravon, 04.07.2021, 05:43
- 32-bit MSDOS - kerravon, 04.07.2021, 07:06
- 32-bit MSDOS - kerravon, 04.07.2021, 07:35
- 32-bit MSDOS - kerravon, 04.07.2021, 05:24
- 32-bit MSDOS - tkchia, 04.07.2021, 09:16
- 32-bit MSDOS - kerravon, 04.07.2021, 10:13
- 32-bit MSDOS - tkchia, 04.07.2021, 11:03
- 32-bit MSDOS - kerravon, 04.07.2021, 11:14
- 32-bit MSDOS - tkchia, 04.07.2021, 11:03
- 32-bit MSDOS - kerravon, 04.07.2021, 10:13
- 32-bit MSDOS - marcov, 04.07.2021, 22:57
- 32-bit MSDOS - kerravon, 05.07.2021, 00:48
- 32-bit MSDOS - kerravon, 04.07.2021, 03:15
- 32-bit MSDOS - marcov, 04.07.2021, 22:37
- 32-bit MSDOS - kerravon, 05.07.2021, 00:33
- 32-bit MSDOS - kerravon, 04.07.2021, 02:50
- 32-bit MSDOS - kerravon, 04.07.2021, 02:00
- 32-bit MSDOS - marcov, 03.07.2021, 19:06
- 32-bit MSDOS - kerravon, 03.07.2021, 15:45
- 32-bit MSDOS - marcov, 03.07.2021, 15:35
- 32-bit MSDOS - kerravon, 03.07.2021, 13:16
- 32-bit MSDOS - marcov, 03.07.2021, 14:30
- 32-bit MSDOS - marcov, 03.07.2021, 14:47
- 32-bit MSDOS - kerravon, 03.07.2021, 15:39
- 32-bit MSDOS - marcov, 03.07.2021, 16:12
- 32-bit MSDOS - kerravon, 03.07.2021, 16:23
- 32-bit MSDOS - marcov, 03.07.2021, 16:12
- 32-bit MSDOS - mceric, 03.07.2021, 13:03
- 32-bit MSDOS - kerravon, 03.07.2021, 05:14
- 32-bit MSDOS - kerravon, 02.07.2021, 17:43
- 32-bit MSDOS - kerravon, 02.07.2021, 17:40
- 32-bit MSDOS - marcov, 03.07.2021, 14:02
- 32-bit MSDOS - kerravon, 03.07.2021, 14:41
- 32-bit MSDOS - marcov, 03.07.2021, 15:54
- 32-bit MSDOS - kerravon, 03.07.2021, 16:16
- user32.dll - marcov, 03.07.2021, 19:48
- user32.dll - kerravon, 04.07.2021, 02:20
- user32.dll - marcov, 04.07.2021, 23:17
- user32.dll - kerravon, 05.07.2021, 01:07
- user32.dll - marcov, 04.07.2021, 23:17
- user32.dll - kerravon, 04.07.2021, 02:20
- user32.dll - marcov, 03.07.2021, 19:48
- 32-bit MSDOS - kerravon, 03.07.2021, 16:16
- 32-bit MSDOS - marcov, 03.07.2021, 15:54
- 32-bit MSDOS - kerravon, 03.07.2021, 14:41
- 32-bit MSDOS - marcov, 03.07.2021, 14:02
- 32-bit MSDOS - mceric, 02.07.2021, 17:15
- 32-bit MSDOS - marcov, 02.07.2021, 16:02
- 32-bit MSDOS - kerravon, 02.07.2021, 15:19
- 32-bit MSDOS - kerravon, 02.07.2021, 13:31
- 32-bit MSDOS - kerravon, 02.07.2021, 00:59
- 32-bit MSDOS - marcov, 01.07.2021, 15:54
- 32-bit MSDOS - kerravon, 01.07.2021, 13:39
- 32-bit MSDOS - marcov, 01.07.2021, 09:45
- 32-bit MSDOS - kerravon, 30.06.2021, 22:57
- 32-bit MSDOS - marcov, 30.06.2021, 22:42
- 32-bit MSDOS - kerravon, 30.06.2021, 22:32
- 32-bit MSDOS - tkchia, 30.06.2021, 19:04
- 32-bit MSDOS - kerravon, 30.06.2021, 22:42
- 32-bit MSDOS - marcov, 30.06.2021, 22:47
- 32-bit MSDOS - kerravon, 30.06.2021, 23:14
- 32-bit MSDOS - marcov, 30.06.2021, 22:47
- 32-bit MSDOS - kerravon, 30.06.2021, 22:42
- 32-bit MSDOS - marcov, 30.06.2021, 15:11
- 32-bit MSDOS - kerravon, 29.06.2021, 01:52
- 32-bit MSDOS - kerravon, 29.06.2021, 00:34
- 32-bit MSDOS - tom, 28.06.2021, 20:47
- 32-bit MSDOS - kerravon, 29.06.2021, 00:21
- 32-bit MSDOS - tkchia, 28.06.2021, 19:00
- 32-bit MSDOS - tkchia, 28.06.2021, 19:09
- 32-bit MSDOS - kerravon, 29.06.2021, 05:16
- 32-bit MSDOS - Japheth, 29.06.2021, 05:40
- 32-bit MSDOS - kerravon, 29.06.2021, 07:14
- 32-bit Public Domain DOS - tom, 30.06.2021, 22:19
- 32-bit MSDOS - Japheth, 29.06.2021, 05:40
- 32-bit MSDOS - kerravon, 28.06.2021, 15:04
- 32-bit MSDOS - RayeR, 28.06.2021, 13:43
- 32-bit MSDOS - kerravon, 28.06.2021, 07:15
- 32-bit MSDOS - Japheth, 28.06.2021, 05:54
- 32-bit MSDOS - kerravon, 27.06.2021, 18:00
- 32-bit MSDOS - kerravon, 27.06.2021, 18:31
- 32-bit MSDOS - kerravon, 27.06.2021, 18:47
- 32-bit MSDOS - Japheth, 27.06.2021, 20:40
- 32-bit MSDOS - kerravon, 27.06.2021, 20:57
- 32-bit MSDOS - kerravon, 27.06.2021, 22:12
- 32-bit MSDOS - kerravon, 27.06.2021, 20:57
- 32-bit MSDOS - Japheth, 27.06.2021, 20:40
- 32-bit MSDOS - bocke, 14.09.2021, 11:33
- 32-bit MSDOS - kerravon, 27.06.2021, 18:47
- 32-bit MSDOS - kerravon, 27.06.2021, 18:31
- 32-bit MSDOS - kerravon, 27.06.2021, 17:46
- 32-bit MSDOS - Japheth, 27.06.2021, 16:09
- 32-bit MSDOS - kerravon, 27.06.2021, 14:58
- YAOIS - Yet Another Irrelevant Operating System - tom, 27.06.2021, 20:03
- 32-bit MSDOS - kerravon, 27.06.2021, 20:18
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:23
- YAOIS - Yet Another Irrelevant Operating System - mceric, 27.06.2021, 20:28
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:47
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:51
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:53
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:54
- YAOIS - Yet Another Irrelevant Operating System - rr, 27.06.2021, 21:21
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:54
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:53
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:51
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 20:47
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 21:30
- YAOIS - Yet Another Irrelevant Operating System - kerravon, 27.06.2021, 21:59
- a.out support in dos - DosWorld, 04.07.2021, 11:22
- a.out support in dos - kerravon, 04.07.2021, 12:01
- a.out support in dos - marcov, 04.07.2021, 23:22
- 32-bit MSDOS - DosWorld, 24.09.2021, 20:54
- 32-bit MSDOS - tom, 27.06.2021, 14:14
- 32-bit MSDOS - kerravon, 27.06.2021, 13:46
- 32-bit MSDOS - RayeR, 28.06.2021, 03:59
- 32-bit MSDOS - kerravon, 28.06.2021, 07:13
- 32-bit MSDOS - Zyzzle, 28.06.2021, 06:22
- 32-bit MSDOS - kerravon, 28.06.2021, 07:30
- 32-bit MSDOS - marcov, 30.06.2021, 22:49
- 32-bit MSDOS - kerravon, 30.06.2021, 23:08
- 32-bit MSDOS - mceric, 01.07.2021, 01:52
- 32-bit MSDOS - kerravon, 01.07.2021, 06:37
- 32-bit MSDOS - tkchia, 03.07.2021, 22:13
- 32-bit MSDOS - kerravon, 04.07.2021, 01:50
- 32-bit MSDOS - tkchia, 04.07.2021, 09:08
- 32-bit MSDOS - kerravon, 04.07.2021, 10:05
- 32-bit MSDOS - tkchia, 04.07.2021, 10:53
- 32-bit MSDOS - kerravon, 04.07.2021, 10:05
- 32-bit MSDOS - tkchia, 04.07.2021, 09:08
- 32-bit MSDOS - kerravon, 04.07.2021, 01:50
- 32-bit MSDOS - Brian_extended, 24.07.2021, 02:10
- 32-bit MSDOS - kerravon, 06.08.2021, 13:56
- 32-bit Public Domain OS - tom, 06.08.2021, 15:21
- 32-bit Public Domain OS - kerravon, 06.08.2021, 15:57
- 32-bit Public Domain OS - tom, 06.08.2021, 15:21
- 32-bit MSDOS - kerravon, 07.08.2021, 05:41
- 32-bit MSDOS - kerravon, 06.08.2021, 13:56
- 32-bit MSDOS - mceric, 01.07.2021, 01:52
- 32-bit MSDOS - kerravon, 30.06.2021, 23:08
- 32-bit MSDOS - RayeR, 03.08.2021, 06:59
- 32-bit MSDOS - kerravon, 06.08.2021, 13:50
- 32-bit MSDOS - RayeR, 06.08.2021, 15:09
- 32-bit MSDOS - kerravon, 06.08.2021, 16:07
- 32-bit MSDOS - RayeR, 20.08.2021, 18:59
- 32-bit MSDOS - kerravon, 27.09.2021, 04:28
- 32-bit MSDOS - mceric, 28.09.2021, 01:04
- 32-bit MSDOS - kerravon, 14.10.2021, 04:37
- 32-bit MSDOS - mceric, 28.09.2021, 01:04
- 32-bit MSDOS - kerravon, 27.09.2021, 04:28
- 32-bit MSDOS - RayeR, 20.08.2021, 18:59
- 32-bit MSDOS - kerravon, 06.08.2021, 16:07
- 32-bit MSDOS - RayeR, 06.08.2021, 15:09
- 32-bit MSDOS - kerravon, 06.08.2021, 13:50
- 32-bit MSDOS - dggionco, 09.08.2021, 14:43
- 32-bit MSDOS - kerravon, 09.08.2021, 15:39
- 32-bit MSDOS - dggionco, 09.08.2021, 20:00
- 32-bit MSDOS - kerravon, 09.08.2021, 21:25
- 32-bit MSDOS - dggionco, 10.08.2021, 14:58
- 32-bit MSDOS - kerravon, 10.08.2021, 17:06
- 32-bit MSDOS - dggionco, 10.08.2021, 18:06
- 32-bit MSDOS - kerravon, 10.08.2021, 17:06
- 32-bit MSDOS - dggionco, 10.08.2021, 14:58
- 32-bit MSDOS - kerravon, 09.08.2021, 21:25
- 32-bit MSDOS - dggionco, 09.08.2021, 20:09
- 32-bit MSDOS - dggionco, 09.08.2021, 20:00
- 32-bit MSDOS - kerravon, 09.08.2021, 15:39
- 32-bit MSDOS - tom, 27.06.2021, 13:23