📄 i2c.lst
字号:
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 + -