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

📄 psocconfig.lis

📁 Cypress cy7c63318 鼠标开发板的源代码
💻 LIS
📖 第 1 页 / 共 4 页
字号:
                      or   F, FLAG_PGMODE_01b
                   ENDIF ;  SYSTEM_LARGE_MEMORY_MODEL
                      ENDIF
                   ENDIF ; RAM_USE_CLASS_2
                
                   IF ( RAM_USE_CLASS_4 & 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_4 & RAM_USE_CLASS_4 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_4
                
                
 000A 10                push    x
 000B 70EF          and   F, ~FLAG_XIO_MASK
 000D 5000          mov     a, 0                    ; Specify bank 0
 000F 67            asr     a                       ; Store in carry flag
 0010                                               ; Load bank 0 table:
 0010 5000          mov     A, >LoadConfigTBL_cy4623_rdk_Bank0
 0012 5700          mov     X, <LoadConfigTBL_cy4623_rdk_Bank0
 0014 7C0023        lcall   LoadConfig              ; Load the bank 0 values
 0017           
 0017 5001          mov     a, 1                    ; Specify bank 1
 0019 67            asr     a                       ; Store in carry flag
 001A                                               ; Load bank 1 table:
 001A 5000          mov     A, >LoadConfigTBL_cy4623_rdk_Bank1
 001C 5700          mov     X, <LoadConfigTBL_cy4623_rdk_Bank1
 001E 7C0023        lcall   LoadConfig              ; Load the bank 1 values
 0021           
 0021 20                pop             x
 0022           
                   IF ( RAM_USE_CLASS_4 & RAM_USE_CLASS_1 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_1
                
                   IF ( RAM_USE_CLASS_4 & 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_4 & 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_4 & RAM_USE_CLASS_4 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_4
                
 0022 7F            ret
 0023           
 0023           
 0023           
 0023           
 0023           ;---------------------------------------------------------------------------
 0023           ; LoadConfig - Set IO registers as specified in ROM table of (address,value)
 0023           ;              pairs. Terminate on address=0xFF.
 0023           ;
 0023           ;  INPUTS:  [A,X] points to the table to be loaded
 0023           ;           Flag Register Carry bit encodes the Register Bank
 0023           ;           (Carry=0 => Bank 0; Carry=1 => Bank 1)
 0023           ;
 0023           ;  RETURNS: nothing.
 0023           ;
 0023           ;  STACK FRAME:  X-4 I/O Bank 0/1 indicator
 0023           ;                X-3 Temporary store for register address
 0023           ;                X-2 LSB of config table address
 0023           ;                X-1 MSB of config table address
 0023           ;
 0023           LoadConfig:
                   IF ( RAM_USE_CLASS_2 & RAM_USE_CLASS_1 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_1
                
                   IF ( RAM_USE_CLASS_2 & 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_2 & 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_2 & RAM_USE_CLASS_4 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_4
                
 0023 3802          add     SP, 2                   ; Set up local vars
 0025 10            push    X                       ; Save config table address on stack
 0026 08            push    A
 0027 4F            mov     X, SP
 0028 56FC00        mov     [X-4], 0                ; Set default Destination to Bank 0
 002B D004          jnc     .BankSelectSaved        ; Carry says Bank 0 is OK
 002D 56FC01        mov     [X-4], 1                ; No Carry: default to Bank 1
 0030           .BankSelectSaved:
 0030 18            pop     A
 0031 20            pop     X
 0032           
 0032           LoadConfigLp:
 0032 70EF          and   F, ~FLAG_XIO_MASK
 0034 62E300        mov   reg[RES_WDT], 00h
 0037 10            push    X                       ; Preserve the config table address
 0038 08            push    A
 0039 28            romx                            ; Load register address from table
 003A 39FF          cmp     A, END_CONFIG_TABLE     ; End of table?
 003C A01F          jz      EndLoadConfig           ;   Yes, go wrap it up
 003E 4F            mov     X, SP                   ;
 003F 48FC01        tst     [X-4], 1                ; Loading IO Bank 1?
 0042 A003          jz      .IOBankNowSet           ;    No, Bank 0 is fine
 0044 7110          or    F, FLAG_XIO_MASK
 0046           .IOBankNowSet:
 0046 54FD          mov     [X-3], A                ; Stash the register address
 0048 18            pop     A                       ; Retrieve the table address
 0049 20            pop     X
 004A 75            inc     X                       ; Advance to the data byte
 004B 0900          adc     A, 0
 004D 10            push    X                       ; Save the config table address again
 004E 08            push    A
 004F 28            romx                            ; load config data from the table
 0050 4F            mov     X, SP                   ; retrieve the register address
 0051 59FD          mov     X, [X-3]
 0053 6100          mov     reg[X], A               ; Configure the register
 0055 18            pop     A                       ; retrieve the table address
 0056 20            pop     X
 0057 75            inc     X                       ; advance to next table entry
 0058 0900          adc     A, 0
 005A 8FD7          jmp     LoadConfigLp            ; loop to configure another register
 005C           EndLoadConfig:
 005C 38FC          add     SP, -4
                   IF ( RAM_USE_CLASS_2 & RAM_USE_CLASS_1 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_1
                
                   IF ( RAM_USE_CLASS_2 & 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_2 & 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_2 & RAM_USE_CLASS_4 )
                   ; Nothing to do
                   ENDIF ; RAM_USE_CLASS_4
                
 005E 7F            ret
 005F           
                AREA InterruptRAM(ram, rel)
                
 0000           NO_SHADOW:
 0000           _NO_SHADOW:
 0000           ; write only register shadows
 0000           _Port_1_Data_SHADE:
 0000           Port_1_Data_SHADE:      BLK     1
 0001           

⌨️ 快捷键说明

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