📄 isd51.lst
字号:
01B9 0100 F 972 AJMP Send7Bytes
973 ;
974 ;--------------------------------------------------------------------------
975 ;17 Read CPU Core SFR registers:
976 ; LOW (?ISD?READSFR17), HIGH (?ISD?READSFR17), dummy, dummy
977 ;
01BB 978 ?ISD?READSFR17:
01BB E5FC 979 MOV A,0xFC
01BD C0FB 980 PUSH 0xFB
01BF C0FA 981 PUSH 0xFA
01C1 C0F9 982 PUSH 0xF9
01C3 C0F8 983 PUSH 0xF8
01C5 C0F7 984 PUSH 0xF7
01C7 C0F6 985 PUSH 0xF6
01C9 0100 F 986 AJMP Send7Bytes
987 ;
988 ;--------------------------------------------------------------------------
989 ;18 Read CPU Core SFR registers:
990 ; LOW (?ISD?READSFR18), HIGH (?ISD?READSFR18), dummy, dummy
991 ;
01CB 992 ?ISD?READSFR18:
01CB E5FF 993 MOV A,0xFF
01CD C0FE 994 PUSH 0xFE
01CF C0FD 995 PUSH 0xFD
01D1 C0E0 996 PUSH ACC ; dummy
01D3 C0E0 997 PUSH ACC ; dummy
01D5 C0E0 998 PUSH ACC ; dummy
A51 MACRO ASSEMBLER ISD51 11/27/2009 21:11:38 PAGE 16
01D7 C0E0 999 PUSH ACC ; dummy
01D9 0100 F 1000 AJMP Send7Bytes
1001 ;
1002 ;--------------------------------------------------------------------------;
1003 ; putchar: transmit a character via the serial interface
1004
1005 PUBLIC _putchar ; C-Prototype: char putchar (char c);
1006 PUBLIC ?ISD?PUTCHAR, ?ISD?PUTCHAR_END
1007
01DB 1008 ?ISD?PUTCHAR:
01DB BFA700 1009 _putchar: CJNE R7,#0A7H,$+3
01DE 5025 1010 JNC pc_end
01E0 EF 1011 MOV A,R7
01E1 640A 1012 XRL A,#0AH
1013 SAVE_ES
1015 CLR_ES
01E7 7009 1017 JNZ pc_char
01E9 740D 1018 MOV A,#0DH
1019 CLR_TI
1021 WR_SBUF
1023 JNB_TI $
01F2 EF 1025 pc_char: MOV A,R7
1026 CLR_TI
1028 WR_SBUF
1030 JNB_TI $
01FA 5007 1032 JNC pc_char1 ; ISD51 is not initialized
01FC 78FF 1033 MOV R0,#?ISD?RAMTOP
01FE E6 1034 MOV A,@R0
1035
01FF 7002 1036 JNZ pc_char1
1040 CLR_TI
0203 1042 pc_char1:
1043 RESTO_ES
0205 1045 ?ISD?PUTCHAR_END:
0205 22 1046 pc_end: RET
1047
1048
1049
1050 ;--------------------------------------------------------------------------
1051 ; _getkey: waits for a character to be received from the serial port
1052
1053
1054 PUBLIC _getkey ; C-Prototype: char _getkey (void);
1055
0206 1056 _getkey: JNB_ES _getkey2
0209 E500 F 1058 MOV A,_ISD_CHAR
020B 64A5 1059 XRL A,#0A5H
020D 60F7 1060 JZ _getkey ; no character available
020F 74A5 1061 MOV A,#0A5H
0211 C500 F 1062 XCH A,_ISD_CHAR
0213 FF 1063 MOV R7,A
0214 22 1064 RET
1065
0215 1066 _getkey2: JNB_RI $
1068 RD_SBUF
021A B4A505 1070 CJNE A,#0A5H,gk_clrRI
021D 120000 F 1071 CALL __isd_init
0220 80E4 1072 SJMP _getkey
1073
0222 FF 1074 gk_clrRI: MOV R7,A
1075 CLR_RI
0225 22 1077 RET
1078
A51 MACRO ASSEMBLER ISD51 11/27/2009 21:11:38 PAGE 17
1079
1080 PUBLIC _iskey ; C-Prototype: bit _iskey (void);
0226 1081 _iskey: JNB_ES _iskey2
0229 E500 F 1083 MOV A,_ISD_CHAR
022B B4A510 1084 CJNE A,#0A5H,ik_on
022E C3 1085 CLR C
022F 22 1086 RET
1087
0230 C3 1088 _iskey2: CLR C
1089 JNB_RI ik_end
1091 RD_SBUF
0236 B4A505 1093 CJNE A,#0A5H,ik_on
0239 120000 F 1094 CALL __isd_init
023C 80E8 1095 SJMP _iskey
023E D3 1096 ik_on: SETB C
023F 22 1097 ik_end: RET
1098
1099
1100 ?DT?ISD51 SEGMENT DATA
---- 1101 RSEG ?DT?ISD51
1102
1103 PUBLIC _ISD_CHAR
0000 1104 _ISD_CHAR: DS 1 ; current user input character
1105
1106
---- 1107 RSEG ?PR?ISD51
1108
1109
1110 ;--------------------------------------------------------------------------
1111 ; __isd_init: prepare idata RAM for ISD51
0240 1112 __isd_init:
0240 78FF 1113 MOV R0,#?ISD?RAMTOP
0242 76FF 1114 MOV @R0,#0xFF
1115
0244 7500A5 F 1116 MOV _ISD_CHAR,#0A5H ; no character available
1117
1118 SET_ES
0249 22 1120 RET
024A 00 1121 NOP
1122
1123 END
A51 MACRO ASSEMBLER ISD51 11/27/2009 21:11:38 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 11/27/2009 21:11:38 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 + -