📄 oppotriangle_0225.asl
字号:
01A1 F3 00 293 lda #0h
01A3 FD D9 294 sta .IdFlag
01A5 F1 00 295 lda SignX
01A7 FD DA 296 sta .SignXBuf
01A9 F3 00 297 lda #0h
01AB FD 00 298 sta SignX
01AD 20 00 00 299 call .X_trans_Buf
01B0 20 00 00 300 call .ClrY
01B3 F3 01 301 lda #01h
01B5 F9 01 302 sta0 OperandY+1
01B7 20 00 00 303 call Subtration
01BA F5 00 304 lda0 SignZ
01BC A7 01 305 cmpe #01h
01BE 07 01 F4 306 brnz .Put90toZ
01C1 20 00 00 307 call .Buf_trans_X
01C4 F3 00 308 lda #0h
01C6 FD 00 309 sta ErrorFlag
01C8 20 02 89 310 call .SpecialDegree
01CB F1 DB 311 lda .SpecialFlag
01CD A7 00 312 cmpe #0h
01CF 06 01 DC 313 brz .NotSpeicalDegreeAtan
01D2 A7 02 314 cmpe #02h
01D4 06 02 13 315 brz .Degree45
01D7 A7 03 316 cmpe #03h
01D9 06 01 FE 317 brz .Degree0Atan
+ 318
01DC 319 .NotSpeicalDegreeAtan:
+ 320
01DC 20 05 A8 321 call .ChoiceX
01DF 20 07 07 322 call .DoZ3
01E2 20 07 14 323 call .DoW3
01E5 20 07 21 324 call .DoS1
01E8 20 07 A0 325 call .DoS2
01EB 20 08 06 326 call .DoW4
01EE 20 08 22 327 call .ResultAtan
01F1 02 02 25 328 br .Addsymbol
01F4 329 .Put90toZ:
01F4 20 00 00 330 call .ClrZ
01F7 F3 90 331 lda #90h
01F9 F9 06 332 sta0 OperandZ+6
01FB 02 02 3C 333 br .SinXtoZ
01FE 334 .Degree0Atan:
01FE F3 B4 335 lda #Int0
0200 FD D8 336 sta .M_Data_Offset
0202 20 04 7E 337 call .InpData
0205 20 00 00 338 call .X_trans_Z
0208 F3 05 339 lda #05h
020A FD D9 340 sta .IdFlag
020C F3 00 341 lda #0h
020E FD 00 342 sta PointZ
0210 02 02 25 343 br .Addsymbol
0213 344 .Degree45:
0213 F3 DC 345 lda #Int45
0215 FD D8 346 sta .M_Data_Offset
0217 20 04 7E 347 call .InpData
021A 20 00 00 348 call .X_trans_Z
021D F3 05 349 lda #05h
021F FD D9 350 sta .IdFlag
0221 F3 00 351 lda #0h
0223 FD 00 352 sta PointZ
+ 353
0225 354 .Addsymbol:
0225 F1 DA 355 lda .SignXBuf
0227 A7 01 356 cmpe #01h
0229 07 02 2E 357 brnz .EndAtan
022C FD 00 358 sta SignZ
022E 359 .EndAtan:
022E F1 D9 360 lda .IdFlag
0230 A7 05 361 cmpe #05h
0232 06 02 38 362 brz .EndDegreeAtan
0235 20 02 46 363 call .Degree
0238 364 .EndDegreeAtan:
0238 F3 00 365 lda #0h
023A FD D9 366 sta .IdFlag
+ 367 ;Added by Golden
023C 368 .SinXtoZ:
023C F1 DA 369 lda .SignXBuf
023E A7 00 370 cmpe #00h
0240 06 02 45 371 brz .1$
0243 FD 00 372 sta SignZ
0245 373 .1$:
0245 24 374 ret
+ 375
+ 376 ;------------------------------------------------
0246 377 .Degree::
0246 F3 00 378 lda #0h
0248 FC 28 379 sta PP
024A 20 00 00 380 call .Z_trans_X
024D F3 A0 381 lda #R180DivPi
024F FD D8 382 sta .M_Data_Offset
0251 20 04 B9 383 call .InpDataToY
0254 20 00 00 384 call Multiplation
0257 24 385 ret
+ 386 ;------------------------------------------------
0258 387 .Rad::
0258 F3 00 388 lda #0h
025A FC 28 389 sta PP
025C F3 AA 390 lda #PiDiv180
025E FD D8 391 sta .M_Data_Offset
0260 20 04 B9 392 call .InpDataToY
0263 20 00 00 393 call Multiplation
0266 24 394 ret
+ 395 ;------------------------------------------------
0267 396 .Gpercent::
0267 20 00 00 397 call .ClrY
026A F3 09 398 lda #09h
026C F9 06 399 sta0 OperandY+6
026E F3 01 400 lda #01h
0270 F9 00 401 sta0 PointY
0272 F3 00 402 lda #0h
0274 FC 28 403 sta PP
0276 20 00 00 404 call Multiplation
0279 24 405 ret
+ 406 ;------------------------------------------------
027A 407 .PI::
027A F3 00 408 lda #0h
027C FC 28 409 sta PP
027E F3 6E 410 lda #H_PI
0280 FD D8 411 sta .M_Data_Offset
0282 20 04 7E 412 call .InpData
0285 20 00 00 413 call .X_trans_Z
0288 24 414 ret
+ 415 ;------------------------------------------------
0289 416 .SpecialDegree:
0289 F3 00 417 lda #00h
028B FD DB 418 sta .SpecialFlag
028D F3 78 419 lda #Point5
028F FD D8 420 sta .M_Data_Offset
0291 20 04 B9 421 call .InpDataToY
0294 20 00 00 422 call LineUp
0297 F3 00 423 lda #OperandX
0299 FD 00 424 sta Addr1
029B F3 00 425 lda #OperandY
029D FD 00 426 sta Addr2
029F F3 07 427 lda #.CmpLen ;06 2002.2.21
02A1 FD 00 428 sta DpCount
02A3 20 00 00 429 call CompareData
02A6 20 00 00 430 call .Buf_trans_X ;2002 7/12
02A9 F1 00 431 lda Temp1
02AB A7 00 432 cmpe #0h
02AD 06 02 F9 433 brz .Point5
+ 434
02B0 F3 96 435 lda #Int1
02B2 FD D8 436 sta .M_Data_Offset
02B4 20 04 B9 437 call .InpDataToY
02B7 20 00 00 438 call LineUp
02BA F3 00 439 lda #OperandX
02BC FD 00 440 sta Addr1
02BE F3 00 441 lda #OperandY
02C0 FD 00 442 sta Addr2
02C2 F3 07 443 lda #.CmpLen ;2002.02.21
02C4 FD 00 444 sta DpCount
02C6 20 00 00 445 call CompareData
02C9 20 00 00 446 call .Buf_trans_X ;2002 7/12
02CC F1 00 447 lda Temp1
02CE A7 00 448 cmpe #0h
02D0 06 03 00 449 brz .Int1
+ 450
02D3 F3 B4 451 lda #Int0
02D5 FD D8 452 sta .M_Data_Offset
02D7 20 04 B9 453 call .InpDataToY
02DA 20 00 00 454 call LineUp ;adjust point site
02DD F3 00 455 lda #OperandX
02DF FD 00 456 sta Addr1
02E1 F3 00 457 lda #OperandY
02E3 FD 00 458 sta Addr2
02E5 F3 07 459 lda #.CmpLen ;shift addr size2002.02.21
02E7 FD 00 460 sta DpCount
02E9 20 00 00 461 call CompareData
02EC 20 00 00 462 call .Buf_trans_X ;2002 7/12
02EF F1 00 463 lda Temp1
02F1 A7 00 464 cmpe #0h
02F3 06 03 07 465 brz .Int0
02F6 02 03 0E 466 br .EndSpecialDegree
02F9 467 .Point5:
02F9 F3 01 468 lda #01h
02FB FD DB 469 sta .SpecialFlag
02FD 02 03 0E 470 br .EndSpecialDegree
0300 471 .Int1:
0300 F3 02 472 lda #02h
0302 FD DB 473 sta .SpecialFlag
0304 02 03 0E 474 br .EndSpecialDegree
0307 475 .Int0:
0307 F3 03 476 lda #03h
0309 FD DB 477 sta .SpecialFlag
030B 02 03 0E 478 br .EndSpecialDegree
+ 479
+ 480
030E 481 .EndSpecialDegree:
030E 24 482 ret
+ 483
+ 484 ;------------------------------------------------
030F 485 .CheckData:
030F F3 00 486 lda #0h
0311 FD DB 487 sta .SpecialFlag
0313 FD 00 488 sta ErrorFlag
+ 489
0315 F3 96 490 lda #Int1
0317 FD D8 491 sta .M_Data_Offset
0319 20 04 B9 492 call .InpDataToY
031C 20 00 00 493 call LineUp
031F F3 00 494 lda #OperandX
0321 FD 00 495 sta Addr1
0323 F3 00 496 lda #OperandY
0325 FD 00 497 sta Addr2
0327 F3 07 498 lda #.CmpLen ;2002.02.21 06
0329 FD 00 499 sta DpCount
032B 20 00 00 500 call CompareData
032E F1 00 501 lda Temp1
0330 A7 01 502 cmpe #01h
0332 06 03 38 503 brz .DataError
0335 02 03 3C 504 br .EndCheckData
+ 505
0338 506 .DataError:
0338 F3 01 507 lda #01h
033A FD 00 508 sta ErrorFlag
+ 509
033C 510 .EndCheckData:
+ 511
033C 24 512 ret
+ 513
+ 514 ;------------------------------------------------------
033D 515 .Condition1: ;x<=0.5
+ 516
033D 20 04 13 517 call .DoT1
0340 20 03 F4 518 call .DoP1
0343 20 00 00 519 call .Z_trans_S
0346 20 03 FB 520 call .DoQ1
0349 20 03 EA 521 call .DoW1
034C 20 03 75 522 call .Result1
034F 24 523 ret
+ 524 ;------------------------------------------------------
0350 525 .Condition2: ;x>0.5 =<1
+ 526
0350 20 05 2F 527 call .DoW2
0353 20 05 3F 528 call .DoT2
0356 20 03 F4 529 call .DoP1
0359 20 03 FB 530 call .DoQ1
035C 20 03 EA 531 call .DoW1
035F 20 00 00 532 call .ClrX
0362 20 00 00 533 call .Put_1_to_OperandX
0365 20 00 00 534 call .Z_trans_Y
0368 20 00 00 535 call Addition
036B 20 00 00 536 call .Z_trans_B
036E 20 05 50 537 call .DoS
0371 20 03 8B 538 call .Result2
0374 24 539 ret
+ 540 ;------------------------------------------------------
0375 541 .Result1:
0375 20 00 00 542 call .ClrX
0378 20 00 00 543 call .Put_1_to_OperandX
037B 20 00 00 544 call .Z_trans_Y
037E 20 00 00 545 call Addition
0381 20 00 00 546 call .Buf_trans_X
0384 20 00 00 547 call .Z_trans_Y
0387 20 00 00 548 call Multiplation
038A 24 549 ret
+ 550 ;------------------------------------------------------
038B 551 .Result2:
+ 552
038B 20 00 00 553 call .Z_trans_Y
038E 20 00 00 554 call .B_trans_X
0391 20 00 00 555 call Multiplation
0394 20 00 00 556 call .ClrX
0397 F3 82 557 lda #Int2
0399 FD D8 558 sta .M_Data_Offset
039B 20 04 7E 559 call .InpData
039E 20 00 00 560 call .Z_trans_Y
03A1 20 00 00 561 call Multiplation
03A4 F3 6E 562 lda #H_PI
03A6 FD D8 563 sta .M_Data_Offset
03A8 20 04 7E 564 call .InpData
03AB 20 00 00 565 call .Z_trans_Y
03AE 20 00 00 566 call Subtration
03B1 24 567 ret
+ 568
+ 569
+ 570
+ 571 ;------------------------------------------------------
+ 572
03B2 573 .AsinPs:
03B2 20 04 20 574 call .DoZMulPs5
03B5 20 04 2E 575 call .DoPs4AddZ
03B8 20 04 74 576 call .DoXMulZ
03BB 20 04 3C 577 call .DoPs3AddZ
03BE 20 04 74 578 call .DoXMulZ
03C1 20 04 4A 579 call .DoPs2AddZ
03C4 20 04 74 580 call .DoXMulZ
03C7 20 04 58 581 call .DoPs1AddZ
03CA 20 04 74 582 call .DoXMulZ
03CD 20 04 66 583 call .DoPs0AddZ
03D0 20 04 74 584 call .DoXMulZ
03D3 24 585 ret
+ 586 ;------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -