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

📄 l51_bank.lst

📁 车载DVD osdIC TW8816原厂代码
💻 LST
📖 第 1 页 / 共 2 页
字号:
  0003               160       MASK          EQU     00000011B
                             ENDIF     
                     170     
                     171     
                     172     IF  ?B_MODE = 4 ;**************************************************************
                     173     
  0000               174     ?B_FACTOR       EQU     0               ; Dummy Declarations
  0000               175     ?B_FIRSTBIT     EQU     0
  0003               176     ?B_MASK         EQU     MASK
                     177     
                     178     ?BANK?SELECT    SEGMENT CODE
                     179     ?BANK?DATA      SEGMENT DATA
----                 180                     RSEG    ?BANK?DATA
0000                 181     ?B_CURRENTBANK: DS      1
                     182     
                     183     BANK            MACRO   N
                     184                     PUBLIC  ?B_BANK&N
                     185     ?B_BANK&N:
                     186                     PUSH    ?B_CURRENTBANK
                     187                     MOV     A,#HIGH ?BANK?SWITCH
                     188                     PUSH    ACC
                     189                     PUSH    DPL
                     190                     PUSH    DPH
                     191                     ENDM
                     192     
                     193     SWITCH          MACRO   N
                     194                     PUBLIC  ?B_SWITCH&N
                     195       IF (LONG_MACRO = 1)
                     196         ?B_SWITCHJ&N:
                     197       ELSE
                     198         ?B_SWITCH&N:
                     199       ENDIF
A51 MACRO ASSEMBLER  L51_BANK                                                             02/14/2008 14:25:38 PAGE     4

                     200                     MOV     ?B_CURRENTBANK,#LOW ?B_SWITCH&N
                     201                     SWITCH&N
                     202                     RET
                     203                     ENDM
                     204     
                               ENDIF
                     211     
                     212     ?BANK?SWITCH    SEGMENT CODE PAGE
                     213     
----                 214                     RSEG    ?BANK?SWITCH
  0000               215     B_SWITCH_START  EQU     $
                     216     
                               ENDIF
                     226     
                     227     
                     228     ; Generate ?B_SWITCHn functions
  0000               229     CNT             SET     0
                     230     
                     231                     REPT    ?B_NBANKS
                     232                     BANK    %CNT
                     233                     SWITCH  %CNT
                     234     CNT             SET     CNT+1
                     235                     ENDM
                     236+1                   BANK    %CNT
                     244+1                   SWITCH  %CNT
                     258+1                   BANK    %CNT
                     266+1                   SWITCH  %CNT
                     280+1                   BANK    %CNT
                     288+1                   SWITCH  %CNT
                     302+1                   BANK    %CNT
                     310+1                   SWITCH  %CNT
                     324     
  0044               325     B_SWITCH_SIZE   EQU     $-B_SWITCH_START
                     326     
                               ENDIF
                     330     
                     331     ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     332     
----                 333                     RSEG    ?BANK?SELECT
                     334     
                     335     ;************************  SWITCHBANK FUNCTION  *******************************
                     336     ;                                                                             *
                     337     ; SWITCHBANK allows use of bank-switching for C programs                      *
                     338     ;                                                                             *
                     339     ; prototype:   extern switchbank (unsigned char bank_number);                 *
                     340     ;                                                                             *
                     341     ;******************************************************************************
                     342                     PUBLIC  _SWITCHBANK, ?B_SWITCHBANK_A
                     343     
0000 EF              344     _SWITCHBANK:    MOV     A,R7
                     345     
                     346     
                     347     IF  ?B_MODE = 4 ;**************************************************************
                     348     
                     349     
0001                 350     ?B_SWITCHBANK_A:
0001 900000   F      351                     MOV     DPTR,#switch_tab
0004 93              352                     MOVC    A,@A+DPTR
0005                 353     ?B_RESTORE_BANK:                       ; entry for RTX-51/XBANKING bank restore
0005 900000   F      354                     MOV     DPTR,#?BANK?SWITCH
0008 73              355                     JMP     @A+DPTR
                     356     
                     357     S_ENTRY         MACRO   N
                     358                     DB      LOW ?B_SWITCH&N
                     359                     ENDM
                     360     
A51 MACRO ASSEMBLER  L51_BANK                                                             02/14/2008 14:25:38 PAGE     5

0009                 361     switch_tab:     
  0000               362     CNT             SET     0
                     363     
                     364                     REPT    ?B_NBANKS
                     365                     S_ENTRY %CNT
                     366     CNT             SET     CNT+1
                     367                     ENDM
                     368+1                   S_ENTRY %CNT
                     371+1                   S_ENTRY %CNT
                     374+1                   S_ENTRY %CNT
                     377+1                   S_ENTRY %CNT
                     380     ENDIF  ; close block IF ?B_MODE = 4 *******************************************
                     381     
                     382     
                             ENDIF  ; close block IF ?B_VAR_BANKING ****************************************
                     610     
A51 MACRO ASSEMBLER  L51_BANK                                                             02/14/2008 14:25:38 PAGE     6

SYMBOL TABLE LISTING
------ ----- -------


N A M E             T Y P E  V A L U E   ATTRIBUTES

?BANK?DATA . . . .  D SEG    0001H       REL=UNIT
?BANK?SELECT . . .  C SEG    000DH       REL=UNIT
?BANK?SWITCH . . .  C SEG    0044H       REL=PAGE
?BANK?SWITCHING. .  N NUMB   -----       
?B_BANK0 . . . . .  C ADDR   0000H   R   SEG=?BANK?SWITCH
?B_BANK1 . . . . .  C ADDR   0011H   R   SEG=?BANK?SWITCH
?B_BANK2 . . . . .  C ADDR   0022H   R   SEG=?BANK?SWITCH
?B_BANK3 . . . . .  C ADDR   0033H   R   SEG=?BANK?SWITCH
?B_CURRENTBANK . .  D ADDR   0000H   R   SEG=?BANK?DATA
?B_FACTOR. . . . .  N NUMB   0000H   A   
?B_FIRSTBIT. . . .  N NUMB   0000H   A   
?B_MASK. . . . . .  N NUMB   0003H   A   
?B_MODE. . . . . .  N NUMB   0004H   A   
?B_NBANKS. . . . .  N NUMB   0004H   A   
?B_RESTORE_BANK. .  C ADDR   0005H   R   SEG=?BANK?SELECT
?B_RST_BANK. . . .  N NUMB   0000H   A   
?B_RTX . . . . . .  N NUMB   0000H   A   
?B_SWITCH0 . . . .  C ADDR   000AH   R   SEG=?BANK?SWITCH
?B_SWITCH1 . . . .  C ADDR   001BH   R   SEG=?BANK?SWITCH
?B_SWITCH2 . . . .  C ADDR   002CH   R   SEG=?BANK?SWITCH
?B_SWITCH3 . . . .  C ADDR   003DH   R   SEG=?BANK?SWITCH
?B_SWITCHBANK_A. .  C ADDR   0001H   R   SEG=?BANK?SELECT
?B_VAR_BANKING . .  N NUMB   0000H   A   
ACC. . . . . . . .  D ADDR   00E0H   A   
B. . . . . . . . .  D ADDR   00F0H   A   
BANKREG. . . . . .  D ADDR   009AH   A   
B_SWITCH_SIZE. . .  N NUMB   0044H   A   
B_SWITCH_START . .  C ADDR   0000H   R   SEG=?BANK?SWITCH
CNT. . . . . . . .  N NUMB   0004H   A   
DPH. . . . . . . .  D ADDR   0083H   A   
DPL. . . . . . . .  D ADDR   0082H   A   
EA . . . . . . . .  B ADDR   00A8H.7 A   
IE . . . . . . . .  D ADDR   00A8H   A   
LONG_MACRO . . . .  N NUMB   0000H   A   
MASK . . . . . . .  N NUMB   0003H   A   
SAVEA. . . . . . .    ----   -----       
SWITCH_TAB . . . .  C ADDR   0009H   R   SEG=?BANK?SELECT
_SWITCHBANK. . . .  C ADDR   0000H   R   SEG=?BANK?SELECT


REGISTER BANK(S) USED: 0 

ASSEMBLY COMPLETE.  0 WARNING(S), 0 ERROR(S)

⌨️ 快捷键说明

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