Subversion Repositories Kolibri OS

Rev

Rev 164 | Rev 187 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 164 Rev 183
Line 13... Line 13...
13
;
13
;
14
;                           16 BIT FUNCTIONS
14
;                           16 BIT FUNCTIONS
15
;
15
;
16
;==========================================================================
16
;==========================================================================
Line -... Line 17...
-
 
17
 
-
 
18
; 16-bit data
-
 
19
		org $+0x10000
-
 
20
 
-
 
21
old_ints_h:
-
 
22
        dw      0x400
-
 
23
        dd      0
-
 
24
        dw      0
-
 
25
 
-
 
26
kernel_restart_bootblock:
-
 
27
    db    1    ; version
-
 
28
    dw    1    ; floppy image is in memory
-
 
29
    dd    0    ; cannot save parameters
-
 
30
 
-
 
31
 
-
 
32
align 32
-
 
33
 
-
 
34
; GDT TABLE
-
 
35
 
-
 
36
gdts:
-
 
37
 
-
 
38
        dw     gdte-$-1
-
 
39
        dd     gdts
-
 
40
        dw     0
-
 
41
 
-
 
42
int_code_l:
-
 
43
os_code_l:
-
 
44
 
-
 
45
        dw     0xffff
-
 
46
        dw     0x0000
-
 
47
        db     0x00
-
 
48
        dw     11011111b *256 +10011010b
-
 
49
        db     0x00
-
 
50
 
-
 
51
int_data_l:
-
 
52
os_data_l:
-
 
53
 
-
 
54
        dw     0xffff
-
 
55
        dw     0x0000
-
 
56
        db     0x00
-
 
57
        dw     11011111b *256 +10010010b
-
 
58
        db     0x00
-
 
59
 
-
 
60
; --------------- APM ---------------------
-
 
61
apm_code_32:
-
 
62
        dw     0x10        ; limit 64kb
-
 
63
        db     0, 0, 0
-
 
64
        dw     11011111b *256 +10011010b
-
 
65
        db     0x00
-
 
66
apm_code_16:
-
 
67
        dw     0x10
-
 
68
        db     0, 0, 0
-
 
69
        dw     10011111b *256 +10011010b
-
 
70
        db     0x00
-
 
71
apm_data_16:
-
 
72
        dw     0x10
-
 
73
        db     0, 0, 0
-
 
74
        dw     10011111b *256 +10010010b
-
 
75
        db     0x00
-
 
76
; -----------------------------------------
-
 
77
 
-
 
78
app_code_l:
-
 
79
      dw 0xFFFF;((0x80000000-std_application_base_address) shr 12) and 0xffff
-
 
80
      dw 0
-
 
81
      db 0x40
-
 
82
      db cpl3
-
 
83
      dw G32+D32+0x6000+0x7;
-
 
84
 
-
 
85
app_data_l:
-
 
86
      dw 0xFFFF;(0x80000000-std_application_base_address) shr 12 and 0xffff
-
 
87
      dw 0
-
 
88
      db 0x40
-
 
89
      db drw3
-
 
90
      dw G32+D32+0x6000+0x7;
-
 
91
 
-
 
92
graph_data_l:
-
 
93
 
-
 
94
        dw     0x3ff
-
 
95
        dw     0x0000
-
 
96
        db     0x00
-
 
97
        dw     11010000b *256 +11110010b
-
 
98
        db     0x00
-
 
99
 
-
 
100
tss0_l:
-
 
101
;      times (max_processes+10) dd 0,0
-
 
102
gdte = $ + (max_processes+10)*8
-
 
103
 
-
 
104
; videomodes table
-
 
105
gr_table:
-
 
106
    dw      0x112+0100000000000000b ,  640 ,  480        ; 1
-
 
107
    dw      0x115+0100000000000000b ,  800 ,  600        ; 2
-
 
108
    dw      0x118+0100000000000000b , 1024 ,  768        ; 3
-
 
109
    dw      0x11B+0100000000000000b , 1280 , 1024        ; 4
-
 
110
    dw      0x112 ,  640 , 480                ; 5
-
 
111
    dw      0x115 ,  800 , 600                ; 6
-
 
112
    dw      0x118 , 1024 , 768                ; 7
-
 
113
    dw      0x11B , 1280 ,1024                ; 8
-
 
114
    dw    0x13, 640, 480                    ; 9
-
 
115
    dw    0x12, 640, 480                    ; 0
-
 
116
 
-
 
117
; table for move to extended memory (int 15h, ah=87h)
-
 
118
       movedesc:
-
 
119
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
120
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
121
 
-
 
122
        db      0xff,0xff,0x0,0xa0,0x00,0x93,0x0,0x0
-
 
123
        db      0xff,0xff,0x0,0x00,0x10,0x93,0x0,0x0
-
 
124
 
-
 
125
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
126
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
127
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
128
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
129
        	org $-0x10000
17
 
130
 
18
putchar:
131
putchar:
19
; in: al=character
132
; in: al=character
20
    mov    ah, 0Eh
133
    mov    ah, 0Eh
21
    mov    bh, 0
134
    mov    bh, 0
Line 137... Line 250...
137
{
250
{
138
    mov    dx, row*256 + column
251
    mov    dx, row*256 + column
139
    call    setcursor
252
    call    setcursor
140
}
253
}
Line 141... Line 254...
141
 
254
 
142
pagetable_set:
255
;pagetable_set:
143
;eax - physical address
256
;eax - physical address
144
;es:di - page table
257
;es:di - page table
145
;ecx - number of pages to map
258
;ecx - number of pages to map
146
    or    al, 7
259
;    or    al, 7
147
@@:
260
;@@:
148
    stosd
261
;    stosd
149
    add    eax, 1000h
262
;    add    eax, 1000h
150
    loop    @b
263
;    loop    @b
Line 151... Line 264...
151
    ret
264
;    ret
152
 
265
 
153
boot_read_floppy:
266
boot_read_floppy:
154
        push    si
267
        push    si
Line 168... Line 281...
168
        jmp     $
281
        jmp     $
169
@@:
282
@@:
170
        pop     si
283
        pop     si
171
        ret
284
        ret
Line 172... Line -...
172
 
-
 
173
; 16-bit data
-
 
174
; videomodes table
-
 
175
		org $+0x10000
-
 
176
gr_table:
-
 
177
    dw      0x112+0100000000000000b ,  640 ,  480        ; 1
-
 
178
    dw      0x115+0100000000000000b ,  800 ,  600        ; 2
-
 
179
    dw      0x118+0100000000000000b , 1024 ,  768        ; 3
-
 
180
    dw      0x11B+0100000000000000b , 1280 , 1024        ; 4
-
 
181
    dw      0x112 ,  640 , 480                ; 5
-
 
182
    dw      0x115 ,  800 , 600                ; 6
-
 
183
    dw      0x118 , 1024 , 768                ; 7
-
 
184
    dw      0x11B , 1280 ,1024                ; 8
-
 
185
    dw    0x13, 640, 480                    ; 9
-
 
186
    dw    0x12, 640, 480                    ; 0
-
 
187
 
-
 
188
; table for move to extended memory (int 15h, ah=87h)
-
 
189
       movedesc:
-
 
190
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
191
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
192
 
-
 
193
        db      0xff,0xff,0x0,0xa0,0x00,0x93,0x0,0x0
-
 
194
        db      0xff,0xff,0x0,0x00,0x10,0x93,0x0,0x0
-
 
195
 
-
 
196
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
197
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
198
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
199
        db      0x00,0x00,0x0,0x00,0x00,0x00,0x0,0x0
-
 
200
        	org $-0x10000
-
 
201
 
285
 
202
;=========================================================================
286
;=========================================================================
203
;
287
;
204
;                           16 BIT CODE
288
;                           16 BIT CODE
205
;
289
;