*** empty log message ***
This commit is contained in:
		
							parent
							
								
									1b972eff60
								
							
						
					
					
						commit
						68e92c8319
					
				
					 6 changed files with 239 additions and 0 deletions
				
			
		
							
								
								
									
										9
									
								
								mach/i80/as/mach0.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								mach/i80/as/mach0.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,9 @@
 | 
				
			||||||
 | 
					#define DUK
 | 
				
			||||||
 | 
					#define RCSID0 "$Header$"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Intel 8080 options
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	LISTING
 | 
				
			||||||
 | 
					#define RELOCATION
 | 
				
			||||||
 | 
					#define NOLD
 | 
				
			||||||
							
								
								
									
										19
									
								
								mach/i80/as/mach1.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/i80/as/mach1.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					#define RCSID1 "$Header$"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Intel 8080 register names
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	B	0
 | 
				
			||||||
 | 
					#define	C	1
 | 
				
			||||||
 | 
					#define	D	2
 | 
				
			||||||
 | 
					#define	E	3
 | 
				
			||||||
 | 
					#define	H	4
 | 
				
			||||||
 | 
					#define	L	5
 | 
				
			||||||
 | 
					#define	M	6
 | 
				
			||||||
 | 
					#define	A	7
 | 
				
			||||||
 | 
					#define	SP	6
 | 
				
			||||||
 | 
					#define	PSW	6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	low3(z)		((z) & 07)
 | 
				
			||||||
 | 
					#define	fit3(z)		(low3(z) == (z))
 | 
				
			||||||
							
								
								
									
										19
									
								
								mach/i80/as/mach2.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								mach/i80/as/mach2.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,19 @@
 | 
				
			||||||
 | 
					#define RCSID2 "$Header$"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Intel 8080 tokens
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					%token <y_word> REG
 | 
				
			||||||
 | 
					%token <y_word> NOOPOP
 | 
				
			||||||
 | 
					%token <y_word> DSTOP
 | 
				
			||||||
 | 
					%token <y_word> SRCOP
 | 
				
			||||||
 | 
					%token <y_word> D8OP
 | 
				
			||||||
 | 
					%token <y_word> D16OP
 | 
				
			||||||
 | 
					%token <y_word> R16OP
 | 
				
			||||||
 | 
					%token <y_word> MOV
 | 
				
			||||||
 | 
					%token <y_word> MVI
 | 
				
			||||||
 | 
					%token <y_word> LXI
 | 
				
			||||||
 | 
					%token <y_word> RST
 | 
				
			||||||
 | 
					%token <y_word> STLDAX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					%type <y_word> r16 r8
 | 
				
			||||||
							
								
								
									
										95
									
								
								mach/i80/as/mach3.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								mach/i80/as/mach3.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,95 @@
 | 
				
			||||||
 | 
					#define RCSID3 "$Header$"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Intel 8080 keywords
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					0,	REG,		B,		"b",
 | 
				
			||||||
 | 
					0,	REG,		C,		"c",
 | 
				
			||||||
 | 
					0,	REG,		D,		"d",
 | 
				
			||||||
 | 
					0,	REG,		E,		"e",
 | 
				
			||||||
 | 
					0,	REG,		H,		"h",
 | 
				
			||||||
 | 
					0,	REG,		L,		"l",
 | 
				
			||||||
 | 
					0,	REG,		M,		"m",
 | 
				
			||||||
 | 
					0,	REG,		A,		"a",
 | 
				
			||||||
 | 
					0,	REG,		SP,		"sp",
 | 
				
			||||||
 | 
					0,	REG,		PSW,		"psw",
 | 
				
			||||||
 | 
					0,	D16OP,		0315,		"call",
 | 
				
			||||||
 | 
					0,	D16OP,		0334,		"cc",
 | 
				
			||||||
 | 
					0,	D16OP,		0324,		"cnc",
 | 
				
			||||||
 | 
					0,	D16OP,		0314,		"cz",
 | 
				
			||||||
 | 
					0,	D16OP,		0304,		"cnz",
 | 
				
			||||||
 | 
					0,	D16OP,		0364,		"cp",
 | 
				
			||||||
 | 
					0,	D16OP,		0374,		"cm",
 | 
				
			||||||
 | 
					0,	D16OP,		0354,		"cpe",
 | 
				
			||||||
 | 
					0,	D16OP,		0344,		"cpo",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0311,		"ret",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0330,		"rc",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0320,		"rnc",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0310,		"rz",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0300,		"rnz",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0360,		"rp",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0370,		"rm",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0350,		"rpe",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0340,		"rpo",
 | 
				
			||||||
 | 
					0,	RST,		0307,		"rst",
 | 
				
			||||||
 | 
					0,	D8OP,		0333,		"in",
 | 
				
			||||||
 | 
					0,	D8OP,		0323,		"out",
 | 
				
			||||||
 | 
					0,	LXI,		0001,		"lxi",
 | 
				
			||||||
 | 
					0,	R16OP,		0305,		"push",
 | 
				
			||||||
 | 
					0,	R16OP,		0301,		"pop",
 | 
				
			||||||
 | 
					0,	D16OP,		0062,		"sta",
 | 
				
			||||||
 | 
					0,	D16OP,		0072,		"lda",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0353,		"xchg",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0343,		"xthl",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0371,		"sphl",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0351,		"pchl",
 | 
				
			||||||
 | 
					0,	R16OP,		0011,		"dad",
 | 
				
			||||||
 | 
					0,	STLDAX,		0002,		"stax",
 | 
				
			||||||
 | 
					0,	STLDAX,		0012,		"ldax",
 | 
				
			||||||
 | 
					0,	R16OP,		0003,		"inx",
 | 
				
			||||||
 | 
					0,	MOV,		0100,		"mov",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0166,		"hlt",
 | 
				
			||||||
 | 
					0,	MVI,		0006,		"mvi",
 | 
				
			||||||
 | 
					0,	DSTOP,		0004,		"inr",
 | 
				
			||||||
 | 
					0,	DSTOP,		0005,		"dcr",
 | 
				
			||||||
 | 
					0,	SRCOP,		0200,		"add",
 | 
				
			||||||
 | 
					0,	SRCOP,		0210,		"adc",
 | 
				
			||||||
 | 
					0,	SRCOP,		0220,		"sub",
 | 
				
			||||||
 | 
					0,	SRCOP,		0230,		"sbb",
 | 
				
			||||||
 | 
					0,	SRCOP,		0240,		"ana",
 | 
				
			||||||
 | 
					0,	SRCOP,		0250,		"xra",
 | 
				
			||||||
 | 
					0,	SRCOP,		0260,		"ora",
 | 
				
			||||||
 | 
					0,	SRCOP,		0270,		"cmp",
 | 
				
			||||||
 | 
					0,	D8OP,		0306,		"adi",
 | 
				
			||||||
 | 
					0,	D8OP,		0316,		"aci",
 | 
				
			||||||
 | 
					0,	D8OP,		0326,		"sui",
 | 
				
			||||||
 | 
					0,	D8OP,		0336,		"sbi",
 | 
				
			||||||
 | 
					0,	D8OP,		0346,		"ani",
 | 
				
			||||||
 | 
					0,	D8OP,		0356,		"xri",
 | 
				
			||||||
 | 
					0,	D8OP,		0366,		"ori",
 | 
				
			||||||
 | 
					0,	D8OP,		0376,		"cpi",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0007,		"rlc",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0017,		"rrc",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0027,		"ral",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0037,		"rar",
 | 
				
			||||||
 | 
					0,	D16OP,		0303,		"jmp",
 | 
				
			||||||
 | 
					0,	D16OP,		0332,		"jc",
 | 
				
			||||||
 | 
					0,	D16OP,		0322,		"jnc",
 | 
				
			||||||
 | 
					0,	D16OP,		0312,		"jz",
 | 
				
			||||||
 | 
					0,	D16OP,		0302,		"jnz",
 | 
				
			||||||
 | 
					0,	D16OP,		0362,		"jp",
 | 
				
			||||||
 | 
					0,	D16OP,		0372,		"jm",
 | 
				
			||||||
 | 
					0,	D16OP,		0352,		"jpe",
 | 
				
			||||||
 | 
					0,	D16OP,		0342,		"jpo",
 | 
				
			||||||
 | 
					0,	R16OP,		0013,		"dcx",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0057,		"cma",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0067,		"stc",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0077,		"cmc",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0047,		"daa",
 | 
				
			||||||
 | 
					0,	D16OP,		0042,		"shld",
 | 
				
			||||||
 | 
					0,	D16OP,		0052,		"lhld",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0373,		"ei",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0363,		"di",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0000,		"nop",
 | 
				
			||||||
 | 
					0,	NOOPOP,		0040,		"rim",		/* 8085 */
 | 
				
			||||||
 | 
					0,	NOOPOP,		0060,		"sim",		/* 8085 */
 | 
				
			||||||
							
								
								
									
										97
									
								
								mach/i80/as/mach4.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								mach/i80/as/mach4.c
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,97 @@
 | 
				
			||||||
 | 
					#define RCSID4 "$Header$"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * (c) copyright 1983 by the Vrije Universiteit, Amsterdam, The Netherlands.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *          This product is part of the Amsterdam Compiler Kit.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, sell, duplicate or disclose this software must be
 | 
				
			||||||
 | 
					 * obtained in writing. Requests for such permissions may be sent to
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *      Dr. Andrew S. Tanenbaum
 | 
				
			||||||
 | 
					 *      Wiskundig Seminarium
 | 
				
			||||||
 | 
					 *      Vrije Universiteit
 | 
				
			||||||
 | 
					 *      Postbox 7161
 | 
				
			||||||
 | 
					 *      1007 MC Amsterdam
 | 
				
			||||||
 | 
					 *      The Netherlands
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Intel 8080 parsing rules
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					operation
 | 
				
			||||||
 | 
						:	NOOPOP
 | 
				
			||||||
 | 
								{	emit1($1);}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							D8OP expr
 | 
				
			||||||
 | 
								{	emit1($1);
 | 
				
			||||||
 | 
					#ifdef RELOCATION
 | 
				
			||||||
 | 
									newrelo($2.typ, RELO1);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
									emit1($2.val);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							D16OP expr
 | 
				
			||||||
 | 
								{	emit1($1);
 | 
				
			||||||
 | 
					#ifdef RELOCATION
 | 
				
			||||||
 | 
									newrelo($2.typ, RELO2);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
									emit2($2.val);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							R16OP r16
 | 
				
			||||||
 | 
								{	emit1($1 | ($2 << 3));}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							MOV r8 ',' r8
 | 
				
			||||||
 | 
								{	if ($2 == M && $4 == M)
 | 
				
			||||||
 | 
										serror("register error");
 | 
				
			||||||
 | 
									emit1($1 | ($2 << 3) | $4);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							MVI r8 ',' expr
 | 
				
			||||||
 | 
								{	emit1($1 | ($2 << 3));
 | 
				
			||||||
 | 
					#ifdef RELOCATION
 | 
				
			||||||
 | 
									newrelo($4.typ, RELO1);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
									emit1($4.val);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							LXI r16 ',' expr
 | 
				
			||||||
 | 
								{	emit1($1 | ($2 << 3));
 | 
				
			||||||
 | 
					#ifdef RELOCATION
 | 
				
			||||||
 | 
									newrelo($4.typ, RELO2);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
									emit2($4.val);
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							SRCOP r8
 | 
				
			||||||
 | 
								{	emit1($1 | $2);}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							DSTOP r8
 | 
				
			||||||
 | 
								{	emit1($1 | ($2 << 3));}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							RST absexp
 | 
				
			||||||
 | 
								{	fit(fit3($2));
 | 
				
			||||||
 | 
									emit1($1 | (low3($2) << 3));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						|
 | 
				
			||||||
 | 
							STLDAX r16
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									if ($2 != B && $2 != D)
 | 
				
			||||||
 | 
										serror("register error");
 | 
				
			||||||
 | 
									emit1($1 | (($2 & 02) << 3));
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						;
 | 
				
			||||||
 | 
					r16	:	REG
 | 
				
			||||||
 | 
								{	if ($1 & ~06)
 | 
				
			||||||
 | 
										serror("register error");
 | 
				
			||||||
 | 
									$$ = $1 & 06;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						;
 | 
				
			||||||
 | 
					r8	:	REG
 | 
				
			||||||
 | 
								{	if (($1 & ~07) != 0)
 | 
				
			||||||
 | 
										serror("register error");
 | 
				
			||||||
 | 
									$$ = $1 & 07;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
						;
 | 
				
			||||||
							
								
								
									
										0
									
								
								mach/i80/as/mach5.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								mach/i80/as/mach5.c
									
										
									
									
									
										Normal file
									
								
							
		Loading…
	
	Add table
		
		Reference in a new issue