Commit | Line | Data |
---|---|---|
4e754410 BJ |
1 | / |
2 | / SET OPERATIONS | |
3 | / | |
4 | _ADDT: | |
5 | bne 1f | |
6 | mov (lc)+,r3 | |
7 | 1: | |
8 | inc r3 | |
9 | bic $1,r3 | |
10 | mov sp,r0 | |
11 | add r3,sp | |
12 | mov sp,r1 | |
13 | asr r3 | |
14 | 1: | |
15 | bis (r0)+,(r1)+ | |
16 | sob r3,1b | |
17 | return | |
18 | _SUBT: | |
19 | bne 1f | |
20 | mov (lc)+,r3 | |
21 | 1: | |
22 | inc r3 | |
23 | bic $1,r3 | |
24 | mov sp,r0 | |
25 | add r3,sp | |
26 | mov sp,r1 | |
27 | asr r3 | |
28 | 1: | |
29 | bic (r0)+,(r1)+ | |
30 | sob r3,1b | |
31 | bic (lc)+,-(r1) | |
32 | return | |
33 | _MULT: | |
34 | bne 1f | |
35 | mov (lc)+,r3 | |
36 | 1: | |
37 | inc r3 | |
38 | bic $1,r3 | |
39 | mov sp,r0 | |
40 | add r3,sp | |
41 | mov sp,r1 | |
42 | asr r3 | |
43 | 1: | |
44 | mov (r0)+,r2 | |
45 | com r2 | |
46 | bic r2,(r1)+ | |
47 | sob r3,1b | |
48 | return | |
49 | _CARD: | |
50 | bne 1f | |
51 | mov (lc)+,r3 | |
52 | 1: | |
53 | mov r3,r1 | |
54 | mov sp,r2 | |
55 | inc r3 | |
56 | bic $1,r3 | |
57 | add r3,sp | |
58 | clr r3 | |
59 | 1: | |
60 | movb (r2),r0 | |
61 | bic $!17,r0 | |
62 | asl r0 | |
63 | add poptab(r0),r3 | |
64 | movb (r2)+,r0 | |
65 | ash $-3,r0 | |
66 | bic $!36,r0 | |
67 | add poptab(r0),r3 | |
68 | sob r1,1b | |
69 | mov r3,-(sp) | |
70 | return | |
71 | .data | |
72 | poptab: | |
73 | 0 / 0000 | |
74 | 1 / 0001 | |
75 | 1 / 0010 | |
76 | 2 / 0011 | |
77 | 1 / 0100 | |
78 | 2 / 0101 | |
79 | 2 / 0110 | |
80 | 3 / 0111 | |
81 | 1 / 1000 | |
82 | 2 / 1001 | |
83 | 2 / 1010 | |
84 | 3 / 1011 | |
85 | 2 / 1100 | |
86 | 3 / 1101 | |
87 | 3 / 1110 | |
88 | 4 / 1111 | |
89 | .text | |
90 | _CTTOT: | |
91 | bne 1f | |
92 | mov (lc)+,r3 | |
93 | 1: | |
94 | mov r3,-(sp) | |
95 | mov (lc)+,-(sp) | |
96 | mov (lc)+,-(sp) | |
97 | jsr pc,_pcttot | |
98 | mov r0,sp | |
99 | return | |
100 | _IN: | |
101 | bne 1f | |
102 | mov (lc)+,r3 | |
103 | 1: | |
104 | mov (sp)+,r2 | |
105 | sub (lc)+,r2 | |
106 | bmi 8f | |
107 | cmp r2,(lc)+ | |
108 | bgt 9f | |
109 | mov r2,r1 | |
110 | bic $!7,r1 | |
111 | ash $-3,r2 | |
112 | add sp,r2 | |
113 | inc r3 | |
114 | bic $1,r3 | |
115 | add r3,sp | |
116 | mov $1,r0 | |
117 | ash r1,r0 | |
118 | bitb r0,(r2) | |
119 | jne true | |
120 | jmp false | |
121 | 8: | |
122 | tst (lc)+ | |
123 | 9: | |
124 | inc r3 | |
125 | bic $1,r3 | |
126 | add r3,sp | |
127 | jmp false | |
128 | _INCT: | |
129 | mov (sp)+,r2 | |
130 | mov (sp)+,r3 | |
131 | 1: | |
132 | cmp r2,(sp)+ | |
133 | blt 2f | |
134 | cmp r2,(sp)+ | |
135 | bgt 3f | |
136 | dec r3 | |
137 | add r3,r3 | |
138 | add r3,r3 | |
139 | add r3,sp | |
140 | mov $1,-(sp) | |
141 | return | |
142 | 2: | |
143 | tst (sp)+ | |
144 | 3: | |
145 | sob r3,1b | |
146 | clr -(sp) | |
147 | return |