📄 feedis_spi.lis
字号:
021E ; if(!ISDmoney[temp-1])
021E 80E0 ldi R24,<_ISDmoney-1
0220 90E0 ldi R25,>_ISDmoney-1
0222 E0910000 lds R30,L13
0226 FF27 clr R31
0228 E80F add R30,R24
022A F91F adc R31,R25
022C 2080 ldd R2,z+0
022E 2220 tst R2
0230 31F4 brne L43
0232 .dbline 224
0232 ; {
0232 .dbline 226
0232 ;
0232 ; temp--;
0232 80910000 lds R24,L13
0236 8150 subi R24,1
0238 80930000 sts L13,R24
023C .dbline 228
023C ;
023C ; }
023C 1BC0 xjmp L44
023E L43:
023E .dbline 230
023E ; else
023E ; {
023E .dbline 231
023E ; ISDstatus &= 0b11100111;
023E 80910600 lds R24,_ISDstatus
0242 877E andi R24,231
0244 80930600 sts _ISDstatus,R24
0248 .dbline 232
0248 ; ISDstatus += (--temp) << 3;
0248 80910000 lds R24,L13
024C 8150 subi R24,1
024E 282E mov R2,R24
0250 20920000 sts L13,R2
0254 220C lsl R2
0256 220C lsl R2
0258 220C lsl R2
025A 30900600 lds R3,_ISDstatus
025E 320C add R3,R2
0260 30920600 sts _ISDstatus,R3
0264 .dbline 233
0264 ; if((temp1 > 0) )
0264 2224 clr R2
0266 2416 cp R2,R20
0268 08F0 brlo X9
026A 8EC0 xjmp L26
026C X9:
026C .dbline 234
026C ; temp = 4;
026C 84E0 ldi R24,4
026E 80930000 sts L13,R24
0272 .dbline 235
0272 ; break;
0272 8AC0 xjmp L26
0274 L44:
0274 .dbline 237
0274 ; }
0274 ; temp1++;
0274 4395 inc R20
0276 .dbline 238
0276 ; if(temp1 == 2)
0276 4230 cpi R20,2
0278 69F4 brne L48
027A .dbline 239
027A ; {
027A .dbline 240
027A ; ISDstatus &= 0x1f;
027A 80910600 lds R24,_ISDstatus
027E 8F71 andi R24,31
0280 80930600 sts _ISDstatus,R24
0284 .dbline 241
0284 ; ISDstatus |= 0x80;
0284 80910600 lds R24,_ISDstatus
0288 8068 ori R24,128
028A 80930600 sts _ISDstatus,R24
028E .dbline 242
028E ; SPEAK = 0;
028E 2224 clr R2
0290 20920000 sts _SPEAK,R2
0294 .dbline 243
0294 ; }
0294 L48:
0294 .dbline 245
0294 L41:
0294 .dbline 221
0294 4230 cpi R20,2
0296 08F4 brsh X10
0298 C2CF xjmp L40
029A X10:
029A .dbline 246
029A ;
029A ; }
029A ; break;
029A 76C0 xjmp L26
029C L50:
029C .dbline 248
029C ; case 1:
029C ; ISDplay(ISDmoney[temp]+64);
029C 80E0 ldi R24,<_ISDmoney
029E 90E0 ldi R25,>_ISDmoney
02A0 E0910000 lds R30,L13
02A4 FF27 clr R31
02A6 E80F add R30,R24
02A8 F91F adc R31,R25
02AA 0081 ldd R16,z+0
02AC 005C subi R16,192 ; addi 64
02AE DFDE xcall _ISDplay
02B0 .dbline 249
02B0 ; temp1 = 0;
02B0 4427 clr R20
02B2 3BC0 xjmp L52
02B4 L51:
02B4 .dbline 251
02B4 ; while(temp1 < 1)
02B4 ; {
02B4 .dbline 252
02B4 ; if(!ISDmoney[temp-1])
02B4 80E0 ldi R24,<_ISDmoney-1
02B6 90E0 ldi R25,>_ISDmoney-1
02B8 E0910000 lds R30,L13
02BC FF27 clr R31
02BE E80F add R30,R24
02C0 F91F adc R31,R25
02C2 2080 ldd R2,z+0
02C4 2220 tst R2
02C6 31F4 brne L54
02C8 .dbline 253
02C8 ; {
02C8 .dbline 255
02C8 ;
02C8 ; temp--;
02C8 80910000 lds R24,L13
02CC 8150 subi R24,1
02CE 80930000 sts L13,R24
02D2 .dbline 257
02D2 ;
02D2 ; }
02D2 1BC0 xjmp L55
02D4 L54:
02D4 .dbline 259
02D4 ; else
02D4 ; {
02D4 .dbline 260
02D4 ; ISDstatus &= 0b11100111;
02D4 80910600 lds R24,_ISDstatus
02D8 877E andi R24,231
02DA 80930600 sts _ISDstatus,R24
02DE .dbline 261
02DE ; ISDstatus += (--temp) << 3;
02DE 80910000 lds R24,L13
02E2 8150 subi R24,1
02E4 282E mov R2,R24
02E6 20920000 sts L13,R2
02EA 220C lsl R2
02EC 220C lsl R2
02EE 220C lsl R2
02F0 30900600 lds R3,_ISDstatus
02F4 320C add R3,R2
02F6 30920600 sts _ISDstatus,R3
02FA .dbline 262
02FA ; if((temp1 > 0) )
02FA 2224 clr R2
02FC 2416 cp R2,R20
02FE 08F0 brlo X11
0300 43C0 xjmp L26
0302 X11:
0302 .dbline 263
0302 ; temp = 4;
0302 84E0 ldi R24,4
0304 80930000 sts L13,R24
0308 .dbline 264
0308 ; break;
0308 3FC0 xjmp L26
030A L55:
030A .dbline 266
030A ; }
030A ; temp1++;
030A 4395 inc R20
030C .dbline 267
030C ; if(temp1 == 1)
030C 4130 cpi R20,1
030E 69F4 brne L59
0310 .dbline 268
0310 ; {
0310 .dbline 269
0310 ; ISDstatus &= 0x1f;
0310 80910600 lds R24,_ISDstatus
0314 8F71 andi R24,31
0316 80930600 sts _ISDstatus,R24
031A .dbline 270
031A ; ISDstatus |= 0x80;
031A 80910600 lds R24,_ISDstatus
031E 8068 ori R24,128
0320 80930600 sts _ISDstatus,R24
0324 .dbline 271
0324 ; SPEAK = 0;
0324 2224 clr R2
0326 20920000 sts _SPEAK,R2
032A .dbline 272
032A ; }
032A L59:
032A .dbline 273
032A L52:
032A .dbline 250
032A 4130 cpi R20,1
032C 08F4 brsh X12
032E C2CF xjmp L51
0330 X12:
0330 .dbline 274
0330 ; }
0330 ; break;
0330 2BC0 xjmp L26
0332 L61:
0332 .dbline 276
0332 ; case 0:
0332 ; if(ISDmoney[temp])
0332 80E0 ldi R24,<_ISDmoney
0334 90E0 ldi R25,>_ISDmoney
0336 E0910000 lds R30,L13
033A FF27 clr R31
033C E80F add R30,R24
033E F91F adc R31,R25
0340 2080 ldd R2,z+0
0342 2220 tst R2
0344 49F0 breq L62
0346 .dbline 277
0346 ; ISDplay(ISDmoney[temp]+54);
0346 E0910000 lds R30,L13
034A FF27 clr R31
034C E80F add R30,R24
034E F91F adc R31,R25
0350 0081 ldd R16,z+0
0352 0A5C subi R16,202 ; addi 54
0354 8CDE xcall _ISDplay
0356 05C0 xjmp L63
0358 L62:
0358 .dbline 279
0358 ; else
0358 ; ISDstatus &= 0xfd;
0358 80910600 lds R24,_ISDstatus
035C 8D7F andi R24,253
035E 80930600 sts _ISDstatus,R24
0362 L63:
0362 .dbline 280
0362 ; ISDstatus &= 0x1f;
0362 80910600 lds R24,_ISDstatus
0366 8F71 andi R24,31
0368 80930600 sts _ISDstatus,R24
036C .dbline 281
036C ; ISDstatus |= 0x80;
036C 80910600 lds R24,_ISDstatus
0370 8068 ori R24,128
0372 80930600 sts _ISDstatus,R24
0376 .dbline 282
0376 ; SPEAK = 0;
0376 2224 clr R2
0378 20920000 sts _SPEAK,R2
037C .dbline 283
037C ; break;
037C 05C0 xjmp L26
037E L64:
037E .dbline 285
037E ; case 4:
037E ; ISDplay(54);
037E 06E3 ldi R16,54
0380 76DE xcall _ISDplay
0382 .dbline 286
0382 ; temp = 5;
0382 85E0 ldi R24,5
0384 80930000 sts L13,R24
0388 .dbline 287
0388 ; break;
0388 .dbline 289
0388 ; default:
0388 ; break;
0388 L26:
0388 .dbline 294
0388 ; }
0388 ; //ISDstatus |= 0x02;
0388 ;
0388 ; //ISDstatus |= 0x02;
0388 ; return 0;
0388 0027 clr R16
038A 10C0 xjmp L12
038C L21:
038C .dbline 296
038C ; }
038C ; if((ISDstatus & 0xe0) == 0x80 && SPEAK)
038C 80910600 lds R24,_ISDstatus
0390 807E andi R24,224
0392 8038 cpi R24,128
0394 59F4 brne L65
0396 20900000 lds R2,_SPEAK
039A 2220 tst R2
039C 39F0 breq L65
039E .dbline 297
039E ; {
039E .dbline 298
039E ; ISDplay(44); //
039E 0CE2 ldi R16,44
03A0 66DE xcall _ISDplay
03A2 .dbline 299
03A2 ; ISDstatus &= 0xfc;
03A2 80910600 lds R24,_ISDstatus
03A6 8C7F andi R24,252
03A8 80930600 sts _ISDstatus,R24
03AC .dbline 301
03AC ;
03AC ; }
03AC L65:
03AC .dbline 303
03AC ; //if(ISDstatus & 0x04) //paly the money voice
03AC ; {
03AC .dbline 318
03AC ; /*if((ISDstatus & 0xe0) == 0xe0) //play "thank you"
03AC ; {
03AC ; ISDplay(THANKYOU);
03AC ; ISDstatus &= 0b11111110; //clear the bit 0,then wait for the end of this voice
03AC ; return 0;
03AC ; }
03AC ; temp = (ISDstatus>>3) & 0x03;
03AC ; ISDstatus &= 0b00000011; //clear the bit 2-bit 7
03AC ; ISDstatus += temp << 2 + 3;
03AC ;
03AC ;
03AC ;
03AC ; ISDstatus |= 0b00000010; //set the busy bit
03AC ; */
03AC ; }
03AC .dbline -2
03AC L12:
03AC 0E940000 xcall pop_gset1
03B0 .dbline 0 ; func end
03B0 0895 ret
03B2 .dbsym r temp1 20 c
03B2 .dbend
.area bss(ram, con, rel)
0001 .dbfile C:\DOCUME~1\11111\桌面\13个费显MEGA64\重显MEGA64\feedis_spi.c
0001 _ISDmoney::
0001 .blkb 5
0006 .dbsym e ISDmoney _ISDmoney A[5:5]c
0006 _ISDstatus::
0006 .blkb 1
0007 .dbsym e ISDstatus _ISDstatus c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -