📄 ssp.lst
字号:
264 0F01 0DBF rlf ?a_LoadSSPBUF+1
265 0F02 0821 movf _ByteCount,w
266 0F03 00C0 movwf ?a_LoadSSPBUF+2
267 0F04 01C1 clrf ?a_LoadSSPBUF+3
268 0F05 083F movf ?a_LoadSSPBUF+1,w
269 0F06 0641 xorwf ?a_LoadSSPBUF+3,w
270 0F07 1D03 btfss 3,2
271 0F08 2F0B goto u305
272 0F09 083E movf ?a_LoadSSPBUF,w
273 0F0A 0640 xorwf ?a_LoadSSPBUF+2,w
274 0F0B u305
275 0F0B 1D03 btfss 3,2
276 0F0C 2F0F goto l37
277 ;ssp.c: 215: IndexCount = SSPIndex;
278 0F0D 0827 movf _SSPIndex,w
279 0F0E 00A5 movwf _IndexCount
280 0F0F l37
281 ;ssp.c: 218: SSPBUF = (ByteCount % 2) ? TRIP[In
+ dexCount] : TRIP[IndexCount] >> 8;
282 0F0F 1821 btfsc _ByteCount,0
283 0F10 2F1C goto u326
284 0F11 0825 movf _IndexCount,w
285 0F12 0725 addwf _IndexCount,w
286 0F13 3EB2 addlw _TRIP^(0+256)
287 0F14 L10
288 0F14 0084 movwf 4
289 0F15 1783 bsf 3,7
290 0F16 0800 movf 0,w
291 0F17 00FA movwf btemp
292 0F18 0A84 incf 4
293 0F19 0800 movf 0,w
294 0F1A 00FB movwf btemp+1
295 0F1B 2F73 goto L3
296 0F1C u326
297 0F1C 1303 bcf 3,6 ;carry unused
298 0F1D 0825 movf _IndexCount,w
299 0F1E 0725 addwf _IndexCount,w
300 0F1F 3EB2 addlw _TRIP^(0+256)
301 0F20 L11
302 0F20 0084 movwf 4
303 0F21 1783 bsf 3,7
304 0F22 0800 movf 0,w
305 0F23 2F73 goto L3
306 ;ssp.c: 220: } else if (ByteCount <2*SSPSize*4)
+ {
307 0F24 L16
308 0F24 1003 bcf 3,0
309 0F25 0DBE rlf ?a_LoadSSPBUF
310 0F26 0DBF rlf ?a_LoadSSPBUF+1
311 0F27 1003 bcf 3,0
312 0F28 0DBE rlf ?a_LoadSSPBUF
313 0F29 0DBF rlf ?a_LoadSSPBUF+1
314 0F2A 1003 bcf 3,0
315 0F2B 0DBE rlf ?a_LoadSSPBUF
316 0F2C 0DBF rlf ?a_LoadSSPBUF+1
317 0F2D 0821 movf _ByteCount,w
318 0F2E 00C0 movwf ?a_LoadSSPBUF+2
319 0F2F 01C1 clrf ?a_LoadSSPBUF+3
320 0F30 0841 movf ?a_LoadSSPBUF+3,w
321 0F31 3A80 xorlw 128
322 0F32 00FA movwf btemp
323 0F33 083F movf ?a_LoadSSPBUF+1,w
324 0F34 3A80 xorlw 128
325 0F35 027A subwf btemp,w
326 0F36 1D03 btfss 3,2
327 0F37 2F3A goto u335
328 0F38 083E movf ?a_LoadSSPBUF,w
329 0F39 0240 subwf ?a_LoadSSPBUF+2,w
330 0F3A u335
331 0F3A 1803 btfsc 3,0
332 0F3B 2F74 goto l28
333 ;ssp.c: 225: if (ByteCount == 2*SSPSize*3)
334 0F3C 3003 movlw 3
335 0F3D 00FC movwf btemp+2
336 0F3E 01FD clrf btemp+3
337 0F3F 0828 movf _SSPSize,w
338 0F40 00FA movwf btemp
339 0F41 01FB clrf btemp+1
340 0F42 1003 bcf 3,0
341 0F43 0DFA rlf btemp
342 0F44 0DFB rlf btemp+1
343 0F45 120A 118A 2782 fcall awmul
+ 120A 158A
344 0F4A 0821 movf _ByteCount,w
345 0F4B 00BE movwf ?a_LoadSSPBUF
346 0F4C 01BF clrf ?a_LoadSSPBUF+1
347 0F4D 087F movf btemp+5,w
348 0F4E 063F xorwf ?a_LoadSSPBUF+1,w
349 0F4F 1D03 btfss 3,2
350 0F50 2F53 goto u345
351 0F51 087E movf btemp+4,w
352 0F52 063E xorwf ?a_LoadSSPBUF,w
353 0F53 u345
354 0F53 1D03 btfss 3,2
355 0F54 2F57 goto l40
356 ;ssp.c: 226: IndexCount = SSPIndex;
357 0F55 0827 movf _SSPIndex,w
358 0F56 00A5 movwf _IndexCount
359 0F57 l40
360 ;ssp.c: 229: SSPBUF = (ByteCount % 2) ? GUARD[I
+ ndexCount] : GUARD[IndexCount] >> 8;
361 0F57 1821 btfsc _ByteCount,0
362 0F58 2F64 goto u366
363 0F59 0825 movf _IndexCount,w
364 0F5A 0725 addwf _IndexCount,w
365 0F5B 3E90 addlw _GUARD^(0+256)
366 0F5C 0084 movwf 4
367 0F5D 1783 bsf 3,7
368 0F5E 0800 movf 0,w
369 0F5F 00FA movwf btemp
370 0F60 0A84 incf 4
371 0F61 0800 movf 0,w
372 0F62 00FB movwf btemp+1
373 0F63 2F6C goto u367
374 0F64 u366
375 0F64 1283 bcf 3,5
376 0F65 1303 bcf 3,6 ;carry unused
377 0F66 0825 movf _IndexCount,w
378 0F67 0725 addwf _IndexCount,w
379 0F68 3E90 addlw _GUARD^(0+256)
380 0F69 0084 movwf 4
381 0F6A 1783 bsf 3,7
382 0F6B 0800 movf 0,w
383 0F6C u367
384 0F6C 1283 bcf 3,5
385 0F6D 1303 bcf 3,6 ;carry unused
386 0F6E 2F73 goto L3
387 ;ssp.c: 231: }
388 0F6F l29
389 0F6F 08A6 movf _SSPCommand
390 0F70 1D03 btfss 3,2
391 0F71 2F74 goto l28
392 ;ssp.c: 236: SSPBUF = 17;
393 0F72 3011 movlw 17
394 0F73 L3
395 0F73 0093 movwf 19 ;volatile
396 0F74 l28
397 ;ssp.c: 238: }
398 0F74 0AA1 incf _ByteCount
399 ;ssp.c: 246: if (ByteCount % 2 == 0)
400 0F75 1C21 btfss _ByteCount,0
401 ;ssp.c: 247: IndexCount++;
402 0F76 0AA5 incf _IndexCount
403 ;ssp.c: 249: }
404 0F77 0008 return ;W free
405 0F78 _UnloadSSPBUF
406 ;ssp.c: 262: void UnloadSSPBUF(void) {
407 0F78 0183 clrf 3 ;select bank 0
408 0F79 0813 movf 19,w ;volatile
409 0F7A 00AF movwf _TempInt
410 0F7B 01B0 clrf _TempInt+1
411 ;ssp.c: 268: if (SSPCommand == 0x30) {
412 0F7C 0826 movf _SSPCommand,w
413 0F7D 3A30 xorlw 48
414 0F7E 1D03 btfss 3,2
415 0F7F 2FC0 goto l45
416 ;ssp.c: 277: if (ByteCount == 3)
417 0F80 0821 movf _ByteCount,w
418 0F81 3A03 xorlw 3
419 0F82 1D03 btfss 3,2
420 0F83 2F8B goto l46
421 ;ssp.c: 278: TRIP[SSPIndex] = TempInt << 8;
422 0F84 082F movf _TempInt,w
423 0F85 00FB movwf btemp+1
424 0F86 01FA clrf btemp
425 0F87 0827 movf _SSPIndex,w
426 0F88 0727 addwf _SSPIndex,w
427 0F89 3EB2 addlw _TRIP^(0+256)
428 0F8A 2F95 goto L17
429 0F8B l46
430 ;ssp.c: 279: else if (ByteCount == 5)
431 0F8B 0821 movf _ByteCount,w
432 0F8C 3A05 xorlw 5
433 0F8D 1D03 btfss 3,2
434 0F8E 2F9C goto l47
435 ;ssp.c: 280: GUARD[SSPIndex] = TempInt << 8;
436 0F8F 082F movf _TempInt,w
437 0F90 00FB movwf btemp+1
438 0F91 01FA clrf btemp
439 0F92 0827 movf _SSPIndex,w
440 0F93 0727 addwf _SSPIndex,w
441 0F94 3E90 addlw _GUARD^(0+256)
442 0F95 L17
443 0F95 0084 movwf 4
444 0F96 1783 bsf 3,7
445 0F97 087A movf btemp,w
446 0F98 0080 movwf 0
447 0F99 0A84 incf 4
448 0F9A 087B movf btemp+1,w
449 0F9B 0080 movwf 0
450 0F9C l47
451 ;ssp.c: 283: if (ByteCount == 4) {
452 0F9C 0821 movf _ByteCount,w
453 0F9D 3A04 xorlw 4
454 0F9E 1D03 btfss 3,2
455 0F9F 2FAB goto l49
456 ;ssp.c: 284: TRIP[SSPIndex] &= 0xFF00;
457 0FA0 0827 movf _SSPIndex,w
458 0FA1 0727 addwf _SSPIndex,w
459 0FA2 3EB2 addlw _TRIP^(0+256)
460 0FA3 0084 movwf 4
461 0FA4 1783 bsf 3,7
462 0FA5 0180 clrf 0
463 0FA6 0A84 incf 4
464 ;ssp.c: 285: TRIP[SSPIndex] |= TempInt;
465 0FA7 0827 movf _SSPIndex,w
466 0FA8 0727 addwf _SSPIndex,w
467 0FA9 3EB2 addlw _TRIP^(0+256)
468 0FAA 2FB9 goto L18
469 ;ssp.c: 286: } else if (ByteCount == 6) {
470 0FAB l49
471 0FAB 0821 movf _ByteCount,w
472 0FAC 3A06 xorlw 6
473 0FAD 1D03 btfss 3,2
474 0FAE 2FC0 goto l45
475 ;ssp.c: 287: GUARD[SSPIndex] &= 0xFF00;
476 0FAF 0827 movf _SSPIndex,w
477 0FB0 0727 addwf _SSPIndex,w
478 0FB1 3E90 addlw _GUARD^(0+256)
479 0FB2 0084 movwf 4
480 0FB3 1783 bsf 3,7
481 0FB4 0180 clrf 0
482 0FB5 0A84 incf 4
483 ;ssp.c: 288: GUARD[SSPIndex] |= TempInt;
484 0FB6 0827 movf _SSPIndex,w
485 0FB7 0727 addwf _SSPIndex,w
486 0FB8 3E90 addlw _GUARD^(0+256)
487 0FB9 L18
488 0FB9 0084 movwf 4
489 0FBA 1783 bsf 3,7
490 0FBB 082F movf _TempInt,w
491 0FBC 0480 iorwf 0
492 0FBD 0A84 incf 4
493 0FBE 0830 movf _TempInt+1,w
494 0FBF 0480 iorwf 0
495 0FC0 l45
496 ;ssp.c: 289: }
497 0FC0 0AA1 incf _ByteCount
498 ;ssp.c: 293: }
499 0FC1 0008 return ;W free
500 0FC2 _SSPISR
501 ;ssp.c: 60: void SSPISR(void) {
502 0FC2 0183 clrf 3 ;select bank 0
503 0FC3 118C bcf 12,3
504 ;ssp.c: 69: if (STOP == 1) {
505 0FC4 1683 bsf 3,5
506 0FC5 1E14 btfss 20,4
507 0FC6 2FCC goto l5
508 ;ssp.c: 71: Flags.SSPBF = 0;
509 0FC7 1283 bcf 3,5
510 0FC8 1023 bcf _Flags,0
511 ;ssp.c: 74: SSPOV = 0;
512 0FC9 1314 bcf 20,6
513 ;ssp.c: 75: CKP = 1;
514 0FCA 1614 bsf 20,4
515 ;ssp.c: 76: return;
516 0FCB 0008 return
517 0FCC l5
518 0FCC 1D14 btfss 20,2
519 0FCD 1814 btfsc 20,0
520 0FCE 2FD4 goto l6
521 ;ssp.c: 80: Flags.SSPBF = 1;
522 0FCF 1283 bcf 3,5
523 0FD0 1423 bsf _Flags,0
524 ;ssp.c: 82: SSPOV = 0;
525 0FD1 1314 bcf 20,6
526 ;ssp.c: 83: CKP = 1;
527 0FD2 1614 bsf 20,4
528 ;ssp.c: 84: return;
529 0FD3 0008 return
530 0FD4 l6
531 ;ssp.c: 85: }
532 0FD4 1A94 btfsc 20,5
533 0FD5 2FDC goto l8
534 ;ssp.c: 91: if (RW == 0) {
535 0FD6 1914 btfsc 20,2
536 0FD7 2FFA goto l12
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -