1.include "t-macros.i"
2
3	start
4
5;;; Try out each bit in the PSW
6
7	loadpsw2 PSW_SM
8	checkpsw2 1 PSW_SM
9
10	loadpsw2 PSW_01
11	checkpsw2 2 0 ;; PSW_01
12
13	loadpsw2 PSW_EA
14	checkpsw2 3 PSW_EA
15
16	loadpsw2 PSW_DB
17	checkpsw2 4 PSW_DB
18
19	loadpsw2 PSW_DM
20	checkpsw2 5 0 ;; PSW_DM
21
22	loadpsw2 PSW_IE
23	checkpsw2 6 PSW_IE
24
25	loadpsw2 PSW_RP
26	checkpsw2 7 PSW_RP
27
28	loadpsw2 PSW_MD
29	checkpsw2 8 PSW_MD
30
31	loadpsw2 PSW_FX|PSW_ST
32	checkpsw2 9 PSW_FX|PSW_ST
33
34	;; loadpsw2 PSW_ST
35	;; checkpsw2 10
36
37	loadpsw2 PSW_10
38	checkpsw2 11 0 ;; PSW_10
39
40	loadpsw2 PSW_11
41	checkpsw2 12 0 ;; PSW_11
42
43	loadpsw2 PSW_F0
44	checkpsw2 13 PSW_F0
45
46	loadpsw2 PSW_F1
47	checkpsw2 14 PSW_F1
48
49	loadpsw2 PSW_14
50	checkpsw2 15 0 ;; PSW_14
51
52	loadpsw2 PSW_C
53	checkpsw2 16 PSW_C
54
55
56;;; Check that bit 0 (LSB) of the MOD_E & MOD_S registers are stuck at ZERO.
57
58	ldi	r6, #0xdead
59	mvtc	r6, cr10
60	ldi	r6, #0xbeef
61	mvtc	r6, cr11
62
63	mvfc	r7, cr10
64	check 17 r7 0xdeac
65	mvfc	r7, cr11
66	check 18 r7 0xbeee
67
68;;; Check that certain bits of the PSW, DPSW and BPSW are hardwired to zero
69
70psw_ffff:
71	ldi	r6, 0xffff
72	mvtc	r6, psw
73	mvfc	r7, psw
74	check 18 r7 0xb7cd
75
76bpsw_ffff:
77	ldi	r6, 0xffff
78	mvtc	r6, bpsw
79	mvfc	r7, bpsw
80	check 18 r7 0xb7cd
81
82dpsw_ffff:
83	ldi	r6, 0xffff
84	mvtc	r6, dpsw
85	mvfc	r7, dpsw
86	check 18 r7 0xb7cd
87
88;;; Another check. Very similar
89
90psw_dfff:
91	ldi	r6, 0xdfff
92	mvtc	r6, psw
93	mvfc	r7, psw
94	check 18 r7 0x97cd
95
96bpsw_dfff:
97	ldi	r6, 0xdfff
98	mvtc	r6, bpsw
99	mvfc	r7, bpsw
100	check 18 r7 0x97cd
101
102dpsw_dfff:
103	ldi	r6, 0xdfff
104	mvtc	r6, dpsw
105	mvfc	r7, dpsw
106	check 18 r7 0x97cd
107
108;;; And again.
109
110psw_8005:
111	ldi	r6, 0x8005
112	mvtc	r6, psw
113	mvfc	r7, psw
114	check 18 r7 0x8005
115
116bpsw_8005:
117	ldi	r6, 0x8005
118	mvtc	r6, bpsw
119	mvfc	r7, bpsw
120	check 18 r7 0x8005
121
122dpsw_8005:
123	ldi	r6, 0x8005
124	mvtc	r6, dpsw
125	mvfc	r7, dpsw
126	check 18 r7 0x8005
127
128
129	exit0
130