summaryrefslogtreecommitdiff
path: root/minie/ec.e
blob: 5ec848dac800412861ec04209b94a0c4f3432cbc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
module ec;

import system;

var
	col : integer;
	row : integer;
	look : char;

procedure init;
begin
	col := 1;
	row := 1;
end

procedure getChar : char;
var
	c : char;
	
begin
	c := system.readchar( );
	if ( c = char( 0 ) ) do
		return c;
	end;
	col := col + 1;
	if ( c = char( 10 ) ) do
		col := 1;
		row := row + 1;
	end;
	return c;
end

procedure prologue;
begin
	system.writeline( "[bits 32]" );
	system.writeline( "cpu 486" );
	system.writeline( "org 0x1000000" );
end

procedure epilogue;
begin
	system.writeline( "hlt" );
end

begin
	init( );
	prologue( );
	epilogue( );
	
	look := getChar( );
	while ( look <> char( 0 ) ) do
		look := getChar( );
	end;
	
	system.halt( 0 );
end