📄 isd51.lst
字号:
01B7 C0EE 976 PUSH 0xEE
01B9 0100 F 977 AJMP Send7Bytes
978 ;
979 ;--------------------------------------------------------------------------
980 ;17 Read CPU Core SFR registers:
981 ; LOW (?ISD?READSFR17), HIGH (?ISD?READSFR17), dummy, dummy
982 ;
01BB 983 ?ISD?READSFR17:
01BB E5FC 984 MOV A,0xFC
01BD C0FB 985 PUSH 0xFB
01BF C0FA 986 PUSH 0xFA
01C1 C0F9 987 PUSH 0xF9
01C3 C0F8 988 PUSH 0xF8
01C5 C0F7 989 PUSH 0xF7
01C7 C0F6 990 PUSH 0xF6
01C9 0100 F 991 AJMP Send7Bytes
992 ;
993 ;--------------------------------------------------------------------------
994 ;18 Read CPU Core SFR registers:
995 ; LOW (?ISD?READSFR18), HIGH (?ISD?READSFR18), dummy, dummy
996 ;
01CB 997 ?ISD?READSFR18:
01CB E5FF 998 MOV A,0xFF
A51 MACRO ASSEMBLER ISD51 09/27/2006 15:13:06 PAGE 16
01CD C0FE 999 PUSH 0xFE
01CF C0FD 1000 PUSH 0xFD
01D1 C0E0 1001 PUSH ACC ; dummy
01D3 C0E0 1002 PUSH ACC ; dummy
01D5 C0E0 1003 PUSH ACC ; dummy
01D7 C0E0 1004 PUSH ACC ; dummy
01D9 0100 F 1005 AJMP Send7Bytes
1006 ;
1007 ;--------------------------------------------------------------------------;
1008 ; putchar: transmit a character via the serial interface
1009
1010 PUBLIC _putchar ; C-Prototype: char putchar (char c);
1011 PUBLIC ?ISD?PUTCHAR, ?ISD?PUTCHAR_END
1012
01DB 1013 ?ISD?PUTCHAR:
01DB BFA700 1014 _putchar: CJNE R7,#0A7H,$+3
01DE 5025 1015 JNC pc_end
01E0 EF 1016 MOV A,R7
01E1 640A 1017 XRL A,#0AH
1018 SAVE_ES
1020 CLR_ES
01E7 7009 1022 JNZ pc_char
01E9 740D 1023 MOV A,#0DH
1024 CLR_TI
1026 WR_SBUF
1028 JNB_TI $
01F2 EF 1030 pc_char: MOV A,R7
1031 CLR_TI
1033 WR_SBUF
1035 JNB_TI $
01FA 5007 1037 JNC pc_char1 ; ISD51 is not initialized
01FC 78FF 1038 MOV R0,#?ISD?RAMTOP
01FE E6 1039 MOV A,@R0
1040
01FF 7002 1041 JNZ pc_char1
1045 CLR_TI
0203 1047 pc_char1:
1048 RESTO_ES
0205 1050 ?ISD?PUTCHAR_END:
0205 22 1051 pc_end: RET
1052
1053
1054
1055 ;--------------------------------------------------------------------------
1056 ; _getkey: waits for a character to be received from the serial port
1057
1058
1059 PUBLIC _getkey ; C-Prototype: char _getkey (void);
1060
0206 1061 _getkey: JNB_ES _getkey2
0209 E500 F 1063 MOV A,_ISD_CHAR
020B 64A5 1064 XRL A,#0A5H
020D 60F7 1065 JZ _getkey ; no character available
020F 74A5 1066 MOV A,#0A5H
0211 C500 F 1067 XCH A,_ISD_CHAR
0213 FF 1068 MOV R7,A
0214 22 1069 RET
1070
0215 1071 _getkey2: JNB_RI $
1073 RD_SBUF
021A B4A505 1075 CJNE A,#0A5H,gk_clrRI
021D 120000 F 1076 CALL __isd_init
0220 80E4 1077 SJMP _getkey
A51 MACRO ASSEMBLER ISD51 09/27/2006 15:13:06 PAGE 17
1078
0222 FF 1079 gk_clrRI: MOV R7,A
1080 CLR_RI
0225 22 1082 RET
1083
1084
1085 PUBLIC _iskey ; C-Prototype: bit _iskey (void);
0226 1086 _iskey: JNB_ES _iskey2
0229 E500 F 1088 MOV A,_ISD_CHAR
022B B4A510 1089 CJNE A,#0A5H,ik_on
022E C3 1090 CLR C
022F 22 1091 RET
1092
0230 C3 1093 _iskey2: CLR C
1094 JNB_RI ik_end
1096 RD_SBUF
0236 B4A505 1098 CJNE A,#0A5H,ik_on
0239 120000 F 1099 CALL __isd_init
023C 80E8 1100 SJMP _iskey
023E D3 1101 ik_on: SETB C
023F 22 1102 ik_end: RET
1103
1104
1105 ?DT?ISD51 SEGMENT DATA
---- 1106 RSEG ?DT?ISD51
1107
1108 PUBLIC _ISD_CHAR
0000 1109 _ISD_CHAR: DS 1 ; current user input character
1110
1111
---- 1112 RSEG ?PR?ISD51
1113
1114
1115 ;--------------------------------------------------------------------------
1116 ; __isd_init: prepare idata RAM for ISD51
0240 1117 __isd_init:
0240 78FF 1118 MOV R0,#?ISD?RAMTOP
0242 76FF 1119 MOV @R0,#0xFF
1120
0244 7500A5 F 1121 MOV _ISD_CHAR,#0A5H ; no character available
1122
1123 SET_ES
0249 22 1125 RET
024A 00 1126 NOP
1127
1128 END
A51 MACRO ASSEMBLER ISD51 09/27/2006 15:13:06 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 0000H A
?ISD?CMDLOOP. . . . C ADDR 0041H R SEG=?PR?ISD51
?ISD?CMDLOOP2 . . . C ADDR 003FH 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 004CH R SEG=?PR?ISD51
?ISD?PUTCHAR. . . . C ADDR 01DBH R SEG=?PR?ISD51
?ISD?PUTCHAR_END. . C ADDR 0205H R SEG=?PR?ISD51
?ISD?RAMTOP . . . . N NUMB 00FFH A
?ISD?READSFR00. . . C ADDR 00ABH R SEG=?PR?ISD51
?ISD?READSFR01. . . C ADDR 00BBH R SEG=?PR?ISD51
?ISD?READSFR02. . . C ADDR 00CBH R SEG=?PR?ISD51
?ISD?READSFR03. . . C ADDR 00DBH R SEG=?PR?ISD51
?ISD?READSFR04. . . C ADDR 00EBH R SEG=?PR?ISD51
?ISD?READSFR05. . . C ADDR 00FBH R SEG=?PR?ISD51
?ISD?READSFR06. . . C ADDR 010BH R SEG=?PR?ISD51
?ISD?READSFR07. . . C ADDR 011BH R SEG=?PR?ISD51
?ISD?READSFR08. . . C ADDR 012BH R SEG=?PR?ISD51
?ISD?READSFR09. . . C ADDR 013BH R SEG=?PR?ISD51
?ISD?READSFR10. . . C ADDR 014BH R SEG=?PR?ISD51
?ISD?READSFR11. . . C ADDR 015BH R SEG=?PR?ISD51
?ISD?READSFR12. . . C ADDR 016BH R SEG=?PR?ISD51
?ISD?READSFR13. . . C ADDR 017BH R SEG=?PR?ISD51
?ISD?READSFR14. . . C ADDR 018BH R SEG=?PR?ISD51
?ISD?READSFR15. . . C ADDR 019BH R SEG=?PR?ISD51
?ISD?READSFR16. . . C ADDR 01ABH R SEG=?PR?ISD51
?ISD?READSFR17. . . C ADDR 01BBH R SEG=?PR?ISD51
?ISD?READSFR18. . . C ADDR 01CBH R SEG=?PR?ISD51
?ISD?RESTART. . . . C ADDR 007BH R SEG=?PR?ISD51
?ISD?SENDBYTE . . . C ADDR 0073H R SEG=?PR?ISD51
?ISD?VERSION. . . . N NUMB 00CDH A
?ISD?WRITESFR00 . . C ADDR 0097H R SEG=?PR?ISD51
?ISD?WRITESFR01 . . C ADDR 009DH R SEG=?PR?ISD51
?ISD?WRITESFR02 . . C ADDR 00A3H R SEG=?PR?ISD51
?ISD?WRITESFR03 . . C ADDR 00A7H R SEG=?PR?ISD51
?PR?ISD51 . . . . . C SEG 024BH 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 001DH R SEG=?PR?ISD51
CBLK. . . . . . . . N NUMB 0010H A
CHECKBREAK. . . . . C ADDR 005BH R SEG=?PR?ISD51
CHECKBREAK1 . . . . C ADDR 0067H R SEG=?PR?ISD51
CHECKBREAKS . . . . C ADDR 0054H R SEG=?PR?ISD51
DPH . . . . . . . . D ADDR 0083H A
DPL . . . . . . . . D ADDR 0082H A
EA. . . . . . . . . B ADDR 00A8H.7 A
ES. . . . . . . . . B ADDR 00A8H.4 A
GK_CLRRI. . . . . . C ADDR 0222H R SEG=?PR?ISD51
IE. . . . . . . . . D ADDR 00A8H A
IK_END. . . . . . . C ADDR 023FH R SEG=?PR?ISD51
IK_ON . . . . . . . C ADDR 023EH R SEG=?PR?ISD51
ISD51_CONFIGURATION N NUMB -----
NOSERBREAK. . . . . C ADDR 001BH R SEG=?PR?ISD51
P0. . . . . . . . . D ADDR 0080H A
P1. . . . . . . . . D ADDR 0090H A
A51 MACRO ASSEMBLER ISD51 09/27/2006 15:13:06 PAGE 19
P2. . . . . . . . . D ADDR 00A0H A
P3. . . . . . . . . D ADDR 00B0H A
PC_CHAR . . . . . . C ADDR 01F2H R SEG=?PR?ISD51
PC_CHAR1. . . . . . C ADDR 0203H R SEG=?PR?ISD51
PC_END. . . . . . . C ADDR 0205H R SEG=?PR?ISD51
PH_FMADRL . . . . . D ADDR 00E6H A
PH_FMCON. . . . . . D ADDR 00E4H A
PSW . . . . . . . . D ADDR 00D0H A
RESTARTSS . . . . . C ADDR 0095H R SEG=?PR?ISD51
RESTARTUSER . . . . C ADDR 006CH R SEG=?PR?ISD51
RETURNI . . . . . . C ADDR 006EH R SEG=?PR?ISD51
RI. . . . . . . . . B ADDR 0098H.0 A
SBUF. . . . . . . . D ADDR 0099H A
SCON. . . . . . . . D ADDR 0098H A
SEND7BYTES. . . . . C ADDR 002DH R SEG=?PR?ISD51
SENDSTACKFRAME. . . C ADDR 0038H R SEG=?PR?ISD51
SERIALINTERRUPT . . C ADDR 0000H R SEG=?PR?ISD51
SINTRVEC. . . . . . N NUMB 0023H A
SOFTBREAK . . . . . C ADDR 002BH R SEG=?PR?ISD51
SP. . . . . . . . . D ADDR 0081H A
TI. . . . . . . . . B ADDR 0098H.1 A
_GETKEY . . . . . . C ADDR 0206H R SEG=?PR?ISD51
_GETKEY2. . . . . . C ADDR 0215H R SEG=?PR?ISD51
_ISD_CHAR . . . . . D ADDR 0000H R SEG=?DT?ISD51
_ISKEY. . . . . . . C ADDR 0226H R SEG=?PR?ISD51
_ISKEY2 . . . . . . C ADDR 0230H R SEG=?PR?ISD51
_PUTCHAR. . . . . . C ADDR 01DBH R SEG=?PR?ISD51
__ISD_INIT. . . . . C ADDR 0240H 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 + -