?login_element?

Subversion Repositories NedoOS

Rev

Rev 660 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 660 Rev 1510
Line 253... Line 253...
253
        ld b,0xbf
253
        ld b,0xbf
254
        out (c),a
254
        out (c),a
255
 
255
 
256
        ld de,mariopal
256
        ld de,mariopal
257
        OS_SETPAL
257
        OS_SETPAL
258
        ;OS_GETTIMER ;hlde=timer
258
        ;OS_GETTIMER ;dehl=timer
259
        ;ld (oldtimer),de
259
        ;ld (oldtimer),hl
260
        YIELD ;иначе палитра не установится
260
        YIELD ;иначе палитра не установится
261
       
261
       
262
        call setpgs_code
262
        call setpgs_code
263
        call swapimer
263
        call swapimer
264
       
264
       
Line 1320... Line 1320...
1320
        ld (oldpalette),de
1320
        ld (oldpalette),de
1321
        or a
1321
        or a
1322
        sbc hl,de
1322
        sbc hl,de
1323
        jp z,EmulatePPU_nochpal ;реально поддержано изменение цвета Марио в палитре: при этом пишется oldpalette=левоечисло
1323
        jp z,EmulatePPU_nochpal ;реально поддержано изменение цвета Марио в палитре: при этом пишется oldpalette=левоечисло
1324
        push de
1324
        push de
1325
        ;OS_GETTIMER ;hlde=timer
1325
        ;OS_GETTIMER ;dehl=timer
1326
        ;ld (oldtimer),de ;иначе yield вылетит без ожидания прерывания
1326
        ;ld (oldtimer),hl ;иначе yield вылетит без ожидания прерывания
1327
        YIELD ;иначе можем напороться на di в swapimer
1327
        YIELD ;иначе можем напороться на di в swapimer
1328
        call swapimer ;делать это после YIELD, т.к. внутри di..ei
1328
        call swapimer ;делать это после YIELD, т.к. внутри di..ei
1329
        pop de
1329
        pop de
1330
        OS_SETPAL ;на это время восстановлен обработчик прерываний, музыка выключена (а так надо посчитать, сколько прошло прерываний по системному таймеру и добавить в игровой таймер)
1330
        OS_SETPAL ;на это время восстановлен обработчик прерываний, музыка выключена (а так надо посчитать, сколько прошло прерываний по системному таймеру и добавить в игровой таймер)
1331
        YIELD ;иначе палитра не установится
1331
        YIELD ;иначе палитра не установится
Line 2329... Line 2329...
2329
       
2329
       
2330
gettimer
2330
gettimer
2331
;out: hl=timer
2331
;out: hl=timer
2332
;суммируем оба таймера - вдруг было системное прерывание
2332
;суммируем оба таймера - вдруг было системное прерывание
2333
        if OSCALLS
2333
        if OSCALLS
2334
        OS_GETTIMER ;hlde=timer
2334
        OS_GETTIMER ;dehl=timer
2335
        endif
-
 
2336
curtimer=$+1
2335
curtimer=$+1
2337
        ld hl,0
2336
        ld de,0
2338
        if OSCALLS
-
 
2339
        add hl,de
2337
        add hl,de
-
 
2338
        else
-
 
2339
curtimer=$+1
-
 
2340
        ld hl,0
2340
        endif
2341
        endif
2341
        ret
2342
        ret
2342
 
2343
 
2343
        ;include "smbsound.asm"
2344
        ;include "smbsound.asm"
2344
        ;include "smbmusic.asm"
2345
        ;include "smbmusic.asm"