]> cloudbase.mooo.com Git - kermit-80.git/blame - m80unv.mac
Add AVR-CP/M system (cpxac.asm) and a Makefile
[kermit-80.git] / m80unv.mac
CommitLineData
c25f6a44
L
1 UNIVERSAL M80UNV
2
3 .DIRECTIVE .NOBIN
4
5;ACCUMULATOR ASSIGNMENTS
6
7F=0
8T1=1
9T2=2
10T3=3
11T4=4
12P1=5
13OP=6
14P2=OP
15I=7
16X=10
17P3=X ;USED IN MAC80
18TOK=11
19 ;TOK IS NOW A DOUBLE WORD
20S=13
21LBTP=14
22E=15
23BC=16
24P=17
25
26;JOB DATA AREA VERSION NUMBER
27
28M80WHO==0
29M80VER==7
30M80MIN==2
31M80EDT==77
32
33\f;FLAGS (R.H.)
34
35FR.UND==1 ;SYMBOL UNDEFINED
36FR.MQT==2 ;IN QUOTE IN MACRO
37FR.PS1==4 ;PASS 1
38FR.LOP==10 ;OP CODE LISTED (AS OPPOSED TO A COMMENT LINE)
39FR.LIN==20 ;LINE # PRINTED AT START OF LINE
40FR.LST==40 ;LISTING REQUESTED
41FR.END==100 ;END SEEN
42FR.NRF==200 ;DO NOT REFERENCE SYMBOL
43FR.HEX==400 ;HEXADECIMAL LISTING REQUESTED
44FR.REL==1000 ;LAST ADDRESS WAS RELOCATABLE
45FR.EXT==2000 ;LAST ADDRESS WAS EXTERNAL (IMPLIES FR.REL)
46FR.SNK==4000 ;"INVISIBLE" INPUT MODE
47FR.ORG==10000 ;ORG SEEN, NO RELOCATION
48FR.OFF==20000 ;ASSEMBLY CONDITIONALLY OFF
49FR.LIB==40000 ;INSIDE MACLIB
50FR.BOL==100000 ;FLAG BEGIN OF LISTING LINE
51FR.EVL==200000 ;FLAG EVALUATE SYMBOL (FOR SRCHOP)
52FR.MCM==400000 ;IN COMMENT IN MACRO DEFINITION
53
54;FLAGS (L.H.)
55
56FL.CCL==1
57FL.LNR==2 ;LIST NON-REF SYMBOLS AT END OF PROGRAM
58FL.SUP==4 ;SUPPRESS MACRO EXPANSION
59FL.HED==10 ;"UNREFERENED LABELS" WAS TYPED
60
61;SYMBOL TABLE FLAGS
62
63S.REL==1 ;RELOCATABLE
64S.INT==2 ;INTERNAL
65S.EXT==4 ;EXTERNAL
66S.REF==10 ;REFERENCED
67S.UNDF==20 ;UNDEFINED (FOR CREF OF UNDEF SYMBOLS)
68S.PRT==40 ;SYMBOL WAS PRINTED IN SYMBOL TABLE
69S.MAC==100 ;SYMBOL IS A MACRO NAME
70
71;OPCODE TYPE BITS
72
73T.1BYT==1 ;1 BYTE USED (JUST OPCODE, IMPLIES T.NREG)
74T.2BYT==2 ;2 BYTES USED
75T.3BYT==4 ;3 BYTES USED
76T.MOV==10 ;"MOV" OPCODE
77T.NREG==20 ;NO REGISTERS USED
78T.POP==40 ;PSEUDO OP
79T.DB==100 ;DEFINE BYTE
80T.DW==200 ;DEFINE WORD
81T.DZ==400 ;DEFINE BYTE WITH TRAILING ZERO
82T.EQU==1000 ;EQU PSEUDO OP
83
84OPDEF ERROR [1B8]
85OPDEF 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
119SRC==1 ;I/O CHANNELS
120LST==2
121OBJ==3
122SYM==4
123LIB==5
124TMPC==6
125
126COLON==":" ;ASCII EQUIVALENTS
127DOLLAR=="$"
128COMMA==","
129SEMICO==";"
130MINUS=="-"
131PERIOD=="."
132CR==15
133LF==12
134FF==14
135TAB==11
136SPACE==40
137QUOTE==42
138
139PAGEMX==^D60 ;(DEFAULT) LINES PER PAGE
140MAXSYM==^D70 ;CHARACTERS PER LINE IN SYMBOL FILE
141SYMSIZ==^D101 ;SIZE OF DIRECT ACCESS SYMBOL TABLE
142 ;THERE IS NO RESTRICTION ON THE SIZE OF THE TOTAL SYMBOL TABLE
143FTREL==0 ;INCLUDE MOSTEK FORMAT RELOCATION RECORDS IN HEX FILE
144 ;SEE DDJ V2 N3 MARCH 1977
145FTSTAT==0 ;TYPE UNREF SYMBOLS, STATISTICS AT END OF SYMBOL TABLE
146FTCREF==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
183IFN 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
192IFN 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