not setting carry (Developers)
> > It is deliberate. The "high" functions use the MS-DOS v1 style error
> > return, which consists of Carry Flag unchanged, al = 00h.
>
> Thanks. And do we now have a definite definition of "high"?
This is the instructions in MS-DOS v4.01: https://hg.pushbx.org/ecm/msdos4/file/51ad27d225a8/src/DOS/DISP.ASM#l237
The variable is defined here: https://hg.pushbx.org/ecm/msdos4/file/51ad27d225a8/src/DOS/MS_TABLE.ASM#l234
VAL2 is calculated after the table: https://hg.pushbx.org/ecm/msdos4/file/51ad27d225a8/src/DOS/MS_TABLE.ASM#l409
That means all calls above ah=6Ch are high.
The same is true of MS-DOS v5.00 and presumably v6 as well. Here's disassembly of MS-DOS v5.00 running in dosemu2:
C:\>ldebug
-a
2BC9:0100 mov ah, 80
2BC9:0102 int 21
2BC9:0104 nop
2BC9:0105 int3
2BC9:0106 nop
2BC9:0107
-di 21
int 21 B001:008C (IISP)
--> F000:EAA1 (nonstandard IISP)
--> 011C:109E
-g 11C:109E
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=011C IP=109E NV UP DI PL ZR NA PE NC
011C:109E 90 nop
-p
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=011C IP=109F NV UP DI PL ZR NA PE NC
011C:109F 90 nop
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=011C IP=10A0 NV UP DI PL ZR NA PE NC
011C:10A0 E8CC00 call 116F
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=011C IP=10A3 NV UP DI PL ZR NA PE NC
011C:10A3 2EFF2E6A10 jmp far [cs:106A] CS:106A=FDC8:40EB
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=FDC8 IP=40EB NV UP DI PL ZR NA PE NC
FDC8:40EB FA cli
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=FDC8 IP=40EC NV UP DI PL ZR NA PE NC
FDC8:40EC 80FC6C cmp ah, 6C
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=FDC8 IP=40EF OV UP DI PL NZ AC PE NC
FDC8:40EF 77D2 ja 40C3 jumping
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=FDC8 IP=40C3 OV UP DI PL NZ AC PE NC
FDC8:40C3 32C0 xor al, modrm al
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=FDC8 IP=40C5 NV UP DI PL ZR NA PE NC
FDC8:40C5 CF iret
-
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2BC9 ES=2BC9 SS=2BC9 CS=2BC9 IP=0104 NV UP EI PL ZR NA PE NC
2BC9:0104 90 nop
-
Here's disassembly of MS-DOS v7.00, apparently it supports some(?) functions of ah=73h: (The interrupt list has some functions marked as MS-DOS 7 and others as FAT32 (corresponding to MS-DOS v7.10).)
lDebug connected to serial port. Enter KEEP to confirm.
= keep
^a
2D6A:0100 mov ah, 80
B480
2D6A:0102 int 21
CD21
2D6A:0104 nop
90
2D6A:0105 int3
CC
2D6A:0106 nop
90
2D6A:0107
^r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=0100 NV UP EI PL ZR NA PE NC
2D6A:0100 B480 mov ah, 80
^tm 1
trace mode is 1 - interrupts are traced
^install indos
^r
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=0100 NV UP EI PL ZR NA PE NC
2D6A:0100 B480 mov ah, 80
^t
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=0102 NV UP EI PL ZR NA PE NC
2D6A:0102 CD21 int 21
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=00C9 IP=0FB2 NV UP DI PL ZR NA PE NC
00C9:0FB2 90 nop
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=00C9 IP=0FB3 NV UP DI PL ZR NA PE NC
00C9:0FB3 90 nop
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=00C9 IP=0FB4 NV UP DI PL ZR NA PE NC
00C9:0FB4 E8D100 call 1088
^p
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=00C9 IP=0FB7 NV UP DI PL ZR NA PE NC
00C9:0FB7 2EFF2E820F jmp far [cs:0F82] CS:0F82=FF03:41E7
^t
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=FF03 IP=41E7 NV UP DI PL ZR NA PE NC
FF03:41E7 FA cli
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=FF03 IP=41E8 NV UP DI PL ZR NA PE NC
FF03:41E8 80FC73 cmp ah, 73
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=FF03 IP=41EB OV UP DI PL NZ AC PO NC
FF03:41EB 77D2 ja 41BF jumping
^t
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=FF03 IP=41BF OV UP DI PL NZ AC PO NC
FF03:41BF 32C0 xor al, al
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFF8 BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=FF03 IP=41C1 NV UP DI PL ZR NA PE NC
FF03:41C1 CF iret
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=0104 NV UP EI PL ZR NA PE NC
2D6A:0104 90 nop
^a
2D6A:0107 mov ax, 3306
B80633
2D6A:010A int 21
CD21
2D6A:010C nop
90
2D6A:010D int3
CC
2D6A:010E
^tm 0
trace mode is 0 - interrupts are processed
^t
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=0105 NV UP EI PL ZR NA PE NC
2D6A:0105 CC int3
^
Unexpected breakpoint interrupt
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=0106 NV UP EI PL ZR NA PE NC
2D6A:0106 90 nop
^
AX=8000 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=0107 NV UP EI PL ZR NA PE NC
2D6A:0107 B80633 mov ax, 3306
^
AX=3306 BX=0000 CX=0000 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=010A NV UP EI PL ZR NA PE NC
2D6A:010A CD21 int 21
^
AX=3306 BX=0007 CX=0000 DX=1000 SP=FFFE BP=0000 SI=0000 DI=0000
DS=2D6A ES=2D6A SS=2D6A CS=2D6A IP=010C NV UP EI PL ZR NA PE NC
2D6A:010C 90 nop
^
---
l
Complete thread:
- not setting carry - kerravon, 16.10.2025, 10:29 (Developers)
![Open in board view [Board]](img/board_d.gif)
![Open in mix view [Mix]](img/mix_d.gif)
- not setting carry - ecm, 16.10.2025, 16:17
- not setting carry - bretjohn, 16.10.2025, 23:59
- not setting carry - ecm, 17.10.2025, 09:30
- not setting carry - kerravon, 17.10.2025, 07:58
- not setting carry - ecm, 17.10.2025, 10:29
- not setting carry - kerravon, 17.10.2025, 10:55
- not setting carry - ecm, 17.10.2025, 11:31
- not setting carry - kerravon, 17.10.2025, 16:51
- not setting carry - ecm, 17.10.2025, 18:43
- not setting carry - kerravon, 17.10.2025, 19:05
- not setting carry - ecm, 17.10.2025, 18:43
- not setting carry - kerravon, 17.10.2025, 16:51
- not setting carry - ecm, 17.10.2025, 11:31
- not setting carry - kerravon, 17.10.2025, 10:55
- not setting carry - ecm, 17.10.2025, 10:29
- not setting carry - bretjohn, 16.10.2025, 23:59
- not setting carry - ecm, 16.10.2025, 16:17
Mix view