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

📄 wanjtest.lst

📁 一个用嵌入c写的万年历程序
💻 LST
📖 第 1 页 / 共 5 页
字号:
 349  0006  0F01        MOV A,01H
 349  0007  0080     E  MOV RH,A
 349  0008  0FF2        MOV A,0f2H
 349  0009  2000     E  CALL __DELAYY1

; 352:         if (~_pa)
 352  000A  0112        CPLA __pa
 352  000B  0080     R  MOV b0_17,A
 352  000C  1080     R  SZ b0_17
 352  000D  2800     R  JMP L155
 352  000E  2800     R  JMP L138
 352  000F              L155:

; 356:            if((~_pa)&(unsigned char)0x40){keyvalue=0x06;}
 356  000F  0112        CPLA __pa
 356  0010  0080     R  MOV b0_17,A
 356  0011  3800     R  SNZ b0_17.6
 356  0012  2800     R  JMP L140
 356  0013  0F00     R  MOV A,BANK _keyvalue
 356  0014  0084        MOV [04H],A
 356  0015  0F00     R  MOV A,OFFSET _keyvalue
 356  0016  0083        MOV [03H],A
 356  0017  0F06        MOV A,06h
 356  0018  0082        MOV [02H],A
 356  0019  2800     R  JMP L141
 356  001A              L140:

; 357:            else if((~_pa)&(unsigned char)0x20){keyvalue=0x05;}
 357  001A  0112        CPLA __pa
 357  001B  0080     R  MOV b0_17,A
 357  001C  3800     R  SNZ b0_17.5
 357  001D  2800     R  JMP L142
文件:WANJTEST.C   盛群编译器版本 2.86 页次25

 357  001E  0F00     R  MOV A,BANK _keyvalue
 357  001F  0084        MOV [04H],A
 357  0020  0F00     R  MOV A,OFFSET _keyvalue
 357  0021  0083        MOV [03H],A
 357  0022  0F05        MOV A,05h
 357  0023  0082        MOV [02H],A
 357  0024  2800     R  JMP L143
 357  0025              L142:

; 358:            else if((~_pa)&(unsigned char)0x10){keyvalue=0x04;}
 358  0025  0112        CPLA __pa
 358  0026  0080     R  MOV b0_17,A
 358  0027  3800     R  SNZ b0_17.4
文件:WANJTEST.c   盛群编译器版本 2.86 页次27 

 358  0028  2800     R  JMP L144
 358  0029  0F00     R  MOV A,BANK _keyvalue
 358  002A  0084        MOV [04H],A
 358  002B  0F00     R  MOV A,OFFSET _keyvalue
 358  002C  0083        MOV [03H],A
 358  002D  0F04        MOV A,04h
 358  002E  0082        MOV [02H],A
 358  002F  2800     R  JMP L145
 358  0030              L144:

; 359:            else if((~_pa)&(unsigned char)0x08){keyvalue=0x03;}
 359  0030  0112        CPLA __pa
 359  0031  0080     R  MOV b0_17,A
 359  0032  3800     R  SNZ b0_17.3
 359  0033  2800     R  JMP L146
 359  0034  0F00     R  MOV A,BANK _keyvalue
 359  0035  0084        MOV [04H],A
 359  0036  0F00     R  MOV A,OFFSET _keyvalue
 359  0037  0083        MOV [03H],A
 359  0038  0F03        MOV A,03h
 359  0039  0082        MOV [02H],A
 359  003A  2800     R  JMP L147
 359  003B              L146:

; 360:            else if((~_pa)&(unsigned char)0x04){keyvalue=0x02;}
 360  003B  0112        CPLA __pa
 360  003C  0080     R  MOV b0_17,A
 360  003D  3800     R  SNZ b0_17.2
 360  003E  2800     R  JMP L148
 360  003F  0F00     R  MOV A,BANK _keyvalue
 360  0040  0084        MOV [04H],A
 360  0041  0F00     R  MOV A,OFFSET _keyvalue
 360  0042  0083        MOV [03H],A
 360  0043  0F02        MOV A,02h
 360  0044  0082        MOV [02H],A
文件:WANJTEST.C   盛群编译器版本 2.86 页次26

 360  0045  2800     R  JMP L149
 360  0046              L148:

; 361:            else if((~_pa)&(unsigned char)0x02){keyvalue=0x01;}
 361  0046  0112        CPLA __pa
 361  0047  0080     R  MOV b0_17,A
 361  0048  3800     R  SNZ b0_17.1
 361  0049  2800     R  JMP L150
 361  004A  0F00     R  MOV A,BANK _keyvalue
 361  004B  0084        MOV [04H],A
 361  004C  0F00     R  MOV A,OFFSET _keyvalue
 361  004D  0083        MOV [03H],A
 361  004E  0F01        MOV A,01h
 361  004F  0082        MOV [02H],A
 361  0050  2800     R  JMP L151
 361  0051              L150:

; 362:            else if((~_pa)&(unsigned char)0x01){keyvalue=0x00;}
 362  0051  0112        CPLA __pa
 362  0052  0080     R  MOV b0_17,A
 362  0053  3800     R  SNZ b0_17.0
 362  0054  2800     R  JMP L152
 362  0055  0F00     R  MOV A,BANK _keyvalue
文件:WANJTEST.c   盛群编译器版本 2.86 页次28 

 362  0056  0084        MOV [04H],A
 362  0057  0F00     R  MOV A,OFFSET _keyvalue
 362  0058  0083        MOV [03H],A
 362  0059  1F02        CLR [02H]
 362  005A              L152:
 362  005A              L151:
 362  005A              L149:
 362  005A              L147:
 362  005A              L145:
 362  005A              L143:
 362  005A              L141:

; 363:            j=1;
 363  005A  0F01        MOV A,01h
 363  005B  0080     R  MOV CR28,A
 363  005C              L138:
 363  005C              L136:

; 366:     return(j);
 366  005C  0700     R  MOV A,CR28
 366  005D              L135:
 366  005D  0003        RET
 366  0000  00          LOCAL b0_17 DB ?

; 343:     unsigned int j=0;
 343  0001  00          LOCAL CR28 DB ? ; j
 343  005E              _getkey ENDP

; 371: {
 371  0000              @key_adjust .SECTION 'CODE'
 371  0000              PUBLIC _key_adjust
 371  0000              _key_adjust PROC

; 373:     unsigned int held_long_time = 0;//whether long press
文件:WANJTEST.C   盛群编译器版本 2.86 页次27

 373  0000  1F00     R  CLR CR29
 373  0001              L157:

; 375:     if(upflag==1)
 375  0001  0F00     R  MOV A,BANK _upflag
 375  0002  0084        MOV [04H],A
 375  0003  0F00     R  MOV A,OFFSET _upflag
 375  0004  0083        MOV [03H],A
 375  0005  0702        MOV A,[02H]
 375  0006  0C01        XOR A,01h
 375  0007  390A        SNZ [0AH].2
 375  0008  2800     R  JMP L158

; 377:        focvalue++;//需要让curtime同时加一 以让下面的showpic函数显示出最新值
 377  0009  0F00     R  MOV A,BANK _focvalue
 377  000A  0084        MOV [04H],A
 377  000B  0F00     R  MOV A,OFFSET _focvalue
 377  000C  0083        MOV [03H],A
 377  000D  1482        INC [02H]

; 378:        focvalue=focvalue%focvmax;//又有了一个工作
 378  000E  0F00     R  MOV A,BANK _focvalue
 378  000F  0084        MOV [04H],A
 378  0010  0F00     R  MOV A,OFFSET _focvalue
文件:WANJTEST.c   盛群编译器版本 2.86 页次29 

 378  0011  0083        MOV [03H],A
 378  0012  0702        MOV A,[02H]
 378  0013  0080     R  MOV b0_18,A
 378  0014  0F00     R  MOV A,BANK _focvmax
 378  0015  0084        MOV [04H],A
 378  0016  0F00     R  MOV A,OFFSET _focvmax
 378  0017  0083        MOV [03H],A
 378  0018  0702        MOV A,[02H]
 378  0019  0080     R  MOV b1_18,A
 378  001A  0700     R  MOV A,b1_18
 378  001B  0080     E  MOV RH,A
 378  001C  0700     R  MOV A,b0_18
 378  001D  2000     E  CALL DIVUI
 378  001E  0700     E  MOV A,T3
 378  001F  0080     R  MOV b0_18,A
 378  0020  0F00     R  MOV A,BANK _focvalue
 378  0021  0084        MOV [04H],A
 378  0022  0F00     R  MOV A,OFFSET _focvalue
 378  0023  0083        MOV [03H],A
 378  0024  0700     R  MOV A,b0_18
 378  0025  0082        MOV [02H],A

; 379:     }
 379  0026  2800     R  JMP L159
 379  0027              L158:

; 383:        focvalue=(focvalue==0)?focvmax:--focvalue;//又有了一个工作
 383  0027  0F00     R  MOV A,BANK _focvalue
 383  0028  0084        MOV [04H],A
 383  0029  0F00     R  MOV A,OFFSET _focvalue
 383  002A  0083        MOV [03H],A
 383  002B  1082        SZ [02H]
 383  002C  2800     R  JMP L161
 383  002D  0F00     R  MOV A,BANK _focvmax
 383  002E  0084        MOV [04H],A
 383  002F  0F00     R  MOV A,OFFSET _focvmax
 383  0030  0083        MOV [03H],A
 383  0031  0702        MOV A,[02H]
文件:WANJTEST.C   盛群编译器版本 2.86 页次28

 383  0032  0080     R  MOV CR31,A
 383  0033  2800     R  JMP L162
 383  0034              L161:
 383  0034  0F00     R  MOV A,BANK _focvalue
 383  0035  0084        MOV [04H],A
 383  0036  0F00     R  MOV A,OFFSET _focvalue
 383  0037  0083        MOV [03H],A
 383  0038  1502        DECA [02H]
 383  0039  0080     R  MOV b0_18,A
 383  003A  0F00     R  MOV A,BANK _focvalue
 383  003B  0084        MOV [04H],A
 383  003C  0F00     R  MOV A,OFFSET _focvalue
 383  003D  0083        MOV [03H],A
 383  003E  0700     R  MOV A,b0_18
 383  003F  0082        MOV [02H],A
 383  0040  0700     R  MOV A,b0_18
 383  0041  0080     R  MOV CR31,A
 383  0042              L162:
 383  0042  0F00     R  MOV A,BANK _focvalue
 383  0043  0084        MOV [04H],A
文件:WANJTEST.c   盛群编译器版本 2.86 页次30 

 383  0044  0F00     R  MOV A,OFFSET _focvalue
 383  0045  0083        MOV [03H],A
 383  0046  0700     R  MOV A,CR31
 383  0047  0082        MOV [02H],A
 383  0048              L159:

; 385:     hfconsec = hfcursec;
 385  0048  0F00     R  MOV A,BANK _curtime[6]
 385  0049  0084        MOV [04H],A
 385  004A  0F00     R  MOV A,OFFSET _curtime[6]
 385  004B  0083        MOV [03H],A
 385  004C  0702        MOV A,[02H]
 385  004D  0080     R  MOV b0_18,A
 385  004E  0700     R  MOV A,b0_18
 385  004F  0080     R  MOV CR30,A
 385  0050  2800     R  JMP L166
 385  0051              L165:

; 388:        showp();
 388  0051  2000     R  CALL _showp

; 389:        if (!held_long_time)
 389  0052  1080     R  SZ CR29
 389  0053  2800     R  JMP L168

; 391:           if (((hfcursec+120-hfconsec)%120)>2)
 391  0054  0F00     R  MOV A,BANK _curtime[6]
 391  0055  0084        MOV [04H],A
 391  0056  0F00     R  MOV A,OFFSET _curtime[6]
 391  0057  0083        MOV [03H],A
 391  0058  0702        MOV A,[02H]
 391  0059  0B78        ADD A,078h
 391  005A  0080     R  MOV b0_18,A
 391  005B  0700     R  MOV A,b0_18
 391  005C  0200     R  SUB A,CR30
 391  005D  0080     R  MOV b0_18,A
 391  005E  0F78        MOV A,078h
 391  005F  0080     E  MOV RH,A
 391  0060  0700     R  MOV A,b0_18
 391  0061  2000     E  CALL DIVUI
文件:WANJTEST.C   盛群编译器版本 2.86 页次29

 391  0062  0700     E  MOV A,T3
 391  0063  0080     R  MOV b0_18,A
 391  0064  0F02        MOV A,02h
 391  0065  0200     R  SUB A,b0_18
 391  0066  3C0A        SZ [0ah].0
 391  0067  2800     R  JMP L169

; 393:               held_long_time = 1; //set flag
 393  0068  0F01        MOV A,01h
 393  0069  0080     R  MOV CR29,A

; 394:               goto repeat_inc;//increase hour
 394  006A  2800     R  JMP L157
 394  006B              L168:

; 399:        if (hfcursec!=hfconsec)
 399  006B  0F00     R  MOV A,BANK _curtime[6]
 399  006C  0084        MOV [04H],A
文件:WANJTEST.c   盛群编译器版本 2.86 页次31 

 399  006D  0F00     R  MOV A,OFFSET _curtime[6]
 399  006E  0083        MOV [03H],A
 399  006F  0702        MOV A,[02H]
 399  0070  0400     R  XOR A,CR30
 399  0071  3D0A        SZ [0AH].2
 399  0072  2800     R  JMP L174

; 400:            goto repeat_inc;//inc 1, 0.5 sec
 400  0073  2800     R  JMP L157
 400  0074              L174:
 400  0074              L169:
 400  0074              L166:

; 386:     while(_pa == 0)
 386  0074  1092        SZ __pa
 386  0075  2800     R  JMP L178
 386  0076  2800     R  JMP L165
 386  0077              L178:

; 405:   set_timer();//dont understand why call the subroutine
 405  0077  2000     R  CALL _set_timer
 405  0078              L156:
 405  0078  0003        RET
 405  0000  00          LOCAL b0_18 DB ?
 405  0001  00          LOCAL b1_18 DB ?

; 373:     unsigned int held_long_time = 0;//whether long press
 373  0002  00          LOCAL CR29 DB ? ; held_long_time

; 372:     unsigned int hfconsec;
 372  0003  00          LOCAL CR30 DB ? ; hfconsec
 372  0004  00          LOCAL CR31 DB ? ; 160
 372  0079              _key_adjust ENDP

; 410: {unsigned int flag=0;
 410  0000              @ftiequal .SECTION 'CODE'
 410  0000              PUBLIC _ftiequal
 410  0000              _ftiequal PROC

; 409: unsigned int ftiequal(struct wan_time one,struct wan_time twe)
 409  0000              PUBLIC ftiequal0
 409  0000  0007[       LOCAL ftiequal0 DB 7 DUP (?) ; one
            00
            ]
文件:WANJTEST.C   盛群编译器版本 2.86 页次30

 409  0000              PUBLIC ftiequal1
 409  0007  0007[       LOCAL ftiequal1 DB 7 DUP (?) ; twe
            00
            ]

; 410: {unsigned int flag=0;
 410  0000  1F00     R  CLR CR34

; 413:     if((one.wan_year==twe.wan_year)&&(one.wan_month==twe.wan_month)&&(one.wan_week==twe.wan_week)&&(one.wan_day==twe.wan_day))
 413  0001  0700     R  MOV A,ftiequal0
 413  0002  0400     R  XOR A,ftiequal1
 413  0003  390A        SNZ [0ah].2
 413  0004  2800     R  JMP L180
 413  0005  0700     R  MOV A,ftiequal0[1]
文件:WANJTEST.c   盛群编译器版本 2.86 页次32 

 413  0006  0400     R  XOR A,ftiequal1[1]
 413  0007  390A        SNZ [0ah].2
 413  0008  2800     R  JMP L180
 413  0009  0700     R  MOV A,ftiequal0[2]
 413  000A  0400     R  XOR A,ftiequal1[2]
 413  000B  390A        SNZ [0ah].2
 413  000C  2800     R  JMP L180
 413  000D  0700     R  MOV A,ftiequal0[3]
 413  000E  0400     R  XOR A,ftiequal1[3]
 413  000F  390A        SNZ [0ah].2
 413  0010  2800     R  JMP L180

; 414:         if((one.hms.wan_hour==twe.hms.wan_hour)&&(one.hms.wan_minite==twe.hms.wan_minite)&&(one.hms.wan_hfsec==twe.hms.wan_hfsec))
 414  0011  0700     R  MOV A,ftiequal0[4]
 414  0012  0400     R  XOR A,ftiequal1[4]
 414  0013  390A        SNZ [0ah].2
 414  0014  2800     R  JMP L188
 414  0015  0700     R  MOV A,ftiequal0[5]
 414  0016  0400     R  XOR A,ftiequal1[5]
 414  0017  390A        SNZ [0ah].2
 414  0018  2800     R  JMP L188
 414  0019  0700     R  MOV A,ftiequal0[6]
 414  001A  0400     R  XOR A,ftiequal1[6]
 414  001B  390A        SNZ [0ah].2
 414  001C  2800     R  JMP L188

; 415:         {flag=1;}
 415  001D  0F01        MOV A,01h
 415  001E  0080     R  MOV CR34,A
 415  001F              L188:
 415  001F              L180:

; 416: return flag

⌨️ 快捷键说明

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