kolibrios-gitea/programs/system/vrr_m/trunk/vrr_m.asm

120 lines
3.1 KiB
NASM
Raw Normal View History

;
; <20><EFBFBD><E0A8AC> <20>ணࠬ<E0AEA3><E0A0AC> <20><><EFBFBD> MenuetOS
; <20><><EFBFBD><EFBFBD><EFBFBD><E7A8A2><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ;)
;
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E0AEA2><EFBFBD> FASM'<27><>
;
; <20><>. ⠪<><E2A0AA>:
; template.asm - <20><EFBFBD><E0A8AC> <20><><EFBFBD><EFBFBD>⥩襩 <20>ணࠬ<E0AEA3><E0A0AC> (<28><><EFBFBD><EFBFBD><EFBFBD>!)
; rb.asm - <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><><EFBFBD> <20><EFBFBD>
; example2.asm - <20><EFBFBD><E0A8AC> <20><><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E2A5AB><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
; example3.asm - <20><EFBFBD><E0A8AC> <20><><EFBFBD><EFBFBD>, ॠ<><E0A5A0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>-<2D><><EFBFBD><E3A3AE>
;---------------------------------------------------------------------
use32 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 32-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <><E0A5A6> <20><><EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD>
org 0x0 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20> <20><><EFBFBD><EFBFBD>
db 'MENUET01' ; 8-<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4A8AA><EFBFBD><EFBFBD> MenuetOS
dd 0x01 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> (<28><EFBFBD><E1A5A3> 1)
dd START ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dd I_END ; ࠧ<><E0A0A7><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
dd 0x1000 ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
dd 0x1000 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>
dd 0x0 ; <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><><EFBFBD><E0A0AC>஢ (<28><> <20><EFBFBD><E1AFAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>)
dd 0x0 ; <20><><EFBFBD>ࢨ஢<E0A2A8><E0AEA2><EFBFBD>
include 'MACROS.INC' ; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><E1A5AC><EFBFBD><EFBFBD><EFBFBD><E9A8AA>!
;---------------------------------------------------------------------
;--- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------------------------
;---------------------------------------------------------------------
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 '/RD/1/LAUNCHER'
I_END: ; <20><><20><><EFBFBD><EFBFBD><EFBFBD> <20>ணࠬ<E0AEA3><E0A0AC>
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?
; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD> <20><> <20><><EFBFBD><EFBFBD><EFBFBD>!
; \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