Backup - Adding design for AxWin3 to git
[tpg/acess2.git] / Usermode / Applications / axwin0_src / start.asm
1 ; AcessBasic Test Command Prompt\r
2 ; Assembler Stub\r
3 \r
4 [BITS 32]\r
5 \r
6 extern _main\r
7 extern codeLength\r
8 extern loadTo\r
9 extern entrypoint\r
10 extern magic\r
11 \r
12 global start\r
13 global  _gAxeHdr\r
14 \r
15 FLAGS equ 0\r
16 MAXMEM  equ     0x400000        ; 4Mb\r
17 \r
18 ;Header\r
19 db      'A'\r
20 db      'X'\r
21 db      'E'\r
22 db      0\r
23 ;Size\r
24 _gAxeHdr:\r
25 dd codeLength   ;Code Size\r
26 dd loadTo               ;Load Address\r
27 dd entrypoint   ;Entrypoint\r
28 dd MAXMEM       ;Maximum Used Memory\r
29 dd FLAGS        ;Flags\r
30 dd magic+FLAGS+MAXMEM\r
31 \r
32 ;Code\r
33 start:\r
34         push eax\r
35         call _main\r
36         \r
37         ret\r
38         ret\r
39         \r
40 ;String Compare\r
41 _strcmp:\r
42         push ebp\r
43         mov ebp, esp\r
44         push ebx\r
45         push ecx\r
46         \r
47         mov ebx, [ebp+8]\r
48         mov ecx, [ebp+12]\r
49 .cmp:\r
50         mov al, BYTE [ecx]\r
51         cmp BYTE [ebx], al\r
52         jnz     .out\r
53         cmp BYTE [ecx],0\r
54         jnz     .out\r
55         inc ebx\r
56         inc edx\r
57         jmp     .cmp\r
58 .out:\r
59         mov eax, DWORD 0\r
60         mov al, BYTE [ebx]\r
61         sub al, BYTE [ecx]\r
62         ;Cleanup\r
63         pop     ecx\r
64         pop ebx\r
65         pop ebp\r
66         ret\r
67         \r
68 ;String Copy\r
69 _strcpy:\r
70         push ebp\r
71         mov ebp, esp\r
72         push ebx\r
73         push ecx\r
74         push edx\r
75         mov ebx, [ebp+8]        ;Src\r
76         mov ecx, [ebp+12]       ;Dest\r
77 .cmp:\r
78         cmp BYTE [ebx], 0\r
79         jnz .out\r
80         mov dl, BYTE [ebx]\r
81         mov BYTE [ecx], dl\r
82         inc ebx\r
83         inc ecx\r
84         jmp .cmp\r
85 .out:   ;Cleanup\r
86         pop edx\r
87         pop ecx\r
88         pop ebx\r
89         pop ebp\r
90         ret\r
91 \r
92         \r
93 [section .bss]\r
94 [global _startHeap]\r
95 [global _endHeap]\r
96 _startHeap:\r
97 resb 0x4000     ;Heap Space\r
98 _endHeap:\r

UCC git Repository :: git.ucc.asn.au