Subversion Repositories SvarDOS

Rev

Rev 1066 | Rev 1071 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1066 Rev 1068
Line 102... Line 102...
102
  }
102
  }
103
 
103
 
104
  _asm {
104
  _asm {
105
    push ax
105
    push ax
106
    push bx
106
    push bx
107
    push dx
107
    push cx
108
 
-
 
109
    mov ax, 0x3306 /* Get true DOS version number */
108
    mov ah, 0x30   /* Get DOS version number */
110
    int 0x21       /* BL=maj_ver_num  BH=min_ver_num  DL=revision  DH=kernel_memory_area */
109
    int 0x21       /* AL=maj_ver_num  AH=min_ver_num  BX,CX=OEM */
111
    mov [maj], bl
110
    mov [maj], al
112
    mov [min], bh
111
    mov [min], ah
113
    mov [rev], dl
-
 
114
    mov [verflags], dh
-
 
115
 
-
 
116
    pop dx
112
    pop cx
117
    pop bx
113
    pop bx
118
    pop ax
114
    pop ax
119
  }
115
  }
120
 
116
 
121
  sprintf(buff, svarlang_str(20,1), maj, min); /* "DOS kernel version %u.%u" */
117
  sprintf(buff, svarlang_str(20,1), maj, min); /* "DOS kernel version %u.%u" */
122
  outputnl(buff);
118
  outputnl(buff);
123
 
119
 
-
 
120
  if (maj >= 5) {
-
 
121
    _asm {
-
 
122
      push ax
-
 
123
      push bx
-
 
124
      push dx
-
 
125
  
124
  sprintf(buff, svarlang_str(20,5), 'A' + rev); /* Revision %c */
126
      mov ax, 0x3306 /* Get true DOS version number */
-
 
127
      int 0x21       /* BL=maj_ver_num  BH=min_ver_num  DL=revision  DH=kernel_memory_area */
-
 
128
      mov [maj], bl
-
 
129
      mov [min], bh
125
  outputnl(buff);
130
      mov [rev], dl
-
 
131
      mov [verflags], dh
126
 
132
  
-
 
133
      pop dx
-
 
134
      pop bx
-
 
135
      pop ax
-
 
136
    }
127
  {
137
  
128
    const char *loc = svarlang_str(20,7);        /* low memory */
138
    sprintf(buff, svarlang_str(20,10), maj, min); /* "True version %u.%u" */
129
    if (verflags & 16) loc = svarlang_str(20,8); /* HMA */
-
 
130
    if (verflags & 8) loc = svarlang_str(20,9);  /* ROM */
139
    outputnl(buff);
-
 
140
  
131
    sprintf(buff, svarlang_str(20,6), loc);      /* DOS is in %s */
141
    sprintf(buff, svarlang_str(20,5), 'A' + rev); /* Revision %c */
132
    outputnl(buff);
142
    outputnl(buff);
-
 
143
  
-
 
144
    {
-
 
145
      const char *loc = svarlang_str(20,7);        /* low memory */
-
 
146
      if (verflags & 16) loc = svarlang_str(20,8); /* HMA */
-
 
147
      if (verflags & 8) loc = svarlang_str(20,9);  /* ROM */
-
 
148
      sprintf(buff, svarlang_str(20,6), loc);      /* DOS is in %s */
-
 
149
      outputnl(buff);
-
 
150
    }
133
  }
151
  }
134
 
152
 
135
  outputnl("");
153
  outputnl("");
136
  nls_output(20,2); /* "SvarCOM shell ver" */
154
  nls_output(20,2); /* "SvarCOM shell ver" */
137
  outputnl(" " PVER);
155
  outputnl(" " PVER);