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

📄 calcmain.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
08E8 FC 28         1242 		sta	PP
08EA F3 00         1243 		lda	#0h
08EC FC 21         1244 		sta	DP								 		
08EE F3 A2         1245 		lda	#.ANS
08F0 FE            1246 		sta	i	
08F1 F3 01         1247 		lda	#01h
08F3 F9 D4         1248 		sta0	.DataDP				;Set auto add Ans key
08F5 02 09 1F      1249 		br	.EndCheckRnd
08F8               1250 .PercntMul:
08F8 F5 00         1251 		lda0	.KeyPos
08FA A7 A4         1252 		cmpe	#0a4h
08FC 06 09 07      1253 		brz	.DOXAddZ
08FF A7 A5         1254 		cmpe	#0a5h
0901 06 09 13      1255 		brz	.DOXDecZ
0904 02 08 D8      1256 		br	.ANS12	
0907               1257 .DOXAddZ:
0907 20 00 00      1258 		call	.B_trans_X
090A 20 00 00      1259 		call	.Z_trans_Y
090D 20 00 00      1260 		call    Addition
0910 02 09 1F      1261 		br	.EndCheckRnd
0913               1262 .DOXDecZ:
0913 20 00 00      1263 		call	.B_trans_X
0916 20 00 00      1264 		call	.Z_trans_Y
0919 20 00 00      1265 		call    Subtration
091C 02 09 1F      1266 		br	.EndCheckRnd
+                  1267 								
+                  1268 ;;;;;;;;;;;;disable display mode and rnd mode			
091F               1269 .EndCheckRnd:	
091F F3 01         1270 		lda	#01h
0921 FC 28         1271 		sta	PP
0923 F1 00         1272 		lda	.SetFlag		
0925 CB DE         1273 		anda	#~21h
0927 FD 00         1274 		sta	.SetFlag				
0929 24            1275 		ret	
092A               1276 .RndEnd:
092A F3 00         1277 		lda	#0h
092C F9 00         1278 		sta0	.KeyPos
092E 24            1279 		ret		
+                  1280 ;===========================================
092F               1281 .AutoaddANS::
+                  1282 		
092F F5 D4         1283 		lda0	.DataDP
0931 A7 01         1284 		cmpe	#01h
0933 07 09 C0      1285 		brnz	.EndAutoaddANS
0936 F3 02         1286 		lda	#02h
0938 FC 28         1287 		sta	PP
093A F3 00         1288 		lda	#0 
093C FC 21         1289 		sta	DP
093E F2            1290 		lda	i
093F F9 00         1291 		sta0	.DataBuf		
0941 F9 01         1292 		sta0	.DataBuf+1		 
0943 20 00 00      1293 		call	.CheckPari
0946 20 00 00      1294 		call	.CheckMem
0949 F5 00         1295 		lda0	.AfterPari		
094B A7 06         1296 		cmpe	#06h
094D 06 09 AA      1297 		brz	.DOAns5
0950 02 09 C0      1298 		br	.EndAutoaddANS	
0953               1299 .BasenModeAns::
0953 F3 00         1300 		lda	#>.SFlag
0955 FC 28         1301 		sta	PP
0957 F1 00         1302 		lda	.SFlag
0959 CB 08         1303 		anda	#08h
095B 06 09 C0      1304 		brz	.EndAutoaddANS	
095E F5 00         1305 		lda0	.KeyPos
0960 F9 00         1306 		sta0	.DataBuf
0962 20 00 00      1307 		call	.Paricmp
0965 F5 00         1308 		lda0	.AfterPari
0967 A7 07         1309 		cmpe	#07h
0969 06 09 79      1310 		brz	.BaseAns
096C A7 09         1311 		cmpe	#09h
096E 06 09 79      1312 		brz	.BaseAns
0971 A7 0F         1313 		cmpe	#0fh
0973 06 09 8E      1314 		brz	.Clrp2Inp				
0976 02 09 C0      1315 		br	.EndAutoaddANS	
0979               1316 .BaseAns:
0979 20 00 00      1317 		call	.ClrP2Edit
097C F3 02         1318 		lda	#02h
097E FC 28         1319 		sta	PP
0980 F3 00         1320 		lda	#0h
0982 FC 21         1321 		sta	DP		
0984 F3 A2         1322 		lda	#.ANS
0986 FE            1323 		sta	i	
0987 F3 01         1324 		lda	#01h
0989 F9 D4         1325 		sta0	.DataDP	
098B 02 09 95      1326 		br	.ClrAnsFlag	
098E               1327 .Clrp2Inp:
098E 20 00 00      1328 		call	.ClrP2Edit		
0991 F3 00         1329 		lda	#0h
0993 F9 D4         1330 		sta0	.DataDP
+                  1331 		
+                  1332 		
0995               1333 .ClrAnsFlag:
0995 F3 00         1334 		lda	#>.SFlag
0997 FC 28         1335 		sta	PP
0999 F1 00         1336 		lda	.SFlag
099B CB F7         1337 		anda	#~08h 
099D FD 00         1338 		sta	.SFlag
099F F3 00         1339 		lda	#>.SRFlag
09A1 FC 28         1340 		sta	PP
09A3 F3 00         1341 		lda	#0h
09A5 FD 00         1342 		sta	.SRFlag
+                  1343 		
09A7 02 09 C0      1344 		br	.EndAutoaddANS						
+                  1345 ;;;;;;;;;;;;Auto add Ans to function mode				
09AA               1346 .DOAns5:	
09AA F5 00         1347 		lda0	.KeyPos
09AC A7 A8         1348 		cmpe	#0a8h
09AE 06 09 C0      1349 		brz	.EndAutoaddANS
09B1 F3 02         1350 		lda	#02h
09B3 FC 28         1351 		sta	PP	 
09B5 F5 00         1352 		lda0	.DataBuf
09B7 FE            1353 		sta	i
09B8 18            1354 		incdp			
09B9 F3 A2         1355 		lda	#.ANS
09BB FE            1356 		sta	i			
09BC F3 02         1357 		lda	#02h
09BE F9 D4         1358 		sta0	.DataDP				;Set auto add Ans key
+                  1359 		
+                  1360 ;;;;;;;;;;;;disable display mode and rnd mode			
09C0               1361 .EndAutoaddANS:	
+                  1362 				
+                  1363 
09C0 24            1364 		ret
+                  1365 	 	 		
+                  1366 				 
+                  1367 				
+                  1368 ;-------------------------------------------
09C1               1369 .BaseN:
+                  1370 		
09C1 F3 00         1371 		lda	#>.SetFlag
09C3 FC 28         1372 		sta	PP
09C5 F1 00         1373 		lda	.SetFlag
09C7 CB 20         1374 		anda	#20h
09C9 06 0A 2B      1375 		brz	.EditMode
09CC 20 00 00      1376 		call	.Buf_trans_X			
09CF F5 00         1377 		lda0	.KeyPos
09D1 A7 7C         1378 		cmpe	#.DecM		
09D3 06 09 E8      1379 		brz	.TransDec
09D6 A7 7D         1380 		cmpe	#.HexM		
09D8 06 09 F4      1381 		brz	.TransHex
09DB A7 7E         1382 		cmpe	#.BinM		
09DD 06 0A 00      1383 		brz	.TransBin
09E0 A7 7F         1384 		cmpe	#.OctM		
09E2 06 0A 0C      1385 		brz	.TransOct
09E5 02 0A 2B      1386 		br	.EditMode
09E8               1387 .TransDec:
09E8 20 00 00      1388 		call	.Buf_trans_Z
09EB 20 00 00      1389 		call	.Z_trans_X
09EE 20 00 00      1390 		call	CheckDecLimit		
09F1 02 0A 18      1391 		br	.DispBaseN
09F4               1392 .TransHex:
09F4 20 00 00      1393 		call	Base_Dec2Hex
09F7 20 00 00      1394 		call	.Z_trans_X	
09FA 20 00 00      1395 		call	CheckHexLimit	
09FD 02 0A 18      1396 		br	.DispBaseN	
0A00               1397 .TransBin:
0A00 20 00 00      1398 		call	Base_Dec2Bin
0A03 20 00 00      1399 		call	.Z_trans_X
0A06 20 00 00      1400 		call	CheckBinLimit	
0A09 02 0A 18      1401 		br	.DispBaseN		
0A0C               1402 .TransOct:
0A0C 20 00 00      1403 		call	Base_Dec2Oct
0A0F 20 00 00      1404 		call	.Z_trans_X
0A12 20 00 00      1405 		call	CheckOctLimit
0A15 02 0A 18      1406 		br	.DispBaseN
0A18               1407 .DispBaseN:	
0A18 F5 00         1408 		lda0	ErrorFlag
0A1A A7 00         1409 		cmpe	#0h
0A1C 07 03 BF      1410 		brnz	.DispDotMatrix		
0A1F 20 00 00      1411 		call	ChkDispAns				 
0A22 20 00 00      1412 		call	ShowAnschk
0A25 20 00 00      1413 		call	.I_trans_Z							
0A28 02 03 C2      1414 		br	.EmitKeyD		
0A2B               1415 .EditMode:
0A2B F5 00         1416 		lda0	.KeyPos
0A2D A7 6A         1417 		cmpe	#6ah
0A2F 06 07 F5      1418 		brz	.Logic 
0A32 F3 00         1419 		lda	#>BasenFlag
0A34 FC 28         1420 		sta	PP
0A36 F1 00         1421 		lda	BasenFlag
0A38 CB 0F         1422 		anda	#0fh
0A3A 06 00 F5      1423 		brz	.NotBaseN
0A3D 20 00 00      1424 		call	LogicKeyChk
0A40 F5 00         1425 		lda0	.KeyPos
0A42 A7 00         1426 		cmpe	#0h
0A44 06 03 C2      1427 		brz	.EmitKeyD
0A47 20 09 53      1428 		call	.BasenModeAns
0A4A 02 03 9E      1429 		br	.Normalinput						
+                  1430 ;===========================================
0A4D               1431 .InterruptT1:   
+                  1432 		
0A4D F9 D0         1433 		sta0	.TempA
0A4F F0 28         1434 		lda	PP
0A51 F9 D1         1435 		sta0 	.PPTemp							
0A53 F0 22         1436 		lda	OP1		
0A55 F9 D2         1437 		sta0 	.OP1Temp														
0A57 F5 00         1438 		lda0	.RandCnt
0A59 1F            1439 		inca
0A5A F9 00         1440 		sta0	.RandCnt
0A5C F3 01         1441 		lda	#01h
0A5E FC 28         1442 		sta	PP	
0A60 F1 00         1443 		lda	T1Flag
0A62 DB 80         1444 		ora	#80h
0A64 FD 00         1445 		sta	T1Flag	
+                  1446 		
0A66 F5 00         1447 		lda0	.RandCnt
0A68 CB 0F         1448 		anda	#0fh
0A6A A7 0F         1449 		cmpe	#0fh
0A6C 07 0A 74      1450 		brnz	.CKkeyCnt
0A6F F5 D3         1451 		lda0	.Sec
0A71 1F            1452 		inca	
0A72 F9 D3         1453 		sta0	.Sec
+                  1454 		 
0A74               1455 .CKkeyCnt:				
+                  1456 ;		lda0	.KeyCnt
+                  1457 ;		ora	#10h
+                  1458 ;		sta0	.KeyCnt							 
0A74 F5 D2         1459 		lda0	.OP1Temp
0A76 FC 22         1460 		sta	OP1			
0A78 F5 D1         1461 		lda0 	.PPTemp
0A7A FC 28         1462 		sta	PP		
0A7C F5 D0         1463 		lda0	.TempA		
0A7E 25            1464 		reti
+                  1465 ;===========================================
0A7F               1466 .InterruptT2:   
+                  1467 		
0A7F F9 D0         1468 		sta0	.TempA
0A81 F0 28         1469 		lda	PP
0A83 F9 D1         1470 		sta0 	.PPTemp								
0A85 F0 22         1471 		lda	OP1		
0A87 F9 D2         1472 		sta0 	.OP1Temp
0A89 20 00 00      1473 		call	.KeyScan 
0A8C F5 E3         1474 		lda0	.TurboCnt
0A8E 1F            1475 		inca
0A8F F9 E3         1476 		sta0	.TurboCnt				 		 						
0A91 F5 D2         1477 		lda0	.OP1Temp
0A93 FC 22         1478 		sta	OP1			
0A95 F5 D1         1479 		lda0 	.PPTemp
0A97 FC 28         1480 		sta	PP		
0A99 F5 D0         1481 		lda0	.TempA		
0A9B 25            1482 		reti
+                  1483 
+                  1484 				
+                  1485 ;-------------------------------------------		
+                  1486 ;		.Initial:
+                  1487 ;-------------------------------------------
0A9C               1488 .Initial::
0A9C 28            1489 		CLRINT
0A9D F3 00         1490 		lda	#0h
0A9F FC 38         1491 		sta	LCDC								
0AA1 F3 FF         1492 		lda	#0ffh
0AA3 FC 32         1493 		sta	PRTD
0AA5 FC 58         1494 		sta	PRT17
0AA7 F3 00         1495 		lda 	#0h
0AA9 FC 34         1496 		sta	PWMC
0AAB FC 48         1497 		sta	VOC	
+                  1498 ;-------------------------------------------
+                  1499 ;		Clear Lcd
+                  1500 ;-------------------------------------------
0AAD               1501 .ClearLCD::	
0AAD F3 00         1502 		lda	#0h
0AAF FC 28         1503 		sta	PP			
0AB1 F3 00         1504 		lda	#0h
0AB3 FC 21         1505 		sta	DP
0AB5               1506 .Clrlcd:		
0AB5 F3 00         1507 		lda	#0h
0AB7 FE            1508 		sta	i
0AB8 18            1509 		incdp	
0AB9 F0 21         1510 		lda	DP
0ABB A7 F0         1511 		cmpe	#0f0h
0ABD 06 0A C3      1512 		brz	.EndInitiallcd
0AC0 02 0A B5      1513 		br	.Clrlcd
0AC3               1514 .EndInitiallcd:		
+                  1515 							
0AC3 20 00 00      1516 		call	.ClrallP		
0AC6 20 00 00      1517 		call	.DispInitial
0AC9 20 0A D0      1518 		call	.ClrData		
0ACC 20 0B 28      1519 		call	.SetTimeClk
+                  1520 		
0ACF 24            1521 		ret	
+                  1522 ;-------------------------------------------
+                  1523 ;		ClrData
+                  1524 ;-------------------------------------------
0AD0               1525 .ClrData::	
0AD0 20 00 00      1526 		call	.ClrP2Edit	 
0AD3 F3 00         1527 		lda	#0h
0AD5 FC 28         1528 		sta	PP		 
0AD7 FD 00         1529 		sta	ErrorFlag
0AD9 FD 00         1530 		sta	Temp1
0ADB FD 00         1531 		sta	Temp2
0ADD FD D3         1532 		sta	.Sec
0ADF FD 00         1533 		sta	.KeyC
0AE1 FD 00         1534 		sta	.KeyD	
0AE3 FD 00         1535 		sta	.Buf1
0AE5 FD 00         1536 		sta	.Buf2				
0AE7 FD 00         1537 		sta	.CntIndex
0AE9 FD 00         1538 		sta	.FormulaFlag
0AEB FD 00         1539 		sta	.DmsCount 		
0AED FD D4         1540 		sta	.DataDP	
0AEF FD 00         1541 		sta	.SFDP
0AF1 FD 00         1542 		sta	.TFlag	
0AF3 FD 00         1543 		sta	.KeyPos 		;save	Key Posit
0AF5 FD 00         1544 		sta	.KeyCnt		 
0AF7 FD DE         1545 		sta	.KeyBuf	
0AF9 FD E1         1546 		sta	.KeyCodeBuf				 
0AFB FD D4         1547 		sta	.DataDP	
0AFD FD E3         1548 		sta	.TurboCnt
0AFF F3 32         1549 		lda	#.RealseTime
0B01 F9 E2         1550 		sta0	.KeyTimeCnt	
+                  1551 ;===============initial PP=1===============

⌨️ 快捷键说明

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