⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mag.asm

📁 税控收款机软件。包括底层驱动和上层的应用一起。是一个完整的税控收款机软件方案
💻 ASM
📖 第 1 页 / 共 4 页
字号:


	RSEG  ?PR?MAG
Com00E5:
L?0230:
	USING	0
L?0231:
	MOV  	DPTR,#fiscal_ck_index
L?0232:
	MOVX 	A,@DPTR
	MOV  	R4,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R5,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	RET  	
L?0233:
	USING	0
	MOV  	R5,#01H
	MOV  	R3,#01H
	MOV  	R2,#HIGH (flash_temp)
	MOV  	R1,#LOW (flash_temp)
	MOV  	R6,#00H
	LJMP 	?C?COPY
L?0234:
	USING	0
	MOV  	R0,#LOW (prn_page_buf+0202H)
	MOV  	R4,#HIGH (prn_page_buf+0202H)
L?0235:
	MOV  	R2,#HIGH (Dzcg)
	MOV  	R1,#LOW (Dzcg)
	MOV  	R7,#08H
L?0236:
	MOV  	R5,#01H
	MOV  	R3,#0FFH
	MOV  	R6,#00H
	LJMP 	?C?COPY
L?0237:
	USING	0
L?0238:
	MOV  	DPH,A
L?0239:
	MOVX 	A,@DPTR
	MOV  	R0,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R1,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R2,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R3,A
	MOV  	A,R7
	ADD  	A,R3
	MOV  	R7,A
	MOV  	A,R6
	ADDC 	A,R2
	MOV  	R6,A
	MOV  	A,R5
	ADDC 	A,R1
	MOV  	R5,A
	MOV  	A,R4
	ADDC 	A,R0
	MOV  	R4,A
	RET  	
L?0240:
	USING	0
L?0241:
	MOV  	B,#024H
	MOV  	A,i?463
	MUL  	AB
	ADD  	A,#LOW (prn_page_buf)
	MOV  	DPL,A
	MOV  	A,B
	ADDC 	A,#HIGH (prn_page_buf)
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,k?465
L?0242:
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,DPH
	MOV  	DPH,A
	RET  	
L?0243:
	USING	0
	MOV  	R5,#01H
	MOV  	R3,#01H
	MOV  	R6,#00H
	LJMP 	?C?COPY
L?0244:
	USING	0
	MOV  	A,#LOW (databuf)
	ADD  	A,j?358
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (databuf)
L?0245:
	MOV  	DPH,A
	MOVX 	A,@DPTR
L?0246:
	MOV  	R7,A
L?0247:
	MOV  	B,#090H
	MOV  	A,i?357
	MUL  	AB
	RET  	
L?0248:
	USING	0
	MOV  	R5,#01H
	MOV  	R3,#01H
	MOV  	R2,#HIGH (flash_temp)
	MOV  	R1,#LOW (flash_temp)
	MOV  	R6,#00H
	LJMP 	?C?COPY
L?0249:
	USING	0
	MOV  	A,k?465
L?0250:
	MOV  	B,#024H
	MUL  	AB
	ADD  	A,#LOW (prn_page_buf)
	MOV  	R1,A
	MOV  	A,#HIGH (prn_page_buf)
	ADDC 	A,B
	MOV  	R2,A
	MOV  	R3,#01H
	RET  	
L?0251:
	USING	0
	MOV  	R5,#01H
	MOV  	R3,#01H
L?0252:
	MOV  	R6,#00H
	MOV  	R7,#06CH
	LJMP 	?C?COPY
L?0253:
	USING	0
L?0254:
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	R4,A
	MOV  	R5,A
	MOV  	DPTR,#ii?460
	LCALL	?C?LSTXDATA
	MOV  	?_long_to_asc?BYTE+04H,#01H
	MOV  	?_long_to_asc?BYTE+05H,#HIGH (ii?460)
	MOV  	?_long_to_asc?BYTE+06H,#LOW (ii?460)
	MOV  	R3,#01H
	RET  	
L?0256:
	USING	0
L?0257:
	MOV  	B,#024H
	MOV  	A,j?358
	MUL  	AB
	ADD  	A,#LOW (prn_page_buf)
	MOV  	DPL,A
	MOV  	A,B
	ADDC 	A,#HIGH (prn_page_buf)
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,i?357
	RET  	
L?0258:
	USING	0
	MOVX 	A,@DPTR
	MOV  	R6,A
	INC  	DPTR
	MOVX 	A,@DPTR
	MOV  	R7,A
	CLR  	A
	MOV  	ttt?359+03H,R7
	MOV  	ttt?359+02H,R6
	MOV  	ttt?359+01H,A
	MOV  	ttt?359,A
	MOV  	?_long_to_asc?BYTE+04H,A
L?0259:
	MOV  	?_long_to_asc?BYTE+05H,#HIGH (ttt?359)
	MOV  	?_long_to_asc?BYTE+06H,#LOW (ttt?359)
	MOV  	R3,#01H
	RET  	
L?0260:
	USING	0
	MOV  	R6,#00H
	MOV  	R5,#020H
	MOV  	R3,#01H
	LJMP 	?C?MEMSET
L?0261:
	USING	0
L?0262:
	MOV  	B,#02FH
	MOV  	A,i?357
	MUL  	AB
	ADD  	A,#LOW (tax+0FFD1H)
	MOV  	DPL,A
	MOV  	A,B
	ADDC 	A,#HIGH (tax+0FFD1H)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	RET  	
L?0263:
	USING	0
	MOV  	A,i?357
L?0264:
	MOVC 	A,@A+DPTR
	MOV  	R7,A
L?0265:
	MOV  	A,i?357
	MOV  	B,#0FH
	DIV  	AB
	RET  	
L?0266:
	USING	0
L?0267:
	MOV  	DPH,A
L?0268:
	MOV  	A,R7
	MOVX 	@DPTR,A
	INC  	i?357
	MOV  	A,i?357
	RET  	
L?0269:
	USING	0
	MOV  	R5,#01H
	MOV  	R6,#00H
	LJMP 	?C?COPY
L?0270:
	USING	0
	MOV  	R3,src?145
	MOV  	R2,src?145+01H
	MOV  	R1,src?145+02H
	MOV  	DPL,j?149
L?0271:
	MOV  	DPH,#00H
	LJMP 	?C?CLDOPTR
L?0272:
	USING	0
	CLR  	C
L?0273:
	MOV  	R7,A
	MOV  	R3,ii?669+03H
	MOV  	R2,ii?669+02H
	MOV  	R1,ii?669+01H
	MOV  	R0,ii?669
	LJMP 	?C?ULCMP
L?0274:
	USING	0
L?0275:
	MOV  	R7,A
L?0276:
	MOV  	A,i?463
	MOV  	B,#08H
	MUL  	AB
	RET  	
L?0277:
	USING	0
	MOV  	DPH,A
	MOVX 	A,@DPTR
	SWAP 	A
	ANL  	A,#0FH
	ADD  	A,#030H
	MOV  	R7,A
	MOV  	A,i?463
L?0278:
	ADD  	A,ACC
	MOV  	R5,A
	CLR  	A
	RLC  	A
	MOV  	R4,A
	RET  	
L?0279:
	USING	0
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	MOV  	B,#024H
	MOV  	A,i?463
	MUL  	AB
	ADD  	A,#LOW (prn_page_buf+01AH)
	MOV  	DPL,A
	MOV  	A,B
	ADDC 	A,#HIGH (prn_page_buf+01AH)
	MOV  	DPH,A
	RET  	
L?0280:
	USING	0
	MOV  	R6,#00H
	MOV  	R7,#01EH
	MOV  	R5,#024H
	MOV  	R3,#01H
	LJMP 	?C?MEMSET
L?0281:
	USING	0
	MOV  	A,k?465
L?0282:
	ANL  	A,#03H
	ADD  	A,ACC
	ADD  	A,#0B8H
	MOV  	R5,A
	RET  	
L?0283:
	USING	0
	MOV  	R6,#04H
	MOV  	R7,#0C8H
	MOV  	R5,#020H
	MOV  	R3,#01H
	MOV  	R2,#HIGH (prn_page_buf)
	MOV  	R1,#LOW (prn_page_buf)
	LJMP 	?C?MEMSET
L?0284:
	USING	0
	MOV  	A,#LOW (databuf)
	ADD  	A,i?357
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (databuf)
	MOV  	DPH,A
	MOVX 	A,@DPTR
	ADD  	A,#030H
	MOV  	R7,A
	RET  	
L?0285:
	USING	0
	MOV  	B,#024H
	MOV  	A,i?463
	MUL  	AB
	ADD  	A,#LOW (prn_page_buf+01BH)
	MOV  	DPL,A
	MOV  	A,B
	ADDC 	A,#HIGH (prn_page_buf+01BH)
	RET  	
L?0286:
	USING	0
	MOV  	R5,#01H
	MOV  	R3,#01H
	MOV  	R6,A
	MOV  	R7,#04H
	LJMP 	?C?COPY
L?0287:
	USING	0
L?0288:
	MOV  	DPH,A
	MOVX 	A,@DPTR
	ANL  	A,#0FH
	ADD  	A,#030H
	MOV  	R7,A
	RET  	
L?0291:
	USING	0
L?0292:
	MOV  	A,i?357
	MOV  	B,#08H
	MUL  	AB
	RET  	
L?0293:
	USING	0
	MOV  	R3,dest?146
	MOV  	R2,dest?146+01H
	MOV  	R1,dest?146+02H
	MOV  	DPL,R7
	MOV  	DPH,#00H
	RET  	
L?0294:
	USING	0
	MOV  	ttt?359+03H,A
	MOV  	ttt?359+02H,R6
	MOV  	ttt?359+01H,R5
	MOV  	ttt?359,R4
	MOV  	?_long_to_asc?BYTE+04H,#00H
	RET  	
L?0295:
	USING	0
	MOV  	A,#LOW (prn_page_buf+0A0H)
	ADD  	A,j?358
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (prn_page_buf+0A0H)
	MOV  	DPH,A
	RET  	
L?0296:
	USING	0
	MOV  	A,#LOW (prn_page_buf+0438H)
	ADD  	A,i?357
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (prn_page_buf+0438H)
	MOV  	DPH,A
	RET  	
L?0297:
	USING	0
	MOV  	A,#LOW (prn_page_buf+045CH)
	ADD  	A,i?357
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (prn_page_buf+045CH)
	MOV  	DPH,A
	RET  	
L?0298:
	USING	0
	MOV  	A,R6
	CLR  	C
	RRC  	A
	MOV  	R3,dest?041
	MOV  	R2,dest?041+01H
	MOV  	R1,dest?041+02H
	RET  	
L?0299:
	USING	0
	MOV  	R5,#01H
	MOV  	R3,#0FFH
	MOV  	R6,#00H
	LJMP 	?C?COPY
L?0300:
	USING	0
	MOV  	A,#LOW (Mac_Code)
	ADD  	A,i?357
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (Mac_Code)
	RET  	
L?0301:
	USING	0
	MOV  	R6,#00H
	MOV  	R5,#00H
	MOV  	R3,#01H
	LJMP 	?C?MEMSET
L?0302:
	USING	0
	LCALL	?C?LSTXDATA
	INC  	i?463
	MOV  	A,i?463
	XRL  	A,#06H
	RET  	
L?0303:
	USING	0
	MOV  	A,#LOW (Hz_Record)
	ADD  	A,i?463
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (Hz_Record)
	RET  	
L?0304:
	USING	0
	ADDC 	A,R4
	MOV  	DPH,A
	MOV  	A,R7
	MOVX 	@DPTR,A
	INC  	i?463
	MOV  	A,i?463
	RET  	
L?0305:
	USING	0
	MOV  	A,#LOW (flash_temp)
	ADD  	A,i?463
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (flash_temp)
	RET  	
L?0306:
	USING	0
L?0307:
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (?SC_160)
	MOV  	R1,#LOW (?SC_160)
	RET  	

	RSEG  ?PR?_StrToHex1?MAG
_StrToHex1:
	USING	0
	MOV  	src?040,R3
	MOV  	src?040+01H,R2
	MOV  	src?040+02H,R1
	CLR  	A
	MOV  	R6,A
?C0001:
	MOV  	A,R6
	CLR  	C
	SUBB 	A,len?042
	JC   	$ + 5H
	LJMP 	?C0018
	MOV  	A,R6
	JNB  	ACC.0,?C0004
	MOV  	R3,src?040
	MOV  	R2,src?040+01H
	MOV  	R1,src?040+02H
	MOV  	DPL,A
	LCALL	L?0271
	MOV  	R5,A
	CLR  	C
	SUBB 	A,#030H
	JC   	?C0005
	MOV  	A,R5
	SETB 	C
	SUBB 	A,#039H
	JNC  	?C0005
	MOV  	A,R5
	ADD  	A,#0D0H
	MOV  	R7,A
	SJMP 	?C0006
?C0005:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,#041H
	JC   	?C0007
	MOV  	A,R5
	SETB 	C
	SUBB 	A,#046H
	JNC  	?C0007
	MOV  	A,R5
	ADD  	A,#0C9H
	MOV  	R7,A
	SJMP 	?C0006
?C0007:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,#061H
	JC   	?C0009
	MOV  	A,R5
	SETB 	C
	SUBB 	A,#066H
	JNC  	?C0009
	MOV  	A,R5
	ADD  	A,#0A9H
	MOV  	R7,A
	SJMP 	?C0006
?C0009:
	CLR  	A
	MOV  	R7,A
?C0006:
	LCALL	L?0298
	MOV  	DPL,A
	LCALL	L?0271
	ORL  	A,R7
	MOV  	R5,A
	MOV  	A,R6
	CLR  	C
	RRC  	A
	SJMP 	?C0224
?C0004:
	MOV  	R3,src?040
	MOV  	R2,src?040+01H
	MOV  	R1,src?040+02H
	MOV  	DPL,R6
	LCALL	L?0271
	MOV  	R5,A
	CLR  	C
	SUBB 	A,#030H
	JC   	?C0012
	MOV  	A,R5
	SETB 	C
	SUBB 	A,#039H
	JNC  	?C0012
	MOV  	A,R5
	ADD  	A,#0D0H
	MOV  	R7,A
	SJMP 	?C0013
?C0012:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,#041H
	JC   	?C0014
	MOV  	A,R5
	SETB 	C
	SUBB 	A,#046H
	JNC  	?C0014
	MOV  	A,R5
	ADD  	A,#0C9H
	MOV  	R7,A
	SJMP 	?C0013
?C0014:
	MOV  	A,R5
	CLR  	C
	SUBB 	A,#061H
	JC   	?C0016
	MOV  	A,R5
	SETB 	C
	SUBB 	A,#066H
	JNC  	?C0016
	MOV  	A,R5
	ADD  	A,#0A9H
	MOV  	R7,A
	SJMP 	?C0013
?C0016:
	CLR  	A
	MOV  	R7,A
?C0013:
	MOV  	A,R7
	SWAP 	A
	ANL  	A,#0F0H
	MOV  	R5,A
	LCALL	L?0298
?C0224:
	MOV  	DPL,A
	MOV  	DPH,#00H
	MOV  	A,R5
	LCALL	?C?CSTOPTR
?C0003:
	INC  	R6
	LJMP 	?C0001
?C0018:
	RET  	

	RSEG  ?PR?_HexToStr?MAG
_HexToStr:
	USING	0
	MOV  	src?145,R3
	MOV  	src?145+01H,R2
	MOV  	src?145+02H,R1
	CLR  	A
	MOV  	R7,A
	MOV  	j?149,A
?C0019:
	MOV  	A,j?149
	CLR  	C
	SUBB 	A,len?147
	JNC  	?C0020
	LCALL	L?0270
	ANL  	A,#0FH
	MOV  	R6,A
	SETB 	C
	SUBB 	A,#09H
	JC   	?C0022
	MOV  	A,R6
	ADD  	A,#07H
	MOV  	R5,A
	SJMP 	?C0023
?C0022:
	MOV  	R5,AR6
?C0023:
	MOV  	A,R5
	ADD  	A,#030H
	MOV  	R6,A
	MOV  	A,R7
	MOV  	DPL,A
	MOV  	DPH,#00H
	INC  	DPTR
	MOV  	R3,dest?146
	MOV  	R2,dest?146+01H
	MOV  	R1,dest?146+02H
	MOV  	A,R6
	LCALL	?C?CSTOPTR
	LCALL	L?0270
	SWAP 	A
	ANL  	A,#0FH
	MOV  	R6,A
	SETB 	C
	SUBB 	A,#09H
	JC   	?C0024
	MOV  	A,R6
	ADD  	A,#07H
	MOV  	R6,A
	SJMP 	?C0025
?C0024:
?C0025:
	MOV  	A,R6
	ADD  	A,#030H
	LCALL	L?0293
	LCALL	?C?CSTOPTR
	INC  	R7
	INC  	j?149
	INC  	R7
	SJMP 	?C0019
?C0020:
	LCALL	L?0293
	CLR  	A
	LJMP 	?C?CSTOPTR

	RSEG  ?PR?_getstr?MAG
_getstr:
	USING	0
	MOV  	keynum?251,R7
	MOV  	keybuff?252,R3
	MOV  	keybuff?252+01H,R2
	MOV  	keybuff?252+02H,R1
	CLR  	A
	MOV  	temp?255+03H,A
	MOV  	temp?255+02H,A
	MOV  	temp?255+01H,A
	MOV  	temp?255,A
	MOV  	inputnum?254,A
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (PrnVAsc)
	MOV  	R1,#LOW (PrnVAsc)
	MOV  	R5,col?253
	LCALL	_PTeamInit
?C0027:
	LCALL	GetKey
	MOV  	A,keyc
	ADD  	A,#0F1H
	JZ   	?C0034
	ADD  	A,#0F4H
	JZ   	?C0033
	ADD  	A,#0EH
	JNZ  	?C0036
?C0030:
	MOV  	A,inputnum?254
	CLR  	C
	SUBB 	A,keynum?251
	JC   	?C0033
	MOV  	R7,#00H
	RET  	
?C0033:
	MOV  	R7,#02H
	RET  	
?C0034:
	MOV  	A,inputnum?254
	SETB 	C
	SUBB 	A,#00H
	JC   	?C0035
	MOV  	A,#0FFH
	ADD  	A,keybuff?252+02H
	MOV  	keybuff?252+02H,A
	MOV  	A,#0FFH
	ADDC 	A,keybuff?252+01H
	MOV  	keybuff?252+01H,A
	DEC  	inputnum?254
	MOV  	R5,#0AH
	MOV  	R7,col?253
	LCALL	_DisAscPop
?C0035:
	MOV  	R3,#0FFH
	MOV  	R2,#HIGH (PrnVAsc)
	MOV  	R1,#LOW (PrnVAsc)
	MOV  	?_DisAsc?BYTE+04H,#018H
	MOV  	R5,col?253
	LCALL	_DisAsc
	SJMP 	?C0027
?C0036:
	MOV  	A,keyc
	CLR  	C
	SUBB 	A,#00H
	JC   	?C0027
	MOV  	A,keyc
	SETB 	C
	SUBB 	A,#09H
	JNC  	?C0027
	MOV  	A,inputnum?254
	CLR  	C
	SUBB 	A,keynum?251
	JNC  	?C0027
?C0038:
	MOV  	A,#030H
	ADD  	A,keyc
	MOV  	keyc,A
	INC  	inputnum?254
	MOV  	R3,keybuff?252
	INC  	keybuff?252+02H
	MOV  	A,keybuff?252+02H
	MOV  	R2,keybuff?252+01H
	JNZ  	?C0223
	INC  	keybuff?252+01H
?C0223:
	DEC  	A
	MOV  	R1,A
	MOV  	A,keyc
	LCALL	?C?CSTPTR
	MOV  	A,keyc
	MOV  	B,#010H
	MUL  	AB
	MOV  	R3,#0FFH
	ADD  	A,#LOW (PrnVAsc+0FE00H)
	MOV  	R1,A
	MOV  	A,#HIGH (PrnVAsc+0FE00H)
	ADDC 	A,B
	MOV  	R2,A
	MOV  	?_DisAscPush?BYTE+04H,#0AH
	MOV  	R5,col?253
	LCALL	_DisAscPush
	LJMP 	?C0027
	RSEG  ?PR?_DailyCollectOrDeclareDuty?MAG
_DailyCollectOrDeclareDuty:
	USING	0
	MOV  	n?356,R7

	LCALL	L?0283
	MOV  	A,n?356
	XRL  	A,#01H
	JNZ  	?C0039
	MOV  	i?357,A
?C0040:
	MOV  	DPTR,#DailyTrade
	LCALL	L?0263
	MOV  	R6,B
	LCALL	L?0265
	MOV  	B,#024H
	MUL  	AB
	ADD  	A,#LOW (prn_page_buf+06CH)
	MOV  	DPL,A
	MOV  	A,B
	ADDC 	A,#HIGH (prn_page_buf+06CH)
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,R6
	LCALL	L?0242
	LCALL	L?0268
	CJNE 	A,#069H,?C0040
?C0041:
	CLR  	A
	MOV  	i?357,A
?C0043:
	MOV  	DPTR,#DailyTrade+069H
	LCALL	L?0263
	MOV  	A,#LOW (prn_page_buf+024H)
	ADD  	A,B
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (prn_page_buf+024H)
	LCALL	L?0266
	CJNE 	A,#010H,?C0043
	LJMP 	?C0046
?C0039:
	CLR  	A
	MOV  	i?357,A
?C0047:
	MOV  	A,i?357
	MOV  	DPTR,#declare
	LCALL	L?0264
	MOV  	R6,B
	LCALL	L?0265
	MOV  	B,#024H
	MUL  	AB
	ADD  	A,#LOW (prn_page_buf+024H)
	MOV  	DPL,A
	MOV  	A,B
	ADDC 	A,#HIGH (prn_page_buf+024H)
	MOV  	DPH,A
	MOV  	A,DPL
	ADD  	A,R6
	LCALL	L?0242
	LCALL	L?0268
	CJNE 	A,#087H,?C0047
?C0048:
	CLR  	A
	MOV  	i?357,A
?C0050:
	MOV  	A,i?357
	MOV  	DPTR,#declare+087H
	LCALL	L?0264
	MOV  	A,#LOW (prn_page_buf)
	ADD  	A,B
	MOV  	DPL,A
	CLR  	A
	ADDC 	A,#HIGH (prn_page_buf)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -