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

📄 calcmain.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
+                  1246 ;		brz	.EndCheckRnd
08D5 F5 00         1247 		lda0	.KeyPos
08D7 F9 00         1248 		sta0	.DataBuf
08D9 F9 01         1249 		sta0	.DataBuf+1
08DB 20 00 00      1250 		call	.CheckPari
08DE 20 00 00      1251 		call	.CheckMem
08E1 F5 00         1252 		lda0	.AfterPari		 
08E3 A7 07         1253 		cmpe	#07h			;Pari 7 ex:2X^2 funct
08E5 06 09 06      1254 		brz	.DOAns
08E8 A7 08         1255 		cmpe	#08h			;Pari 8 ex:5X^Y 6funct
08EA 06 09 06      1256 		brz	.DOAns
08ED 20 00 00      1257 		call	.ClrP2Data
08F0 F3 01         1258 		lda	#01h
08F2 FC 28         1259 		sta	PP
08F4 F1 00         1260 		lda	.SFlag			;cancel = flag
08F6 CB F7         1261 		anda	#~08h
08F8 FD 00         1262 		sta	.SFlag	
08FA F1 00         1263 		lda	.SetFlag
08FC CB C0         1264 		anda	#~3fh
08FE FD 00         1265 		sta	.SetFlag					
0900 20 00 00      1266 		call	Rekeyindisp2		;only clear dotmatrix
0903 02 09 60      1267 		br	.EndCheckRnd
+                  1268 ;;;;;;;;;;;;Auto add Ans to function oode				
0906               1269 .DOAns:
0906 F3 00         1270 		lda	#>.SRFlag
0908 FC 28         1271 		sta	PP
090A F3 00         1272 		lda	#0h
090C FD 00         1273 		sta	.SRFlag
090E F3 00         1274 		lda	#>.SetFlag
0910 FC 28         1275 		sta	PP
0912 F1 00         1276 		lda	.SetFlag
0914 CB 80         1277 		anda	#80h
0916 07 09 39      1278 		brnz	 .PercntMul
0919               1279 .ANS12:		
0919 20 00 00      1280 		call	.ClrP2Data		;CLR Input data area Ram
+                  1281 ;;;;;;Auto add Ans data to Function code	
091C               1282 .StartAns::	
091C F3 00         1283 		lda	#>.SFlag
091E FC 28         1284 		sta	PP
0920 F1 00         1285 		lda	.SFlag
0922 CB 80         1286 		anda	#80h
0924 07 09 60      1287 		brnz	.EndCheckRnd				 
0927 F3 02         1288 		lda	#02h
0929 FC 28         1289 		sta	PP
092B F3 00         1290 		lda	#0h
092D FC 21         1291 		sta	DP								 		
092F F3 A2         1292 		lda	#.ANS
0931 FE            1293 		sta	i	
0932 F3 01         1294 		lda	#01h
0934 F9 D4         1295 		sta0	.DataDP				;Set auto add Ans key
0936 02 09 60      1296 		br	.EndCheckRnd
0939               1297 .PercntMul:
0939 F5 00         1298 		lda0	.KeyPos
093B A7 A4         1299 		cmpe	#0a4h
093D 06 09 48      1300 		brz	.DOXAddZ
0940 A7 A5         1301 		cmpe	#0a5h
0942 06 09 54      1302 		brz	.DOXDecZ
0945 02 09 19      1303 		br	.ANS12	
0948               1304 .DOXAddZ:
0948 20 00 00      1305 		call	.B_trans_X
094B 20 00 00      1306 		call	.Z_trans_Y
094E 20 00 00      1307 		call    Addition
0951 02 09 60      1308 		br	.EndCheckRnd
0954               1309 .DOXDecZ:
0954 20 00 00      1310 		call	.B_trans_X
0957 20 00 00      1311 		call	.Z_trans_Y
095A 20 00 00      1312 		call    Subtration
095D 02 09 60      1313 		br	.EndCheckRnd
+                  1314 								
+                  1315 ;;;;;;;;;;;;disable display mode and rnd mode			
0960               1316 .EndCheckRnd:	
0960 F3 01         1317 		lda	#01h
0962 FC 28         1318 		sta	PP
0964 F1 00         1319 		lda	.SetFlag		
0966 CB DE         1320 		anda	#~21h
0968 FD 00         1321 		sta	.SetFlag				
096A 24            1322 		ret	
096B               1323 .RndEnd:
096B F3 00         1324 		lda	#0h
096D F9 00         1325 		sta0	.KeyPos
096F 24            1326 		ret		
+                  1327 ;===========================================
0970               1328 .AutoaddANS::
+                  1329 		
0970 F5 D4         1330 		lda0	.DataDP
0972 A7 01         1331 		cmpe	#01h
0974 07 0A 01      1332 		brnz	.EndAutoaddANS
0977 F3 02         1333 		lda	#02h
0979 FC 28         1334 		sta	PP
097B F3 00         1335 		lda	#0 
097D FC 21         1336 		sta	DP
097F F2            1337 		lda	i
0980 F9 00         1338 		sta0	.DataBuf		
0982 F9 01         1339 		sta0	.DataBuf+1		 
0984 20 00 00      1340 		call	.CheckPari
0987 20 00 00      1341 		call	.CheckMem
098A F5 00         1342 		lda0	.AfterPari		
098C A7 06         1343 		cmpe	#06h
098E 06 09 EB      1344 		brz	.DOAns5
0991 02 0A 01      1345 		br	.EndAutoaddANS	
0994               1346 .BasenModeAns::
0994 F3 00         1347 		lda	#>.SFlag
0996 FC 28         1348 		sta	PP
0998 F1 00         1349 		lda	.SFlag
099A CB 08         1350 		anda	#08h
099C 06 0A 01      1351 		brz	.EndAutoaddANS	
099F F5 00         1352 		lda0	.KeyPos
09A1 F9 00         1353 		sta0	.DataBuf
09A3 20 00 00      1354 		call	.Paricmp
09A6 F5 00         1355 		lda0	.AfterPari
09A8 A7 07         1356 		cmpe	#07h
09AA 06 09 BA      1357 		brz	.BaseAns
09AD A7 09         1358 		cmpe	#09h
09AF 06 09 BA      1359 		brz	.BaseAns
09B2 A7 0F         1360 		cmpe	#0fh
09B4 06 09 CF      1361 		brz	.Clrp2Inp				
09B7 02 0A 01      1362 		br	.EndAutoaddANS	
09BA               1363 .BaseAns:
09BA 20 00 00      1364 		call	.ClrP2Edit
09BD F3 02         1365 		lda	#02h
09BF FC 28         1366 		sta	PP
09C1 F3 00         1367 		lda	#0h
09C3 FC 21         1368 		sta	DP		
09C5 F3 A2         1369 		lda	#.ANS
09C7 FE            1370 		sta	i	
09C8 F3 01         1371 		lda	#01h
09CA F9 D4         1372 		sta0	.DataDP	
09CC 02 09 D6      1373 		br	.ClrAnsFlag	
09CF               1374 .Clrp2Inp:
09CF 20 00 00      1375 		call	.ClrP2Edit		
09D2 F3 00         1376 		lda	#0h
09D4 F9 D4         1377 		sta0	.DataDP
+                  1378 		
+                  1379 		
09D6               1380 .ClrAnsFlag:
09D6 F3 00         1381 		lda	#>.SFlag
09D8 FC 28         1382 		sta	PP
09DA F1 00         1383 		lda	.SFlag
09DC CB F7         1384 		anda	#~08h 
09DE FD 00         1385 		sta	.SFlag
09E0 F3 00         1386 		lda	#>.SRFlag
09E2 FC 28         1387 		sta	PP
09E4 F3 00         1388 		lda	#0h
09E6 FD 00         1389 		sta	.SRFlag
+                  1390 		
09E8 02 0A 01      1391 		br	.EndAutoaddANS						
+                  1392 ;;;;;;;;;;;;Auto add Ans to function mode				
09EB               1393 .DOAns5:	
09EB F5 00         1394 		lda0	.KeyPos
09ED A7 A8         1395 		cmpe	#0a8h
09EF 06 0A 01      1396 		brz	.EndAutoaddANS
09F2 F3 02         1397 		lda	#02h
09F4 FC 28         1398 		sta	PP	 
09F6 F5 00         1399 		lda0	.DataBuf
09F8 FE            1400 		sta	i
09F9 18            1401 		incdp			
09FA F3 A2         1402 		lda	#.ANS
09FC FE            1403 		sta	i			
09FD F3 02         1404 		lda	#02h
09FF F9 D4         1405 		sta0	.DataDP				;Set auto add Ans key
+                  1406 		
+                  1407 ;;;;;;;;;;;;disable display mode and rnd mode			
0A01               1408 .EndAutoaddANS:	
+                  1409 				
+                  1410 
0A01 24            1411 		ret
+                  1412 	 	 		
+                  1413 				 
+                  1414 				
+                  1415 ;-------------------------------------------
0A02               1416 .BaseN:
+                  1417 		
0A02 F3 00         1418 		lda	#>.SetFlag
0A04 FC 28         1419 		sta	PP
0A06 F1 00         1420 		lda	.SetFlag
0A08 CB 20         1421 		anda	#20h
0A0A 06 0A 6C      1422 		brz	.EditMode
0A0D 20 00 00      1423 		call	.Buf_trans_X			
0A10 F5 00         1424 		lda0	.KeyPos
0A12 A7 7C         1425 		cmpe	#.DecM		
0A14 06 0A 29      1426 		brz	.TransDec
0A17 A7 7D         1427 		cmpe	#.HexM		
0A19 06 0A 35      1428 		brz	.TransHex
0A1C A7 7E         1429 		cmpe	#.BinM		
0A1E 06 0A 41      1430 		brz	.TransBin
0A21 A7 7F         1431 		cmpe	#.OctM		
0A23 06 0A 4D      1432 		brz	.TransOct
0A26 02 0A 6C      1433 		br	.EditMode
0A29               1434 .TransDec:
0A29 20 00 00      1435 		call	.Buf_trans_Z
0A2C 20 00 00      1436 		call	.Z_trans_X
0A2F 20 00 00      1437 		call	CheckDecLimit		
0A32 02 0A 59      1438 		br	.DispBaseN
0A35               1439 .TransHex:
0A35 20 00 00      1440 		call	Base_Dec2Hex
0A38 20 00 00      1441 		call	.Z_trans_X	
0A3B 20 00 00      1442 		call	CheckHexLimit	
0A3E 02 0A 59      1443 		br	.DispBaseN	
0A41               1444 .TransBin:
0A41 20 00 00      1445 		call	Base_Dec2Bin
0A44 20 00 00      1446 		call	.Z_trans_X
0A47 20 00 00      1447 		call	CheckBinLimit	
0A4A 02 0A 59      1448 		br	.DispBaseN		
0A4D               1449 .TransOct:
0A4D 20 00 00      1450 		call	Base_Dec2Oct
0A50 20 00 00      1451 		call	.Z_trans_X
0A53 20 00 00      1452 		call	CheckOctLimit
0A56 02 0A 59      1453 		br	.DispBaseN
0A59               1454 .DispBaseN:	
0A59 F5 00         1455 		lda0	ErrorFlag
0A5B A7 00         1456 		cmpe	#0h
0A5D 07 04 00      1457 		brnz	.DispDotMatrix		
0A60 20 00 00      1458 		call	ChkDispAns				 
0A63 20 00 00      1459 		call	ShowAnschk
0A66 20 00 00      1460 		call	.I_trans_Z							
0A69 02 04 03      1461 		br	.EmitKeyD		
0A6C               1462 .EditMode:
0A6C F5 00         1463 		lda0	.KeyPos
0A6E A7 6A         1464 		cmpe	#6ah
0A70 06 08 36      1465 		brz	.Logic 
0A73 F3 00         1466 		lda	#>BasenFlag
0A75 FC 28         1467 		sta	PP
0A77 F1 00         1468 		lda	BasenFlag
0A79 CB 0F         1469 		anda	#0fh
0A7B 06 01 36      1470 		brz	.NotBaseN
0A7E 20 00 00      1471 		call	LogicKeyChk
0A81 F5 00         1472 		lda0	.KeyPos
0A83 A7 00         1473 		cmpe	#0h
0A85 06 04 03      1474 		brz	.EmitKeyD
0A88 20 09 94      1475 		call	.BasenModeAns
0A8B 02 03 DF      1476 		br	.Normalinput						
+                  1477 ;===========================================
0A8E               1478 .InterruptT1:   
+                  1479 		
0A8E F9 D0         1480 		sta0	.TempA
0A90 F0 28         1481 		lda	PP
0A92 F9 D1         1482 		sta0 	.PPTemp							
0A94 F0 22         1483 		lda	OP1		
0A96 F9 D2         1484 		sta0 	.OP1Temp														
0A98 F5 00         1485 		lda0	.RandCnt
0A9A 1F            1486 		inca
0A9B F9 00         1487 		sta0	.RandCnt
0A9D F3 01         1488 		lda	#01h
0A9F FC 28         1489 		sta	PP	
0AA1 F1 00         1490 		lda	T1Flag
0AA3 DB 80         1491 		ora	#80h
0AA5 FD 00         1492 		sta	T1Flag	
+                  1493 		
0AA7 F5 00         1494 		lda0	.RandCnt
0AA9 CB 0F         1495 		anda	#0fh
0AAB A7 0F         1496 		cmpe	#0fh
0AAD 07 0A B5      1497 		brnz	.CKkeyCnt
0AB0 F5 D3         1498 		lda0	.Sec
0AB2 1F            1499 		inca	
0AB3 F9 D3         1500 		sta0	.Sec
+                  1501 		 
0AB5               1502 .CKkeyCnt:				
+                  1503 ;		lda0	.KeyCnt
+                  1504 ;		ora	#10h
+                  1505 ;		sta0	.KeyCnt							 
0AB5 F5 D2         1506 		lda0	.OP1Temp
0AB7 FC 22         1507 		sta	OP1			
0AB9 F5 D1         1508 		lda0 	.PPTemp
0ABB FC 28         1509 		sta	PP		
0ABD F5 D0         1510 		lda0	.TempA		
0ABF 25            1511 		reti
+                  1512 ;===========================================
0AC0               1513 .InterruptT2:   
+                  1514 		
0AC0 F9 D0         1515 		sta0	.TempA
0AC2 F0 28         1516 		lda	PP
0AC4 F9 D1         1517 		sta0 	.PPTemp								
0AC6 F0 22         1518 		lda	OP1		
0AC8 F9 D2         1519 		sta0 	.OP1Temp
0ACA 20 00 00      1520 		call	.KeyScan 
0ACD F5 E3         1521 		lda0	.TurboCnt
0ACF 1F            1522 		inca
0AD0 F9 E3         1523 		sta0	.TurboCnt				 		 						
0AD2 F5 D2         1524 		lda0	.OP1Temp
0AD4 FC 22         1525 		sta	OP1			
0AD6 F5 D1         1526 		lda0 	.PPTemp
0AD8 FC 28         1527 		sta	PP		
0ADA F5 D0         1528 		lda0	.TempA		
0ADC 25            1529 		reti
+                  1530 
+                  1531 				
+                  1532 ;-------------------------------------------		
+                  1533 ;		.Initial:
+                  1534 ;-------------------------------------------
0ADD               1535 .Initial::
0ADD 28            1536 		CLRINT
0ADE F3 00         1537 		lda	#0h
0AE0 FC 38         1538 		sta	LCDC								
0AE2 F3 FF         1539 		lda	#0ffh
0AE4 FC 32         1540 		sta	PRTD
0AE6 FC 58         1541 		sta	PRT17
0AE8 F3 00         1542 		lda 	#0h
0AEA FC 34         1543 		sta	PWMC
0AEC FC 48         1544 		sta	VOC	
+                  1545 ;-------------------------------------------
+                  1546 ;		Clear Lcd
+                  1547 ;-------------------------------------------
0AEE               1548 .ClearLCD::	
0AEE F3 00         1549 		lda	#0h
0AF0 FC 28         1550 		sta	PP			
0AF2 F3 00         1551 		lda	#0h
0AF4 FC 21         1552 		sta	DP
0AF6               1553 .Clrlcd:		
0AF6 F3 00         1554 		lda	#0h
0AF8 FE            1555 		sta	i
0AF9 18            1556 	

⌨️ 快捷键说明

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