Rev 2511 | Rev 2515 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2511 | Rev 2513 | ||
---|---|---|---|
Line 67... | Line 67... | ||
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
67 | ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
Line 68... | Line 68... | ||
68 | 68 | ||
69 | include 'macros.inc' |
69 | include 'macros.inc' |
Line 70... | Line 70... | ||
70 | include 'struct.inc' |
70 | include 'struct.inc' |
Line 71... | Line 71... | ||
71 | 71 | ||
Line 72... | Line 72... | ||
72 | $Revision: 2511 $ |
72 | $Revision: 2513 $ |
Line 2509... | Line 2509... | ||
2509 | nosb2: |
2509 | nosb2: |
Line 2510... | Line 2510... | ||
2510 | 2510 | ||
2511 | cmp ebx, 3 ; DRAW BACKGROUND |
2511 | cmp ebx, 3 ; DRAW BACKGROUND |
2512 | jnz nosb3 |
2512 | jnz nosb3 |
2513 | draw_background_temp: |
- | |
2514 | ; cmp [bgrchanged],1 ;0 |
- | |
2515 | ; je nosb31 |
- | |
2516 | ;draw_background_temp: |
- | |
2517 | ; mov [bgrchanged],1 ;0 |
2513 | draw_background_temp: |
2518 | mov [background_defined], 1 |
- | |
2519 | mov byte[BACKGROUND_CHANGED], 1 |
2514 | mov [background_defined], 1 |
2520 | call force_redraw_background |
2515 | call force_redraw_background |
2521 | nosb31: |
2516 | nosb31: |
2522 | ret |
2517 | ret |
Line 2523... | Line 2518... | ||
2523 | nosb3: |
2518 | nosb3: |
2524 | 2519 | ||
2525 | cmp ebx, 4 ; TILED / STRETCHED |
2520 | cmp ebx, 4 ; TILED / STRETCHED |
2526 | jnz nosb4 |
2521 | jnz nosb4 |
2527 | cmp ecx, [BgrDrawMode] |
2522 | cmp ecx, [BgrDrawMode] |
2528 | je nosb41 |
- | |
2529 | mov [BgrDrawMode], ecx |
2523 | je nosb41 |
2530 | ; mov [bgrchanged],1 |
2524 | mov [BgrDrawMode], ecx |
2531 | nosb41: |
2525 | nosb41: |
Line 2532... | Line 2526... | ||
2532 | ret |
2526 | ret |
Line 3137... | Line 3131... | ||
3137 | endg |
3131 | endg |
Line 3138... | Line 3132... | ||
3138 | 3132 | ||
3139 | uglobal |
3133 | uglobal |
3140 | background_defined db 0 ; diamond, 11.04.2006 |
3134 | background_defined db 0 ; diamond, 11.04.2006 |
3141 | endg |
- | |
- | 3135 | endg |
|
3142 | 3136 | ;----------------------------------------------------------------------------- |
|
3143 | align 4 |
- | |
3144 | ; check misc |
- | |
3145 | 3137 | align 4 |
|
3146 | checkmisc: |
- | |
3147 | 3138 | checkmisc: |
|
3148 | cmp [ctrl_alt_del], 1 |
3139 | cmp [ctrl_alt_del], 1 |
Line 3149... | Line 3140... | ||
3149 | jne nocpustart |
3140 | jne nocpustart |
3150 | 3141 | ||
Line 3151... | Line 3142... | ||
3151 | mov ebp, cpustring |
3142 | mov ebp, cpustring |
- | 3143 | call fs_execute_from_sysdir |
|
3152 | call fs_execute_from_sysdir |
3144 | |
3153 | 3145 | mov [ctrl_alt_del], 0 |
|
3154 | mov [ctrl_alt_del], 0 |
3146 | ;-------------------------------------- |
3155 | 3147 | align 4 |
|
3156 | nocpustart: |
3148 | nocpustart: |
Line 3166... | Line 3158... | ||
3166 | shl eax, 8 |
3158 | shl eax, 8 |
3167 | push eax |
3159 | push eax |
Line 3168... | Line 3160... | ||
3168 | 3160 | ||
3169 | movzx eax, word [MOUSE_X] |
3161 | movzx eax, word [MOUSE_X] |
3170 | movzx edx, word [MOUSE_Y] |
- | |
- | 3162 | movzx edx, word [MOUSE_Y] |
|
3171 | 3163 | ;-------------------------------------- |
|
3172 | align 4 |
3164 | align 4 |
3173 | .set_mouse_event: |
3165 | .set_mouse_event: |
3174 | add edi, 256 |
3166 | add edi, 256 |
3175 | add ebx, 32 |
3167 | add ebx, 32 |
3176 | test [ebx+TASKDATA.event_mask], 0x80000000 |
3168 | test [ebx+TASKDATA.event_mask], 0x80000000 |
Line 3177... | Line 3169... | ||
3177 | jz .pos_filter |
3169 | jz .pos_filter |
3178 | 3170 | ||
- | 3171 | cmp edi, [esp] ; skip if filtration active |
|
3179 | cmp edi, [esp] ; skip if filtration active |
3172 | jne .skip |
3180 | jne .skip |
3173 | ;-------------------------------------- |
3181 | 3174 | align 4 |
|
3182 | .pos_filter: |
3175 | .pos_filter: |
Line 3183... | Line 3176... | ||
3183 | test [ebx+TASKDATA.event_mask], 0x40000000 |
3176 | test [ebx+TASKDATA.event_mask], 0x40000000 |
Line 3194... | Line 3187... | ||
3194 | cmp edx, esi |
3187 | cmp edx, esi |
3195 | jb .skip |
3188 | jb .skip |
3196 | add esi, [ebx-twdw+WDATA.box.height] |
3189 | add esi, [ebx-twdw+WDATA.box.height] |
3197 | cmp edx, esi |
3190 | cmp edx, esi |
3198 | ja .skip |
3191 | ja .skip |
- | 3192 | ;-------------------------------------- |
|
- | 3193 | align 4 |
|
3199 | .set: |
3194 | .set: |
3200 | or [edi+SLOT_BASE+APPDATA.event_mask], 100000b |
3195 | or [edi+SLOT_BASE+APPDATA.event_mask], 100000b ; set event 6 |
- | 3196 | ;-------------------------------------- |
|
- | 3197 | align 4 |
|
3201 | .skip: |
3198 | .skip: |
3202 | loop .set_mouse_event |
3199 | loop .set_mouse_event |
Line 3203... | Line 3200... | ||
3203 | 3200 | ||
- | 3201 | pop eax |
|
3204 | pop eax |
3202 | ;-------------------------------------- |
3205 | 3203 | align 4 |
|
3206 | mouse_not_active: |
- | |
3207 | cmp byte[BACKGROUND_CHANGED], 0 |
- | |
3208 | jz no_set_bgr_event |
- | |
3209 | xor edi, edi |
- | |
3210 | mov ecx, [TASK_COUNT] |
- | |
3211 | set_bgr_event: |
- | |
3212 | add edi, 256 |
- | |
3213 | or [edi+SLOT_BASE+APPDATA.event_mask], 16 |
- | |
3214 | loop set_bgr_event |
- | |
3215 | mov byte[BACKGROUND_CHANGED], 0 |
- | |
3216 | no_set_bgr_event: |
3204 | mouse_not_active: |
3217 | cmp byte[REDRAW_BACKGROUND], 0 ; background update ? |
3205 | cmp byte[REDRAW_BACKGROUND], 0 ; background update ? |
3218 | jz nobackgr |
3206 | jz nobackgr |
3219 | cmp [background_defined], 0 |
3207 | cmp [background_defined], 0 |
3220 | jz nobackgr |
- | |
3221 | ; mov [draw_data+32 + RECT.left],dword 0 |
3208 | jz nobackgr |
3222 | ; mov [draw_data+32 + RECT.top],dword 0 |
3209 | ;-------------------------------------- |
3223 | ; mov eax,[Screen_Max_X] |
- | |
3224 | ; mov ebx,[Screen_Max_Y] |
- | |
3225 | ; mov [draw_data+32 + RECT.right],eax |
- | |
3226 | ; mov [draw_data+32 + RECT.bottom],ebx |
3210 | align 4 |
3227 | @@: |
3211 | @@: |
- | 3212 | call drawbackground |
|
- | 3213 | ;--------- set event 5 start ---------- |
|
- | 3214 | push ecx edi |
|
- | 3215 | xor edi, edi |
|
- | 3216 | mov ecx, [TASK_COUNT] |
|
- | 3217 | ;-------------------------------------- |
|
- | 3218 | align 4 |
|
- | 3219 | set_bgr_event: |
|
- | 3220 | add edi, 256 |
|
- | 3221 | or [edi+SLOT_BASE+APPDATA.event_mask], 10000b ; set event 5 |
|
- | 3222 | loop set_bgr_event |
|
- | 3223 | pop edi ecx |
|
3228 | call drawbackground |
3224 | ;--------- set event 5 stop ----------- |
3229 | xor eax, eax |
3225 | xor eax, eax |
3230 | xchg al, [REDRAW_BACKGROUND] |
3226 | xchg al, [REDRAW_BACKGROUND] |
3231 | test al, al ; got new update request? |
3227 | test al, al ; got new update request? |
- | 3228 | jnz @b |
|
3232 | jnz @b |
3229 | |
3233 | mov [draw_data+32 + RECT.left], eax |
3230 | mov [draw_data+32 + RECT.left], eax |
3234 | mov [draw_data+32 + RECT.top], eax |
3231 | mov [draw_data+32 + RECT.top], eax |
3235 | mov [draw_data+32 + RECT.right], eax |
3232 | mov [draw_data+32 + RECT.right], eax |
3236 | mov [draw_data+32 + RECT.bottom], eax |
3233 | mov [draw_data+32 + RECT.bottom], eax |
- | 3234 | mov [MOUSE_BACKGROUND], byte 0 |
|
3237 | mov [MOUSE_BACKGROUND], byte 0 |
3235 | ;-------------------------------------- |
3238 | 3236 | align 4 |
|
3239 | nobackgr: |
- | |
3240 | 3237 | nobackgr: |
|
3241 | ; system shutdown request |
- | |
3242 | 3238 | ; system shutdown request |
|
3243 | cmp [SYS_SHUTDOWN], byte 0 |
3239 | cmp [SYS_SHUTDOWN], byte 0 |
Line 3244... | Line 3240... | ||
3244 | je noshutdown |
3240 | je noshutdown |
Line 3249... | Line 3245... | ||
3249 | jne no_mark_system_shutdown |
3245 | jne no_mark_system_shutdown |
Line 3250... | Line 3246... | ||
3250 | 3246 | ||
3251 | lea ecx, [edx-1] |
3247 | lea ecx, [edx-1] |
3252 | mov edx, OS_BASE+0x3040 |
3248 | mov edx, OS_BASE+0x3040 |
- | 3249 | jecxz @f |
|
- | 3250 | ;-------------------------------------- |
|
3253 | jecxz @f |
3251 | align 4 |
3254 | markz: |
3252 | markz: |
3255 | mov [edx+TASKDATA.state], byte 3 |
3253 | mov [edx+TASKDATA.state], byte 3 |
3256 | add edx, 0x20 |
3254 | add edx, 0x20 |
- | 3255 | loop markz |
|
- | 3256 | ;-------------------------------------- |
|
3257 | loop markz |
3257 | align 4 |
3258 | @@: |
- | |
3259 | 3258 | @@: |
|
3260 | no_mark_system_shutdown: |
- | |
3261 | 3259 | no_mark_system_shutdown: |
|
3262 | dec byte [SYS_SHUTDOWN] |
3260 | dec byte [SYS_SHUTDOWN] |
- | 3261 | je system_shutdown |
|
3263 | je system_shutdown |
3262 | ;-------------------------------------- |
3264 | 3263 | align 4 |
|
3265 | noshutdown: |
- | |
3266 | - | ||
3267 | 3264 | noshutdown: |
|
3268 | mov eax, [TASK_COUNT] ; termination |
3265 | mov eax, [TASK_COUNT] ; termination |
3269 | mov ebx, TASK_DATA+TASKDATA.state |
3266 | mov ebx, TASK_DATA+TASKDATA.state |
- | 3267 | mov esi, 1 |
|
3270 | mov esi, 1 |
3268 | ;-------------------------------------- |
3271 | 3269 | align 4 |
|
3272 | newct: |
3270 | newct: |
3273 | mov cl, [ebx] |
3271 | mov cl, [ebx] |
3274 | cmp cl, byte 3 |
3272 | cmp cl, byte 3 |
- | 3273 | jz terminate |
|
3275 | jz terminate |
3274 | |
3276 | cmp cl, byte 4 |
3275 | cmp cl, byte 4 |
Line 3277... | Line 3276... | ||
3277 | jz terminate |
3276 | jz terminate |
3278 | 3277 | ||
3279 | add ebx, 0x20 |
3278 | add ebx, 0x20 |
3280 | inc esi |
3279 | inc esi |
3281 | dec eax |
3280 | dec eax |
3282 | jnz newct |
- | |
- | 3281 | jnz newct |
|
3283 | ret |
3282 | ret |
3284 | - | ||
3285 | ; redraw screen |
3283 | ;----------------------------------------------------------------------------- |
3286 | - | ||
3287 | redrawscreen: |
3284 | align 4 |
Line 3288... | Line 3285... | ||
3288 | 3285 | redrawscreen: |
|
3289 | ; eax , if process window_data base is eax, do not set flag/limits |
3286 | ; eax , if process window_data base is eax, do not set flag/limits |
Line 3290... | Line 3287... | ||
3290 | 3287 | ||
3291 | pushad |
3288 | pushad |
Line 3292... | Line 3289... | ||
3292 | push eax |
3289 | push eax |
3293 | 3290 | ||
- | 3291 | ;;; mov ebx,2 |
|
- | 3292 | ;;; call delay_hs |
|
3294 | ;;; mov ebx,2 |
3293 | |
3295 | ;;; call delay_hs |
- | |
3296 | 3294 | ;mov ecx,0 ; redraw flags for apps |
|
3297 | ;mov ecx,0 ; redraw flags for apps |
3295 | xor ecx, ecx |
Line 3298... | Line 3296... | ||
3298 | xor ecx, ecx |
3296 | ;-------------------------------------- |
3299 | newdw2: |
3297 | align 4 |
Line 3340... | Line 3338... | ||
3340 | jb ricino |
3338 | jb ricino |
Line 3341... | Line 3339... | ||
3341 | 3339 | ||
3342 | mov eax, [draw_limits.left] ; eax = area x start ecx = window x end |
3340 | mov eax, [draw_limits.left] ; eax = area x start ecx = window x end |
3343 | cmp ecx, eax |
3341 | cmp ecx, eax |
- | 3342 | jb ricino |
|
3344 | jb ricino |
3343 | ;-------------------------------------- |
3345 | 3344 | align 4 |
|
3346 | bgli: |
- | |
3347 | 3345 | bgli: |
|
3348 | cmp dword[esp], 1 |
3346 | cmp dword[esp], 1 |
3349 | jnz .az |
- | |
3350 | ; cmp byte[BACKGROUND_CHANGED], 0 |
- | |
- | 3347 | jnz .az |
|
3351 | ; jnz newdw8 |
3348 | |
3352 | cmp byte[REDRAW_BACKGROUND], 0 |
3349 | cmp byte[REDRAW_BACKGROUND], 0 |
- | 3350 | jz .az |
|
3353 | jz .az |
3351 | |
3354 | mov dl, 0 |
3352 | mov dl, 0 |
3355 | lea eax, [edi+draw_data-window_data] |
3353 | lea eax, [edi+draw_data-window_data] |
3356 | mov ebx, [draw_limits.left] |
3354 | mov ebx, [draw_limits.left] |
3357 | cmp ebx, [eax+RECT.left] |
3355 | cmp ebx, [eax+RECT.left] |
- | 3356 | jae @f |
|
3358 | jae @f |
3357 | |
3359 | mov [eax+RECT.left], ebx |
3358 | mov [eax+RECT.left], ebx |
- | 3359 | mov dl, 1 |
|
- | 3360 | ;-------------------------------------- |
|
3360 | mov dl, 1 |
3361 | align 4 |
3361 | @@: |
3362 | @@: |
3362 | mov ebx, [draw_limits.top] |
3363 | mov ebx, [draw_limits.top] |
3363 | cmp ebx, [eax+RECT.top] |
3364 | cmp ebx, [eax+RECT.top] |
- | 3365 | jae @f |
|
3364 | jae @f |
3366 | |
3365 | mov [eax+RECT.top], ebx |
3367 | mov [eax+RECT.top], ebx |
- | 3368 | mov dl, 1 |
|
- | 3369 | ;-------------------------------------- |
|
3366 | mov dl, 1 |
3370 | align 4 |
3367 | @@: |
3371 | @@: |
3368 | mov ebx, [draw_limits.right] |
3372 | mov ebx, [draw_limits.right] |
3369 | cmp ebx, [eax+RECT.right] |
3373 | cmp ebx, [eax+RECT.right] |
- | 3374 | jbe @f |
|
3370 | jbe @f |
3375 | |
3371 | mov [eax+RECT.right], ebx |
3376 | mov [eax+RECT.right], ebx |
- | 3377 | mov dl, 1 |
|
- | 3378 | ;-------------------------------------- |
|
3372 | mov dl, 1 |
3379 | align 4 |
3373 | @@: |
3380 | @@: |
3374 | mov ebx, [draw_limits.bottom] |
3381 | mov ebx, [draw_limits.bottom] |
3375 | cmp ebx, [eax+RECT.bottom] |
3382 | cmp ebx, [eax+RECT.bottom] |
- | 3383 | jbe @f |
|
3376 | jbe @f |
3384 | |
3377 | mov [eax+RECT.bottom], ebx |
3385 | mov [eax+RECT.bottom], ebx |
- | 3386 | mov dl, 1 |
|
- | 3387 | ;-------------------------------------- |
|
3378 | mov dl, 1 |
3388 | align 4 |
3379 | @@: |
3389 | @@: |
3380 | add byte[REDRAW_BACKGROUND], dl |
3390 | add byte[REDRAW_BACKGROUND], dl |
- | 3391 | jmp newdw8 |
|
- | 3392 | ;-------------------------------------- |
|
3381 | jmp newdw8 |
3393 | align 4 |
3382 | .az: |
- | |
3383 | 3394 | .az: |
|
3384 | mov eax, edi |
3395 | mov eax, edi |
Line 3385... | Line 3396... | ||
3385 | add eax, draw_data-window_data |
3396 | add eax, draw_data-window_data |
3386 | 3397 | ||
Line 3396... | Line 3407... | ||
3396 | sub eax, draw_data-window_data |
3407 | sub eax, draw_data-window_data |
Line 3397... | Line 3408... | ||
3397 | 3408 | ||
3398 | cmp dword [esp], 1 |
3409 | cmp dword [esp], 1 |
3399 | jne nobgrd |
3410 | jne nobgrd |
- | 3411 | inc byte[REDRAW_BACKGROUND] |
|
3400 | inc byte[REDRAW_BACKGROUND] |
3412 | ;-------------------------------------- |
3401 | 3413 | align 4 |
|
3402 | newdw8: |
3414 | newdw8: |
Line 3403... | Line 3415... | ||
3403 | nobgrd: |
3415 | nobgrd: |
- | 3416 | ||
3404 | 3417 | mov [eax + WDATA.fl_redraw], byte 1 ; mark as redraw |
|
3405 | mov [eax + WDATA.fl_redraw], byte 1 ; mark as redraw |
3418 | ;-------------------------------------- |
3406 | - | ||
3407 | ricino: |
3419 | align 4 |
3408 | - | ||
3409 | not_this_task: |
3420 | ricino: |
Line 3410... | Line 3421... | ||
3410 | 3421 | not_this_task: |
|
3411 | pop ecx |
3422 | pop ecx |
Line 3412... | Line 3423... | ||
3412 | 3423 | ||
3413 | cmp ecx, [TASK_COUNT] |
3424 | cmp ecx, [TASK_COUNT] |
3414 | jle newdw2 |
- | |
3415 | 3425 | jle newdw2 |
|
- | 3426 | ||
3416 | pop eax |
3427 | pop eax |
3417 | popad |
3428 | popad |
3418 | - | ||
3419 | ret |
3429 | ret |
3420 | 3430 | ;----------------------------------------------------------------------------- |
|
3421 | calculatebackground: ; background |
3431 | align 4 |
3422 | 3432 | calculatebackground: ; background |
|
3423 | mov edi, [_WinMapAddress] ; set os to use all pixels |
3433 | mov edi, [_WinMapAddress] ; set os to use all pixels |
Line 3424... | Line 3434... | ||
3424 | mov eax, 0x01010101 |
3434 | mov eax, 0x01010101 |
3425 | mov ecx, [_WinMapSize] |
- | |
3426 | shr ecx, 2 |
- | |
3427 | rep stosd |
3435 | mov ecx, [_WinMapSize] |
3428 | - | ||
- | 3436 | shr ecx, 2 |
|
3429 | mov byte[REDRAW_BACKGROUND], 0 ; do not draw background! |
3437 | rep stosd |
3430 | mov byte[BACKGROUND_CHANGED], 0 |
3438 | |
3431 | 3439 | mov byte[REDRAW_BACKGROUND], 0 ; do not draw background! |
|
3432 | ret |
- | |
3433 | - | ||
- | 3440 | ret |
|
3434 | uglobal |
3441 | ;----------------------------------------------------------------------------- |
3435 | imax dd 0x0 |
3442 | uglobal |
3436 | endg |
- | |
3437 | - | ||
3438 | 3443 | imax dd 0x0 |
|
3439 | 3444 | endg |
|
Line 3440... | Line 3445... | ||
3440 | delay_ms: ; delay in 1/1000 sec |
3445 | ;----------------------------------------------------------------------------- |
3441 | 3446 | align 4 |
|
Line 3451... | Line 3456... | ||
3451 | 3456 | ||
3452 | in al, 0x61 |
3457 | in al, 0x61 |
3453 | and al, 0x10 |
3458 | and al, 0x10 |
3454 | mov ah, al |
3459 | mov ah, al |
- | 3460 | cld |
|
3455 | cld |
3461 | ;-------------------------------------- |
3456 | 3462 | align 4 |
|
3457 | cnt1: |
3463 | cnt1: |
3458 | in al, 0x61 |
3464 | in al, 0x61 |
3459 | and al, 0x10 |
3465 | and al, 0x10 |
3460 | cmp al, ah |
3466 | cmp al, ah |
Line 3463... | Line 3469... | ||
3463 | mov ah, al |
3469 | mov ah, al |
3464 | loop cnt1 |
3470 | loop cnt1 |
Line 3465... | Line 3471... | ||
3465 | 3471 | ||
3466 | pop ecx |
3472 | pop ecx |
3467 | pop eax |
- | |
3468 | 3473 | pop eax |
|
3469 | ret |
- | |
- | 3474 | ret |
|
3470 | 3475 | ;----------------------------------------------------------------------------- |
|
3471 | align 4 |
3476 | align 4 |
3472 | set_app_param: |
3477 | set_app_param: |
3473 | mov edi, [TASK_BASE] |
3478 | mov edi, [TASK_BASE] |
3474 | mov eax, ebx |
3479 | mov eax, ebx |
3475 | btr eax, 3 ; move MOUSE_FILTRATION |
3480 | btr eax, 3 ; move MOUSE_FILTRATION |
3476 | mov ebx, [current_slot] ; bit into event_filter |
3481 | mov ebx, [current_slot] ; bit into event_filter |
3477 | setc byte [ebx+APPDATA.event_filter] |
3482 | setc byte [ebx+APPDATA.event_filter] |
3478 | xchg eax, [edi + TASKDATA.event_mask] ; set new event mask |
3483 | xchg eax, [edi + TASKDATA.event_mask] ; set new event mask |
3479 | mov [esp+32], eax ; return old mask value |
3484 | mov [esp+32], eax ; return old mask value |
3480 | ret |
- | |
3481 | - | ||
- | 3485 | ret |
|
3482 | 3486 | ;----------------------------------------------------------------------------- |
|
3483 | 3487 | align 4 |
|
3484 | delay_hs: ; delay in 1/100 secs |
3488 | delay_hs: ; delay in 1/100 secs |
3485 | ; ebx = delay time |
3489 | ; ebx = delay time |
3486 | push ecx |
3490 | push ecx |
Line 3487... | Line 3491... | ||
3487 | push edx |
3491 | push edx |
- | 3492 | ||
3488 | 3493 | mov edx, [timer_ticks] |
|
3489 | mov edx, [timer_ticks] |
3494 | ;-------------------------------------- |
3490 | 3495 | align 4 |
|
3491 | newtic: |
3496 | newtic: |
3492 | mov ecx, [timer_ticks] |
3497 | mov ecx, [timer_ticks] |
3493 | sub ecx, edx |
3498 | sub ecx, edx |
Line 3494... | Line 3499... | ||
3494 | cmp ecx, ebx |
3499 | cmp ecx, ebx |
Line 3495... | Line 3500... | ||
3495 | jae zerodelay |
3500 | jae zerodelay |
- | 3501 | ||
3496 | 3502 | call change_task |
|
3497 | call change_task |
3503 | |
3498 | 3504 | jmp newtic |
|
3499 | jmp newtic |
3505 | ;-------------------------------------- |
3500 | - | ||
3501 | zerodelay: |
3506 | align 4 |
3502 | pop edx |
- | |
- | 3507 | zerodelay: |
|
3503 | pop ecx |
3508 | pop edx |
3504 | 3509 | pop ecx |
|
3505 | ret |
- | |
3506 | 3510 | ret |
|
3507 | align 16 ;very often call this subrutine |
3511 | ;----------------------------------------------------------------------------- |
3508 | memmove: ; memory move in bytes |
3512 | align 16 ;very often call this subrutine |
3509 | 3513 | memmove: ; memory move in bytes |
|
3510 | ; eax = from |
3514 | ; eax = from |
Line 3525... | Line 3529... | ||
3525 | shr ecx, 2 |
3529 | shr ecx, 2 |
3526 | rep movsd |
3530 | rep movsd |
3527 | pop ecx |
3531 | pop ecx |
3528 | and ecx, 11b |
3532 | and ecx, 11b |
3529 | jz .finish |
3533 | jz .finish |
- | 3534 | ;-------------------------------------- |
|
- | 3535 | align 4 |
|
3530 | @@: |
3536 | @@: |
3531 | rep movsb |
3537 | rep movsb |
- | 3538 | ;-------------------------------------- |
|
3532 | 3539 | align 4 |
|
3533 | .finish: |
3540 | .finish: |
3534 | pop ecx edi esi |
3541 | pop ecx edi esi |
- | 3542 | ;-------------------------------------- |
|
- | 3543 | align 4 |
|
3535 | .ret: |
3544 | .ret: |
3536 | ret |
3545 | ret |
3537 | - | ||
3538 | - | ||
- | 3546 | ;----------------------------------------------------------------------------- |
|
3539 | ; |
3547 | ; |
3540 | ;align 4 |
3548 | ;align 4 |
3541 | ; |
3549 | ; |
3542 | ;read_floppy_file: |
3550 | ;read_floppy_file: |
3543 | ; |
3551 | ; |