OSDN Git Service

f9957f6b25186a6b581665b2d72ea5068e543d73
[vaneos/vaneosmain.git] / Kernel / Vane.S
1 .file "Vane.S"
2 .code32
3 .text
4 .intel_syntax noprefix
5
6 .global clear_state,asm_move_cursol,hlt,vane_io_cli,vane_io_sti,write_mem8,VESA_640_480_SET,VESA_Check,VESA_Check,scrn320
7 .global io_hlt,io_cli,io_sti,io_stihlt,io_in8,io_in16,io_in32,io_out8,io_out16,io_out32,io_load_eflags,io_store_eflags,load_cr0,store_cr0,load_tr
8
9 io_hlt:
10                 HLT
11                 RET
12
13 io_cli:
14                 CLI
15                 RET
16
17 io_sti:
18                 STI
19                 RET
20
21 io_stihlt:
22                 STI
23                 HLT
24                 RET
25
26 io_in8:
27                 MOV             EDX,[ESP+4]
28                 MOV             EAX,0
29                 IN              AL,DX
30                 RET
31
32 io_in16:
33                 MOV             EDX,[ESP+4]
34                 MOV             EAX,0
35                 IN              AX,DX
36                 RET
37
38 io_in32:
39                 MOV             EDX,[ESP+4]
40                 IN              EAX,DX
41                 RET
42
43 io_out8:
44                 MOV             EDX,[ESP+4]
45                 MOV             AL,[ESP+8]
46                 OUT             DX,AL
47                 RET
48
49 io_out16:
50                 MOV             EDX,[ESP+4]
51                 MOV             EAX,[ESP+8]
52                 OUT             DX,AX
53                 RET
54
55 io_out32:
56                 MOV             EDX,[ESP+4]
57                 MOV             EAX,[ESP+8]
58                 OUT             DX,EAX
59                 RET
60
61 io_load_eflags:
62                 PUSHFD
63                 POP             EAX
64                 RET
65
66 io_store_eflags:
67                 MOV             EAX,[ESP+4]
68                 PUSH    EAX
69                 POPFD
70                 RET
71
72 load_cr0:
73                 MOV             EAX,CR0
74                 RET
75
76 store_cr0:
77                 MOV             EAX,[ESP+4]
78                 MOV             CR0,EAX
79                 RET
80
81 load_tr:
82                 LTR             [ESP+4]
83                 RET
84
85
86 write_mem8:
87         MOV ECX,[ESP+4]
88         MOV AL,[ESP+8]
89         MOV [ECX],AL
90         RET
91
92 scrn320:
93         MOV AL,0x13
94         MOV AH,0x00
95         INT 0x10
96         
97         RET
98
99 VESA_Check:
100         MOV AX,0x9000
101         MOV ES,AX
102         MOV DI,0
103         MOV AX,0x004F
104         INT 0x10
105         
106         CMP AX,0x004F
107         MOV EAX,0x01
108         JNE scrn320
109         MOV EAX,0x00
110         RET
111
112 VESA_640_480_SET:
113         
114         MOV BX,0x4101
115         MOV AX,0x4F02
116         INT 0x10
117         
118         RET
119
120 hlt:
121         HLT
122         RET
123
124 clear_state:
125         jmp 0x08:_flush_seg
126         RET
127
128 _flush_seg:
129         RET
130         
131 asm_move_cursol:
132         PUSH BP
133         PUSH AX
134         
135         MOV AX,BP
136         MOV DX,0x03D4
137         MOV AL,0X0E
138         
139         OUT DX,AX
140         
141         POP AX
142         
143         MOV AH,AL
144         MOV AL,0x0F
145         
146         OUT DX,AX
147         
148         MOV EAX,0
149         
150         RET
151
152 vane_io_cli:
153         CLI
154         RET
155
156 vane_io_sti:
157         STI
158         RET