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

📄 glqlgdc1.asm

📁 一卡通源码程序是我公司的一卡通源码程序,绝对难得
💻 ASM
📖 第 1 页 / 共 5 页
字号:
	jnb f_ini,rarea04

rarea01: mov @r0,#0
	inc r0
	djnz r2,rarea01

	sjmp rq004


rarea03: dec a
	mov dptr,#area_offset
	mov b,#hedlen
	mul ab
	add a,dpl
	mov dpl,a
	mov a,b
	addc a,dph
	mov dph,a

	mov r0,#b_buf

	mov reclen,#hedlen

	inc reclen
	mov r2,#hedlen

rarea04: movx a,@dptr
	mov @r0,a
	lcall indptr
	inc r0
	djnz r2,rarea04

	;
 rq004: mov r1,#tihed
	mov r0,#b_buf

	mov a,reclen
	dec a
	mov b,#16
	div ab
	jnz rarea05
	mov subsq,#0
	sjmp rarea0b


rarea05: mov r2,b
	inc a
	cjne r2,#0,rarea06
	dec a

rarea06: cjne a,subsq,rarea07
	mov subsq,#0
	dec a
	swap a
	sjmp rarea0a

rarea07: jnc rarea08

	mov subsq,#0
	dec a
	swap a
	sjmp rarea0a

rarea08: mov a,subsq
	jnz rarea09
	inc subsq
	inc a

rarea09: dec a
	swap a
	;
rarea0a: add a,r0
	mov r0,a

rarea0b: mov a,#20h
	orl a,subsq
	mov @r1,a
	inc r1
	mov @r1,#0
	;
	mov r1,#tidat

	mov r2,#16
	lcall copy_s
	;
	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret


r_area1: ;------------------
	;  Read Region 1,2
	;------------------
	lcall quhead
	;
	inc r0
	mov rec_h,@r0
	inc r0
	mov rec_l,@r0

	mov a,rec_h
	cjne a,max_h,rarea10
	mov a,rec_l
	cjne a,max_l,rarea10
rarea10: jc rarea13

	mov r0,#tihed

	mov @r0,#20h
	inc r0

	mov @r0,#0
	;
	mov r0,#tidat

	dec r0
	dec r0

	mov @r0,#0ffh
	inc r0

	mov @r0,#0ffh
	inc r0

	mov @r0,#over
	inc r0

	mov r2,#15
rarea11: mov @r0,#0
	inc r0
	djnz r2,rarea11

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret


rarea13: lcall get_ar
	;
	mov r2,reclen
	dec r2
	dec r2
	mov r0,#b_buf

	movx a,@dptr
	anl a,#7fh
	mov @r0,a

	lcall indptr
	inc r0

rarea14: movx a,@dptr
	mov @r0,a

	lcall indptr
	inc r0

	djnz r2,rarea14
	;
	mov r1,#tihed
	mov r0,#b_buf

	mov a,reclen
	dec a
	mov b,#16
	div ab
	jnz rarea15
	mov subsq,#0
	sjmp rarea1b

rarea15: mov r2,b
	inc a
	cjne r2,#0,rarea16
	dec a

rarea16: cjne a,subsq,rarea17
	mov subsq,#0
	dec a
	swap a
	sjmp rarea1a

rarea17: jnc rarea18

	mov subsq,#0
	dec a
	swap a
	sjmp rarea1a

rarea18: mov a,subsq
	jnz rarea19
	inc subsq
	inc a

rarea19: dec a
	swap a
	;
rarea1a: add a,r0
	mov r0,a

rarea1b: mov a,#20h
	orl a,subsq
	mov @r1,a
	inc r1
	mov @r1,#0
	;
	mov r1,#tidat

	mov r2,#16
	lcall copy_s
	;
	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret




r_area3: ;----------------
	; Read Region 3
	;----------------
	lcall quhead
	;
	inc r0
	mov rec_h,@r0
	cjne @r0,#0ffh,rarea30

	inc r0
	mov rec_l,@r0
	cjne @r0,#0ffh,rarea31

	sjmp rarea32

rarea30: inc r0
	mov rec_l,@r0

rarea31: ljmp r_q30


rarea32: ;--------------------
	;  Squence Read
	;--------------------
	mov a,beg_h
	cjne a,end_h,rarea34

	mov a,beg_l
	cjne a,end_l,rarea34

	mov r0,#tihed
	mov @r0,#20h
	inc r0

	mov @r0,repeat
	;
	mov r0,#tidat

	mov r2,#16

rarea33: mov @r0,#0
	inc r0

	djnz r2,rarea33

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret


rarea34: mov a,beg_h
	cjne a,max_h,rarea35

	mov a,beg_l
	cjne a,max_l,rarea35

rarea35: jc rarea36

	mov r0,#tihed

	mov @r0,#20h
	inc r0

	mov @r0,repeat
	;
	mov r0,#tidat

	mov @r0,#over
	inc r0

	mov r2,#15

 rq333: mov @r0,#0
	inc r0

	djnz r2,rq333

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret

	;
rarea36: mov r0,#tidat
	dec r0
	dec r0

	mov @r0,beg_h
	inc r0

	mov @r0,beg_l
	;
	mov rec_h,beg_h
	mov rec_l,beg_l
	;
	lcall get_ar

	;======================modify
	mov r0,#tidat
	movx a,@dptr
	mov b,a

	mov c,acc.6
	mov bit_c,c

	anl a,#10111111b		;将ACC.6屏蔽
	mov @r0,a
	inc r0
	lcall indptr
	;======================modify
	mov r2,reclen

	dec r2
	dec r2

rarea37: movx a,@dptr
	mov @r0,a

	add a,b
	mov b,a

	inc r0
	lcall indptr

	djnz r2,rarea37

	;
	jnb bit_c,r_q38		;若bit_c=0:转r_q38
				;若bit_c=1:(要判记录校验和)
	movx a,@dptr
	cjne a,b,rarea38


 r_q38: mov r0,#tihed
	mov @r0,#20h

	inc r0
	mov @r0,repeat

	lcall chktis
	inc repeat

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret



rarea38: mov r0,#tihed

	mov @r0,#20h
	inc r0

	mov @r0,repeat

	mov r0,#tidat

	dec r0
	dec r0

	mov @r0,#0ffh
	inc r0

	mov @r0,#0ffh
	inc r0

	mov @r0,#cserr
	inc r0

	mov r2,#15

rarea39: mov @r0,#0
	inc r0

	djnz r2,rarea39

	lcall chktis
	inc repeat

	mov ticon,#49
	mov tir0,#tibuf
	setb ti

	setb f_ecs
	mov r_ecs,#3

	ret




 r_q30: ;----------------------
	;  Special Record Read
	;----------------------
	mov a,rec_h
	cjne a,max_h,r_q32

	mov a,rec_l
	cjne a,max_l,r_q32

 r_q32: jc r_q34


	mov r0,#tihed

	mov @r0,#20h
	inc r0

	mov @r0,repeat
	;
	mov r0,#tidat

	dec r0
	dec r0

	mov @r0,#0ffh
	inc r0

	mov @r0,#0ffh
	inc r0

	mov @r0,#over
	inc r0

	mov r2,#15

 r_q33: mov @r0,#0
	inc r0

	djnz r2,r_q33

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret



 r_q34: lcall get_ar
	;
	mov r0,#tidat

	movx a,@dptr
	anl a,#7fh
	mov @r0,a

	lcall indptr
	inc r0

	mov r2,reclen

	dec r2
	dec r2

 r_q35: movx a,@dptr
	mov @r0,a

	inc r0
	lcall indptr

	djnz r2,r_q35
	;

	mov r0,#tihed
	mov @r0,#20h

	inc r0
	mov @r0,#0

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret




r_area4: ;------------------
	;  Read Region 4,6
	;------------------
	lcall quhead
	;
	inc r0
	mov rec_h,@r0
	inc r0
	mov rec_l,@r0

	lcall get_ar
	;
	mov r2,reclen
	dec r2
	mov r0,#b_buf

rarea41: movx a,@dptr
	mov @r0,a
	lcall indptr
	inc r0
	djnz r2,rarea41
	;
	mov r1,#tihed
	mov r0,#b_buf

	mov a,reclen
	dec a
	mov b,#16
	div ab
	jnz rarea42
	mov subsq,#0
	sjmp rarea49

rarea42: mov r2,b
	inc a
	cjne r2,#0,rarea43
	dec a

rarea43: cjne a,subsq,rarea44
	mov subsq,#0
	dec a
	swap a
	sjmp rarea48

rarea44: jnc rarea46

	mov subsq,#0
	dec a
	swap a
	sjmp rarea48

rarea46: mov a,subsq
	jnz rarea47
	inc subsq
	inc a

rarea47: dec a
	swap a
	;
rarea48: add a,r0
	mov r0,a

rarea49: mov a,#20h
	orl a,subsq
	mov @r1,a
	inc r1
	mov @r1,#0
	;
	mov r1,#tidat

	mov r2,#16
	lcall copy_s
	;
	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret



r_area5: ;-----------------
	; Read Region 5
	;-----------------
	lcall quhead
	;
	mov r0,#ridat
	mov r3,#16

rqu51:  mov rec_h,#0
	mov rec_l,#0

	lcall get_ar
	;
	mov a,@r0
	mov r2,a

	jz rqu53

	lcall n_dptr

 rqu53: movx a,@dptr
	mov @r0,a

	inc r0
	djnz r3,rqu51
	;
	mov r0,#tihed

	mov @r0,#20h

	inc r0
	mov @r0,#0
	;
	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret

;----------------------------------
;	read region 7	增加读7区功能
;----------------------------------
r_area7:lcall quhead7		;调用区7头信息

	inc r0
	mov rec_h,@r0

	inc r0
	mov rec_l,@r0

	mov a,rec_h
	cjne a,max_h,rarea70

	mov a,rec_l
	cjne a,max_l,rarea70

rarea70:jc rarea73		;记录号<=记录总数,转rarea73
				;记录号>记录总数
	mov r0,#tihed
	mov @r0,#20h		;command=20h
	inc r0

	mov @r0,#0		;repeat=0

	mov r0,#tidat
	dec r0
	dec r0

	mov @r0,#0ffh		;record(h)=0ffh
	inc r0
	mov @r0,#0ffh		;record(l)=0ffh
	inc r0

	mov @r0,#over		;;data(0)=16
	inc r0

	mov r2,#15

rarea71:mov @r0,#0
	inc r0
	djnz r2,rarea71		;data(1-15)=0

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti

	ret

rarea73:lcall get_ar	;确定记录号所在地址

	mov r0,#tidat

	mov r2,reclen
	dec r2

rarea75:movx a,@dptr
	mov @r0,a

	inc r0
	lcall indptr

	djnz r2,rarea75	;将10字节的内容送tidat起单元

	mov r0,#tihed
	mov @r0,#20h	;command=20h

	inc r0
	mov @r0,#0	;repeat=0

	lcall chktis
	mov ticon,#49
	mov tir0,#tibuf

	setb ti		;串行口发送至PC
	ret

	;----------------------
	;read 8 qu(信用等级区)
	;----------------------
r_area8:lcall quhead		;调用区8头信息

	inc r0
	mov rec_h,@r0		;record(h)-->rec_h

	inc r0
	mov rec_l,@r0		;record(l)-->rec_l

	mov a,rec_h
	cjne a,max_h,rarea80

	mov a,rec_l
	cjne a,max_l,rarea80

rarea80:jc rarea83		;记录号<=记录总数,转rarea83
				;记录号>记录总数
	mov r0,#tihed
	mov @r0,#20h		;command=20h
	inc r0

	mov @r0,#0		;repeat=0

	mov r0,#tidat
	dec r0
	dec r0

	mov @r0,#0ffh		;record(h)=0ffh
	inc r0
	mov @r0,#0ffh		;record(l)=0ffh
	inc r0

	mov @r0,#over		;;data(0)=16
	inc r0

	mov r2,#15

rarea81:mov @r0,#0
	inc r0
	djnz r2,rarea81		;data(1-15)=0

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti

	ret

rarea83:lcall get_ar	;确定记录号所在地址

	mov r0,#tidat

	mov r2,reclen	;reclen=3
	dec r2

rarea85:movx a,@dptr
	mov @r0,a

	inc r0
	lcall indptr

	djnz r2,rarea85	;将2字节的内容送tidat起单元

	mov r0,#tihed
	mov @r0,#20h	;command=20h

	inc r0
	mov @r0,#0	;repeat=0

	lcall chktis
	mov ticon,#49
	mov tir0,#tibuf

	setb ti		;串行口发送至PC
	ret


	;----------------------
	; Read GLQ Date && Time
	;----------------------
r_date_time: mov r1,#tidat
	mov r0,#dyer
	mov r2,#7
	lcall copy_s

	mov r2,#9
 rdck0: mov @r1,#0
	inc r1
	djnz r2,rdck0

	mov r0,#tihed
	mov @r0,#20h

	inc r0
	mov @r0,#0

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret



	;----------------------
	; Read Post Date && Time
	;----------------------
r_pos_date: setb f_wck

	mov r0,#tidat
	dec r0

	mov r_win,@r0
	setb tr1
	ret



	;----------------------
	; Read Post Param
	;----------------------
r_pos_idsc: mov a,subsq
	cjne a,#1,pst_0

	setb f_win

	mov r0,#tidat
	dec r0
	mov r_win,@r0
	setb tr1
	ret

pst_0:  mov r1,#tihed
	mov @r1,#20h
	inc r1
	mov @r1,#0

	mov r1,#tidat
	mov a,#b_buf
	add a,#16
	mov r0,a

	mov r2,#16

	lcall copy_s

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret



	;----------------------
	;    Read    Card
	; region=0a2: Read Card
	;----------------------
card_server: inc r0
	cjne @r0,#0a2h,rcd02

	mov a,subsq
	cjne a,#1,rcd05

	setb f_s00

	mov r_s00,#19
	setb tr1
	ret

rcd02:  setb f_tx
	ret

rcd05:  mov a,#b_buf
	add a,#18
	mov r0,a
	;
	mov r1,#tihed
	mov a,@r1
	mov @r1,#20h
	;
	inc r1
	mov @r1,#0         ;Repeat
	;
	inc r1             ;ChipS
	;
	inc r1             ;Region
	;
	inc r1             ;RecordNum
	;
	mov r2,#18

	lcall copy_s

	lcall chktis

	mov ticon,#49
	mov tir0,#tibuf
	setb ti
	ret



	;---------------------
	;  Special Read
	;---------------------
special_read:  inc r0
	mov a,@r0
	anl a,#0fh
	mov region,a
	rl a
	add a,region
	mov dptr,#rrdtab
	jmp @a+dptr
rrdtab: ljmp read50
	ljmp read51
	ljmp read52
	ljmp read59
	ljmp read59
	ljmp read59
	ljmp read59
	ljmp read59
	ljmp read59

read59: setb f_tx
	ret


read50: ;----------------------
	; Read Special Region 0
	;----------------------
	inc r0
	inc r0

	mov a,@r0
	jz rd_qu0

⌨️ 快捷键说明

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