Simple Operating System
info.c
Go to the documentation of this file.
1 
7 #include <io.h>
8 
9 __start int main() {
10  puts("\xc9\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcdINFO:\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbb\n");
11  Word ax, cx, dx, bx;
12 
13  //memory
14  asm("int 0x15":"=a"(ax):"a"(0x88), "b"(0));;
15  printf("\xba\x45Extra memory: %ikB=%iMb\n", ax, ax / 1024);
16 
17  //disks
18  Byte ch, cl, dh, dl = 1;
19  for(int i = 0; i < dl; i++) {
20  asm("int 0x13":"=b"(bx), "=c"(cx), "=d"(dx):"a"(0x0800), "d"(i));
21  ch = cx >> 8;
22  cl = (Byte)cx;
23  dh = dx >> 8;
24  dl = (Byte)dx;
25  int err = 0;
26  asm("int 0x13":"=a"(err):"a"(0x0100), "d"(i));
27  printf("\xba%i: tracks=%i S/T=%i type=%i H=%i disks=%i, err=%i\n", i, ch, cl, bx, dh, dl, err);
28  asm("int 0x13"::"a"(0), "d"(i));//reset errors
29  }
30 
31  //date
32  asm("int 0x1a":"=d"(dx), "=c"(cx):"a"(0x0400));
33  ch = cx >> 8;
34  cl = (Byte)cx;
35  dh = dx >> 8;
36  dl = (Byte)dx;
37  printf("\xba%i%i/%i/%i\n", (ch / 16) * 10 + ch % 16, (cl / 16) * 10 + cl % 16, (dh / 16) * 10 + dh % 16, (dl / 16) * 10 + dl % 16);
38 
39  //time
40  asm("int 0x1a":"=d"(dx), "=c"(cx):"a"(0x0200));
41  ch = cx >> 8;
42  cl = (Byte)cx;
43  dh = dx >> 8;
44  dl = (Byte)dx;
45  printf("\xba%i:%i:%i\n", (ch / 16) * 10 + ch % 16, (cl / 16) * 10 + cl % 16, (dh / 16) * 10 + dh % 16);
46 
47  //get equipment list
48  asm("int 0x11":"=a"(ax));
49  printf("\xbaInstalled: %b\n", ax);
50 
51  puts("\xc8\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xcd\xbc\n");
52  return 0;
53 }
Standard input output library.
void printf(const int str,...)
C-like printf function.
Definition: io.h:72
void puts(const int string)
Put string.
Definition: io.h:42
__start void main()
Definition: kernel.c:131
#define __start
Must be before main function of program to put this function as first in binary file.
Definition: types.h:35