100 SYS 9*4096 101 .OPT P,OO 102 *= $CB20 ;SYS 52000 103 ; 104 ;--------------------------------------- 105 ;--------- QUELLTEXT FLASHSORT --------- 106 ;--------------------------------------- 107 ; 108 TERM = $AD9E 109 STEST = $A3FB 110 KOMMA = $AEFD 111 CHR(null)T = $0079 112 TYPE = $6D 113 RUND = $6E 114 NUMFL = $6F 115 ; 116 ;------ SPEICHERSTELLEN ZEROPAGE ------- 117 ;------ NUR EINDIMENSIONAL/STRING ------ 118 ; 119 ;-------------- HAUPTARRAY ------------- 120 ; 121 ;$FB/$FC = HAUPTARRAY ANFANG 122 ;$FD/$FE = HAUPTARRAY ENDE+1 123 ;$22/$23 = A-ELEMENT HAUPTARRAY 124 ;$71/$72 = B-ELEMENT 125 ;$24/$25 = B-ELEMENT(EINSORTIEREN) 126 ;$26/$27 = TEILFELD ANFANG 127 ;$55/$56 = ENDE+1 DES TEILFELDES 128 ;$5B-$5D = DESKRIPTOR A-ELEMENT 129 ;$5E-$60 = DESKRIPTOR B-ELEMENT 130 ;$69/$6A = SCHRITTWEITE 131 ; $6D = PLATZBEDARF(2,3 ODER 5) 132 ; $6E = RUNDUNGSBYTE BEIM 133 ; HALBIEREN DER SCHRITT- 134 ; WEITE;INTEGER BENOETIGT 135 ; SONDERBEHANDLUNG 136 ; $6F = FLAG NUM./STRINGARRAY 137 ; NUM.=0 STRING=$FF 138 ; 139 ;-------------- NEBENARRAY ------------- 140 ; 141 ;$57/$58 = ANFANG 142 ;$59/$5A = ENDE+1 143 ;$61/$62 = A-ELEMENT 144 ;$4B/$4C = B-ELEMENT 145 ;$63/$64 = B-ELEMENT(EINSORTIEREN) 146 ;$28/$29 = TEILFELDBEGINN 147 ; (TEILFELDENDE UNNOETIG) 148 ;$6B/$6C = SCHRITTWEITE 149 ; $14 = PLATZBEDARF(2,3 ODER 5) 150 ; $15 = RUNDUNGSBYTE 151 ; WIE $6D/$6E HAUPTARRAY 152 ;---------------- START ---------------- 153 ; 154 LDA #3;STACK AUF 155 JSR STEST;6 BYTE TESTEN 156 JSR ARRAY;1.ARRAY HOLEN 157 TXA 158 PHA;TYP MERKEN 159 LDX #3 160 SETAR LDA $57,X;ARRAYGRENZEN 161 STA $FB,X;HAUPTARRAY 162 DEX 163 BPL SETAR 164 INX 165 LDA FLAG1;2 DIM.ARRAY 166 BEQ SETAR1;NEIN 167 LDA FLAG;JA,TEST AUF TEIL- 168 PHP;BEREICH;WENN JA 169 BEQ NORMAL;ENDE UND ANZAHL 170 STX FLAG1;ELEMENTE 2.DIM. 171 JSR ARR3;HOLEN 172 NORMAL JSR PLATZ 173 STA $62;GES.PLATZ DIVID. 174 STX $63;DURCH ANZAHL 175 LDX #$90;ELEMENTE 2.DIM. 176 SEC; = OFFSET AUF 177 JSR $BC49;DAS 1.ELEMENT 178 JSR $BC0C;DER 2.DIMENSION 179 LDY FLAG1 180 BEQ FEHLF 181 JSR $B3A2 182 LDA $61 183 JSR $BB12 184 JSR $B7F7 185 STY OL;OFFSET LOW 186 STA OH;OFFSET HIGH 187 TAX 188 TYA 189 CLC 190 ADC $57 191 TAY 192 TXA 193 ADC $58 194 PLP;NUR TEILARRAY 195 BEQ SETARA;NEIN 196 CMP $FE;TEST,OB ANGABE 197 BCC FEHLF;1.ELEMENT DER 198 BNE SETAR0;2.DIMENS. =0! 199 CPY $FD;WENN NEIN,FEHLER 200 BCS SETAR0 201 FEHLF JMP FEHLER 202 SETARA STA $FE;GANZES ARRAY 203 STY $FD;ENDE NEU SETZEN 204 ;--------------------------------------- 205 SETAR0 LDX #0;DEFAULT FUER 206 SETAR1 STX $14;KEIN 2.ARRAY 207 JSR CHR(null)T 208 BEQ DEL 209 JSR ARR1;2.ARRAY HOLEN 210 TXA;PLATZBEDARF NACH 211 STA $14;$14 UND 212 LSR;RUNDUNGSBYTE 213 BCS SETR;BERECHNEN 214 LDA #$FF;-INTEGER- 215 SETR STA $15;NEBENARRAY 216 TXA;STARTSCHRITTWEITE 217 ASL;AUF 511 ELEMENTE 218 TAX;HIGH=PLATZ*2-1 219 DEX 220 STX $6C 221 LDA #0;LOW=256-PLATZ 222 SEC 223 SBC $14 224 STA $6B 225 JSR GPLATZ 226 PLA;TEST AUF GLEICHE 227 PHA;ANZAHL VON 228 JSR TEST;ELEMENTEN 229 ;--------------------------------------- 230 DEL LDY #0;DEFAULTWERT 231 STY $2A;NUMER.ARRAY 232 PLA;FUER MITSORTIEREN 233 STA TYPE 234 CMP #3;NUMER.ARRAY 235 BEQ DEL0;NEIN 236 LDX FLAG1;JA,TEST AUF 237 BNE FEHLF;EINDIMENSIONAL 238 BEQ START0 239 ;--------------------------------------- 240 DEL0 LDA $FD;LEERSTRINGS 241 LDX $FE;AM ENDE DES 242 DEL1 SEC;ARRAYS ENTFERNEN 243 SBC #3;NUR WENN HAUPT- 244 BCS DEL2;ARRAY STRING 245 DEX 246 DEL2 STA $55 247 STX $56 248 LDA ($55),Y 249 BNE START;KEIN LEERSTRING 250 LDA $59;NEBENARRAY 251 SEC;VERKLEINERN 252 SBC $14 253 STA $59 254 BCS DEL3 255 DEC $5A 256 DEL3 STX $FE;HAUPTARRAY 257 LDA $55;VERKLEINERN 258 STA $FD 259 CMP $FB;TEST OB ARRAY- 260 BNE DEL1;ANFANG SCHON 261 CPX $FC;ERREICHT IST 262 BNE DEL1;NEIN,WEITERMACHEN 263 ; 264 RTS;****** ENDE ****** 265 ; *NUR LEERSTRINGS * 266 ;------------ SORTIERBEGINN ------------ 267 ; 268 START LDA TYPE; 269 DEY;STRING=$FF 270 START0 STY NUMFL;NUM.=0 271 LSR;RUNDUNGSBYTE 272 BCS START1;BERECHNEN 273 LDA #$FF;--INTEGER 274 START1 STA RUND 275 LDA TYPE 276 ASL;STARTSCHRITT- 277 TAX;WEITE AUF 511 278 DEX;ELEMENTE SETZEN 279 LDA #0;(WIE OBEN) 280 SEC 281 SBC TYPE 282 STA $69 283 STX $6A 284 LDA 53280;RAHMENFARBE 285 PHA;MERKEN 286 ;--------------------------------------- 287 BIG LSR $6A;SCHRITTWEITE 288 LDA $69;HALBIEREN 289 ROR;START MIT 255 ELEM. 290 BIT RUND;TEST AUF INTEGER 291 BVC BIGA;NEIN 292 AND #$FE;JA,BIT 0 LOESCHEN 293 CLC;UND KEIN UEBERTRAG 294 BIGA BCC BIGB 295 SBC RUND 296 BIGB TAX 297 BNE BIG1 298 PLA 299 STA 53280 300 RTS;****** ENDE ****** 301 BIG1 STA $69 302 INC 53280;BLINKEN 303 CLC 304 LDA $FB;TEILFELDSTART 305 TAX;=ARRAYANFANG 306 ADC $69;LOW IN X-REG 307 STA $55;HIGH IN Y-REG 308 LDA $FC;+SCHRITTW. 309 TAY;=TEILFELDENDE 310 ADC $6A 311 STA $56 312 LDA $14 313 BEQ SET3 314 LSR $6C;SCHRITTWEITE 315 LDA $6B;NEBENARRAY 316 ROR;HALBIEREN 317 BIT $15;TEST AUF INTEGER 318 BVC BIG2;NEIN 319 AND #$FE;JA,BIT 0 LOESCHEN 320 CLC;UND KEIN UEBERTRAG 321 BIG2 BCC BIG3 322 SBC $15 323 BIG3 STA $6B 324 LDA $57 325 STA $4B 326 STA $28 327 LDA $58 328 BNE SET2A;UNBEDINGTER SPRUNG 329 ;--------------------------------------- 330 SET LDA $26;NAECHSTES TEILFELD 331 LDY $27;BEARBEITEN 332 CLC 333 ADC TYPE 334 TAX 335 BCC SET1 336 INY 337 SET1 CMP $55;WENN ALLE TEIL- 338 BNE SET2;FELDER SORTIERT, 339 CPY $56;DANN SCHRITTWEITE 340 BEQ BIG;HALBIEREN 341 SET2 LDA $14 342 BEQ SET3 343 CLC 344 ADC $28 345 STA $28 346 STA $4B 347 LDA $29 348 ADC #0 349 SET2A STA $29 350 STA $4C 351 SET3 TXA 352 STA $26 353 STY $27 354 CLC 355 BIT NUMFL;NUMER.ARRAY 356 BVS W1;NEIN 357 JSR ZAHL;JA 358 BCS SET 359 ;--------------------------------------- 360 WORK CLC;SORTIEREN BIS ZUM 361 LDA $71;ERSTEN TAUSCH 362 LDY $72;B-ELEMENT($71/$72) 363 W1 STA $22;WIRD ZU A-ELEMENT 364 ADC $69;+SCHRITTWEITE 365 TAX;= B-ELEMENT 366 TYA 367 ADC $6A 368 CMP $FE;TEST,OB B-ELEMENT 369 BCC NEXT;>ARRAYENDE, 370 BNE SET;WENN JA,DANN 371 CPX $FD 372 BCS SET;NAECHSTES TEILFELD 373 NEXT STA $25 374 STY $23 375 STX $24 376 STA $72 377 STX $71 378 LDY $14 379 BEQ VERGL 380 LDA $4B 381 STA $61 382 ADC $6B 383 STA $63 384 STA $4B 385 LDA $4C 386 STA $62 387 ADC $6C 388 STA $64 389 STA $4C 390 ;--------------------------------------- 391 LDY #0 392 VERGL LDA ($24),Y;DESKRIPTOR 393 B0 BEQ WORK;B-ELEMENT NACH 394 STA $5E;$5E-$60;WENN 395 INY;LAENGE=0,DANN 396 LDA ($24),Y;NAECHSTES ELEMENT 397 STA $5F 398 INY 399 LDA ($24),Y 400 STA $60 401 ;--- EINSPRUNG EINSORTIEREN (LDY #2) --- 402 VERS LDA ($22),Y;DESKRIPTOR 403 STA $5D;A-ELEMENT NACH 404 DEY;$5B-$5D;WENN 405 LDA ($22),Y;LAENGE=0,DANN 406 STA $5C;TAUSCHEN 407 DEY;Y-REG. = 0 408 LDA ($22),Y 409 STA $5B 410 BEQ SWAP 411 CMP $5E;VERGLEICHSLAENGE 412 BEQ VER1;NACH X-REG. 413 BCC VER1;HOLEN 414 LDA $5E 415 VER1 TAX 416 ;--------------------------------------- 417 LOOP LDA ($5C),Y;STRINGVERGLEICH 418 CMP ($5F),Y;FUER 1.DIMENSION 419 B1 BCC WORK+1 420 BNE SWAP 421 INY 422 DEX 423 BNE LOOP 424 LDY $5B 425 CPY $5E 426 BCC WORK+1;WENN GLEICH,DANN 427 BNE SWAP 428 LDX FLAG1;TEST AUF 2.DIM. 429 BEQ B0;NEIN,NACH "WORK" 430 ;--------------------------------------- 431 STX $2A;DESKRIPTOREN DER 432 JSR D2SET;2.DIMENSION 433 ZL DEC $2A;SETZEN UND 434 B2 BEQ B0;VERGLEICH NACH 435 JSR DSET;DEN ELEMENTEN 436 LDY #2;ROUTINE IST 437 Z1 LDA ($47),Y;SELBSTMODI- 438 STA V1,Y;FIZIEREND 439 LDA ($49),Y 440 STA V2,Y 441 DEY 442 BNE Z1 443 LDA ($49),Y 444 B4 BEQ B0 445 STA $46 446 LDA ($47),Y 447 BEQ SWAP 448 STA $45 449 CMP $46 450 BCC V0 451 LDA $46 452 V0 TAX 453 V1 LDA $4711,Y;DUMMY-WERT 454 V2 CMP $0815,Y; " 455 BCC B1 456 BNE SWAP 457 INY 458 DEX 459 BNE V1 460 LDY $45 461 CPY $46 462 BCC B1 463 BEQ ZL 464 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 465 SWAP LDY FLAG1;TEST 2[171][134]ENSI[145]AL 466 BEQ SWAP1;NEIN 467 JSR SWAPD2;JA,TAUSCHEN 468 SWAP1 LDY $14;TEST NEBENARRAY 469 BEQ SWAP3;NEIN 470 DEY;JA,TAUSCHEN 471 SWAP2 LDA ($61),Y 472 TAX 473 LDA ($63),Y 474 STA ($61),Y 475 TXA 476 STA ($63),Y 477 DEY 478 BPL SWAP2 479 INY;Y[171]REG.[178]0 480 SEC 481 LDA $61;NEBENARRAY 482 STA $63;ZUR EINS[176][171] 483 SBC $6B;TIE[138]G 484 STA $61;V[176]BEREITEN 485 LDA $62;SIEHE PRG.[171] 486 STA $64;TEIL S[176]T 487 SBC $6C 488 STA $62 489 SWAP3 LDA $5B;HAUPTARRAY 490 STA ($24),Y;DESKRIP[164]REN 491 LDA $5E;TAUSCHEN 492 STA ($22),Y; 493 INY 494 LDA $5C 495 STA ($24),Y 496 LDA $5F 497 STA ($22),Y 498 INY;Y[171]REG.[178]2 499 LDA $5D 500 STA ($24),Y 501 LDA $60 502 STA ($22),Y 503 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 504 S[176]T LDA $22;NACH LINKS EINS[176][171] 505 LDX $23;TIEREN,BIS KEIN 506 CPX $27;TAUSCH ERFOLGT BZW 507 BNE SO1;DIE LINKE TEILFELD 508 CMP $26;GRENZE ERREICHT 509 BEQ B4;IST.DESKRIP[164]R DES 510 SO1 STA $24;EINZUS[176]TIER[128]EN 511 STX $25;ELEMENTS BLEIBT IN 512 SBC $69;$5E[171]$60.B[171]ELEMENT 513 STA $22;WIRD DURCH ZEIGER 514 TXA;$24[173]$25 GESETZT. 515 SBC $6A;ZEIGER $71[173]$72 516 STA $23;WIRD NICHT 517 JMP VERS;GEA[128]ERT ! 518 ; 519 ;[171][171][171][171][171][171][171][171][171][171][171][171] UNTERPROGRAMME [171][171][171][171][171][171][171][171][171][171][171] 520 ; 521 ARRAY LDA #0;[150]AULTWERT FUER 522 STA FLAG;GANZES ARRAY 523 STA FLAG1;[150]AULT 1.[134]. 524 JSR CHR[203]T;[136]ZTES ZEICHEN 525 CMP #"#";NUR TEILARRAY 526 BNE ARR1;NEIN 527 JSR $B79B;1 ODER 2 [134]. 528 DEX 529 STX FLAG1;FLAGGE 1[173]2 [134]. 530 DEC FLAG;FLAGGE TEILS[176]T. 531 ARR1 JSR KOMMA 532 ARR2 JSR TERM;NICHT $B08B !!!! 533 LDY FLAG 534 BNE TEIL1 535 ;[171][171][171][171][171][171][171][171] GANZES ARRAY S[176]TIEREN [171][171][171][171][171][171][171] 536 ARR3 LDA $2F;AB ANFANG DER 537 LDX $30;ARRAYS MIT DER 538 GANZ STA $57;SUCHE BEGINNEN 539 STX $58 540 CMP $31;WENN [128]E DER 541 BNE GANZ0;ARRAYS ERREICHT, 542 CPX $32;DANN NICHT 543 BEQ FEHLER;GEFUNDEN,FEHLER ! 544 GANZ0 LDY #0 545 LDA ($57),Y 546 INY 547 CMP $45;VARIAB[195]NAME 548 BNE GANZ1 549 LDA ($57),Y 550 CMP $46 551 GANZ1 PHP;WENN GEFUNDEN,DANN 552 INY;ZEROFLAG GESETZT 553 LDA ($57),Y;[128]E NACH $59[173]$5A 554 CLC 555 ADC $57 556 STA $59 557 INY 558 LDA ($57),Y 559 ADC $58 560 STA $5A 561 TAX 562 LDA $59 563 PLP;TEST,OB GEFUNDEN 564 BNE GANZ;NAECHSTES ARRAY 565 INY;[171][171]ARRAY GEFUNDEN 566 LDA ($57),Y;TEST,OB ARRAY 567 CMP #1;EIN[134]ENSI[145]AL 568 BEQ GANZ4;JA,DANN OK 569 CMP #2 570 BNE FEHLER 571 LDA FLAG1 572 BEQ GANZ3 573 FEHLER LDX #$19;[129]MULA [164]O 574 JMP ($300);KOMPLEX AUSGEBEN 575 GANZ3 INY 576 LDA ($57),Y 577 BNE FEHLER 578 INY 579 LDA ($57),Y 580 STA FLAG1 581 LDA #9;9 582 .BYTE $2C;BZW 583 GANZ4 LDA #7;7 BYTE ZU 584 CLC;ANFANG ADDIEREN 585 ADC $57;UM AUF 1.DESKR. 586 STA $57;ZU ZEIGEN 587 BCC NAME 588 INC $58 589 ; 590 NAME LDX #5;SPEZ.PLATZBEDARF 591 LDA $46;AUS VARIAB[195]NAME 592 BPL NAME1;BERECHNEN UND INS 593 DEX;X[171]REGISTER 594 DEX;[181]EGER [178] 2 595 NAME1 LDA $45;STRING [178] 3 596 BPL NAME2;REAL [178] 5 597 DEX 598 NAME2 RTS 599 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 600 ;[171][171] BEREICH FUER TEILS[176]TIE[138]G HO[195] [171][171] 601 ; 602 TEIL1 LDY #3 603 TEIL2 LDA $45,Y 604 PHA;NAME UND ANFANG 605 DEY;AUF STACK 606 BPL TEIL2 607 JSR KOMMA;[128]E HO[195] 608 JSR TERM 609 JSR NAME;ANGEGEBENES 610 TXA;ELEMENT AUCH NOCH 611 CLC;MITS[176]TIEREN 612 ADC $47 613 STA $59 614 LDY $48 615 BCC TEIL3 616 INY 617 TEIL3 STY $5A 618 PLA;TEST AUF 619 CMP $45;GLEICHEN NAMEN 620 BNE FEHLER 621 PLA 622 CMP $46 623 FEHLA BNE FEHLER 624 PLA;LOW[171]BYTE ANFANG 625 TAY 626 PLA ;HIGH[171]BYTE ANFANG 627 CMP $30;TEST,OB IM 628 BCC FEHLER;BEREICH DER 629 BNE TEIL4;ARRAYS 630 CPY $2F 631 BCC FEHLER 632 TEIL4 STA $58 633 STY $57 634 CMP $5A;TEST,OB 635 BCC NAME2;ANFANG [179] [128]E 636 BNE FEHLER 637 CPY $59 638 FEHLB BCS FEHLER 639 RTS 640 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 641 LTEST LSR;GES.PLATZ 642 [175] #2;HAUPTARRAY 643 PHP;[172]SPEZ.PLATZ 644 LDA $22;NEBENARRAY 645 ASL; [178] 646 TAX;GES.PLATZ 647 LDA $23;NEBENARRAY 648 ROL;[172]SPEZ.PLATZ 649 BCS FEHLB;HAUPTARRAY 650 TAY;S[145]ST FEHLER ! 651 PLP;[171][171][171][171][171][171][171][171][171][171][171][171][171][171] 652 BCC LT2;[181]EGER 653 BEQ LT1;STRING 654 TXA;REAL 655 ASL 656 TAX 657 TYA 658 ROL 659 TAY 660 FEHLC BCS FEHLB 661 LT1 CLC 662 TXA 663 ADC $22 664 TAX 665 TYA 666 ADC $23 667 TAY 668 LT2 RTS 669 ; 670 TEST JSR LTEST;EINSP[138]G 671 STX $24;TEST AUF GLEICHE 672 STY $25;ELEMENTZAHL 673 LDA $69;S."LTEST" 674 STA $22 675 LDA $6A 676 STA $23 677 LDA $14 678 JSR LTEST 679 CPY $25 680 BNE FEHLA 681 CPX $24 682 FEHLD BNE FEHLA 683 LDA $FB;TEST OB BEIDE 684 CMP $57;ARRAYS GLEICH [191]D 685 BNE OK1;[178][158]52000,A$,A$ 686 LDA $FC;WENN JA,FEHLER 687 CMP $58 688 BEQ FEHLB 689 OK1 RTS 690 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 691 SWAPD2 DEY;ALLE ELEMENTE 692 STY $2A;DER 2.[134]. 693 JSR D2SET;TAUSCHEN 694 D1 JSR DSET 695 LDY #2 696 D2 LDA ($47),Y 697 TAX 698 LDA ($49),Y 699 STA ($47),Y 700 TXA 701 STA ($49),Y 702 D4 DEY;EINSP[138]G NUM. 703 BPL D2;NEBENARRAY 704 DEC $2A;TAUSCHEN 705 BNE D1 706 RTS 707 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 708 DSET LDA $47;DESKRIP[164]REN 709 CLC;FUER ELEMENTE 710 ADC OL;DER 2.[134]. 711 STA $47;BERECHNEN 712 LDA $48 713 ADC OH 714 STA $48 715 CLC 716 LDA $49 717 ADC OL 718 STA $49 719 LDA $4A 720 ADC OH 721 STA $4A 722 RTS 723 ; 724 D2SET LDY #3;V[176]BEREITUNG 725 D3 LDA $22,Y;AUF 1.ELEMENT 726 STA $47,Y;DER 2.[134]ENSI[145] 727 DEY 728 BPL D3 729 RTS 730 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 731 GPLATZ LDA $FD;GESAMTPLATZ[171] 732 SEC;BEDARF FUER 733 SBC $FB;HAUPTARRAY 734 STA $69;BERECHNEN 735 LDA $FE 736 SBC $FC 737 STA $6A 738 PLATZ LDA $59;WIE OBEN FUER 739 SEC;NEBENARRAY 740 SBC $57 741 STA $22 742 TAX 743 LDA $5A 744 SBC $58 745 STA $23 746 BLE RTS 747 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 748 FLAG NOP;FLAGGE TEILARRAY 749 FLAG1 NOP;FLAGGE 2 [134]. 750 OL NOP;OFFSET AUF 1. 751 OH NOP;ELEMENT 2.[134]. 752 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 753 ;[171][171][171][171][171][171][171][171] NUMER.ARRAY S[176]TIEREN [171][171][171][171][171][171][171][171] 754 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 755 BL LDA $71;VERGL ROUTINEN 756 LDY $72;"WORK" BIS "SORT" 757 CLC 758 ZAHL STA $5B;A[171]ELEMENT 759 STY $5C 760 ADC $69 761 TAX 762 TYA 763 ADC $6A 764 CMP $FE 765 BCC BL1 766 BNE BLE 767 CPX $FD 768 BCS BLE 769 BL1 TAY 770 STA $72;B[171]ELEMENT 771 STX $71;GROSSE SCHLE[139]E 772 STA $5E;B[171]ELEMENT 773 STX $5D;EINS[176]TIEREN 774 LDA $14 775 BEQ ZVER 776 LDA $4B 777 STA $47 778 ADC $6B 779 STA $4B 780 STA $49 781 LDA $4C 782 STA $48 783 ADC $6C 784 STA $4C 785 STA $4A 786 ; 787 ZVER TXA 788 BIT [138]D;WENN [138]D[178]$FF 789 BVS [181];DANN [181]EGER ! 790 JSR $BBA2;B[171]ELEM.IN FAC 791 LDA $5B;VERGL.MIT 792 LDY $5C;A[171]ELEMENT 793 ZV1 JSR $BC5B 794 TAX 795 BEQ BL 796 CMP FLAG2 797 ZVB1 BEQ BL 798 ZTAU LDY TYPE 799 DEY 800 SZ1 LDA ($5B),Y 801 TAX 802 LDA ($5D),Y 803 STA ($5B),Y 804 TXA 805 STA ($5D),Y 806 DEY 807 BPL SZ1 808 LDY $14 809 BEQ ZV2 810 INC $2A 811 JSR D4 812 ;[171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171][171] 813 ZV2 LDA $5B;ENTSPR."SORT" 814 LDY $5C;B[171]ELEMENT BLEIBT 815 CPY $27;IM FAC 816 BNE ZV3 817 CMP $26 818 BEQ BL 819 ZV3 STA $5D 820 STY $5E 821 SBC $69 822 TAX 823 TYA 824 SBC $6A 825 TAY 826 ZV3A STX $5B 827 STY $5C 828 LDA $14 829 BEQ ZV4 830 LDA $47 831 SEC 832 STA $49 833 SBC $6B 834 STA $47 835 LDA $48 836 STA $4A 837 SBC $6C 838 STA $48 839 ZV4 TXA 840 BIT [138]D 841 BVC ZV1 842 ; 843 [181] LDX FLAG2 844 LDY #0 845 I1 LDA ($5B),Y;VERGLEICH 846 CMP ($5D),Y;[181]EGER 847 BCC KL;KLEINER 848 BNE GR;GROESSER 849 INY 850 CPY #2 851 BNE I1 852 BEQ ZVB1 853 GR TXA;ERGEBNIS 854 E[176] #$FF;HERUMDREHEN 855 TAX;WIEDER NACH X[171]REG. 856 KL TXA 857 BMI ZTAU 858 JMP BL 859 ; 860 FLAG2 .BYTE 1; 1 [178]KLEINSTES 861 ; 255[178]GROESSTES 862 ; ELEMENT AN 863 ; ARRAYANFANG