📄 postfix.asl
字号:
023D 02 02 71 324 br .EndSime ;219
0240 325 .PopPolRec:
0240 F3 03 326 lda #.STPP
0242 FC 28 327 sta PP
0244 F5 00 328 lda0 .STDP
0246 FC 21 329 sta DP
0248 F2 330 lda i
0249 F9 00 331 sta0 .DataBuf
024B A7 D0 332 cmpe #.POL ;pol(
024D 06 02 6D 333 brz .EndComma
0250 A7 B1 334 cmpe #.REG
0252 06 02 6D 335 brz .EndComma ;REG MODE
0255 A7 D6 336 cmpe #.REC ;rec(
0257 06 02 6D 337 brz .EndComma
025A A7 00 338 cmpe #0h
025C 06 03 5C 339 brz .SynErr
025F 20 0E 8B 340 call .StoFuncPS
0262 20 0F BF 341 call .ClosEndPS
0265 F5 00 342 lda0 .STDP
0267 3F 343 deca
0268 F9 00 344 sta0 .STDP
026A 02 02 40 345 br .PopPolRec
+ 346
026D 347 .EndComma:
026D F3 B4 348 lda #.Comma
026F F9 00 349 sta0 .Buf1
0271 350 .EndSime:
0271 F3 00 351 lda #>StateFlag
0273 FC 28 352 sta PP
0275 F1 00 353 lda StateFlag
0277 CB 07 354 anda #07h
0279 06 02 80 355 brz .EndComCK
027C F3 FF 356 lda #0ffh
027E F9 00 357 sta0 .CommaFlag
0280 358 .EndComCK:
0280 02 00 0A 359 br .IN2PS
+ 360 ;-------------------------------------------
0283 361 .DoPolRec:
+ 362
0283 F5 00 363 lda0 .DataBuf
0285 F9 00 364 sta0 .Buf2
0287 F5 00 365 lda0 .Buf1
0289 F9 00 366 sta0 .DataBuf
028B F9 01 367 sta0 .DataBuf+1
028D 20 0A 64 368 call .CheckPari
0290 20 0E F1 369 call .CheckMem
0293 F5 00 370 lda0 .Buf2
0295 F9 00 371 sta0 .DataBuf
0297 F5 00 372 lda0 .Buf1
0299 A7 7A 373 cmpe #07ah ; formula '='
029B 06 02 F5 374 brz .PushPolRec
029E F5 00 375 lda0 .INDP
02A0 A7 01 376 cmpe #01h
02A2 06 02 F5 377 brz .PushPolRec
02A5 F5 00 378 lda0 .Buf1
02A7 A7 B2 379 cmpe #.LC
02A9 06 02 F5 380 brz .PushPolRec
02AC A7 B3 381 cmpe #.RC
02AE 06 02 E3 382 brz .MulPushPolRec
02B1 F5 00 383 lda0 .AfterPari
02B3 A7 01 384 cmpe #01h
02B5 06 02 E3 385 brz .MulPushPolRec
02B8 A7 02 386 cmpe #02h
02BA 06 02 E3 387 brz .MulPushPolRec
02BD A7 03 388 cmpe #03h
02BF 06 02 F5 389 brz .PushPolRec
02C2 A7 04 390 cmpe #04h
02C4 06 02 F5 391 brz .PushPolRec
02C7 A7 05 392 cmpe #05h
02C9 06 02 F5 393 brz .PushPolRec
02CC A7 06 394 cmpe #06h
02CE 06 02 F5 395 brz .PushPolRec
02D1 A7 09 396 cmpe #09h
02D3 06 02 F5 397 brz .PushPolRec
02D6 A7 0A 398 cmpe #0ah
02D8 06 02 E3 399 brz .MulPushPolRec
02DB A7 0C 400 cmpe #0ch
02DD 06 02 F5 401 brz .PushPolRec
02E0 02 03 5C 402 br .SynErr
+ 403
+ 404
+ 405
02E3 406 .MulPushPolRec:
02E3 20 0F BF 407 call .ClosEndPS
02E6 F5 00 408 lda0 .DataBuf
02E8 F9 00 409 sta0 .Buf2
02EA F3 A6 410 lda #.Mul
02EC F9 00 411 sta0 .DataBuf
02EE 20 0C 2A 412 call .PushData
02F1 F5 00 413 lda0 .Buf2
02F3 F9 00 414 sta0 .DataBuf
02F5 415 .PushPolRec:
02F5 20 0C 2A 416 call .PushData
02F8 F3 B2 417 lda #.LC
02FA F9 00 418 sta0 .DataBuf
02FC 20 0D 6B 419 call .StoStack
02FF F5 00 420 lda0 .Buf2
0301 F9 00 421 sta0 .Buf1
0303 02 00 0A 422 br .IN2PS
+ 423 ;---------------------------------------
0306 424 .DoDMS:
0306 F3 00 425 lda #0h
0308 F9 00 426 sta0 .PointFlag
+ 427
030A 428 .DoDmsCount:
030A F5 00 429 lda0 .DmsCount
030C A7 00 430 cmpe #0h
030E 06 03 20 431 brz .IsDegree
0311 A7 01 432 cmpe #01h
0313 06 03 34 433 brz .IsMin
0316 A7 02 434 cmpe #02h
0318 06 03 3B 435 brz .IsSec
031B A7 03 436 cmpe #03h
031D 04 03 5C 437 brc .SynErr
0320 438 .IsDegree:
0320 F3 AB 439 lda #.Degree
0322 F9 00 440 sta0 .DataBuf
0324 F9 00 441 sta0 .Buf1
0326 20 0F BF 442 call .ClosEndPS
0329 20 0C 2A 443 call .PushData
032C F5 00 444 lda0 .DmsCount
032E 1F 445 inca
032F F9 00 446 sta0 .DmsCount
0331 02 00 0A 447 br .IN2PS
0334 448 .IsMin:
0334 F3 AC 449 lda #.Minute
0336 F9 00 450 sta0 .DataBuf
0338 02 03 42 451 br .PushDms
033B 452 .IsSec:
033B F3 AD 453 lda #.Second
033D F9 00 454 sta0 .DataBuf
033F 02 03 42 455 br .PushDms
0342 456 .PushDms:
0342 F5 00 457 lda0 .DmsCount
0344 1F 458 inca
0345 F9 00 459 sta0 .DmsCount
0347 F5 00 460 lda0 .DataBuf
0349 F9 00 461 sta0 .Buf1
034B 20 0F BF 462 call .ClosEndPS
034E 20 0C 2A 463 call .PushData
0351 F3 AE 464 lda #0aeh
0353 F9 00 465 sta0 .DataBuf
0355 F3 09 466 lda #09h ;07hae
0357 F9 00 467 sta0 .AfterPari
0359 02 0C 20 468 br .PushStack
035C 469 .SynErr:
035C F3 02 470 lda #02h
035E F9 00 471 sta0 ErrorFlag
0360 02 00 D1 472 br .PosFixEnd
+ 473 ;-------------------------------------------
0363 474 .DoFract::
0363 F3 00 475 lda #0h
0365 F9 00 476 sta0 .FractTrsCnt ;clr LC cnt
0367 F3 01 477 lda #01h
0369 FC 28 478 sta PP
036B F1 00 479 lda .SetFlag
036D CB 14 480 anda #14h
036F 07 03 72 481 brnz .NoSetFract
+ 482
0372 483 .NoSetFract:
0372 F5 00 484 lda0 .DmsCount
0374 A7 00 485 cmpe #0h
0376 06 03 97 486 brz .NoDmsMode
0379 F5 00 487 lda0 .Buf1
037B A7 AB 488 cmpe #0abh
037D 06 03 97 489 brz .NoDmsMode
0380 A7 AC 490 cmpe #0ach
0382 06 03 97 491 brz .NoDmsMode
0385 A7 AD 492 cmpe #0adh
0387 06 03 97 493 brz .NoDmsMode
038A A7 AE 494 cmpe #0aeh ;3/13 add
038C 06 03 97 495 brz .NoDmsMode
038F A7 B3 496 cmpe #.RC
0391 06 03 97 497 brz .NoDmsMode
0394 02 03 5C 498 br .SynErr
0397 499 .NoDmsMode:
0397 F3 00 500 lda #0h
0399 F9 00 501 sta0 .PointFlag
039B F5 00 502 lda0 .DmsCount
039D A7 00 503 cmpe #0h
039F 06 03 A6 504 brz .DOFractCount
03A2 F3 00 505 lda #0h
03A4 F9 00 506 sta0 .DmsCount
03A6 507 .DOFractCount:
03A6 F5 00 508 lda0 .FractCount
03A8 A7 00 509 cmpe #0h
03AA 06 03 B7 510 brz .Intnum
03AD A7 01 511 cmpe #01h
03AF 06 03 BE 512 brz .IntFen
03B2 A7 02 513 cmpe #02h
03B4 02 03 CD 514 br .MaErr ;4/19
03B7 515 .Intnum:
03B7 F3 DF 516 lda #0dfh
03B9 F9 00 517 sta0 .DataBuf
03BB 02 03 C5 518 br .PushFrant
03BE 519 .IntFen:
03BE F3 DE 520 lda #0deh
03C0 F9 00 521 sta0 .DataBuf
03C2 02 03 C5 522 br .PushFrant
03C5 523 .PushFrant:
03C5 F5 00 524 lda0 .FractCount
03C7 1F 525 inca
03C8 F9 00 526 sta0 .FractCount
03CA 02 0C 1D 527 br .PushStackCls
03CD 528 .MaErr:
03CD F3 01 529 lda #01h
03CF F9 00 530 sta0 ErrorFlag
03D1 02 00 D1 531 br .PosFixEnd
+ 532 ;-------------------------------------------
03D4 533 .SetADDEC:
03D4 F5 00 534 lda0 .DmsCount
03D6 A7 00 535 cmpe #0h
03D8 06 03 FA 536 brz .AddNoDms
03DB F5 00 537 lda0 .Buf1
03DD A7 AB 538 cmpe #.Degree
03DF 06 03 F6 539 brz .ClrDmsCntA
03E2 A7 AC 540 cmpe #.Minute
03E4 06 03 F6 541 brz .ClrDmsCntA
03E7 A7 AD 542 cmpe #.Second
03E9 06 03 F6 543 brz .ClrDmsCntA
03EC A7 AE 544 cmpe #0aeh
03EE 06 03 F6 545 brz .ClrDmsCntA
03F1 A7 B3 546 cmpe #.RC
03F3 07 03 5C 547 brnz .SynErr
+ 548 ; .AddNoDms 2003 1 14.
03F6 549 .ClrDmsCntA:
03F6 F3 00 550 lda #0h
03F8 F9 00 551 sta0 .DmsCount
03FA 552 .AddNoDms:
03FA F5 00 553 lda0 .FractTrsCnt
03FC A7 00 554 cmpe #0h
03FE 07 04 19 555 brnz .CKNormaldec
0401 F5 00 556 lda0 .Buf1
0403 A7 DF 557 cmpe #0dfh
0405 06 04 FD 558 brz .AdjustOpt
0408 A7 DE 559 cmpe #0deh
040A 06 04 A5 560 brz .ClrFractCnt
+ 561
040D 562 .CheckFractCNT:
040D F5 00 563 lda0 .FractCount
040F A7 01 564 cmpe #01h
0411 06 05 11 565 brz .AdjustOptmuldiv
0414 A7 02 566 cmpe #02h
0416 06 04 AC 567 brz .ClrFractCntMul
0419 568 .CKNormaldec:
0419 F3 00 569 lda #0h
041B F9 00 570 sta0 .PointFlag
041D F5 00 571 lda0 .INDP ; .PSDP
041F A7 01 572 cmpe #01h
0421 06 0A 22 573 brz .Sign
0424 F5 00 574 lda0 .Buf1
0426 A7 A1 575 cmpe #.NUM
0428 05 0C 1D 576 brnc .PushStackCls
042B A7 AE 577 cmpe #0aeh ;06h
042D 06 0C 20 578 brz .PushStack
0430 A7 A4 579 cmpe #.ADD
0432 06 0A 22 580 brz .Sign
0435 A7 A5 581 cmpe #.DEC
0437 06 0A 22 582 brz .Sign
043A A7 A6 583 cmpe #.Mul
043C 06 0A 22 584 brz .Sign
043F A7 A7 585 cmpe #.Div
0441 06 0A 22 586 brz .Sign
0444 A7 B2 587 cmpe #.LC
0446 06 0A 22 588 brz .Sign
0449 A7 A8 589 cmpe #.Negative
044B 06 0A 22 590 brz .Sign
044E A7 B4 591 cmpe #.Comma
0450 06 0A 22 592 brz .Sign
0453 A7 B0 593 cmpe #0b0h ;----5
0455 06 0A 22 594 brz .Sign
0458 A7 B3 595 cmpe #.RC
045A 06 04 AC 596 brz .ClrFractCntMul ;.PushStackCls
045D F5 00 597 lda0 .DataBuf
045F F9 00 598 sta0 Temp2; .Buf2
0461 F5 00 599 lda0 .Buf1
0463 F9 00 600 sta0 .DataBuf
0465 F9 01 601 sta0 .DataBuf+1
0467 20 0A 64 602 call .CheckPari
046A 20 0E F1 603 call .CheckMem
046D F5 00 604 lda0 Temp2
046F F9 00 605 sta0 .Buf1
0471 F9 00 606 sta0 .DataBuf
0473 F5 00 607 lda0 .AfterPari
0475 A7 01 608 cmpe #01h
0477 06 0C 1D 609 brz .PushStackCls
047A A7 02 610 cmpe #02h
047C 06 0C 1D 611 brz .PushStackCls
047F A7 05 612 cmpe #05h ;CNR
0481 06 0A 22 613 brz .Sign
0484 A7 06 614 cmpe #06h ;06h
0486 06 0A 22 615 brz .Sign
0489 A7 0A 616 cmpe #0ah
048B 06 0C 20 617 brz .PushStack ;.Sign
048E A7 09 618 cmpe #09h
0490 06 0A 22 619 brz .Sign
0493 A7 07 620 cmpe #07h ;06h
0495 06 0A 22 621 brz .Sign ;.PushStack
0498 A7 0B 622 cmpe #0bh
049A 06 0A 22 623 brz .Sign
049D A7 0C 624 cmpe #0ch
049F 06 0A 22 625 brz .Sign
04A2 02 00 0A 626 br .IN2PS
+ 627
+ 628
04A5 629 .ClrFractCnt:
04A5 F3 00 630 lda #0h
04A7 F9 00 631 sta0 .FractCount
04A9 02 0A 22 632 br .Sign ;
04AC 633 .ClrFractCntMul:
04AC F3 00 634 lda #0h
04AE F9 00 635 sta0 .FractCount
04B0 02 0C 1D 636 br .PushStackCls
+ 637
04B3 638 .ClrDmsCnt:
04B3 F3 00 639 lda #0h
04B5 F9 00 640 sta0 .DmsCount
04B7 02 0C 20 641 br .PushStack
+ 642 ;-------------------------------------------
04BA 643 .SetMulDiv:
04BA F5 00 644 lda0 .DmsCount
04BC A7 00 645 cmpe #0h
04BE 06 04 E3 646 brz .MulNoDms
04C1 F5 00 647 lda0 .Buf1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -