1 REM Ins{nd av Lars-Erik N{sman <1007> 1985-10-27 18.54.00 100 ! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 110 ! Program ..... TESTSORT.80X 120 ! Utg}va 1.0 1985-10-27 130 ! av (c) Lars-Erik N{sman 140 ! Ins{nt av Lars-Erik N{sman, medlem 1007 150 ! Program f|r sortering av str{ngar, skrivet i maskinkod. Kan anv{ndas f|r 160 ! i stort sett vilken rutin som helst som beh|ver snabbas upp. Beskrivning 170 ! f|r utnyttjande av asseblerrutinen finns i programmet. 180 ! ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 190 ! 200 ! K{llkod finns f|r den som {r intreserad, sorterar ej ] [ \ korrekt. 210 ! 220 INTEGER : EXTEND 230 ; CHR$(12) 240 ; CUR(0,0) ' TESTSORT  ASSEMBLERSORTERING' 250 ; CUR(1,0) STRING$(80,ASCII('-')) 260 DIM P$(999)=10 270 GOSUB 610 280 J=1000 290 GOSUB 440 300 GOTO 320 310 A$="9999999999" : FOR I=0 TO 999 : P$(I)=A$ : A$=SUB$(A$,'1',0) : NEXT I 320 POKE 65522,0,0,0,0 330 ; 'Jag b|rjar sortera';TAB(50) TIME$ 340 ; 350 GOSUB 540 360 ; 'Nu har jag sorterat klart';TAB(50) TIME$ 370 ; 380 ; 'Tryck p} en tangent f|r att verifiera resultatet' 390 GET S$ 400 FOR I=0 TO 999 410 ; P$(I) ' '; 420 NEXT I 430 END 440 RANDOMIZE 450 POKE 65522,0,0,0,0 460 ; 'Jag l{gger in 1000 slumptal 10 siffror';TAB(50) TIME$ 470 FOR I=0 TO 999 : FOR K=1 TO 10 : P$(I)=P$(I)+CHR$(INT(10*RND+48)) : NEXT K : NEXT I 480 ; 490 ; 'Nu {r det K L A R T ! ';TAB(50);TIME$ 500 ; 510 ; 'SORTERING' 520 ; STRING$(80,ASCII('-')) 530 RETURN 540 Z=VARPTR(P$(0)) ! Leta reda p} var P$() finns 550 POKE 64006,Z,SWAP%(Z) ! Startadress till P$() 560 POKE 64000,J,SWAP%(J) ! Antal str{ngar 570 POKE 64002,J,SWAP%(J) ! Antal str{ngar 580 POKE 64004,10,SWAP%(10) ! Str{ng-l{ngd 590 Z=CALL(64016) 600 RETURN 610 POKE 64000,230,1,0,0,229,1,230,1,230,1,17,0,63,210 620 POKE 64014,63,210,42,6,250,229,42,4,250,229,175,42,2,250 630 POKE 64028,124,31,103,125,31,111,34,2,250,180,32,3,193,209 640 POKE 64042,201,235,42,0,250,125,147,111,124,154,103,34,4,250 650 POKE 64056,33,1,0,34,6,250,34,8,250,45,193,197,25,11 660 POKE 64070,120,177,32,250,34,10,250,235,193,225,229,197,34,12 670 POKE 64084,250,34,14,250,235,25,235,193,197,26,150,32,9,35 680 POKE 64098,19,11,120,177,32,245,24,53,48,51,197,70,26,119 690 POKE 64112,120,18,35,19,193,11,120,177,32,242,42,2,250,124 700 POKE 64126,47,87,125,47,95,42,8,250,25,48,22,35,34,8 710 POKE 64140,250,42,14,250,235,42,10,250,123,149,111,122,156,103 720 POKE 64154,34,14,250,24,188,42,6,250,35,34,6,250,34,8 730 POKE 64168,250,235,42,4,250,125,147,124,154,218,24,250,42,12 740 POKE 64182,250,209,213,25,235,42,10,250,235,24,145,42,41,254 750 POKE 64196,126,254,246,32,23,35,126,254,80,32,17,35,35,35 760 POKE 64210,78,35,70,3,3,10,111,3,10,103,34,6,250,201 770 POKE 64224,35,24,225,33,237,250,1,28,0,205,11,0,201,27 780 POKE 64238,61,33,37,68,105,115,107,32,77,97,115,116,101,114 790 POKE 64252,32,40,67,41,32,76,46,78,123,115,109,97,110,0 800 POKE 64266,0,56,48,49,53 810 RETURN