?? sleep.lst
字號:
< //Check if other key is pressed
000050EC 0C 99 01 00 < r4 = SW_KeyStatusBuf
< ?L_SearchOtherKeyLoop:
000050EE 05 49 < cmp r4,bp
000050EF 05 5E < jz ?L_SearchNextLine
000050F0 C4 96 < r3 = [r4]
000050F1 5F C6 < test r3,0x001F
000050F2 02 5E < jz ?L_SearchNextLine
000050F3 0F 9F 29 51 < goto ?L_ReStartScanKey //other key is still pressed
< ?L_SearchNextLine:
000050F5 41 08 < r4+= 0x0001
000050F6 0C 49 06 00 < cmp r4,SW_KeyStatusBuf+0x0005
000050F8 4B 3E < jl ?L_SearchOtherKeyLoop
< //----------------------------------------------------------------------------
000050F9 0D 9B 3B 51 < bp = TB_KeyNumber //r2 - key status buffer's value
000050FB 01 0B < bp+= r1
000050FC C5 96 < r3 = [bp]
000050FD 0A B5 00 1F < r2&= 0x1F00
000050FF 4A 95 < r2 = r2 LSL 2
< ?L_GetRowNumberLoop:
00005100 41 26 < r3-= 0x0001
00005101 42 95 < r2 = r2 LSL 1
00005102 43 6E < jpl ?L_GetRowNumberLoop
00005103 0A C5 FF 7F < test r2,0x7FFF
00005105 02 5E < jz ?L_NoOtherKey
00005106 0F 9F 29 51 < goto ?L_ReStartScanKey
< ?L_NoOtherKey:
00005108 0B 07 40 51 < r3+= TB_KeyCode
0000510A C3 92 < r1 = [r3] //get key_code
<
0000510B 12 95 06 00 < r2 = [RPtr_KeyQueueBuf]
0000510D 0A C5 00 08 < test r2,0x0800
0000510F 19 4E < jnz ?L_ReStartScanKey //KeyQueueBuf is full
< ?L_KeyBufNotFull:
00005110 7A 95 < r2 = r2 lsr 4
00005111 47 B4 < r2&= 0x0007 //write pointer
00005112 62 97 < r3 = r2 lsr 1
00005113 0B 07 07 00 < r3+= SW_KeyQueueBuf
00005115 C3 98 < r4 = [r3]
00005116 41 C4 < test r2,0x0001
00005117 05 5E < jz ?L_SaveKeyLowByte
00005118 0C B9 FF 00 < r4&= 0x00FF
0000511A 59 93 < r1 = r1 LSL 4
0000511B 59 93 < r1 = r1 LSL 4
0000511C 02 EE < jmp ?L_KeyValueIsOk
< ?L_SaveKeyLowByte:
0000511D 0C B9 00 FF < r4&= 0xFF00
< ?L_KeyValueIsOk:
0000511F 04 A3 < r1|= r4
00005120 C3 D2 < [r3] = r1 //store key
00005121 11 93 06 00 < r1 = [RPtr_KeyQueueBuf]
00005123 09 03 10 01 < r1+= 0x0110 //increase writer pointer & size
00005125 09 B3 7F FF < r1&= 0xFF7F
00005127 19 D3 06 00 < [RPtr_KeyQueueBuf] = r1
< ?L_ReStartScanKey:
00005129 40 F0 6C 51 < call F_ClrKeyStatusBuf
0000512B 40 92 < r1 = S_ReadKeyBeforeBounce //initialize RW_KeyScanFlag
0000512C 19 D3 00 00 < [RW_KeyScanFlag] = r1 //scan from R-option line
0000512E 09 93 D3 50 < r1 = TW_ScanLine
00005130 C1 92 < r1 = [r1]
00005131 40 F1 < int off
00005132 12 95 06 70 < r2 = [P_IOB_Buf]
00005134 0A B5 E0 00 < r2&= 0x00E0
00005136 01 A5 < r2|= r1
00005137 1A D5 05 70 < [P_IOB_Data] = r2 //Set scan line
00005139 43 F1 < int fiq,irq
0000513A 90 9A < retf
< //-------------------------------------------------------------------------------
< TB_KeyNumber:
0000513B 05 00 < .DW 5
0000513C 0A 00 < .DW 10
0000513D 0F 00 < .DW 15
0000513E 14 00 < .DW 20
0000513F 19 00 < .DW 25
< //-------------------------------------------------------------------------------
< TB_KeyCode:
00005140 01 00 04 00 < .DW C_One, C_Four, C_Seven, C_Star, C_Flash
07 00 0B 00
10 00
00005145 02 00 05 00 < .DW C_Two, C_Five, C_Eight, C_Zero, C_Store
08 00 0A 00
12 00
0000514A 03 00 06 00 < .DW C_Three, C_Six, C_Nine, C_Pound, C_Redial
09 00 0C 00
1C 00
0000514F 13 00 00 00 < .DW C_Recall, C_Nop, C_Pause, C_IP, C_HandFree
0D 00 19 00
1A 00
00005154 18 00 14 00 < .DW C_Del, C_Out, C_Down, C_Up, C_Hold
17 00 16 00
1B 00
< //-------------------------------------------------------------------------------
< // IOB0 IOB1 IOB2 IOB3 IOB4 IOA5(Opt1) IOA6(Opt2)
< // +--------+-------+--------+----------+---------+-----------+-----------+
< // IOA0 | 1 | 2 | 3 | Recall | Delete | lock 0 | PPS |
< // +--------+-------+--------+----------+---------+-----------+-----------+
< // IOA1 | 4 | 5 | 6 | AC | Out | lock all | M/B |
< // +--------+-------+--------+----------+---------+-----------+-----------+
< // IOA2 | 7 | 8 | 9 | Pause | Down | P/T | Lock0,9 |
< // +--------+-------+--------+----------+---------+-----------+-----------+
< // IOA3 |*(P-->T)| 0 | # | IP | Up | Enalarm | --- |
< // +--------+-------+--------+----------+---------+-----------+-----------+
< // IOA4 | Flash | Store | Redial | HandFree | Hold | Tel/Box | --- |
< // +--------+-------+--------+----------+---------+-----------+-----------+
< //-------------------------------------------------------------------------------
< F_StartKeyScan: //initialize key scan
00005159 40 92 < r1 = 0 //clear KeyStatusBuf
0000515A 19 D3 06 00 < [RPtr_KeyQueueBuf] = r1 //clear KeyQueueBufPtr
0000515C 40 F0 6C 51 < call F_ClrKeyStatusBuf
0000515E 40 92 < r1 = S_ReadKeyBeforeBounce //initialize KeyScanFlag
0000515F 19 D3 00 00 < [RW_KeyScanFlag] = r1 //scan from R-option line
00005161 09 93 D3 50 < r1 = TW_ScanLine
00005163 C1 92 < r1 = [r1]
00005164 12 95 06 70 < r2 = [P_IOB_Buf]
00005166 0A B5 E0 00 < r2&= 0x00E0
00005168 01 A5 < r2|= r1
00005169 1A D5 05 70 < [P_IOB_Data] = r2 //Set scan line
0000516B 90 9A < retf
< //-------------------------------------------------------------------------------
< F_ClrKeyStatusBuf:
0000516C 0D 9B 01 00 < bp = SW_KeyStatusBuf
0000516E 09 93 FF 00 < r1 = 0x00FF
< ?L_ClrBufLoop:
00005170 C5 94 < r2 = [bp]
00005171 01 B5 < r2&= r1
00005172 D5 D4 < [bp++] = r2
00005173 0D 4B 06 00 < cmp bp,SW_KeyStatusBuf+5
00005175 46 0E < jb ?L_ClrBufLoop
00005176 90 9A < retf
< //-----------------------------------------------------------------------
< //Key code constants
< .const C_One = 0x0001
< .const C_Two = 0x0002
< .const C_Three = 0x0003
< .const C_Four = 0x0004
< .const C_Five = 0x0005
< .const C_Six = 0x0006
< .const C_Seven = 0x0007
< .const C_Eight = 0x0008
< .const C_Nine = 0x0009
< .const C_Zero = 0x000A
< .const C_Star = 0x000B
< .const C_Pound = 0x000C
< .const C_Pause = 0x000D
< .const C_Flash = 0x0010
< .const C_Store = 0x0012
< .const C_Set = 0x0012
< .const C_Recall = 0x0013
< .const C_Search = 0x0013
< .const C_Out = 0x0014
< .const C_Up = 0x0016
< .const C_Down = 0x0017
< .const C_Del = 0x0018
< .const C_IP = 0x0019
< .const C_HandFree = 0x001A
< .const C_Hold = 0x001B
< .const C_Redial = 0x001C
< .const C_Nop = 0x0000
< //-----------------------------------------------------------------------
< //-----------------------------------------------------------------------
.include Display.ASM
< //-----------------------------------------------------------------------
< //Program Name: LcdDisplay.asm
< //Applied Body: SPT6604A
< //Project Description: This is a Demo of Display in SPT6604A
< //Compile: Sunplus u'nSP IDE
< //Programmer: WangXu
< //Current Version: 1.0
< //Write Date: 2002/10/30
< //-----------------------------------------------------------------------
< .const P_ColonSeg = P_Seg24
< .const B_ColonCom = B_Com7
< .const P_OutOfAreaSeg = P_Seg8
< .const B_OutOfAreaCom = B_Com3
< .const P_PrivateSeg = P_Seg10
< .const B_PrivateCom = B_Com3
< .const P_MessageSeg = P_Seg14
< .const B_MessageCom = B_Com3
< //-----------------------------------------------------------------------
00005177 < .code
< F_ShowMessageFlag:
00005177 11 93 0E 71 < r1 = [P_MessageSeg]
00005179 48 A2 < r1|= B_MessageCom
0000517A 19 D3 0E 71 < [P_MessageSeg] = r1
0000517C 90 9A < retf
< //-----------------------------------------------------------------------
< F_ClrMessageFlag:
0000517D 11 93 0E 71 < r1 = [P_MessageSeg]
0000517F 09 B3 F7 FF < r1&= 0xffff-B_MessageCom
00005181 19 D3 0E 71 < [P_MessageSeg] = r1
00005183 90 9A < retf
< //-----------------------------------------------------------------------
< F_ShowOutOfAreaFlag:
00005184 11 93 08 71 < r1 = [P_OutOfAreaSeg]
00005186 48 A2 < r1|= B_OutOfAreaCom
00005187 19 D3 08 71 < [P_OutOfAreaSeg] = r1
00005189 90 9A < retf
< //-----------------------------------------------------------------------
< F_ShowPrivateFlag:
0000518A 11 93 0A 71 < r1 = [P_PrivateSeg]
0000518C 48 A2 < r1|= B_PrivateCom
0000518D 19 D3 0A 71 < [P_PrivateSeg] = r1
0000518F 90 9A < retf
< //-----------------------------------------------------------------------
< F_ShowMonthDay:
00005190 0D 9B 44 53 < bp = TW_MonthDay
< ?L_ShowMontDayLoop:
00005192 D5 92 < r1 = [bp++]
00005193 05 5E < jz ?L_ShowFlagOver
00005194 D5 96 < r3 = [bp++]
00005195 C1 98 < r4 = [r1]
00005196 03 A9 < r4|= r3
00005197 C1 D8 < [r1] = r4
00005198 47 EE < jmp ?L_ShowMontDayLoop
< ?L_ShowFlagOver:
00005199 90 9A < retf
< //-----------------------------------------------------------------------
< F_ShowTime:
0000519A 0D 9B 08 53 < bp = TW_DigitTime
0000519C 12 95 0C 00 < r2 = [RW_Time]
0000519E 0A C5 00 0F < test r2,0x0f00
000051A0 02 4E < jnz ?L_HourLowOk
000051A1 0A A5 00 0A < r2|= 0x0a00
< ?L_HourLowOk:
000051A3 0A C5 F0 00 < test r2,0x00f0
000051A5 02 4E < jnz ?L_MinuteHighOk
000051A6 0A A5 A0 00 < r2|= 0x00a0
< ?L_MinuteHighOk:
000051A8 4F C4 < test r2,0x000f
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -