📄 isd51.lst
字号:
01C8 C0EE 982 PUSH 0xEE
01CA 0100 F 983 AJMP Send7Bytes
984 ;
985 ;--------------------------------------------------------------------------
986 ;17 Read CPU Core SFR registers:
987 ; LOW (?ISD?READSFR17), HIGH (?ISD?READSFR17), dummy, dummy
988 ;
01CC 989 ?ISD?READSFR17:
01CC E5FC 990 MOV A,0xFC
01CE C0FB 991 PUSH 0xFB
01D0 C0FA 992 PUSH 0xFA
01D2 C0F9 993 PUSH 0xF9
01D4 C0F8 994 PUSH 0xF8
01D6 C0F7 995 PUSH 0xF7
01D8 C0F6 996 PUSH 0xF6
01DA 0100 F 997 AJMP Send7Bytes
998 ;
999 ;--------------------------------------------------------------------------
1000 ;18 Read CPU Core SFR registers:
1001 ; LOW (?ISD?READSFR18), HIGH (?ISD?READSFR18), dummy, dummy
1002 ;
01DC 1003 ?ISD?READSFR18:
01DC E5FF 1004 MOV A,0xFF
A51 MACRO ASSEMBLER ISD51 11/11/2005 06:13:35 PAGE 16
01DE C0FE 1005 PUSH 0xFE
01E0 C0FD 1006 PUSH 0xFD
01E2 C0E0 1007 PUSH ACC ; dummy
01E4 C0E0 1008 PUSH ACC ; dummy
01E6 C0E0 1009 PUSH ACC ; dummy
01E8 C0E0 1010 PUSH ACC ; dummy
01EA 0100 F 1011 AJMP Send7Bytes
1012 ;
1013 ;--------------------------------------------------------------------------;
1014 ; putchar: transmit a character via the serial interface
1015
1016 PUBLIC _putchar ; C-Prototype: char putchar (char c);
1017 PUBLIC ?ISD?PUTCHAR, ?ISD?PUTCHAR_END
1018
01EC 1019 ?ISD?PUTCHAR:
01EC BFA700 1020 _putchar: CJNE R7,#0A7H,$+3
01EF 5026 1021 JNC pc_end
01F1 EF 1022 MOV A,R7
01F2 640A 1023 XRL A,#0AH
1024 SAVE_ES
1026 CLR_ES
01F8 7009 1028 JNZ pc_char
01FA 740D 1029 MOV A,#0DH
1030 CLR_TI
1032 WR_SBUF
1034 JNB_TI $
0203 EF 1036 pc_char: MOV A,R7
1037 CLR_TI
1039 WR_SBUF
1041 JNB_TI $
020B 5008 1043 JNC pc_char1 ; ISD51 is not initialized
020D 78FF 1044 MOV R0,#?ISD?RAMTOP
020F E6 1045 MOV A,@R0
1046
0210 30E002 1049 JNB ACC.0,pc_char1
1050
1051 CLR_TI
0215 1053 pc_char1:
1054 RESTO_ES
0217 1056 ?ISD?PUTCHAR_END:
0217 22 1057 pc_end: RET
1058
1059
1060
1061 ;--------------------------------------------------------------------------
1062 ; _getkey: waits for a character to be received from the serial port
1063
1064
1065 PUBLIC _getkey ; C-Prototype: char _getkey (void);
1066
0218 1067 _getkey: JNB_ES _getkey2
021B E500 F 1069 MOV A,_ISD_CHAR
021D 64A5 1070 XRL A,#0A5H
021F 60F7 1071 JZ _getkey ; no character available
0221 74A5 1072 MOV A,#0A5H
0223 C500 F 1073 XCH A,_ISD_CHAR
0225 FF 1074 MOV R7,A
0226 22 1075 RET
1076
0227 1077 _getkey2: JNB_RI $
1079 RD_SBUF
022C B4A505 1081 CJNE A,#0A5H,gk_clrRI
022F 120000 F 1082 CALL __isd_init
0232 80E4 1083 SJMP _getkey
A51 MACRO ASSEMBLER ISD51 11/11/2005 06:13:35 PAGE 17
1084
0234 FF 1085 gk_clrRI: MOV R7,A
1086 CLR_RI
0237 22 1088 RET
1089
1090
1091 PUBLIC _iskey ; C-Prototype: bit _iskey (void);
0238 1092 _iskey: JNB_ES _iskey2
023B E500 F 1094 MOV A,_ISD_CHAR
023D B4A510 1095 CJNE A,#0A5H,ik_on
0240 C3 1096 CLR C
0241 22 1097 RET
1098
0242 C3 1099 _iskey2: CLR C
1100 JNB_RI ik_end
1102 RD_SBUF
0248 B4A505 1104 CJNE A,#0A5H,ik_on
024B 120000 F 1105 CALL __isd_init
024E 80E8 1106 SJMP _iskey
0250 D3 1107 ik_on: SETB C
0251 22 1108 ik_end: RET
1109
1110
1111 ?DT?ISD51 SEGMENT DATA
---- 1112 RSEG ?DT?ISD51
1113
1114 PUBLIC _ISD_CHAR
0000 1115 _ISD_CHAR: DS 1 ; current user input character
1116
1117
---- 1118 RSEG ?PR?ISD51
1119
1120
1121 ;--------------------------------------------------------------------------
1122 ; __isd_init: prepare idata RAM for ISD51
0252 1123 __isd_init:
0252 78FF 1124 MOV R0,#?ISD?RAMTOP
0254 76FF 1125 MOV @R0,#0xFF
1126
0256 7500A5 F 1127 MOV _ISD_CHAR,#0A5H ; no character available
1128
1129 SET_ES
025B 22 1131 RET
025C 00 1132 NOP
1133
1134 END
A51 MACRO ASSEMBLER ISD51 11/11/2005 06:13:35 PAGE 18
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?DT?ISD51 . . . . . D SEG 0001H REL=UNIT
?ISD?CBLK_SIZE. . . N NUMB 0001H A
?ISD?CMDLOOP. . . . C ADDR 003FH R SEG=?PR?ISD51
?ISD?CMDLOOP2 . . . C ADDR 003DH R SEG=?PR?ISD51
?ISD?CMP_E. . . . . N NUMB FFFFH A
?ISD?CMP_S. . . . . N NUMB 0000H A
?ISD?CORE . . . . . N ADDR ----- EXT
?ISD?GETBYTE. . . . C ADDR 004AH R SEG=?PR?ISD51
?ISD?HWCALL . . . . C ADDR 0000H R SEG=?PR?ISD51
?ISD?PUTCHAR. . . . C ADDR 01ECH R SEG=?PR?ISD51
?ISD?PUTCHAR_END. . C ADDR 0217H R SEG=?PR?ISD51
?ISD?RAMTOP . . . . N NUMB 00FFH A
?ISD?READSFR00. . . C ADDR 00BCH R SEG=?PR?ISD51
?ISD?READSFR01. . . C ADDR 00CCH R SEG=?PR?ISD51
?ISD?READSFR02. . . C ADDR 00DCH R SEG=?PR?ISD51
?ISD?READSFR03. . . C ADDR 00ECH R SEG=?PR?ISD51
?ISD?READSFR04. . . C ADDR 00FCH R SEG=?PR?ISD51
?ISD?READSFR05. . . C ADDR 010CH R SEG=?PR?ISD51
?ISD?READSFR06. . . C ADDR 011CH R SEG=?PR?ISD51
?ISD?READSFR07. . . C ADDR 012CH R SEG=?PR?ISD51
?ISD?READSFR08. . . C ADDR 013CH R SEG=?PR?ISD51
?ISD?READSFR09. . . C ADDR 014CH R SEG=?PR?ISD51
?ISD?READSFR10. . . C ADDR 015CH R SEG=?PR?ISD51
?ISD?READSFR11. . . C ADDR 016CH R SEG=?PR?ISD51
?ISD?READSFR12. . . C ADDR 017CH R SEG=?PR?ISD51
?ISD?READSFR13. . . C ADDR 018CH R SEG=?PR?ISD51
?ISD?READSFR14. . . C ADDR 019CH R SEG=?PR?ISD51
?ISD?READSFR15. . . C ADDR 01ACH R SEG=?PR?ISD51
?ISD?READSFR16. . . C ADDR 01BCH R SEG=?PR?ISD51
?ISD?READSFR17. . . C ADDR 01CCH R SEG=?PR?ISD51
?ISD?READSFR18. . . C ADDR 01DCH R SEG=?PR?ISD51
?ISD?RESTART. . . . C ADDR 005FH R SEG=?PR?ISD51
?ISD?SENDBYTE . . . C ADDR 0057H R SEG=?PR?ISD51
?ISD?VERSION. . . . N NUMB 00CDH A
?ISD?WRITESFR00 . . C ADDR 00A8H R SEG=?PR?ISD51
?ISD?WRITESFR01 . . C ADDR 00AEH R SEG=?PR?ISD51
?ISD?WRITESFR02 . . C ADDR 00B4H R SEG=?PR?ISD51
?ISD?WRITESFR03 . . C ADDR 00B8H R SEG=?PR?ISD51
?ISD?WR_FLASH . . . C ADDR 009EH R SEG=?PR?ISD51
?ISD?WR_IMEMN . . . C ADDR 0095H R SEG=?PR?ISD51
?PR?ISD51 . . . . . C SEG 025DH REL=INBLOCK
ACC . . . . . . . . D ADDR 00E0H A
AR0 . . . . . . . . D ADDR 0000H A
AR1 . . . . . . . . D ADDR 0001H A
AUXR. . . . . . . . D ADDR 008EH A
B . . . . . . . . . D ADDR 00F0H A
CALLBREAK . . . . . C ADDR 001AH R SEG=?PR?ISD51
CBLK. . . . . . . . N NUMB 0010H A
CHKEA . . . . . . . C ADDR 0028H R SEG=?PR?ISD51
DPH . . . . . . . . D ADDR 0083H A
DPL . . . . . . . . D ADDR 0082H A
EA. . . . . . . . . B ADDR 00A8H.7 A
EACLR . . . . . . . C ADDR 0092H R SEG=?PR?ISD51
ES. . . . . . . . . B ADDR 00A8H.4 A
GK_CLRRI. . . . . . C ADDR 0234H R SEG=?PR?ISD51
IE. . . . . . . . . D ADDR 00A8H A
IK_END. . . . . . . C ADDR 0251H R SEG=?PR?ISD51
IK_ON . . . . . . . C ADDR 0250H R SEG=?PR?ISD51
IMEM2LOOP . . . . . C ADDR 0096H R SEG=?PR?ISD51
ISD51_CONFIGURATION N NUMB -----
A51 MACRO ASSEMBLER ISD51 11/11/2005 06:13:35 PAGE 19
NOSERBREAK. . . . . C ADDR 0018H R SEG=?PR?ISD51
P0. . . . . . . . . D ADDR 0080H A
P1. . . . . . . . . D ADDR 0090H A
P2. . . . . . . . . D ADDR 00A0H A
P3. . . . . . . . . D ADDR 00B0H A
PC_CHAR . . . . . . C ADDR 0203H R SEG=?PR?ISD51
PC_CHAR1. . . . . . C ADDR 0215H R SEG=?PR?ISD51
PC_END. . . . . . . C ADDR 0217H R SEG=?PR?ISD51
PH_FMADRL . . . . . D ADDR 00E6H A
PH_FMCON. . . . . . D ADDR 00E4H A
PSW . . . . . . . . D ADDR 00D0H A
RETMODE . . . . . . C ADDR 0088H R SEG=?PR?ISD51
RETURNI . . . . . . C ADDR 0052H R SEG=?PR?ISD51
RI. . . . . . . . . B ADDR 0098H.0 A
SBUF. . . . . . . . D ADDR 0099H A
SCON. . . . . . . . D ADDR 0098H A
SEND7BYTES. . . . . C ADDR 002BH R SEG=?PR?ISD51
SENDSTACKFRAME. . . C ADDR 0036H R SEG=?PR?ISD51
SERIALINTERRUPT . . C ADDR 0008H R SEG=?PR?ISD51
SINTRVEC. . . . . . N NUMB 0023H A
SP. . . . . . . . . D ADDR 0081H A
STEPMODE. . . . . . C ADDR 007EH R SEG=?PR?ISD51
TI. . . . . . . . . B ADDR 0098H.1 A
_GETKEY . . . . . . C ADDR 0218H R SEG=?PR?ISD51
_GETKEY2. . . . . . C ADDR 0227H R SEG=?PR?ISD51
_ISD_CHAR . . . . . D ADDR 0000H R SEG=?DT?ISD51
_ISKEY. . . . . . . C ADDR 0238H R SEG=?PR?ISD51
_ISKEY2 . . . . . . C ADDR 0242H R SEG=?PR?ISD51
_PUTCHAR. . . . . . C ADDR 01ECH R SEG=?PR?ISD51
__ISD_INIT. . . . . C ADDR 0252H R SEG=?PR?ISD51
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -