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" |