Subversion Repositories Kolibri OS

Rev

Rev 451 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 451 Rev 485
1
;
1
;
2
;   ‘¨á⥬­ ï ¯à®£à ¬¬  ¤«ï ãáâ ­®¢ª¨ ¯®¢ë襭­ëå (>60 Hz) ç áâ®â ®¡­®¢«¥­¨ï 
2
;   ‘¨á⥬­ ï ¯à®£à ¬¬  ¤«ï ãáâ ­®¢ª¨ ¯®¢ë襭­ëå (>60 Hz) ç áâ®â ®¡­®¢«¥­¨ï 
3
;   íªà ­  §  áç¥â á­¨¦¥­¨ï à §à¥è¥­¨ï 
3
;   íªà ­  §  áç¥â á­¨¦¥­¨ï à §à¥è¥­¨ï 
4
;   (¤«ï ¯¥à¥å®¤®¢:  1024å768-->800å600
4
;   (¤«ï ¯¥à¥å®¤®¢:  1024å768-->800å600
5
;                     800å600-->640å480)
5
;                     800å600-->640å480)
6
;
6
;
7
;   Š®¬¯¨«¨à®¢ âì FASM'®¬
7
;   Š®¬¯¨«¨à®¢ âì FASM'®¬
8
;
8
;
9
;   !!!!!_à¥¤ã¯à¥¦¤¥­¨¥_!!!!!:
9
;   !!!!!_à¥¤ã¯à¥¦¤¥­¨¥_!!!!!:
10
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
11
;!   ⥪ã騩 ¬®¬¥­â ¯à®£à ¬¬  ­®á¨â Š‘…ˆŒ…’€‹œ›‰ (!) å à ªâ¥à, ¯®í⮬㠢ᥣ¤    !
11
;!   ⥪ã騩 ¬®¬¥­â ¯à®£à ¬¬  ­®á¨â Š‘…ˆŒ…’€‹œ›‰ (!) å à ªâ¥à, ¯®í⮬㠢ᥣ¤    !
12
;! ®áâ ¥âáï ¢¥à®ïâ­®áâì ¯®àç¨ ®¡®à㤮¢ ­¨ï (â.¥. ¬®­¨â®à ). Žá®¡¥­­® íâ® ª á ¥âáï ¢á¥å!
12
;! ®áâ ¥âáï ¢¥à®ïâ­®áâì ¯®àç¨ ®¡®à㤮¢ ­¨ï (â.¥. ¬®­¨â®à ). Žá®¡¥­­® íâ® ª á ¥âáï ¢á¥å!
13
;! â¥å, 祩 ¬®­¨â®à ­¥ ¨¬¥¥â § é¨âë ®â ¯¥à¥£à㧮ª ¯® ç áâ®â¥.                         !
13
;! â¥å, 祩 ¬®­¨â®à ­¥ ¨¬¥¥â § é¨âë ®â ¯¥à¥£à㧮ª ¯® ç áâ®â¥.                         !
14
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15
;     
15
;     
16
;---------------------------------------------------------------------
16
;---------------------------------------------------------------------
17
 
17
 
18
  use32              ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
18
  use32              ; ¢ª«îç¨âì 32-¡¨â­ë© ०¨¬  áᥬ¡«¥à 
19
  org    0x0         ;  ¤à¥á æ¨ï á ­ã«ï
19
  org    0x0         ;  ¤à¥á æ¨ï á ­ã«ï
20
 
20
 
21
  db     'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
21
  db     'MENUET01'  ; 8-¡ ©â­ë© ¨¤¥­â¨ä¨ª â®à MenuetOS
22
  dd     0x01        ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
22
  dd     0x01        ; ¢¥àá¨ï § £®«®¢ª  (¢á¥£¤  1)
23
  dd     START       ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
23
  dd     START       ;  ¤à¥á ¯¥à¢®© ª®¬ ­¤ë
24
  dd     I_END       ; à §¬¥à ¯à®£à ¬¬ë
24
  dd     I_END       ; à §¬¥à ¯à®£à ¬¬ë
25
  dd     0x1000      ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
25
  dd     0x1000      ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
26
  dd     0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
26
  dd     0x1000      ;  ¤à¥á ¢¥à設ë áâíª 
27
  dd     0x0         ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
27
  dd     0x0         ;  ¤à¥á ¡ãä¥à  ¤«ï ¯ à ¬¥â஢ (­¥ ¨á¯®«ì§ã¥âáï)
28
  dd     0x0         ; § à¥§¥à¢¨à®¢ ­®
28
  dd     0x0         ; § à¥§¥à¢¨à®¢ ­®
29
 
29
 
30
include 'MACROS.INC' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
30
include '..\..\..\macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§­ì  áᥬ¡«¥à騪®¢!
31
 
31
 
32
;---------------------------------------------------------------------
32
;---------------------------------------------------------------------
33
;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
33
;---  €—€‹Ž Žƒ€ŒŒ›  ----------------------------------------------
34
;---------------------------------------------------------------------
34
;---------------------------------------------------------------------
35
 
35
 
36
START:
36
START:
37
;       mcall 5,10
37
;       mcall 5,10
38
        mov     ecx, 1
38
        mov     ecx, 1
39
        mov     edx, drvinfo
39
        mov     edx, drvinfo
40
        push    @f
40
        push    @f
41
        jmp     call_driver
41
        jmp     call_driver
42
@@:
42
@@:
43
;       jmp run_launcher
43
;       jmp run_launcher
44
 
44
 
45
        mov     ecx, 2
45
        mov     ecx, 2
46
        push    @f
46
        push    @f
47
call_driver:
47
call_driver:
48
        mcall 21,13
48
        mcall 21,13
49
        ret
49
        ret
50
@@:
50
@@:
51
;       cmp eax,-1
51
;       cmp eax,-1
52
        inc     eax
52
        inc     eax
53
       je   run_launcher
53
       je   run_launcher
54
;       cmp  ecx,280
54
;       cmp  ecx,280
55
;       je  change_vrr
55
;       je  change_vrr
56
;       cmp  ecx,277
56
;       cmp  ecx,277
57
;       je  change_vrr
57
;       je  change_vrr
58
;       cmp  ecx,6
58
;       cmp  ecx,6
59
;       je  change_vrr
59
;       je  change_vrr
60
;       cmp  ecx,7
60
;       cmp  ecx,7
61
;       je  change_vrr
61
;       je  change_vrr
62
;       jmp  run_launcher
62
;       jmp  run_launcher
63
change_vrr:
63
change_vrr:
64
;       mov ax,cx
64
;       mov ax,cx
65
;       dec cx
65
;       dec cx
66
;       shl cx,1
66
;       shl cx,1
67
;       xor edx,edx
67
;       xor edx,edx
68
;       mov dx,[vidmode+ecx]
68
;       mov dx,[vidmode+ecx]
69
;       mov ebx,ecx
69
;       mov ebx,ecx
70
;       shl ebx,2
70
;       shl ebx,2
71
;       add ebx,ecx   ; ebx=ebx*5
71
;       add ebx,ecx   ; ebx=ebx*5
72
;       shr ax,8
72
;       shr ax,8
73
;       dec ax
73
;       dec ax
74
;       shl ax,1
74
;       shl ax,1
75
;       add ebx,eax
75
;       add ebx,eax
76
;       ror edx,16
76
;       ror edx,16
77
;       mov dx,[_m1+ebx]
77
;       mov dx,[_m1+ebx]
78
;       rol edx,16
78
;       rol edx,16
79
        ;mov eax,ecx
79
        ;mov eax,ecx
80
        mov     eax, 10
80
        mov     eax, 10
81
        cmp cx,277+3
81
        cmp cx,277+3
82
        je  yes_277
82
        je  yes_277
83
        cmp cx,274+3
83
        cmp cx,274+3
84
        jne yes_280
84
        jne yes_280
85
     yes_274:
85
     yes_274:
86
        add al,10
86
        add al,10
87
     yes_277:
87
     yes_277:
88
        add al,10
88
        add al,10
89
     yes_280:
89
     yes_280:
90
        mov     edx, [_m1+eax-2]
90
        mov     edx, [_m1+eax-2]
91
        lea     dx, [ecx-3]
91
        lea     dx, [ecx-3]
92
        push    run_launcher
92
        push    run_launcher
93
        mov     ecx, 3
93
        mov     ecx, 3
94
        jmp     call_driver
94
        jmp     call_driver
95
run_launcher:
95
run_launcher:
96
       mcall 70,launcher
96
       mcall 70,launcher
97
       mcall -1
97
       mcall -1
98
launcher:
98
launcher:
99
        dd      7
99
        dd      7
100
        dd      0
100
        dd      0
101
        dd      0
101
        dd      0
102
        dd      0
102
        dd      0
103
        dd      0
103
        dd      0
104
        db      '/RD/1/LAUNCHER'
104
        db      '/RD/1/LAUNCHER'
105
I_END:                             ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
105
I_END:                             ; ¬¥âª  ª®­æ  ¯à®£à ¬¬ë
106
        db      ?       ; system loader will zero all memory after program end
106
        db      ?       ; system loader will zero all memory after program end
107
                        ; this byte will be terminating zero for launcher string
107
                        ; this byte will be terminating zero for launcher string
108
; \begin{Serge}
108
; \begin{Serge}
109
                        ; A you really believe it?
109
                        ; A you really believe it?
110
                        ; Áëàæåí, êòî âåðóåò, òåïëî åìó íà ñâåòå!
110
                        ; Áëàæåí, êòî âåðóåò, òåïëî åìó íà ñâåòå!
111
; \end{Serge}
111
; \end{Serge}
112
drvinfo:   ; 512 bytes driver info area
112
drvinfo:   ; 512 bytes driver info area
113
; +0   - Full driver name
113
; +0   - Full driver name
114
; +32  - Driver version
114
; +32  - Driver version
115
; +64  - Word List of support video modes (max 32 positions)
115
; +64  - Word List of support video modes (max 32 positions)
116
; +128 - 5 words list of support vertical rate to each present mode
116
; +128 - 5 words list of support vertical rate to each present mode
117
      org $+32
117
      org $+32
118
drvver:
118
drvver:
119
      org $+32
119
      org $+32
120
vidmode:
120
vidmode:
121
      org $+64
121
      org $+64
122
_m1:
122
_m1:
123
      org drvinfo+200h
123
      org drvinfo+200h