📄 cmx_csd_chan.lis
字号:
0015
0015 .UpdGroupBaselinesLoop: ; Loop through the sensor group
0015 10 push X
0016 08 push A
0017 7C0000 lcall CSD_UpdateSensorBaseline
001A 18 pop A
001B 74 inc A
001C 20 pop X
001D 79 dec X
001E
001E BFF6 jnz .UpdGroupBaselinesLoop
0020
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_3 & 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_3 & RAM_USE_CLASS_3 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
0020 703F and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
0022 71C0 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_3 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0024 7F ret
0025
0025 .ENDSECTION
0025
0025 .SECTION
0025 ;-----------------------------------------------------------------------------
0025 ; FUNCTION NAME: CSD_InitializeGroupBaselines(BYTE bSnsGroup)
0025 ;
0025 ; DESCRIPTION: Initialize baseline for a sensor group
0025 ;-----------------------------------------------------------------------------
0025 ; STACK USAGE: 3 BYTES
0025 ;
0025 ; ARGUMENTS:
0025 ; A => Sensor Group
0025 ; Sensor Group = 0 for the independent sensors group
0025 ; Sensor Group = 1 for the first slider group
0025 ; Sensor Group = 2 for the second slider group
0025 ;
0025 ; RETURNS:
0025 ; None
0025 ;
0025 ;
0025 ; SIDE EFFECTS:
0025 ; The A and X registers may be modified by this or future implementations
0025 ; of this function. The same is true for all RAM page pointer registers in
0025 ; the Large Memory Model. When necessary, it is the calling function's
0025 ; responsibility to perserve their values across calls to fastcall16
0025 ; functions.
0025 ;
0025
0025 CSD_InitializeGroupBaselines:
0025 _CSD_InitializeGroupBaselines:
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_3 & 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_3 & RAM_USE_CLASS_3 )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
0025 70BF and F, ~FLAG_PGMODE_01b
ENDIF ; SYSTEM_LARGE_MEMORY_MODEL
ENDIF
ENDIF ; RAM_USE_CLASS_3
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
IF ( SYSTEM_LARGE_MEMORY_MODEL )
0027 62D000 mov reg[CUR_PP], 0
ENDIF
; First get the starting location and size of this sensor group
002A 64 asl A ; multiply by six to get group offset
002B 5300 mov [CSD_bSnsMaskPtr], A ; use as temp
002D 64 asl A
002E 0400 add [CSD_bSnsMaskPtr], A
0030 5100 mov A, [CSD_bSnsMaskPtr]
0032 5C mov X, A
0033 F000 index CSD_Group_Table
0035 4B swap A, X
0036 74 inc A
0037 F000 index CSD_Group_Table
0039 4B swap A, X ; A now has starting sensor number, x has size of group
003A
003A .InitGroupBaselinesLoop: ; Loop through the sensor group
003A 10 push X
003B 08 push A
003C 7C0000 lcall CSD_InitializeSensorBaseline
003F 18 pop A
0040 74 inc A
0041 20 pop X
0042 79 dec X
0043
0043 BFF6 jnz .InitGroupBaselinesLoop
0045
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_3 & 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_3 & RAM_USE_CLASS_3 )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
IF ( SYSTEM_IDXPG_TRACKS_STK_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
0045 703F and F, ~FLAG_PGMODE_MASK ; NOTE: transition thru 00b state
0047 71C0 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_3 & RAM_USE_CLASS_4 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_4
0049 7F ret
004A
004A .ENDSECTION
004A
004A .SECTION
004A ;-----------------------------------------------------------------------------
004A ; FUNCTION NAME: CSD_ScanSensorGroup(BYTE bSnsGroup)
004A ;
004A ; DESCRIPTION: Scans all sensors in a group
004A ;-----------------------------------------------------------------------------
004A ; STACK USAGE: 3 BYTES
004A ;
004A ; ARGUMENTS:
004A ; A => Sensor Group
004A ; Sensor Group = 0 for the independent sensors group
004A ; Sensor Group = 1 for the first slider group
004A ; Sensor Group = 2 for the second slider group
004A ;
004A ; RETURNS:
004A ; None
004A ;
004A ;
004A ; SIDE EFFECTS:
004A ; The A and X registers may be modified by this or future implementations
004A ; of this function. The same is true for all RAM page pointer registers in
004A ; the Large Memory Model. When necessary, it is the calling function's
004A ; responsibility to perserve their values across calls to fastcall16
004A ; functions.
004A ;
004A
004A CSD_ScanSensorGroup:
004A _CSD_ScanSensorGroup:
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_1 )
; Nothing to do
ENDIF ; RAM_USE_CLASS_1
IF ( RAM_USE_CLASS_3 & RAM_USE_CLASS_2 )
IF ( SYSTEM_IDXPG_TRACKS_IDX_PP )
IF ( SYSTEM_LARGE_MEMORY_MODEL )
or F, FLAG_PGMOD
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -