ap_common2.lst
来自「炬力方案176*132软件源码,适用于AK1025」· LST 代码 · 共 405 行 · 第 1/2 页
LST
405 行
\ 0053 010000 LD BC,0
\ 0056 3E04 LD A,4
\ 0058 CD0000 CALL LWRD ?L_LSH_L03
\ 005B C5 PUSH BC
\ 005C E5 PUSH HL
\ 005D 0E00 LD C,0
\ 005F ED5B0000 LD DE,(res_fp)
\ 0063 CD0000 CALL LWRD SD_FSeek
\ 0066 E1 POP HL
\ 0067 E1 POP HL
100 SD_FRead(res_fp, &res_entry, sizeof(res_entry_t)); //res_fp->&res_entry
\ 0068 211000 LD HL,16
\ 006B E5 PUSH HL
\ 006C 010000 LD BC,res_entry
\ 006F ED5B0000 LD DE,(res_fp)
\ 0073 CD0000 CALL LWRD SD_FRead
\ 0076 F1 POP AF
101 if( res_entry.type != RES_TYPE_MSTRING) return 0; //非Multisring 返回
\ 0077 3A0600 LD A,(res_entry+6)
\ 007A FE03 CP 3
\ 007C 2806 JR Z,?0014
\ 007E ?0013:
\ 007E 210000 LD HL,0
102
103 ASSERT(res_entry.length <= sizeof(buf));
\ 0081 C32D01 JP LWRD ?0024
\ 0084 ?0014:
104
105 //读数据
106 SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
\ 0084 2A0200 LD HL,(res_entry+2)
\ 0087 E5 PUSH HL
\ 0088 2A0000 LD HL,(res_entry)
\ 008B E5 PUSH HL
\ 008C 0E00 LD C,0
\ 008E ?0029:
\ 008E ED5B0000 LD DE,(res_fp)
\ 0092 CD0000 CALL LWRD SD_FSeek
\ 0095 E1 POP HL
\ 0096 E1 POP HL
107 SD_FRead(res_fp, buf, 50);
\ 0097 213200 LD HL,50
\ 009A E5 PUSH HL
\ 009B 2E08 LD L,8
\ 009D 39 ADD HL,SP
\ 009E 4D LD C,L
\ 009F 44 LD B,H
\ 00A0 ED5B0000 LD DE,(res_fp)
\ 00A4 CD0000 CALL LWRD SD_FRead
\ 00A7 F1 POP AF
108
109 //定位到 string_id
110 p = buf;
\ 00A8 210600 LD HL,6
\ 00AB 39 ADD HL,SP
\ 00AC DD75C8 LD (IX-56),L
\ 00AF DD74C9 LD (IX-55),H
111 string_idtemp=string_id;
\ 00B2 ?0016:
112 while(string_id)
\ 00B2 AF XOR A
\ 00B3 DDB604 OR (IX+4)
\ 00B6 2835 JR Z,?0015
\ 00B8 ?0017:
113 {
114 AddBuf=1;
\ 00B8 DD36CA01 LD (IX-54),1
\ 00BC ?0019:
115 while(*p!=0)
\ 00BC DD6EC8 LD L,(IX-56)
\ 00BF DD66C9 LD H,(IX-55)
\ 00C2 AF XOR A
\ 00C3 B6 OR (HL)
\ 00C4 280D JR Z,?0018
\ 00C6 ?0020:
116 {
117 AddBuf++; //找到第string_id 个0
\ 00C6 DD34CA INC (IX-54)
118 p++;
\ 00C9 DD34C8 INC (IX-56)
\ 00CC 20EE JR NZ,?0019
\ 00CE DD34C9 INC (IX-55)
\ 00D1 18E9 JR ?0019
\ 00D3 ?0018:
119 }
120 string_id--;
\ 00D3 DD3504 DEC (IX+4)
121 res_entry.offset=res_entry.offset+AddBuf;
\ 00D6 210000 LD HL,res_entry
\ 00D9 DD5ECA LD E,(IX-54)
\ 00DC 4F LD C,A
\ 00DD 51 LD D,C
\ 00DE 47 LD B,A
\ 00DF CD0000 CALL LWRD ?L_ADDASG_L03
122 SD_FSeek(res_fp, SEEK_SET, res_entry.offset);
\ 00E2 2A0200 LD HL,(res_entry+2)
\ 00E5 E5 PUSH HL
\ 00E6 2A0000 LD HL,(res_entry)
\ 00E9 E5 PUSH HL
\ 00EA 4F LD C,A
\ 00EB 18A1 JR ?0029
123 SD_FRead(res_fp, buf, 50);
124 p = buf;
\ 00ED ?0015:
125 }
126 string_id=string_idtemp;
127 ASSERT((WORD)(p - buf) <= res_entry.length);
128
129 StrLength=(BYTE)strlen(p);
\ 00ED CD0000 CALL LWRD ?STRLEN_L11
130 /*
131 if((x == 255)&&(string_id!=1)&&(string_id<5)) //16*16字体居中显示
132 {
133 SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
134 PutS(p, -1);
135 }
136 else if((string_id!=1)&&(string_id<5)) ////16*16字体非居中显示
137 {
138 SetTextPos(x, y);
139 PutS(p, -1);
140 }
141 else //6*8字体显示
142 {
143 if(x == 255)
144 {
145 SetTextPos((SCR_WIDTH - StrLength*CHAR_WIDTH) /2, y);
146 PutS(p, -1);
147 }
148 else if(StrLength<22)
149 {
150 SetTextPos(x, y);
151 PutS(p, -1);
152 }
153 else
154 {
155 SetTextPos(0, y);
156 PutS(p, 21);
157 SetTextPos(0, y+8);
158 PutS(p+21, -1);
159 }
160 }
161 */
162 if(x == 255) //16*16字体居中显示
\ 00F0 DD460A LD B,(IX+10)
\ 00F3 04 INC B
\ 00F4 DD4E0C LD C,(IX+12)
\ 00F7 2020 JR NZ,?0022
\ 00F9 ?0021:
163 {
164 SetTextPos((SCR_WIDTH - (BYTE)get_large_text_width(p)) /2, y);
\ 00F9 C5 PUSH BC
\ 00FA DD5EC8 LD E,(IX-56)
\ 00FD DD56C9 LD D,(IX-55)
\ 0100 3E00 LD A,BYTE3 get_large_text_width
\ 0102 213B00 LD HL,LWRD get_large_text_width
\ 0105 CD0000 CALL LWRD ?BANK_CALL_DIRECT_L08
\ 0108 5D LD E,L
\ 0109 50 LD D,B
\ 010A 21B000 LD HL,176
\ 010D A7 AND A
\ 010E ED52 SBC HL,DE
\ 0110 EB EX DE,HL
\ 0111 0E02 LD C,2
\ 0113 CD0000 CALL LWRD ?SS_DIV_L02
\ 0116 C1 POP BC
\ 0117 1803 JR ?0028
165 PutS(p, -1);
166 }
167 else //16*16字体非居中显示
\ 0119 ?0022:
168 {
169 SetTextPos(x, y);
\ 0119 DD5E0A LD E,(IX+10)
\ 011C ?0028:
\ 011C CD0000 CALL LWRD SetTextPos
170 PutS(p, -1);
\ 011F 0EFF LD C,255
\ 0121 DD5EC8 LD E,(IX-56)
\ 0124 DD56C9 LD D,(IX-55)
\ 0127 CD0000 CALL LWRD PutS
\ 012A ?0023:
171 }
172
173 return 1;
\ 012A 210100 LD HL,1
174 }
\ 012D ?0024:
\ 012D C30000 JP LWRD ?BANK_LEAVE_DIRECT_L08
\ 0000 RSEG UDATA0
\ 0000 file_name:
\ 000C DEFS 12
\ 000C dir_name:
\ 002A DEFS 30
\ 002A END
Errors: none
Warnings: none
Code size: 304
Constant size: 0
Static variable size: Data(42) Iram(0)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?