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

📄 caldisp.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
+                   616 			
03D6 F1 00          617 		lda     GetCount
03D8 FD 00          618         	sta     dig_num        	
03DA 20 00 00       619         	call    Display_5X7
03DD                620         	PP2One()
03E1 20 01 B3       621         	call	RightGetCount		
03E4 F1 09          622 		lda	startbf
03E6 1F             623 		inca
03E7 FD 09          624 		sta	startbf	
03E9 F1 07          625         	lda	chklengthbf
03EB A7 01          626         	cmpe	#C_ONE
03ED 06 04 08       627         	brz	Allerrordispend
03F0 3F             628         	deca
03F1 FD 07          629         	sta	chklengthbf        		     	   	                	        	
03F3 02 03 BF       630 		br	disperrorloop
+                   631 		
03F6                632 Allerrordispend1:
03F6 F3 00          633 		lda	#C_ZERO
03F8 F9 00          634 		sta0	.KeyPos
03FA F9 00          635         	sta0	ErrorFlag
03FC 20 00 00       636         	call	.ClrZ
03FF 20 1C 95       637         	call	Clrfullseg
0402 20 09 ED       638 		call	ChkDispAns
0405 20 0A 6F       639 		call	ShowAnschk
+                   640         	        			
0408                641 Allerrordispend:	
0408 24             642 		ret
+                   643 ;------------------------------------------------------------------------
+                   644 ;------------------------------------------------------------------------
0409                645 Leftchk:					
0409 F5 00          646 		lda0	.DataDP
040B A7 00          647        		cmpe	#C_ZERO
040D 06 04 DC       648        		brz	leftchkend
+                   649        		
0410                650 		PP2One()		
0414 F5 00          651 		lda0	.SFDP
0416 A7 00          652 		cmpe	#C_ZERO
0418 07 04 1E       653 		brnz	doleftchk
041B 02 04 DC       654 		br	leftchkend	
+                   655 		
041E                656 doleftchk:								
041E 20 1C 70       657 		call	Clrfullmatrix		
0421                658 notfullleft:		
0421                659 		PP2One()
0425 F3 0C          660 		lda	#C_12
0427 FD 00          661 		sta	GetCount
+                   662 			
0429 F3 02          663 		lda	#C_TWO
042B FD 06          664 		sta	cmpPP
042D F3 00          665 		lda	#C_ZERO
042F FD 05          666 		sta	cmpDP
0431                667 nfleftloop:					
0431 20 01 C2       668 		call	Addplace				        	 				
0434 20 03 0C       669 		call	Chklength
0437                670 		PP2One()		
043B F1 00          671         	lda	GetCount
043D A9 08          672         	suba	displength
043F FD 00          673         	sta	GetCount
0441 05 04 81       674         	brnc	fullleft       	      	
0444 F5 00          675 		lda0	.SFDP
0446 A5 05          676         	cmpe	cmpDP
0448 07 04 31       677         	brnz	nfleftloop
+                   678 		
+                   679 		
044B                680 nfldisp:				
044B                681 		PP2One()
044F F3 0B          682 		lda	#C_11
0451 FD 00          683 		sta	GetCount
+                   684 			
0453 F3 02          685 		lda	#C_TWO
0455 FD 06          686 		sta	cmpPP
0457 F3 00          687 		lda	#C_ZERO
0459 FD 05          688 		sta	cmpDP			
045B                689 nfldisploop:											 				
045B 20 01 C2       690 		call	Addplace							
045E                691 		PP2One()
0462 F5 00          692 		lda0	.SFDP		
0464 A5 05          693 		cmpe	cmpDP
0466 07 04 6D       694 		brnz	keepnfldisp
0469 F1 00          695 		lda	GetCount
046B FD 02          696 		sta	blankCount
+                   697 					
046D                698 keepnfldisp:
046D 20 01 FA       699 		call	Font2disp
+                   700 																			
0470 F1 00          701 		lda	GetCount
0472 A7 FF          702 		cmpe	#MAX
0474 06 04 DC       703 		brz	leftchkend										
0477 F5 00          704 		lda0	.DataDP
0479 A5 05          705 		cmpe	cmpDP		
047B 07 04 5B       706 		brnz	nfldisploop		
047E 02 04 DC       707 		br	leftchkend
+                   708 		
+                   709 		
0481                710 fullleft:		
0481                711 		PP2One()
0485 F3 0C          712 		lda	#C_12
0487 FD 00          713 		sta	GetCount
0489 F3 02          714 		lda	#C_TWO
048B FD 06          715 		sta	cmpPP
048D F5 00          716 		lda0	.SFDP
048F FD 05          717 		sta	cmpDP					
0491                718 leftloop:				  	        	        	        	
0491 20 01 DF       719         	call	Decplace        	 				
0494 20 03 0C       720 		call	Chklength
0497                721 		PP2One()		
049B F1 00          722         	lda	GetCount
049D A9 08          723         	suba	displength
049F FD 00          724         	sta	GetCount
04A1 05 04 AE       725         	brnc	set2leftdisp
04A4 F1 05          726         	lda	cmpDP
04A6 A7 00          727         	cmpe	#C_ZERO
04A8 07 04 91       728         	brnz	leftloop
04AB 02 04 AE       729         	br	set2leftdisp
+                   730        
+                   731         	
+                   732 							
04AE                733 set2leftdisp:
04AE                734 		PP2One()               		
04B2 F3 0B          735 		lda	#C_11
04B4 FD 00          736 		sta	GetCount
04B6 20 01 C2       737 		call	Addplace																
04B9                738 leftdisploop:									
+                   739 		
04B9 20 01 C2       740 		call	Addplace											
04BC                741 		PP2One() 
04C0 F5 00          742 		lda0	.SFDP
04C2 A5 05          743 		cmpe	cmpDP
04C4 07 04 CB       744 		brnz	keepleftdisp
04C7 F1 00          745 		lda	GetCount
04C9 FD 02          746 		sta	blankCount
+                   747 				
04CB                748 keepleftdisp:				
04CB 20 01 FA       749 		call	Font2disp			
04CE F1 00          750 		lda	GetCount
04D0 A7 FF          751 		cmpe	#MAX
04D2 06 04 DC       752 		brz	leftchkend												
04D5 F5 00          753 		lda0	.DataDP
04D7 A5 05          754 		cmpe	cmpDP		
04D9 07 04 B9       755 		brnz	leftdisploop	
04DC                756 leftchkend:		
04DC 24             757 		ret
+                   758 ;------------------------------------------------------------------------
04DD                759 Rightchk::      		
04DD                760 		PP2One()
04E1 F1 00          761 		lda	.SetFlag
04E3 CB 20          762 		anda	#BLANKCHK
04E5 07 06 32       763 		brnz	Matrixanschk
+                   764 				
04E8 F5 00          765 		lda0	.SFDP
04EA A7 00          766 		cmpe	#C_ZERO
04EC 07 04 F2       767 		brnz	dorightchk
04EF 02 05 BD       768 		br	lastchk			
04F2                769 dorightchk:	
04F2 F5 00          770 		lda0	.DataDP
04F4 A7 00          771        		cmpe	#C_ZERO
04F6 06 06 31       772        		brz	rightchkend						
04F9 20 1C 70       773 		call	Clrfullmatrix		
04FC                774 notfullright:		
04FC                775 		PP2One()
0500 F3 0C          776 		lda	#C_12
0502 FD 00          777 		sta	GetCount
+                   778 			
0504 F3 02          779 		lda	#C_TWO
0506 FD 06          780 		sta	cmpPP
0508 F3 00          781 		lda	#C_ZERO
050A FD 05          782 		sta	cmpDP
050C                783 nfrightloop:					
050C 20 01 C2       784 		call	Addplace				        	 				
050F 20 03 0C       785 		call	Chklength
0512                786 		PP2One()		
0516 F1 00          787         	lda	GetCount
0518 A9 08          788         	suba	displength
051A FD 00          789         	sta	GetCount
051C 05 05 5F       790         	brnc	fullright
051F F5 00          791 		lda0	.SFDP
0521 A5 05          792         	cmpe	cmpDP
0523 07 05 0C       793         	brnz	nfrightloop
0526 02 05 29       794 		br	nfrdisp
+                   795 		
0529                796 nfrdisp:				
0529                797 		PP2One()
052D F3 0B          798 		lda	#C_11
052F FD 00          799 		sta	GetCount
+                   800 			
0531 F3 02          801 		lda	#C_TWO
0533 FD 06          802 		sta	cmpPP
0535 F3 00          803 		lda	#C_ZERO
0537 FD 05          804 		sta	cmpDP			
0539                805 nfrdisploop:											 				
0539 20 01 C2       806 		call	Addplace							
053C                807 		PP2One()
0540 F5 00          808 		lda0	.SFDP		
0542 A5 05          809 		cmpe	cmpDP
0544 07 05 4B       810 		brnz	keepnfrdisp
0547 F1 00          811 		lda	GetCount
0549 FD 02          812 		sta	blankCount
+                   813 						
054B                814 keepnfrdisp:
054B 20 01 FA       815 		call	Font2disp
+                   816 																				
054E F1 00          817 		lda	GetCount
0550 A7 FF          818 		cmpe	#MAX
0552 06 06 31       819 		brz	rightchkend										
0555 F5 00          820 		lda0	.DataDP
0557 A5 05          821 		cmpe	cmpDP		
0559 07 05 39       822 		brnz	nfrdisploop		
055C 02 06 31       823 		br	rightchkend
+                   824 		
+                   825 		
055F                826 fullright:		
055F                827 		PP2One()
0563 F3 0C          828 		lda	#C_12
0565 FD 00          829 		sta	GetCount
0567 F3 02          830 		lda	#C_TWO
0569 FD 06          831 		sta	cmpPP
056B F5 00          832 		lda0	.SFDP
056D FD 05          833 		sta	cmpDP				
056F                834 rightloop:				  	        	        	        	
056F 20 01 DF       835         	call	Decplace    	        	 				
0572 20 03 0C       836 		call	Chklength
0575                837 		PP2One()		
0579 F1 00          838         	lda	GetCount
057B A9 08          839         	suba	displength
057D FD 00          840         	sta	GetCount
057F 05 05 8C       841         	brnc	set2rightdisp	        	
0582 F1 05          842         	lda	cmpDP
0584 A7 00          843         	cmpe	#C_ZERO
0586 07 05 6F       844         	brnz	rightloop
0589 02 05 8C       845         	br	set2rightdisp
+                   846        
+                   847         	
+                   848 							
058C                849 set2rightdisp:
058C                850 		PP2One()               		
0590 F3 0B          851 		lda	#C_11
0592 FD 00          852 		sta	GetCount
0594 20 01 C2       853 		call	Addplace																
0597                854 rightdisploop:									
+                   855 		
0597 20 01 C2       856 		call	Addplace											
059A                857 		PP2One() 
059E F5 00          858 		lda0	.SFDP
05A0 A5 05          859 		cmpe	cmpDP
05A2 07 05 A9       860 		brnz	keeprightdisp
05A5 F1 00          861 		lda	GetCount
05A7 FD 02          862 		sta	blankCount
+                   863 				
05A9                864 keeprightdisp:				
05A9 20 01 FA       865 		call	Font2disp			
05AC F1 00          866 		lda	GetCount
05AE A7 FF          867 		cmpe	#MAX
05B0 06 06 31       868 		brz	rightchkend												
05B3 F5 00          869 		lda0	.DataDP
05B5 A5 05          870 		cmpe	cmpDP		
05B7 07 05 97       871 		brnz	rightdisploop	
05BA 02 06 31       872 		br	rightchkend	
+                   873 
+                   874 
+                   875 
+                   876 		
05BD                877 lastchk:		
05BD                878 		PP2Zero() 		
05C1 F1 00          879 		lda	.SFDP
05C3 A5 00          880 		cmpe	.DataDP
05C5 07 05 DC       881 		brnz	keepdolast
+                   882 		
05C8 20 1C 70       883 		call	Clrfullmatrix
05CB                884 		PP2One()
05CF 20 1C 48       885 		call	Rekeyindisp2
05D2                886 clrpage2:				
+                   887 		
+                   888 		
+                   889 		
05D2 20 00 00       890 		call	ClrPP2
05D5                891 		PP2One()				
05D9 02 06 31       892 		br	rightchkend
+                   893 		
05DC                894 keepdolast:		
05DC 20 1C 70       895 		call	Clrfullmatrix
05DF                896 		PP2One()
05E3 F3 0B          897 		lda	#C_11
05E5 FD 00          898 		sta	GetCount
+                   899 			
05E7 F3 02          900 		lda	#C_TWO
05E9 FD 06          901 		sta	cmpPP
05EB F3 00          902 		lda	#C_ZERO
05ED FD 05          903 		sta	cmpDP
05EF                904 chkoverloop:					
05EF 20 01 C2       905 		call	Addplace				        	 				
05F2 20 03 0C       906 		call	Chklength
05F5                907 		PP2One()		
05F9 F1 00          908         	lda	GetCount
05FB A9 08          909         	suba	displength
05FD FD 00          910         	sta	GetCount
05FF 05 01 14       911         	brnc	Fulldisp   	      	
0602 F5 00          912 		lda0	.DataDP
0604 A5 05          913         	cmpe	cmpDP
0606 07 05 EF       914         	brnz	chkoverloop
0609 02 06 0C       915 		br	notoverdisp
+                   916 		
+                   917 					
060C                918 notoverdisp:				
+                   919 		
060C                920 		PP2One()
0610 F3 0B          921 		lda	#C_11
0612 FD 00          922 		sta	GetCount
+                   923 			
0614 F3 02          924 		lda	#C_TWO

⌨️ 快捷键说明

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