?? csdhl.lis
字號:
0002 OSC_CR2_IMODIS: equ 02h ; MASK: Enable/Disable System (IMO) Clock Net
0001 OSC_CR2_SYSCLKX2DIS: equ 01h ; MASK: Enable/Disable 48MHz clock source
0000
00E3 VLT_CR: equ 0E3h ; Voltage Monitor Control Register (RW)
0080 VLT_CR_SMP: equ 80h ; MASK: Enable Switch Mode Pump
0030 VLT_CR_PORLEV: equ 30h ; MASK: Mask for Power on Reset level control
0000 VLT_CR_POR_LOW: equ 00h ; Lowest Precision Power-on Reset trip point
0010 VLT_CR_POR_MID: equ 10h ; Middle Precision Power-on Reset trip point
0020 VLT_CR_POR_HIGH: equ 20h ; Highest Precision Power-on Reset trip point
0008 VLT_CR_LVDTBEN: equ 08h ; MASK: Enable the CPU Throttle Back on LVD
0007 VLT_CR_VM: equ 07h ; MASK: Mask for Voltage Monitor level setting
0000
00E4 VLT_CMP: equ 0E4h ; Voltage Monitor Comparators Register (R)
0008 VLT_CMP_NOWRITE: equ 08h ; MASK: Vcc below Flash Write level
0004 VLT_CMP_PUMP: equ 04h ; MASK: Vcc below SMP trip level
0002 VLT_CMP_LVD: equ 02h ; MASK: Vcc below LVD trip level
0001 VLT_CMP_PPOR: equ 01h ; MASK: Vcc below PPOR trip level
0000
00E5 ADC0_TR: equ 0E5h ; ADC Column 0 Trim Register
00E6 ADC1_TR: equ 0E6h ; ADC Column 1 Trim Register
0000
00E8 IMO_TR: equ 0E8h ; Internal Main Oscillator Trim Register (W)
00E9 ILO_TR: equ 0E9h ; Internal Low-speed Oscillator Trim (W)
00EA BDG_TR: equ 0EAh ; Band Gap Trim Register (W)
00EB ECO_TR: equ 0EBh ; External Oscillator Trim Register (W)
0000
00FA FLS_PR1: equ 0FAh ; Flash Program Register 1 (RW)
0003 FLS_PR1_BANK: equ 03h ; MASK: Select Active Flash Bank
0000
00FD DAC_CR: equ 0FDh ; Analog Mux DAC Control Register
0008 DAC_CR_IRANGE: equ 08h ; MASK: Sets the DAC Range low or high
0006 DAC_CR_OSCMODE: equ 06h ; MASK: Defines the reset mode for AMux
0001 DAC_CR_ENABLE: equ 01h ; MASK: Enable/Disable DAC function
0000
0000 ;;=============================================================================
0000 ;; M8C System Macros
0000 ;; These macros should be used when their functions are needed.
0000 ;;=============================================================================
0000
0000 ;----------------------------------------------------
0000 ; Swapping Register Banks
0000 ;----------------------------------------------------
0000 macro M8C_SetBank0
0000 and F, ~FLAG_XIO_MASK
0000 macro M8C_SetBank1
0000 or F, FLAG_XIO_MASK
0000 macro M8C_EnableGInt
0000 or F, FLAG_GLOBAL_IE
0000 macro M8C_DisableGInt
0000 and F, ~FLAG_GLOBAL_IE
0000 macro M8C_DisableIntMask
0000 and reg[@0], ~@1 ; disable specified interrupt enable bit
0000 macro M8C_EnableIntMask
0000 or reg[@0], @1 ; enable specified interrupt enable bit
0000 macro M8C_ClearIntFlag
0000 mov reg[@0], ~@1 ; clear specified interrupt enable bit
0000 macro M8C_EnableWatchDog
0000 and reg[CPU_SCR0], ~CPU_SCR0_PORS_MASK
0000 macro M8C_ClearWDT
0000 mov reg[RES_WDT], 00h
0000 macro M8C_ClearWDTAndSleep
0000 mov reg[RES_WDT], 38h
0000 macro M8C_Sleep
0000 or reg[CPU_SCR0], CPU_SCR0_SLEEP_MASK
0000 ; The next instruction to be executed depends on the state of the
0000 ; various interrupt enable bits. If some interrupts are enabled
0000 ; and the global interrupts are disabled, the next instruction will
0000 ; be the one that follows the invocation of this macro. If global
0000 ; interrupts are also enabled then the next instruction will be
0000 ; from the interrupt vector table. If no interrupts are enabled
0000 ; then the CPU sleeps forever.
0000 macro M8C_Stop
0000 ; In general, you probably don't want to do this, but here's how:
0000 or reg[CPU_SCR0], CPU_SCR0_STOP_MASK
0000 ; Next instruction to be executed is located in the interrupt
0000 ; vector table entry for Power-On Reset.
0000 macro M8C_Reset
0000 ; Restore CPU to the power-on reset state.
0000 mov A, 0
0000 SSC
0000 ; Next non-supervisor instruction will be at interrupt vector 0.
0000 macro Suspend_CodeCompressor
0000 or F, 0
0000 macro Resume_CodeCompressor
0000 add SP, 0
0001 SYSTEM_STACK_PAGE: equ 1
0000 SYSTEM_STACK_BASE_ADDR: equ 0h
0001 SYSTEM_LARGE_MEMORY_MODEL: equ 1
0000 SYSTEM_SMALL_MEMORY_MODEL: equ 0
0001 IMAGECRAFT: equ 1
0002 HITECH: equ 2
0001 TOOLCHAIN: equ IMAGECRAFT
0001 SYSTEM_TOOLS: equ 1
0001 SYSTEM_IDXPG_TRACKS_STK_PP: equ 1
0000 SYSTEM_IDXPG_TRACKS_IDX_PP: equ 0
0000 SYSTEM_MULTIPAGE_STACK: equ 0
0000
0000
0000 ; ******* Function Class Definitions *******
0000 ;
0000 ; These definitions are used to describe RAM access patterns. They provide
0000 ; documentation and they control prologue and epilogue macros that perform
0000 ; the necessary housekeeping functions for large memory model devices like
0000 ; the CY8C27x66 and CY8C29x66.
0000
0001 RAM_USE_CLASS_1: equ 1 ; PUSH, POP & I/O access
0002 RAM_USE_CLASS_2: equ 2 ; Indexed address mode on stack page
0004 RAM_USE_CLASS_3: equ 4 ; Indexed address mode to any page
0008 RAM_USE_CLASS_4: equ 8 ; Direct/Indirect address mode access
0000
0000
0000 ; ******* Page Pointer Manipulation Macros *******
0000 ;
0000 ; Most of the following macros are conditionally compiled so they only
0000 ; produce code if the large memory model is selected.
0000
0000 ;-----------------------------------------------
0000 ; Set Stack Page Macro
0000 ;-----------------------------------------------
0000 ;
0000 ; DESC: Modify STK_PP in the large or small memory Models.
0000 ;
0000 ; INPUT: Constant (e.g., SYSTEM_STACK_PAGE) that specifies the RAM page on
0000 ; which stack operations like PUSH and POP store and retrieve their
0000 ; data
0000 ;
0000 ; COST: 8 instruction cycles (in LMM only)
0000
0000 macro RAM_SETPAGE_STK( PG_NUMBER )
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 mov reg[STK_PP], @PG_NUMBER
0000 ENDIF
0000 macro RAM_SETPAGE_CUR( PG_NUMBER )
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 mov reg[CUR_PP], @PG_NUMBER
0000 ENDIF
0000 macro RAM_SETPAGE_IDX( PG_NUMBER )
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 mov reg[IDX_PP], @PG_NUMBER
0000 ENDIF
0000 macro RAM_SETPAGE_MVR( PG_NUMBER )
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 mov reg[MVR_PP], @PG_NUMBER
0000 ENDIF
0000 macro RAM_SETPAGE_MVW( PG_NUMBER )
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 mov reg[MVW_PP], @PG_NUMBER
0000 ENDIF
0000 macro RAM_SETPAGE_IDX2STK
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 IF ( SYSTEM_MULTIPAGE_STACK )
0000 mov A, reg[STK_PP]
0000 mov reg[IDX_PP], A
0000 ELSE
0000 RAM_SETPAGE_IDX SYSTEM_STACK_PAGE
0000 ENDIF
0000 ENDIF
0000 macro RAM_CHANGE_PAGE_MODE( MODE )
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
0000 or F, FLAG_PGMODE_MASK & @MODE
0000 ENDIF
0000 macro RAM_SET_NATIVE_PAGING
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
0000 or F, FLAG_PGMODE_11b ; LMM w/ IndexPage<==>StackPage
0000 ENDIF ; PGMODE LOCKED
0000 IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
0000 or F, FLAG_PGMODE_10b ; LMM with independent IndexPage
0000 ENDIF ; PGMODE FREE
0000 ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
0000 macro RAM_RESTORE_NATIVE_PAGING
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
0000 RAM_CHANGE_PAGE_MODE FLAG_PGMODE_11b ; LMM w/ IndexPage<==>StackPage
0000 ENDIF ; PGMODE LOCKED
0000 IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
0000 RAM_CHANGE_PAGE_MODE FLAG_PGMODE_10b ; LMM with independent IndexPage
0000 ENDIF ; PGMODE FREE
0000 ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
0000 macro RAM_X_POINTS_TO_STACKPAGE
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 or F, FLAG_PGMODE_01b
0000 ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
0000 macro RAM_X_POINTS_TO_INDEXPAGE
0000 IF ( SYSTEM_LARGE_MEMORY_MODEL )
0000 and F, ~FLAG_PGMODE_01b
0000 ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
0000 macro RAM_PROLOGUE( ACTUAL_CLASS )
0000
0000 IF ( @ACTUAL_CLASS & RAM_USE_CLASS_1 )
0000 ; Nothing to do
0000 ENDIF ; RAM_USE_CLASS_1
0000
0000 IF ( @ACTUAL_CLASS & RAM_USE_CLASS_2 )
0000 IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
0000 RAM_X_POINTS_TO_STACKPAGE ; exit native paging mode!
0000 ENDIF
0000 ENDIF ; RAM_USE_CLASS_2
0000
0000 IF ( @ACTUAL_CLASS & RAM_USE_CLASS_3 )
0000 IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
0000 RAM_X_POINTS_TO_INDEXPAGE ; exit native paging mode!
0000 ENDIF
0000 ENDIF ; RAM_USE_CLASS_3
0000
0000 IF ( @ACTUAL_CLASS & RAM_USE_CLASS_4 )
0000 ; Nothing to do
0000 ENDIF ; RAM_USE_CLASS_4
0000
0000 macro RAM_EPILOGUE( ACTUAL_CLASS )
0000
0000 IF ( @ACTUAL_CLASS & RAM_USE_CLASS_1 )
0000 ; Nothing to do
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -