tc2-build: correct various build breaks for Turbo C 2.0 build

This commit is contained in:
Jiri Malak 2024-07-13 15:25:31 +02:00 committed by Kenneth J Davis
parent 58573d69d9
commit 2fb0956513

View File

@ -74,12 +74,12 @@ struct HugeSectorBlock {
/* to compile under gcc-ia16 to correctly-behaving code _for now_. But */ /* to compile under gcc-ia16 to correctly-behaving code _for now_. But */
/* it will be better to be able to guarantee this. -- tkchia 20191207 */ /* it will be better to be able to guarantee this. -- tkchia 20191207 */
/* Update: I added experimental SS != DGROUP support, and a __seg_ss */ /* Update: I added experimental SS != DGROUP support, and a __seg_ss */
/* address space qualifier, to gcc-ia16 around January 2020. This */ /* address space qualifier, to gcc-ia16 around January 2020. This */
/* function now uses these if available. In particular, the iregs *irp */ /* function now uses these if available. In particular, the iregs *irp */
/* structure will always be on the stack, so (as far as the calling */ /* structure will always be on the stack, so (as far as the calling */
/* convention permits) the function can treat the irp pointer as a */ /* convention permits) the function can treat the irp pointer as a */
/* 16-bit pointer relative to SS. -- tkchia 20200417 */ /* 16-bit pointer relative to SS. -- tkchia 20200417 */
#if defined __GNUC__ && defined __IA16_FEATURE_ATTRIBUTE_NO_ASSUME_SS_DATA #if defined __GNUC__ && defined __IA16_FEATURE_ATTRIBUTE_NO_ASSUME_SS_DATA
__attribute__((no_assume_ss_data)) __attribute__((no_assume_ss_data))
VOID ASMCFUNC int21_syscall(iregs __seg_ss * irp, ...) VOID ASMCFUNC int21_syscall(iregs __seg_ss * irp, ...)
@ -142,16 +142,16 @@ VOID ASMCFUNC int21_syscall(iregs FAR * irp)
/* the remaining are FreeDOS extensions */ /* the remaining are FreeDOS extensions */
/* return CPU family */ /* return CPU family */
case 0xfa: case 0xfa:
irp->AL = CPULevel; irp->AL = CPULevel;
break; break;
#if 0 /* unknown if used / usage */ #if 0 /* unknown if used / usage */
case 0xfb: case 0xfb:
#endif #endif
#if 1 /* duplicates DOS 4 int 2F/122Fh, but used by CALLVER */ #if 1 /* duplicates DOS 4 int 2F/122Fh, but used by CALLVER */
/* set FreeDOS returned version for int 21.30 from BX */ /* set FreeDOS returned version for int 21.30 from BX */
case 0xfc: case 0xfc:
os_setver_major = irp->BL; os_setver_major = irp->BL;
@ -2002,9 +2002,9 @@ VOID ASMCFUNC int2F_12_handler(struct int2f12regs FAR *pr)
r.BX = FP_OFF(&winStartupInfo); r.BX = FP_OFF(&winStartupInfo);
winStartupInfo.winver = r.di; /* match what caller says it is */ winStartupInfo.winver = r.di; /* match what caller says it is */
#if defined __GNUC__ #if defined __GNUC__
winseg1 = FP_SEG(&winStartupInfo); winseg1 = FP_SEG(&winStartupInfo);
winseg2 = FP_SEG(&DATASTART); winseg2 = FP_SEG(&DATASTART);
winseg3 = FP_OFF(&markEndInstanceData); winseg3 = FP_OFF(&markEndInstanceData);
#endif #endif
winInstanced = 1; /* internal flag marking Windows is active */ winInstanced = 1; /* internal flag marking Windows is active */
DebugPrintf(("Win startup\n")); DebugPrintf(("Win startup\n"));
@ -2569,7 +2569,7 @@ VOID ASMCFUNC int2F_12_handler(struct int2f12regs FAR *pr)
os_setver_major = r.DL; os_setver_major = r.DL;
os_setver_minor = r.DH; os_setver_minor = r.DH;
} }
else /* set returned version from emulated true DOS version */ else /* set returned version from emulated true DOS version */
{ {
os_setver_major = os_major; os_setver_major = os_major;
os_setver_minor = os_minor; os_setver_minor = os_minor;