Fri, 04 Mar 2011 01:36:30 +0000
fix issue with WE+ bit becoming unset, fix pagefault:not-mapped-in logic
- The WE+ (page write enable) bit was becoming unset when the Page Status bits were being set.
A stupid mistake in an AND expression was unsetting the write-enable, thus making S4TEST 12,2 and 12,3 fail spectacularly.
- Pagefaults were not being generated correctly for pages which were not mapped in. Even Supervisor code accessing unmapped pages should get a PF.
1 CC = gcc
2 WARNINGS = -Wall -pedantic
3 CFLAGS = $(WARNINGS) -c -Iobj -I. -I..
4 LFLAGS = $(WARNINGS)
6 all: obj sim
8 clean:
9 rm -rf obj
10 rm -f sim
12 obj:
13 mkdir obj
15 sim: obj/sim.o obj/m68kcpu.o obj/m68kops.o obj/m68kopac.o obj/m68kopdm.o obj/m68kopnz.o
16 $(CC) $(LFLAGS) obj/sim.o obj/m68kcpu.o obj/m68kops.o obj/m68kopac.o obj/m68kopdm.o obj/m68kopnz.o -o sim
18 obj/sim.o: sim.c sim.h ../m68k.h ../m68kconf.h
19 $(CC) $(CFLAGS) sim.c -o obj/sim.o
21 obj/m68kcpu.o: sim.h obj/m68kops.h sim.h ../m68k.h ../m68kconf.h
22 $(CC) $(CFLAGS) ../m68kcpu.c -o obj/m68kcpu.o
24 obj/m68kops.o: obj/m68kmake obj/m68kops.h obj/m68kops.c sim.h ../m68k.h ../m68kconf.h
25 $(CC) $(CFLAGS) obj/m68kops.c -o obj/m68kops.o
27 obj/m68kopac.o: obj/m68kmake obj/m68kops.h obj/m68kopac.c sim.h ../m68k.h ../m68kconf.h
28 $(CC) $(CFLAGS) obj/m68kopac.c -o obj/m68kopac.o
30 obj/m68kopdm.o: obj/m68kmake obj/m68kops.h obj/m68kopdm.c sim.h ../m68k.h ../m68kconf.h
31 $(CC) $(CFLAGS) obj/m68kopdm.c -o obj/m68kopdm.o
33 obj/m68kopnz.o: obj/m68kmake obj/m68kops.h obj/m68kopnz.c sim.h ../m68k.h ../m68kconf.h
34 $(CC) $(CFLAGS) obj/m68kopnz.c -o obj/m68kopnz.o
36 obj/m68kops.h: obj/m68kmake
37 obj/m68kmake obj ../m68k_in.c
39 obj/m68kmake: ../m68kmake.c ../m68k_in.c
40 $(CC) $(WARNINGS) ../m68kmake.c -o obj/m68kmake