From e1b22c70355c0d38d13f3a65de72305b5e6beb89 Mon Sep 17 00:00:00 2001 From: Kenneth J Davis Date: Sat, 15 Oct 2022 23:45:32 -0400 Subject: [PATCH] update comments (from Geoff Chappell blog and RBIL) --- hdr/process.h | 6 +++--- kernel/inthndlr.c | 17 ++++++++++++++--- kernel/kernel.asm | 6 +++--- 3 files changed, 20 insertions(+), 9 deletions(-) diff --git a/hdr/process.h b/hdr/process.h index d569921..9b63a83 100644 --- a/hdr/process.h +++ b/hdr/process.h @@ -79,10 +79,10 @@ typedef struct { UWORD ps_maxfiles; /* 32 maximum open files */ UBYTE FAR *ps_filetab; /* 34 open file table pointer */ VOID FAR *ps_prevpsp; /* 38 previous psp pointer */ - UBYTE ps_fill2; /* 3c unused */ - UBYTE ps_truename; /* 3d [unused] append truename flag int2f/B711h */ + UBYTE ps_dbcs_inputmode; /* 3c unused,see int21/6301h/6302h */ + UBYTE ps_truename; /* 3d unused,append truename flag int2f/B711h */ UBYTE ps_netx_taskid[2]; /* 3e [Novell only field] task id */ - UWORD ps_retdosver; /* 40 [unused] version to return on int21/30h */ + UWORD ps_retdosver; /* 40 version to return on int21/30h, defaults to true version */ UWORD pdb_next; /* 42 [Win only field] PSP chain */ UBYTE ps_fill2b[4]; /* 44 unused, 4 bytes */ UBYTE ps_olddos; /* 48 [Win only field] DOS/Win program */ diff --git a/kernel/inthndlr.c b/kernel/inthndlr.c index 00dcf37..b690e9a 100644 --- a/kernel/inthndlr.c +++ b/kernel/inthndlr.c @@ -142,11 +142,22 @@ VOID ASMCFUNC int21_syscall(iregs FAR * irp) /* the remaining are FreeDOS extensions */ + /* return CPU family */ + case 0xfa: + irp->AL = CPULevel; + break; + +#if 0 /* unknown if used / usage */ + case 0xfb: +#endif + +#if 1 /* duplicates DOS 4 int 2F/122Fh, but used by CALLVER */ /* set FreeDOS returned version for int 21.30 from BX */ case 0xfc: os_setver_major = irp->BL; os_setver_minor = irp->BH; break; +#endif /* Toggle DOS-C rdwrblock trace dump */ #ifdef DEBUG @@ -2545,13 +2556,13 @@ VOID ASMCFUNC int2F_12_handler(struct int2f12regs FAR *pr) doesn't work!! */ break; - case 0x2f: - if (r.DX) + case 0x2f: /* updates version returned by int 21/30h for all processes */ + if (r.DX) /* set returned version from DX */ { os_setver_major = r.DL; os_setver_minor = r.DH; } - else + else /* set returned version from emulated true DOS version */ { os_setver_major = os_major; os_setver_minor = os_minor; diff --git a/kernel/kernel.asm b/kernel/kernel.asm index e2b6a14..f5a2767 100644 --- a/kernel/kernel.asm +++ b/kernel/kernel.asm @@ -74,7 +74,7 @@ BootHarddiskSeconds db 0 ; ; The following VERSION resource must be keep in sync with VERSION.H Version_OemID db 0xFD ; OEM_ID Version_Major db 2 -Version_Revision dw 41 ; REVISION_SEQ +Version_Revision dw 43 ; REVISION_SEQ Version_Release dw 1 ; 0=release build, >0=svn# CheckDebugger: db 0 ; 0 = no check, 1 = check, 2 = assume present @@ -534,9 +534,9 @@ _nul_dev: ; 0022 device chain root db 'NUL ' global _njoined _njoined db 0 ; 0034 number of joined devices - dw 0 ; 0035 DOS 4 pointer to special names (always zero in DOS 5) + dw 0 ; 0035 DOS 4 near pointer to special names (always zero in DOS 5) [setver precursor] global _setverPtr -_setverPtr dw 0,0 ; 0037 setver list +_setverPtr dw 0,0 ; 0037 setver list (far pointer, set by setver driver) dw 0 ; 003B cs offset for fix a20 dw 0 ; 003D psp of last umb exec global _LoL_nbuffers