]>
Commit | Line | Data |
---|---|---|
c25f6a44 L |
1 | UNIVERSAL M80UNV |
2 | ||
3 | .DIRECTIVE .NOBIN | |
4 | ||
5 | ;ACCUMULATOR ASSIGNMENTS | |
6 | ||
7 | F=0 | |
8 | T1=1 | |
9 | T2=2 | |
10 | T3=3 | |
11 | T4=4 | |
12 | P1=5 | |
13 | OP=6 | |
14 | P2=OP | |
15 | I=7 | |
16 | X=10 | |
17 | P3=X ;USED IN MAC80 | |
18 | TOK=11 | |
19 | ;TOK IS NOW A DOUBLE WORD | |
20 | S=13 | |
21 | LBTP=14 | |
22 | E=15 | |
23 | BC=16 | |
24 | P=17 | |
25 | ||
26 | ;JOB DATA AREA VERSION NUMBER | |
27 | ||
28 | M80WHO==0 | |
29 | M80VER==7 | |
30 | M80MIN==2 | |
31 | M80EDT==77 | |
32 | ||
33 | \f;FLAGS (R.H.) | |
34 | ||
35 | FR.UND==1 ;SYMBOL UNDEFINED | |
36 | FR.MQT==2 ;IN QUOTE IN MACRO | |
37 | FR.PS1==4 ;PASS 1 | |
38 | FR.LOP==10 ;OP CODE LISTED (AS OPPOSED TO A COMMENT LINE) | |
39 | FR.LIN==20 ;LINE # PRINTED AT START OF LINE | |
40 | FR.LST==40 ;LISTING REQUESTED | |
41 | FR.END==100 ;END SEEN | |
42 | FR.NRF==200 ;DO NOT REFERENCE SYMBOL | |
43 | FR.HEX==400 ;HEXADECIMAL LISTING REQUESTED | |
44 | FR.REL==1000 ;LAST ADDRESS WAS RELOCATABLE | |
45 | FR.EXT==2000 ;LAST ADDRESS WAS EXTERNAL (IMPLIES FR.REL) | |
46 | FR.SNK==4000 ;"INVISIBLE" INPUT MODE | |
47 | FR.ORG==10000 ;ORG SEEN, NO RELOCATION | |
48 | FR.OFF==20000 ;ASSEMBLY CONDITIONALLY OFF | |
49 | FR.LIB==40000 ;INSIDE MACLIB | |
50 | FR.BOL==100000 ;FLAG BEGIN OF LISTING LINE | |
51 | FR.EVL==200000 ;FLAG EVALUATE SYMBOL (FOR SRCHOP) | |
52 | FR.MCM==400000 ;IN COMMENT IN MACRO DEFINITION | |
53 | ||
54 | ;FLAGS (L.H.) | |
55 | ||
56 | FL.CCL==1 | |
57 | FL.LNR==2 ;LIST NON-REF SYMBOLS AT END OF PROGRAM | |
58 | FL.SUP==4 ;SUPPRESS MACRO EXPANSION | |
59 | FL.HED==10 ;"UNREFERENED LABELS" WAS TYPED | |
60 | ||
61 | ;SYMBOL TABLE FLAGS | |
62 | ||
63 | S.REL==1 ;RELOCATABLE | |
64 | S.INT==2 ;INTERNAL | |
65 | S.EXT==4 ;EXTERNAL | |
66 | S.REF==10 ;REFERENCED | |
67 | S.UNDF==20 ;UNDEFINED (FOR CREF OF UNDEF SYMBOLS) | |
68 | S.PRT==40 ;SYMBOL WAS PRINTED IN SYMBOL TABLE | |
69 | S.MAC==100 ;SYMBOL IS A MACRO NAME | |
70 | ||
71 | ;OPCODE TYPE BITS | |
72 | ||
73 | T.1BYT==1 ;1 BYTE USED (JUST OPCODE, IMPLIES T.NREG) | |
74 | T.2BYT==2 ;2 BYTES USED | |
75 | T.3BYT==4 ;3 BYTES USED | |
76 | T.MOV==10 ;"MOV" OPCODE | |
77 | T.NREG==20 ;NO REGISTERS USED | |
78 | T.POP==40 ;PSEUDO OP | |
79 | T.DB==100 ;DEFINE BYTE | |
80 | T.DW==200 ;DEFINE WORD | |
81 | T.DZ==400 ;DEFINE BYTE WITH TRAILING ZERO | |
82 | T.EQU==1000 ;EQU PSEUDO OP | |
83 | ||
84 | OPDEF ERROR [1B8] | |
85 | OPDEF WARN [2B8] | |
86 | \fDEFINE EFLAGS,< | |
87 | ||
88 | W W.REG,Register overflow | |
89 | W W.IF1,ENDIF with no IF | |
90 | W W.IF2,EOF during IF | |
91 | W F.UNDF,Undefined symbol | |
92 | W F.ILOP,Illegal opcode | |
93 | W F.MULT,Multiply defined symbol | |
94 | W F.EXT,External in address computation | |
95 | W W.MT,No address field | |
96 | W W.TOK,Token overflow | |
97 | W F.FULL,Symbol table full | |
98 | W F.NCOR,No more core | |
99 | W F.PARN,Unmatched parenthesis | |
100 | W F.ILEX,Illegal expression | |
101 | W W.EXSA,External start address | |
102 | W W.ILO1,Illegal opcode format | |
103 | W F.TMMA,Too many macro arguments/Locals | |
104 | W W.EXM,Not inside macro | |
105 | W F.FREP,REPT overflowed REPBUF | |
106 | > | |
107 | ||
108 | DEFINE W(A,B),< | |
109 | A==FX | |
110 | FX==FX+1 | |
111 | > | |
112 | ||
113 | FX==1 | |
114 | ||
115 | SALL | |
116 | EFLAGS | |
117 | ||
118 | ||
119 | SRC==1 ;I/O CHANNELS | |
120 | LST==2 | |
121 | OBJ==3 | |
122 | SYM==4 | |
123 | LIB==5 | |
124 | TMPC==6 | |
125 | ||
126 | COLON==":" ;ASCII EQUIVALENTS | |
127 | DOLLAR=="$" | |
128 | COMMA=="," | |
129 | SEMICO==";" | |
130 | MINUS=="-" | |
131 | PERIOD=="." | |
132 | CR==15 | |
133 | LF==12 | |
134 | FF==14 | |
135 | TAB==11 | |
136 | SPACE==40 | |
137 | QUOTE==42 | |
138 | ||
139 | PAGEMX==^D60 ;(DEFAULT) LINES PER PAGE | |
140 | MAXSYM==^D70 ;CHARACTERS PER LINE IN SYMBOL FILE | |
141 | SYMSIZ==^D101 ;SIZE OF DIRECT ACCESS SYMBOL TABLE | |
142 | ;THERE IS NO RESTRICTION ON THE SIZE OF THE TOTAL SYMBOL TABLE | |
143 | FTREL==0 ;INCLUDE MOSTEK FORMAT RELOCATION RECORDS IN HEX FILE | |
144 | ;SEE DDJ V2 N3 MARCH 1977 | |
145 | FTSTAT==0 ;TYPE UNREF SYMBOLS, STATISTICS AT END OF SYMBOL TABLE | |
146 | FTCREF==1 ;LIST SYMBOL TABLE & CREF LIST AT END OF PROGRAM | |
147 | \f;X MACRO MNEMONIC,OPCODE,FLAGS,LSH FOR REGISTER | |
148 | ||
149 | DEFINE OPTYPE, < | |
150 | X ACI,316,T.NREG!T.2BYT,0 | |
151 | X ADC,210,0,0 | |
152 | X ADD,200,0,0 | |
153 | X ADI,306,T.NREG!T.2BYT,0 | |
154 | X ANA,240,0,0 | |
155 | X ANI,346,T.NREG!T.2BYT,0 | |
156 | X CALL,315,T.NREG!T.3BYT,0 | |
157 | X CC,334,T.NREG!T.3BYT,0 | |
158 | X CM,374,T.NREG!T.3BYT,0 | |
159 | X CMA,57,T.1BYT,0 | |
160 | X CMC,77,T.1BYT,0 | |
161 | X CMP,270,0,0 | |
162 | X CNC,324,T.NREG!T.3BYT,0 | |
163 | X CNZ,304,T.NREG!T.3BYT,0 | |
164 | X CP,364,T.NREG!T.3BYT,0 | |
165 | X CPE,354,T.NREG!T.3BYT,0 | |
166 | X CPI,376,T.NREG!T.2BYT,0 | |
167 | X CPO,344,T.NREG!T.3BYT,0 | |
168 | X CZ,314,T.NREG!T.3BYT,0 | |
169 | X DAA,47,T.1BYT,0 | |
170 | X DAD,11,0,4 | |
171 | X DB,0,T.POP!T.DB,0 | |
172 | X DCR,5,0,3 | |
173 | X DCX,13,0,4 | |
174 | X DI,363,T.1BYT,0 | |
175 | X DS,0,T.POP,0 | |
176 | X DW,0,T.POP!T.DW,0 | |
177 | X DZ,0,T.POP!T.DZ,0 | |
178 | X EI,373,T.1BYT,0 | |
179 | X ELSE,0,T.POP,0 | |
180 | X END,0,T.POP,0 | |
181 | X ENDIF,0,T.POP,0 | |
182 | X EXITM,0,T.POP,0 | |
183 | IFN FTREL,< | |
184 | X EXT,0,T.POP,0 | |
185 | > | |
186 | X HLT,166,T.1BYT,0 | |
187 | X IF,0,T.POP,0 | |
188 | X IFE,0,T.POP,0 | |
189 | X IFN,0,T.POP,0 | |
190 | X IN,333,T.NREG!T.2BYT,0 | |
191 | X INR,4,0,3 | |
192 | IFN FTREL,< | |
193 | X INT,0,T.POP,0 | |
194 | > | |
195 | X INX,3,0,4 | |
196 | X JC,332,T.NREG!T.3BYT,0 | |
197 | X JM,372,T.NREG!T.3BYT,0 | |
198 | X JMP,303,T.NREG!T.3BYT,0 | |
199 | X JNC,322,T.NREG!T.3BYT,0 | |
200 | X JNZ,302,T.NREG!T.3BYT,0 | |
201 | X JP,362,T.NREG!T.3BYT,0 | |
202 | X JPE,352,T.NREG!T.3BYT,0 | |
203 | X JPO,342,T.NREG!T.3BYT,0 | |
204 | X JZ,312,T.NREG!T.3BYT,0 | |
205 | \f X LDA,72,T.NREG!T.NREG!T.3BYT,0 | |
206 | X LDAX,12,0,4 | |
207 | X LHLD,52,T.NREG!T.3BYT,0 | |
208 | X LXI,1,T.3BYT,4 | |
209 | X MACLIB,0,T.POP,0 | |
210 | X MOV,100,T.MOV,3 | |
211 | X MVI,6,T.2BYT,3 | |
212 | X NOP,0,T.1BYT,0 | |
213 | X OPT,0,T.POP,0 | |
214 | X ORA,260,0,0 | |
215 | X ORG,0,T.POP,0 | |
216 | X ORI,366,T.NREG!T.2BYT,0 | |
217 | X OUT,323,T.NREG!T.2BYT,0 | |
218 | X PAGE,0,T.POP,0 | |
219 | X PCHL,351,T.1BYT,0 | |
220 | X PHASE,0,T.POP,0 | |
221 | X POP,301,0,4 | |
222 | X PRINTX,0,T.POP,0 | |
223 | X PUSH,305,0,4 | |
224 | X RAL,27,T.1BYT,0 | |
225 | X RAR,37,T.1BYT,0 | |
226 | X RC,330,T.1BYT,0 | |
227 | X REPT,0,T.POP,0 | |
228 | X RET,311,T.1BYT,0 | |
229 | X RIM,40,T.1BYT,0 | |
230 | X RLC,7,T.1BYT,0 | |
231 | X RM,370,T.1BYT,0 | |
232 | X RNC,320,T.1BYT,0 | |
233 | X RNZ,300,T.1BYT,0 | |
234 | X RP,360,T.1BYT,0 | |
235 | X RPE,350,T.1BYT,0 | |
236 | X RPO,340,T.1BYT,0 | |
237 | X RRC,17,T.1BYT,0 | |
238 | X RST,307,0,3 | |
239 | X RZ,310,T.1BYT,0 | |
240 | X SBB,230,0,0 | |
241 | X SBI,336,T.NREG!T.2BYT,0 | |
242 | X SHLD,42,T.NREG!T.3BYT,0 | |
243 | X SIM,60,T.1BYT,0 | |
244 | X SPHL,371,T.1BYT,0 | |
245 | X STA,62,T.NREG!T.3BYT,0 | |
246 | X STAX,2,0,4 | |
247 | X STC,67,T.1BYT,0 | |
248 | X SUB,220,0,0 | |
249 | X SUBTTL,0,T.POP | |
250 | X SUI,326,T.NREG!T.2BYT,0 | |
251 | X TITLE,0,T.POP,0 | |
252 | X XCHG,353,T.1BYT,0 | |
253 | X XRA,250,0,0 | |
254 | X XRI,356,T.NREG!T.2BYT,0 | |
255 | X XTHL,343,T.1BYT,0 | |
256 | > | |
257 | ||
258 | END | |
259 | \0\0\0\0 |