185 |
|
pea 1$ |
186 |
|
move.w _EmulatedSR,d0 |
187 |
|
move.w d0,-(sp) |
188 |
< |
or.w #$0100,d0 ;Set interrupt level in SR |
188 |
> |
or.w #$2100,d0 ;Set interrupt level in SR, enter (virtual) supervisor mode |
189 |
|
move.w d0,_EmulatedSR |
190 |
|
move.l $64.w,-(sp) ;Jump to MacOS interrupt handler |
191 |
|
rts |
474 |
|
cmp.w #$40d0,d0 ;move sr,(a0)? |
475 |
|
beq movefromsra0 |
476 |
|
cmp.w #$40d7,d0 ;move sr,(sp)? |
477 |
< |
beq movefromsrsp ;+++jl+++ |
477 |
> |
beq movefromsrsp |
478 |
|
|
479 |
|
cmp.w #$f327,d0 ;fsave -(sp)? |
480 |
|
beq fsavepush |
889 |
|
beq.s movectcd0 |
890 |
|
cmp.w #$1003,d0 ;movec tc,d1? |
891 |
|
beq.s movectcd1 |
892 |
< |
cmp.w #$1000,d0 ;movec SFC,d1? |
892 |
> |
cmp.w #$1000,d0 ;movec sfc,d1? |
893 |
|
beq movecsfcd1 |
894 |
< |
cmp.w #$1001,d0 ;movec DFC,d1? |
894 |
> |
cmp.w #$1001,d0 ;movec dfc,d1? |
895 |
|
beq movecdfcd1 |
896 |
< |
cmp.w #$0806,d0 ;movec URP,d0? |
896 |
> |
cmp.w #$0806,d0 ;movec urp,d0? |
897 |
|
beq movecurpd0 |
898 |
< |
cmp.w #$0807,d0 ;movec SRP,d0? |
898 |
> |
cmp.w #$0807,d0 ;movec srp,d0? |
899 |
|
beq.s movecsrpd0 |
900 |
< |
cmp.w #$0004,d0 ;movec ITT0,d0 |
900 |
> |
cmp.w #$0004,d0 ;movec itt0,d0 |
901 |
|
beq.s movecitt0d0 |
902 |
< |
cmp.w #$0005,d0 ;movec ITT1,d0 |
902 |
> |
cmp.w #$0005,d0 ;movec itt1,d0 |
903 |
|
beq.s movecitt1d0 |
904 |
< |
cmp.w #$0006,d0 ;movec DTT0,d0 |
904 |
> |
cmp.w #$0006,d0 ;movec dtt0,d0 |
905 |
|
beq.s movecdtt0d0 |
906 |
< |
cmp.w #$0007,d0 ;movec DTT1,d0 |
906 |
> |
cmp.w #$0007,d0 ;movec dtt1,d0 |
907 |
|
beq.s movecdtt1d0 |
908 |
|
|
909 |
|
bra pv_unhandled |
950 |
|
addq.l #4,2(sp) |
951 |
|
rte |
952 |
|
|
953 |
< |
; movec SFC,d1 +jl+ |
953 |
> |
; movec sfc,d1 +jl+ |
954 |
|
movecsfcd1: move.l (sp)+,d0 ;Restore d0 |
955 |
< |
moveq #0,d1 ;MMU is always off |
955 |
> |
moveq #0,d1 |
956 |
|
addq.l #4,2(sp) |
957 |
|
rte |
958 |
|
|
959 |
< |
; movec DFC,d1 +jl+ |
959 |
> |
; movec dfc,d1 +jl+ |
960 |
|
movecdfcd1: move.l (sp)+,d0 ;Restore d0 |
961 |
< |
moveq #0,d1 ;MMU is always off |
961 |
> |
moveq #0,d1 |
962 |
|
addq.l #4,2(sp) |
963 |
|
rte |
964 |
|
|
965 |
< |
movecurpd0: ; movec URP,d0 +jl+ |
966 |
< |
movecsrpd0: ; movec SRP,d0 |
967 |
< |
movecitt0d0: ; movec ITT0,d0 |
968 |
< |
movecitt1d0: ; movec ITT1,d0 |
969 |
< |
movecdtt0d0: ; movec DTT0,d0 |
970 |
< |
movecdtt1d0: ; movec DTT1,d0 |
965 |
> |
movecurpd0: ; movec urp,d0 +jl+ |
966 |
> |
movecsrpd0: ; movec srp,d0 |
967 |
> |
movecitt0d0: ; movec itt0,d0 |
968 |
> |
movecitt1d0: ; movec itt1,d0 |
969 |
> |
movecdtt0d0: ; movec dtt0,d0 |
970 |
> |
movecdtt1d0: ; movec dtt1,d0 |
971 |
|
addq.l #4,sp |
972 |
|
moveq.l #0,d0 ;MMU is always off |
973 |
|
addq.l #4,2(sp) ;skip instruction |
984 |
|
beq.s movectocacr |
985 |
|
cmp.w #$1002,d0 ;movec d1,cacr? |
986 |
|
beq.s movectocacr |
987 |
< |
cmp.w #$1000,d0 ;movec d1,SFC? |
987 |
> |
cmp.w #$1000,d0 ;movec d1,sfc? |
988 |
|
beq.s movectoxfc |
989 |
< |
cmp.w #$1001,d0 ;movec d1,DFC? |
989 |
> |
cmp.w #$1001,d0 ;movec d1,dfc? |
990 |
|
beq.s movectoxfc |
991 |
|
|
992 |
|
bra pv_unhandled |
1005 |
|
addq.l #4,2(sp) |
1006 |
|
rte |
1007 |
|
|
1008 |
< |
; movec x,SFC |
1009 |
< |
; movec x,DFC |
1008 |
> |
; movec x,sfc |
1009 |
> |
; movec x,dfc |
1010 |
|
movectoxfc move.l (sp)+,d0 ;Ignore moves to SFC, DFC |
1011 |
|
addq.l #4,2(sp) |
1012 |
|
rte |