Subversion Repositories SvarDOS

Compare Revisions

Ignore whitespace Rev 1080 → Rev 1081

/svarcom/trunk/cmd/ver.c
31,7 → 31,8
 
static enum cmd_result cmd_ver(struct cmd_funcparam *p) {
char *buff = p->BUFFER;
unsigned char rc = 0, maj = 0, min = 0, truemaj = 0, truemin = 0, rev = 0, verflags = 0;
unsigned char maj = 0, min = 0, truemaj = 0, truemin = 0, rev = 0, verflags = 0;
unsigned short doserr = 0;
 
/* help screen */
if (cmd_ishlp(p)) {
116,7 → 117,9
/* get the "true" DOS version, along with a couple of extra data */
mov ax, 0x3306 /* Get true DOS version number (DOS 5+) */
int 0x21 /* AL=return_code BL=maj_ver_num BH=min_ver_num */
mov [rc], al /* DL=revision DH=kernel_memory_area */
jnc GOOD /* DL=revision DH=kernel_memory_area */
mov doserr, ax /* DR-DOS sets CF on this call (according to RBIL) */
GOOD:
mov [truemaj], bl
mov [truemin], bh
mov [rev], dl
130,7 → 133,7
 
sprintf(buff, svarlang_str(20,1), maj, min); /* "DOS kernel version %u.%u" */
output(buff);
if ((maj != truemaj) || (min != truemin)) {
if ((doserr == 0) && ((maj != truemaj) || (min != truemin))) {
output(" (");
sprintf(buff, svarlang_str(20,10), truemaj, truemin); /* "true ver xx.xx" */
output(")");
140,7 → 143,7
sprintf(buff, svarlang_str(20,5), 'A' + rev); /* "Revision %c" */
outputnl(buff);
 
{
if (doserr == 0) {
const char *loc = svarlang_str(20,7); /* "low memory" */
if (verflags & 16) loc = svarlang_str(20,8); /* "HMA" */
if (verflags & 8) loc = svarlang_str(20,9); /* "ROM" */