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

📄 startup400.lst

📁 tini的http-slientC程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
                        430     
                        431                     ;
                        432                     ; Make sure we are in contiguous mode
                        433                     ;
400009 75C7AA           434                     mov     ta, #0xAA                          ; Enable access to ACON
40000C 75C755           435                     mov     ta, #0x55
40000F 439D02           436                     orl     acon, #2                           ; 24 bit mode
400012 02000000   F     437                     ljmp    far sanity_check                   ; Sanity check: Make sure 24 
                               bit mode is on
400016                  438     sanity_check:
400016 75C7AA           439                     mov     ta, #0xAA                          ; Enable access to MCON
400019 75C755           440                     mov     ta, #0x55
40001C 75C6AF           441                     mov     mcon, #0xAF                        ; Relocate RAM, data memory
40001F 75C7AA           442                     mov     ta, #0xAA                          ; Enable access to ACON
400022 75C755           443                     mov     ta, #0x55
400025 439D04           444                     orl     acon, #0x04                        ; Extended stack
                        445     
                        446                     ;
                        447                     ; Use the minimum number of stretch cycles on MOVX memory
                        448                     ;
400028 538EF8           449                     anl     ckcon, #0f8h
AX51 MACRO ASSEMBLER  STARTUP400                                                            25/06/04 10:50:38 PAGE     8

                        450     
                        451                     ;
                        452                     ; Make sure we are in a known state with respect to
                        453                     ; our fancy data pointers and register banks
                        454                     ;
40002B 758600           455                     mov     dps, #0
40002E 75D000           456                     mov     psw, #0
                        457     
                        458                     ;
                        459                     ; Set stack to 0 (we lose one byte, but don't
                        460                     ; have to know the size)
                        461                     ;
400031 758100           462                     mov     sp,#0
400034 759B00           463                     mov     esp,#0
                        464     
                        465                     ;
                        466                     ; Do the Crystal Multiplier
                        467                     ;
                        468     $if  XTALMULT = 2
                                startup_setxtal_mult_2:
                                                ;
                                                ; Multiply crystal frequency by 2
                                                ;
                                                mov     pmr, #10000010b                    ; Set for crystal * 2
                                                mov     pmr, #10010010b                    ; Enable multiplier
                                WaitCrystal:
                                                mov     a, exif                            ; Wait for multiplier to be r
                               eady
                                                jnb     acc.3, WaitCrystal                 ; Jump if CKRY is low
                                                mov     pmr, #00010010b                    ; Go to crystal * 2
                                
                                $elseif  XTALMULT = 4
                                startup_setxtal_mult_4:
                                                ;
                                                ; Multiply crystal frequency by 4
                                                ;
                                                mov     pmr, #10000010b                    ; Set to power up value
                                                mov     pmr, #10001010b                    ; Set for crystal * 4
                                                mov     pmr, #10011010b                    ; Enable multiplier
                                WaitCrystal4:
                                                mov     a, exif                            ; Wait for multiplier to be r
                               eady
                                                jnb     acc.3, WaitCrystal4                ; Jump if CKRY is low
                                                mov     pmr, #00011010b                    ; Go to crystal * 4
                                $endif 
                        493     
                        494     $if  (INITIALIZE_SERIAL0 <> 0)
                        495                     ; Enable the serial0, using timer 2 at 115200
                        496                     ; Use this equation for the reloads:
                        497                     ;     reload H:L = 65536 - (oscillator / (32 * baud))
                        498                     ; We now use User Configurable Equates for the serial
                        499                     ; port settings.  The default is for 115200, which
                        500                     ; yeilds the following:
                        501                     ;     65536 - (14745600 / (32 * 115200)) = 65536 - (14745600 / 3686400)
                        502                     ;                                        = 65536 - 4
                        503                     ;                                        = 65532
                        504                     ;                                        = 0xFFFC
400037 75985A           505                     mov     scon0, #5Ah                        ; 10 bit serial 0, use timer 
                               baud rate, enable recieving
40003A 75CBFF           506                     mov     rcap2h, #High(TIMER_RELOAD)        ; Set timer reload high byte
40003D 75CAFC           507                     mov     rcap2l, #Low(TIMER_RELOAD)         ; Set timer reload low bye
400040 75C830           508                     mov     t2con, #30h                        ; Enable timer 2 for serial p
                               ort
400043 D2CA             509                     setb    tr2                                ; Set timer 2 to run
                        510     
                        511                     ; Make sure that we can output to the serial port
AX51 MACRO ASSEMBLER  STARTUP400                                                            25/06/04 10:50:38 PAGE     9

400045 D299             512                     setb    ti
                        513     $else 
                                                clr     tr2                                ; Disable serial 0 output if 
                               configured by ROM loader
                                $endif 
                        516     
                        517     $if  (USE_REENTRANT_STACK <> 0)
                                                mov     ?C_XBP,#HIGH XBPSTACKTOP
                                                mov     ?C_XBP+1,#LOW XBPSTACKTOP
                                $endif 
                        521     
                        522     
                        523     $if  SETMAC = 1
                                                mov     r0, #MAC_LSB
                                                mov     r1, #MAC_2
                                                mov     r2, #MAC_3
                                                mov     r3, #MAC_4
                                                mov     r4, #MAC_5
                                                mov     r5, #MAC_MSB
                                
                                $endif 
                        532     
                        533     $if  SETMAC = 2
                                ;    
                                ; User MAC Code
                                ;
                                ; Insert code here that will get a MAC address in registers
                                ; r5:r4:r3:r2:r1:r0, with r5 the MSB.
                                ;
                                
                                $endif 
                        542     
                        543     $if  SETMAC > 0
                                                ; Push registers r0 to r5
                                                push    0
                                                push    1
                                                push    2
                                                push    3
                                                push    4
                                                push    5
                                
                                                mov     a, #'C'
                                                push    acc
                                                mov     a, #'A'
                                                push    acc
                                                mov     a, #'M'
                                                push    acc
                                $endif 
                        559     
                        560     
                        561     
                        562     
                        563     IF ERASE_XDATA_LEN <> 0
                                                mov     dptr, #ERASE_XDATA_ADDR
                                                mov     r7, #BYTE0 (ERASE_XDATA_LEN)
                                  IF (BYTE0 (ERASE_XDATA_LEN)) <> 0
                                                mov     r6, #(BYTE1 ERASE_XDATA_LEN) +1
                                  ELSE
                                                mov     r6, #BYTE1 (ERASE_XDATA_LEN)
                                  ENDIF
                                  IF (BYTE1 (ERASE_XDATA_LEN)) <> 0
                                                mov     r5, #(BYTE2 ERASE_XDATA_LEN) +1
                                  ELSE
                                                mov     r5, #BYTE2 (ERASE_XDATA_LEN)
                                  ENDIF
                                                clr     a
AX51 MACRO ASSEMBLER  STARTUP400                                                            25/06/04 10:50:38 PAGE    10

                                erase_xdata_loop:      
                                                movx    @dptr, a
                                                inc     dptr
                                                djnz    r7, erase_xdata_loop
                                                djnz    r6, erase_xdata_loop
                                                djnz    r5, erase_xdata_loop
                                endif
                        584     
                        585     
400047 12000000   E     586                     lcall   init_romexport
                        587     
                        588     
                        589     if ERASE_IDATA <> 0
                                                mov     r0, #ERASE_IDATA - 1
                                                clr     a
                                erase_idata_loop:
                                                mov     @r0, a
                                                djnz    r0, erase_idata_loop
                                endif
                        596     
                        597     
                        598     
40004B 02000000   E     599                     ljmp    ?C_START
                        600                     end
AX51 MACRO ASSEMBLER  STARTUP400                                                            25/06/04 10:50:38 PAGE    11

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


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

?C_CPURESET?0 . . . . . . . .  C  SEG   40004FH       REL=ABS, ALN=BYTE
?C_START. . . . . . . . . . .  C  ADDR  -------       EXT
?C_STARTUP. . . . . . . . . .  C  ADDR  00400000H R   SEG=?C_CPURESET?0
AC. . . . . . . . . . . . . .  B  ADDR  00D0H.6   A   
ACC . . . . . . . . . . . . .  D  ADDR  00E0H     A   
ACON. . . . . . . . . . . . .  D  ADDR  009DH     A   
AP. . . . . . . . . . . . . .  D  ADDR  009CH     A   
B . . . . . . . . . . . . . .  D  ADDR  00F0H     A   
C0C . . . . . . . . . . . . .  D  ADDR  00A3H     A   
C0IE. . . . . . . . . . . . .  B  ADDR  00E8H.6   A   
C0IP. . . . . . . . . . . . .  B  ADDR  00F8H.6   A   
C0IR. . . . . . . . . . . . .  D  ADDR  00A5H     A   
C0M10C. . . . . . . . . . . .  D  ADDR  00B7H     A   
C0M11C. . . . . . . . . . . .  D  ADDR  00BBH     A   
C0M12C. . . . . . . . . . . .  D  ADDR  00BCH     A   
C0M13C. . . . . . . . . . . .  D  ADDR  00BDH     A   
C0M14C. . . . . . . . . . . .  D  ADDR  00BEH     A   
C0M15C. . . . . . . . . . . .  D  ADDR  00BFH     A   
C0M1C . . . . . . . . . . . .  D  ADDR  00ABH     A   
C0M2C . . . . . . . . . . . .  D  ADDR  00ACH     A   
C0M3C . . . . . . . . . . . .  D  ADDR  00ADH     A   
C0M4C . . . . . . . . . . . .  D  ADDR  00AEH     A   
C0M5C . . . . . . . . . . . .  D  ADDR  00AFH     A   
C0M6C . . . . . . . . . . . .  D  ADDR  00B3H     A   
C0M7C . . . . . . . . . . . .  D  ADDR  00B4H     A   
C0M8C . . . . . . . . . . . .  D  ADDR  00B5H     A   
C0M9C . . . . . . . . . . . .  D  ADDR  00B6H     A   
C0RE. . . . . . . . . . . . .  D  ADDR  00A7H     A   
C0RMS0. . . . . . . . . . . .  D  ADDR  0096H     A   
C0RMS1. . . . . . . . . . . .  D  ADDR  0097H     A   
C0S . . . . . . . . . . . . .  D  ADDR  00A4H     A   
C0TE. . . . . . . . . . . . .  D  ADDR  00A6H     A   
C0TMA0. . . . . . . . . . . .  D  ADDR  009EH     A   
C0TMA1. . . . . . . . . . . .  D  ADDR  009FH     A   
C1C . . . . . . . . . . . . .  D  ADDR  00E3H     A   
C1IE. . . . . . . . . . . . .  B  ADDR  00E8H.5   A   

⌨️ 快捷键说明

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