📄 isd51.lst
字号:
01DC C0D9 1011 PUSH 0xD9
01DE C0D8 1012 PUSH 0xD8
01E0 0100 F 1013 AJMP Send7Bytes
1014 ;
1015 ;--------------------------------------------------------------------------
1016 ;14 Read CPU Core SFR registers:
1017 ; LOW (?ISD?READSFR14), HIGH (?ISD?READSFR14), dummy, dummy
1018 ;
01E2 1019 ?ISD?READSFR14:
01E2 E5E6 1020 MOV A,0xE6
01E4 C0E5 1021 PUSH 0xE5
01E6 C0E4 1022 PUSH 0xE4
01E8 C0E3 1023 PUSH 0xE3
01EA C0E2 1024 PUSH 0xE2
01EC C0E1 1025 PUSH 0xE1
01EE C0DF 1026 PUSH 0xDF
01F0 0100 F 1027 AJMP Send7Bytes
1028 ;
1029 ;--------------------------------------------------------------------------
1030 ;15 Read CPU Core SFR registers:
1031 ; LOW (?ISD?READSFR15), HIGH (?ISD?READSFR15), dummy, dummy
1032 ;
01F2 1033 ?ISD?READSFR15:
A51 MACRO ASSEMBLER ISD51 08/18/2006 11:05:50 PAGE 16
01F2 E5ED 1034 MOV A,0xED
01F4 C0EC 1035 PUSH 0xEC
01F6 C0EB 1036 PUSH 0xEB
01F8 C0EA 1037 PUSH 0xEA
01FA C0E9 1038 PUSH 0xE9
01FC C0E8 1039 PUSH 0xE8
01FE C0E7 1040 PUSH 0xE7
0200 0100 F 1041 AJMP Send7Bytes
1042 ;
1043 ;--------------------------------------------------------------------------
1044 ;16 Read CPU Core SFR registers:
1045 ; LOW (?ISD?READSFR16), HIGH (?ISD?READSFR16), dummy, dummy
1046 ;
0202 1047 ?ISD?READSFR16:
0202 E5F5 1048 MOV A,0xF5
0204 C0F4 1049 PUSH 0xF4
0206 C0F3 1050 PUSH 0xF3
0208 C0F2 1051 PUSH 0xF2
020A C0F1 1052 PUSH 0xF1
020C C0EF 1053 PUSH 0xEF
020E C0EE 1054 PUSH 0xEE
0210 0100 F 1055 AJMP Send7Bytes
1056 ;
1057 ;--------------------------------------------------------------------------
1058 ;17 Read CPU Core SFR registers:
1059 ; LOW (?ISD?READSFR17), HIGH (?ISD?READSFR17), dummy, dummy
1060 ;
0212 1061 ?ISD?READSFR17:
0212 E5FC 1062 MOV A,0xFC
0214 C0FB 1063 PUSH 0xFB
0216 C0FA 1064 PUSH 0xFA
0218 C0F9 1065 PUSH 0xF9
021A C0F8 1066 PUSH 0xF8
021C C0F7 1067 PUSH 0xF7
021E C0F6 1068 PUSH 0xF6
0220 0100 F 1069 AJMP Send7Bytes
1070 ;
1071 ;--------------------------------------------------------------------------
1072 ;18 Read CPU Core SFR registers:
1073 ; LOW (?ISD?READSFR18), HIGH (?ISD?READSFR18), dummy, dummy
1074 ;
0222 1075 ?ISD?READSFR18:
0222 E5FF 1076 MOV A,0xFF
0224 C0FE 1077 PUSH 0xFE
0226 C0FD 1078 PUSH 0xFD
0228 C0E0 1079 PUSH ACC ; dummy
022A C0E0 1080 PUSH ACC ; dummy
022C C0E0 1081 PUSH ACC ; dummy
022E C0E0 1082 PUSH ACC ; dummy
0230 0100 F 1083 AJMP Send7Bytes
1084 ;
1085 ;--------------------------------------------------------------------------;
1086 ; putchar: transmit a character via the serial interface
1087
1088 PUBLIC _putchar ; C-Prototype: char putchar (char c);
1089 PUBLIC ?ISD?PUTCHAR, ?ISD?PUTCHAR_END
1090
0232 1091 ?ISD?PUTCHAR:
0232 BFA700 1092 _putchar: CJNE R7,#0A7H,$+3
0235 5026 1093 JNC pc_end
0237 EF 1094 MOV A,R7
0238 640A 1095 XRL A,#0AH
1096 SAVE_ES
1098 CLR_ES
023E 7009 1100 JNZ pc_char
0240 740D 1101 MOV A,#0DH
A51 MACRO ASSEMBLER ISD51 08/18/2006 11:05:50 PAGE 17
1102 CLR_TI
1104 WR_SBUF
1106 JNB_TI $
0249 EF 1108 pc_char: MOV A,R7
1109 CLR_TI
1111 WR_SBUF
1113 JNB_TI $
0251 5008 1115 JNC pc_char1 ; ISD51 is not initialized
0253 78FF 1116 MOV R0,#?ISD?RAMTOP
0255 E6 1117 MOV A,@R0
1118
0256 30E002 1121 JNB ACC.0,pc_char1
1122
1123 CLR_TI
025B 1125 pc_char1:
1126 RESTO_ES
025D 1128 ?ISD?PUTCHAR_END:
025D 22 1129 pc_end: RET
1130
1131
1132
1133 ;--------------------------------------------------------------------------
1134 ; _getkey: waits for a character to be received from the serial port
1135
1136
1137 PUBLIC _getkey ; C-Prototype: char _getkey (void);
1138
025E 1139 _getkey: JNB_ES _getkey2
0261 E500 F 1141 MOV A,_ISD_CHAR
0263 64A5 1142 XRL A,#0A5H
0265 60F7 1143 JZ _getkey ; no character available
0267 74A5 1144 MOV A,#0A5H
0269 C500 F 1145 XCH A,_ISD_CHAR
026B FF 1146 MOV R7,A
026C 22 1147 RET
1148
026D 1149 _getkey2: JNB_RI $
1151 RD_SBUF
0272 B4A505 1153 CJNE A,#0A5H,gk_clrRI
0275 120000 F 1154 CALL __isd_init
0278 80E4 1155 SJMP _getkey
1156
027A FF 1157 gk_clrRI: MOV R7,A
1158 CLR_RI
027D 22 1160 RET
1161
1162
1163 PUBLIC _iskey ; C-Prototype: bit _iskey (void);
027E 1164 _iskey: JNB_ES _iskey2
0281 E500 F 1166 MOV A,_ISD_CHAR
0283 B4A510 1167 CJNE A,#0A5H,ik_on
0286 C3 1168 CLR C
0287 22 1169 RET
1170
0288 C3 1171 _iskey2: CLR C
1172 JNB_RI ik_end
1174 RD_SBUF
028E B4A505 1176 CJNE A,#0A5H,ik_on
0291 120000 F 1177 CALL __isd_init
0294 80E8 1178 SJMP _iskey
0296 D3 1179 ik_on: SETB C
0297 22 1180 ik_end: RET
1181
1182
A51 MACRO ASSEMBLER ISD51 08/18/2006 11:05:50 PAGE 18
1183 ?DT?ISD51 SEGMENT DATA
---- 1184 RSEG ?DT?ISD51
1185
1186 PUBLIC _ISD_CHAR
0000 1187 _ISD_CHAR: DS 1 ; current user input character
1188
1189
---- 1190 RSEG ?PR?ISD51
1191
1192
1193 ;--------------------------------------------------------------------------
1194 ; __isd_init: prepare idata RAM for ISD51
0298 1195 __isd_init:
0298 78FF 1196 MOV R0,#?ISD?RAMTOP
029A 76FF 1197 MOV @R0,#0xFF
1198
029C 7500A5 F 1199 MOV _ISD_CHAR,#0A5H ; no character available
1200
1201 SET_ES
02A1 22 1203 RET
02A2 00 1204 NOP
1205
1206 END
A51 MACRO ASSEMBLER ISD51 08/18/2006 11:05:50 PAGE 19
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?BI?ISD51 . . . . . B SEG 0001H REL=UNIT
?DT?ISD51 . . . . . D SEG 0001H REL=UNIT
?ISD?CBLK_SIZE. . . N NUMB 0080H A
?ISD?CMDLOOP. . . . C ADDR 0046H R SEG=?PR?ISD51
?ISD?CMDLOOP2 . . . C ADDR 0044H R SEG=?PR?ISD51
?ISD?CMP_E. . . . . N NUMB 7FFFH A
?ISD?CMP_S. . . . . N NUMB 0000H A
?ISD?CORE . . . . . N ADDR ----- EXT
?ISD?GETBYTE. . . . C ADDR 0051H R SEG=?PR?ISD51
?ISD?HWCALL . . . . C ADDR 0000H R SEG=?PR?ISD51
?ISD?PUTCHAR. . . . C ADDR 0232H R SEG=?PR?ISD51
?ISD?PUTCHAR_END. . C ADDR 025DH R SEG=?PR?ISD51
?ISD?RAMTOP . . . . N NUMB 00FFH A
?ISD?READSFR00. . . C ADDR 0102H R SEG=?PR?ISD51
?ISD?READSFR01. . . C ADDR 0112H R SEG=?PR?ISD51
?ISD?READSFR02. . . C ADDR 0122H R SEG=?PR?ISD51
?ISD?READSFR03. . . C ADDR 0132H R SEG=?PR?ISD51
?ISD?READSFR04. . . C ADDR 0142H R SEG=?PR?ISD51
?ISD?READSFR05. . . C ADDR 0152H R SEG=?PR?ISD51
?ISD?READSFR06. . . C ADDR 0162H R SEG=?PR?ISD51
?ISD?READSFR07. . . C ADDR 0172H R SEG=?PR?ISD51
?ISD?READSFR08. . . C ADDR 0182H R SEG=?PR?ISD51
?ISD?READSFR09. . . C ADDR 0192H R SEG=?PR?ISD51
?ISD?READSFR10. . . C ADDR 01A2H R SEG=?PR?ISD51
?ISD?READSFR11. . . C ADDR 01B2H R SEG=?PR?ISD51
?ISD?READSFR12. . . C ADDR 01C2H R SEG=?PR?ISD51
?ISD?READSFR13. . . C ADDR 01D2H R SEG=?PR?ISD51
?ISD?READSFR14. . . C ADDR 01E2H R SEG=?PR?ISD51
?ISD?READSFR15. . . C ADDR 01F2H R SEG=?PR?ISD51
?ISD?READSFR16. . . C ADDR 0202H R SEG=?PR?ISD51
?ISD?READSFR17. . . C ADDR 0212H R SEG=?PR?ISD51
?ISD?READSFR18. . . C ADDR 0222H R SEG=?PR?ISD51
?ISD?RESTART. . . . C ADDR 0066H R SEG=?PR?ISD51
?ISD?SENDBYTE . . . C ADDR 005EH R SEG=?PR?ISD51
?ISD?VERSION. . . . N NUMB 00CDH A
?ISD?WRITESFR00 . . C ADDR 00EEH R SEG=?PR?ISD51
?ISD?WRITESFR01 . . C ADDR 00F4H R SEG=?PR?ISD51
?ISD?WRITESFR02 . . C ADDR 00FAH R SEG=?PR?ISD51
?ISD?WRITESFR03 . . C ADDR 00FEH R SEG=?PR?ISD51
?ISD?WR_FLASH . . . C ADDR 00C2H R SEG=?PR?ISD51
?ISD?WR_IMEMN . . . C ADDR 00B9H R SEG=?PR?ISD51
?PR?ISD51 . . . . . C SEG 02A3H 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
CHKEAI. . . . . . . C ADDR 002FH R SEG=?PR?ISD51
CW_ERROR. . . . . . C ADDR 00E7H R SEG=?PR?ISD51
CW_OK . . . . . . . C ADDR 00E9H R SEG=?PR?ISD51
DPH . . . . . . . . D ADDR 0083H A
DPL . . . . . . . .
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -