Rev 49 | Blame | Compare with Previous | Last modification | View Log | Download
;PROC setim(UINT vectoraddr); //divisible by 0x100 //reserves 0x200 bytespauseexport pauseld a,1ld (_PAUSED),aretunpauseexport unpauseld a,0ld (_PAUSED),aretsetimsetim.A.=$+1ld hl,0ld a,hld d,hld e,linc eld (hl),hinc (hl)ld bc,0x100ldirld l,hld (hl),0xc3inc lld (hl),on_int.&0xffinc lld (hl),on_int.>>8ld i,aim 2retsetimffffld a,0x18 ;jrld (0xffff),ald a,0xc3 ;jpld (0xfff4),ald hl,on_int.ld (0xfff5),hlld a,59ld i,aim 2retim1export im1ld iy,23610im 1ld a,0x3fld i,aret;keeps de in (sp);uses _IMSTACK;restores 7ffdon_int.ex de,hlex (sp),hl ;keeps de in (sp)ld (imjp.),hlld (imstack.),spld sp,_IMSTACKpush afpush bc;push depush de;hlpush ixpush iyex af,af'push afcall _USERINT1ld bc,0x7ffdld a,(_CURSCR)_SONGPG=$+1or 0x10out (c),a_PAUSED=$+1ld a,0or acall z,PLAYcall afxFRAMEcall _USERINT2_TIMER=$+1ld hl,0inc hlld (_TIMER),hlld bc,0x7ffd_CURPG=$+1ld a,0x10out (c),apop afex af,af'pop iypop ixpop hl;pop depop bcpop afimstack.=$+1ld sp,0pop deeiimjp.=$+1jp 0;PROC set7ffd(BYTE pg); //out (0x7ffd), pg|_CURSCRset7ffdld bc,0x7ffdset7ffd.A.=$+1ld a,0x10_CURSCR=$+1or 0ld (_CURPG),aout (c),aret;PROC setborder(BYTE n); //out (0xfe), nsetbordersetborder.A.=$+1ld a,0ld (_CURBORDER),aout (0xfe),arethalterhaltret