Rev 660 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log
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" |