📄 calctools.asl
字号:
0187 F9 00 296 sta0 OperandY
0189 F9 01 297 sta0 OperandY+1
018B F9 02 298 sta0 OperandY+2
018D F9 03 299 sta0 OperandY+3
018F F9 04 300 sta0 OperandY+4
0191 F9 05 301 sta0 OperandY+5
0193 20 0A 2C 302 call .Z_trans_B
0196 20 09 F0 303 call .Z_trans_X
0199 F3 00 304 lda #OperandX
019B F9 00 305 sta0 Addr1
019D 20 00 00 306 call CheckData
01A0 F5 00 307 lda0 DpCount
01A2 A7 0C 308 cmpe #0ch
01A4 06 01 B4 309 brz .StartCK
01A7 A7 0D 310 cmpe #0dh
01A9 06 01 E3 311 brz .ModifyOp6R
01AC A7 0E 312 cmpe #0eh
01AE 06 01 EC 313 brz .ModifyOp6
01B1 02 01 F3 314 br .NoModify
01B4 315 .StartCK:
01B4 F3 00 316 lda #0h
01B6 F9 07 317 sta0 OperandX+7
01B8 F9 00 318 sta0 SignX
01BA F9 00 319 sta0 SignY
01BC F5 00 320 lda0 PointX
01BE F9 00 321 sta0 PointY
01C0 20 00 00 322 call Subtration
01C3 F5 00 323 lda0 SignZ
01C5 A7 00 324 cmpe #0h
01C7 07 01 F3 325 brnz .NoModify
01CA 20 0B 08 326 call .B_trans_Z
01CD 20 06 5F 327 call .DelPoint
01D0 20 09 F0 328 call .Z_trans_X
01D3 20 05 DF 329 call .ClrY
01D6 F3 01 330 lda #01h
01D8 F9 06 331 sta0 OperandY+6
01DA 20 09 F0 332 call .Z_trans_X
01DD 20 00 00 333 call Addition
01E0 02 01 F6 334 br .EndCKNear_1
01E3 335 .ModifyOp6R:
+ 336
01E3 F5 06 337 lda0 OperandX+6
01E5 CB F0 338 anda #0f0h
01E7 F9 06 339 sta0 OperandX+6
01E9 02 01 B4 340 br .StartCK
01EC 341 .ModifyOp6:
+ 342
01EC F3 00 343 lda #0h
01EE F9 06 344 sta0 OperandX+6
01F0 02 01 B4 345 br .StartCK
+ 346
+ 347
01F3 348 .NoModify:
01F3 20 0B 08 349 call .B_trans_Z
+ 350
+ 351
01F6 352 .EndCKNear_1:
01F6 20 09 F0 353 call .Z_trans_X
01F9 24 354 ret
+ 355 ;----------------(POL)----------------------
01FA 356 .POL::
+ 357
01FA 20 08 74 358 call .X_trans_S
01FD 20 09 28 359 call .Y_trans_Buf
0200 20 00 8A 360 call .XSqu
0203 20 0A 2C 361 call .Z_trans_B
0206 20 0A 90 362 call .Buf_trans_X
0209 20 00 8A 363 call .XSqu
020C 20 0A 04 364 call .Z_trans_Y
020F 20 0A E0 365 call .B_trans_X
0212 F3 00 366 lda #0h
0214 F9 07 367 sta0 OperandX+7
0216 F9 07 368 sta0 OperandY+7
0218 20 00 00 369 call Addition
021B 20 09 F0 370 call .Z_trans_X
021E 20 00 00 371 call Squ
0221 20 07 3F 372 call .GetDpCount
0224 F5 00 373 lda0 DpCount
0226 A7 00 374 cmpe #0h
0228 06 03 54 375 brz .Pow_x_y_Err
022B 20 07 51 376 call .Carry
022E 20 09 F0 377 call .Z_trans_X
0231 20 00 00 378 call .X_TO_E
+ 379
0234 20 0A 90 380 call .Buf_trans_X
0237 20 08 9C 381 call .X_trans_R
023A 20 0B 30 382 call .S_trans_Y
023D 20 09 78 383 call .Y_trans_I
0240 20 07 49 384 call .GetDpCountY
0243 F5 00 385 lda0 DpCount
0245 A7 00 386 cmpe #0h
0247 06 02 6F 387 brz .Degree90
024A 20 00 00 388 call Division
024D 20 09 F0 389 call .Z_trans_X
0250 20 00 00 390 call .Atan
0253 20 0B BC 391 call .R_trans_Y
0256 20 0B 6C 392 call .I_trans_X
0259 20 07 0C 393 call .CheckQuadrant
025C 20 00 00 394 call .CheckAsinRrdDegre
025F 20 07 51 395 call .Carry
0262 396 .SavetoF:
0262 20 09 F0 397 call .Z_trans_X
0265 20 00 00 398 call .X_TO_F
0268 20 00 00 399 call .E_TO_Z
026B 20 0A 54 400 call .Z_trans_I
026E 24 401 ret
026F 402 .Degree90:
026F 20 05 EB 403 call .ClrZ
0272 F3 90 404 lda #90h
0274 F9 06 405 sta0 OperandZ+6
0276 02 02 62 406 br .SavetoF
+ 407 ;----------------(REC)----------------------
0279 408 .REC::
0279 F5 00 409 lda0 SignX
027B A7 00 410 cmpe #0h
027D 07 03 54 411 brnz .Pow_x_y_Err
0280 20 08 74 412 call .X_trans_S ;S
0283 20 09 28 413 call .Y_trans_Buf
0286 20 0A 90 414 call .Buf_trans_X
0289 20 08 38 415 call .X_trans_Z
028C 20 00 00 416 call .CheckRrdDegre
028F 20 00 00 417 call Sin
0292 20 0A 04 418 call .Z_trans_Y
0295 20 0B 1C 419 call .S_trans_X
0298 F3 00 420 lda #0h
029A FC 28 421 sta PP
029C 20 00 00 422 call Multiplation
029F 20 07 51 423 call .Carry
02A2 20 09 F0 424 call .Z_trans_X
02A5 20 00 00 425 call .X_TO_F
+ 426
02A8 20 0A 90 427 call .Buf_trans_X
02AB 20 08 38 428 call .X_trans_Z
02AE 20 00 00 429 call .CheckRrdDegre
02B1 20 00 00 430 call Cos
02B4 20 0A 04 431 call .Z_trans_Y
02B7 20 0B 1C 432 call .S_trans_X
02BA F3 00 433 lda #0h
02BC FC 28 434 sta PP
02BE 20 00 00 435 call Multiplation
02C1 20 07 51 436 call .Carry
02C4 20 09 F0 437 call .Z_trans_X
02C7 20 00 00 438 call .X_TO_E
02CA 24 439 ret
+ 440 ;-------------------------------------------
02CB 441 .CKPowx_y::
02CB 20 00 00 442 call X_SatDataCnt_Trans
02CE 20 09 A0 443 call .Y_trans_T
02D1 20 09 00 444 call .Y_trans_X
02D4 20 00 00 445 call Fract
02D7 20 0B 1C 446 call .S_trans_X
02DA 20 05 DF 447 call .ClrY
02DD F3 02 448 lda #02h
02DF F9 06 449 sta0 OperandY+6
02E1 20 00 00 450 call Mod
02E4 20 00 00 451 call MoveData
02E7 F5 06 452 lda0 OperandX+6
02E9 A7 00 453 cmpe #0h
02EB 07 02 F2 454 brnz .EndCKPowx_y
02EE F3 01 455 lda #01h
02F0 F9 00 456 sta0 ErrorFlag
02F2 457 .EndCKPowx_y:
02F2 24 458 ret
+ 459 ;----------------(X^Y)----------------------
02F3 460 .Pow_x_y::
02F3 20 03 A3 461 call .IsX_Zero
02F6 07 03 07 462 brnz 1$
02F9 20 03 B2 463 call .IsY_Zero
02FC 06 03 54 464 brz .Pow_x_y_Err
02FF 20 00 00 465 call ClearBuffer
0302 F3 00 466 lda #0
0304 F9 75 467 sta0 .DataBuf
0306 24 468 ret
+ 469 1$:
0307 F5 00 470 lda0 SignX
0309 F9 75 471 sta0 .DataBuf
030B F5 00 472 lda0 SignX
030D A7 01 473 cmpe #01h
030F 07 03 28 474 brnz .Normal_x_y
0312 F5 00 475 lda0 PointY
0314 A7 00 476 cmpe #0h
0316 07 03 54 477 brnz .Pow_x_y_Err
0319 F3 00 478 lda #0h
031B F9 00 479 sta0 SignX
031D F5 06 480 lda0 OperandY+6
031F CB 01 481 anda #01h
0321 07 03 28 482 brnz .Normal_x_y
0324 F3 00 483 lda #0h
0326 F9 75 484 sta0 .DataBuf
0328 485 .Normal_x_y:
0328 20 09 28 486 call .Y_trans_Buf
032B 20 00 00 487 call Ln
032E 20 00 00 488 call CheckOutData
0331 20 09 F0 489 call .Z_trans_X
0334 20 0A A4 490 call .Buf_trans_Y
0337 20 00 00 491 call Multiplation
033A 20 00 00 492 call CheckOutData
033D 20 09 F0 493 call .Z_trans_X
0340 20 00 00 494 call Ex
0343 F5 75 495 lda0 .DataBuf
0345 F9 00 496 sta0 SignZ
0347 F3 00 497 lda #0h
0349 F9 07 498 sta0 OperandZ+7
034B 20 00 00 499 call CheckOutData
034E 20 04 09 500 call check_Z_carry
0351 02 03 58 501 br .EndPow_x_y
0354 502 .Pow_x_y_Err:
0354 F3 01 503 lda #01h
0356 F9 00 504 sta0 ErrorFlag
+ 505
0358 506 .EndPow_x_y:
0358 24 507 ret
+ 508 ;----------------(X^1/Y)--------------------
0359 509 .Pow_x_invy::
0359 20 03 A3 510 call .IsX_Zero
035C 07 03 67 511 brnz 1$
035F 20 00 00 512 call ClearBuffer
0362 F3 00 513 lda #0
0364 F9 75 514 sta0 .DataBuf
0366 24 515 ret
+ 516 1$:
0367 F5 00 517 lda0 SignX
0369 F9 75 518 sta0 .DataBuf
036B A7 01 519 cmpe #01h
036D 07 03 85 520 brnz .Nomalx_invy
0370 F5 06 521 lda0 OperandY+6
0372 CB 01 522 anda #01h
0374 07 03 7E 523 brnz .ChkY
0377 524 .x_inverr:
0377 F3 01 525 lda #01h
0379 F9 00 526 sta0 ErrorFlag
037B 02 03 A2 527 br .EndPow_x_invy
037E 528 .ChkY:
037E F5 00 529 lda0 PointY
0380 A7 00 530 cmpe #0h
0382 07 03 77 531 brnz .x_inverr
0385 532 .Nomalx_invy:
0385 F3 00 533 lda #0h
0387 F9 00 534 sta0 SignX
0389 20 09 28 535 call .Y_trans_Buf
038C 20 00 00 536 call Ln
038F 20 09 F0 537 call .Z_trans_X
0392 20 0A A4 538 call .Buf_trans_Y
0395 20 00 00 539 call Division
0398 20 09 F0 540 call .Z_trans_X
039B 20 00 00 541 call Ex
039E F5 75 542 lda0 .DataBuf
03A0 F9 00 543 sta0 SignZ
03A2 544 .EndPow_x_invy:
03A2 24 545 ret
+ 546
03A3 547 .IsX_Zero:
03A3 F1 00 548 lda OperandX
03A5 D9 01 549 ora OperandX+1
03A7 D9 02 550 ora OperandX+2
03A9 D9 03 551 ora OperandX+3
03AB D9 04 552 ora OperandX+4
03AD D9 05 553 ora OperandX+5
03AF D9 06 554 ora OperandX+6
03B1 24 555 ret
03B2 556 .IsY_Zero:
03B2 F1 00 557 lda OperandY
03B4 D9 01 558 ora OperandY+1
03B6 D9 02 559 ora OperandY+2
03B8 D9 03 560 ora OperandY+3
03BA D9 04 561 ora OperandY+4
03BC D9 05 562 ora OperandY+5
03BE D9 06 563 ora OperandY+6
03C0 24 564 ret
+ 565 ;----------------(X^Y)----------------------
03C1 566 .Pow_10_X::
03C1 20 08 4C 567 call .X_trans_Buf
03C4 F5 00 568 lda0 SignX
03C6 A7 01 569 cmpe #01h
03C8 07 03 E6 570 brnz .Dopow_10_x
03CB F3 00 571 lda #0h
03CD F9 00 572 sta0 SignX
03CF 20 05 DF 573 call .ClrY
03D2 F3 01 574 lda #01h
03D4 F9 05 575 sta0 OperandY+5
03D6 20 00 00 576 call Subtration
03D9 F5 00 577 lda0 SignZ
03DB A7 00 578 cmpe #0h
03DD 07 03 E6 579 brnz .Dopow_10_x
03E0 20 05 EB 580 call .ClrZ
03E3 02 03 F3 581 br .EndPow_10_X
03E6 582 .Dopow_10_x:
03E6 20 0A A4 583 call .Buf_trans_Y
03E9 20 05 D3 584 call .ClrX
03EC F3 10 585 lda #10h
03EE F9 06 586 sta0 OperandX+6
03F0 20 02 F3 587 call .Pow_x_y
03F3 588 .EndPow_10_X:
03F3 24 589 ret
+ 590
+ 591 ;----------------(X^1/3)--------------------
03F4 592 .Pow_x_inv3::
03F4 20 05 DF 593 call .ClrY
03F7 F3 03 594 lda #03h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -