*** 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