forked from KolibriOS/kolibrios
93e66701fb
in build_all.bat: delete config.inc after compiling delete /kernel/trunk/lib git-svn-id: svn://kolibrios.org@529 a494cfbc-eb01-0410-851d-a64ba20cac60
124 lines
3.5 KiB
NASM
124 lines
3.5 KiB
NASM
;
|
|
; ‘¨á⥬ ï ¯à®£à ¬¬ ¤«ï ãáâ ®¢ª¨ ¯®¢ëè¥ëå (>60 Hz) ç áâ®â ®¡®¢«¥¨ï
|
|
; íªà § áç¥â ᨦ¥¨ï à §à¥è¥¨ï
|
|
; (¤«ï ¯¥à¥å®¤®¢: 1024å768*60-->800å600*98
|
|
; 800å600*60-->640å480*94)
|
|
;
|
|
; Š®¬¯¨«¨à®¢ âì FASM'®¬
|
|
;
|
|
; !!!!!_�।ã¯à¥¦¤¥¨¥_!!!!!:
|
|
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
;! � ⥪ã騩 ¬®¬¥â ¯à®£à ¬¬ ®á¨â �Š‘�…�ˆŒ…�’€‹œ�›‰ (!) å à ªâ¥à, ¯®í⮬㠢ᥣ¤ !
|
|
;! ®áâ ¥âáï ¢¥à®ïâ®áâì ¯®àç¨ ®¡®à㤮¢ ¨ï (â.¥. ¬®¨â®à ). Žá®¡¥® íâ® ª á ¥âáï ¢á¥å!
|
|
;! â¥å, 祩 ¬®¨â®à ¥ ¨¬¥¥â § é¨âë ®â ¯¥à¥£àã§®ª ¯® ç áâ®â¥. !
|
|
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
;
|
|
;---------------------------------------------------------------------
|
|
|
|
use32 ; ¢ª«îç¨âì 32-¡¨âë© à¥¦¨¬ áᥬ¡«¥à
|
|
org 0x0 ; ¤à¥á æ¨ï á ã«ï
|
|
|
|
db 'MENUET01' ; 8-¡ ©âë© ¨¤¥â¨ä¨ª â®à MenuetOS
|
|
dd 0x01 ; ¢¥àá¨ï § £®«®¢ª (¢á¥£¤ 1)
|
|
dd START ; ¤à¥á ¯¥à¢®© ª®¬ ¤ë
|
|
dd I_END ; à §¬¥à ¯à®£à ¬¬ë
|
|
dd 0x1000 ; ª®«¨ç¥á⢮ ¯ ¬ïâ¨
|
|
dd 0x1000 ; ¤à¥á ¢¥àè¨ë áâíª
|
|
dd 0x0 ; ¤à¥á ¡ãä¥à ¤«ï ¯ à ¬¥â஢ (¥ ¨á¯®«ì§ã¥âáï)
|
|
dd 0x0 ; § १¥à¢¨à®¢ ®
|
|
|
|
include '..\..\..\macros.inc' ; ¬ ªà®áë ®¡«¥£ç îâ ¦¨§ì áᥬ¡«¥à騪®¢!
|
|
|
|
;---------------------------------------------------------------------
|
|
;--- �€—€‹Ž ��Žƒ�€ŒŒ› ----------------------------------------------
|
|
;---------------------------------------------------------------------
|
|
|
|
START:
|
|
; mcall 5,10
|
|
mov ecx, 1
|
|
mov edx, drvinfo
|
|
push @f
|
|
jmp call_driver
|
|
@@:
|
|
; jmp run_launcher
|
|
|
|
mov ecx, 2
|
|
push @f
|
|
call_driver:
|
|
mcall 21,13
|
|
ret
|
|
@@:
|
|
; cmp eax,-1
|
|
inc eax
|
|
je run_launcher
|
|
; cmp ecx,280
|
|
; je change_vrr
|
|
; cmp ecx,277
|
|
; je change_vrr
|
|
; cmp ecx,6
|
|
; je change_vrr
|
|
; cmp ecx,7
|
|
; je change_vrr
|
|
; jmp run_launcher
|
|
change_vrr:
|
|
; mov ax,cx
|
|
; dec cx
|
|
; shl cx,1
|
|
; xor edx,edx
|
|
; mov dx,[vidmode+ecx]
|
|
; mov ebx,ecx
|
|
; shl ebx,2
|
|
; add ebx,ecx ; ebx=ebx*5
|
|
; shr ax,8
|
|
; dec ax
|
|
; shl ax,1
|
|
; add ebx,eax
|
|
; ror edx,16
|
|
; mov dx,[_m1+ebx]
|
|
; rol edx,16
|
|
;mov eax,ecx
|
|
mov eax, 10
|
|
cmp cx,277+3
|
|
je yes_277
|
|
cmp cx,274+3
|
|
jne yes_280
|
|
yes_274:
|
|
add al,10
|
|
yes_277:
|
|
add al,10
|
|
yes_280:
|
|
mov edx, [_m1+eax-2]
|
|
lea dx, [ecx-3]
|
|
push run_launcher
|
|
mov ecx, 3
|
|
jmp call_driver
|
|
run_launcher:
|
|
mcall 70,launcher
|
|
mcall -1
|
|
launcher:
|
|
dd 7
|
|
dd 0
|
|
dd 0
|
|
dd 0
|
|
dd 0
|
|
db '/sys/LAUNCHER'
|
|
I_END: ; ¬¥âª ª®æ ¯à®£à ¬¬ë
|
|
db ? ; system loader will zero all memory after program end
|
|
; this byte will be terminating zero for launcher string
|
|
; \begin{Serge}
|
|
; A you really believe it?
|
|
; Áëàæåí, êòî âåðóåò, òåïëî åìó íà ñâåòå!
|
|
; \end{Serge}
|
|
drvinfo: ; 512 bytes driver info area
|
|
; +0 - Full driver name
|
|
; +32 - Driver version
|
|
; +64 - Word List of support video modes (max 32 positions)
|
|
; +128 - 5 words list of support vertical rate to each present mode
|
|
org $+32
|
|
drvver:
|
|
org $+32
|
|
vidmode:
|
|
org $+64
|
|
_m1:
|
|
org drvinfo+200h
|