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

📄 calctools.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
03F9 F9 06          595 	   	sta0	OperandY+6
03FB F3 00          596 	   	lda	#0h
03FD F9 00          597 	   	sta0	PointY
03FF F9 00          598 	   	sta0	SignY	   		   	
0401 20 03 59       599 	   	call	 .Pow_x_invy
0404 F5 75          600 	   	lda0	.DataBuf
0406 F9 00          601 	   	sta0	SignZ
0408 24             602 	   	ret            
+                   603 ;-------------------------------------------                
0409                604 check_Z_carry::
0409 F5 00          605 		lda0	SignZ
040B F9 75          606 		sta0 	.DataBuf
040D F3 00          607 		lda	#0h
040F F9 00          608 		sta0	SignZ
0411 F5 00          609                 lda0    PointZ                
0413 A7 03          610                 cmpe    #3
0415 04 04 20       611                 brc     1$
0418 F5 01          612                 lda0	OperandZ+1
041A CB 0F          613                 anda	#0fh
041C 07 04 20       614                 brnz	1$               
041F 24             615                 ret
+                   616 1$:
0420 20 09 F0       617                 call    .Z_trans_X
0423 F1 05          618                 lda     OperandX+Length-2
0425 CB F0          619                 anda	#0f0h
0427 A7 50          620                 cmpe    #50h 
0429 04 04 2D       621                 brc     2$              
042C 24             622                 ret
+                   623 2$:
042D F3 00          624                 lda     #0
042F FD 06          625                 sta     OperandX+Length-1
0431 FD 05          626                 sta     OperandX+Length-2                
0433 20 05 DF       627                 call    .ClrY
0436 F3 01          628                 lda     #01h                ;#05h
0438 FD 04          629                 sta     OperandY+Length-3                
043A F1 00          630                 lda     PointX
043C FD 00          631                 sta     PointY
043E 20 00 00       632                 call    Addition                
0441 F5 75          633                 lda0	.DataBuf
0443 F9 00          634                 sta0	SignZ
0445 24             635                 ret
+                   636 ;-----------------------(       EXP  X*10^Y )------------------------
0446                637 .Expp::			
0446 20 08 24       638 			call	.X_trans_Y
0449 20 06 07       639 			call	.Put_1_to_OperandX			 
044C                640 .Expp2::			
+                   641                         
044C F3 00          642                         lda	#>.M_bcdbuf
044E FC 28          643                         sta	PP
0450 F5 06          644                         lda0     OperandY+Length-1
0452 FD 00          645                         sta     .M_bcdbuf
0454 20 00 00       646                         call    .bcdtohex
0457 F1 00          647                         lda     .M_bcdbuf
0459 F9 D6          648                         sta0     .M_exp_Y
045B F3 00          649                         lda	#0h
045D FC 28          650                         sta	PP
045F F5 05          651 			lda0	OperandY+5
0461 A7 00          652 			cmpe	#0h
0463 07 04 B1       653 			brnz	.ErrFlag
0466 F5 00          654 			lda0	PointY
0468 A7 00          655 			cmpe	#0h
046A 07 04 B1       656 			brnz	.ErrFlag						
046D F5 00          657                         lda0    SignY
046F A7 00          658                         cmpe    #0
0471 07 04 7D       659                         brnz    .18$
0474 F5 00          660                         lda0     PointX
0476 A9 D6          661                         suba    .M_exp_Y
0478 FD D6          662                         sta     .M_exp_Y
047A 02 04 83       663                         br      .28$
047D                664 .18$:
047D F1 00          665                         lda     PointX
047F 89 D6          666                         adda    .M_exp_Y
0481 FD D6          667                         sta     .M_exp_Y
0483                668 .28$:
0483 20 08 38       669                         call    .X_trans_Z
0486 F1 D6          670                         lda     .M_exp_Y
0488 FD 00          671                         sta     PointZ
048A 20 00 00       672                         call    CheckOutData
048D F3 00          673                         lda     #OperandZ
048F FD 00          674                         sta     Addr1
0491 20 00 00       675                         call    CheckData
0494 F1 00          676                         lda     DpCount
0496 3F             677                         deca
0497 FD 00          678                         sta     Temp1
0499 05 04 B5       679                         brnc    .38$
049C F1 00          680                         lda     PointZ
049E A9 00          681                         suba    Temp1
04A0 A7 63          682                         cmpe    #99
04A2 05 04 B5       683                         brnc    .38$
04A5 06 04 B5       684                         brz     .38$
04A8 F1 00          685                         lda     PointZ
04AA A9 00          686                         suba    Temp1
04AC A7 9D          687                         cmpe    #(256-99)
04AE 04 04 B5       688                         brc     .38$
04B1                689 .ErrFlag:                        
04B1 F3 02          690                         lda     #02
04B3 FD 00          691                         sta     ErrorFlag
04B5                692 .38$:
04B5 24             693                         ret  
+                   694 ;---------------------------------------------------------
+                   695 ;			ENG
+                   696 ;---------------------------------------------------------
04B6                697 .ENG::			
04B6 20 09 F0       698 			call	.Z_trans_X
04B9 F3 00          699 			lda	#0h
04BB FC 28          700 			sta	PP
04BD F9 00          701 			sta0	SignY
04BF F9 00          702 			sta0    PointY
04C1 20 05 DF       703 			call	.ClrY
04C4 F3 10          704 			lda	#10h
04C6 F9 05          705 			sta0	OperandY+5
04C8 20 00 00       706 			call	Division			
04CB 24             707 			ret
+                   708 ;---------------------------------------------------------
04CC                709 .OPZ2RND::
04CC F3 00          710 			lda	#0h
04CE FC 28          711 			sta	PP	
04D0 F5 00          712 			lda0	PointZ
04D2 F9 6A          713 			sta0	.Buf2		
04D4 20 07 3F       714 			call	.GetDpCount
04D7 F5 00          715 			lda0	DpCount
04D9 F9 69          716 			sta0	.Buf1
04DB F3 01          717 			lda	#01h
04DD FC 28          718 			sta	PP				
04DF F1 00          719 			lda	pzdispbf
04E1 F9 00          720 			sta0	OperandZ
04E3 F1 01          721 			lda	pzdispbf+1
04E5 F9 01          722 			sta0	OperandZ+1	
04E7 F1 02          723 			lda	pzdispbf+2
04E9 F9 02          724 			sta0	OperandZ+2
04EB F1 03          725 			lda	pzdispbf+3
04ED F9 03          726 			sta0	OperandZ+3			
04EF F1 04          727 			lda	pzdispbf+4
04F1 F9 04          728 			sta0	OperandZ+4
04F3 F1 05          729 			lda	pzdispbf+5
04F5 F9 05          730 			sta0	OperandZ+5			
04F7 F1 06          731 			lda	pzdispbf+6
04F9 F9 06          732 			sta0	OperandZ+6
04FB F3 00          733 			lda	#0h
04FD FC 28          734 			sta	PP			
04FF 20 07 3F       735 			call	.GetDpCount
0502 F5 69          736 			lda0	.Buf1
0504 A9 00          737 			suba	DpCount 		
0506 F9 69          738 			sta0	.Buf1
0508 F5 6A          739 			lda0	.Buf2
050A A9 69          740 			suba	.Buf1
050C F9 00          741 			sta0	PointZ
+                   742 
+                   743 
+                   744 
+                   745 
+                   746 
+                   747 
+                   748 
+                   749 
+                   750 
+                   751 
0000                752 .if 0			 			 		
+                   753 			lda	#0h
+                   754 			sta	PP			
+                   755 			call	.GetDpCount
+                   756 			lda0	DpCount
+                   757 			sta0	.Buf2						
+                   758 			lda	#01h
+                   759 			sta	PP
+                   760 			lda	DispFlag
+                   761 			anda	#0fh
+                   762 			sta0	.Buf1
+                   763 			lda	DispFlag
+                   764 			anda	#0f0h
+                   765 			cmpe	#40h		;Fix
+                   766 			brnz	1$
+                   767 			call	.ClrX
+                   768 			lda	#01h
+                   769 			sta0	OperandZ+6
+                   770 			call	.Z_trans_Y
+                   771 			call	Subtration
+                   772 			lda0	SignZ
+                   773 			cmpe	#01h
+                   774 			brz	1$			
+                   775 			lda0	.Buf1
+                   776 			inca
+                   777 			sta0	.Buf1			
+                   778 1$:			
+                   779 			lda	#0h
+                   780 			sta	PP
+                   781 			call	.I_trans_Z
+                   782 			call	.ShiftZdata
+                   783 							
+                   784 			ret
+                   785 .ShiftZdata:
+                   786 			lda0	.Buf2
+                   787 			cmpe	.Buf1
+                   788 			brz	.Endshiftz
+                   789 			call	ShiftToR
+                   790 			lda0	PointZ
+                   791 			deca
+                   792 			sta0	PointZ
+                   793 			lda0	.Buf2
+                   794 			deca
+                   795 			sta0	.Buf2
+                   796 			br	.ShiftZdata
+                   797 .Endshiftz:
+                   798 			lda0	OperandZ+7
+                   799 			anda	#0f0h
+                   800 			cmpe	#50h
+                   801 			brnc	2$
+                   802 			lda	#0h
+                   803 			sta0	OperandZ+7
+                   804 			call	.ClrX
+                   805 			lda	#01h
+                   806 			sta0	OperandX+6
+                   807 			lda0	PointZ
+                   808 			sta0	PointX
+                   809 			lda0	SignZ
+                   810 			sta0	SignX
+                   811 			call	.Z_trans_Y
+                   812 			call	Addition
+                   813 2$:
+                   814 .endif
050E 24             815 			ret						 
+                   816 ;-------------------------------------------			
050F                817 .CopyData::			
+                   818 			 
050F F3 0A          819 			lda	#0ah		;09 2002 3 5
0511 F9 79          820 			sta0	.Counter
0513                821 .DataCopy:					
0513 F5 79          822                         lda0	.Counter
0515 A7 00          823                         cmpe	#0h
0517 06 05 42       824                         brz	.EndCopy
051A F5 6F          825                         lda0 	.PXPP
051C FC 28          826                         sta	PP
051E F5 77          827                         lda0 	.PXDP
0520 FC 21          828                         sta	DP
0522 F2             829                         lda	i
0523 F9 7A          830                         sta0	.Data
0525 F5 77          831                         lda0	.PXDP
0527 1F             832                         inca
0528 F9 77          833                         sta0	.PXDP
052A F5 65          834                         lda0	.PYPP
052C FC 28          835                         sta	PP
052E F5 78          836                         lda0	.PYDP
0530 FC 21          837                         sta	DP
0532 F5 7A          838                         lda0	.Data
0534 FE             839                         sta	i
0535 F5 78          840                         lda0	.PYDP
0537 1F             841                         inca
0538 F9 78          842                         sta0	.PYDP  
053A F5 79          843                         lda0	.Counter                  
053C 3F             844                         deca
053D F9 79          845                         sta0	.Counter
053F 02 05 13       846                         br	.DataCopy
0542                847 .EndCopy:
+                   848 			
0542 F3 00          849 			lda	#0h			
0544 FC 28          850 			sta	PP
0546 24             851 			ret    
+                   852 
+                   853 ;-------------------------------------------
0547                854 .ClearData::
0547 F5 6F          855 			lda0 	.PXPP
0549 FC 28          856 			sta	PP
054B F5 77          857 			lda0	.PXDP
054D FC 21          858 			sta	DP
054F F3 0A          859 			lda	#0ah		;ah
0551 F9 79          860 			sta0	.Counter
0553                861 .DataClr:			
0553 F5 79          862 			lda0	.Counter
0555 A7 00          863 			cmpe	#0h
0557 06 05 66       864 			brz	.EndClr			
055A F3 00          865 			lda	#0h
055C FE             866 			sta	i
055D 18             867 			incdp
055E F5 79          868 			lda0	.Counter
0560 3F             869 			deca
0561 F9 79          870 			sta0	.Counter
0563 02 05 53       871 			br	.DataClr
0566                872 .EndClr:										
0566 24             873 			ret
+                   874 ;-------------------------------------------
0567                875 .Input2Formula::
0567 F3 02          876 			lda	#02h
0569 F9 6F          877 			sta0	.PXPP
056B F3 01          878 			lda	#01h
056D F9 65          879 			sta0	.PYPP 			
056F F3 00          880 			lda	#0h
0571 F9 77          881 			sta0	.PXDP
0573 F3 B0          882 			lda	#0b0h
0575 F9 78          883 			sta0	.PYDP 
0577 20 05 8F       884 			call	.Copyformula
057A 24             885 			ret
+                   886 ;-------------------------------------------
057B                887 .Formula2Input::
057B F3 01          888 			lda	#01h
057D F9 6F          889 			sta0	.PXPP
057F F3 02          890 			lda	#02h
0581 F9 65          891 			sta0	.PYPP 			
0583 F3 B0          892 			lda	#0b0h
0585 F9 77          893 			sta0	.PXDP

⌨️ 快捷键说明

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