📄 debug.lis
字号:
0000 macro M8C_ClearWDTAndSleep
0000 mov reg[RES_WDT], 38h
0000 macro M8C_Sleep
0000 or reg[CPU_SCR], CPU_SCR_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_SCR], CPU_SCR_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
area UserModules (ROM, REL)
EXPORT TIME_TEMP
0000 TIME_TEMP: BLK 1 ;Receive temp when using SPIS
0001
0001 .SECTION
0001 ;-----------------------------------------------------------------------------
0001 ; FUNCTION NAME: glimpse
0001 ;
0001 ; DESCRIPTION:
0001 ; used in debug for the LED light
0001 ;-----------------------------------------------------------------------------
0001 debug_glimpse:
0001 _debug_glimpse:
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_2 )
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
or F, FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_3 )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0001 620801 MOV REG[08H],01H
0004 6200F7 MOV REG[P0DATA],F7H
0007 905F call DELAY_SHORT_TIME
0009 905D call DELAY_SHORT_TIME
000B 905B call DELAY_SHORT_TIME
000D
000D 620008 MOV REG[P0DATA],08H
0010 9056 call DELAY_SHORT_TIME
0012 9054 call DELAY_SHORT_TIME
0014 9052 call DELAY_SHORT_TIME
0016
0016 6200F7 MOV REG[P0DATA],F7H
0019 904D call DELAY_SHORT_TIME
001B 904B call DELAY_SHORT_TIME
001D 9049 call DELAY_SHORT_TIME
001F
001F 620008 MOV REG[P0DATA],08H
0022 9044 call DELAY_SHORT_TIME
0024 9042 call DELAY_SHORT_TIME
0026 9040 call DELAY_SHORT_TIME
0028
0028 6200F7 MOV REG[P0DATA],F7H
002B 903B call DELAY_SHORT_TIME
002D 9039 call DELAY_SHORT_TIME
002F 9037 call DELAY_SHORT_TIME
0031
0031 620008 MOV REG[P0DATA],08H
0034 9032 call DELAY_SHORT_TIME
0036 9030 call DELAY_SHORT_TIME
0038 902E call DELAY_SHORT_TIME
003A
003A 6200F7 MOV REG[P0DATA],F7H
003D 9029 call DELAY_SHORT_TIME
003F 9027 call DELAY_SHORT_TIME
0041 9025 call DELAY_SHORT_TIME
0043
0043 620008 MOV REG[P0DATA],08H
0046 9020 call DELAY_SHORT_TIME
0048 901E call DELAY_SHORT_TIME
004A 901C call DELAY_SHORT_TIME
004C
004C 6200F7 MOV REG[P0DATA],F7H
004F 9017 call DELAY_SHORT_TIME
0051 9015 call DELAY_SHORT_TIME
0053 9013 call DELAY_SHORT_TIME
0055
0055 620008 MOV REG[P0DATA],08H
0058 900E call DELAY_SHORT_TIME
005A 900C call DELAY_SHORT_TIME
005C 900A call DELAY_SHORT_TIME
005E
005E 6200F7 MOV REG[P0DATA],F7H
0061 9005 call DELAY_SHORT_TIME
0063 9003 call DELAY_SHORT_TIME
0065 9001 call DELAY_SHORT_TIME
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_2 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_11b
ENDIF
ENDIF ; PGMODE LOCKED
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_10b
ENDIF
ENDIF ; PGMODE FREE
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_3 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_11b
ENDIF
ENDIF ; PGMODE LOCKED
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
or F, FLAG_PGMODE_MASK & FLAG_PGMODE_10b
ENDIF
ENDIF ; PGMODE FREE
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0067 7F RET
0068 .ENDSECTION
0068
0068
0068 .SECTION
0068 ;-----------------------------------------------------------------------------
0068 ; FUNCTION NAME: DELAY_SHORT_TIME
0068 ;
0068 ; DESCRIPTION:
0068 ; used in debug for the LED light for delay
0068 ;-----------------------------------------------------------------------------
0068 DELAY_SHORT_TIME:
0068 _DELAY_SHORT_TIME:
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_2 )
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
or F, FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_2
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_3 )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
and F, ~FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_1 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0068 5500FF MOV [TIME_TEMP],FFH
006B LOOP_TIME1:
006B 50FF MOV A,FFH
006D LOOP_TIME2:
006D 40 NOP
006E 40 NOP
006F 40 NOP
0070 40 NOP
0071 40 NOP
0072 78 DEC A
0073 3900 cmp A, 00h
0075 BFF7 JNZ LOOP_TIME2
0077 7A00 DEC [TIME_TEMP]
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -