📄 isd51.lst
字号:
01CA 0100 F 982 AJMP Send7Bytes
983 ;
984 ;--------------------------------------------------------------------------
985 ;17 Read CPU Core SFR registers:
986 ; LOW (?ISD?READSFR17), HIGH (?ISD?READSFR17), dummy, dummy
987 ;
01CC 988 ?ISD?READSFR17:
01CC E5FC 989 MOV A,0xFC
01CE C0FB 990 PUSH 0xFB
01D0 C0FA 991 PUSH 0xFA
01D2 C0F9 992 PUSH 0xF9
01D4 C0F8 993 PUSH 0xF8
01D6 C0F7 994 PUSH 0xF7
01D8 C0F6 995 PUSH 0xF6
01DA 0100 F 996 AJMP Send7Bytes
997 ;
998 ;--------------------------------------------------------------------------
999 ;18 Read CPU Core SFR registers:
1000 ; LOW (?ISD?READSFR18), HIGH (?ISD?READSFR18), dummy, dummy
1001 ;
01DC 1002 ?ISD?READSFR18:
01DC E5FF 1003 MOV A,0xFF
01DE C0FE 1004 PUSH 0xFE
A51 MACRO ASSEMBLER ISD51 06/06/2005 17:50:27 PAGE 16
01E0 C0FD 1005 PUSH 0xFD
01E2 C0E0 1006 PUSH ACC ; dummy
01E4 C0E0 1007 PUSH ACC ; dummy
01E6 C0E0 1008 PUSH ACC ; dummy
01E8 C0E0 1009 PUSH ACC ; dummy
01EA 0100 F 1010 AJMP Send7Bytes
1011 ;
1012 ;--------------------------------------------------------------------------;
1013 ; putchar: transmit a character via the serial interface
1014
1015 PUBLIC _putchar ; C-Prototype: char putchar (char c);
1016 PUBLIC ?ISD?PUTCHAR, ?ISD?PUTCHAR_END
1017
01EC 1018 ?ISD?PUTCHAR:
01EC BFA700 1019 _putchar: CJNE R7,#0A7H,$+3
01EF 5026 1020 JNC pc_end
01F1 EF 1021 MOV A,R7
01F2 640A 1022 XRL A,#0AH
1023 SAVE_ES
1025 CLR_ES
01F8 7009 1027 JNZ pc_char
01FA 740D 1028 MOV A,#0DH
1029 CLR_TI
1031 WR_SBUF
1033 JNB_TI $
0203 EF 1035 pc_char: MOV A,R7
1036 CLR_TI
1038 WR_SBUF
1040 JNB_TI $
020B 5008 1042 JNC pc_char1 ; ISD51 is not initialized
020D 78FF 1043 MOV R0,#?ISD?RAMTOP
020F E6 1044 MOV A,@R0
1045
0210 30E002 1048 JNB ACC.0,pc_char1
1049
1050 CLR_TI
0215 1052 pc_char1:
1053 RESTO_ES
0217 1055 ?ISD?PUTCHAR_END:
0217 22 1056 pc_end: RET
1057
1058
1059
1060 ;--------------------------------------------------------------------------
1061 ; _getkey: waits for a character to be received from the serial port
1062
1063
1064 PUBLIC _getkey ; C-Prototype: char _getkey (void);
1065
0218 1066 _getkey: JNB_ES _getkey2
021B E500 F 1068 MOV A,_ISD_CHAR
021D 64A5 1069 XRL A,#0A5H
021F 60F7 1070 JZ _getkey ; no character available
0221 74A5 1071 MOV A,#0A5H
0223 C500 F 1072 XCH A,_ISD_CHAR
0225 FF 1073 MOV R7,A
0226 22 1074 RET
1075
0227 1076 _getkey2: JNB_RI $
1078 RD_SBUF
022C B4A505 1080 CJNE A,#0A5H,gk_clrRI
022F 120000 F 1081 CALL __isd_init
0232 80E4 1082 SJMP _getkey
1083
A51 MACRO ASSEMBLER ISD51 06/06/2005 17:50:27 PAGE 17
0234 FF 1084 gk_clrRI: MOV R7,A
1085 CLR_RI
0237 22 1087 RET
1088
1089
1090 PUBLIC _iskey ; C-Prototype: bit _iskey (void);
0238 1091 _iskey: JNB_ES _iskey2
023B E500 F 1093 MOV A,_ISD_CHAR
023D B4A510 1094 CJNE A,#0A5H,ik_on
0240 C3 1095 CLR C
0241 22 1096 RET
1097
0242 C3 1098 _iskey2: CLR C
1099 JNB_RI ik_end
1101 RD_SBUF
0248 B4A505 1103 CJNE A,#0A5H,ik_on
024B 120000 F 1104 CALL __isd_init
024E 80E8 1105 SJMP _iskey
0250 D3 1106 ik_on: SETB C
0251 22 1107 ik_end: RET
1108
1109
1110 ?DT?ISD51 SEGMENT DATA
---- 1111 RSEG ?DT?ISD51
1112
1113 PUBLIC _ISD_CHAR
0000 1114 _ISD_CHAR: DS 1 ; current user input character
1115
1116
---- 1117 RSEG ?PR?ISD51
1118
1119
1120 ;--------------------------------------------------------------------------
1121 ; __isd_init: prepare idata RAM for ISD51
0252 1122 __isd_init:
0252 78FF 1123 MOV R0,#?ISD?RAMTOP
0254 76FF 1124 MOV @R0,#0xFF
1125
0256 7500A5 F 1126 MOV _ISD_CHAR,#0A5H ; no character available
1127
1128 SET_ES
025B 22 1130 RET
025C 00 1131 NOP
1132
1133 END
A51 MACRO ASSEMBLER ISD51 06/06/2005 17:50:27 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 0FFFH 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 06/06/2005 17:50:27 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 + -