74 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			74 lines
		
	
	
	
		
			1.1 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								#ifndef __ROMIMAGE_MACRO_H
							 | 
						||
| 
								 | 
							
								#define __ROMIMAGE_MACRO_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* The LIST command is used to include comments in the script */
							 | 
						||
| 
								 | 
							
								.macro	LIST comment
							 | 
						||
| 
								 | 
							
								.endm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* The ED command is used to write a 32-bit word */
							 | 
						||
| 
								 | 
							
								.macro  ED, addr, data
							 | 
						||
| 
								 | 
							
									mov.l 1f, r1
							 | 
						||
| 
								 | 
							
									mov.l 2f, r0
							 | 
						||
| 
								 | 
							
									mov.l r0, @r1
							 | 
						||
| 
								 | 
							
									bra 3f
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									.align 2
							 | 
						||
| 
								 | 
							
								1 :	.long \addr
							 | 
						||
| 
								 | 
							
								2 :	.long \data
							 | 
						||
| 
								 | 
							
								3 :
							 | 
						||
| 
								 | 
							
								.endm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* The EW command is used to write a 16-bit word */
							 | 
						||
| 
								 | 
							
								.macro  EW, addr, data
							 | 
						||
| 
								 | 
							
									mov.l 1f, r1
							 | 
						||
| 
								 | 
							
									mov.l 2f, r0
							 | 
						||
| 
								 | 
							
									mov.w r0, @r1
							 | 
						||
| 
								 | 
							
									bra 3f
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									.align 2
							 | 
						||
| 
								 | 
							
								1 :	.long \addr
							 | 
						||
| 
								 | 
							
								2 :	.long \data
							 | 
						||
| 
								 | 
							
								3 :
							 | 
						||
| 
								 | 
							
								.endm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* The EB command is used to write an 8-bit word */
							 | 
						||
| 
								 | 
							
								.macro  EB, addr, data
							 | 
						||
| 
								 | 
							
									mov.l 1f, r1
							 | 
						||
| 
								 | 
							
									mov.l 2f, r0
							 | 
						||
| 
								 | 
							
									mov.b r0, @r1
							 | 
						||
| 
								 | 
							
									bra 3f
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									.align 2
							 | 
						||
| 
								 | 
							
								1 :	.long \addr
							 | 
						||
| 
								 | 
							
								2 :	.long \data
							 | 
						||
| 
								 | 
							
								3 :
							 | 
						||
| 
								 | 
							
								.endm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* The WAIT command is used to delay the execution */
							 | 
						||
| 
								 | 
							
								.macro  WAIT, time
							 | 
						||
| 
								 | 
							
									mov.l  2f, r3
							 | 
						||
| 
								 | 
							
								1 :
							 | 
						||
| 
								 | 
							
									nop
							 | 
						||
| 
								 | 
							
									tst     r3, r3
							 | 
						||
| 
								 | 
							
									bf/s    1b
							 | 
						||
| 
								 | 
							
									dt      r3
							 | 
						||
| 
								 | 
							
									bra	3f
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									.align 2
							 | 
						||
| 
								 | 
							
								2 :	.long \time * 100
							 | 
						||
| 
								 | 
							
								3 :
							 | 
						||
| 
								 | 
							
								.endm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								/* The DD command is used to read a 32-bit word */
							 | 
						||
| 
								 | 
							
								.macro  DD, addr, addr2, nr
							 | 
						||
| 
								 | 
							
									mov.l 1f, r1
							 | 
						||
| 
								 | 
							
									mov.l @r1, r0
							 | 
						||
| 
								 | 
							
									bra 2f
							 | 
						||
| 
								 | 
							
									 nop
							 | 
						||
| 
								 | 
							
									.align 2
							 | 
						||
| 
								 | 
							
								1 :	.long \addr
							 | 
						||
| 
								 | 
							
								2 :
							 | 
						||
| 
								 | 
							
								.endm
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif /* __ROMIMAGE_MACRO_H */
							 |