📄 isd51.lst
字号:
945 ;
946 ;--------------------------------------------------------------------------
947 ;15 Read CPU Core SFR registers:
948 ; LOW (?ISD?READSFR15), HIGH (?ISD?READSFR15), dummy, dummy
949 ;
00019B 950 ?ISD?READSFR15:
00019B E5ED 951 MOV A,0xED
00019D C0EC 952 PUSH 0xEC
00019F C0EB 953 PUSH 0xEB
0001A1 C0EA 954 PUSH 0xEA
0001A3 C0E9 955 PUSH 0xE9
0001A5 C0E8 956 PUSH 0xE8
0001A7 C0E7 957 PUSH 0xE7
0001A9 0100 F 958 AJMP Send7Bytes
959 ;
960 ;--------------------------------------------------------------------------
961 ;16 Read CPU Core SFR registers:
962 ; LOW (?ISD?READSFR16), HIGH (?ISD?READSFR16), dummy, dummy
963 ;
0001AB 964 ?ISD?READSFR16:
0001AB E5F5 965 MOV A,0xF5
0001AD C0F4 966 PUSH 0xF4
0001AF C0F3 967 PUSH 0xF3
0001B1 C0F2 968 PUSH 0xF2
0001B3 C0F1 969 PUSH 0xF1
0001B5 C0EF 970 PUSH 0xEF
0001B7 C0EE 971 PUSH 0xEE
0001B9 0100 F 972 AJMP Send7Bytes
973 ;
974 ;--------------------------------------------------------------------------
975 ;17 Read CPU Core SFR registers:
976 ; LOW (?ISD?READSFR17), HIGH (?ISD?READSFR17), dummy, dummy
977 ;
0001BB 978 ?ISD?READSFR17:
0001BB E5FC 979 MOV A,0xFC
0001BD C0FB 980 PUSH 0xFB
0001BF C0FA 981 PUSH 0xFA
0001C1 C0F9 982 PUSH 0xF9
0001C3 C0F8 983 PUSH 0xF8
0001C5 C0F7 984 PUSH 0xF7
0001C7 C0F6 985 PUSH 0xF6
0001C9 0100 F 986 AJMP Send7Bytes
987 ;
988 ;--------------------------------------------------------------------------
989 ;18 Read CPU Core SFR registers:
990 ; LOW (?ISD?READSFR18), HIGH (?ISD?READSFR18), dummy, dummy
991 ;
0001CB 992 ?ISD?READSFR18:
0001CB E5FF 993 MOV A,0xFF
0001CD C0FE 994 PUSH 0xFE
0001CF C0FD 995 PUSH 0xFD
0001D1 C0E0 996 PUSH ACC ; dummy
0001D3 C0E0 997 PUSH ACC ; dummy
0001D5 C0E0 998 PUSH ACC ; dummy
0001D7 C0E0 999 PUSH ACC ; dummy
0001D9 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
AX51 MACRO ASSEMBLER ISD51 11/23/05 16:37:35 PAGE 16
0001DB 1008 ?ISD?PUTCHAR:
0001DB BFA700 1009 _putchar: CJNE R7,#0A7H,$+3
0001DE 5025 1010 JNC pc_end
0001E0 EF 1011 MOV A,R7
0001E1 640A 1012 XRL A,#0AH
1013+1 SAVE_ES
1015+1 CLR_ES
0001E7 7009 1017 JNZ pc_char
0001E9 740D 1018 MOV A,#0DH
1019+1 CLR_TI
1021+1 WR_SBUF
1023+1 JNB_TI $
0001F2 EF 1025 pc_char: MOV A,R7
1026+1 CLR_TI
1028+1 WR_SBUF
1030+1 JNB_TI $
0001FA 5007 1032 JNC pc_char1 ; ISD51 is not initialized
0001FC 78FF 1033 MOV R0,#?ISD?RAMTOP
0001FE E6 1034 MOV A,@R0
1035
0001FF 7002 1036 JNZ pc_char1
1040+1 CLR_TI
000203 1042 pc_char1:
1043+1 RESTO_ES
000205 1045 ?ISD?PUTCHAR_END:
000205 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
000206 1056+1 _getkey: JNB_ES _getkey2
000209 E500 F 1058 MOV A,_ISD_CHAR
00020B 64A5 1059 XRL A,#0A5H
00020D 60F7 1060 JZ _getkey ; no character available
00020F 74A5 1061 MOV A,#0A5H
000211 C500 F 1062 XCH A,_ISD_CHAR
000213 FF 1063 MOV R7,A
000214 22 1064 RET
1065
000215 1066+1 _getkey2: JNB_RI $
1068+1 RD_SBUF
00021A B4A504 1070 CJNE A,#0A5H,gk_clrRI
00021D 1100 F 1071 CALL __isd_init
00021F 80E5 1072 SJMP _getkey
1073
000221 FF 1074 gk_clrRI: MOV R7,A
1075+1 CLR_RI
000224 22 1077 RET
1078
1079
1080 PUBLIC _iskey ; C-Prototype: bit _iskey (void);
000225 1081+1 _iskey: JNB_ES _iskey2
000228 E500 F 1083 MOV A,_ISD_CHAR
00022A B4A50F 1084 CJNE A,#0A5H,ik_on
00022D C3 1085 CLR C
00022E 22 1086 RET
1087
00022F C3 1088 _iskey2: CLR C
AX51 MACRO ASSEMBLER ISD51 11/23/05 16:37:35 PAGE 17
1089+1 JNB_RI ik_end
1091+1 RD_SBUF
000235 B4A504 1093 CJNE A,#0A5H,ik_on
000238 1100 F 1094 CALL __isd_init
00023A 80E9 1095 SJMP _iskey
00023C D3 1096 ik_on: SETB C
00023D 22 1097 ik_end: RET
1098
1099
------ 1100 ?DT?ISD51 SEGMENT DATA
------ 1101 RSEG ?DT?ISD51
1102
1103 PUBLIC _ISD_CHAR
000000 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
00023E 1112 __isd_init:
00023E 78FF 1113 MOV R0,#?ISD?RAMTOP
000240 76FF 1114 MOV @R0,#0xFF
1115
000242 7500A5 F 1116 MOV _ISD_CHAR,#0A5H ; no character available
1117
1118+1 SET_ES
000247 22 1120 RET
000248 00 1121 NOP
1122
1123 END
1124
1125
AX51 MACRO ASSEMBLER ISD51 11/23/05 16:37:35 PAGE 18
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
?DT?ISD51 . . . . . . . . . D SEG 000001H REL=UNIT, ALN=BYTE
?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 NUMB ------- 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 000249H REL=INBLOCK, ALN=BYTE
__ISD_INIT. . . . . . . . . C ADDR 023EH R SEG=?PR?ISD51
_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 0225H R SEG=?PR?ISD51
_ISKEY2 . . . . . . . . . . C ADDR 022FH R SEG=?PR?ISD51
_PUTCHAR. . . . . . . . . . C ADDR 01DBH R SEG=?PR?ISD51
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 0221H R S
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -