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

📄 caldisp.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
01B7 F1 00          307 		lda	GetCount
01B9 A7 FF          308 		cmpe	#MAX
01BB 06 01 C1       309 		brz	RightGetCountend
01BE 3F             310 		deca
01BF FD 00          311 		sta	GetCount
01C1                312 RightGetCountend:
01C1 24             313 		ret				
+                   314 ;------------------------------------------------------------------------
+                   315 ;------------------------------------------------------------------------		
01C2                316 Addplace::				
01C2                317 		PP2One()
01C6 F1 05          318 		lda	cmpDP
01C8 FC 21          319 		sta	DP
01CA F1 06          320 		lda	cmpPP
01CC FC 28          321 		sta	PP
01CE F2             322 		lda	i
01CF F9 00          323 		sta0	.DataBuf
01D1                324 		PP2One()
01D5 F1 05          325 		lda	cmpDP
01D7 1F             326 		inca
01D8 FD 05          327 		sta	cmpDP		
01DA F5 00          328 		lda0	.DataBuf
01DC FD 00          329 		sta	font			
01DE                330 Addplaceend:	
01DE 24             331 		ret	
+                   332 ;------------------------------------------------------------------------
+                   333 ;------------------------------------------------------------------------		
01DF                334 Decplace::				
01DF                335 		PP2One()		
01E3 F1 05          336 		lda	cmpDP
01E5 3F             337 		deca
01E6 FD 05          338 		sta	cmpDP
01E8 FC 21          339 		sta	DP		
01EA F1 06          340 		lda	cmpPP
01EC FC 28          341 		sta	PP
01EE F2             342 		lda	i
01EF F9 00          343 		sta0	.DataBuf		
01F1                344 		PP2One()						
01F5 F5 00          345 		lda0	.DataBuf	
01F7 FD 00          346 		sta	font
+                   347 		
01F9 24             348 		ret			
+                   349 ;------------------------------------------------------------------------         		
+                   350 ;------------------------------------------------------------------------        	
01FA                351 Font2disp:
01FA                352 		PP2One()
01FE F1 00          353 		lda	font		
0200 CB F0          354 		anda	#MASKLO
0202 06 02 08       355 		brz	Numberdisp						
0205 02 02 29       356 		br	Otherkeychk		
+                   357 ;------------------------------------------------------------------------
0208                358 Numberdisp:
0208 F1 00          359 		lda	font
020A A7 0A          360 		cmpe	#C_TEN
020C 04 02 16       361 		brc	SetA2F
020F 8B 30          362 		adda	#30h
0211 FD 00          363 		sta	font
0213 02 02 1E       364         	br	DispZERO2F
0216                365 SetA2F:
0216 F1 00          366 		lda	font
0218 AB 0A          367         	suba	#C_TEN
021A 8B 80          368         	adda	#HALFMAX
021C FD 00          369         	sta	font
021E                370 DispZERO2F:
021E F1 00          371         	lda     GetCount
0220 FD 00          372         	sta     dig_num
0222 20 00 00       373         	call    Display_5X7
0225 20 01 B3       374         	call	RightGetCount
0228 24             375         	ret
+                   376 ;------------------------------------------------------------------------          	
0229                377 Otherkeychk:				
0229 20 02 92       378 		call	ChangeKeychk
022C 20 02 F8       379 		call	Getstart
022F                380 		PP2One()
0233 F1 09          381 		lda	startbf
0235 A7 FF          382 		cmpe	#MAX
0237 06 02 7D       383 		brz	chkkeyend
023A 20 03 0C       384 		call	Chklength
023D F1 08          385 		lda	displength
023F A7 00          386 		cmpe	#C_ZERO
0241 06 02 7D       387 		brz	chkkeyend
0244 FD 07          388 		sta	chklengthbf
0246                389 dispwordloop:		
0246                390 		PP2One()
+                   391 		;lda	#^Dispwordtable
+                   392 		;sta	tab_ptr+2	
024A F3 2E          393 		lda	#>Dispwordtable
024C FD 01          394 		sta	tab_ptr+1		
024E F3 88          395 		lda	#<Dispwordtable		
0250 FD 00          396 		sta	tab_ptr
+                   397 
0252 F1 09          398 		lda	startbf
0254 89 00          399 		adda	tab_ptr
0256 FD 00          400 		sta	tab_ptr	
+                   401 				
0258 20 02 7E       402 		call	GetLdv
025B FD 00          403 		sta	font
+                   404 			
025D F1 00          405 		lda     GetCount
025F FD 00          406         	sta     dig_num        	
0261 20 00 00       407         	call    Display_5X7
0264                408         	PP2One()
0268 20 01 B3       409         	call	RightGetCount		
026B F1 09          410 		lda	startbf
026D 1F             411 		inca
026E FD 09          412 		sta	startbf	
0270 F1 07          413         	lda	chklengthbf
0272 A7 01          414         	cmpe	#C_ONE
0274 06 02 7D       415         	brz	chkkeyend
0277 3F             416         	deca
0278 FD 07          417         	sta	chklengthbf        		     	   	                	        	
027A 02 02 46       418 		br	dispwordloop     	
027D                419 chkkeyend:        			
027D 24             420 		ret
+                   421 ;------------------------------------------------------------------------
+                   422 ;------------------------------------------------------------------------		
027E                423 GetLdv:		
027E F1 01          424 		lda	tab_ptr+1
0280 9B 00          425 		addc	#C_ZERO
0282 FD 01          426 		sta	tab_ptr+1
+                   427 		;lda	tab_ptr+2
+                   428 		;addc	#C_ZERO
+                   429 		;sta	tab_ptr+2
+                   430 		
+                   431 		;lda	tab_ptr+2
0284 F3 00          432 		lda	#C_ZERO
0286 FC 54          433 		sta	TPP
0288 F1 01          434 		lda	tab_ptr+1
028A FC 02          435 		sta	TPH
028C F1 00          436 		lda	tab_ptr
028E FC 01          437 		sta	TPL
0290 F8             438 		ldv	
0291 24             439 		ret			
+                   440 ;------------------------------------------------------------------------
+                   441 ;------------------------------------------------------------------------	
0292                442 ChangeKeychk:
0292                443 		PP2One()				
0296 F1 14          444 		lda	StateFlag
0298 CB CF          445 		anda	#MP2MASK
029A A7 80          446 		cmpe	#COMPSTATE
029C 06 02 BC       447 		brz	2$
029F A7 08          448 		cmpe	#BASENSTATE
02A1 06 02 BC       449 		brz	2$
02A4 A7 40          450 		cmpe	#SDSTATE
02A6 06 02 AE       451 		brz	1$
02A9 A7 00          452 		cmpe	#C_ZERO
02AB 06 02 BC       453 		brz	2$		
+                   454 1$:
02AE F1 00          455 		lda	font
02B0 A7 B6          456 		cmpe	#MCLCHK
02B2 07 02 BC       457 		brnz	2$
02B5 F3 BF          458 		lda	#SCLDISP
02B7 FD 00          459 		sta	font
02B9 02 02 F7       460 		br	ChangeKeychkend				
+                   461 2$:
02BC F1 14          462 		lda	StateFlag
02BE CB CF          463 		anda	#MP2MASK
02C0 A7 06          464 		cmpe	#REGSTATE6
02C2 07 02 F7       465 		brnz	ChangeKeychkend
02C5 F1 00          466 		lda	font
02C7 A7 BD          467 		cmpe	#ESTIMATEXCHK
02C9 07 02 F7       468 		brnz	ChangeKeychkend
02CC F3 00          469 		lda	#>DaltaXcnt
02CE FC 28          470 		sta	PP
02D0 F1 00          471 		lda	DaltaXcnt
02D2 A7 00          472 		cmpe	#C_ZERO
02D4 06 02 E4       473 		brz	SetX1
02D7 A7 01          474 		cmpe	#C_ONE
02D9 06 02 E4       475 		brz	SetX1
02DC A7 02          476 		cmpe	#C_TWO
02DE 06 02 EF       477 		brz	SetX2
02E1 02 02 F7       478 		br	ChangeKeychkend	
+                   479 				
02E4                480 SetX1:
02E4                481 		PP2One()
02E8 F3 EA          482 		lda	#EX1DISP
02EA FD 00          483 		sta	font
02EC 02 02 F7       484 		br	ChangeKeychkend	
02EF                485 SetX2:
02EF                486 		PP2One()
02F3 F3 EB          487 		lda	#EX2DISP
02F5 FD 00          488 		sta	font
+                   489 		
02F7                490 ChangeKeychkend:
02F7 24             491 		ret			
+                   492 ;------------------------------------------------------------------------
+                   493 ;------------------------------------------------------------------------		
02F8                494 Getstart:	
02F8                495 		PP2One()	
+                   496 		;lda	#^Getrealtable
+                   497 		;sta	tab_ptr+2	
02FC F3 2D          498 		lda	#>Getrealtable
02FE FD 01          499 		sta	tab_ptr+1		
0300 F3 88          500 		lda	#<Getrealtable		
0302 89 00          501 		adda	font			
0304 FD 00          502 		sta	tab_ptr				
0306 20 02 7E       503 		call	GetLdv
0309 FD 09          504 		sta	startbf		
030B 24             505 		ret		
+                   506 ;------------------------------------------------------------------------
+                   507 ;------------------------------------------------------------------------		
030C                508 Chklength:
030C                509 		PP2One()
+                   510 		;lda	#^lengthtable
+                   511 		;sta	tab_ptr+2	
0310 F3 2F          512 		lda	#>lengthtable
0312 FD 01          513 		sta	tab_ptr+1		
0314 F3 3C          514 		lda	#<lengthtable
0316 89 00          515 		adda	font
0318 FD 00          516 		sta	tab_ptr	
031A 20 02 7E       517 		call	GetLdv
031D FD 08          518 		sta	displength		
031F 24             519 		ret	
+                   520 ;------------------------------------------------------------------------
+                   521 ;------------------------------------------------------------------------
0320                522 Allerrordisp:
0320                523 		PP2One()
0324 F1 00          524 		lda	.SFlag
0326 CB CF          525         	anda	#~(RCLCHK|STOCHK)
0328 FD 00          526         	sta	.SFlag
032A F5 00          527 		lda0	ErrorFlag 	
032C A7 01          528         	cmpe	#C_ONE
032E 06 03 43       529         	brz	Maerror
0331 A7 02          530         	cmpe	#C_TWO
0333 06 03 4A       531         	brz	Synerror
0336 A7 03          532         	cmpe	#C_THREE
0338 06 03 51       533         	brz	Stkerror
033B A7 04          534         	cmpe	#C_FOUR
033D 06 03 58       535         	brz	Argerror
0340 02 04 08       536         	br	Allerrordispend	
+                   537         	
0343                538 Maerror:
0343 F3 00          539 		lda	#MASTART
0345 FD 09          540 		sta	startbf
0347 02 03 5C       541 		br	Errordispgo
+                   542 		
034A                543 Synerror:
034A F3 09          544 		lda	#SYNSTART
034C FD 09          545 		sta	startbf
034E 02 03 5C       546 		br	Errordispgo
0351                547 Stkerror:      	
0351 F3 12          548         	lda	#STKSTART
0353 FD 09          549 		sta	startbf
0355 02 03 5C       550         	br	Errordispgo
0358                551 Argerror:        	
0358 F3 1B          552         	lda	#ARGSTART
035A FD 09          553 		sta	startbf        	
035C                554 Errordispgo:		
035C F5 00          555 		lda0	.KeyPos
035E A7 CC          556 		cmpe	#LEFTKEY
0360 06 03 6B       557 		brz	Errorlrchk
0363 A7 DD          558 		cmpe	#RIGHTKEY
0365 06 03 6B       559 		brz	Errorlrchk
0368 02 03 A7       560 		br	disperrorgo
+                   561 
036B                562 Errorlrchk:
036B F1 00          563 		lda	.SFlag
036D CB F7          564 		anda	#~EQUCHK
036F FD 00          565 		sta	.SFlag
0371 F1 00          566 		lda	.SetFlag
0373 CB DF          567 		anda	#~BLANKCHK
0375 FD 00          568 		sta	.SetFlag
0377                569 		PP2Zero()
037B F1 00          570 		lda	.SFDP
037D A7 00          571 		cmpe	#C_ZERO
037F 06 03 A1       572 		brz	3$
0382 A5 00          573 		cmpe	.DataDP
0384 06 03 A1       574 		brz	3$
0387                575 		PP2One()
038B F5 00          576 		lda0	ErrorFlag
038D A7 01          577      		cmpe	#C_ONE
038F 07 03 A1       578      		brnz	3$
0392 F5 00          579 		lda0	.SFDP
0394 FD 05          580 		sta	cmpDP
0396 F3 02          581 		lda	#C_TWO
0398 FD 06          582 		sta	cmpPP
039A 20 01 C2       583         	call	Addplace
039D F1 05          584 		lda	cmpDP
039F F9 00          585 		sta0	.SFDP		
03A1 20 04 DD       586 3$:		call	Rightchk
03A4 02 03 F6       587 		br	Allerrordispend1
+                   588 		
+                   589 			
+                   590 
03A7                591 disperrorgo:	
03A7 20 15 BB       592 		call	Clr_signm
03AA 20 15 CA       593 		call	Clr_expm
03AD 20 1C 70       594 		call	Clrfullmatrix				
03B0 20 1C 95       595 		call	Clrfullseg		
03B3                596 		PP2One()		
03B7 F3 08          597 		lda	#C_EIGHT
03B9 FD 00          598 		sta	GetCount
03BB F3 09          599 		lda	#C_NINE	
03BD FD 07          600 		sta	chklengthbf				
03BF                601 disperrorloop:		
03BF                602 		PP2One()
+                   603 		;lda	#^ErrorTable
+                   604 		;sta	tab_ptr+2	
03C3 F3 31          605 		lda	#>ErrorTable
03C5 FD 01          606 		sta	tab_ptr+1		
03C7 F3 3C          607 		lda	#<ErrorTable		
03C9 FD 00          608 		sta	tab_ptr
+                   609 
03CB F1 09          610 		lda	startbf
03CD 89 00          611 		adda	tab_ptr		
03CF FD 00          612 		sta	tab_ptr	
+                   613 		
03D1 20 02 7E       614 		call	GetLdv
03D4 FD 00          615 		sta	font

⌨️ 快捷键说明

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