OSDN Git Service

Initial commit
[haribote-os-xe/hariboteXE.git] / wand.dpr
1 program wand;
2
3 uses
4   System.SysUtils,
5   bootpack in 'bootpack.pas',
6   asmhead in 'asmhead.pas';
7
8 const
9   MEMMAN_ADDR = $003C0000;
10
11 var
12   binfo: ^TBOOTINFO = Pointer(ADR_BOOTINFO);
13   screen: TScreen;
14   keyboard: TKeyboard;
15   keybuf: TBytes;
16   i: SmallInt;
17   memtest: TMemtest;
18   memtotal: Cardinal;
19   memman: ^TMEMMAN = Pointer(MEMMAN_ADDR);
20   mem: TMem;
21   sheet: TShtCtl;
22   mouse, win, back: integer;
23
24 procedure window8(buf: array of Byte; xsize, ysize: integer; var title: string);
25 const
26   closebtn: array [0 .. 14, 0 .. 15] of Char = (('0', '0', '0', '0', '0', '0',
27     '0', '0', '0', '0', '0', '0', '0', '0', '0', '@'),
28     ('0', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', '$',
29     '@'), ('0', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q',
30     '$', '@'), ('0', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q',
31     'Q', '$', '@'), ('0', 'Q', 'Q', 'Q', '@', '@', 'Q', 'Q', 'Q', 'Q', '@', '@',
32     'Q', 'Q', '$', '@'), ('0', 'Q', 'Q', 'Q', 'Q', '@', '@', 'Q', 'Q', '@', '@',
33     'Q', 'Q', 'Q', '$', '@'), ('0', 'Q', 'Q', 'Q', 'Q', 'Q', '@', '@', '@', '@',
34     'Q', 'Q', 'Q', 'Q', '$', '@'), ('0', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', '@', '@',
35     'Q', 'Q', 'Q', 'Q', 'Q', '$', '@'), ('0', 'Q', 'Q', 'Q', 'Q', 'Q', '@', '@',
36     '@', '@', 'Q', 'Q', 'Q', 'Q', '$', '@'), ('0', 'Q', 'Q', 'Q', 'Q', '@', '@',
37     'Q', 'Q', '@', '@', 'Q', 'Q', 'Q', '$', '@'), ('0', 'Q', 'Q', 'Q', '@', '@',
38     'Q', 'Q', 'Q', 'Q', '@', '@', 'Q', 'Q', '$', '@'),
39     ('0', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', '$',
40     '@'), ('0', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q', 'Q',
41     '$', '@'), ('0', '$', '$', '$', '$', '$', '$', '$', '$', '$', '$', '$', '$',
42     '$', '$', '@'), ('@', '@', '@', '@', '@', '@', '@', '@', '@', '@', '@', '@',
43     '@', '@', '@', '@'));
44 begin
45
46 end;
47
48 begin
49   screen:=TScreen.Create;
50   screen.Init(binfo^.vram,binfo^.scrnx,binfo^.scrny);
51   keyboard := TKeyboard.Create;
52   SetLength(keybuf, 32);
53   with keyboard do
54   begin
55     keyfifo.Init(fifo, 32, keybuf);
56     while True do
57     begin
58       io_cli;
59       if keyfifo.Status(fifo) = 0 then
60         // ioshift()
61       else
62       begin
63         i := keyfifo.Get(fifo);
64         io_sti;
65         // sprintf
66         // boxfill8
67         // putfonts8
68       end;
69     end;
70   end;
71   {
72     memtest:=TMemtest.Create;
73     memtotal:=memtest.memtest($00400000,$bfffffff);
74     mem:=TMem.Create;
75     mem.Init(memman);
76     mem.memfree(memman,$00001000,$0009e000);
77     mem.memfree(memman,$00400000,memtotal-$00400000);
78     mem.Free;
79     memtest.Free;
80   }
81   sheet := TShtCtl.Create;
82   back := sheet.allock;
83   mouse := sheet.allock;
84   win := sheet.allock;
85   sheet.slide(mouse, 10, 10);
86   sheet.slide(win, 80, 72);
87   sheet.Free;
88   keyboard.Free;
89   screen.Free;
90 end.