📄 baseposfix.asl
字号:
01F4 A7 04 272 cmpe #04h
01F6 06 03 0C 273 brz .AddMulCls
01F9 A7 0D 274 cmpe #0dh
01FB 06 02 79 275 brz .PushStack
01FE A7 0C 276 cmpe #0ch
0200 06 02 79 277 brz .PushStack
0203 A7 09 278 cmpe #09h
0205 06 02 79 279 brz .PushStack
0208 A7 08 280 cmpe #08h
020A 06 02 79 281 brz .PushStack
020D A7 07 282 cmpe #07h
020F 06 02 79 283 brz .PushStack
0212 A7 0E 284 cmpe #0eh
0214 06 02 83 285 brz .TOStack
0217 A7 0F 286 cmpe #0fh
0219 06 00 29 287 brz .SynError
021C 02 00 21 288 br .NextDp
+ 289 ;-------------------------------------------
021F 290 .AddBase:
021F 20 02 25 291 call .AddBaseUnit
0222 02 00 21 292 br .NextDp
0225 293 .AddBaseUnit:
0225 20 00 00 294 call .BaseModeChk
0228 F5 00 295 lda0 .DataBuf
022A F9 00 296 sta0 .Buf3
022C F5 01 297 lda0 .DataBuf+1
022E F9 00 298 sta0 .DataBuf
0230 20 00 00 299 call .CheckMem
0233 20 04 36 300 call .Paricmp
0236 F5 00 301 lda0 .AfterPari
0238 F9 00 302 sta0 .BeforePari
023A 20 03 AE 303 call .Push2Stack
023D F5 00 304 lda0 .Buf3
023F F9 00 305 sta0 .DataBuf
0241 20 00 00 306 call .StoFuncPS
0244 F5 00 307 lda0 .DataBuf
0246 F9 00 308 sta0 .Buf1
0248 24 309 ret
+ 310
+ 311 ;-------------------------------------------
0249 312 .GetPari::
+ 313
0249 F5 00 314 lda0 .DataBuf
024B F9 00 315 sta0 .Buf2
024D F5 00 316 lda0 .INDP
024F A7 00 317 cmpe #0h
0251 06 02 58 318 brz .Firstdp
0254 F5 00 319 lda0 .Buf1
0256 F9 00 320 sta0 .DataBuf
0258 321 .Firstdp:
0258 20 00 00 322 call .CheckMem
025B 20 04 36 323 call .Paricmp
025E F5 00 324 lda0 .Buf2
0260 F9 00 325 sta0 .DataBuf
0262 24 326 ret
+ 327 ;-------------------------------------------
0263 328 .Signal:
0263 F5 00 329 lda0 .DataBuf
0265 A7 A4 330 cmpe #.ADD
0267 06 02 6F 331 brz .IsADD
026A F5 00 332 lda0 .DecFlag
026C 1F 333 inca
026D F9 00 334 sta0 .DecFlag
026F 335 .IsADD:
026F F5 00 336 lda0 .DataBuf
0271 F9 00 337 sta0 .Buf1
0273 02 00 21 338 br .NextDp
+ 339 ;-------------------------------------------
0276 340 .PushStackCls:
0276 20 00 00 341 call .ClosEndPS
0279 342 .PushStack:
0279 F5 00 343 lda0 .DataBuf
027B F9 00 344 sta0 .Buf1
027D 20 03 AE 345 call .Push2Stack
0280 02 00 21 346 br .NextDp
+ 347 ;-------------------------------------------
0283 348 .TOStack:
0283 F5 00 349 lda0 .DecFlag
0285 CB 01 350 anda #01h
0287 06 02 9D 351 brz 1$
028A F5 00 352 lda0 .DataBuf
028C F9 00 353 sta0 .Buf3
028E F3 A8 354 lda #0a8h
0290 F9 00 355 sta0 .DataBuf
0292 F3 00 356 lda #0h
0294 F9 00 357 sta0 .DecFlag
0296 20 00 00 358 call .StoStack
0299 F5 00 359 lda0 .Buf3
029B F9 00 360 sta0 .DataBuf
+ 361 1$:
029D 20 00 00 362 call .StoStack
02A0 F5 00 363 lda0 .DataBuf
02A2 F9 00 364 sta0 .Buf1
02A4 02 00 21 365 br .NextDp
02A7 366 .LCAddMulCls:
02A7 20 04 14 367 call .Addnegtive
02AA 20 00 00 368 call .ClosEndPS
02AD 369 .LCAddMul:
02AD F3 03 370 lda #03h
02AF FC 28 371 sta PP
02B1 F5 00 372 lda0 .STDP
02B3 FC 21 373 sta DP
02B5 F2 374 lda i
02B6 A7 2A 375 cmpe #2Ah
02B8 04 02 CD 376 brc 11$
02BB A7 26 377 cmpe #26h
02BD 05 02 CD 378 brnc 11$
02C0 F9 00 379 sta0 .DataBuf
02C2 F5 00 380 lda0 .STDP
02C4 3F 381 deca
02C5 F9 00 382 sta0 .STDP
02C7 20 00 00 383 call .StoFuncPS
02CA 20 00 00 384 call .ClosEndPS
+ 385 11$:
02CD F5 00 386 lda0 .DataBuf
02CF F9 00 387 sta0 .Buf1
02D1 F3 A6 388 lda #.MUL
02D3 F9 00 389 sta0 .DataBuf
02D5 20 00 00 390 call .StoStack
02D8 F3 B2 391 lda #.LC
02DA F9 00 392 sta0 .DataBuf
02DC 20 00 00 393 call .StoStack
02DF F5 00 394 lda0 .DataBuf
02E1 F9 00 395 sta0 .Buf1
02E3 02 00 21 396 br .NextDp
02E6 397 .RCAddMulCls:
+ 398
02E6 20 00 00 399 call .ClosEndPS
02E9 400 .RCAddMul:
02E9 F5 00 401 lda0 .DataBuf
02EB F9 00 402 sta0 .Buf1
02ED F3 A6 403 lda #.MUL
02EF F9 00 404 sta0 .DataBuf
02F1 20 00 00 405 call .CheckMem
02F4 20 04 36 406 call .Paricmp
02F7 F5 00 407 lda0 .AfterPari
02F9 F9 00 408 sta0 .BeforePari
02FB 20 00 00 409 call .StoStack
02FE F3 B2 410 lda #.LC
0300 F9 00 411 sta0 .DataBuf
0302 20 00 00 412 call .StoStack
0305 F5 00 413 lda0 .DataBuf
0307 F9 00 414 sta0 .Buf1
0309 02 00 21 415 br .NextDp
+ 416
+ 417
+ 418 ;-------------------------------------------
030C 419 .AddMulCls:
030C 20 00 00 420 call .ClosEndPS
030F 421 .AddMul:
030F F5 00 422 lda0 .DataBuf
0311 F9 00 423 sta0 .Buf3
0313 F3 A6 424 lda #.MUL
0315 F9 00 425 sta0 .DataBuf
0317 20 00 00 426 call .CheckMem
031A 20 04 36 427 call .Paricmp
031D F5 00 428 lda0 .AfterPari
031F F9 00 429 sta0 .BeforePari
0321 20 03 AE 430 call .Push2Stack
0324 F5 00 431 lda0 .Buf3
0326 F9 00 432 sta0 .DataBuf
0328 20 00 00 433 call .CheckMem
032B 20 04 36 434 call .Paricmp
032E F5 00 435 lda0 .AfterPari
0330 F9 00 436 sta0 .BeforePari
0332 20 03 AE 437 call .Push2Stack
0335 02 00 21 438 br .NextDp
+ 439 ;-------------------------------------------
0338 440 .MemAddMulCls:
0338 F5 00 441 lda0 .DataBuf
033A F9 00 442 sta0 .Buf3
033C 20 04 14 443 call .Addnegtive
033F 20 00 00 444 call .ClosEndPS
0342 445 .MemAddMul:
0342 F3 03 446 lda #03h
0344 FC 28 447 sta PP
0346 F5 00 448 lda0 .STDP
0348 FC 21 449 sta DP
034A F2 450 lda i
034B A7 2A 451 cmpe #2Ah
034D 04 03 62 452 brc 12$
0350 A7 26 453 cmpe #26h
0352 05 03 62 454 brnc 12$
0355 F9 00 455 sta0 .DataBuf
0357 F5 00 456 lda0 .STDP
0359 3F 457 deca
035A F9 00 458 sta0 .STDP
035C 20 00 00 459 call .StoFuncPS
035F 20 00 00 460 call .ClosEndPS
+ 461 12$:
0362 F5 00 462 lda0 .DataBuf
0364 F9 00 463 sta0 .Buf1
0366 F3 A6 464 lda #.MUL
0368 F9 00 465 sta0 .DataBuf
036A 20 00 00 466 call .StoStack
036D F5 00 467 lda0 .Buf3
036F F9 00 468 sta0 .DataBuf
0371 20 00 00 469 call .StoFuncPS
0374 F5 00 470 lda0 .DataBuf
0376 F9 00 471 sta0 .Buf1
0378 02 00 21 472 br .NextDp
+ 473
+ 474
+ 475 ;-------------------------------------------
037B 476 .PosFixSto:
037B F5 00 477 lda0 .DecFlag
037D CB 01 478 anda #01h
037F 06 03 99 479 brz .NotSign
0382 F3 00 480 lda #0h
0384 F9 00 481 sta0 .DecFlag
0386 F5 00 482 lda0 .DataBuf
0388 F9 00 483 sta0 .Buf3
038A F3 A8 484 lda #0a8h
038C F9 00 485 sta0 .DataBuf
038E F3 00 486 lda #0h
0390 F9 00 487 sta0 .DecFlag
0392 20 00 00 488 call .StoStack
0395 F5 00 489 lda0 .Buf3
0397 F9 00 490 sta0 .DataBuf
0399 491 .NotSign:
0399 F3 02 492 lda #02h
039B FC 28 493 sta PP
039D F5 00 494 lda0 .PSDP
039F FC 21 495 sta DP
03A1 F5 00 496 lda0 .DataBuf
03A3 FE 497 sta i
03A4 F5 00 498 lda0 .PSDP
03A6 1F 499 inca
03A7 F9 00 500 sta0 .PSDP
03A9 F5 00 501 lda0 .DataBuf
03AB F9 00 502 sta0 .Buf1
03AD 24 503 ret
+ 504 ;-------------------------------------------
03AE 505 .Push2Stack:
03AE F5 00 506 lda0 .DataBuf
03B0 F9 00 507 sta0 .Buf2
03B2 F3 03 508 lda #03h
03B4 FC 28 509 sta PP
03B6 F5 00 510 lda0 .STDP
03B8 FC 21 511 sta DP
03BA A7 FF 512 cmpe #0ffh
03BC 06 03 EE 513 brz .Fstdp
03BF F2 514 lda i
03C0 A7 00 515 cmpe #0h
03C2 06 03 EE 516 brz .Fstdp
03C5 A7 B2 517 cmpe #.LC
03C7 06 03 EE 518 brz .Fstdp
03CA F9 00 519 sta0 .DataBuf
03CC 20 00 00 520 call .CheckMem
03CF 20 04 36 521 call .Paricmp
03D2 F3 00 522 lda #0h
03D4 FC 28 523 sta PP
03D6 F5 00 524 lda0 .BeforePari
03D8 A9 00 525 suba .AfterPari
03DA 06 03 F8 526 brz .PopStk
03DD 05 03 F8 527 brnc .PopStk
03E0 F5 00 528 lda0 .Buf2
03E2 F9 00 529 sta0 .DataBuf
03E4 20 00 00 530 call .StoStack
03E7 F5 00 531 lda0 .DataBuf
03E9 F9 00 532 sta0 .Buf1
03EB 02 04 13 533 br .EndPushStk
03EE 534 .Fstdp:
03EE 20 00 00 535 call .StoStack
03F1 F5 00 536 lda0 .DataBuf
03F3 F9 00 537 sta0 .Buf1
03F5 02 04 13 538 br .EndPushStk
03F8 539 .PopStk:
+ 540
03F8 20 03 7B 541 call .PosFixSto
03FB 20 00 00 542 call .ClosEndPS
+ 543
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -