📄 trigonom.asl
字号:
0637 20 00 00 1203 call CopyData
+ 1204
063A F1 00 1205 lda PointZ
063C FD 00 1206 sta PointX
+ 1207 ;;;move BufferZ to operandY
063E F3 00 1208 lda #BufferZ
0640 FD 00 1209 sta Addr1
+ 1210
0642 F3 00 1211 lda #OperandY
0644 FD 00 1212 sta Addr2
+ 1213
0646 20 00 00 1214 call CopyData
+ 1215
0649 F1 00 1216 lda PointBz
064B FD 00 1217 sta PointY
+ 1218 ;;;get X+(X^3/3)
064D 20 00 00 1219 call Addition
+ 1220 ;;;save X+(X^3/3) to bufferZ
0650 F3 00 1221 lda #OperandZ
0652 FD 00 1222 sta Addr1
+ 1223
0654 F3 00 1224 lda #BufferZ
0656 FD 00 1225 sta Addr2
+ 1226
0658 20 00 00 1227 call CopyData
+ 1228
065B F1 00 1229 lda PointZ
065D FD 00 1230 sta PointBz
+ 1231 ;;;get X^5
065F F3 5C 1232 lda #BufferXn ;load X^3 to operandx
0661 FD 00 1233 sta Addr1
+ 1234
0663 F3 00 1235 lda #OperandX
0665 FD 00 1236 sta Addr2
+ 1237
0667 20 00 00 1238 call CopyData
+ 1239
066A F1 5B 1240 lda PointXn
066C FD 00 1241 sta PointX
+ 1242 ;;;load X^2 to operandy
066E F3 00 1243 lda #Buffer
0670 FD 00 1244 sta Addr1
+ 1245
0672 F3 00 1246 lda #OperandY
0674 FD 00 1247 sta Addr2
+ 1248
0676 20 00 00 1249 call CopyData
+ 1250
0679 F1 00 1251 lda PointB
067B FD 00 1252 sta PointY
+ 1253 ;;;X^3*X^2=X^5
067D 20 00 00 1254 call Multiplation
+ 1255 ;;;save X^5 to bufferxn
0680 F3 00 1256 lda #OperandZ
0682 FD 00 1257 sta Addr1
+ 1258
0684 F3 5C 1259 lda #BufferXn
0686 FD 00 1260 sta Addr2
+ 1261
0688 20 00 00 1262 call CopyData
+ 1263
068B F1 00 1264 lda PointZ
068D FD 5B 1265 sta PointXn
+ 1266 ;;;move X^5 to operandX
068F F3 00 1267 lda #OperandX
0691 FD 00 1268 sta Addr2
+ 1269
0693 20 00 00 1270 call CopyData
+ 1271
0696 F1 00 1272 lda PointZ
0698 FD 00 1273 sta PointX
+ 1274 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
069A F3 00 1275 lda #^TanTable1
069C FD 02 1276 sta TableC+2
069E F3 14 1277 lda #@TanTable1
06A0 FD 01 1278 sta TableC+1
06A2 F3 75 1279 lda #<TanTable1
06A4 FD 00 1280 sta TableC
+ 1281
06A6 F3 00 1282 lda #0
06A8 FD 00 1283 sta Temp2
+ 1284
06AA 20 08 A9 1285 call GetData
+ 1286
+ 1287 ; ;;;Push 2/15 to operandy
+ 1288 ; lda #OperandY
+ 1289 ; sta r_dp
+ 1290
+ 1291 ; lda #13h
+ 1292 ; sta i
+ 1293 ; incdp
+ 1294 ; lda #33h
+ 1295 ; sta i
+ 1296 ; incdp
+ 1297 ; lda #33h
+ 1298 ; sta i
+ 1299 ; incdp
+ 1300 ; lda #33h
+ 1301 ; sta i
+ 1302 ; incdp
+ 1303 ; lda #33h
+ 1304 ; sta i
+ 1305 ; incdp
+ 1306 ; lda #33h
+ 1307 ; sta i
+ 1308 ; incdp
+ 1309 ; lda #00h
+ 1310 ; sta i
+ 1311
+ 1312 ; lda #0ch
+ 1313 ; sta PointY
+ 1314 ;;;2/15*X^5
06AD 20 00 00 1315 call Multiplation
+ 1316 ;;;move to operandX
06B0 F3 00 1317 lda #OperandZ
06B2 FD 00 1318 sta Addr1
+ 1319
06B4 F3 00 1320 lda #OperandX
06B6 FD 00 1321 sta Addr2
+ 1322
06B8 20 00 00 1323 call CopyData
+ 1324
06BB F1 00 1325 lda PointZ
06BD FD 00 1326 sta PointX
+ 1327 ;;;move X+(X^3/3) data to Y
06BF F3 00 1328 lda #BufferZ
06C1 FD 00 1329 sta Addr1
+ 1330
06C3 F3 00 1331 lda #OperandY
06C5 FD 00 1332 sta Addr2
+ 1333
06C7 20 00 00 1334 call CopyData
+ 1335
06CA F1 00 1336 lda PointBz
06CC FD 00 1337 sta PointY
+ 1338 ;;;get X+(X^3/3)+(2/15X^5)
06CE 20 00 00 1339 call Addition
+ 1340 ;;;save X+(X^3/3)+(2/15X^5) to bufferZ
06D1 F3 00 1341 lda #OperandZ
06D3 FD 00 1342 sta Addr1
+ 1343
06D5 F3 00 1344 lda #BufferZ
06D7 FD 00 1345 sta Addr2
+ 1346
06D9 20 00 00 1347 call CopyData
+ 1348
06DC F1 00 1349 lda PointZ
06DE FD 00 1350 sta PointBz
+ 1351 ;;;cau X^7
+ 1352 ;;;move X^5
06E0 F3 5C 1353 lda #BufferXn
06E2 FD 00 1354 sta Addr1
+ 1355
06E4 F3 00 1356 lda #OperandX
06E6 FD 00 1357 sta Addr2
+ 1358
06E8 20 00 00 1359 call CopyData
+ 1360
06EB F1 5B 1361 lda PointXn
06ED FD 00 1362 sta PointX
+ 1363 ;;;move X^2
06EF F3 00 1364 lda #Buffer
06F1 FD 00 1365 sta Addr1
+ 1366
06F3 F3 00 1367 lda #OperandY
06F5 FD 00 1368 sta Addr2
+ 1369
06F7 20 00 00 1370 call CopyData
+ 1371
06FA F1 00 1372 lda PointB
06FC FD 00 1373 sta PointY
+ 1374 ;;;X^2*X^5
06FE 20 00 00 1375 call Multiplation
+ 1376 ;;;move X^7 to X
0701 F3 00 1377 lda #OperandZ
0703 FD 00 1378 sta Addr1
+ 1379
0705 F3 00 1380 lda #OperandX
0707 FD 00 1381 sta Addr2
+ 1382
0709 20 00 00 1383 call CopyData
+ 1384
070C F1 00 1385 lda PointZ
070E FD 00 1386 sta PointX
+ 1387 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;push 17/315
0710 F3 00 1388 lda #^TanTable1
0712 FD 02 1389 sta TableC+2
0714 F3 14 1390 lda #@TanTable1
0716 FD 01 1391 sta TableC+1
0718 F3 75 1392 lda #<TanTable1
071A FD 00 1393 sta TableC
+ 1394
071C F3 01 1395 lda #01
071E FD 00 1396 sta Temp2
+ 1397
0720 20 08 A9 1398 call GetData
+ 1399
+ 1400 ; lda #OperandY
+ 1401 ; sta r_dp
+ 1402
+ 1403 ; lda #53h
+ 1404 ; sta i
+ 1405 ; incdp
+ 1406 ; lda #96h
+ 1407 ; sta i
+ 1408 ; incdp
+ 1409 ; lda #82h
+ 1410 ; sta i
+ 1411 ; incdp
+ 1412 ; lda #53h
+ 1413 ; sta i
+ 1414 ; incdp
+ 1415 ; lda #96h
+ 1416 ; sta i
+ 1417 ; incdp
+ 1418 ; lda #82h
+ 1419 ; sta i
+ 1420 ; incdp
+ 1421 ; lda #0
+ 1422 ; sta i
+ 1423 ; lda #0dh
+ 1424 ; sta PointY
+ 1425
0723 20 00 00 1426 call Multiplation
+ 1427 ;;;move (17/315)X^7 to operandX
0726 F3 00 1428 lda #OperandZ
0728 FD 00 1429 sta Addr1
+ 1430
072A F3 00 1431 lda #OperandX
072C FD 00 1432 sta Addr2
+ 1433
072E 20 00 00 1434 call CopyData
+ 1435
0731 F1 00 1436 lda PointZ
0733 FD 00 1437 sta PointX
+ 1438 ;;;lda X+(X^3/3)+(2X^5/15)to Y
0735 F3 00 1439 lda #BufferZ
0737 FD 00 1440 sta Addr1
+ 1441
0739 F3 00 1442 lda #OperandY
073B FD 00 1443 sta Addr2
+ 1444
073D 20 00 00 1445 call CopyData
+ 1446
0740 F1 00 1447 lda PointBz
0742 FD 00 1448 sta PointY
+ 1449 ;;;get X+(X^3/3)+(2X^5/15)+(17X^7/315)
0744 20 00 00 1450 call Addition
+ 1451 ;;;move X+(X^3/3)+(2X^5/15)+(17X^7/315) to X
0747 F3 00 1452 lda #OperandZ
0749 FD 00 1453 sta Addr1
+ 1454
074B F3 00 1455 lda #OperandX
074D FD 00 1456 sta Addr2
+ 1457
074F 20 00 00 1458 call CopyData
+ 1459
0752 F1 00 1460 lda PointZ
0754 FD 00 1461 sta PointX
+ 1462 ;;;save X+(X^3/3)+(2X^5/15)+(17X^7/315) to bufferZ
0756 F3 00 1463 lda #BufferZ
0758 FD 00 1464 sta Addr2
+ 1465
075A 20 00 00 1466 call CopyData
+ 1467
075D F1 00 1468 lda PointZ
075F FD 00 1469 sta PointBz
+ 1470 ;;;move bufferTan to Y
0761 F3 52 1471 lda #BufferTan
0763 FD 00 1472 sta Addr1
+ 1473
0765 F3 00 1474 lda #OperandY
0767 FD 00 1475 sta Addr2
+ 1476
0769 20 00 00 1477 call CopyData
+ 1478
076C F1 51 1479 lda PointT
076E FD 00 1480 sta PointY
+ 1481
0770 F1 50 1482 lda SignT
0772 FD 00 1483 sta SignY
+ 1484 ;;get X*Y
0774 20 00 00 1485 call Multiplation
+ 1486
0777 F3 00 1487 lda #OperandZ
0779 FD 00 1488 sta Addr1
+ 1489
077B F3 00 1490 lda #Buffer
077D FD 00 1491 sta Addr2
+ 1492
077F 20 00 00 1493 call CopyData
+ 1494
0782 F1 00 1495 lda PointZ
0784 FD 00 1496 sta PointB
+ 1497
0786 F1 00 1498 lda SignZ
0788 FD 00 1499 sta SignB
+ 1500
078A F1 50 1501
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -