📄 d12ci.lst
字号:
665 ; i += (j<<8);
666 ; SOURCE LINE # 151
667 ;
668 ; if(bEPPflags.bits.in_isr == 0)
669 ; SOURCE LINE # 153
0020 E500 F 670 MOV A,bEPPflags
0022 20E502 671 JB ACC.5,?C0028
672 ; ENABLE;
673 ; SOURCE LINE # 154
0025 D2AF 674 SETB EA
0027 675 ?C0028:
676 ;
677 ; return i;
678 ; SOURCE LINE # 156
679 ; }
680 ; SOURCE LINE # 157
0027 681 ?C0029:
0027 22 682 RET
683 ; END OF D12_ReadCurrentFrameNumber
684
685
686 ;
687 ; unsigned char D12_ReadEndpoint(unsigned char endp, unsigned char len, unsigned char * buf
)
688
---- 689 RSEG ?PR?_D12_ReadEndpoint?D12CI
0000 690 _D12_ReadEndpoint:
691 USING 0
692 ; SOURCE LINE # 159
0000 8F00 F 693 MOV endp?1055,R7
0002 8D00 F 694 MOV len?1056,R5
0004 8B00 F 695 MOV buf?1057,R3
0006 8A00 F 696 MOV buf?1057+01H,R2
0008 8900 F 697 MOV buf?1057+02H,R1
698 ; {
699 ; SOURCE LINE # 160
700 ; unsigned char i, j;
701 ;
702 ; if(bEPPflags.bits.in_isr == 0)
703 ; SOURCE LINE # 163
000A E500 F 704 MOV A,bEPPflags
000C 20E502 705 JB ACC.5,?C0030
706 ; DISABLE;
707 ; SOURCE LINE # 164
000F C2AF 708 CLR EA
0011 709 ?C0030:
710 ;
711 ; outportb(D12_COMMAND, 0x80 + endp);
712 ; SOURCE LINE # 166
0011 E500 F 713 MOV A,endp?1055
0013 2480 714 ADD A,#080H
0015 850083 F 715 MOV DPH,D12_COMMAND
0018 850082 F 716 MOV DPL,D12_COMMAND+01H
001B F0 717 MOVX @DPTR,A
A51 MACRO ASSEMBLER D12CI 06/23/2003 11:17:01 PAGE 12
718 ; i = inportb(D12_DATA);
719 ; SOURCE LINE # 167
001C 850083 F 720 MOV DPH,D12_DATA
001F 850082 F 721 MOV DPL,D12_DATA+01H
0022 E0 722 MOVX A,@DPTR
0023 F500 F 723 MOV i?1058,A
724 ; i=i & 0x60;
725 ; SOURCE LINE # 168
0025 530060 F 726 ANL i?1058,#060H
727 ; if (endp == 2)
728 ; SOURCE LINE # 169
0028 E500 F 729 MOV A,endp?1055
002A B40213 730 CJNE A,#02H,?C0031
731 ; {
732 ; SOURCE LINE # 170
733 ; if (i == 0x60)
734 ; SOURCE LINE # 171
002D E500 F 735 MOV A,i?1058
002F B46008 736 CJNE A,#060H,?C0032
737 ; bEPPflags.bits.ep1buf_full = 1;
738 ; SOURCE LINE # 172
0032 E500 F 739 MOV A,bEPPflags+01H
0034 4410 740 ORL A,#010H
0036 F500 F 741 MOV bEPPflags+01H,A
0038 8006 742 SJMP ?C0031
003A 743 ?C0032:
744 ; else
745 ; bEPPflags.bits.ep1buf_full = 0;
746 ; SOURCE LINE # 174
003A E500 F 747 MOV A,bEPPflags+01H
003C 54EF 748 ANL A,#0EFH
003E F500 F 749 MOV bEPPflags+01H,A
750 ; }
751 ; SOURCE LINE # 175
0040 752 ?C0031:
753 ;
754 ; if (endp == 4)
755 ; SOURCE LINE # 177
0040 E500 F 756 MOV A,endp?1055
0042 B40413 757 CJNE A,#04H,?C0034
758 ; {
759 ; SOURCE LINE # 178
760 ; if (i == 0x60)
761 ; SOURCE LINE # 179
0045 E500 F 762 MOV A,i?1058
0047 B46008 763 CJNE A,#060H,?C0035
764 ; bEPPflags.bits.ep2buf_full = 1;
765 ; SOURCE LINE # 180
004A E500 F 766 MOV A,bEPPflags+01H
004C 4420 767 ORL A,#020H
004E F500 F 768 MOV bEPPflags+01H,A
0050 8006 769 SJMP ?C0034
0052 770 ?C0035:
771 ; else
772 ; bEPPflags.bits.ep2buf_full = 0;
773 ; SOURCE LINE # 182
0052 E500 F 774 MOV A,bEPPflags+01H
0054 54DF 775 ANL A,#0DFH
0056 F500 F 776 MOV bEPPflags+01H,A
777 ; }
778 ; SOURCE LINE # 183
0058 779 ?C0034:
780 ;
781 ;
782 ; outportb(D12_COMMAND, endp);
783 ; SOURCE LINE # 186
A51 MACRO ASSEMBLER D12CI 06/23/2003 11:17:01 PAGE 13
0058 850083 F 784 MOV DPH,D12_COMMAND
005B 850082 F 785 MOV DPL,D12_COMMAND+01H
005E E500 F 786 MOV A,endp?1055
0060 F0 787 MOVX @DPTR,A
788 ; if((inportb(D12_DATA) & D12_FULLEMPTY) == 0) {
789 ; SOURCE LINE # 187
0061 850083 F 790 MOV DPH,D12_DATA
0064 850082 F 791 MOV DPL,D12_DATA+01H
0067 E0 792 MOVX A,@DPTR
0068 20E00A 793 JB ACC.0,?C0037
794 ; if(bEPPflags.bits.in_isr == 0)
795 ; SOURCE LINE # 188
006B E500 F 796 MOV A,bEPPflags
006D 20E002 797 JB ACC.0,?C0038
798 ; ENABLE;
799 ; SOURCE LINE # 189
0070 D2AF 800 SETB EA
0072 801 ?C0038:
802 ; return 0;
803 ; SOURCE LINE # 190
0072 7F00 804 MOV R7,#00H
0074 22 805 RET
806 ; }
807 ; SOURCE LINE # 191
0075 808 ?C0037:
809 ;
810 ; outportb(D12_COMMAND, 0xF0);
811 ; SOURCE LINE # 193
0075 850083 F 812 MOV DPH,D12_COMMAND
0078 850082 F 813 MOV DPL,D12_COMMAND+01H
007B 74F0 814 MOV A,#0F0H
007D F0 815 MOVX @DPTR,A
816 ; j = inportb(D12_DATA);
817 ; SOURCE LINE # 194
007E 850083 F 818 MOV DPH,D12_DATA
0081 850082 F 819 MOV DPL,D12_DATA+01H
0084 E0 820 MOVX A,@DPTR
821 ; j = inportb(D12_DATA);
822 ; SOURCE LINE # 195
0085 850083 F 823 MOV DPH,D12_DATA
0088 850082 F 824 MOV DPL,D12_DATA+01H
008B E0 825 MOVX A,@DPTR
008C F500 F 826 MOV j?1059,A
827 ;
828 ; if(j > len)
829 ; SOURCE LINE # 197
830 ; MOV A,j?1059
008E D3 831 SETB C
008F 9500 F 832 SUBB A,len?1056
0091 4003 833 JC ?C0040
834 ; j = len;
835 ; SOURCE LINE # 198
0093 850000 F 836 MOV j?1059,len?1056
0096 837 ?C0040:
838 ;
839 ; for(i=0; i<j; i++)
840 ; SOURCE LINE # 200
841
0096 E500 F 842 MOV A,j?1059
0098 6042 843 JZ WRITEDAT_END
844
009A FE 845 MOV R6,A
009B AB00 F 846 MOV R3,buf?1057
847
009D BB011B 848 CJNE R3,#01H,WRITE_DATA
849
A51 MACRO ASSEMBLER D12CI 06/23/2003 11:17:01 PAGE 14
00A0 850083 F 850 MOV DPH,buf?1057+01H
00A3 850082 F 851 MOV DPL,buf?1057+02H
00A6 852 WRITE_XDATA1:
853 ; for(i=0; i<j; i++)
854 ; *(buf+i) = D12_DATA;
855 ; SOURCE LINE # 219
00A6 C083 856 PUSH DPH
00A8 C082 857 PUSH DPL
00AA 850083 F 858 MOV DPH,D12_DATA
00AD 850082 F 859 MOV DPL,D12_DATA+1
00B0 E0 860 MOVX A,@DPTR
00B1 D082 861 POP DPL
00B3 D083 862 POP DPH
00B5 F0 863 MOVX @DPTR,A
00B6 A3 864 INC DPTR
00B7 DEED 865 DJNZ R6,WRITE_XDATA1
00B9 8021 866 SJMP WRITEDAT_END
867
00BB 868 WRITE_DATA:
00BB 500F 869 JNC WRITE_PDATA
00BD A900 F 870 MOV R1,buf?1057+02H
00BF 850083 F 871 MOV DPH,D12_DATA
00C2 850082 F 872 MOV DPL,D12_DATA+1
873
00C5 874 WRITE_DATA1:
875 ; for(i=0; i<j; i++)
876 ; *(buf+i) = D12_DATA;
877 ; SOURCE LINE # 219
878
00C5 E0 879 MOVX A,@DPTR
00C6 F7 880 MOV @R1,A
00C7 09 881 INC R1
00C8 DEFB 882 DJNZ R6,WRITE_DATA1
00CA 8010 883 SJMP WRITEDAT_END
884
00CC 885 WRITE_PDATA:
00CC BBFE0D 886 CJNE R3,#0FEH,WRITEDAT_END
00CF A900 F 887 MOV R1,buf?1057+02H
00D1 850083 F 888 MOV DPH,D12_DATA
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -