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

📄 okupd6464_0929.asm

📁 upd 6464a 取得程序 51 汇编指令
💻 ASM
📖 第 1 页 / 共 4 页
字号:
	mov	a,count
	movc	a,@a+dptr
	cjne	a,#88h,DISNOSEARCHnextline
	jmp	DISNOSEARCHend_1
DISNOSEARCHnextline:
	inc	nbx
	mov	disdata,a
	call	displaychar
	inc	count
	jmp	DISNOSEARCH
DISNOSEARCHend:
	mov	nbx,#1
	mov	nby,#0
	mov	disdata,#3bh
	call	displaychar
	mov	senddata,4ch	;   初始  TRACK INDEX
	MOV	searchcount,#4CH ;初始  TRACK count
DISNOSEARCHend_1:
	jmp	exit
;====================================================
disoktitlename:
	mov	r0,#82h
	mov	a,@r0
	clr	c
    	subb	a,#4
    	mov	 countername,a
    	mov	r0,#86h
    	mov	nbx,#2
distitlenameloop:
    	mov	a,@r0			; 空格
    	cjne	a,#20h,distitlenameloop_kg
    	mov	a,#10h
    	jmp	distitlenameloop_3
distitlenameloop_kg:
        cjne     a,#4fh,distitlenameloop_o
        mov      a,#5fh			; o char
        jmp     distitlenameloop_3
distitlenameloop_o:
    	cjne	a,#61h,distitlenameloop_1
distitlenameloop_1:
	jc	distitlenameloop_2	;a xiaoto displaytittle_2
        clr    c
	subb	a,#10h
	jmp	distitlenameloop_3
distitlenameloop_2:
        clr    c
	subb	a,#30h
distitlenameloop_3:
    	mov	disdata,a
        LCALL   displaychar
        inc	r0
        inc	nbx
        djnz	 countername,distitlenameloop
        ret
;**************************************************************search status end
;*************************************************************** remote status
voladd:
	call	vola
	call	losekey
	jb	status.1,voladd;
	jmp	exit
;----------------------------------
volmius:
	call	volm
	call	losekey
	jb	status.1,volmius;
	jmp	exit
;-------------------------------
KEYVOLADD:
	call	vola
	call	delay80ms
	jnb	VOLADDKEY,KEYVOLADD
	jmp	main
;-------------------------------
KEYVOLmius:
	call	volm
	call	delay80ms
	jnb	VOLmiusKEY,KEYVOLmius
	jmp	main
;-------------------------------
;KEYVOLADD:
;	SETB	KEYSTATUS.0
;	JMP	KEYVOLADD_1
;voladd:
;	CLR	KEYSTATUS.0
;KEYVOLADD_1:
;	jnb	status.0,voladdd
;	mov	nby,#11
;	call	clrrow
;	mov	voldiscount,#0
;	mov	disdata,#7ch
;	mov	nby,#11
;	mov	nbx,#0
;	call	displaychar
;;------------------------------------------
;	mov	disdata,#7dh
;	mov	nby,#11
;	mov	nbx,#17
;	call	displaychar
;voladdd:
;	call	vola
;	call	voldisvoljia
;	mov	dptr,#voladdtab
;	mov	count,#00h
;voladd_1:
;	mov	a,count
;	movc	a,@a+dptr
;	inc	count
;	cjne	a,#88h,voladd_2
;	JB	KEYSTATUS.0,ADDISKEY
;	call	losekey
;	JMP	ADDISKEY_1
;ADDISKEY:
;	JNB	VOLADDKEY,voladdd
;	JMP	voladd_1_0
;ADDISKEY_1:
;	jb	status.1,voladdd; no losekey go on
;;----------------------------------- losekey exit
;voladd_1_0:
;	mov	count,#00h
;voladd_1_1:
;	mov	a,count
;	mov	dptr,#buttomuptab
;	movc	a,@a+dptr
;	inc	count
;	cjne	a,#88h,voladd_3
;	JB	KEYSTATUS.0,voladd_1_2
;	jmp	exit	; exit
;voladd_1_2:
;	jmp	main
;;--------------------------------
;voladd_2:
;	mov	sbuf, a
;	clr     ti
;	jnb	ti,$
;        jmp	voladd_1
; ;------------------------------
;voladd_3:
;	mov	sbuf, a
;	clr     ti
;	jnb	ti,$
;        jmp	voladd_1_1
;;--------------------------------
;voldisvoljia:
;	jnb	status.0,voljia_1_0
;	mov	a,volcount
;	cjne	a,#16,voljia
;	jmp	voljia_1
;voljia:
;	inc	volcount
;voljia_1:
;	mov	a,voldiscount
;	cjne	a,volcount,voljia_2
;voljia_1_0:
;	ret
;;--------------------------------------
;voljia_2:
;	inc	voldiscount
;	mov	disdata,#1fh
;	mov	nby,#11
;	mov	nbx,voldiscount
;	call	displaychar
;	jmp	voljia_1
;;======================================VOLMIUS
;KEYVOLMIUS:
;	SETB	KEYSTATUS.0
;	JMP	KEYVOLMIUS_1
;VOLMius:
;	CLR	KEYSTATUS.0
;KEYVOLMIUS_1:
;	jnb	status.0,VOLMiuss
;	mov	nby,#11
;	call	clrrow
;	mov	disdata,#7ch
;	mov	nby,#11
;	mov	nbx,#0
;	call	displaychar
;;------------------------------------------
;	mov	disdata,#7dh
;	mov	nby,#11
;	mov	nbx,#17
;	call	displaychar
;	mov	voldiscount,#1
;;-----------------------------------------------------
;volmiusicon:
;	;mov	a,voldiscount
;	;cjne	a,#volcount,volmiusicon_1
;	mov	a,voldiscount
;	cjne	a,volcount,volmiusicon_1
;	jmp	VOLMiuss
;volmiusicon_1:
;	inc	voldiscount
;	mov	disdata,#1fh
;	mov	nby,#11
;	mov	nbx,voldiscount
;	call	displaychar
;	jmp	volmiusicon
;;-----------------------------------------------
;VOLMiuss:
;	mov	voldiscount,volcount
;	call	voljianvol
;	call	volm
;	mov	dptr,#volmiustab
;	mov	count,#00h
;VOLMIUS_1:
;	mov	a,count
;	movc	a,@a+dptr
;	inc	count
;	cjne	a,#88h,VOLMIUS_2
;	JB	KEYSTATUS.0,ISKEY	; BANG DUANG SHI KEY HAI SHI REMOTE
;	call	losekey
;	JMP	ISKEY_1
;ISKEY:
;	JNB	VOLMIUSKEY,VOLMiuss
;	JMP	VOLMIUS_1_0
;ISKEY_1:
;	jb	status.1,VOLMIUSs; no losekey go on
;;----------------------------------- losekey exit
;VOLMIUS_1_0:
;	mov	count,#00h
;VOLMIUS_1_1:
;	mov	a,count
;	mov	dptr,#buttomuptab
;	movc	a,@a+dptr
;	inc	count
;	cjne	a,#88h,VOLMIUS_3
;	JB	KEYSTATUS.0,VOLMIUS_1_2	; BANG DUANG SHI KEY HAI SHI REMOTE
;	jmp	exit	; exit
;VOLMIUS_1_2:
;	jmp	main
;;--------------------------------
;VOLMIUS_2:
;	mov	sbuf, a
;	clr     ti
;	jnb	ti,$
;        jmp	VOLMIUS_1
; ;------------------------------
;VOLMIUS_3:
;	mov	sbuf, a
;	clr     ti
;	jnb	ti,$
;        jmp	VOLMIUS_1_1
;;--------------------------------
;voljianvol:
;	jnb	status.0,voljian_3
;	mov	a,volcount
;	cjne	a,#1,voljian
;	jmp	voljian_1
;voljian:
;	dec	volcount
;voljian_1:
;	mov	a,voldiscount
;	cjne	a,#1,voljian_2
;voljian_2:
;	jc	voljian_3
;	mov	disdata,#10h
;	mov	nby,#11
;	mov	nbx,voldiscount
;	call	displaychar
;	dec	voldiscount
;voljian_3:
;	ret
;========================================NEXTTRACK
NEXTTRACK:
	mov	dptr,#nexttracktab
	call	simplesend
	jnb	status.0,NEXTTRACK_1
	lcall	displaymain
NEXTTRACK_1:
	jmp	exit
;======================================PRETRACK
PRETRACK:
	mov	dptr,#pretracktab
	call	simplesend
	jnb	status.0,PRETRACK_1
	lcall	displaymain
PRETRACK_1:
	jmp	exit
;----------------------------------------
PLAYPAUSE:
	mov	dptr,#playpausetab
	call	simplesend
	jnb	status.0,PLAYPAUSE_1
	lcall	keydisplaypause
PLAYPAUSE_1:
	jmp	exit
;----------------------------------
nextlist:
	mov	dptr,#nextlisttab
	call	simplesend
	jnb	status.0,nextlist_1
	lcall	displaymain
nextlist_1:
	jmp	exit
;--------------------------------
prelist:
	mov	dptr,#prelisttab
	call	simplesend
	jnb	status.0,prelist_1
	lcall	displaymain
prelist_1:
	jmp	exit
;----------------------------
uparrow:
	mov	dptr,#uparrowtab
	call	simplesend
	;lcall	displaymain
	jmp	exit
;========================================
downarrow:
	mov	dptr,#downarrowtab
	call	simplesend
	;lcall	displaymain
	jmp	exit
;------------------------
menu:
	mov	dptr,#menutab
	call	simplesend
	;lcall	displaymain
	jmp	exit
;-------------------------------
select:
	mov	dptr,#selecttab
	call	simplesend
	;lcall	displaymain
	jmp	exit
;**************************************************** remote status end
;******************************************************
tvmode:
	;jb	status.0,tvmode_1	; tv mode no process
	 call	sendpower
         call	sendpower
         call	sendpower
	call	inexmode
tvmode_1:
	setb	status.0
	call	losekey
	jb	status.1,tvmode_1; no losekey go on
	mov	inexmodule,#01000101b
	call	ini6464
	call	displaymain
	jmp	exit
;*******************************************************
miusemode:
;	jnb	status.0,miusemode_1	; miuse mode no process
          call	sendpower
         call	sendpower
         call	sendpower
	call    exitexmode
miusemode_1:
	clr	status.0
	call	losekey
	jb	status.1,miusemode_1; no losekey go on
	mov	inexmodule,#01000001b
	call	ini6464
	jmp	exit
;===================================================================== IPOD 程序
readwriteipod:
	mov	ritotal,#0
readwriteipod_1:
	mov	a,ritotal
	cjne	a,#2,readwriteipod_2
	jmp	readwriteipodexit
readwriteipod_2:
	inc	ritotal
	mov	count,#00h
senddata0:
	mov	a,count
	movc	a,@a+dptr
	inc	count
	cjne	a,#88h,senddatatab
	jmp	readdata
senddatatab:	;
	mov	sbuf, a
	clr     ti
	jnb	ti,$
	jmp	senddata0
;--------------------------read
readdata:
	mov	ricount,#250
	mov	ricount,#250
	mov	r0,#80h
	setb	ren
	clr      ri
rxwait1:
	mov	r0,#80h
	clr	ri
	mov	a,sbuf
	mov	@r0,a
;---------------------------------------
	mov	ricount,#250
	mov	ricount,#250
bushi1back:
	djnz	ricount,jinxudeng
	mov	ricount,#250
	djnz	ricount1,jinxudeng
	jmp	readwriteipod_1
jinxudeng:
	jnb	ri,bushi1back
	cjne	a,#0ffh,rxwait1
	inc	r0
	clr	ri
	mov	a,sbuf
	mov	@r0,a
;-------------------------------------
	mov	ricount,#250
	mov	ricount,#250
bushi1back1:
	djnz	ricount,jinxudeng1
	mov	ricount,#250
	djnz	ricount1,jinxudeng1
	jmp	readwriteipod_1
jinxudeng1:
	jnb	ri,bushi1back1
	cjne	a,#55h,rxwait1
	inc	r0
	clr	ri
	mov	a,sbuf
	mov	@r0,a
	mov	r3,a
	mov	ricount,#250
	mov	ricount,#250
bushi1back2:
	djnz	ricount,jinxudeng2
	mov	ricount,#250
	djnz	ricount1,jinxudeng2
	jmp	readwriteipod_1
jinxudeng2:
	jnb	ri,bushi1back2
rxwait1_1:
	inc	r0
	clr	ri
	mov	a,sbuf
	mov	@r0,a
	mov	ricount,#250
	mov	ricount,#250
bushi1back3:
	djnz	ricount,jinxudeng3
	mov	ricount,#250
	djnz	ricount1,jinxudeng3
	jmp	readwriteipod_1
jinxudeng3:
	jnb	ri,bushi1back3
	djnz	r3,rxwait1_1
	mov	r0,#85h
	mov	a,@r0
	cjne	a,duizao,readwriteipodexit22
readwriteipodexit:
	ret
readwriteipodexit22:
	jmp	readwriteipod
;================================ shu jv bu send program
readwritebd:			; qiu de checksum
	mov	ritotal,#0
readwritebd_1:
	mov	a,ritotal
	cjne	a,#2,readwritebd_2
	jmp	readwritebdexit
readwritebd_2:
	inc	ritotal
	mov	count,#2h
	mov	datatemp,#0
qiuchecksum:
	mov	a,count
	movc	a,@a+dptr
	inc	count
	cjne	a,#0aah,qiudecheck
	jmp	jischecksum
qiudecheck:
	clr	c
	add	a,datatemp
	mov	datatemp,a
	jmp	qiuchecksum
jischecksum:
	MOV	A,senddata
	add	a,datatemp
	mov	datatemp,a
	mov	a,#0ffh
	clr	c
	subb	a,datatemp
	inc	a
	mov	checksum,a
;--------------------------------
	mov	count,#00h
senddatabd:
	mov	a,count
	movc	a,@a+dptr
	inc	count
	cjne	a,#0aah,senddatabd_1
	jmp	sendbdandcheck
senddatabd_1:
	mov	sbuf, a
	clr     ti
	jnb	ti,$
	jmp	senddatabd
;--------------------------send senddata and checksum
sendbdandcheck:
	mov	a,senddata
	mov	sbuf,a
	clr     ti
	jnb	ti,$
        mov     a,checksum
	mov	sbuf,a
	clr     ti
	jnb	ti,$
;------------------------------read
bdreaddata:
	mov	r0,#80h
	setb	ren
	clr      ri
bdrxwait1:
	mov	r0,#80h
	clr	ri
	mov	a,sbuf
	mov	@r0,a
	mov	ricount,#250
	mov	ricount,#250
bushi1back4:
	djnz	ricount,jinxudeng4
	mov	ricount,#250
	djnz	ricount1,jinxudeng4
	jmp	readwritebd_1
jinxudeng4:
	jnb	ri,bushi1back4
	cjne	a,#0ffh,bdrxwait1
	inc	r0
	clr	ri
	mov	a,sbuf
	mov	@r0,a
	mov	ricount,#250
	mov	ricount,#250
bushi1back5:
	djnz	ricount,jinxudeng5
	mov	ricount,#250
	djnz	ricount1,jinxudeng5
	jmp	readwritebd_1
jinxudeng5:
	jnb	ri,bushi1back5
	cjne	a,#55h,bdrxwait1
	inc	r0
	clr	ri
	mov	a,sbuf
	mov	@r0,a
	mov	r3,a
	mov	ricount,#250
	mov	ricount,#250
bushi1back6:
	djnz	ricount,jinxudeng6
	mov	ricount,#250
	djnz	ricount1,jinxudeng6
	jmp	readwritebd_1
jinxudeng6:
	jnb	ri,bushi1back6

	;inc	r3
bdrxwait1_1:
	inc	r0
	clr	ri
	mov	a,sbuf
	mov	@r0,a
	mov	ricount,#250
	mov	ricount,#250
bushi1back7:
	djnz	ricount,jinxudeng7
	mov	ricount,#250
	djnz	ricount1,jinxudeng7
	jmp	readwritebd_1
jinxudeng7:
	jnb	ri,bushi1back7
	djnz	r3,bdrxwait1_1
	mov	r0,#85h
	mov	a,@r0
	cjne	a,duizao,readwritebdexit22
readwritebdexit:
	ret
readwritebdexit22:
	jmp	readwritebd
;==================================================  write ipod bd
writebd:			; qiu de checksum
	jb	status.2,writebd_1
	;call	sendpower
writebd_1:
;	setb	status.2
	mov	count,#2h
	mov	datatemp,#0
writeqiuchecksum:
	mov	a,count
	movc	a,@a+dptr
	inc	count
	cjne	a,#0aah,writeqiudecheck
	jmp	writejischecksum
writeqiudecheck:
	clr	c
	add	a,datatemp
	mov	datatemp,a
	jmp	writeqiuchecksum
writejischecksum:
	MOV	A,senddata
	add	a,datatemp
	mov	datatemp,a
	mov	a,#0ffh
	clr	c
	subb	a,datatemp
	inc	a
	mov	checksum,a
;--------------------------------
	mov	count,#00h
writesenddatabd:
	mov	a,count
	movc	a,@a+dptr
	inc	count
	cjne	a,#0aah,writesenddatabd_1
	jmp	writesendbdandcheck
writesenddatabd_1:
	mov	sbuf, a
	clr     ti
	jnb	ti,$
	jmp	writesenddatabd
;--------------------------send senddata and checksum
writesendbdandcheck:
	mov	a,senddata
	mov	sbuf,a
	clr     ti
	jnb	ti,$
        mov     a,checksum
	mov	sbuf,a
	clr     ti
	jnb	ti,$
	clr	ti
	ret
;==========================================
simplesend:
	mov	count,#00h
simplesend_1:
	mov	a,count
	movc	a,@a+dptr
	inc	count
	cjne	a,#88h,simplesend_2
	call	losekey
	jb	status.1,simplesend; no losekey go on
;----------------------------------- losekey exit
	mov	count,#00h
simplesend_1_1:
	mov	a,count
	mov	dptr,#buttomuptab
	movc	a,@a+dptr
	inc	count
	cjne	a,#88h,simplesend_3
	ret
;--------------------------------
simplesend_2:
	mov	sbuf, a
	clr     ti
	jnb	ti,$
        jmp	simplesend_1
 ;------------------------------
simplesend_3:
	mov	sbuf, a
	clr     ti
	jnb	ti,$

⌨️ 快捷键说明

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