⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 i2c.lst

📁 用在EM78860单片机制作的摩斯密码机源文件
💻 LST
📖 第 1 页 / 共 5 页
字号:
ias78.exe v1.1.0 - The macro assembler for the EM78 series chipset
(C) Copyright 2004 Infoking
Main file : i2c.asm

File list:
   1 ----  E:\work\morse\my-morse\em78p860\i2c.asm
   2 ----  E:\work\morse\my-morse\em78p860\sysdef.inc


The format of a listing line is:
  XXXXXXm FFFF [TT]  11 22 33 44  [DD]  Source code
Where:
  XXXXXX   is the PC
  m        is the mode ('r' or empty)
  FFFF     is the file name
  [TT]     is the CPU clock
  11 ..    are code or data bytes
  [DD]     depth of IFDEF and ENDIF (The depth or empty)


------     1 [--]               [00]  .autoimport
------     1 [--]               [00]  .include "sysdef.inc"
------     2 [--]               [00]  	r0			EQU 	0x00		;Indirect Addressing Register
------     2 [--]               [00]  	DirR		EQU 	0x00		;Indirect Addressing Register
------     2 [--]               [00]  	r2			EQU		0x02		;Program Counter Register
------     2 [--]               [00]  	r3			EQU 	0x03		;Status Register
------     2 [--]               [00]  	sr			EQU 	0x03		;Status Register
------     2 [--]               [00]  	r4		 	EQU 	0x04		;RAM Select Register
------     2 [--]               [00]  	SelRamR 	EQU 	0x04		;RAM Select Register
------     2 [--]               [00]  	cflag		EQU 	0			;bit number of the carry flag
------     2 [--]               [00]  	zflag   	EQU 	2			;bit number of the zero flag
------     2 [--]               [00]  	eax			EQU 	0x10
------     2 [--]               [00]  	ax 			EQU 	0x10
------     2 [--]               [00]  	al 			EQU 	0x10
------     2 [--]               [00]  	ecx			EQU 	0x14
------     2 [--]               [00]  	cx 			EQU 	0x14
------     2 [--]               [00]  	cl 			EQU 	0x14
------     2 [--]               [00]  	pr0 		EQU 	0x18
------     2 [--]               [00]  	pr1 		EQU 	0x1b
------     2 [--]               [00]  
------     2 [--]               [00]  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
------     2 [--]               [00]  ; Macro spec
------     2 [--]               [00]  ; LDA _symbol , 0, 0
------     2 [--]               [00]  ;          |    |  |
------     2 [--]               [00]  ;          |    |  ------access method(0-ram; 1-rom; 2-io; 3-ind)
------     2 [--]               [00]  ;          |    --------byte index
------     2 [--]               [00]  ;          -----------------address
------     2 [--]               [00]  ;
------     2 [--]               [00]  ; LDA _symbol , 0, 0
------     2 [--]               [00]  ;          |    |  |
------     2 [--]               [00]  ;          |    |  ------access method(0-ram; 1-rom; 2-io; 3-ind)
------     2 [--]               [00]  ;          |    --------byte index
------     2 [--]               [00]  ;          -----------------address
------     2 [--]               [00]  ;
------     2 [--]               [00]  ; example:
------     2 [--]               [00]  ; LDA _g_romttest1,0,1: load the first byte from _g_romttest1 to A with rom access method.
------     2 [--]               [00]  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
------     2 [--]               [00]  .MACRO	LDA symbol, byteidx, access
------     2 [--]               [00]  	; RAM
------     2 [--]               [00]  	.IF access = 0
------     2 [--]               [00]  		mov a, symbol + byteidx
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  
------     2 [--]               [00]  	; ROM
------     2 [--]               [00]  	.IF access = 1
------     2 [--]               [00]  		mov a, @.B0.(symbol + byteidx)
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		mov a, @.B1.(symbol + byteidx)
------     2 [--]               [00]  		mov pr0+1, a
------     2 [--]               [00]  		call ReadROM
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IO
------     2 [--]               [00]  	.IF access = 2
------     2 [--]               [00]  		ior symbol + byteidx
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IND
------     2 [--]               [00]  	.IF access = 3
------     2 [--]               [00]  		mov a, @.B0.(symbol + byteidx)
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		mov a, @.B1.(symbol)
------     2 [--]               [00]  		mov pr0+1, a
------     2 [--]               [00]  		mov a, @.B2.(symbol)
------     2 [--]               [00]  		mov pr0+2, a
------     2 [--]               [00]  		call ReadIND
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  .ENDM
------     2 [--]               [00]  
------     2 [--]               [00]  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
------     2 [--]               [00]  .MACRO	STA symbol, byteidx, access
------     2 [--]               [00]  	; RAM
------     2 [--]               [00]  	.IF access = 0
------     2 [--]               [00]  		mov symbol + byteidx, a
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  
------     2 [--]               [00]  	; ROM
------     2 [--]               [00]  	.IF access = 1
------     2 [--]               [00]  		ERROR "Can't write to ROM data"
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IO
------     2 [--]               [00]  	.IF access = 2
------     2 [--]               [00]  		iow symbol + byteidx
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IND
------     2 [--]               [00]  	.IF access = 3
------     2 [--]               [00]  		mov	pr1, a
------     2 [--]               [00]  		mov a, @.B0.(symbol + byteidx)
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		mov a, @.B1.(symbol)
------     2 [--]               [00]  		mov	pr0+1, a
------     2 [--]               [00]  		mov a, @.B2.(symbol)
------     2 [--]               [00]  		mov	pr0+2, a
------     2 [--]               [00]  		mov	a, pr1
------     2 [--]               [00]  		call WriteIND
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  .ENDM
------     2 [--]               [00]  
------     2 [--]               [00]  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
------     2 [--]               [00]  .MACRO	LDAP symbol, byteidx, access
------     2 [--]               [00]  	; RAM
------     2 [--]               [00]  	.IF access = 0
------     2 [--]               [00]  		mov a, symbol
------     2 [--]               [00]  		.IF byteidx <> 0
------     2 [--]               [00]  			add a, @byteidx
------     2 [--]               [00]  		.ENDIF
------     2 [--]               [00]  		mov	r4,	a
------     2 [--]               [00]  		mov a, r0
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  
------     2 [--]               [00]  	; ROM
------     2 [--]               [00]  	.IF access = 1
------     2 [--]               [00]  		mov a, symbol
------     2 [--]               [00]  		.IF byteidx <> 0
------     2 [--]               [00]  			add a, @byteidx
------     2 [--]               [00]  		.endif
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		mov a, symbol + 1
------     2 [--]               [00]  		mov pr0+1, a
------     2 [--]               [00]  		call ReadROM
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IO
------     2 [--]               [00]  	.IF access = 2
------     2 [--]               [00]  		ERROR "Can't access to IO data"
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IND
------     2 [--]               [00]  	.IF access = 3
------     2 [--]               [00]  		mov	a, symbol
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		mov	a, symbol + 1
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		mov	a, symbol + 2
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		.IF byteidx <> 0
------     2 [--]               [00]  			mov a, @byteidx
------     2 [--]               [00]  			add pr0, a
------     2 [--]               [00]  			jbc sr,cflag
------     2 [--]               [00]  			inc pr0 + 1
------     2 [--]               [00]  		.ENDIF
------     2 [--]               [00]  		call ReadIND
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  .ENDM
------     2 [--]               [00]  	
------     2 [--]               [00]  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
------     2 [--]               [00]  .MACRO	INCMB addr, access
------     2 [--]               [00]  	; RAM
------     2 [--]               [00]  	.IF access = 0
------     2 [--]               [00]  		inc addr
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  
------     2 [--]               [00]  	; ROM
------     2 [--]               [00]  	.IF access = 1
------     2 [--]               [00]  		ERROR "Can't write to ROM data"
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IO
------     2 [--]               [00]  	.IF access = 2
------     2 [--]               [00]  		ior addr
------     2 [--]               [00]  		add	a, @1
------     2 [--]               [00]  		iow addr
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IND
------     2 [--]               [00]  	.IF access = 3
------     2 [--]               [00]  		mov a, @.B0.(addr)
------     2 [--]               [00]  		mov pr0, a
------     2 [--]               [00]  		mov a, @.B1.(addr)
------     2 [--]               [00]  		mov pr0+1, a
------     2 [--]               [00]  		mov a, @.B2.(addr)
------     2 [--]               [00]  		mov pr0+2, a
------     2 [--]               [00]  		call ReadIND
------     2 [--]               [00]  		add a,@1
------     2 [--]               [00]  		call WriteIND
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  .ENDM
------     2 [--]               [00]  
------     2 [--]               [00]  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
------     2 [--]               [00]  .MACRO	DECMB addr, access
------     2 [--]               [00]  	; RAM
------     2 [--]               [00]  	.IF access = 0
------     2 [--]               [00]  		dec		addr
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  
------     2 [--]               [00]  	; ROM
------     2 [--]               [00]  	.IF access = 1
------     2 [--]               [00]  		ERROR "Can't write to ROM data"
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IO
------     2 [--]               [00]  	.IF access = 2
------     2 [--]               [00]  		ior		addr
------     2 [--]               [00]  		add		a, @0xff
------     2 [--]               [00]  		iow		addr
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  	
------     2 [--]               [00]  	; IND
------     2 [--]               [00]  	.IF access = 3
------     2 [--]               [00]  		mov		a, @.B0.(addr)
------     2 [--]               [00]  		mov		pr0, a
------     2 [--]               [00]  		mov		a, @.B1.(addr)
------     2 [--]               [00]  		mov		pr0+1, a
------     2 [--]               [00]  		mov		a, @.B2.(addr)
------     2 [--]               [00]  		mov		pr0+2, a
------     2 [--]               [00]  		call	ReadIND
------     2 [--]               [00]  		add		a, @0xff
------     2 [--]               [00]  		call	WriteIND
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  .ENDM
------     2 [--]               [00]  
------     2 [--]               [00]  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
------     2 [--]               [00]  .MACRO	INCMW addr, access
------     2 [--]               [00]  .LOCAL	incmw_end
------     2 [--]               [00]  	; RAM
------     2 [--]               [00]  	.IF access = 0
------     2 [--]               [00]  		inc addr
------     2 [--]               [00]  		jbc	r3, zflag
------     2 [--]               [00]  		inc	addr+1	
------     2 [--]               [00]  	.ENDIF
------     2 [--]               [00]  
------     2 [--]               [00]  	; ROM
------     2 [--]               [00]  	.IF access = 1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -