home *** CD-ROM | disk | FTP | other *** search
- opt p=68020
-
- START move.l $4.w,a6
- jsr _LVOForbid(a6)
- lea SetExept(pc),a5
- jsr _LVOSupervisor(a6)
- lea START-4(pc),a0
- clr.l (a0)
- jsr _LVOCacheClearU(a6)
- jsr _LVOPermit(a6)
- moveq #0,d0
- rts
- cnop 0,4
- SetExept lea Except,a0
- btst #AFB_68010,AttnFlags+1(a6)
- beq.s .68000
- movec vbr,a1
- move.l $20(a1),OldVec-Except+2(a0)
- move.l a0,$20(a1)
- move.l a0,$20.w
- btst #AFB_68040,AttnFlags+1(a6)
- beq.s .skip
- opt p=68040
- cpusha dc
- opt p=68020
- .skip rte
- cnop 0,4
- .68000 move.l $20.w,OldVec-Except+2(a0)
- move.l a0,$20.w
- rte
-
- dc.b "$VER: PatchExcept 1.2 (15.1.95) by Martin Berndt",0
-
- section Patch,CODE
-
- Exit movem.l (sp)+,d0/a0/a6
- OldVec jmp $f80000
- cnop 0,4
- Except movem.l d0/a0/a6,-(sp)
- move.l $4.w,a6
- btst #AFB_68010,AttnFlags+1(a6)
- beq.s Exit
- move.l $e(sp),a0
- cmpi.w #$21fc,-8(a0)
- bne.s .cont
- cmp.l -6(a0),a0
- bne.s .cont
- cmpi.w #$20,-2(a0)
- bne.s .cont
- move.l usp,a6
- move.l a0,-(a6)
- move.l a6,usp
- movem.l (sp)+,d0/a0/a6
- move.l usp,sp
- rts
- cnop 0,4
- .cont move.w (a0),d0
- andi.w #$ffc0,d0
- cmpi.w #$40c0,d0
- bne.s Exit
- ori.b #2,(a0)
- btst #AFB_68020,AttnFlags+1(a6)
- beq.s .exit
- btst #AFB_68040,AttnFlags+1(a6)
- bne.s .68040
- movec a0,caar
- movec cacr,d0
- bset #2,d0
- movec d0,cacr
- bra.s .exit
- cnop 0,4
- opt p=68040
- .68040 cpusha dc
- cinva bc
- .exit movem.l (sp)+,d0/a0/a6
- rte
-