OSDN Git Service

wwww
[proj16/16.git] / src / fmemtest.c
1 /* Project 16 Source Code~
2  * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669
3  *
4  * This file is part of Project 16.
5  *
6  * Project 16 is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 3 of the License, or
9  * (at your option) any later version.
10  *
11  * Project 16 is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program.  If not, see <http://www.gnu.org/licenses/>, or
18  * write to the Free Software Foundation, Inc., 51 Franklin Street,
19  * Fifth Floor, Boston, MA 02110-1301 USA.
20  *
21  */
22 #include <stdio.h>
23 #include "src/lib/16_head.h"
24 #include "src/lib/16_ca.h"
25 #include "src/lib/16_mm.h"
26 #include "src/lib/types.h"
27
28 void
29 main(int argc, char *argv[])\r
30 {
31         int x=420;
32         int huge *ptr=&x;
33         int *ptr0=&x;
34         //void __based(__self) *pee;
35         memptr pee;
36         void __near *npee;
37         void __far *fpee;
38         void *dpee;
39         __segment segu;
40         //word csw=0,dsw=0,esw=0,ssw=0,ipw=0;
41
42         _nheapgrow();
43         _fheapgrow();
44         _heapgrow();
45         //ptr=&x;
46         printf("&main()=%Fp\n", *argv[0]);
47         printf("ptr0=%Fp\n", ptr0);
48         //printf("&ptr0=%Fp\n", &ptr0);
49         printf("*ptr0=%d\n", *ptr0);
50         printf("ptr=%Fp\n", ptr);
51         //printf("&ptr=%Fp\n", &ptr);
52         printf("*ptr=%d\n", *ptr);
53         printf("address of *ptr=%Fp\n", *ptr);
54         printf("&x=%Fp\n", &x);
55         printf("x=%d\n", x);
56         printf("\n");
57         /*__asm
58         {
59                 //lea csw,cs
60                 //lds DS,dsw
61                 //les ES,esw
62 //              mov ss,ssw
63 //              mov ip,ipw
64         }*/
65         //printf("ip=%u\n", ipw);
66         //printf("ss=%u\n", ssw);
67         //printf("cs=%u\n", csw);
68         //printf("ds=%u\n", dsw);
69         //printf("es=%u\n", esw);
70         printf("memavl=%u\n", _memavl());
71         printf("size of based pee~=%u   %FP\n", _bmsize(segu, pee), pee);
72         printf("size of default pee~=%u %FP\n", _msize(dpee), dpee);
73         printf("size of near pee~=%u    %FP\n", _nmsize(npee), npee);
74         printf("size of far pee~=%u     %FP\n", _fmsize(fpee), fpee);
75         printf("pee=%Fp\n", pee);
76         printf("npee=%Fp\n", npee);
77         printf("&main()=%Fp\n", *argv[0]);
78 }