source: branches/virtualcpu3/UFormMain.pas

Last change on this file was 161, checked in by chronos, 7 years ago
  • Modified: Further Int128 unit implementation.
File size: 1.9 KB
Line 
1unit UFormMain;
2
3{$mode objfpc}{$H+}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
9 UMachine, UInt128;
10
11type
12
13 { TForm1 }
14
15 TForm1 = class(TForm)
16 Memo1: TMemo;
17 procedure FormShow(Sender: TObject);
18 private
19
20 public
21 end;
22
23var
24 Form1: TForm1;
25
26
27implementation
28
29{$R *.lfm}
30
31{ TForm1 }
32
33procedure TForm1.FormShow(Sender: TObject);
34type
35 TCPU8 = specialize TCPU<ShortInt>;
36 TCPU16 = specialize TCPU<SmallInt>;
37 TCPU32 = specialize TCPU<Integer>;
38 TCPU64 = specialize TCPU<Int64>;
39 //TCPU128 = specialize TCPU<Int128>;
40 TInstWriter8 = specialize TInstructionWriter<ShortInt>;
41 TInstWriter16 = specialize TInstructionWriter<SmallInt>;
42 TInstWriter32 = specialize TInstructionWriter<Integer>;
43 TInstWriter64 = specialize TInstructionWriter<Int64>;
44 //TInstWriter128 = specialize TInstructionWriter<Int128>;
45var
46 CPU8: TCPU8;
47 CPU16: TCPU16;
48 CPU32: TCPU32;
49 CPU64: TCPU64;
50 Writer8: TInstWriter8;
51 Writer16: TInstWriter16;
52 Writer32: TInstWriter32;
53 Writer64: TInstWriter64;
54begin
55{ CPU8 := TCPU8.Create;
56 Writer8 := TInstWriter8.Create;
57 Writer8.Machine := CPU8;
58 Writer8.AddLoadConst(0, 1);
59 Writer8.AddHalt;
60 Writer8.Free;
61 CPU8.Run;
62 CPU8.Free;
63 }
64 CPU16 := TCPU16.Create;
65 Writer16 := TInstWriter16.Create;
66 Writer16.Machine := CPU16;
67 Writer16.AddLoadConst(0, 1);
68 Writer16.AddHalt;
69 Writer16.Free;
70 CPU16.Run;
71 CPU16.Free;
72
73 CPU32 := TCPU32.Create;
74 Writer32 := TInstWriter32.Create;
75 Writer32.Machine := CPU32;
76 Writer32.AddLoadConst(0, 1);
77 Writer32.AddHalt;
78 Writer32.Free;
79 CPU32.Run;
80 CPU32.Free;
81
82 CPU64 := TCPU64.Create;
83 Writer64 := TInstWriter64.Create;
84 Writer64.Machine := CPU64;
85 Writer64.AddLoadConst(0, 1);
86 Writer64.AddHalt;
87 Writer64.Free;
88 CPU64.Run;
89 CPU64.Free;
90end;
91
92end.
93
Note: See TracBrowser for help on using the repository browser.