📄 trigonom.asl
字号:
016F 300 Cos::
+ 301 ;;caul X data
+ 302
+ 303 ;;get pi/180 data
+ 304
016F F3 00 305 lda #0
0171 FD 00 306 sta SignX
+ 307
0173 20 00 00 308 call ClearBuffer
+ 309
0176 F3 00 310 lda #0
0178 FD 07 311 sta OperandX+Length
+ 312
+ 313
017A F3 5C 314 lda #BufferXn
017C FD 00 315 sta Addr1
+ 316
017E 20 00 00 317 call ClearData
+ 318
0181 F3 52 319 lda #BufferTan
0183 FD 00 320 sta Addr1
+ 321
0185 20 00 00 322 call ClearData
+ 323
0188 F3 00 324 lda #0
018A FD 5B 325 sta PointXn
018C FD 51 326 sta PointT
018E FD 5A 327 sta SignXn
0190 FD 50 328 sta SignT
0192 FD 00 329 sta SignTemp
0194 FD 00 330 sta TanTemp
+ 331
0196 20 09 17 332 call CheckQuadrandtal
+ 333
0199 F1 00 334 lda Temp1
019B 8B 00 335 adda #0
019D 06 01 BA 336 brz 1$
01A0 7F 337 rorc
01A1 04 02 D9 338 brc Cos90
01A4 7F 339 rorc
01A5 04 02 F1 340 brc Cos180
01A8 7F 341 rorc
01A9 04 02 D9 342 brc Cos270
01AC 7F 343 rorc
01AD 04 03 13 344 brc Cos360
01B0 7F 345 rorc
01B1 8B 00 346 adda #0
01B3 7F 347 rorc
01B4 8B 00 348 adda #0
01B6 7F 349 rorc
01B7 04 03 35 350 brc Cos60
+ 351 1$:
01BA F3 00 352 lda #0h
01BC FD 00 353 sta Xn
+ 354 ;;set BufferZ1
01BE F3 10 355 lda #10h
01C0 FD 00 356 sta BufferZ
+ 357
01C2 F3 0E 358 lda #Length_Z
01C4 3F 359 deca
01C5 FD 00 360 sta PointBz
+ 361
01C7 F3 00 362 lda #^Pdata
01C9 FD 02 363 sta TableC+2
+ 364
01CB F3 0B 365 lda #@Pdata
01CD FD 01 366 sta TableC+1
+ 367
01CF F3 FC 368 lda #<Pdata
01D1 FD 00 369 sta TableC
+ 370
01D3 F3 00 371 lda #0
01D5 FD 00 372 sta Temp2
+ 373
01D7 20 08 A9 374 call GetData
+ 375
01DA F3 00 376 lda #0
01DC FD 00 377 sta Temp2
+ 378
01DE 20 00 00 379 call Multiplation
+ 380
01E1 F3 00 381 lda #OperandZ
01E3 FD 00 382 sta Addr1
+ 383
01E5 F3 00 384 lda #OperandX
01E7 FD 00 385 sta Addr2
+ 386
01E9 20 00 00 387 call CopyData
+ 388
01EC F1 00 389 lda PointZ
01EE FD 00 390 sta PointX
+ 391
+ 392 ;;;get X^2
01F0 20 0B A7 393 call GetXX
+ 394 ;;;save X^2 to BufferXn
01F3 F3 00 395 lda #OperandZ
01F5 FD 00 396 sta Addr1
+ 397
01F7 F3 5C 398 lda #BufferXn
01F9 FD 00 399 sta Addr2
+ 400
01FB 20 00 00 401 call CopyData
+ 402
01FE F1 00 403 lda PointZ
0200 FD 5B 404 sta PointXn
+ 405
0202 F3 00 406 lda #0
0204 FD 5A 407 sta SignXn
0206 408 CosLoop: ;;;move X^2 to operandX
+ 409
0206 F3 00 410 lda #OperandZ
0208 FD 00 411 sta Addr1
+ 412
020A F3 00 413 lda #OperandX
020C FD 00 414 sta Addr2
+ 415
020E 20 00 00 416 call CopyData
+ 417
0211 F1 00 418 lda PointZ
0213 FD 00 419 sta PointX
+ 420
0215 F3 00 421 lda #^CosData
0217 FD 02 422 sta TableC+2
+ 423
0219 F3 0C 424 lda #@CosData
021B FD 01 425 sta TableC+1
+ 426
021D F3 44 427 lda #<CosData
021F FD 00 428 sta TableC
+ 429
0221 F1 00 430 lda Xn
0223 FD 00 431 sta Temp2
0225 1F 432 inca
0226 FD 00 433 sta Xn
+ 434
0228 20 08 A9 435 call GetData
+ 436 0$: ;;;getX^2*(1/n!)
022B 20 00 00 437 call Multiplation
+ 438 ;;;get next (1/n!)
022E F3 00 439 lda #^CosData
0230 FD 02 440 sta TableC+2
+ 441
0232 F3 0C 442 lda #@CosData
0234 FD 01 443 sta TableC+1
+ 444
0236 F3 44 445 lda #<CosData
0238 FD 00 446 sta TableC
+ 447
023A F1 00 448 lda Xn
023C FD 00 449 sta Temp2
023E 1F 450 inca
023F FD 00 451 sta Xn
0241 A7 08 452 cmpe #08h
0243 04 02 9B 453 brc 3$
+ 454
0246 20 08 A9 455 call GetData
+ 456 ;;;move data to operandX
0249 F3 00 457 lda #OperandY
024B FD 00 458 sta Addr1
+ 459
024D F3 00 460 lda #OperandX
024F FD 00 461 sta Addr2
+ 462
0251 20 00 00 463 call CopyData
+ 464
0254 F1 00 465 lda PointY
0256 FD 00 466 sta PointX
+ 467
0258 F3 00 468 lda #0
025A FD 00 469 sta SignX
+ 470 ;;;;move ans to operandY
025C F3 00 471 lda #OperandZ
025E FD 00 472 sta Addr1
+ 473
0260 F3 00 474 lda #OperandY
0262 FD 00 475 sta Addr2
+ 476
0264 20 00 00 477 call CopyData
+ 478
0267 F1 00 479 lda PointZ
0269 FD 00 480 sta PointY
+ 481
026B F1 00 482 lda SignZ
026D FD 00 483 sta SignY
+ 484
026F F3 00 485 lda #0
0271 FD 00 486 sta SignZ
+ 487
0273 20 00 00 488 call Subtration
+ 489 2$:
+ 490 ;;;move ans to operandX
0276 F3 00 491 lda #OperandZ
0278 FD 00 492 sta Addr1
+ 493
027A F3 00 494 lda #OperandX
027C FD 00 495 sta Addr2
+ 496
027E 20 00 00 497 call CopyData
+ 498
0281 F1 00 499 lda PointZ
0283 FD 00 500 sta PointX
+ 501
0285 F1 00 502 lda SignZ
0287 FD 00 503 sta SignX
+ 504 ;;;move X^2 to operandY
0289 F3 5C 505 lda #BufferXn
028B FD 00 506 sta Addr1
+ 507
028D F3 00 508 lda #OperandY
028F FD 00 509 sta Addr2
+ 510
0291 20 00 00 511 call CopyData
+ 512
0294 F1 5B 513 lda PointXn
0296 FD 00 514 sta PointY
+ 515
0298 02 02 2B 516 br 0$
+ 517 3$:
029B F3 00 518 lda #OperandZ
029D FD 00 519 sta Addr1
+ 520
029F F3 00 521 lda #OperandY
02A1 FD 00 522 sta Addr2
+ 523
02A3 20 00 00 524 call CopyData
+ 525
02A6 F1 00 526 lda PointZ
02A8 FD 00 527 sta PointY
+ 528
02AA F1 00 529 lda SignZ
02AC FD 00 530 sta SignY
+ 531
02AE F3 00 532 lda #OperandX
02B0 FD 00 533 sta Addr1
+ 534
02B2 20 00 00 535 call ClearData
+ 536
02B5 F1 00 537 lda Addr1
02B7 8B 07 538 adda #Length
02B9 3F 539 deca
02BA FC 21 540 sta r_dp
+ 541
02BC F3 01 542 lda #01h
02BE FE 543 sta i
+ 544
02BF F3 00 545 lda #0
02C1 FD 00 546 sta PointX
02C3 FD 00 547 sta SignX
+ 548
02C5 20 00 00 549 call Subtration
+ 550
02C8 551 EndCos:
02C8 F1 4F 552 lda SignAns
02CA CB 06 553 anda #06h
02CC 07 02 D4 554 brnz 1$
0000 555 .if 0
+ 556 cmpe #02h
+ 557 brz 1$
+ 558 cmpe #04h
+ 559 brz 1$
+ 560 .endif
02CF F3 00 561 lda #0
02D1 FD 00 562 sta SignZ
02D3 24 563 ret
+ 564 1$:
02D4 F3 01 565 lda #01h
02D6 FD 00 566 sta SignZ
02D8 24 567 ret
+ 568
+ 569
+ 570 ;=====================================
02D9 571 Cos90:
02D9 572 Cos270:
02D9 573 Sin180:
02D9 574 Sin360:
02D9 F3 00 575 lda #OperandZ
02DB FD 00 576 sta Addr1
+ 577
02DD F3 0E 578 lda #Length_Z
02DF FD 00 579 sta DpCount
+ 580
02E1 20 00 00 581 call ClearData2
+ 582
02E4 F3 00 583 lda #0
02E6 FD 00 584 sta PointZ
02E8 FD 00 585 sta SignZ
02EA F1 00 586 lda SignZ
02EC E9 00 587 xora SignTemp
02EE FD 00 588 sta SignZ
02F0 24 589 ret
02F1 590 Cos180:
02F1 591 Sin270:
02F1 F3 00 592 lda #OperandZ
02F3 FD 00 593 sta Addr1
+ 594
02F5 F3 0E 595 lda #Length_Z
02F7 FD 00 596 sta DpCount
+ 597
02F9 20 00 00 598 call ClearData2
+ 599
02FC F3 00 600 lda #0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -