📄 isd51.lst
字号:
495
496
---- 497 RSEG ?PR?ISD51
498 USING 0 ; Assume Registerbank 0 for ARx symbols
499
500
501 PUBLIC ?ISD?HWCALL
0000 C0D0 502 ?ISD?HWCALL: PUSH PSW
0002 C0E0 503 PUSH ACC
0004 74FD 504 MOV A,#0FDH ; Call Break
0006 8012 505 SJMP CallBreak
506
507
0008 508 SerialInterrupt:
0008 C0D0 509 PUSH PSW
000A C0E0 510 PUSH ACC
511 JNB_RI NoSerBreak
513 RBYTE ; Check for 0A5H Break Code
514+1 RD_SBUF ; MOV A,SBUF
516+1 CLR_RI
518
0013 F500 F 519 MOV _ISD_CHAR,A
520
0015 B4A541 521 CJNE A,#0A5H,ReturnI
522
A51 MACRO ASSEMBLER ISD51 08/18/2006 11:05:50 PAGE 9
0018 74FF 529 NoSerBreak: MOV A,#0FFH
001A 75D000 530 CallBreak: MOV PSW,#0 ; Select Register Bank 0
001D C000 531 PUSH AR0
001F C001 532 PUSH AR1
0021 78FF 533 MOV R0,#?ISD?RAMTOP
534
0023 10AF02 538 JBC EA,ChkEA
0026 54FB 539 ANL A,#0FBH
0028 540 ChkEA:
541
00DD 542 EAI BIT 0DDH ; Enable bit for AUX Interrupt
0028 D200 F 543 SETB SaveEAI
002A 10DD02 544 JBC EAI,ChkEAI
002D C200 F 545 CLR SaveEAI
002F 546 ChkEAI:
547
002F F6 548 MOV @R0,A
549 SET_TI
551
552 ; Called when a Breakpoint is reached or in Single Stepping Mode
553
554 ; Sends Break-Idenfier, R0, ACC, PSW, PCH, PCL, R1
555
0032 558 Send7Bytes: SBYTE ; Send Byte
559+1 JNB_TI $
561+1 CLR_TI
563+1 WR_SBUF ; MOV SBUF,A
0039 D001 565 POP AR1
003B 7805 566 MOV R0,#5
003D D0E0 567 SendStackFrame: POP ACC
003F 1100 F 568 ACALL ?ISD?SENDBYTE
0041 D8FA 569 DJNZ R0,SendStackFrame
0043 E9 570 MOV A,R1
0044 1100 F 571 ?ISD?CMDLOOP2: ACALL ?ISD?SENDBYTE
572
573 ; Wait for Command
574 ; CmdAddrL, CmdAddrH, R0, ACC
575
0046 1100 F 576 ?ISD?CMDLOOP: ACALL ?ISD?GETBYTE ; Command Address
0048 C0E0 577 PUSH ACC
004A 1100 F 578 ACALL ?ISD?GETBYTE
004C C0E0 579 PUSH ACC
004E 1100 F 580 ACALL ?ISD?GETBYTE
0050 F8 581 MOV R0,A
582 ;;; ACALL ?ISD?GETBYTE
583 ;;; RET
584
0051 585 ?ISD?GETBYTE: GBYTE
586+1 JNB_RI $
588+1 RBYTE
0058 22 593 RET
594
595
A51 MACRO ASSEMBLER ISD51 08/18/2006 11:05:50 PAGE 10
616
0059 D0E0 617 ReturnI: POP ACC
005B D0D0 618 POP PSW
005D 32 619 RETI
620
621
622
005E 623 ?ISD?SENDBYTE: SBYTE
624+1 JNB_TI $
626+1 CLR_TI
628+1 WR_SBUF ; MOV SBUF,A
0065 22 630 RET
631
632 ;--------------------------------------------------------------------------
633 ; Command: Restart User Program
634 ; LOW (?ISD?RESTART), HIGH (?ISD?RESTART), R0, PCL, PCH, PSW, R1, ACC
635 ;
636 ;
0066 C0E0 637 ?ISD?RESTART: PUSH ACC ; PCL Content of User Program
0068 1100 F 638 ACALL ?ISD?GETBYTE
006A C0E0 639 PUSH ACC ; PCH Content of User Program
006C 1100 F 640 ACALL ?ISD?GETBYTE
006E C0E0 641 PUSH ACC ; PSW Content of User Program
0070 1100 F 642 ACALL ?ISD?GETBYTE
0072 F9 643 MOV R1,A ; R1 Content of User Program
0073 1100 F 644 ACALL ?ISD?GETBYTE ; ACC Content of User Program
0075 C0E0 645 PUSH ACC
0077 C000 646 PUSH AR0
0079 78FF 647 MOV R0,#?ISD?RAMTOP
007B E6 648 MOV A,@R0
649
650 SET_ES
007E D000 652 POP AR0
0080 13 653 RRC A
0081 5010 654 JNC StepMode
655 CLR_TI ; Go Mode
657
658
0085 A200 F 659 MOV C,SaveEAI
0087 92DD 660 MOV EAI,C
0089 13 661 RRC A
008A 5020 662 JNC RetMode
008C D0E0 663 POP ACC
008E D0D0 664 POP PSW
0090 D2AF 665 SETB EA
0092 32 666 RETI
0093 13 667 StepMode: RRC A
0094 500B 668 JNC StepModeRet
0096 D0E0 669 POP ACC
A51 MACRO ASSEMBLER ISD51 08/18/2006 11:05:50 PAGE 11
0098 A200 F 670 MOV C,SaveEAI
009A 92DD 671 MOV EAI,C
009C D0D0 672 POP PSW
009E D2AF 673 SETB EA
00A0 32 674 RETI
675
00A1 D0E0 676 StepModeRet: POP ACC
00A3 A200 F 677 MOV C,SaveEAI
00A5 92DD 678 MOV EAI,C
00A7 D0D0 679 POP PSW
00A9 D2AF 680 SETB EA
00AB 22 681 RET
690
00AC 13 691 RetMode: RRC A
00AD D0E0 692 POP ACC
00AF 5005 693 JNC EAClr
00B1 D0D0 694 POP PSW
00B3 D2AF 695 SETB EA
00B5 22 696 RET
697
00B6 D0D0 698 EAClr: POP PSW
00B8 22 699 RET
705
706 ;--------------------------------------------------------------------------;
707 ; Insert HW Breakpoints
708
709
710 ; Command: Write IData Memory Bytes
711 ; LOW (?ISD?WR_IMEMN), HIGH (?ISD?WR_IMEMN), Adr, Cnt, ContBytes [...]
712 PUBLIC ?ISD?WR_IMEMN
00B9 F9 713 ?ISD?WR_IMEMN: MOV R1,A
00BA 1100 F 714 IMEM2LOOP: ACALL ?ISD?GETBYTE
00BC F6 715 MOV @R0,A
00BD 08 716 INC R0
00BE D9FA 717 DJNZ R1,IMEM2LOOP
00C0 0100 F 718 AJMP ?ISD?CMDLOOP
719
720
721 ;--------------------------------------------------------------------------
722 ; Command: Write Code Flash
723 ; LOW (?ISD?WR_FLASH), HIGH (?ISD?WR_FLASH), FlashAdrL, FlashAdrH
724 PUBLIC ?ISD?WR_FLASH
00C2 725 ?ISD?WR_FLASH: CWRITE
00EC 0100 F 760 AJMP ?ISD?CMDLOOP2
761
762
763 ;--------------------------------------------------------------------------
764 ; Command: Write SFR DPL, DPH
765 ; LOW (?ISD?WRITESFR00), HIGH (?ISD?WRITESFR00), DPL, DPH
766 ;
767 ;
00EE 768 ?ISD?WRITESFR00:
00EE 8882 769 MOV DPL,R0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -