home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh1x
/
sh12a.d64
/
flash-sort.src
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
15KB
|
765 lines
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