Jump to content
IGNORED

So, what about strings?


Recommended Posts

42 minutes ago, drpeter said:

So, it compiles from source to an intermediate code, from which as I understand it the original source cannot be readily reconstructed.

Nothing inherently wrong with that, of course, but not to my mind an interpreted BASIC in the usual sense.

I guess one could however argue that BASICs like ATARI BASIC that are pre-tokenised are also, while not going so far as Fast Basic in compiling to an intermediate code, also not exactly like BASICs such as Microsoft, which are only parsed and interpreted at all at runtime.

It is definitely very different than regular BASIC interpreter you are used to.
Bytecode interpreters work more like an emulator of a virtual CPU, and the compiler generates code for the virtual CPU.
 

Link to comment
Share on other sites

On 8/3/2019 at 5:26 PM, dmsc said:

Hi!

 

Well, I added two "hacks" to FastBasic, included in the attachment, that allows doing this little benchmark:

- You can include strings in DATA bytes, those are included directly in the byte data.

- You can use the function "$" to cast any pointer (integer) to a string, this allows directly reading strings from any position.

 

So, a simple example is:


DATA x() Byte = "Hello", "Atariage"

? x(0)   ' Prints 5, the length of "Hello"
? x(6)   ' Prints 8

s1 = adr(x)

? $(s1)   ' Prints "Hello"
? $(s1+6) ' Pirnts "Atariage"

With this, the following program performs the sort in 24.2 seconds (using the cross-compiler) or 26.5 seconds (with the Atari IDE), both in NTSC with the screen turned on. But, I used Shell sort, this is about twice faster (and simpler) than the "comb sort" in the original.

 

  Reveal hidden contents


' Array is from 0 to N
n = 891 - 1

' All our data
data x() byte = "SMITH","JOHNSON","WILLIAMS","JONES",
data     byte = "BROWN","DAVIS","MILLER","WILSON","MOORE","TAYLOR",
data     byte = "ANDERSON","THOMAS","JACKSON","WHITE","HARRIS","MARTIN",
data     byte = "THOMPSON","GARCIA","MARTINEZ","ROBINSON","CLARK","RODRIGUEZ",
data     byte = "LEWIS","LEE","WALKER","HALL","ALLEN","YOUNG",
data     byte = "HERNANDEZ","KING","WRIGHT","LOPEZ","HILL","SCOTT",
data     byte = "GREEN","ADAMS","BAKER","GONZALEZ","NELSON","CARTER",
data     byte = "MITCHELL","PEREZ","ROBERTS","TURNER","PHILLIPS","CAMPBELL",
data     byte = "PARKER","EVANS","EDWARDS","COLLINS","STEWART","SANCHEZ",
data     byte = "MORRIS","ROGERS","REED","COOK","MORGAN","BELL",
data     byte = "MURPHY","BAILEY","RIVERA","COOPER","RICHARDSON","COX",
data     byte = "HOWARD","WARD","TORRES","PETERSON","GRAY","RAMIREZ",
data     byte = "JAMES","WATSON","BROOKS","KELLY","SANDERS","PRICE",
data     byte = "BENNETT","WOOD","BARNES","ROSS","HENDERSON","COLEMAN",
data     byte = "JENKINS","PERRY","POWELL","LONG","PATTERSON","HUGHES",
data     byte = "FLORES","WASHINGTON","BUTLER","SIMMONS","FOSTER","GONZALES",
data     byte = "BRYANT","ALEXANDER","RUSSELL","GRIFFIN","DIAZ","HAYES",
data     byte = "MYERS","FORD","HAMILTON","GRAHAM","SULLIVAN","WALLACE",
data     byte = "WOODS","COLE","WEST","JORDAN","OWENS","REYNOLDS",
data     byte = "FISHER","ELLIS","HARRISON","GIBSON","MCDONALD","CRUZ",
data     byte = "MARSHALL","ORTIZ","GOMEZ","MURRAY","FREEMAN","WELLS",
data     byte = "WEBB","SIMPSON","STEVENS","TUCKER","PORTER","HUNTER",
data     byte = "HICKS","CRAWFORD","HENRY","BOYD","MASON","MORALES",
data     byte = "KENNEDY","WARREN","DIXON","RAMOS","REYES","BURNS",
data     byte = "GORDON","SHAW","HOLMES","RICE","ROBERTSON","HUNT",
data     byte = "BLACK","DANIELS","PALMER","MILLS","NICHOLS","GRANT",
data     byte = "KNIGHT","FERGUSON","ROSE","STONE","HAWKINS","DUNN",
data     byte = "PERKINS","HUDSON","SPENCER","GARDNER","STEPHENS","PAYNE",
data     byte = "PIERCE","BERRY","MATTHEWS","ARNOLD","WAGNER","WILLIS",
data     byte = "RAY","WATKINS","OLSON","CARROLL","DUNCAN","SNYDER",
data     byte = "HART","CUNNINGHAM","BRADLEY","LANE","ANDREWS","RUIZ",
data     byte = "HARPER","FOX","RILEY","ARMSTRONG","CARPENTER","WEAVER",
data     byte = "GREENE","LAWRENCE","ELLIOTT","CHAVEZ","SIMS","AUSTIN",
data     byte = "PETERS","KELLEY","FRANKLIN","LAWSON","FIELDS","GUTIERREZ",
data     byte = "RYAN","SCHMIDT","CARR","VASQUEZ","CASTILLO","WHEELER",
data     byte = "CHAPMAN","OLIVER","MONTGOMERY","RICHARDS","WILLIAMSON","JOHNSTON",
data     byte = "BANKS","MEYER","BISHOP","MCCOY","HOWELL","ALVAREZ",
data     byte = "MORRISON","HANSEN","FERNANDEZ","GARZA","HARVEY","LITTLE",
data     byte = "BURTON","STANLEY","NGUYEN","GEORGE","JACOBS","REID",
data     byte = "KIM","FULLER","LYNCH","DEAN","GILBERT","GARRETT",
data     byte = "ROMERO","WELCH","LARSON","FRAZIER","BURKE","HANSON",
data     byte = "DAY","MENDOZA","MORENO","BOWMAN","MEDINA","FOWLER",
data     byte = "BREWER","HOFFMAN","CARLSON","SILVA","PEARSON","HOLLAND",
data     byte = "DOUGLAS","FLEMING","JENSEN","VARGAS","BYRD","DAVIDSON",
data     byte = "HOPKINS","MAY","TERRY","HERRERA","WADE","SOTO",
data     byte = "WALTERS","CURTIS","NEAL","CALDWELL","LOWE","JENNINGS",
data     byte = "BARNETT","GRAVES","JIMENEZ","HORTON","SHELTON","BARRETT",
data     byte = "OBRIEN","CASTRO","SUTTON","GREGORY","MCKINNEY","LUCAS",
data     byte = "MILES","CRAIG","RODRIQUEZ","CHAMBERS","HOLT","LAMBERT",
data     byte = "FLETCHER","WATTS","BATES","HALE","RHODES","PENA",
data     byte = "BECK","NEWMAN","HAYNES","MCDANIEL","MENDEZ","BUSH",
data     byte = "VAUGHN","PARKS","DAWSON","SANTIAGO","NORRIS","HARDY",
data     byte = "LOVE","STEELE","CURRY","POWERS","SCHULTZ","BARKER",
data     byte = "GUZMAN","PAGE","MUNOZ","BALL","KELLER","CHANDLER",
data     byte = "WEBER","LEONARD","WALSH","LYONS","RAMSEY","WOLFE",
data     byte = "SCHNEIDER","MULLINS","BENSON","SHARP","BOWEN","DANIEL",
data     byte = "BARBER","CUMMINGS","HINES","BALDWIN","GRIFFITH","VALDEZ",
data     byte = "HUBBARD","SALAZAR","REEVES","WARNER","STEVENSON","BURGESS",
data     byte = "SANTOS","TATE","CROSS","GARNER","MANN","MACK",
data     byte = "MOSS","THORNTON","DENNIS","MCGEE","FARMER","DELGADO",
data     byte = "AGUILAR","VEGA","GLOVER","MANNING","COHEN","HARMON",
data     byte = "RODGERS","ROBBINS","NEWTON","TODD","BLAIR","HIGGINS",
data     byte = "INGRAM","REESE","CANNON","STRICKLAND","TOWNSEND","POTTER",
data     byte = "GOODWIN","WALTON","ROWE","HAMPTON","ORTEGA","PATTON",
data     byte = "SWANSON","JOSEPH","FRANCIS","GOODMAN","MALDONADO","YATES",
data     byte = "BECKER","ERICKSON","HODGES","RIOS","CONNER","ADKINS",
data     byte = "WEBSTER","NORMAN","MALONE","HAMMOND","FLOWERS","COBB",
data     byte = "MOODY","QUINN","BLAKE","MAXWELL","POPE","FLOYD",
data     byte = "OSBORNE","PAUL","MCCARTHY","GUERRERO","LINDSEY","ESTRADA",
data     byte = "SANDOVAL","GIBBS","TYLER","GROSS","FITZGERALD","STOKES",
data     byte = "DOYLE","SHERMAN","SAUNDERS","WISE","COLON","GILL",
data     byte = "ALVARADO","GREER","PADILLA","SIMON","WATERS","NUNEZ",
data     byte = "BALLARD","SCHWARTZ","MCBRIDE","HOUSTON","CHRISTENSEN","KLEIN",
data     byte = "PRATT","BRIGGS","PARSONS","MCLAUGHLIN","ZIMMERMAN","FRENCH",
data     byte = "BUCHANAN","MORAN","COPELAND","ROY","PITTMAN","BRADY",
data     byte = "MCCORMICK","HOLLOWAY","BROCK","POOLE","FRANK","LOGAN",
data     byte = "OWEN","BASS","MARSH","DRAKE","WONG","JEFFERSON",
data     byte = "PARK","MORTON","ABBOTT","SPARKS","PATRICK","NORTON",
data     byte = "HUFF","CLAYTON","MASSEY","LLOYD","FIGUEROA","CARSON",
data     byte = "BOWERS","ROBERSON","BARTON","TRAN","LAMB","HARRINGTON",
data     byte = "CASEY","BOONE","CORTEZ","CLARKE","MATHIS","SINGLETON",
data     byte = "WILKINS","CAIN","BRYAN","UNDERWOOD","HOGAN","MCKENZIE",
data     byte = "COLLIER","LUNA","PHELPS","MCGUIRE","ALLISON","BRIDGES",
data     byte = "WILKERSON","NASH","SUMMERS","ATKINS","WILCOX","PITTS",
data     byte = "CONLEY","MARQUEZ","BURNETT","RICHARD","COCHRAN","CHASE",
data     byte = "DAVENPORT","HOOD","GATES","CLAY","AYALA","SAWYER",
data     byte = "ROMAN","VAZQUEZ","DICKERSON","HODGE","ACOSTA","FLYNN",
data     byte = "ESPINOZA","NICHOLSON","MONROE","WOLF","MORROW","KIRK",
data     byte = "RANDALL","ANTHONY","WHITAKER","OCONNOR","SKINNER","WARE",
data     byte = "MOLINA","KIRBY","HUFFMAN","BRADFORD","CHARLES","GILMORE",
data     byte = "DOMINGUEZ","ONEAL","BRUCE","LANG","COMBS","KRAMER",
data     byte = "HEATH","HANCOCK","GALLAGHER","GAINES","SHAFFER","SHORT",
data     byte = "WIGGINS","MATHEWS","MCCLAIN","FISCHER","WALL","SMALL",
data     byte = "MELTON","HENSLEY","BOND","DYER","CAMERON","GRIMES",
data     byte = "CONTRERAS","CHRISTIAN","WYATT","BAXTER","SNOW","MOSLEY",
data     byte = "SHEPHERD","LARSEN","HOOVER","BEASLEY","GLENN","PETERSEN",
data     byte = "WHITEHEAD","MEYERS","KEITH","GARRISON","VINCENT","SHIELDS",
data     byte = "HORN","SAVAGE","OLSEN","SCHROEDER","HARTMAN","WOODARD",
data     byte = "MUELLER","KEMP","DELEON","BOOTH","PATEL","CALHOUN",
data     byte = "WILEY","EATON","CLINE","NAVARRO","HARRELL","LESTER",
data     byte = "HUMPHREY","PARRISH","DURAN","HUTCHINSON","HESS","DORSEY",
data     byte = "BULLOCK","ROBLES","BEARD","DALTON","AVILA","VANCE",
data     byte = "RICH","BLACKWELL","YORK","JOHNS","BLANKENSHIP","TREVINO",
data     byte = "SALINAS","CAMPOS","PRUITT","MOSES","CALLAHAN","GOLDEN",
data     byte = "MONTOYA","HARDIN","GUERRA","MCDOWELL","CAREY","STAFFORD",
data     byte = "GALLEGOS","HENSON","WILKINSON","BOOKER","MERRITT","MIRANDA",
data     byte = "ATKINSON","ORR","DECKER","HOBBS","PRESTON","TANNER",
data     byte = "KNOX","PACHECO","STEPHENSON","GLASS","ROJAS","SERRANO",
data     byte = "MARKS","HICKMAN","ENGLISH","SWEENEY","STRONG","PRINCE",
data     byte = "MCCLURE","CONWAY","WALTER","ROTH","MAYNARD","FARRELL",
data     byte = "LOWERY","HURST","NIXON","WEISS","TRUJILLO","ELLISON",
data     byte = "SLOAN","JUAREZ","WINTERS","MCLEAN","RANDOLPH","LEON",
data     byte = "BOYER","VILLARREAL","MCCALL","GENTRY","CARRILLO","KENT",
data     byte = "AYERS","LARA","SHANNON","SEXTON","PACE","HULL",
data     byte = "LEBLANC","BROWNING","VELASQUEZ","LEACH","CHANG","HOUSE",
data     byte = "SELLERS","HERRING","NOBLE","FOLEY","BARTLETT","MERCADO",
data     byte = "LANDRY","DURHAM","WALLS","BARR","MCKEE","BAUER",
data     byte = "RIVERS","EVERETT","BRADSHAW","PUGH","VELEZ","RUSH",
data     byte = "ESTES","DODSON","MORSE","SHEPPARD","WEEKS","CAMACHO",
data     byte = "BEAN","BARRON","LIVINGSTON","MIDDLETON","SPEARS","BRANCH",
data     byte = "BLEVINS","CHEN","KERR","MCCONNELL","HATFIELD","HARDING",
data     byte = "ASHLEY","SOLIS","HERMAN","FROST","GILES","BLACKBURN",
data     byte = "WILLIAM","PENNINGTON","WOODWARD","FINLEY","MCINTOSH","KOCH",
data     byte = "BEST","SOLOMON","MCCULLOUGH","DUDLEY","NOLAN","BLANCHARD",
data     byte = "RIVAS","BRENNAN","MEJIA","KANE","BENTON","JOYCE",
data     byte = "BUCKLEY","HALEY","VALENTINE","MADDOX","RUSSO","MCKNIGHT",
data     byte = "BUCK","MOON","MCMILLAN","CROSBY","BERG","DOTSON",
data     byte = "MAYS","ROACH","CHURCH","CHAN","RICHMOND","MEADOWS",
data     byte = "FAULKNER","ONEILL","KNAPP","KLINE","BARRY","OCHOA",
data     byte = "JACOBSON","GAY","AVERY","HENDRICKS","HORNE","SHEPARD",
data     byte = "HEBERT","CHERRY","CARDENAS","MCINTYRE","WHITNEY","WALLER",
data     byte = "HOLMAN","DONALDSON","CANTU","TERRELL","MORIN","GILLESPIE",
data     byte = "FUENTES","TILLMAN","SANFORD","BENTLEY","PECK","KEY",
data     byte = "SALAS","ROLLINS","GAMBLE","DICKSON","BATTLE","SANTANA",
data     byte = "CABRERA","CERVANTES","HOWE","HINTON","HURLEY","SPENCE",
data     byte = "ZAMORA","YANG","MCNEIL","SUAREZ","CASE","PETTY",
data     byte = "GOULD","MCFARLAND","SAMPSON","CARVER","BRAY","ROSARIO",
data     byte = "MACDONALD","STOUT","HESTER","MELENDEZ","DILLON","FARLEY",
data     byte = "HOPPER","GALLOWAY","POTTS","BERNARD","JOYNER","STEIN",
data     byte = "AGUIRRE","OSBORN","MERCER","BENDER","FRANCO","ROWLAND",
data     byte = "SYKES","BENJAMIN","TRAVIS","PICKETT","CRANE","SEARS",
data     byte = "MAYO","DUNLAP","HAYDEN","WILDER","MCKAY","COFFEY",
data     byte = "MCCARTY","EWING","COOLEY","VAUGHAN","BONNER","COTTON",
data     byte = "HOLDER","STARK","FERRELL","CANTRELL","FULTON","LYNN",
data     byte = "LOTT","CALDERON","ROSA","POLLARD","HOOPER","BURCH",
data     byte = "MULLEN","FRY","RIDDLE","LEVY","DAVID","DUKE",
data     byte = "ODONNELL","GUY","MICHAEL","BRITT","FREDERICK","DAUGHERTY",
data     byte = "BERGER","DILLARD","ALSTON","JARVIS","FRYE","RIGGS",
data     byte = "CHANEY","ODOM","DUFFY","FITZPATRICK","VALENZUELA"

' Create our "pointers" array, reading the data above
dim p(n)

? "Reading data... ";
s = TIME
pos = 0
for i=0 to n
  p(i) = adr(x) + pos
  pos = pos + x(pos) + 1
next
? TIME-s ; " jiffies"

? "Sorting... ";
s = TIME
' Sort - using shell-sort
data gaps() = 701, 301, 132, 57, 23, 10, 4, 1
for g=0 to 7
  gap = gaps(g)
  for i=gap to n
    temp = p(i)
    for j=i to gap step -gap
      if $(p(j - gap)) <= $(temp) then exit
      p(j) = p(j - gap)
    next
    p(j) = temp
  next
next
s = TIME - s

' Check that the array is really sorted
? : ? "Checking: ";
for i=0 to n-1
  if $(p(i)) > $(p(i+1))
    ? "Error at "; $(p(i)) ; " > " ; $(p(i+1))
    exit
  endif
next

' Show results
? : ? "Result:"
for i=0 to n
  ? $(p(i)) ; ",";
next

? : ? "Sorting time: "; s; " jiffies"
? "Press any key"
get k

 

 

I included the source ( SORTING.BAS ) and the compiled program ( SORTING.COM ) in the attached ATR.

 

Have Fun!

 

fastbasic.atr 179.64 kB · 5 downloads

Just out of curiosity I replaced the shell sort in the FastBasic sample with a recursive Quicksort routine (attached in QUICKSRT.BAS/.COM) and it looks like it cuts the sort time running through through the IDE by about 2 seconds.

 

I was actually surprised the improvement with wasn't a bit more, but that could have to do with the specifics of the input data.

 

I have never used FastBasic before.  Nice little language.

 

-J

Fast Basic QS.atr

  • Like 2
Link to comment
Share on other sites

5 hours ago, JamesD said:

As I said, I never designed it to benchmark anything but my own code, I never designed it to pick on the Atari. 
This is pretty standard code for a MS BASIC machine. 
I sorted an index, because it's faster than sorting strings, and it could be sorted according to any field in the data statements. 
(...)

 

Guess what?  MS BASIC uses floats for everything on the Apple II, C64, CoCo, MC-10, Plus/4, etc... to use integers, it has to convert from floats to INTs for every index.
All addition, subtraction, multiplication, division... floats. 
Adding a constant to a variable?  It has to be converted from ASCII a byte at a time every time the code is executed, and it converts it to... a FLOAT!
There are no integer data types.  Not only that, but there are two types of floats.  Packed, and unpacked, which the interpreter has to convert between as it even processes floats.
 

(...)

 

Let's put you to the test, then.

 

Attached is a sort routine that I built from zero over the last two days, by simply... being creative.  Have not seen any code, nor I understand the baroque Basic code posted here (except the clean, straightforward FastBasic versions). 

 

I wanted compact, straightforward code, relying on indexed-sorting (no messing with strings' order and content), mathematically bound worst-case performance, zero knowledge of the sample needed, and VERY easy to port to ANY Basic version. I also included a 2^n "cut-the-chase" engine to allow for better performance on larger samples.

 

Here are the results (SURPRISE!!!):

 

A800/Incognito (and Altirra):

 

ROM: XEGS_r04     Atari Basic RevC    S:561 names    Sort: 925.380 sec.    (Antic=OFF)
ROM: XE04_FPfH    MS-Basic II           S:561 names    Sort: 891.205 sec.    (Antic=OFF)
ROM: XE04_FPfH    MS-Basic II           S:561 names    Sort: 744.509 sec.    (Antic=OFF, DEFINT)

ROM: XE04_FPfH    Atari Basic RevC    S:561 names    Sort: 742.706 sec.    (Antic=OFF)
ROM: XE04_FPfH    Altirra Basic 1.56   S:561 names    Sort: 285.697 sec.    (Antic=OFF)

 

Attached are the code samples, which can be immediately imported in Altirra, enabling H: device (on list of devices) and pointing to a folder on your local drive, where you will store these. Boot Altirra with Basic, and issue "ENTER H:SORTBAS7.LST", or boot Microsoft Basic II cart, and issue "LOAD H:SORTBAS7.MSB". Files with extensions ".mst" and ".txt" are Windows-encoded text files for easy viewing out of emulator / hardware.

 

I am really, really looking forward to what comes next...

 

 

sortbas7.lst sortbas7.msb sortbas7.mst sortbas7.txt

Edited by Faicuai
Link to comment
Share on other sites

More really interesting code and results ☺️

 

Although if what has been posted before here has been likened to comparing apples and oranges, I think this is a banana! Not a comb sort, 561 names, and includes both loading and sorting data in timings but not checking or printing.

 

I'm wondering about the XE04_FPfH ROM. Couldn't find this elsewhere on forum or on Google, but I'm assuming is patched in some way? FP=FloatingPoint?

Edited by drpeter
Link to comment
Share on other sites

20 minutes ago, drpeter said:

More really interesting code and results ☺️

 

Although if what has been posted before here has been likened to comparing apples and oranges, I think this is a banana! Not a comb sort, 561 names, and includes both loading and sorting data in timings but not checking or printing.

 

I'm wondering about the XE04_FPfH ROM. Couldn't find this elsewhere on forum or on Google, but I'm assuming is patched in some way? FP=FloatingPoint?

For the sake of clarity:

  1. Yes, it is a banana from my orchard. I came up with up out of plain common sense, occasionally working on it over the last two days.
  2. 561 names so ANYONE can load the test on either real HW (WITH Microsoft Basic II cart, which leaves with you 27Kbytes on SDX 4.49c), or directly on emulation.
  3. Printing routines are there, but they chew up little time (no longer relevant). Line 66 can be moved down to 9X, where printing ends, if you wish so. Use E: widget accelerator provided on my .ATR, many posts before this one.
  4. No need to check. Sort routine fully converges on the fly, and validates itself, as it goes.
  5. Notice how leveled and (almost) IDENTICAL the Microsoft and Atari Basic code is for this sort. Portability is super easy. I am working on FastBasic version, thanks to latest string-handling improvements.
  6. You will find XE04_FPfh (w/ Altirra Floating Point pack, 1200XL Function Keys: for turning ON/OFF DMA, SIO, Int't Char. set, and locking keyboard input), on the original .ATR I posted on this thread eons ago. 
  7. My goal now is not to compare different sort routines, but to evaluate how a seemingly identical code-base performs across different interpreters for the Atari, with minimal adaption needs.
  8. It is clear that the advantages touted for MS-Basic are, in essence, NON-EXISTANT (for Atari). I do wonder, however, how would this perform on other MS-Basic versions, and/or other 6502 machines / interpreters.

 

Have fun!

Edited by Faicuai
  • Like 1
Link to comment
Share on other sites

6 hours ago, Faicuai said:

For the sake of clarity:

  1. Yes, it is a banana from my orchard. I came up with up out of plain common sense, occasionally working on it over the last two days.
  2. 561 names so ANYONE can load the test on either real HW (WITH Microsoft Basic II cart, which leaves with you 27Kbytes on SDX 4.49c), or directly on emulation.
  3. Printing routines are there, but they chew up little time (no longer relevant). Line 66 can be moved down to 9X, where printing ends, if you wish so. Use E: widget accelerator provided on my .ATR, many posts before this one.
  4. No need to check. Sort routine fully converges on the fly, and validates itself, as it goes.A
  5. Notice how leveled and (almost) IDENTICAL the Microsoft and Atari Basic code is for this sort. Portability is super easy. I am working on FastBasic version, thanks to latest string-handling improvements.
  6. You will find XE04_FPfh (w/ Altirra Floating Point pack, 1200XL Function Keys: for turning ON/OFF DMA, SIO, Int't Char. set, and locking keyboard input), on the original .ATR I posted on this thread eons ago. 
  7. My goal now is not to compare different sort routines, but to evaluate how a seemingly identical code-base performs across different interpreters for the Atari, with minimal adaption needs.
  8. It is clear that the advantages touted for MS-Basic are, in essence, NON-EXISTANT (for Atari). I do wonder, however, how would this perform on other MS-Basic versions, and/or other 6502 machines / interpreters.

 

Have fun!

Ah! Thanks. Welcome to the fruit bowl!

 

For the sake of a direct-as-possible comparison, a comb sort based on the code I originally posted (single numeric array of pointers into single name string, separate numeric array to hold sort order) completes the 561 name sort (data loading and sorting) in 555 seconds vs 925 seconds for your code as reported above with the same set-up. Adding the double-check on the sort order and printing results takes it up slightly to 591 seconds. (standard E: device driver)

 

Altirra 3.2, XL Rom rev04 unpatched, ATARI BASIC Rev C, DMA Off

 

As you say for your routine, in my code also there should in theory be no need for the double-check on the sort order as it explicitly drops out of the sort routine only after a full pass with gap of 1 and no exchanges.

 

I agree your point that the time taken for this benchmark is so completely dominated by the sort itself that including the data loading, checking and printing appears not to add very much to it (each only contributing ~3% of the time taken).  That's why I suggested benchmarking the sort alone.

Edited by drpeter
Link to comment
Share on other sites

7 hours ago, Faicuai said:

My goal now is not to compare different sort routines, but to evaluate how a seemingly identical code-base performs across different interpreters for the Atari, with minimal adaption needs.

Back in the day when I was actively programming the Atari on a regular basis, (~1981-1986) I couldn't afford any BASIC other than ATARI BASIC and (very latterly) Turbo BASIC XL.  So it would be gratifying to know retrospectively that I hadn't actually been missing out too much.

 

Always loved programming ATARI BASIC (except sometimes for the speed, which was eventually solved by Turbo BASIC).

 

Never liked MS BASIC much (on other people's machines).

Edited by drpeter
Link to comment
Share on other sites

OK, so here's an interesting pomegranate.

 

I tried Bill Wilkinson's interesting suggestion from COMPUTE! magazine for implementing string arrays simply by holding the data in DATA statements and accessing them using RESTORE A+index: READ X$. https://archive.org/details/BillWilkinsonArticles

 

This, similar to the Fast Basic approach, avoids any need to load the name data into a separate data structure and allows a 48/64K Atari to implement the benchmark for 891 names with bucketloads (nearly 20K) of memory to spare, suggesting that a sort of getting on for 2000 names could be fitted in memory.

 

It appears marginally slower, however, for this number of names at least, than using numeric array pointers into a long string:

 

for 561 name sort: for initialising (including counting the data items, dimensioning and initialising the sort index) + sort, other parameters all as previous post

 

Altirra BASIC 1.56  353 seconds  (DATA statements) vs 320 seconds (numeric pointer array to string)

Atari BASIC Rev.C   689 seconds  (DATA statements) vs 555 seconds (numeric pointer array to string)

Turbo Basic 1.5      200 seconds  (DATA statements) (interpreted, not compiled)

 

For full 891 name sort, parameters as above:

 

Altirra BASIC 1.56  645 seconds  (DATA statements)

Atari BASIC Rev.C   1288 seconds  (DATA statements)

Turbo Basic 1.5      300 seconds  (DATA statements) (interpreted, not compiled)

 

Spoiler

0 POKE 559,0:POKE 20,0:POKE 19,0:POKE 18,0:DIM K$(30),O$(30),CL$(1):GOTO 45
6 RETURN 
10 P=1:F=1.3:G=1:L=0:REM SORT SUBROUTINE
13 L=L+1:P=P*F:G=INT(N/P):IF G<1 THEN G=1
14 NW=N-G:? "PASS ";L;" GAP ";G;"  ";:IF G=1 THEN S=1
15 FOR I=0 TO NW-1:RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+G):READ O$
16 IF K$>O$ THEN T=B(I):B(I)=B(I+G):B(I+G)=T:S=0
21 NEXT I:IF S=1 THEN RETURN 
22 GOTO 13
25 ? : ? "CHECKING SORT...  ";:R=0:FOR I=0 TO N-2:REM CHECK SORT ORDER ROUTINE
26 RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+1):READ O$
27 IF K$>O$ THEN ? "OUT OF ORDER ";K$:R=1
30 NEXT I:? :RETURN 
40 FOR I=0 TO N-1:RESTORE 31001+B(I):READ K$:? K$;" ";:NEXT I:RETURN 
44 REM MAIN
45 N=0:CL$=CHR$(125)
51 REM K$=TEMP,N$=NAME ARRAY,S()=SUBSTRING START PTRS
53 REM CL$=CLEAR SCREEN, POKE 752,1 =SYSTEM CURSOR OFF
55 ? CL$:? "COMB SORT MOST POPULAR SURNAMES":? : ? "LOADING DATA...  ";
56 READ K$:IF K$<>"$" THEN N=N+1:GOTO 56
57 DIM B(N-1)
60 FOR I=0 TO N-1:B(I)=I:NEXT I
70 ? N;" NAMES LOADED":? 
72 IF PEEK(20)>240 THEN 72
75 T1=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
80 GOSUB 10:REM SORT ROUTINE
81 IF PEEK(20)>240 THEN 81
82 T2=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
85 GOSUB 25:REM CHECK SORT ORDER
86 IF PEEK(20)>240 THEN 86
87 T3=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
92 GOSUB 40:REM PRINT SORTED LIST
93 IF PEEK(20)>240 THEN 93
94 T4=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
96 ? : ? : ? "ELAPSED: ";T1;",";T2;",";T3;",";T4;" SECONDS"
98 ? : ? : ? "DONE":POKE 752,0:POKE 559,34:END 
31001 DATA SMITH
31002 DATA JOHNSON
31003 DATA WILLIAMS
31004 DATA JONES
31005 DATA BROWN
31006 DATA DAVIS
31007 DATA MILLER
31008 DATA WILSON
31009 DATA MOORE
31010 DATA TAYLOR
31011 DATA ANDERSON
31012 DATA THOMAS
31013 DATA JACKSON
31014 DATA WHITE
31015 DATA HARRIS
31016 DATA MARTIN
31017 DATA THOMPSON
31018 DATA GARCIA
31019 DATA MARTINEZ
31020 DATA ROBINSON
31021 DATA CLARK
31022 DATA RODRIGUEZ
31023 DATA LEWIS
31024 DATA LEE
31025 DATA WALKER
31026 DATA HALL
31027 DATA ALLEN
31028 DATA YOUNG
31029 DATA HERNANDEZ
31030 DATA KING
31031 DATA WRIGHT
31032 DATA LOPEZ
31033 DATA HILL
31034 DATA SCOTT
31035 DATA GREEN
31036 DATA ADAMS
31037 DATA BAKER
31038 DATA GONZALEZ
31039 DATA NELSON
31040 DATA CARTER
31041 DATA MITCHELL
31042 DATA PEREZ
31043 DATA ROBERTS
31044 DATA TURNER
31045 DATA PHILLIPS
31046 DATA CAMPBELL
31047 DATA PARKER
31048 DATA EVANS
31049 DATA EDWARDS
31050 DATA COLLINS
31051 DATA STEWART
31052 DATA SANCHEZ
31053 DATA MORRIS
31054 DATA ROGERS
31055 DATA REED
31056 DATA COOK
31057 DATA MORGAN
31058 DATA BELL
31059 DATA MURPHY
31060 DATA BAILEY
31061 DATA RIVERA
31062 DATA COOPER
31063 DATA RICHARDSON
31064 DATA COX
31065 DATA HOWARD
31066 DATA WARD
31067 DATA TORRES
31068 DATA PETERSON
31069 DATA GRAY
31070 DATA RAMIREZ
31071 DATA JAMES
31072 DATA WATSON
31073 DATA BROOKS
31074 DATA KELLY
31075 DATA SANDERS
31076 DATA PRICE
31077 DATA BENNETT
31078 DATA WOOD
31079 DATA BARNES
31080 DATA ROSS
31081 DATA HENDERSON
31082 DATA COLEMAN
31083 DATA JENKINS
31084 DATA PERRY
31085 DATA POWELL
31086 DATA LONG
31087 DATA PATTERSON
31088 DATA HUGHES
31089 DATA FLORES
31090 DATA WASHINGTON
31091 DATA BUTLER
31092 DATA SIMMONS
31093 DATA FOSTER
31094 DATA GONZALES
31095 DATA BRYANT
31096 DATA ALEXANDER
31097 DATA RUSSELL
31098 DATA GRIFFIN
31099 DATA DIAZ
31100 DATA HAYES
31101 DATA MYERS
31102 DATA FORD
31103 DATA HAMILTON
31104 DATA GRAHAM
31105 DATA SULLIVAN
31106 DATA WALLACE
31107 DATA WOODS
31108 DATA COLE
31109 DATA WEST
31110 DATA JORDAN
31111 DATA OWENS
31112 DATA REYNOLDS
31113 DATA FISHER
31114 DATA ELLIS
31115 DATA HARRISON
31116 DATA GIBSON
31117 DATA MCDONALD
31118 DATA CRUZ
31119 DATA MARSHALL
31120 DATA ORTIZ
31121 DATA GOMEZ
31122 DATA MURRAY
31123 DATA FREEMAN
31124 DATA WELLS
31125 DATA WEBB
31126 DATA SIMPSON
31127 DATA STEVENS
31128 DATA TUCKER
31129 DATA PORTER
31130 DATA HUNTER
31131 DATA HICKS
31132 DATA CRAWFORD
31133 DATA HENRY
31134 DATA BOYD
31135 DATA MASON
31136 DATA MORALES
31137 DATA KENNEDY
31138 DATA WARREN
31139 DATA DIXON
31140 DATA RAMOS
31141 DATA REYES
31142 DATA BURNS
31143 DATA GORDON
31144 DATA SHAW
31145 DATA HOLMES
31146 DATA RICE
31147 DATA ROBERTSON
31148 DATA HUNT
31149 DATA BLACK
31150 DATA DANIELS
31151 DATA PALMER
31152 DATA MILLS
31153 DATA NICHOLS
31154 DATA GRANT
31155 DATA KNIGHT
31156 DATA FERGUSON
31157 DATA ROSE
31158 DATA STONE
31159 DATA HAWKINS
31160 DATA DUNN
31161 DATA PERKINS
31162 DATA HUDSON
31163 DATA SPENCER
31164 DATA GARDNER
31165 DATA STEPHENS
31166 DATA PAYNE
31167 DATA PIERCE
31168 DATA BERRY
31169 DATA MATTHEWS
31170 DATA ARNOLD
31171 DATA WAGNER
31172 DATA WILLIS
31173 DATA RAY
31174 DATA WATKINS
31175 DATA OLSON
31176 DATA CARROLL
31177 DATA DUNCAN
31178 DATA SNYDER
31179 DATA HART
31180 DATA CUNNINGHAM
31181 DATA BRADLEY
31182 DATA LANE
31183 DATA ANDREWS
31184 DATA RUIZ
31185 DATA HARPER
31186 DATA FOX
31187 DATA RILEY
31188 DATA ARMSTRONG
31189 DATA CARPENTER
31190 DATA WEAVER
31191 DATA GREENE
31192 DATA LAWRENCE
31193 DATA ELLIOTT
31194 DATA CHAVEZ
31195 DATA SIMS
31196 DATA AUSTIN
31197 DATA PETERS
31198 DATA KELLEY
31199 DATA FRANKLIN
31200 DATA LAWSON
31201 DATA FIELDS
31202 DATA GUTIERREZ
31203 DATA RYAN
31204 DATA SCHMIDT
31205 DATA CARR
31206 DATA VASQUEZ
31207 DATA CASTILLO
31208 DATA WHEELER
31209 DATA CHAPMAN
31210 DATA OLIVER
31211 DATA MONTGOMERY
31212 DATA RICHARDS
31213 DATA WILLIAMSON
31214 DATA JOHNSTON
31215 DATA BANKS
31216 DATA MEYER
31217 DATA BISHOP
31218 DATA MCCOY
31219 DATA HOWELL
31220 DATA ALVAREZ
31221 DATA MORRISON
31222 DATA HANSEN
31223 DATA FERNANDEZ
31224 DATA GARZA
31225 DATA HARVEY
31226 DATA LITTLE
31227 DATA BURTON
31228 DATA STANLEY
31229 DATA NGUYEN
31230 DATA GEORGE
31231 DATA JACOBS
31232 DATA REID
31233 DATA KIM
31234 DATA FULLER
31235 DATA LYNCH
31236 DATA DEAN
31237 DATA GILBERT
31238 DATA GARRETT
31239 DATA ROMERO
31240 DATA WELCH
31241 DATA LARSON
31242 DATA FRAZIER
31243 DATA BURKE
31244 DATA HANSON
31245 DATA DAY
31246 DATA MENDOZA
31247 DATA MORENO
31248 DATA BOWMAN
31249 DATA MEDINA
31250 DATA FOWLER
31251 DATA BREWER
31252 DATA HOFFMAN
31253 DATA CARLSON
31254 DATA SILVA
31255 DATA PEARSON
31256 DATA HOLLAND
31257 DATA DOUGLAS
31258 DATA FLEMING
31259 DATA JENSEN
31260 DATA VARGAS
31261 DATA BYRD
31262 DATA DAVIDSON
31263 DATA HOPKINS
31264 DATA MAY
31265 DATA TERRY
31266 DATA HERRERA
31267 DATA WADE
31268 DATA SOTO
31269 DATA WALTERS
31270 DATA CURTIS
31271 DATA NEAL
31272 DATA CALDWELL
31273 DATA LOWE
31274 DATA JENNINGS
31275 DATA BARNETT
31276 DATA GRAVES
31277 DATA JIMENEZ
31278 DATA HORTON
31279 DATA SHELTON
31280 DATA BARRETT
31281 DATA OBRIEN
31282 DATA CASTRO
31283 DATA SUTTON
31284 DATA GREGORY
31285 DATA MCKINNEY
31286 DATA LUCAS
31287 DATA MILES
31288 DATA CRAIG
31289 DATA RODRIQUEZ
31290 DATA CHAMBERS
31291 DATA HOLT
31292 DATA LAMBERT
31293 DATA FLETCHER
31294 DATA WATTS
31295 DATA BATES
31296 DATA HALE
31297 DATA RHODES
31298 DATA PENA
31299 DATA BECK
31300 DATA NEWMAN
31301 DATA HAYNES
31302 DATA MCDANIEL
31303 DATA MENDEZ
31304 DATA BUSH
31305 DATA VAUGHN
31306 DATA PARKS
31307 DATA DAWSON
31308 DATA SANTIAGO
31309 DATA NORRIS
31310 DATA HARDY
31311 DATA LOVE
31312 DATA STEELE
31313 DATA CURRY
31314 DATA POWERS
31315 DATA SCHULTZ
31316 DATA BARKER
31317 DATA GUZMAN
31318 DATA PAGE
31319 DATA MUNOZ
31320 DATA BALL
31321 DATA KELLER
31322 DATA CHANDLER
31323 DATA WEBER
31324 DATA LEONARD
31325 DATA WALSH
31326 DATA LYONS
31327 DATA RAMSEY
31328 DATA WOLFE
31329 DATA SCHNEIDER
31330 DATA MULLINS
31331 DATA BENSON
31332 DATA SHARP
31333 DATA BOWEN
31334 DATA DANIEL
31335 DATA BARBER
31336 DATA CUMMINGS
31337 DATA HINES
31338 DATA BALDWIN
31339 DATA GRIFFITH
31340 DATA VALDEZ
31341 DATA HUBBARD
31342 DATA SALAZAR
31343 DATA REEVES
31344 DATA WARNER
31345 DATA STEVENSON
31346 DATA BURGESS
31347 DATA SANTOS
31348 DATA TATE
31349 DATA CROSS
31350 DATA GARNER
31351 DATA MANN
31352 DATA MACK
31353 DATA MOSS
31354 DATA THORNTON
31355 DATA DENNIS
31356 DATA MCGEE
31357 DATA FARMER
31358 DATA DELGADO
31359 DATA AGUILAR
31360 DATA VEGA
31361 DATA GLOVER
31362 DATA MANNING
31363 DATA COHEN
31364 DATA HARMON
31365 DATA RODGERS
31366 DATA ROBBINS
31367 DATA NEWTON
31368 DATA TODD
31369 DATA BLAIR
31370 DATA HIGGINS
31371 DATA INGRAM
31372 DATA REESE
31373 DATA CANNON
31374 DATA STRICKLAND
31375 DATA TOWNSEND
31376 DATA POTTER
31377 DATA GOODWIN
31378 DATA WALTON
31379 DATA ROWE
31380 DATA HAMPTON
31381 DATA ORTEGA
31382 DATA PATTON
31383 DATA SWANSON
31384 DATA JOSEPH
31385 DATA FRANCIS
31386 DATA GOODMAN
31387 DATA MALDONADO
31388 DATA YATES
31389 DATA BECKER
31390 DATA ERICKSON
31391 DATA HODGES
31392 DATA RIOS
31393 DATA CONNER
31394 DATA ADKINS
31395 DATA WEBSTER
31396 DATA NORMAN
31397 DATA MALONE
31398 DATA HAMMOND
31399 DATA FLOWERS
31400 DATA COBB
31401 DATA MOODY
31402 DATA QUINN
31403 DATA BLAKE
31404 DATA MAXWELL
31405 DATA POPE
31406 DATA FLOYD
31407 DATA OSBORNE
31408 DATA PAUL
31409 DATA MCCARTHY
31410 DATA GUERRERO
31411 DATA LINDSEY
31412 DATA ESTRADA
31413 DATA SANDOVAL
31414 DATA GIBBS
31415 DATA TYLER
31416 DATA GROSS
31417 DATA FITZGERALD
31418 DATA STOKES
31419 DATA DOYLE
31420 DATA SHERMAN
31421 DATA SAUNDERS
31422 DATA WISE
31423 DATA COLON
31424 DATA GILL
31425 DATA ALVARADO
31426 DATA GREER
31427 DATA PADILLA
31428 DATA SIMON
31429 DATA WATERS
31430 DATA NUNEZ
31431 DATA BALLARD
31432 DATA SCHWARTZ
31433 DATA MCBRIDE
31434 DATA HOUSTON
31435 DATA CHRISTENSEN
31436 DATA KLEIN
31437 DATA PRATT
31438 DATA BRIGGS
31439 DATA PARSONS
31440 DATA MCLAUGHLIN
31441 DATA ZIMMERMAN
31442 DATA FRENCH
31443 DATA BUCHANAN
31444 DATA MORAN
31445 DATA COPELAND
31446 DATA ROY
31447 DATA PITTMAN
31448 DATA BRADY
31449 DATA MCCORMICK
31450 DATA HOLLOWAY
31451 DATA BROCK
31452 DATA POOLE
31453 DATA FRANK
31454 DATA LOGAN
31455 DATA OWEN
31456 DATA BASS
31457 DATA MARSH
31458 DATA DRAKE
31459 DATA WONG
31460 DATA JEFFERSON
31461 DATA PARK
31462 DATA MORTON
31463 DATA ABBOTT
31464 DATA SPARKS
31465 DATA PATRICK
31466 DATA NORTON
31467 DATA HUFF
31468 DATA CLAYTON
31469 DATA MASSEY
31470 DATA LLOYD
31471 DATA FIGUEROA
31472 DATA CARSON
31473 DATA BOWERS
31474 DATA ROBERSON
31475 DATA BARTON
31476 DATA TRAN
31477 DATA LAMB
31478 DATA HARRINGTON
31479 DATA CASEY
31480 DATA BOONE
31481 DATA CORTEZ
31482 DATA CLARKE
31483 DATA MATHIS
31484 DATA SINGLETON
31485 DATA WILKINS
31486 DATA CAIN
31487 DATA BRYAN
31488 DATA UNDERWOOD
31489 DATA HOGAN
31490 DATA MCKENZIE
31491 DATA COLLIER
31492 DATA LUNA
31493 DATA PHELPS
31494 DATA MCGUIRE
31495 DATA ALLISON
31496 DATA BRIDGES
31497 DATA WILKERSON
31498 DATA NASH
31499 DATA SUMMERS
31500 DATA ATKINS
31501 DATA WILCOX
31502 DATA PITTS
31503 DATA CONLEY
31504 DATA MARQUEZ
31505 DATA BURNETT
31506 DATA RICHARD
31507 DATA COCHRAN
31508 DATA CHASE
31509 DATA DAVENPORT
31510 DATA HOOD
31511 DATA GATES
31512 DATA CLAY
31513 DATA AYALA
31514 DATA SAWYER
31515 DATA ROMAN
31516 DATA VAZQUEZ
31517 DATA DICKERSON
31518 DATA HODGE
31519 DATA ACOSTA
31520 DATA FLYNN
31521 DATA ESPINOZA
31522 DATA NICHOLSON
31523 DATA MONROE
31524 DATA WOLF
31525 DATA MORROW
31526 DATA KIRK
31527 DATA RANDALL
31528 DATA ANTHONY
31529 DATA WHITAKER
31530 DATA OCONNOR
31531 DATA SKINNER
31532 DATA WARE
31533 DATA MOLINA
31534 DATA KIRBY
31535 DATA HUFFMAN
31536 DATA BRADFORD
31537 DATA CHARLES
31538 DATA GILMORE
31539 DATA DOMINGUEZ
31540 DATA ONEAL
31541 DATA BRUCE
31542 DATA LANG
31543 DATA COMBS
31544 DATA KRAMER
31545 DATA HEATH
31546 DATA HANCOCK
31547 DATA GALLAGHER
31548 DATA GAINES
31549 DATA SHAFFER
31550 DATA SHORT
31551 DATA WIGGINS
31552 DATA MATHEWS
31553 DATA MCCLAIN
31554 DATA FISCHER
31555 DATA WALL
31556 DATA SMALL
31557 DATA MELTON
31558 DATA HENSLEY
31559 DATA BOND
31560 DATA DYER
31561 DATA CAMERON
31562 DATA GRIMES
31563 DATA CONTRERAS
31564 DATA CHRISTIAN
31565 DATA WYATT
31566 DATA BAXTER
31567 DATA SNOW
31568 DATA MOSLEY
31569 DATA SHEPHERD
31570 DATA LARSEN
31571 DATA HOOVER
31572 DATA BEASLEY
31573 DATA GLENN
31574 DATA PETERSEN
31575 DATA WHITEHEAD
31576 DATA MEYERS
31577 DATA KEITH
31578 DATA GARRISON
31579 DATA VINCENT
31580 DATA SHIELDS
31581 DATA HORN
31582 DATA SAVAGE
31583 DATA OLSEN
31584 DATA SCHROEDER
31585 DATA HARTMAN
31586 DATA WOODARD
31587 DATA MUELLER
31588 DATA KEMP
31589 DATA DELEON
31590 DATA BOOTH
31591 DATA PATEL
31592 DATA CALHOUN
31593 DATA WILEY
31594 DATA EATON
31595 DATA CLINE
31596 DATA NAVARRO
31597 DATA HARRELL
31598 DATA LESTER
31599 DATA HUMPHREY
31600 DATA PARRISH
31601 DATA DURAN
31602 DATA HUTCHINSON
31603 DATA HESS
31604 DATA DORSEY
31605 DATA BULLOCK
31606 DATA ROBLES
31607 DATA BEARD
31608 DATA DALTON
31609 DATA AVILA
31610 DATA VANCE
31611 DATA RICH
31612 DATA BLACKWELL
31613 DATA YORK
31614 DATA JOHNS
31615 DATA BLANKENSHIP
31616 DATA TREVINO
31617 DATA SALINAS
31618 DATA CAMPOS
31619 DATA PRUITT
31620 DATA MOSES
31621 DATA CALLAHAN
31622 DATA GOLDEN
31623 DATA MONTOYA
31624 DATA HARDIN
31625 DATA GUERRA
31626 DATA MCDOWELL
31627 DATA CAREY
31628 DATA STAFFORD
31629 DATA GALLEGOS
31630 DATA HENSON
31631 DATA WILKINSON
31632 DATA BOOKER
31633 DATA MERRITT
31634 DATA MIRANDA
31635 DATA ATKINSON
31636 DATA ORR
31637 DATA DECKER
31638 DATA HOBBS
31639 DATA PRESTON
31640 DATA TANNER
31641 DATA KNOX
31642 DATA PACHECO
31643 DATA STEPHENSON
31644 DATA GLASS
31645 DATA ROJAS
31646 DATA SERRANO
31647 DATA MARKS
31648 DATA HICKMAN
31649 DATA ENGLISH
31650 DATA SWEENEY
31651 DATA STRONG
31652 DATA PRINCE
31653 DATA MCCLURE
31654 DATA CONWAY
31655 DATA WALTER
31656 DATA ROTH
31657 DATA MAYNARD
31658 DATA FARRELL
31659 DATA LOWERY
31660 DATA HURST
31661 DATA NIXON
31662 DATA WEISS
31663 DATA TRUJILLO
31664 DATA ELLISON
31665 DATA SLOAN
31666 DATA JUAREZ
31667 DATA WINTERS
31668 DATA MCLEAN
31669 DATA RANDOLPH
31670 DATA LEON
31671 DATA BOYER
31672 DATA VILLARREAL
31673 DATA MCCALL
31674 DATA GENTRY
31675 DATA CARRILLO
31676 DATA KENT
31677 DATA AYERS
31678 DATA LARA
31679 DATA SHANNON
31680 DATA SEXTON
31681 DATA PACE
31682 DATA HULL
31683 DATA LEBLANC
31684 DATA BROWNING
31685 DATA VELASQUEZ
31686 DATA LEACH
31687 DATA CHANG
31688 DATA HOUSE
31689 DATA SELLERS
31690 DATA HERRING
31691 DATA NOBLE
31692 DATA FOLEY
31693 DATA BARTLETT
31694 DATA MERCADO
31695 DATA LANDRY
31696 DATA DURHAM
31697 DATA WALLS
31698 DATA BARR
31699 DATA MCKEE
31700 DATA BAUER
31701 DATA RIVERS
31702 DATA EVERETT
31703 DATA BRADSHAW
31704 DATA PUGH
31705 DATA VELEZ
31706 DATA RUSH
31707 DATA ESTES
31708 DATA DODSON
31709 DATA MORSE
31710 DATA SHEPPARD
31711 DATA WEEKS
31712 DATA CAMACHO
31713 DATA BEAN
31714 DATA BARRON
31715 DATA LIVINGSTON
31716 DATA MIDDLETON
31717 DATA SPEARS
31718 DATA BRANCH
31719 DATA BLEVINS
31720 DATA CHEN
31721 DATA KERR
31722 DATA MCCONNELL
31723 DATA HATFIELD
31724 DATA HARDING
31725 DATA ASHLEY
31726 DATA SOLIS
31727 DATA HERMAN
31728 DATA FROST
31729 DATA GILES
31730 DATA BLACKBURN
31731 DATA WILLIAM
31732 DATA PENNINGTON
31733 DATA WOODWARD
31734 DATA FINLEY
31735 DATA MCINTOSH
31736 DATA KOCH
31737 DATA BEST
31738 DATA SOLOMON
31739 DATA MCCULLOUGH
31740 DATA DUDLEY
31741 DATA NOLAN
31742 DATA BLANCHARD
31743 DATA RIVAS
31744 DATA BRENNAN
31745 DATA MEJIA
31746 DATA KANE
31747 DATA BENTON
31748 DATA JOYCE
31749 DATA BUCKLEY
31750 DATA HALEY
31751 DATA VALENTINE
31752 DATA MADDOX
31753 DATA RUSSO
31754 DATA MCKNIGHT
31755 DATA BUCK
31756 DATA MOON
31757 DATA MCMILLAN
31758 DATA CROSBY
31759 DATA BERG
31760 DATA DOTSON
31761 DATA MAYS
31762 DATA ROACH
31763 DATA CHURCH
31764 DATA CHAN
31765 DATA RICHMOND
31766 DATA MEADOWS
31767 DATA FAULKNER
31768 DATA ONEILL
31769 DATA KNAPP
31770 DATA KLINE
31771 DATA BARRY
31772 DATA OCHOA
31773 DATA JACOBSON
31774 DATA GAY
31775 DATA AVERY
31776 DATA HENDRICKS
31777 DATA HORNE
31778 DATA SHEPARD
31779 DATA HEBERT
31780 DATA CHERRY
31781 DATA CARDENAS
31782 DATA MCINTYRE
31783 DATA WHITNEY
31784 DATA WALLER
31785 DATA HOLMAN
31786 DATA DONALDSON
31787 DATA CANTU
31788 DATA TERRELL
31789 DATA MORIN
31790 DATA GILLESPIE
31791 DATA FUENTES
31792 DATA TILLMAN
31793 DATA SANFORD
31794 DATA BENTLEY
31795 DATA PECK
31796 DATA KEY
31797 DATA SALAS
31798 DATA ROLLINS
31799 DATA GAMBLE
31800 DATA DICKSON
31801 DATA BATTLE
31802 DATA SANTANA
31803 DATA CABRERA
31804 DATA CERVANTES
31805 DATA HOWE
31806 DATA HINTON
31807 DATA HURLEY
31808 DATA SPENCE
31809 DATA ZAMORA
31810 DATA YANG
31811 DATA MCNEIL
31812 DATA SUAREZ
31813 DATA CASE
31814 DATA PETTY
31815 DATA GOULD
31816 DATA MCFARLAND
31817 DATA SAMPSON
31818 DATA CARVER
31819 DATA BRAY
31820 DATA ROSARIO
31821 DATA MACDONALD
31822 DATA STOUT
31823 DATA HESTER
31824 DATA MELENDEZ
31825 DATA DILLON
31826 DATA FARLEY
31827 DATA HOPPER
31828 DATA GALLOWAY
31829 DATA POTTS
31830 DATA BERNARD
31831 DATA JOYNER
31832 DATA STEIN
31833 DATA AGUIRRE
31834 DATA OSBORN
31835 DATA MERCER
31836 DATA BENDER
31837 DATA FRANCO
31838 DATA ROWLAND
31839 DATA SYKES
31840 DATA BENJAMIN
31841 DATA TRAVIS
31842 DATA PICKETT
31843 DATA CRANE
31844 DATA SEARS
31845 DATA MAYO
31846 DATA DUNLAP
31847 DATA HAYDEN
31848 DATA WILDER
31849 DATA MCKAY
31850 DATA COFFEY
31851 DATA MCCARTY
31852 DATA EWING
31853 DATA COOLEY
31854 DATA VAUGHAN
31855 DATA BONNER
31856 DATA COTTON
31857 DATA HOLDER
31858 DATA STARK
31859 DATA FERRELL
31860 DATA CANTRELL
31861 DATA FULTON
31862 DATA LYNN
31863 DATA LOTT
31864 DATA CALDERON
31865 DATA ROSA
31866 DATA POLLARD
31867 DATA HOOPER
31868 DATA BURCH
31869 DATA MULLEN
31870 DATA FRY
31871 DATA RIDDLE
31872 DATA LEVY
31873 DATA DAVID
31874 DATA DUKE
31875 DATA ODONNELL
31876 DATA GUY
31877 DATA MICHAEL
31878 DATA BRITT
31879 DATA FREDERICK
31880 DATA DAUGHERTY
31881 DATA BERGER
31882 DATA DILLARD
31883 DATA ALSTON
31884 DATA JARVIS
31885 DATA FRYE
31886 DATA RIGGS
31887 DATA CHANEY
31888 DATA ODOM
31889 DATA DUFFY
31890 DATA FITZPATRICK
31891 DATA VALENZUELA
32000 DATA $
 

 

Edited by drpeter
  • Like 1
Link to comment
Share on other sites

5 hours ago, drpeter said:

OK, so here's an interesting pomegranate.

 

I tried Bill Wilkinson's interesting suggestion from COMPUTE! magazine for implementing string arrays simply by holding the data in DATA statements and accessing them using RESTORE A+index: READ X$. https://archive.org/details/BillWilkinsonArticles

 

This, similar to the Fast Basic approach, avoids any need to load the name data into a separate data structure and allows a 48/64K Atari to implement the benchmark for 891 names with bucketloads (nearly 20K) of memory to spare, suggesting that a sort of getting on for 2000 names could be fitted in memory.

 

It appears marginally slower, however, for this number of names at least, than using numeric array pointers into a long string:

 

for 561 name sort: for initialising (including counting the data items, dimensioning and initialising the sort index) + sort, other parameters all as previous post

 

Altirra BASIC 1.56  353 seconds  (DATA statements) vs 320 seconds (numeric pointer array to string)

Atari BASIC Rev.C   689 seconds  (DATA statements) vs 555 seconds (numeric pointer array to string)

Turbo Basic 1.5      200 seconds  (DATA statements) (interpreted, not compiled)

 

For full 891 name sort, parameters as above:

 

Altirra BASIC 1.56  645 seconds  (DATA statements)

Atari BASIC Rev.C   1288 seconds  (DATA statements)

Turbo Basic 1.5      300 seconds  (DATA statements) (interpreted, not compiled)

 

  Hide contents

0 POKE 559,0:POKE 20,0:POKE 19,0:POKE 18,0:DIM K$(30),O$(30),CL$(1):GOTO 45
6 RETURN 
10 P=1:F=1.3:G=1:L=0:REM SORT SUBROUTINE
13 L=L+1:P=P*F:G=INT(N/P):IF G<1 THEN G=1
14 NW=N-G:? "PASS ";L;" GAP ";G;"  ";:IF G=1 THEN S=1
15 FOR I=0 TO NW-1:RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+G):READ O$
16 IF K$>O$ THEN T=B(I):B(I)=B(I+G):B(I+G)=T:S=0
21 NEXT I:IF S=1 THEN RETURN 
22 GOTO 13
25 ? : ? "CHECKING SORT...  ";:R=0:FOR I=0 TO N-2:REM CHECK SORT ORDER ROUTINE
26 RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+1):READ O$
27 IF K$>O$ THEN ? "OUT OF ORDER ";K$:R=1
30 NEXT I:? :RETURN 
40 FOR I=0 TO N-1:RESTORE 31001+B(I):READ K$:? K$;" ";:NEXT I:RETURN 
44 REM MAIN
45 N=0:CL$=CHR$(125)
51 REM K$=TEMP,N$=NAME ARRAY,S()=SUBSTRING START PTRS
53 REM CL$=CLEAR SCREEN, POKE 752,1 =SYSTEM CURSOR OFF
55 ? CL$:? "COMB SORT MOST POPULAR SURNAMES":? : ? "LOADING DATA...  ";
56 READ K$:IF K$<>"$" THEN N=N+1:GOTO 56
57 DIM B(N-1)
60 FOR I=0 TO N-1:B(I)=I:NEXT I
70 ? N;" NAMES LOADED":? 
72 IF PEEK(20)>240 THEN 72
75 T1=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
80 GOSUB 10:REM SORT ROUTINE
81 IF PEEK(20)>240 THEN 81
82 T2=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
85 GOSUB 25:REM CHECK SORT ORDER
86 IF PEEK(20)>240 THEN 86
87 T3=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
92 GOSUB 40:REM PRINT SORTED LIST
93 IF PEEK(20)>240 THEN 93
94 T4=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
96 ? : ? : ? "ELAPSED: ";T1;",";T2;",";T3;",";T4;" SECONDS"
98 ? : ? : ? "DONE":POKE 752,0:POKE 559,34:END 
31001 DATA SMITH
31002 DATA JOHNSON
31003 DATA WILLIAMS
31004 DATA JONES
31005 DATA BROWN
31006 DATA DAVIS
31007 DATA MILLER
31008 DATA WILSON
31009 DATA MOORE
31010 DATA TAYLOR
31011 DATA ANDERSON
31012 DATA THOMAS
31013 DATA JACKSON
31014 DATA WHITE
31015 DATA HARRIS
31016 DATA MARTIN
31017 DATA THOMPSON
31018 DATA GARCIA
31019 DATA MARTINEZ
31020 DATA ROBINSON
31021 DATA CLARK
31022 DATA RODRIGUEZ
31023 DATA LEWIS
31024 DATA LEE
31025 DATA WALKER
31026 DATA HALL
31027 DATA ALLEN
31028 DATA YOUNG
31029 DATA HERNANDEZ
31030 DATA KING
31031 DATA WRIGHT
31032 DATA LOPEZ
31033 DATA HILL
31034 DATA SCOTT
31035 DATA GREEN
31036 DATA ADAMS
31037 DATA BAKER
31038 DATA GONZALEZ
31039 DATA NELSON
31040 DATA CARTER
31041 DATA MITCHELL
31042 DATA PEREZ
31043 DATA ROBERTS
31044 DATA TURNER
31045 DATA PHILLIPS
31046 DATA CAMPBELL
31047 DATA PARKER
31048 DATA EVANS
31049 DATA EDWARDS
31050 DATA COLLINS
31051 DATA STEWART
31052 DATA SANCHEZ
31053 DATA MORRIS
31054 DATA ROGERS
31055 DATA REED
31056 DATA COOK
31057 DATA MORGAN
31058 DATA BELL
31059 DATA MURPHY
31060 DATA BAILEY
31061 DATA RIVERA
31062 DATA COOPER
31063 DATA RICHARDSON
31064 DATA COX
31065 DATA HOWARD
31066 DATA WARD
31067 DATA TORRES
31068 DATA PETERSON
31069 DATA GRAY
31070 DATA RAMIREZ
31071 DATA JAMES
31072 DATA WATSON
31073 DATA BROOKS
31074 DATA KELLY
31075 DATA SANDERS
31076 DATA PRICE
31077 DATA BENNETT
31078 DATA WOOD
31079 DATA BARNES
31080 DATA ROSS
31081 DATA HENDERSON
31082 DATA COLEMAN
31083 DATA JENKINS
31084 DATA PERRY
31085 DATA POWELL
31086 DATA LONG
31087 DATA PATTERSON
31088 DATA HUGHES
31089 DATA FLORES
31090 DATA WASHINGTON
31091 DATA BUTLER
31092 DATA SIMMONS
31093 DATA FOSTER
31094 DATA GONZALES
31095 DATA BRYANT
31096 DATA ALEXANDER
31097 DATA RUSSELL
31098 DATA GRIFFIN
31099 DATA DIAZ
31100 DATA HAYES
31101 DATA MYERS
31102 DATA FORD
31103 DATA HAMILTON
31104 DATA GRAHAM
31105 DATA SULLIVAN
31106 DATA WALLACE
31107 DATA WOODS
31108 DATA COLE
31109 DATA WEST
31110 DATA JORDAN
31111 DATA OWENS
31112 DATA REYNOLDS
31113 DATA FISHER
31114 DATA ELLIS
31115 DATA HARRISON
31116 DATA GIBSON
31117 DATA MCDONALD
31118 DATA CRUZ
31119 DATA MARSHALL
31120 DATA ORTIZ
31121 DATA GOMEZ
31122 DATA MURRAY
31123 DATA FREEMAN
31124 DATA WELLS
31125 DATA WEBB
31126 DATA SIMPSON
31127 DATA STEVENS
31128 DATA TUCKER
31129 DATA PORTER
31130 DATA HUNTER
31131 DATA HICKS
31132 DATA CRAWFORD
31133 DATA HENRY
31134 DATA BOYD
31135 DATA MASON
31136 DATA MORALES
31137 DATA KENNEDY
31138 DATA WARREN
31139 DATA DIXON
31140 DATA RAMOS
31141 DATA REYES
31142 DATA BURNS
31143 DATA GORDON
31144 DATA SHAW
31145 DATA HOLMES
31146 DATA RICE
31147 DATA ROBERTSON
31148 DATA HUNT
31149 DATA BLACK
31150 DATA DANIELS
31151 DATA PALMER
31152 DATA MILLS
31153 DATA NICHOLS
31154 DATA GRANT
31155 DATA KNIGHT
31156 DATA FERGUSON
31157 DATA ROSE
31158 DATA STONE
31159 DATA HAWKINS
31160 DATA DUNN
31161 DATA PERKINS
31162 DATA HUDSON
31163 DATA SPENCER
31164 DATA GARDNER
31165 DATA STEPHENS
31166 DATA PAYNE
31167 DATA PIERCE
31168 DATA BERRY
31169 DATA MATTHEWS
31170 DATA ARNOLD
31171 DATA WAGNER
31172 DATA WILLIS
31173 DATA RAY
31174 DATA WATKINS
31175 DATA OLSON
31176 DATA CARROLL
31177 DATA DUNCAN
31178 DATA SNYDER
31179 DATA HART
31180 DATA CUNNINGHAM
31181 DATA BRADLEY
31182 DATA LANE
31183 DATA ANDREWS
31184 DATA RUIZ
31185 DATA HARPER
31186 DATA FOX
31187 DATA RILEY
31188 DATA ARMSTRONG
31189 DATA CARPENTER
31190 DATA WEAVER
31191 DATA GREENE
31192 DATA LAWRENCE
31193 DATA ELLIOTT
31194 DATA CHAVEZ
31195 DATA SIMS
31196 DATA AUSTIN
31197 DATA PETERS
31198 DATA KELLEY
31199 DATA FRANKLIN
31200 DATA LAWSON
31201 DATA FIELDS
31202 DATA GUTIERREZ
31203 DATA RYAN
31204 DATA SCHMIDT
31205 DATA CARR
31206 DATA VASQUEZ
31207 DATA CASTILLO
31208 DATA WHEELER
31209 DATA CHAPMAN
31210 DATA OLIVER
31211 DATA MONTGOMERY
31212 DATA RICHARDS
31213 DATA WILLIAMSON
31214 DATA JOHNSTON
31215 DATA BANKS
31216 DATA MEYER
31217 DATA BISHOP
31218 DATA MCCOY
31219 DATA HOWELL
31220 DATA ALVAREZ
31221 DATA MORRISON
31222 DATA HANSEN
31223 DATA FERNANDEZ
31224 DATA GARZA
31225 DATA HARVEY
31226 DATA LITTLE
31227 DATA BURTON
31228 DATA STANLEY
31229 DATA NGUYEN
31230 DATA GEORGE
31231 DATA JACOBS
31232 DATA REID
31233 DATA KIM
31234 DATA FULLER
31235 DATA LYNCH
31236 DATA DEAN
31237 DATA GILBERT
31238 DATA GARRETT
31239 DATA ROMERO
31240 DATA WELCH
31241 DATA LARSON
31242 DATA FRAZIER
31243 DATA BURKE
31244 DATA HANSON
31245 DATA DAY
31246 DATA MENDOZA
31247 DATA MORENO
31248 DATA BOWMAN
31249 DATA MEDINA
31250 DATA FOWLER
31251 DATA BREWER
31252 DATA HOFFMAN
31253 DATA CARLSON
31254 DATA SILVA
31255 DATA PEARSON
31256 DATA HOLLAND
31257 DATA DOUGLAS
31258 DATA FLEMING
31259 DATA JENSEN
31260 DATA VARGAS
31261 DATA BYRD
31262 DATA DAVIDSON
31263 DATA HOPKINS
31264 DATA MAY
31265 DATA TERRY
31266 DATA HERRERA
31267 DATA WADE
31268 DATA SOTO
31269 DATA WALTERS
31270 DATA CURTIS
31271 DATA NEAL
31272 DATA CALDWELL
31273 DATA LOWE
31274 DATA JENNINGS
31275 DATA BARNETT
31276 DATA GRAVES
31277 DATA JIMENEZ
31278 DATA HORTON
31279 DATA SHELTON
31280 DATA BARRETT
31281 DATA OBRIEN
31282 DATA CASTRO
31283 DATA SUTTON
31284 DATA GREGORY
31285 DATA MCKINNEY
31286 DATA LUCAS
31287 DATA MILES
31288 DATA CRAIG
31289 DATA RODRIQUEZ
31290 DATA CHAMBERS
31291 DATA HOLT
31292 DATA LAMBERT
31293 DATA FLETCHER
31294 DATA WATTS
31295 DATA BATES
31296 DATA HALE
31297 DATA RHODES
31298 DATA PENA
31299 DATA BECK
31300 DATA NEWMAN
31301 DATA HAYNES
31302 DATA MCDANIEL
31303 DATA MENDEZ
31304 DATA BUSH
31305 DATA VAUGHN
31306 DATA PARKS
31307 DATA DAWSON
31308 DATA SANTIAGO
31309 DATA NORRIS
31310 DATA HARDY
31311 DATA LOVE
31312 DATA STEELE
31313 DATA CURRY
31314 DATA POWERS
31315 DATA SCHULTZ
31316 DATA BARKER
31317 DATA GUZMAN
31318 DATA PAGE
31319 DATA MUNOZ
31320 DATA BALL
31321 DATA KELLER
31322 DATA CHANDLER
31323 DATA WEBER
31324 DATA LEONARD
31325 DATA WALSH
31326 DATA LYONS
31327 DATA RAMSEY
31328 DATA WOLFE
31329 DATA SCHNEIDER
31330 DATA MULLINS
31331 DATA BENSON
31332 DATA SHARP
31333 DATA BOWEN
31334 DATA DANIEL
31335 DATA BARBER
31336 DATA CUMMINGS
31337 DATA HINES
31338 DATA BALDWIN
31339 DATA GRIFFITH
31340 DATA VALDEZ
31341 DATA HUBBARD
31342 DATA SALAZAR
31343 DATA REEVES
31344 DATA WARNER
31345 DATA STEVENSON
31346 DATA BURGESS
31347 DATA SANTOS
31348 DATA TATE
31349 DATA CROSS
31350 DATA GARNER
31351 DATA MANN
31352 DATA MACK
31353 DATA MOSS
31354 DATA THORNTON
31355 DATA DENNIS
31356 DATA MCGEE
31357 DATA FARMER
31358 DATA DELGADO
31359 DATA AGUILAR
31360 DATA VEGA
31361 DATA GLOVER
31362 DATA MANNING
31363 DATA COHEN
31364 DATA HARMON
31365 DATA RODGERS
31366 DATA ROBBINS
31367 DATA NEWTON
31368 DATA TODD
31369 DATA BLAIR
31370 DATA HIGGINS
31371 DATA INGRAM
31372 DATA REESE
31373 DATA CANNON
31374 DATA STRICKLAND
31375 DATA TOWNSEND
31376 DATA POTTER
31377 DATA GOODWIN
31378 DATA WALTON
31379 DATA ROWE
31380 DATA HAMPTON
31381 DATA ORTEGA
31382 DATA PATTON
31383 DATA SWANSON
31384 DATA JOSEPH
31385 DATA FRANCIS
31386 DATA GOODMAN
31387 DATA MALDONADO
31388 DATA YATES
31389 DATA BECKER
31390 DATA ERICKSON
31391 DATA HODGES
31392 DATA RIOS
31393 DATA CONNER
31394 DATA ADKINS
31395 DATA WEBSTER
31396 DATA NORMAN
31397 DATA MALONE
31398 DATA HAMMOND
31399 DATA FLOWERS
31400 DATA COBB
31401 DATA MOODY
31402 DATA QUINN
31403 DATA BLAKE
31404 DATA MAXWELL
31405 DATA POPE
31406 DATA FLOYD
31407 DATA OSBORNE
31408 DATA PAUL
31409 DATA MCCARTHY
31410 DATA GUERRERO
31411 DATA LINDSEY
31412 DATA ESTRADA
31413 DATA SANDOVAL
31414 DATA GIBBS
31415 DATA TYLER
31416 DATA GROSS
31417 DATA FITZGERALD
31418 DATA STOKES
31419 DATA DOYLE
31420 DATA SHERMAN
31421 DATA SAUNDERS
31422 DATA WISE
31423 DATA COLON
31424 DATA GILL
31425 DATA ALVARADO
31426 DATA GREER
31427 DATA PADILLA
31428 DATA SIMON
31429 DATA WATERS
31430 DATA NUNEZ
31431 DATA BALLARD
31432 DATA SCHWARTZ
31433 DATA MCBRIDE
31434 DATA HOUSTON
31435 DATA CHRISTENSEN
31436 DATA KLEIN
31437 DATA PRATT
31438 DATA BRIGGS
31439 DATA PARSONS
31440 DATA MCLAUGHLIN
31441 DATA ZIMMERMAN
31442 DATA FRENCH
31443 DATA BUCHANAN
31444 DATA MORAN
31445 DATA COPELAND
31446 DATA ROY
31447 DATA PITTMAN
31448 DATA BRADY
31449 DATA MCCORMICK
31450 DATA HOLLOWAY
31451 DATA BROCK
31452 DATA POOLE
31453 DATA FRANK
31454 DATA LOGAN
31455 DATA OWEN
31456 DATA BASS
31457 DATA MARSH
31458 DATA DRAKE
31459 DATA WONG
31460 DATA JEFFERSON
31461 DATA PARK
31462 DATA MORTON
31463 DATA ABBOTT
31464 DATA SPARKS
31465 DATA PATRICK
31466 DATA NORTON
31467 DATA HUFF
31468 DATA CLAYTON
31469 DATA MASSEY
31470 DATA LLOYD
31471 DATA FIGUEROA
31472 DATA CARSON
31473 DATA BOWERS
31474 DATA ROBERSON
31475 DATA BARTON
31476 DATA TRAN
31477 DATA LAMB
31478 DATA HARRINGTON
31479 DATA CASEY
31480 DATA BOONE
31481 DATA CORTEZ
31482 DATA CLARKE
31483 DATA MATHIS
31484 DATA SINGLETON
31485 DATA WILKINS
31486 DATA CAIN
31487 DATA BRYAN
31488 DATA UNDERWOOD
31489 DATA HOGAN
31490 DATA MCKENZIE
31491 DATA COLLIER
31492 DATA LUNA
31493 DATA PHELPS
31494 DATA MCGUIRE
31495 DATA ALLISON
31496 DATA BRIDGES
31497 DATA WILKERSON
31498 DATA NASH
31499 DATA SUMMERS
31500 DATA ATKINS
31501 DATA WILCOX
31502 DATA PITTS
31503 DATA CONLEY
31504 DATA MARQUEZ
31505 DATA BURNETT
31506 DATA RICHARD
31507 DATA COCHRAN
31508 DATA CHASE
31509 DATA DAVENPORT
31510 DATA HOOD
31511 DATA GATES
31512 DATA CLAY
31513 DATA AYALA
31514 DATA SAWYER
31515 DATA ROMAN
31516 DATA VAZQUEZ
31517 DATA DICKERSON
31518 DATA HODGE
31519 DATA ACOSTA
31520 DATA FLYNN
31521 DATA ESPINOZA
31522 DATA NICHOLSON
31523 DATA MONROE
31524 DATA WOLF
31525 DATA MORROW
31526 DATA KIRK
31527 DATA RANDALL
31528 DATA ANTHONY
31529 DATA WHITAKER
31530 DATA OCONNOR
31531 DATA SKINNER
31532 DATA WARE
31533 DATA MOLINA
31534 DATA KIRBY
31535 DATA HUFFMAN
31536 DATA BRADFORD
31537 DATA CHARLES
31538 DATA GILMORE
31539 DATA DOMINGUEZ
31540 DATA ONEAL
31541 DATA BRUCE
31542 DATA LANG
31543 DATA COMBS
31544 DATA KRAMER
31545 DATA HEATH
31546 DATA HANCOCK
31547 DATA GALLAGHER
31548 DATA GAINES
31549 DATA SHAFFER
31550 DATA SHORT
31551 DATA WIGGINS
31552 DATA MATHEWS
31553 DATA MCCLAIN
31554 DATA FISCHER
31555 DATA WALL
31556 DATA SMALL
31557 DATA MELTON
31558 DATA HENSLEY
31559 DATA BOND
31560 DATA DYER
31561 DATA CAMERON
31562 DATA GRIMES
31563 DATA CONTRERAS
31564 DATA CHRISTIAN
31565 DATA WYATT
31566 DATA BAXTER
31567 DATA SNOW
31568 DATA MOSLEY
31569 DATA SHEPHERD
31570 DATA LARSEN
31571 DATA HOOVER
31572 DATA BEASLEY
31573 DATA GLENN
31574 DATA PETERSEN
31575 DATA WHITEHEAD
31576 DATA MEYERS
31577 DATA KEITH
31578 DATA GARRISON
31579 DATA VINCENT
31580 DATA SHIELDS
31581 DATA HORN
31582 DATA SAVAGE
31583 DATA OLSEN
31584 DATA SCHROEDER
31585 DATA HARTMAN
31586 DATA WOODARD
31587 DATA MUELLER
31588 DATA KEMP
31589 DATA DELEON
31590 DATA BOOTH
31591 DATA PATEL
31592 DATA CALHOUN
31593 DATA WILEY
31594 DATA EATON
31595 DATA CLINE
31596 DATA NAVARRO
31597 DATA HARRELL
31598 DATA LESTER
31599 DATA HUMPHREY
31600 DATA PARRISH
31601 DATA DURAN
31602 DATA HUTCHINSON
31603 DATA HESS
31604 DATA DORSEY
31605 DATA BULLOCK
31606 DATA ROBLES
31607 DATA BEARD
31608 DATA DALTON
31609 DATA AVILA
31610 DATA VANCE
31611 DATA RICH
31612 DATA BLACKWELL
31613 DATA YORK
31614 DATA JOHNS
31615 DATA BLANKENSHIP
31616 DATA TREVINO
31617 DATA SALINAS
31618 DATA CAMPOS
31619 DATA PRUITT
31620 DATA MOSES
31621 DATA CALLAHAN
31622 DATA GOLDEN
31623 DATA MONTOYA
31624 DATA HARDIN
31625 DATA GUERRA
31626 DATA MCDOWELL
31627 DATA CAREY
31628 DATA STAFFORD
31629 DATA GALLEGOS
31630 DATA HENSON
31631 DATA WILKINSON
31632 DATA BOOKER
31633 DATA MERRITT
31634 DATA MIRANDA
31635 DATA ATKINSON
31636 DATA ORR
31637 DATA DECKER
31638 DATA HOBBS
31639 DATA PRESTON
31640 DATA TANNER
31641 DATA KNOX
31642 DATA PACHECO
31643 DATA STEPHENSON
31644 DATA GLASS
31645 DATA ROJAS
31646 DATA SERRANO
31647 DATA MARKS
31648 DATA HICKMAN
31649 DATA ENGLISH
31650 DATA SWEENEY
31651 DATA STRONG
31652 DATA PRINCE
31653 DATA MCCLURE
31654 DATA CONWAY
31655 DATA WALTER
31656 DATA ROTH
31657 DATA MAYNARD
31658 DATA FARRELL
31659 DATA LOWERY
31660 DATA HURST
31661 DATA NIXON
31662 DATA WEISS
31663 DATA TRUJILLO
31664 DATA ELLISON
31665 DATA SLOAN
31666 DATA JUAREZ
31667 DATA WINTERS
31668 DATA MCLEAN
31669 DATA RANDOLPH
31670 DATA LEON
31671 DATA BOYER
31672 DATA VILLARREAL
31673 DATA MCCALL
31674 DATA GENTRY
31675 DATA CARRILLO
31676 DATA KENT
31677 DATA AYERS
31678 DATA LARA
31679 DATA SHANNON
31680 DATA SEXTON
31681 DATA PACE
31682 DATA HULL
31683 DATA LEBLANC
31684 DATA BROWNING
31685 DATA VELASQUEZ
31686 DATA LEACH
31687 DATA CHANG
31688 DATA HOUSE
31689 DATA SELLERS
31690 DATA HERRING
31691 DATA NOBLE
31692 DATA FOLEY
31693 DATA BARTLETT
31694 DATA MERCADO
31695 DATA LANDRY
31696 DATA DURHAM
31697 DATA WALLS
31698 DATA BARR
31699 DATA MCKEE
31700 DATA BAUER
31701 DATA RIVERS
31702 DATA EVERETT
31703 DATA BRADSHAW
31704 DATA PUGH
31705 DATA VELEZ
31706 DATA RUSH
31707 DATA ESTES
31708 DATA DODSON
31709 DATA MORSE
31710 DATA SHEPPARD
31711 DATA WEEKS
31712 DATA CAMACHO
31713 DATA BEAN
31714 DATA BARRON
31715 DATA LIVINGSTON
31716 DATA MIDDLETON
31717 DATA SPEARS
31718 DATA BRANCH
31719 DATA BLEVINS
31720 DATA CHEN
31721 DATA KERR
31722 DATA MCCONNELL
31723 DATA HATFIELD
31724 DATA HARDING
31725 DATA ASHLEY
31726 DATA SOLIS
31727 DATA HERMAN
31728 DATA FROST
31729 DATA GILES
31730 DATA BLACKBURN
31731 DATA WILLIAM
31732 DATA PENNINGTON
31733 DATA WOODWARD
31734 DATA FINLEY
31735 DATA MCINTOSH
31736 DATA KOCH
31737 DATA BEST
31738 DATA SOLOMON
31739 DATA MCCULLOUGH
31740 DATA DUDLEY
31741 DATA NOLAN
31742 DATA BLANCHARD
31743 DATA RIVAS
31744 DATA BRENNAN
31745 DATA MEJIA
31746 DATA KANE
31747 DATA BENTON
31748 DATA JOYCE
31749 DATA BUCKLEY
31750 DATA HALEY
31751 DATA VALENTINE
31752 DATA MADDOX
31753 DATA RUSSO
31754 DATA MCKNIGHT
31755 DATA BUCK
31756 DATA MOON
31757 DATA MCMILLAN
31758 DATA CROSBY
31759 DATA BERG
31760 DATA DOTSON
31761 DATA MAYS
31762 DATA ROACH
31763 DATA CHURCH
31764 DATA CHAN
31765 DATA RICHMOND
31766 DATA MEADOWS
31767 DATA FAULKNER
31768 DATA ONEILL
31769 DATA KNAPP
31770 DATA KLINE
31771 DATA BARRY
31772 DATA OCHOA
31773 DATA JACOBSON
31774 DATA GAY
31775 DATA AVERY
31776 DATA HENDRICKS
31777 DATA HORNE
31778 DATA SHEPARD
31779 DATA HEBERT
31780 DATA CHERRY
31781 DATA CARDENAS
31782 DATA MCINTYRE
31783 DATA WHITNEY
31784 DATA WALLER
31785 DATA HOLMAN
31786 DATA DONALDSON
31787 DATA CANTU
31788 DATA TERRELL
31789 DATA MORIN
31790 DATA GILLESPIE
31791 DATA FUENTES
31792 DATA TILLMAN
31793 DATA SANFORD
31794 DATA BENTLEY
31795 DATA PECK
31796 DATA KEY
31797 DATA SALAS
31798 DATA ROLLINS
31799 DATA GAMBLE
31800 DATA DICKSON
31801 DATA BATTLE
31802 DATA SANTANA
31803 DATA CABRERA
31804 DATA CERVANTES
31805 DATA HOWE
31806 DATA HINTON
31807 DATA HURLEY
31808 DATA SPENCE
31809 DATA ZAMORA
31810 DATA YANG
31811 DATA MCNEIL
31812 DATA SUAREZ
31813 DATA CASE
31814 DATA PETTY
31815 DATA GOULD
31816 DATA MCFARLAND
31817 DATA SAMPSON
31818 DATA CARVER
31819 DATA BRAY
31820 DATA ROSARIO
31821 DATA MACDONALD
31822 DATA STOUT
31823 DATA HESTER
31824 DATA MELENDEZ
31825 DATA DILLON
31826 DATA FARLEY
31827 DATA HOPPER
31828 DATA GALLOWAY
31829 DATA POTTS
31830 DATA BERNARD
31831 DATA JOYNER
31832 DATA STEIN
31833 DATA AGUIRRE
31834 DATA OSBORN
31835 DATA MERCER
31836 DATA BENDER
31837 DATA FRANCO
31838 DATA ROWLAND
31839 DATA SYKES
31840 DATA BENJAMIN
31841 DATA TRAVIS
31842 DATA PICKETT
31843 DATA CRANE
31844 DATA SEARS
31845 DATA MAYO
31846 DATA DUNLAP
31847 DATA HAYDEN
31848 DATA WILDER
31849 DATA MCKAY
31850 DATA COFFEY
31851 DATA MCCARTY
31852 DATA EWING
31853 DATA COOLEY
31854 DATA VAUGHAN
31855 DATA BONNER
31856 DATA COTTON
31857 DATA HOLDER
31858 DATA STARK
31859 DATA FERRELL
31860 DATA CANTRELL
31861 DATA FULTON
31862 DATA LYNN
31863 DATA LOTT
31864 DATA CALDERON
31865 DATA ROSA
31866 DATA POLLARD
31867 DATA HOOPER
31868 DATA BURCH
31869 DATA MULLEN
31870 DATA FRY
31871 DATA RIDDLE
31872 DATA LEVY
31873 DATA DAVID
31874 DATA DUKE
31875 DATA ODONNELL
31876 DATA GUY
31877 DATA MICHAEL
31878 DATA BRITT
31879 DATA FREDERICK
31880 DATA DAUGHERTY
31881 DATA BERGER
31882 DATA DILLARD
31883 DATA ALSTON
31884 DATA JARVIS
31885 DATA FRYE
31886 DATA RIGGS
31887 DATA CHANEY
31888 DATA ODOM
31889 DATA DUFFY
31890 DATA FITZPATRICK
31891 DATA VALENZUELA
32000 DATA $
 

 

Those timings are wrong (891 records-set).

 

TurboBasic #s are clearly off (under-estimated).

 

Please, check your execution environment.

Link to comment
Share on other sites

28 minutes ago, Faicuai said:

Those timings are wrong (891 records-set).

 

TurboBasic #s are clearly off (under-estimated).

 

Please, check your execution environment.

Interesting, have checked Altirra set-up, all seems to be OK, run with a couple of different XEX/ROMs for TB 1.5, all give same result.

 

Also, seems about in line with what you'd expect- 3-4 times faster than Atari BASIC.

 

Note that the code assumes a PAL set-up for the timings.

 

What results are you getting?

 

I can't try it on real HW at present as my 1050 isn't working ?

Link to comment
Share on other sites

6 hours ago, drpeter said:

OK, so here's an interesting pomegranate.

 

I tried Bill Wilkinson's interesting suggestion from COMPUTE! magazine for implementing string arrays simply by holding the data in DATA statements and accessing them using RESTORE A+index: READ X$. https://archive.org/details/BillWilkinsonArticles

 

This, similar to the Fast Basic approach, avoids any need to load the name data into a separate data structure and allows a 48/64K Atari to implement the benchmark for 891 names with bucketloads (nearly 20K) of memory to spare, suggesting that a sort of getting on for 2000 names could be fitted in memory.

 

It appears marginally slower, however, for this number of names at least, than using numeric array pointers into a long string:

 

for 561 name sort: for initialising (including counting the data items, dimensioning and initialising the sort index) + sort, other parameters all as previous post

 

Altirra BASIC 1.56  353 seconds  (DATA statements) vs 320 seconds (numeric pointer array to string)

Atari BASIC Rev.C   689 seconds  (DATA statements) vs 555 seconds (numeric pointer array to string)

Turbo Basic 1.5      200 seconds  (DATA statements) (interpreted, not compiled)

 

For full 891 name sort, parameters as above:

 

Altirra BASIC 1.56  645 seconds  (DATA statements)

Atari BASIC Rev.C   1288 seconds  (DATA statements)

Turbo Basic 1.5      300 seconds  (DATA statements) (interpreted, not compiled)

 

  Reveal hidden contents

0 POKE 559,0:POKE 20,0:POKE 19,0:POKE 18,0:DIM K$(30),O$(30),CL$(1):GOTO 45
6 RETURN 
10 P=1:F=1.3:G=1:L=0:REM SORT SUBROUTINE
13 L=L+1:P=P*F:G=INT(N/P):IF G<1 THEN G=1
14 NW=N-G:? "PASS ";L;" GAP ";G;"  ";:IF G=1 THEN S=1
15 FOR I=0 TO NW-1:RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+G):READ O$
16 IF K$>O$ THEN T=B(I):B(I)=B(I+G):B(I+G)=T:S=0
21 NEXT I:IF S=1 THEN RETURN 
22 GOTO 13
25 ? : ? "CHECKING SORT...  ";:R=0:FOR I=0 TO N-2:REM CHECK SORT ORDER ROUTINE
26 RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+1):READ O$
27 IF K$>O$ THEN ? "OUT OF ORDER ";K$:R=1
30 NEXT I:? :RETURN 
40 FOR I=0 TO N-1:RESTORE 31001+B(I):READ K$:? K$;" ";:NEXT I:RETURN 
44 REM MAIN
45 N=0:CL$=CHR$(125)
51 REM K$=TEMP,N$=NAME ARRAY,S()=SUBSTRING START PTRS
53 REM CL$=CLEAR SCREEN, POKE 752,1 =SYSTEM CURSOR OFF
55 ? CL$:? "COMB SORT MOST POPULAR SURNAMES":? : ? "LOADING DATA...  ";
56 READ K$:IF K$<>"$" THEN N=N+1:GOTO 56
57 DIM B(N-1)
60 FOR I=0 TO N-1:B(I)=I:NEXT I
70 ? N;" NAMES LOADED":? 
72 IF PEEK(20)>240 THEN 72
75 T1=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
80 GOSUB 10:REM SORT ROUTINE
81 IF PEEK(20)>240 THEN 81
82 T2=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
85 GOSUB 25:REM CHECK SORT ORDER
86 IF PEEK(20)>240 THEN 86
87 T3=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
92 GOSUB 40:REM PRINT SORTED LIST
93 IF PEEK(20)>240 THEN 93
94 T4=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
96 ? : ? : ? "ELAPSED: ";T1;",";T2;",";T3;",";T4;" SECONDS"
98 ? : ? : ? "DONE":POKE 752,0:POKE 559,34:END 
31001 DATA SMITH
31002 DATA JOHNSON
31003 DATA WILLIAMS
31004 DATA JONES
31005 DATA BROWN
31006 DATA DAVIS
31007 DATA MILLER
31008 DATA WILSON
31009 DATA MOORE
31010 DATA TAYLOR
31011 DATA ANDERSON
31012 DATA THOMAS
31013 DATA JACKSON
31014 DATA WHITE
31015 DATA HARRIS
31016 DATA MARTIN
31017 DATA THOMPSON
31018 DATA GARCIA
31019 DATA MARTINEZ
31020 DATA ROBINSON
31021 DATA CLARK
31022 DATA RODRIGUEZ
31023 DATA LEWIS
31024 DATA LEE
31025 DATA WALKER
31026 DATA HALL
31027 DATA ALLEN
31028 DATA YOUNG
31029 DATA HERNANDEZ
31030 DATA KING
31031 DATA WRIGHT
31032 DATA LOPEZ
31033 DATA HILL
31034 DATA SCOTT
31035 DATA GREEN
31036 DATA ADAMS
31037 DATA BAKER
31038 DATA GONZALEZ
31039 DATA NELSON
31040 DATA CARTER
31041 DATA MITCHELL
31042 DATA PEREZ
31043 DATA ROBERTS
31044 DATA TURNER
31045 DATA PHILLIPS
31046 DATA CAMPBELL
31047 DATA PARKER
31048 DATA EVANS
31049 DATA EDWARDS
31050 DATA COLLINS
31051 DATA STEWART
31052 DATA SANCHEZ
31053 DATA MORRIS
31054 DATA ROGERS
31055 DATA REED
31056 DATA COOK
31057 DATA MORGAN
31058 DATA BELL
31059 DATA MURPHY
31060 DATA BAILEY
31061 DATA RIVERA
31062 DATA COOPER
31063 DATA RICHARDSON
31064 DATA COX
31065 DATA HOWARD
31066 DATA WARD
31067 DATA TORRES
31068 DATA PETERSON
31069 DATA GRAY
31070 DATA RAMIREZ
31071 DATA JAMES
31072 DATA WATSON
31073 DATA BROOKS
31074 DATA KELLY
31075 DATA SANDERS
31076 DATA PRICE
31077 DATA BENNETT
31078 DATA WOOD
31079 DATA BARNES
31080 DATA ROSS
31081 DATA HENDERSON
31082 DATA COLEMAN
31083 DATA JENKINS
31084 DATA PERRY
31085 DATA POWELL
31086 DATA LONG
31087 DATA PATTERSON
31088 DATA HUGHES
31089 DATA FLORES
31090 DATA WASHINGTON
31091 DATA BUTLER
31092 DATA SIMMONS
31093 DATA FOSTER
31094 DATA GONZALES
31095 DATA BRYANT
31096 DATA ALEXANDER
31097 DATA RUSSELL
31098 DATA GRIFFIN
31099 DATA DIAZ
31100 DATA HAYES
31101 DATA MYERS
31102 DATA FORD
31103 DATA HAMILTON
31104 DATA GRAHAM
31105 DATA SULLIVAN
31106 DATA WALLACE
31107 DATA WOODS
31108 DATA COLE
31109 DATA WEST
31110 DATA JORDAN
31111 DATA OWENS
31112 DATA REYNOLDS
31113 DATA FISHER
31114 DATA ELLIS
31115 DATA HARRISON
31116 DATA GIBSON
31117 DATA MCDONALD
31118 DATA CRUZ
31119 DATA MARSHALL
31120 DATA ORTIZ
31121 DATA GOMEZ
31122 DATA MURRAY
31123 DATA FREEMAN
31124 DATA WELLS
31125 DATA WEBB
31126 DATA SIMPSON
31127 DATA STEVENS
31128 DATA TUCKER
31129 DATA PORTER
31130 DATA HUNTER
31131 DATA HICKS
31132 DATA CRAWFORD
31133 DATA HENRY
31134 DATA BOYD
31135 DATA MASON
31136 DATA MORALES
31137 DATA KENNEDY
31138 DATA WARREN
31139 DATA DIXON
31140 DATA RAMOS
31141 DATA REYES
31142 DATA BURNS
31143 DATA GORDON
31144 DATA SHAW
31145 DATA HOLMES
31146 DATA RICE
31147 DATA ROBERTSON
31148 DATA HUNT
31149 DATA BLACK
31150 DATA DANIELS
31151 DATA PALMER
31152 DATA MILLS
31153 DATA NICHOLS
31154 DATA GRANT
31155 DATA KNIGHT
31156 DATA FERGUSON
31157 DATA ROSE
31158 DATA STONE
31159 DATA HAWKINS
31160 DATA DUNN
31161 DATA PERKINS
31162 DATA HUDSON
31163 DATA SPENCER
31164 DATA GARDNER
31165 DATA STEPHENS
31166 DATA PAYNE
31167 DATA PIERCE
31168 DATA BERRY
31169 DATA MATTHEWS
31170 DATA ARNOLD
31171 DATA WAGNER
31172 DATA WILLIS
31173 DATA RAY
31174 DATA WATKINS
31175 DATA OLSON
31176 DATA CARROLL
31177 DATA DUNCAN
31178 DATA SNYDER
31179 DATA HART
31180 DATA CUNNINGHAM
31181 DATA BRADLEY
31182 DATA LANE
31183 DATA ANDREWS
31184 DATA RUIZ
31185 DATA HARPER
31186 DATA FOX
31187 DATA RILEY
31188 DATA ARMSTRONG
31189 DATA CARPENTER
31190 DATA WEAVER
31191 DATA GREENE
31192 DATA LAWRENCE
31193 DATA ELLIOTT
31194 DATA CHAVEZ
31195 DATA SIMS
31196 DATA AUSTIN
31197 DATA PETERS
31198 DATA KELLEY
31199 DATA FRANKLIN
31200 DATA LAWSON
31201 DATA FIELDS
31202 DATA GUTIERREZ
31203 DATA RYAN
31204 DATA SCHMIDT
31205 DATA CARR
31206 DATA VASQUEZ
31207 DATA CASTILLO
31208 DATA WHEELER
31209 DATA CHAPMAN
31210 DATA OLIVER
31211 DATA MONTGOMERY
31212 DATA RICHARDS
31213 DATA WILLIAMSON
31214 DATA JOHNSTON
31215 DATA BANKS
31216 DATA MEYER
31217 DATA BISHOP
31218 DATA MCCOY
31219 DATA HOWELL
31220 DATA ALVAREZ
31221 DATA MORRISON
31222 DATA HANSEN
31223 DATA FERNANDEZ
31224 DATA GARZA
31225 DATA HARVEY
31226 DATA LITTLE
31227 DATA BURTON
31228 DATA STANLEY
31229 DATA NGUYEN
31230 DATA GEORGE
31231 DATA JACOBS
31232 DATA REID
31233 DATA KIM
31234 DATA FULLER
31235 DATA LYNCH
31236 DATA DEAN
31237 DATA GILBERT
31238 DATA GARRETT
31239 DATA ROMERO
31240 DATA WELCH
31241 DATA LARSON
31242 DATA FRAZIER
31243 DATA BURKE
31244 DATA HANSON
31245 DATA DAY
31246 DATA MENDOZA
31247 DATA MORENO
31248 DATA BOWMAN
31249 DATA MEDINA
31250 DATA FOWLER
31251 DATA BREWER
31252 DATA HOFFMAN
31253 DATA CARLSON
31254 DATA SILVA
31255 DATA PEARSON
31256 DATA HOLLAND
31257 DATA DOUGLAS
31258 DATA FLEMING
31259 DATA JENSEN
31260 DATA VARGAS
31261 DATA BYRD
31262 DATA DAVIDSON
31263 DATA HOPKINS
31264 DATA MAY
31265 DATA TERRY
31266 DATA HERRERA
31267 DATA WADE
31268 DATA SOTO
31269 DATA WALTERS
31270 DATA CURTIS
31271 DATA NEAL
31272 DATA CALDWELL
31273 DATA LOWE
31274 DATA JENNINGS
31275 DATA BARNETT
31276 DATA GRAVES
31277 DATA JIMENEZ
31278 DATA HORTON
31279 DATA SHELTON
31280 DATA BARRETT
31281 DATA OBRIEN
31282 DATA CASTRO
31283 DATA SUTTON
31284 DATA GREGORY
31285 DATA MCKINNEY
31286 DATA LUCAS
31287 DATA MILES
31288 DATA CRAIG
31289 DATA RODRIQUEZ
31290 DATA CHAMBERS
31291 DATA HOLT
31292 DATA LAMBERT
31293 DATA FLETCHER
31294 DATA WATTS
31295 DATA BATES
31296 DATA HALE
31297 DATA RHODES
31298 DATA PENA
31299 DATA BECK
31300 DATA NEWMAN
31301 DATA HAYNES
31302 DATA MCDANIEL
31303 DATA MENDEZ
31304 DATA BUSH
31305 DATA VAUGHN
31306 DATA PARKS
31307 DATA DAWSON
31308 DATA SANTIAGO
31309 DATA NORRIS
31310 DATA HARDY
31311 DATA LOVE
31312 DATA STEELE
31313 DATA CURRY
31314 DATA POWERS
31315 DATA SCHULTZ
31316 DATA BARKER
31317 DATA GUZMAN
31318 DATA PAGE
31319 DATA MUNOZ
31320 DATA BALL
31321 DATA KELLER
31322 DATA CHANDLER
31323 DATA WEBER
31324 DATA LEONARD
31325 DATA WALSH
31326 DATA LYONS
31327 DATA RAMSEY
31328 DATA WOLFE
31329 DATA SCHNEIDER
31330 DATA MULLINS
31331 DATA BENSON
31332 DATA SHARP
31333 DATA BOWEN
31334 DATA DANIEL
31335 DATA BARBER
31336 DATA CUMMINGS
31337 DATA HINES
31338 DATA BALDWIN
31339 DATA GRIFFITH
31340 DATA VALDEZ
31341 DATA HUBBARD
31342 DATA SALAZAR
31343 DATA REEVES
31344 DATA WARNER
31345 DATA STEVENSON
31346 DATA BURGESS
31347 DATA SANTOS
31348 DATA TATE
31349 DATA CROSS
31350 DATA GARNER
31351 DATA MANN
31352 DATA MACK
31353 DATA MOSS
31354 DATA THORNTON
31355 DATA DENNIS
31356 DATA MCGEE
31357 DATA FARMER
31358 DATA DELGADO
31359 DATA AGUILAR
31360 DATA VEGA
31361 DATA GLOVER
31362 DATA MANNING
31363 DATA COHEN
31364 DATA HARMON
31365 DATA RODGERS
31366 DATA ROBBINS
31367 DATA NEWTON
31368 DATA TODD
31369 DATA BLAIR
31370 DATA HIGGINS
31371 DATA INGRAM
31372 DATA REESE
31373 DATA CANNON
31374 DATA STRICKLAND
31375 DATA TOWNSEND
31376 DATA POTTER
31377 DATA GOODWIN
31378 DATA WALTON
31379 DATA ROWE
31380 DATA HAMPTON
31381 DATA ORTEGA
31382 DATA PATTON
31383 DATA SWANSON
31384 DATA JOSEPH
31385 DATA FRANCIS
31386 DATA GOODMAN
31387 DATA MALDONADO
31388 DATA YATES
31389 DATA BECKER
31390 DATA ERICKSON
31391 DATA HODGES
31392 DATA RIOS
31393 DATA CONNER
31394 DATA ADKINS
31395 DATA WEBSTER
31396 DATA NORMAN
31397 DATA MALONE
31398 DATA HAMMOND
31399 DATA FLOWERS
31400 DATA COBB
31401 DATA MOODY
31402 DATA QUINN
31403 DATA BLAKE
31404 DATA MAXWELL
31405 DATA POPE
31406 DATA FLOYD
31407 DATA OSBORNE
31408 DATA PAUL
31409 DATA MCCARTHY
31410 DATA GUERRERO
31411 DATA LINDSEY
31412 DATA ESTRADA
31413 DATA SANDOVAL
31414 DATA GIBBS
31415 DATA TYLER
31416 DATA GROSS
31417 DATA FITZGERALD
31418 DATA STOKES
31419 DATA DOYLE
31420 DATA SHERMAN
31421 DATA SAUNDERS
31422 DATA WISE
31423 DATA COLON
31424 DATA GILL
31425 DATA ALVARADO
31426 DATA GREER
31427 DATA PADILLA
31428 DATA SIMON
31429 DATA WATERS
31430 DATA NUNEZ
31431 DATA BALLARD
31432 DATA SCHWARTZ
31433 DATA MCBRIDE
31434 DATA HOUSTON
31435 DATA CHRISTENSEN
31436 DATA KLEIN
31437 DATA PRATT
31438 DATA BRIGGS
31439 DATA PARSONS
31440 DATA MCLAUGHLIN
31441 DATA ZIMMERMAN
31442 DATA FRENCH
31443 DATA BUCHANAN
31444 DATA MORAN
31445 DATA COPELAND
31446 DATA ROY
31447 DATA PITTMAN
31448 DATA BRADY
31449 DATA MCCORMICK
31450 DATA HOLLOWAY
31451 DATA BROCK
31452 DATA POOLE
31453 DATA FRANK
31454 DATA LOGAN
31455 DATA OWEN
31456 DATA BASS
31457 DATA MARSH
31458 DATA DRAKE
31459 DATA WONG
31460 DATA JEFFERSON
31461 DATA PARK
31462 DATA MORTON
31463 DATA ABBOTT
31464 DATA SPARKS
31465 DATA PATRICK
31466 DATA NORTON
31467 DATA HUFF
31468 DATA CLAYTON
31469 DATA MASSEY
31470 DATA LLOYD
31471 DATA FIGUEROA
31472 DATA CARSON
31473 DATA BOWERS
31474 DATA ROBERSON
31475 DATA BARTON
31476 DATA TRAN
31477 DATA LAMB
31478 DATA HARRINGTON
31479 DATA CASEY
31480 DATA BOONE
31481 DATA CORTEZ
31482 DATA CLARKE
31483 DATA MATHIS
31484 DATA SINGLETON
31485 DATA WILKINS
31486 DATA CAIN
31487 DATA BRYAN
31488 DATA UNDERWOOD
31489 DATA HOGAN
31490 DATA MCKENZIE
31491 DATA COLLIER
31492 DATA LUNA
31493 DATA PHELPS
31494 DATA MCGUIRE
31495 DATA ALLISON
31496 DATA BRIDGES
31497 DATA WILKERSON
31498 DATA NASH
31499 DATA SUMMERS
31500 DATA ATKINS
31501 DATA WILCOX
31502 DATA PITTS
31503 DATA CONLEY
31504 DATA MARQUEZ
31505 DATA BURNETT
31506 DATA RICHARD
31507 DATA COCHRAN
31508 DATA CHASE
31509 DATA DAVENPORT
31510 DATA HOOD
31511 DATA GATES
31512 DATA CLAY
31513 DATA AYALA
31514 DATA SAWYER
31515 DATA ROMAN
31516 DATA VAZQUEZ
31517 DATA DICKERSON
31518 DATA HODGE
31519 DATA ACOSTA
31520 DATA FLYNN
31521 DATA ESPINOZA
31522 DATA NICHOLSON
31523 DATA MONROE
31524 DATA WOLF
31525 DATA MORROW
31526 DATA KIRK
31527 DATA RANDALL
31528 DATA ANTHONY
31529 DATA WHITAKER
31530 DATA OCONNOR
31531 DATA SKINNER
31532 DATA WARE
31533 DATA MOLINA
31534 DATA KIRBY
31535 DATA HUFFMAN
31536 DATA BRADFORD
31537 DATA CHARLES
31538 DATA GILMORE
31539 DATA DOMINGUEZ
31540 DATA ONEAL
31541 DATA BRUCE
31542 DATA LANG
31543 DATA COMBS
31544 DATA KRAMER
31545 DATA HEATH
31546 DATA HANCOCK
31547 DATA GALLAGHER
31548 DATA GAINES
31549 DATA SHAFFER
31550 DATA SHORT
31551 DATA WIGGINS
31552 DATA MATHEWS
31553 DATA MCCLAIN
31554 DATA FISCHER
31555 DATA WALL
31556 DATA SMALL
31557 DATA MELTON
31558 DATA HENSLEY
31559 DATA BOND
31560 DATA DYER
31561 DATA CAMERON
31562 DATA GRIMES
31563 DATA CONTRERAS
31564 DATA CHRISTIAN
31565 DATA WYATT
31566 DATA BAXTER
31567 DATA SNOW
31568 DATA MOSLEY
31569 DATA SHEPHERD
31570 DATA LARSEN
31571 DATA HOOVER
31572 DATA BEASLEY
31573 DATA GLENN
31574 DATA PETERSEN
31575 DATA WHITEHEAD
31576 DATA MEYERS
31577 DATA KEITH
31578 DATA GARRISON
31579 DATA VINCENT
31580 DATA SHIELDS
31581 DATA HORN
31582 DATA SAVAGE
31583 DATA OLSEN
31584 DATA SCHROEDER
31585 DATA HARTMAN
31586 DATA WOODARD
31587 DATA MUELLER
31588 DATA KEMP
31589 DATA DELEON
31590 DATA BOOTH
31591 DATA PATEL
31592 DATA CALHOUN
31593 DATA WILEY
31594 DATA EATON
31595 DATA CLINE
31596 DATA NAVARRO
31597 DATA HARRELL
31598 DATA LESTER
31599 DATA HUMPHREY
31600 DATA PARRISH
31601 DATA DURAN
31602 DATA HUTCHINSON
31603 DATA HESS
31604 DATA DORSEY
31605 DATA BULLOCK
31606 DATA ROBLES
31607 DATA BEARD
31608 DATA DALTON
31609 DATA AVILA
31610 DATA VANCE
31611 DATA RICH
31612 DATA BLACKWELL
31613 DATA YORK
31614 DATA JOHNS
31615 DATA BLANKENSHIP
31616 DATA TREVINO
31617 DATA SALINAS
31618 DATA CAMPOS
31619 DATA PRUITT
31620 DATA MOSES
31621 DATA CALLAHAN
31622 DATA GOLDEN
31623 DATA MONTOYA
31624 DATA HARDIN
31625 DATA GUERRA
31626 DATA MCDOWELL
31627 DATA CAREY
31628 DATA STAFFORD
31629 DATA GALLEGOS
31630 DATA HENSON
31631 DATA WILKINSON
31632 DATA BOOKER
31633 DATA MERRITT
31634 DATA MIRANDA
31635 DATA ATKINSON
31636 DATA ORR
31637 DATA DECKER
31638 DATA HOBBS
31639 DATA PRESTON
31640 DATA TANNER
31641 DATA KNOX
31642 DATA PACHECO
31643 DATA STEPHENSON
31644 DATA GLASS
31645 DATA ROJAS
31646 DATA SERRANO
31647 DATA MARKS
31648 DATA HICKMAN
31649 DATA ENGLISH
31650 DATA SWEENEY
31651 DATA STRONG
31652 DATA PRINCE
31653 DATA MCCLURE
31654 DATA CONWAY
31655 DATA WALTER
31656 DATA ROTH
31657 DATA MAYNARD
31658 DATA FARRELL
31659 DATA LOWERY
31660 DATA HURST
31661 DATA NIXON
31662 DATA WEISS
31663 DATA TRUJILLO
31664 DATA ELLISON
31665 DATA SLOAN
31666 DATA JUAREZ
31667 DATA WINTERS
31668 DATA MCLEAN
31669 DATA RANDOLPH
31670 DATA LEON
31671 DATA BOYER
31672 DATA VILLARREAL
31673 DATA MCCALL
31674 DATA GENTRY
31675 DATA CARRILLO
31676 DATA KENT
31677 DATA AYERS
31678 DATA LARA
31679 DATA SHANNON
31680 DATA SEXTON
31681 DATA PACE
31682 DATA HULL
31683 DATA LEBLANC
31684 DATA BROWNING
31685 DATA VELASQUEZ
31686 DATA LEACH
31687 DATA CHANG
31688 DATA HOUSE
31689 DATA SELLERS
31690 DATA HERRING
31691 DATA NOBLE
31692 DATA FOLEY
31693 DATA BARTLETT
31694 DATA MERCADO
31695 DATA LANDRY
31696 DATA DURHAM
31697 DATA WALLS
31698 DATA BARR
31699 DATA MCKEE
31700 DATA BAUER
31701 DATA RIVERS
31702 DATA EVERETT
31703 DATA BRADSHAW
31704 DATA PUGH
31705 DATA VELEZ
31706 DATA RUSH
31707 DATA ESTES
31708 DATA DODSON
31709 DATA MORSE
31710 DATA SHEPPARD
31711 DATA WEEKS
31712 DATA CAMACHO
31713 DATA BEAN
31714 DATA BARRON
31715 DATA LIVINGSTON
31716 DATA MIDDLETON
31717 DATA SPEARS
31718 DATA BRANCH
31719 DATA BLEVINS
31720 DATA CHEN
31721 DATA KERR
31722 DATA MCCONNELL
31723 DATA HATFIELD
31724 DATA HARDING
31725 DATA ASHLEY
31726 DATA SOLIS
31727 DATA HERMAN
31728 DATA FROST
31729 DATA GILES
31730 DATA BLACKBURN
31731 DATA WILLIAM
31732 DATA PENNINGTON
31733 DATA WOODWARD
31734 DATA FINLEY
31735 DATA MCINTOSH
31736 DATA KOCH
31737 DATA BEST
31738 DATA SOLOMON
31739 DATA MCCULLOUGH
31740 DATA DUDLEY
31741 DATA NOLAN
31742 DATA BLANCHARD
31743 DATA RIVAS
31744 DATA BRENNAN
31745 DATA MEJIA
31746 DATA KANE
31747 DATA BENTON
31748 DATA JOYCE
31749 DATA BUCKLEY
31750 DATA HALEY
31751 DATA VALENTINE
31752 DATA MADDOX
31753 DATA RUSSO
31754 DATA MCKNIGHT
31755 DATA BUCK
31756 DATA MOON
31757 DATA MCMILLAN
31758 DATA CROSBY
31759 DATA BERG
31760 DATA DOTSON
31761 DATA MAYS
31762 DATA ROACH
31763 DATA CHURCH
31764 DATA CHAN
31765 DATA RICHMOND
31766 DATA MEADOWS
31767 DATA FAULKNER
31768 DATA ONEILL
31769 DATA KNAPP
31770 DATA KLINE
31771 DATA BARRY
31772 DATA OCHOA
31773 DATA JACOBSON
31774 DATA GAY
31775 DATA AVERY
31776 DATA HENDRICKS
31777 DATA HORNE
31778 DATA SHEPARD
31779 DATA HEBERT
31780 DATA CHERRY
31781 DATA CARDENAS
31782 DATA MCINTYRE
31783 DATA WHITNEY
31784 DATA WALLER
31785 DATA HOLMAN
31786 DATA DONALDSON
31787 DATA CANTU
31788 DATA TERRELL
31789 DATA MORIN
31790 DATA GILLESPIE
31791 DATA FUENTES
31792 DATA TILLMAN
31793 DATA SANFORD
31794 DATA BENTLEY
31795 DATA PECK
31796 DATA KEY
31797 DATA SALAS
31798 DATA ROLLINS
31799 DATA GAMBLE
31800 DATA DICKSON
31801 DATA BATTLE
31802 DATA SANTANA
31803 DATA CABRERA
31804 DATA CERVANTES
31805 DATA HOWE
31806 DATA HINTON
31807 DATA HURLEY
31808 DATA SPENCE
31809 DATA ZAMORA
31810 DATA YANG
31811 DATA MCNEIL
31812 DATA SUAREZ
31813 DATA CASE
31814 DATA PETTY
31815 DATA GOULD
31816 DATA MCFARLAND
31817 DATA SAMPSON
31818 DATA CARVER
31819 DATA BRAY
31820 DATA ROSARIO
31821 DATA MACDONALD
31822 DATA STOUT
31823 DATA HESTER
31824 DATA MELENDEZ
31825 DATA DILLON
31826 DATA FARLEY
31827 DATA HOPPER
31828 DATA GALLOWAY
31829 DATA POTTS
31830 DATA BERNARD
31831 DATA JOYNER
31832 DATA STEIN
31833 DATA AGUIRRE
31834 DATA OSBORN
31835 DATA MERCER
31836 DATA BENDER
31837 DATA FRANCO
31838 DATA ROWLAND
31839 DATA SYKES
31840 DATA BENJAMIN
31841 DATA TRAVIS
31842 DATA PICKETT
31843 DATA CRANE
31844 DATA SEARS
31845 DATA MAYO
31846 DATA DUNLAP
31847 DATA HAYDEN
31848 DATA WILDER
31849 DATA MCKAY
31850 DATA COFFEY
31851 DATA MCCARTY
31852 DATA EWING
31853 DATA COOLEY
31854 DATA VAUGHAN
31855 DATA BONNER
31856 DATA COTTON
31857 DATA HOLDER
31858 DATA STARK
31859 DATA FERRELL
31860 DATA CANTRELL
31861 DATA FULTON
31862 DATA LYNN
31863 DATA LOTT
31864 DATA CALDERON
31865 DATA ROSA
31866 DATA POLLARD
31867 DATA HOOPER
31868 DATA BURCH
31869 DATA MULLEN
31870 DATA FRY
31871 DATA RIDDLE
31872 DATA LEVY
31873 DATA DAVID
31874 DATA DUKE
31875 DATA ODONNELL
31876 DATA GUY
31877 DATA MICHAEL
31878 DATA BRITT
31879 DATA FREDERICK
31880 DATA DAUGHERTY
31881 DATA BERGER
31882 DATA DILLARD
31883 DATA ALSTON
31884 DATA JARVIS
31885 DATA FRYE
31886 DATA RIGGS
31887 DATA CHANEY
31888 DATA ODOM
31889 DATA DUFFY
31890 DATA FITZPATRICK
31891 DATA VALENZUELA
32000 DATA $
 

 

A funny thing happens when you drop the numeric data. 
It means they can be dropped on the other versions, which drops 3564 string reads, and ASCII to float conversions. 
Is this where your speedup is actually coming from?

Results with 891 names, no numbers in data

Plus/4                                          417
Plus/4 with screen blanked for sort 292
MC-10 New BASIC    270 seconds (the 16 bit string compare may be slowing this down)
MC-10                     286 seconds (this can be sped up just under 3% with a software patch that can be installed at runtime, no ROM change)
Apple II Plus            337 seconds
Apple II (1982 or later with accelerator) ~120 seconds
I don't have one of those boards to test with, so I made a conservative division using the MHz listed on the internet.
Later boards were faster, and a modern 20MHz accelerator will drop that below 20 seconds.
This is why I suggested trying to stay in the early years, and higher CPU speeds became more common after 1985.
The Apple Language System would be somewhat the equivalent of Fast BASIC back in the day, but you'd be using PASCAL. 
It also uses a bytecode interpreter.

Edited by JamesD
Link to comment
Share on other sites

8 minutes ago, JamesD said:

A funny thing happens when you drop the numeric data. 
It means they can be dropped on the other versions, which drops 3564 string reads, and ASCII to float conversions. 
Is this where your speedup is actually coming from?

 I wondered that, and put them back in. Didn't really make much difference.  But as noted above, 90%+ of the time elapsed is on the sort routine with this benchmark.

Link to comment
Share on other sites

1 hour ago, drpeter said:

Interesting, have checked Altirra set-up, all seems to be OK, run with a couple of different XEX/ROMs for TB 1.5, all give same result.

 

Also, seems about in line with what you'd expect- 3-4 times faster than Atari BASIC.

 

Note that the code assumes a PAL set-up for the timings.

 

What results are you getting?

 

I can't try it on real HW at present as my 1050 isn't working ?

 

So here's the summary:

 

  1. 359 secs on TurboBasic XL v1.5. Impossible to make it run any faster.
  2. 649 secs on Altirra Basic 1.56 + XE04_FP rom... reason for which your timings on Altirra Basic are impossible (if XE_r04 OS rom used).
  3. 211 secs on Altirra Basic 1.56 + XE04_FP rom... on indexed-string array version, by merging your very 1st version with pruned 891 names list. 
  4. On your 2nd-gen code version (runs DOS-less),  TurboBasic CANNOT reach {Altirra Basic + XE04_FP} combined performance.
  5. On my own crafted Sort routine, TurboBasic CANNOT  reach {Altirra Basic + XE04_FP} combined performance, in any of my tests.
  6. Something odd is going with your sample here... The Turbo-Basic vs. Altirra Basic gap is too pronounced... like iterative-reading of Data statements (with 5-digit line-number values) seems particularly faster on TB than Atari-compatible Basic interpreter.

 

NOTE:

  1. What's even more odd is the Data-set increase ratio (891-to-561, 1.58x) and the exec. time reduction ratio (300 to 200, 1.50x)  on your reported Turbo Basic numbers... like it scales linearly with the algorithm... Is this expected? Can't see the same on other results, though...

 

Edited by Faicuai
Link to comment
Share on other sites

22 minutes ago, drpeter said:

 I wondered that, and put them back in. Didn't really make much difference.  But as noted above, 90%+ of the time elapsed is on the sort routine with this benchmark.

Converting from ASCII to BCD might be faster than ASCII to single precision floating point.
It makes around 20 seconds difference give or take a little by machine on MS BASIC.

Clearly, the array indexing is a bit of a roadblock for Atari BASIC.
I wonder about the OSS BASIC XL, and OSS BASIC XE carts. 
The XL manual is copyright 1983, so that also pushes up when a fast version might be possible, and the XL manual mentions string arrays.
BASIC XE has SORTDOWN, and SORTUP commands btw, but that's a bit of a cheat here. 
*edit*
DEEK, and DOKE are also mentioned in the XL manual.

Edited by JamesD
Link to comment
Share on other sites

I'm having trouble getting the ROMs on the ATR you posted to work with Altirra.

 

If I select either of these ROMs they just run the ROM/RAM test and I can't get them to either boot from disk or start BASIC cartridges/internal BASIC.

 

I must be missing something obvious, but I can't see what.

 

Any advice?

Link to comment
Share on other sites

17 hours ago, Faicuai said:

 

Let's put you to the test, then.

 

Attached is a sort routine that I built from zero over the last two days, by simply... being creative.  Have not seen any code, nor I understand the baroque Basic code posted here (except the clean, straightforward FastBasic versions). 

 

I wanted compact, straightforward code, relying on indexed-sorting (no messing with strings' order and content), mathematically bound worst-case performance, zero knowledge of the sample needed, and VERY easy to port to ANY Basic version. I also included a 2^n "cut-the-chase" engine to allow for better performance on larger samples.

 

Here are the results (SURPRISE!!!):

 

A800/Incognito (and Altirra):

 

ROM: XEGS_r04     Atari Basic RevC    S:561 names    Sort: 925.380 sec.    (Antic=OFF)
ROM: XE04_FPfH    MS-Basic II           S:561 names    Sort: 891.205 sec.    (Antic=OFF)
ROM: XE04_FPfH    MS-Basic II           S:561 names    Sort: 744.509 sec.    (Antic=OFF, DEFINT)

ROM: XE04_FPfH    Atari Basic RevC    S:561 names    Sort: 742.706 sec.    (Antic=OFF)
ROM: XE04_FPfH    Altirra Basic 1.56   S:561 names    Sort: 285.697 sec.    (Antic=OFF)

 

Attached are the code samples, which can be immediately imported in Altirra, enabling H: device (on list of devices) and pointing to a folder on your local drive, where you will store these. Boot Altirra with Basic, and issue "ENTER H:SORTBAS7.LST", or boot Microsoft Basic II cart, and issue "LOAD H:SORTBAS7.MSB". Files with extensions ".mst" and ".txt" are Windows-encoded text files for easy viewing out of emulator / hardware.

 

I am really, really looking forward to what comes next...

 

 

sortbas7.lst 14.81 kB · 6 downloads sortbas7.msb 14.79 kB · 5 downloads sortbas7.mst 15 kB · 8 downloads sortbas7.txt 15.02 kB · 10 downloads

 

And here's the FastBasic version of above experimental sort-routine (77 secs. approx. for 561 names), with more documented comments, since the code is much more organized and easier to see (can be run to any test-size, by simply changing value of "S" constant, on declaration header):

 

.FBA is to be opened by FastBasic, .FBT is to be viewed in Windows / Web Browser.

sortbas7.fba sortbas7.fbt

Link to comment
Share on other sites

4 minutes ago, drpeter said:

I'm having trouble getting the ROMs on the ATR you posted to work with Altirra.

 

If I select either of these ROMs they just run the ROM/RAM test and I can't get them to either boot from disk or start BASIC cartridges/internal BASIC.

 

I must be missing something obvious, but I can't see what.

 

Any advice?

 

Bizarre.

 

Try attached. I am running it, now, on Altirra.

 

Let me know if you still have problems...

 

 

AtariOS-800XEGS-Rev04-ULT1M-F1_F4-FP.rom

Edited by Faicuai
Link to comment
Share on other sites

14 minutes ago, Faicuai said:

 

Try attached. I am running it, now, on Altirra.

OK, with that ROM and with this exact code, under PAL, I get the following timings:

 

Altirra 1.56:          5.72, 543.18, 565.92, 584.94 seconds

 

Turbo Basic 1.5:    9.66, 302.62, 314.48, 329.16 seconds

 

Spoiler

0 POKE 559,0:POKE 20,0:POKE 19,0:POKE 18,0:DIM K$(30),O$(30),CL$(1):GOTO 45
10 P=1:F=1.3:G=1:L=0:REM SORT SUBROUTINE
13 L=L+1:P=P*F:G=INT(N/P):IF G<=1 THEN G=1:S=1
14 NW=N-G:REM ? "PASS ";L;" GAP ";G
15 FOR I=0 TO NW-1:RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+G):READ O$
16 IF K$>O$ THEN T=B(I):B(I)=B(I+G):B(I+G)=T:S=0
21 NEXT I:IF S=1 THEN RETURN 
22 GOTO 13
25 ? : ? "CHECKING SORT...  ";:R=0:FOR I=0 TO N-2:REM CHECK SORT ORDER ROUTINE
26 RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+1):READ O$
27 IF K$>O$ THEN ? "OUT OF ORDER ";K$:R=1
30 NEXT I:? :RETURN 
40 FOR I=0 TO N-1:RESTORE 31001+B(I):READ K$:? K$;" ";:NEXT I:RETURN 
44 REM MAIN
45 N=0:CL$=CHR$(125)
51 REM K$=TEMP,N$=NAME ARRAY,S()=SUBSTRING START PTRS
53 REM CL$=CLEAR SCREEN, POKE 752,1 =SYSTEM CURSOR OFF
55 ? CL$:? "COMB SORT MOST POPULAR SURNAMES":? : ? "LOADING DATA...  ";
56 READ K$,L,G,S:IF K$<>"$" THEN N=N+1:GOTO 56
57 DIM B(N-1)
60 FOR I=0 TO N-1:B(I)=I:NEXT I
70 ? N;" NAMES LOADED":? 
72 IF PEEK(20)>250 THEN 72
75 T1=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
80 GOSUB 10:REM SORT ROUTINE
81 IF PEEK(20)>250 THEN 81
82 T2=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
85 GOSUB 25:REM CHECK SORT ORDER
86 IF PEEK(20)>250 THEN 86
87 T3=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
92 GOSUB 40:REM PRINT SORTED LIST
93 IF PEEK(20)>250 THEN 93
94 T4=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
96 ? : ? : ? "ELAPSED: ";T1;",";T2;",";T3;",";T4;" SECONDS"
98 ? : ? : ?"DONE":POKE 752,0:POKE 559,34:END 
31001 DATA SMITH,0,0,1
31002 DATA JOHNSON,0,0,2
31003 DATA WILLIAMS,0,0,3
31004 DATA JONES,0,0,4
31005 DATA BROWN,0,0,5
31006 DATA DAVIS,0,0,6
31007 DATA MILLER,0,0,7
31008 DATA WILSON,0,0,8
31009 DATA MOORE,0,0,9
31010 DATA TAYLOR,0,0,10
31011 DATA ANDERSON,0,0,11
31012 DATA THOMAS,0,0,12
31013 DATA JACKSON,0,0,13
31014 DATA WHITE,0,0,14
31015 DATA HARRIS,0,0,15
31016 DATA MARTIN,0,0,16
31017 DATA THOMPSON,0,0,17
31018 DATA GARCIA,0,0,18
31019 DATA MARTINEZ,0,0,19
31020 DATA ROBINSON,0,0,20
31021 DATA CLARK,0,0,21
31022 DATA RODRIGUEZ,0,0,22
31023 DATA LEWIS,0,0,23
31024 DATA LEE,0,0,24
31025 DATA WALKER,0,0,25
31026 DATA HALL,0,0,26
31027 DATA ALLEN,0,0,27
31028 DATA YOUNG,0,0,28
31029 DATA HERNANDEZ,0,0,29
31030 DATA KING,0,0,30
31031 DATA WRIGHT,0,0,31
31032 DATA LOPEZ,0,0,32
31033 DATA HILL,0,0,33
31034 DATA SCOTT,0,0,34
31035 DATA GREEN,0,0,35
31036 DATA ADAMS,0,0,36
31037 DATA BAKER,0,0,37
31038 DATA GONZALEZ,0,0,38
31039 DATA NELSON,0,0,39
31040 DATA CARTER,0,0,40
31041 DATA MITCHELL,0,0,41
31042 DATA PEREZ,0,0,42
31043 DATA ROBERTS,0,0,43
31044 DATA TURNER,0,0,44
31045 DATA PHILLIPS,0,0,45
31046 DATA CAMPBELL,0,0,46
31047 DATA PARKER,0,0,47
31048 DATA EVANS,0,0,48
31049 DATA EDWARDS,0,0,49
31050 DATA COLLINS,0,0,50
31051 DATA STEWART,0,0,51
31052 DATA SANCHEZ,0,0,52
31053 DATA MORRIS,0,0,53
31054 DATA ROGERS,0,0,54
31055 DATA REED,0,0,55
31056 DATA COOK,0,0,56
31057 DATA MORGAN,0,0,57
31058 DATA BELL,0,0,58
31059 DATA MURPHY,0,0,59
31060 DATA BAILEY,0,0,60
31061 DATA RIVERA,0,0,61
31062 DATA COOPER,0,0,62
31063 DATA RICHARDSON,0,0,63
31064 DATA COX,0,0,64
31065 DATA HOWARD,0,0,65
31066 DATA WARD,0,0,66
31067 DATA TORRES,0,0,67
31068 DATA PETERSON,0,0,68
31069 DATA GRAY,0,0,69
31070 DATA RAMIREZ,0,0,70
31071 DATA JAMES,0,0,71
31072 DATA WATSON,0,0,72
31073 DATA BROOKS,0,0,73
31074 DATA KELLY,0,0,74
31075 DATA SANDERS,0,0,75
31076 DATA PRICE,0,0,76
31077 DATA BENNETT,0,0,77
31078 DATA WOOD,0,0,78
31079 DATA BARNES,0,0,79
31080 DATA ROSS,0,0,80
31081 DATA HENDERSON,0,0,81
31082 DATA COLEMAN,0,0,82
31083 DATA JENKINS,0,0,83
31084 DATA PERRY,0,0,84
31085 DATA POWELL,0,0,85
31086 DATA LONG,0,0,86
31087 DATA PATTERSON,0,0,87
31088 DATA HUGHES,0,0,88
31089 DATA FLORES,0,0,89
31090 DATA WASHINGTON,0,0,90
31091 DATA BUTLER,0,0,91
31092 DATA SIMMONS,0,0,92
31093 DATA FOSTER,0,0,93
31094 DATA GONZALES,0,0,94
31095 DATA BRYANT,0,0,95
31096 DATA ALEXANDER,0,0,96
31097 DATA RUSSELL,0,0,97
31098 DATA GRIFFIN,0,0,98
31099 DATA DIAZ,0,0,99
31100 DATA HAYES,0,0,100
31101 DATA MYERS,0,0,101
31102 DATA FORD,0,0,102
31103 DATA HAMILTON,0,0,103
31104 DATA GRAHAM,0,0,104
31105 DATA SULLIVAN,0,0,105
31106 DATA WALLACE,0,0,106
31107 DATA WOODS,0,0,107
31108 DATA COLE,0,0,108
31109 DATA WEST,0,0,109
31110 DATA JORDAN,0,0,110
31111 DATA OWENS,0,0,111
31112 DATA REYNOLDS,0,0,112
31113 DATA FISHER,0,0,113
31114 DATA ELLIS,0,0,114
31115 DATA HARRISON,0,0,115
31116 DATA GIBSON,0,0,116
31117 DATA MCDONALD,0,0,117
31118 DATA CRUZ,0,0,118
31119 DATA MARSHALL,0,0,119
31120 DATA ORTIZ,0,0,120
31121 DATA GOMEZ,0,0,121
31122 DATA MURRAY,0,0,122
31123 DATA FREEMAN,0,0,123
31124 DATA WELLS,0,0,0
31125 DATA WEBB,0,0,125
31126 DATA SIMPSON,0,0,126
31127 DATA STEVENS,0,0,127
31128 DATA TUCKER,0,0,128
31129 DATA PORTER,0,0,129
31130 DATA HUNTER,0,0,130
31131 DATA HICKS,0,0,131
31132 DATA CRAWFORD,0,0,132
31133 DATA HENRY,0,0,133
31134 DATA BOYD,0,0,134
31135 DATA MASON,0,0,135
31136 DATA MORALES,0,0,136
31137 DATA KENNEDY,0,0,137
31138 DATA WARREN,0,0,138
31139 DATA DIXON,0,0,139
31140 DATA RAMOS,0,0,140
31141 DATA REYES,0,0,141
31142 DATA BURNS,0,0,142
31143 DATA GORDON,0,0,143
31144 DATA SHAW,0,0,144
31145 DATA HOLMES,0,0,145
31146 DATA RICE,0,0,146
31147 DATA ROBERTSON,0,0,147
31148 DATA HUNT,0,0,148
31149 DATA BLACK,0,0,149
31150 DATA DANIELS,0,0,150
31151 DATA PALMER,0,0,151
31152 DATA MILLS,0,0,152
31153 DATA NICHOLS,0,0,153
31154 DATA GRANT,0,0,154
31155 DATA KNIGHT,0,0,155
31156 DATA FERGUSON,0,0,156
31157 DATA ROSE,0,0,157
31158 DATA STONE,0,0,158
31159 DATA HAWKINS,0,0,159
31160 DATA DUNN,0,0,160
31161 DATA PERKINS,0,0,161
31162 DATA HUDSON,0,0,162
31163 DATA SPENCER,0,0,163
31164 DATA GARDNER,0,0,164
31165 DATA STEPHENS,0,0,165
31166 DATA PAYNE,0,0,166
31167 DATA PIERCE,0,0,167
31168 DATA BERRY,0,0,168
31169 DATA MATTHEWS,0,0,169
31170 DATA ARNOLD,0,0,170
31171 DATA WAGNER,0,0,171
31172 DATA WILLIS,0,0,172
31173 DATA RAY,0,0,173
31174 DATA WATKINS,0,0,174
31175 DATA OLSON,0,0,175
31176 DATA CARROLL,0,0,176
31177 DATA DUNCAN,0,0,177
31178 DATA SNYDER,0,0,178
31179 DATA HART,0,0.054,179
31180 DATA CUNNINGHAM,0,0,180
31181 DATA BRADLEY,0,0,181
31182 DATA LANE,0,0,182
31183 DATA ANDREWS,0,0,183
31184 DATA RUIZ,0,0,184
31185 DATA HARPER,0,0,185
31186 DATA FOX,0,0,186
31187 DATA RILEY,0,0,187
31188 DATA ARMSTRONG,0,0,188
31189 DATA CARPENTER,0,0,189
31190 DATA WEAVER,0,0,190
31191 DATA GREENE,0,0,191
31192 DATA LAWRENCE,0,0,192
31193 DATA ELLIOTT,0,0,193
31194 DATA CHAVEZ,0,0,194
31195 DATA SIMS,0,0,195
31196 DATA AUSTIN,0,0,196
31197 DATA PETERS,0,0,197
31198 DATA KELLEY,0,0,198
31199 DATA FRANKLIN,0,0,199
31200 DATA LAWSON,0,0,200
31201 DATA FIELDS,0,0,201
31202 DATA GUTIERREZ,0,0,202
31203 DATA RYAN,0,0,203
31204 DATA SCHMIDT,0,0,204
31205 DATA CARR,0,0,205
31206 DATA VASQUEZ,0,0,206
31207 DATA CASTILLO,0,0,207
31208 DATA WHEELER,0,0,208
31209 DATA CHAPMAN,0,0,209
31210 DATA OLIVER,0,0,210
31211 DATA MONTGOMERY,0,0,211
31212 DATA RICHARDS,0,0,212
31213 DATA WILLIAMSON,0,0,213
31214 DATA JOHNSTON,0,0,214
31215 DATA BANKS,0,0,215
31216 DATA MEYER,0,0,216
31217 DATA BISHOP,0,0,217
31218 DATA MCCOY,0,0,218
31219 DATA HOWELL,0,0,219
31220 DATA ALVAREZ,0,0,220
31221 DATA MORRISON,0,0,221
31222 DATA HANSEN,0,0,222
31223 DATA FERNANDEZ,0,0,223
31224 DATA GARZA,0,0,224
31225 DATA HARVEY,0,0,225
31226 DATA LITTLE,0,0,226
31227 DATA BURTON,0,0,227
31228 DATA STANLEY,0,0,228
31229 DATA NGUYEN,114402,0.046,229
31230 DATA GEORGE,114402,0.046,230
31231 DATA JACOBS,114402,0.046,231
31232 DATA REID,114402,0.046,232
31233 DATA KIM,111915,0.045,233
31234 DATA FULLER,111915,0.045,234
31235 DATA LYNCH,111915,0.045,235
31236 DATA DEAN,111915,0.045,236
31237 DATA GILBERT,111915,0.045,237
31238 DATA GARRETT,111915,0.045,238
31239 DATA ROMERO,111915,0.045,239
31240 DATA WELCH,109428,0.044,240
31241 DATA LARSON,109428,0.044,241
31242 DATA FRAZIER,109428,0.044,242
31243 DATA BURKE,109428,0.044,243
31244 DATA HANSON,106941,0.043,244
31245 DATA DAY,106941,0.043,245
31246 DATA MENDOZA,106941,0.043,246
31247 DATA MORENO,106941,0.043,247
31248 DATA BOWMAN,106941,0.043,248
31249 DATA MEDINA,104454,0.042,249
31250 DATA FOWLER,104454,0.042,250
31251 DATA BREWER,104454,0.042,251
31252 DATA HOFFMAN,104454,0.042,252
31253 DATA CARLSON,104454,0.042,253
31254 DATA SILVA,104454,0.042,254
31255 DATA PEARSON,104454,0.042,255
31256 DATA HOLLAND,104454,0.042,256
31257 DATA DOUGLAS,101967,0.041,257
31258 DATA FLEMING,101967,0.041,258
31259 DATA JENSEN,101967,0.041,259
31260 DATA VARGAS,101967,0.041,260
31261 DATA BYRD,101967,0.041,261
31262 DATA DAVIDSON,101967,0.041,262
31263 DATA HOPKINS,101967,0.041,263
31264 DATA MAY,99480,0.04,264
31265 DATA TERRY,99480,0.04,265
31266 DATA HERRERA,99480,0.04,266
31267 DATA WADE,99480,0.04,267
31268 DATA SOTO,99480,0.04,268
31269 DATA WALTERS,99480,0.04,269
31270 DATA CURTIS,99480,0.04,270
31271 DATA NEAL,96993,0.039,271
31272 DATA CALDWELL,96993,0.039,272
31273 DATA LOWE,96993,0.039,273
31274 DATA JENNINGS,96993,0.039,274
31275 DATA BARNETT,96993,0.039,275
31276 DATA GRAVES,96993,0.039,276
31277 DATA JIMENEZ,96993,0.039,277
31278 DATA HORTON,96993,0.039,278
31279 DATA SHELTON,96993,0.039,279
31280 DATA BARRETT,96993,0.039,280
31281 DATA OBRIEN,96993,0.039,281
31282 DATA CASTRO,96993,0.039,282
31283 DATA SUTTON,94506,0.038,283
31284 DATA GREGORY,94506,0.038,284
31285 DATA MCKINNEY,94506,0.038,285
31286 DATA LUCAS,94506,0.038,286
31287 DATA MILES,94506,0.038,287
31288 DATA CRAIG,94506,0.038,288
31289 DATA RODRIQUEZ,92019,0.037,289
31290 DATA CHAMBERS,92019,0.037,290
31291 DATA HOLT,92019,0.037,291
31292 DATA LAMBERT,92019,0.037,292
31293 DATA FLETCHER,92019,0.037,293
31294 DATA WATTS,92019,0.037,294
31295 DATA BATES,92019,0.037,295
31296 DATA HALE,92019,0.037,296
31297 DATA RHODES,92019,0.037,297
31298 DATA PENA,92019,0.037,298
31299 DATA BECK,92019,0.037,299
31300 DATA NEWMAN,89532,0.036,300
31301 DATA HAYNES,89532,0.036,301
31302 DATA MCDANIEL,89532,0.036,302
31303 DATA MENDEZ,89532,0.036,303
31304 DATA BUSH,89532,0.036,304
31305 DATA VAUGHN,89532,0.036,305
31306 DATA PARKS,87045,0.035,306
31307 DATA DAWSON,87045,0.035,307
31308 DATA SANTIAGO,87045,0.035,308
31309 DATA NORRIS,87045,0.035,309
31310 DATA HARDY,87045,0.035,310
31311 DATA LOVE,87045,0.035,311
31312 DATA STEELE,87045,0.035,312
31313 DATA CURRY,87045,0.035,313
31314 DATA POWERS,87045,0.035,314
31315 DATA SCHULTZ,87045,0.035,315
31316 DATA BARKER,87045,0.035,316
31317 DATA GUZMAN,84558,0.034,317
31318 DATA PAGE,84558,0.034,318
31319 DATA MUNOZ,84558,0.034,319
31320 DATA BALL,84558,0.034,320
31321 DATA KELLER,84558,0.034,321
31322 DATA CHANDLER,84558,0.034,322
31323 DATA WEBER,84558,0.034,323
31324 DATA LEONARD,84558,0.034,324
31325 DATA WALSH,82071,0.033,325
31326 DATA LYONS,82071,0.033,326
31327 DATA RAMSEY,82071,0.033,327
31328 DATA WOLFE,82071,0.033,328
31329 DATA SCHNEIDER,82071,0.033,329
31330 DATA MULLINS,82071,0.033,330
31331 DATA BENSON,82071,0.033,331
31332 DATA SHARP,82071,0.033,332
31333 DATA BOWEN,82071,0.033,333
31334 DATA DANIEL,82071,0.033,334
31335 DATA BARBER,79584,0.032,335
31336 DATA CUMMINGS,79584,0.032,336
31337 DATA HINES,79584,0.032,337
31338 DATA BALDWIN,79584,0.032,338
31339 DATA GRIFFITH,79584,0.032,339
31340 DATA VALDEZ,79584,0.032,340
31341 DATA HUBBARD,79584,0.032,341
31342 DATA SALAZAR,79584,0.032,342
31343 DATA REEVES,79584,0.032,343
31344 DATA WARNER,77097,0.031,344
31345 DATA STEVENSON,77097,0.031,345
31346 DATA BURGESS,77097,0.031,346
31347 DATA SANTOS,77097,0.031,347
31348 DATA TATE,77097,0.031,348
31349 DATA CROSS,77097,0.031,349
31350 DATA GARNER,77097,0.031,350
31351 DATA MANN,77097,0.031,351
31352 DATA MACK,77097,0.031,352
31353 DATA MOSS,77097,0.031,353
31354 DATA THORNTON,77097,0.031,354
31355 DATA DENNIS,77097,0.031,355
31356 DATA MCGEE,77097,0.031,356
31357 DATA FARMER,74610,0.03,357
31358 DATA DELGADO,74610,0.03,358
31359 DATA AGUILAR,74610,0.03,359
31360 DATA VEGA,74610,0.03,360
31361 DATA GLOVER,74610,0.03,361
31362 DATA MANNING,74610,0.03,362
31363 DATA COHEN,74610,0.03,363
31364 DATA HARMON,74610,0.03,364
31365 DATA RODGERS,74610,0.03,365
31366 DATA ROBBINS,74610,0.03,366
31367 DATA NEWTON,74610,0.03,367
31368 DATA TODD,74610,0.03,368
31369 DATA BLAIR,74610,0.03,369
31370 DATA HIGGINS,74610,0.03,370
31371 DATA INGRAM,74610,0.03,371
31372 DATA REESE,74610,0.03,372
31373 DATA CANNON,74610,0.03,373
31374 DATA STRICKLAND,74610,0.03,374
31375 DATA TOWNSEND,74610,0.03,375
31376 DATA POTTER,74610,0.03,376
31377 DATA GOODWIN,74610,0.03,377
31378 DATA WALTON,74610,0.03,378
31379 DATA ROWE,72123,0.029,379
31380 DATA HAMPTON,72123,0.029,380
31381 DATA ORTEGA,72123,0.029,381
31382 DATA PATTON,72123,0.029,382
31383 DATA SWANSON,72123,0.029,383
31384 DATA JOSEPH,72123,0.029,384
31385 DATA FRANCIS,72123,0.029,385
31386 DATA GOODMAN,72123,0.029,386
31387 DATA MALDONADO,72123,0.029,387
31388 DATA YATES,72123,0.029,388
31389 DATA BECKER,72123,0.029,389
31390 DATA ERICKSON,72123,0.029,390
31391 DATA HODGES,72123,0.029,391
31392 DATA RIOS,72123,0.029,392
31393 DATA CONNER,72123,0.029,393
31394 DATA ADKINS,72123,0.029,394
31395 DATA WEBSTER,69636,0.028,395
31396 DATA NORMAN,69636,0.028,396
31397 DATA MALONE,69636,0.028,397
31398 DATA HAMMOND,69636,0.028,398
31399 DATA FLOWERS,69636,0.028,399
31400 DATA COBB,69636,0.028,400
31401 DATA MOODY,69636,0.028,401
31402 DATA QUINN,69636,0.028,402
31403 DATA BLAKE,69636,0.028,403
31404 DATA MAXWELL,69636,0.028,404
31405 DATA POPE,69636,0.028,405
31406 DATA FLOYD,67149,0.027,406
31407 DATA OSBORNE,67149,0.027,407
31408 DATA PAUL,67149,0.027,408
31409 DATA MCCARTHY,67149,0.027,409
31410 DATA GUERRERO,67149,0.027,410
31411 DATA LINDSEY,67149,0.027,411
31412 DATA ESTRADA,67149,0.027,412
31413 DATA SANDOVAL,67149,0.027,413
31414 DATA GIBBS,67149,0.027,414
31415 DATA TYLER,67149,0.027,415
31416 DATA GROSS,67149,0.027,416
31417 DATA FITZGERALD,67149,0.027,417
31418 DATA STOKES,67149,0.027,418
31419 DATA DOYLE,67149,0.027,419
31420 DATA SHERMAN,67149,0.027,420
31421 DATA SAUNDERS,67149,0.027,421
31422 DATA WISE,67149,0.027,422
31423 DATA COLON,67149,0.027,423
31424 DATA GILL,67149,0.027,424
31425 DATA ALVARADO,67149,0.027,425
31426 DATA GREER,64662,0.026,426
31427 DATA PADILLA,64662,0.026,427
31428 DATA SIMON,64662,0.026,428
31429 DATA WATERS,64662,0.026,429
31430 DATA NUNEZ,64662,0.026,430
31431 DATA BALLARD,64662,0.026,431
31432 DATA SCHWARTZ,64662,0.026,432
31433 DATA MCBRIDE,64662,0.026,433
31434 DATA HOUSTON,64662,0.026,434
31435 DATA CHRISTENSEN,64662,0.026,435
31436 DATA KLEIN,64662,0.026,436
31437 DATA PRATT,64662,0.026,437
31438 DATA BRIGGS,64662,0.026,438
31439 DATA PARSONS,64662,0.026,439
31440 DATA MCLAUGHLIN,64662,0.026,440
31441 DATA ZIMMERMAN,64662,0.026,441
31442 DATA FRENCH,64662,0.026,442
31443 DATA BUCHANAN,64662,0.026,443
31444 DATA MORAN,64662,0.026,444
31445 DATA COPELAND,62175,0.025,445
31446 DATA ROY,62175,0.025,446
31447 DATA PITTMAN,62175,0.025,447
31448 DATA BRADY,62175,0.025,448
31449 DATA MCCORMICK,62175,0.025,449
31450 DATA HOLLOWAY,62175,0.025,450
31451 DATA BROCK,62175,0.025,451
31452 DATA POOLE,62175,0.025,452
31453 DATA FRANK,62175,0.025,453
31454 DATA LOGAN,62175,0.025,454
31455 DATA OWEN,62175,0.025,455
31456 DATA BASS,62175,0.025,456
31457 DATA MARSH,62175,0.025,457
31458 DATA DRAKE,62175,0.025,458
31459 DATA WONG,62175,0.025,459
31460 DATA JEFFERSON,62175,0.025,460
31461 DATA PARK,62175,0.025,461
31462 DATA MORTON,62175,0.025,462
31463 DATA ABBOTT,62175,0.025,463
31464 DATA SPARKS,62175,0.025,464
31465 DATA PATRICK,59688,0.024,465
31466 DATA NORTON,59688,0.024,466
31467 DATA HUFF,59688,0.024,467
31468 DATA CLAYTON,59688,0.024,468
31469 DATA MASSEY,59688,0.024,469
31470 DATA LLOYD,59688,0.024,470
31471 DATA FIGUEROA,59688,0.024,471
31472 DATA CARSON,59688,0.024,472
31473 DATA BOWERS,59688,0.024,473
31474 DATA ROBERSON,59688,0.024,474
31475 DATA BARTON,59688,0.024,475
31476 DATA TRAN,59688,0.024,476
31477 DATA LAMB,59688,0.024,477
31478 DATA HARRINGTON,59688,0.024,478
31479 DATA CASEY,59688,0.024,479
31480 DATA BOONE,59688,0.024,480
31481 DATA CORTEZ,59688,0.024,481
31482 DATA CLARKE,59688,0.024,482
31483 DATA MATHIS,59688,0.024,483
31484 DATA SINGLETON,59688,0.024,484
31485 DATA WILKINS,59688,0.024,485
31486 DATA CAIN,59688,0.024,486
31487 DATA BRYAN,59688,0.024,487
31488 DATA UNDERWOOD,59688,0.024,488
31489 DATA HOGAN,59688,0.024,489
31490 DATA MCKENZIE,57201,0.023,490
31491 DATA COLLIER,57201,0.023,491
31492 DATA LUNA,57201,0.023,492
31493 DATA PHELPS,57201,0.023,493
31494 DATA MCGUIRE,57201,0.023,494
31495 DATA ALLISON,57201,0.023,495
31496 DATA BRIDGES,57201,0.023,496
31497 DATA WILKERSON,57201,0.023,497
31498 DATA NASH,57201,0.023,498
31499 DATA SUMMERS,57201,0.023,499
31500 DATA ATKINS,57201,0.023,500
31501 DATA WILCOX,57201,0.023,501
31502 DATA PITTS,57201,0.023,502
31503 DATA CONLEY,57201,0.023,503
31504 DATA MARQUEZ,57201,0.023,504
31505 DATA BURNETT,57201,0.023,505
31506 DATA RICHARD,57201,0.023,506
31507 DATA COCHRAN,57201,0.023,507
31508 DATA CHASE,57201,0.023,508
31509 DATA DAVENPORT,57201,0.023,509
31510 DATA HOOD,57201,0.023,510
31511 DATA GATES,57201,0.023,511
31512 DATA CLAY,57201,0.023,512
31513 DATA AYALA,57201,0.023,513
31514 DATA SAWYER,57201,0.023,514
31515 DATA ROMAN,57201,0.023,515
31516 DATA VAZQUEZ,57201,0.023,516
31517 DATA DICKERSON,57201,0.023,517
31518 DATA HODGE,54714,0.022,518
31519 DATA ACOSTA,54714,0.022,519
31520 DATA FLYNN,54714,0.022,520
31521 DATA ESPINOZA,54714,0.022,521
31522 DATA NICHOLSON,54714,0.022,522
31523 DATA MONROE,54714,0.022,523
31524 DATA WOLF,54714,0.022,524
31525 DATA MORROW,54714,0.022,525
31526 DATA KIRK,54714,0.022,526
31527 DATA RANDALL,54714,0.022,527
31528 DATA ANTHONY,54714,0.022,528
31529 DATA WHITAKER,54714,0.022,529
31530 DATA OCONNOR,54714,0.022,530
31531 DATA SKINNER,54714,0.022,531
31532 DATA WARE,54714,0.022,532
31533 DATA MOLINA,54714,0.022,533
31534 DATA KIRBY,54714,0.022,534
31535 DATA HUFFMAN,54714,0.022,535
31536 DATA BRADFORD,54714,0.022,536
31537 DATA CHARLES,54714,0.022,537
31538 DATA GILMORE,54714,0.022,538
31539 DATA DOMINGUEZ,54714,0.022,539
31540 DATA ONEAL,54714,0.022,540
31541 DATA BRUCE,54714,0.022,541
31542 DATA LANG,52227,0.021,542
31543 DATA COMBS,52227,0.021,543
31544 DATA KRAMER,52227,0.021,544
31545 DATA HEATH,52227,0.021,545
31546 DATA HANCOCK,52227,0.021,546
31547 DATA GALLAGHER,52227,0.021,547
31548 DATA GAINES,52227,0.021,548
31549 DATA SHAFFER,52227,0.021,549
31550 DATA SHORT,52227,0.021,550
31551 DATA WIGGINS,52227,0.021,551
31552 DATA MATHEWS,52227,0.021,552
31553 DATA MCCLAIN,52227,0.021,553
31554 DATA FISCHER,52227,0.021,554
31555 DATA WALL,52227,0.021,555
31556 DATA SMALL,52227,0.021,556
31557 DATA MELTON,52227,0.021,557
31558 DATA HENSLEY,52227,0.021,558
31559 DATA BOND,52227,0.021,559
31560 DATA DYER,52227,0.021,560
31561 DATA CAMERON,52227,0.021,561
31562 DATA GRIMES,52227,0.021,562
31563 DATA CONTRERAS,52227,0.021,563
31564 DATA CHRISTIAN,52227,0.021,564
31565 DATA WYATT,52227,0.021,565
31566 DATA BAXTER,52227,0.021,566
31567 DATA SNOW,52227,0.021,567
31568 DATA MOSLEY,52227,0.021,568
31569 DATA SHEPHERD,52227,0.021,569
31570 DATA LARSEN,52227,0.021,570
31571 DATA HOOVER,52227,0.021,571
31572 DATA BEASLEY,49740,0.02,572
31573 DATA GLENN,49740,0.02,573
31574 DATA PETERSEN,49740,0.02,574
31575 DATA WHITEHEAD,49740,0.02,575
31576 DATA MEYERS,49740,0.02,576
31577 DATA KEITH,49740,0.02,577
31578 DATA GARRISON,49740,0.02,578
31579 DATA VINCENT,49740,0.02,579
31580 DATA SHIELDS,49740,0.02,580
31581 DATA HORN,49740,0.02,581
31582 DATA SAVAGE,49740,0.02,582
31583 DATA OLSEN,49740,0.02,583
31584 DATA SCHROEDER,49740,0.02,584
31585 DATA HARTMAN,49740,0.02,585
31586 DATA WOODARD,49740,0.02,586
31587 DATA MUELLER,49740,0.02,587
31588 DATA KEMP,49740,0.02,588
31589 DATA DELEON,49740,0.02,589
31590 DATA BOOTH,49740,0.02,590
31591 DATA PATEL,49740,0.02,591
31592 DATA CALHOUN,49740,0.02,592
31593 DATA WILEY,49740,0.02,593
31594 DATA EATON,49740,0.02,594
31595 DATA CLINE,49740,0.02,595
31596 DATA NAVARRO,49740,0.02,596
31597 DATA HARRELL,49740,0.02,597
31598 DATA LESTER,49740,0.02,598
31599 DATA HUMPHREY,49740,0.02,599
31600 DATA PARRISH,49740,0.02,600
31601 DATA DURAN,49740,0.02,601
31602 DATA HUTCHINSON,49740,0.02,602
31603 DATA HESS,49740,0.02,603
31604 DATA DORSEY,49740,0.02,604
31605 DATA BULLOCK,49740,0.02,605
31606 DATA ROBLES,49740,0.02,606
31607 DATA BEARD,47253,0.019,607
31608 DATA DALTON,47253,0.019,608
31609 DATA AVILA,47253,0.019,609
31610 DATA VANCE,47253,0.019,610
31611 DATA RICH,47253,0.019,611
31612 DATA BLACKWELL,47253,0.019,612
31613 DATA YORK,47253,0.019,613
31614 DATA JOHNS,47253,0.019,614
31615 DATA BLANKENSHIP,47253,0.019,615
31616 DATA TREVINO,47253,0.019,616
31617 DATA SALINAS,47253,0.019,617
31618 DATA CAMPOS,47253,0.019,618
31619 DATA PRUITT,47253,0.019,619
31620 DATA MOSES,47253,0.019,620
31621 DATA CALLAHAN,47253,0.019,621
31622 DATA GOLDEN,47253,0.019,622
31623 DATA MONTOYA,47253,0.019,623
31624 DATA HARDIN,47253,0.019,624
31625 DATA GUERRA,47253,0.019,625
31626 DATA MCDOWELL,47253,0.019,626
31627 DATA CAREY,47253,0.019,627
31628 DATA STAFFORD,47253,0.019,628
31629 DATA GALLEGOS,47253,0.019,629
31630 DATA HENSON,47253,0.019,630
31631 DATA WILKINSON,47253,0.019,631
31632 DATA BOOKER,47253,0.019,632
31633 DATA MERRITT,47253,0.019,633
31634 DATA MIRANDA,47253,0.019,634
31635 DATA ATKINSON,47253,0.019,635
31636 DATA ORR,47253,0.019,636
31637 DATA DECKER,47253,0.019,637
31638 DATA HOBBS,47253,0.019,638
31639 DATA PRESTON,47253,0.019,639
31640 DATA TANNER,47253,0.019,640
31641 DATA KNOX,47253,0.019,641
31642 DATA PACHECO,47253,0.019,642
31643 DATA STEPHENSON,44766,0.018,643
31644 DATA GLASS,44766,0.018,644
31645 DATA ROJAS,44766,0.018,645
31646 DATA SERRANO,44766,0.018,646
31647 DATA MARKS,44766,0.018,647
31648 DATA HICKMAN,44766,0.018,648
31649 DATA ENGLISH,44766,0.018,649
31650 DATA SWEENEY,44766,0.018,650
31651 DATA STRONG,44766,0.018,651
31652 DATA PRINCE,44766,0.018,652
31653 DATA MCCLURE,44766,0.018,653
31654 DATA CONWAY,44766,0.018,654
31655 DATA WALTER,44766,0.018,655
31656 DATA ROTH,44766,0.018,656
31657 DATA MAYNARD,44766,0.018,657
31658 DATA FARRELL,44766,0.018,658
31659 DATA LOWERY,44766,0.018,659
31660 DATA HURST,44766,0.018,660
31661 DATA NIXON,44766,0.018,661
31662 DATA WEISS,44766,0.018,662
31663 DATA TRUJILLO,44766,0.018,663
31664 DATA ELLISON,44766,0.018,664
31665 DATA SLOAN,44766,0.018,665
31666 DATA JUAREZ,44766,0.018,666
31667 DATA WINTERS,44766,0.018,667
31668 DATA MCLEAN,44766,0.018,668
31669 DATA RANDOLPH,44766,0.018,669
31670 DATA LEON,44766,0.018,670
31671 DATA BOYER,44766,0.018,671
31672 DATA VILLARREAL,44766,0.018,672
31673 DATA MCCALL,44766,0.018,673
31674 DATA GENTRY,44766,0.018,674
31675 DATA CARRILLO,42279,0.017,675
31676 DATA KENT,42279,0.017,676
31677 DATA AYERS,42279,0.017,677
31678 DATA LARA,42279,0.017,678
31679 DATA SHANNON,42279,0.017,679
31680 DATA SEXTON,42279,0.017,680
31681 DATA PACE,42279,0.017,681
31682 DATA HULL,42279,0.017,682
31683 DATA LEBLANC,42279,0.017,683
31684 DATA BROWNING,42279,0.017,684
31685 DATA VELASQUEZ,42279,0.017,685
31686 DATA LEACH,42279,0.017,686
31687 DATA CHANG,42279,0.017,687
31688 DATA HOUSE,42279,0.017,688
31689 DATA SELLERS,42279,0.017,689
31690 DATA HERRING,42279,0.017,690
31691 DATA NOBLE,42279,0.017,691
31692 DATA FOLEY,42279,0.017,692
31693 DATA BARTLETT,42279,0.017,693
31694 DATA MERCADO,42279,0.017,694
31695 DATA LANDRY,42279,0.017,695
31696 DATA DURHAM,42279,0.017,696
31697 DATA WALLS,42279,0.017,697
31698 DATA BARR,42279,0.017,698
31699 DATA MCKEE,42279,0.017,699
31700 DATA BAUER,42279,0.017,700
31701 DATA RIVERS,42279,0.017,701
31702 DATA EVERETT,42279,0.017,702
31703 DATA BRADSHAW,42279,0.017,703
31704 DATA PUGH,42279,0.017,704
31705 DATA VELEZ,42279,0.017,705
31706 DATA RUSH,42279,0.017,706
31707 DATA ESTES,42279,0.017,707
31708 DATA DODSON,42279,0.017,708
31709 DATA MORSE,42279,0.017,709
31710 DATA SHEPPARD,42279,0.017,710
31711 DATA WEEKS,42279,0.017,711
31712 DATA CAMACHO,42279,0.017,712
31713 DATA BEAN,42279,0.017,713
31714 DATA BARRON,42279,0.017,714
31715 DATA LIVINGSTON,42279,0.017,715
31716 DATA MIDDLETON,39792,0.016,716
31717 DATA SPEARS,39792,0.016,717
31718 DATA BRANCH,39792,0.016,718
31719 DATA BLEVINS,39792,0.016,719
31720 DATA CHEN,39792,0.016,720
31721 DATA KERR,39792,0.016,721
31722 DATA MCCONNELL,39792,0.016,722
31723 DATA HATFIELD,39792,0.016,723
31724 DATA HARDING,39792,0.016,724
31725 DATA ASHLEY,39792,0.016,725
31726 DATA SOLIS,39792,0.016,726
31727 DATA HERMAN,39792,0.016,727
31728 DATA FROST,39792,0.016,728
31729 DATA GILES,39792,0.016,729
31730 DATA BLACKBURN,39792,0.016,730
31731 DATA WILLIAM,39792,0.016,731
31732 DATA PENNINGTON,39792,0.016,732
31733 DATA WOODWARD,39792,0.016,733
31734 DATA FINLEY,39792,0.016,734
31735 DATA MCINTOSH,39792,0.016,735
31736 DATA KOCH,39792,0.016,736
31737 DATA BEST,39792,0.016,737
31738 DATA SOLOMON,39792,0.016,738
31739 DATA MCCULLOUGH,39792,0.016,739
31740 DATA DUDLEY,39792,0.016,740
31741 DATA NOLAN,39792,0.016,741
31742 DATA BLANCHARD,39792,0.016,742
31743 DATA RIVAS,39792,0.016,743
31744 DATA BRENNAN,39792,0.016,744
31745 DATA MEJIA,39792,0.016,745
31746 DATA KANE,39792,0.016,746
31747 DATA BENTON,39792,0.016,747
31748 DATA JOYCE,39792,0.016,748
31749 DATA BUCKLEY,39792,0.016,749
31750 DATA HALEY,39792,0.016,750
31751 DATA VALENTINE,39792,0.016,751
31752 DATA MADDOX,39792,0.016,752
31753 DATA RUSSO,39792,0.016,753
31754 DATA MCKNIGHT,39792,0.016,754
31755 DATA BUCK,39792,0.016,755
31756 DATA MOON,39792,0.016,756
31757 DATA MCMILLAN,39792,0.016,757
31758 DATA CROSBY,39792,0.016,758
31759 DATA BERG,39792,0.016,759
31760 DATA DOTSON,39792,0.016,760
31761 DATA MAYS,39792,0.016,761
31762 DATA ROACH,39792,0.016,762
31763 DATA CHURCH,39792,0.016,763
31764 DATA CHAN,39792,0.016,764
31765 DATA RICHMOND,39792,0.016,765
31766 DATA MEADOWS,39792,0.016,766
31767 DATA FAULKNER,39792,0.016,767
31768 DATA ONEILL,39792,0.016,768
31769 DATA KNAPP,39792,0.016,769
31770 DATA KLINE,37305,0.015,770
31771 DATA BARRY,37305,0.015,771
31772 DATA OCHOA,37305,0.015,772
31773 DATA JACOBSON,37305,0.015,773
31774 DATA GAY,37305,0.015,774
31775 DATA AVERY,37305,0.015,775
31776 DATA HENDRICKS,37305,0.015,776
31777 DATA HORNE,37305,0.015,777
31778 DATA SHEPARD,37305,0.015,778
31779 DATA HEBERT,37305,0.015,779
31780 DATA CHERRY,37305,0.015,780
31781 DATA CARDENAS,37305,0.015,781
31782 DATA MCINTYRE,37305,0.015,782
31783 DATA WHITNEY,37305,0.015,783
31784 DATA WALLER,37305,0.015,784
31785 DATA HOLMAN,37305,0.015,785
31786 DATA DONALDSON,37305,0.015,786
31787 DATA CANTU,37305,0.015,787
31788 DATA TERRELL,37305,0.015,788
31789 DATA MORIN,37305,0.015,789
31790 DATA GILLESPIE,37305,0.015,790
31791 DATA FUENTES,37305,0.015,791
31792 DATA TILLMAN,37305,0.015,792
31793 DATA SANFORD,37305,0.015,793
31794 DATA BENTLEY,37305,0.015,794
31795 DATA PECK,37305,0.015,795
31796 DATA KEY,37305,0.015,796
31797 DATA SALAS,37305,0.015,797
31798 DATA ROLLINS,37305,0.015,798
31799 DATA GAMBLE,37305,0.015,799
31800 DATA DICKSON,37305,0.015,800
31801 DATA BATTLE,37305,0.015,801
31802 DATA SANTANA,37305,0.015,802
31803 DATA CABRERA,37305,0.015,803
31804 DATA CERVANTES,37305,0.015,804
31805 DATA HOWE,37305,0.015,805
31806 DATA HINTON,37305,0.015,806
31807 DATA HURLEY,37305,0.015,807
31808 DATA SPENCE,37305,0.015,808
31809 DATA ZAMORA,37305,0.015,809
31810 DATA YANG,37305,0.015,810
31811 DATA MCNEIL,37305,0.015,811
31812 DATA SUAREZ,37305,0.015,812
31813 DATA CASE,37305,0.015,813
31814 DATA PETTY,37305,0.015,814
31815 DATA GOULD,37305,0.015,815
31816 DATA MCFARLAND,37305,0.015,816
31817 DATA SAMPSON,37305,0.015,817
31818 DATA CARVER,37305,0.015,818
31819 DATA BRAY,37305,0.015,819
31820 DATA ROSARIO,37305,0.015,820
31821 DATA MACDONALD,37305,0.015,821
31822 DATA STOUT,37305,0.015,822
31823 DATA HESTER,37305,0.015,823
31824 DATA MELENDEZ,37305,0.015,824
31825 DATA DILLON,37305,0.015,825
31826 DATA FARLEY,37305,0.015,826
31827 DATA HOPPER,37305,0.015,827
31828 DATA GALLOWAY,37305,0.015,828
31829 DATA POTTS,37305,0.015,829
31830 DATA BERNARD,37305,0.015,830
31831 DATA JOYNER,34818,0.014,831
31832 DATA STEIN,34818,0.014,832
31833 DATA AGUIRRE,34818,0.014,833
31834 DATA OSBORN,34818,0.014,834
31835 DATA MERCER,34818,0.014,835
31836 DATA BENDER,34818,0.014,836
31837 DATA FRANCO,34818,0.014,837
31838 DATA ROWLAND,34818,0.014,838
31839 DATA SYKES,34818,0.014,839
31840 DATA BENJAMIN,34818,0.014,840
31841 DATA TRAVIS,34818,0.014,841
31842 DATA PICKETT,34818,0.014,842
31843 DATA CRANE,34818,0.014,843
31844 DATA SEARS,34818,0.014,844
31845 DATA MAYO,34818,0.014,845
31846 DATA DUNLAP,34818,0.014,846
31847 DATA HAYDEN,34818,0.014,847
31848 DATA WILDER,34818,0.014,848
31849 DATA MCKAY,34818,0.014,849
31850 DATA COFFEY,34818,0.014,850
31851 DATA MCCARTY,34818,0.014,851
31852 DATA EWING,34818,0.014,852
31853 DATA COOLEY,34818,0.014,853
31854 DATA VAUGHAN,34818,0.014,854
31855 DATA BONNER,34818,0.014,855
31856 DATA COTTON,34818,0.014,856
31857 DATA HOLDER,34818,0.014,857
31858 DATA STARK,34818,0.014,858
31859 DATA FERRELL,34818,0.014,859
31860 DATA CANTRELL,34818,0.014,860
31861 DATA FULTON,34818,0.014,861
31862 DATA LYNN,34818,0.014,862
31863 DATA LOTT,34818,0.014,863
31864 DATA CALDERON,34818,0.014,864
31865 DATA ROSA,34818,0.014,865
31866 DATA POLLARD,34818,0.014,866
31867 DATA HOOPER,34818,0.014,867
31868 DATA BURCH,34818,0.014,868
31869 DATA MULLEN,34818,0.014,869
31870 DATA FRY,34818,0.014,870
31871 DATA RIDDLE,34818,0.014,871
31872 DATA LEVY,34818,0.014,872
31873 DATA DAVID,34818,0.014,873
31874 DATA DUKE,34818,0.014,874
31875 DATA ODONNELL,34818,0.014,875
31876 DATA GUY,34818,0.014,876
31877 DATA MICHAEL,34818,0.014,877
31878 DATA BRITT,34818,0.014,878
31879 DATA FREDERICK,34818,0.014,879
31880 DATA DAUGHERTY,34818,0.014,880
31881 DATA BERGER,34818,0.014,881
31882 DATA DILLARD,34818,0.014,882
31883 DATA ALSTON,34818,0.014,883
31884 DATA JARVIS,34818,0.014,884
31885 DATA FRYE,34818,0.014,885
31886 DATA RIGGS,34818,0.014,886
31887 DATA CHANEY,34818,0.014,887
31888 DATA ODOM,32331,0.013,888
31889 DATA DUFFY,32331,0.013,889
31890 DATA FITZPATRICK,32331,0.013,890
31891 DATA VALENZUELA,32331,0.013,891
32000 DATA $,0,0,0

 

Edited by drpeter
Link to comment
Share on other sites

48 minutes ago, drpeter said:

OK, with that ROM and with this exact code, under PAL, I get the following timings:

 

Altirra 1.56:          5.72, 543.18, 565.92, 584.94 seconds

 

Turbo Basic 1.5:    9.66, 302.62, 314.48, 329.16 seconds

 

  Reveal hidden contents

0 POKE 559,0:POKE 20,0:POKE 19,0:POKE 18,0:DIM K$(30),O$(30),CL$(1):GOTO 45
10 P=1:F=1.3:G=1:L=0:REM SORT SUBROUTINE
13 L=L+1:P=P*F:G=INT(N/P):IF G<=1 THEN G=1:S=1
14 NW=N-G:REM ? "PASS ";L;" GAP ";G
15 FOR I=0 TO NW-1:RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+G):READ O$
16 IF K$>O$ THEN T=B(I):B(I)=B(I+G):B(I+G)=T:S=0
21 NEXT I:IF S=1 THEN RETURN 
22 GOTO 13
25 ? : ? "CHECKING SORT...  ";:R=0:FOR I=0 TO N-2:REM CHECK SORT ORDER ROUTINE
26 RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+1):READ O$
27 IF K$>O$ THEN ? "OUT OF ORDER ";K$:R=1
30 NEXT I:? :RETURN 
40 FOR I=0 TO N-1:RESTORE 31001+B(I):READ K$:? K$;" ";:NEXT I:RETURN 
44 REM MAIN
45 N=0:CL$=CHR$(125)
51 REM K$=TEMP,N$=NAME ARRAY,S()=SUBSTRING START PTRS
53 REM CL$=CLEAR SCREEN, POKE 752,1 =SYSTEM CURSOR OFF
55 ? CL$:? "COMB SORT MOST POPULAR SURNAMES":? : ? "LOADING DATA...  ";
56 READ K$,L,G,S:IF K$<>"$" THEN N=N+1:GOTO 56
57 DIM B(N-1)
60 FOR I=0 TO N-1:B(I)=I:NEXT I
70 ? N;" NAMES LOADED":? 
72 IF PEEK(20)>250 THEN 72
75 T1=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
80 GOSUB 10:REM SORT ROUTINE
81 IF PEEK(20)>250 THEN 81
82 T2=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
85 GOSUB 25:REM CHECK SORT ORDER
86 IF PEEK(20)>250 THEN 86
87 T3=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
92 GOSUB 40:REM PRINT SORTED LIST
93 IF PEEK(20)>250 THEN 93
94 T4=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
96 ? : ? : ? "ELAPSED: ";T1;",";T2;",";T3;",";T4;" SECONDS"
98 ? : ? : ?"DONE":POKE 752,0:POKE 559,34:END 
31001 DATA SMITH,0,0,1
31002 DATA JOHNSON,0,0,2
31003 DATA WILLIAMS,0,0,3
31004 DATA JONES,0,0,4
31005 DATA BROWN,0,0,5
31006 DATA DAVIS,0,0,6
31007 DATA MILLER,0,0,7
31008 DATA WILSON,0,0,8
31009 DATA MOORE,0,0,9
31010 DATA TAYLOR,0,0,10
31011 DATA ANDERSON,0,0,11
31012 DATA THOMAS,0,0,12
31013 DATA JACKSON,0,0,13
31014 DATA WHITE,0,0,14
31015 DATA HARRIS,0,0,15
31016 DATA MARTIN,0,0,16
31017 DATA THOMPSON,0,0,17
31018 DATA GARCIA,0,0,18
31019 DATA MARTINEZ,0,0,19
31020 DATA ROBINSON,0,0,20
31021 DATA CLARK,0,0,21
31022 DATA RODRIGUEZ,0,0,22
31023 DATA LEWIS,0,0,23
31024 DATA LEE,0,0,24
31025 DATA WALKER,0,0,25
31026 DATA HALL,0,0,26
31027 DATA ALLEN,0,0,27
31028 DATA YOUNG,0,0,28
31029 DATA HERNANDEZ,0,0,29
31030 DATA KING,0,0,30
31031 DATA WRIGHT,0,0,31
31032 DATA LOPEZ,0,0,32
31033 DATA HILL,0,0,33
31034 DATA SCOTT,0,0,34
31035 DATA GREEN,0,0,35
31036 DATA ADAMS,0,0,36
31037 DATA BAKER,0,0,37
31038 DATA GONZALEZ,0,0,38
31039 DATA NELSON,0,0,39
31040 DATA CARTER,0,0,40
31041 DATA MITCHELL,0,0,41
31042 DATA PEREZ,0,0,42
31043 DATA ROBERTS,0,0,43
31044 DATA TURNER,0,0,44
31045 DATA PHILLIPS,0,0,45
31046 DATA CAMPBELL,0,0,46
31047 DATA PARKER,0,0,47
31048 DATA EVANS,0,0,48
31049 DATA EDWARDS,0,0,49
31050 DATA COLLINS,0,0,50
31051 DATA STEWART,0,0,51
31052 DATA SANCHEZ,0,0,52
31053 DATA MORRIS,0,0,53
31054 DATA ROGERS,0,0,54
31055 DATA REED,0,0,55
31056 DATA COOK,0,0,56
31057 DATA MORGAN,0,0,57
31058 DATA BELL,0,0,58
31059 DATA MURPHY,0,0,59
31060 DATA BAILEY,0,0,60
31061 DATA RIVERA,0,0,61
31062 DATA COOPER,0,0,62
31063 DATA RICHARDSON,0,0,63
31064 DATA COX,0,0,64
31065 DATA HOWARD,0,0,65
31066 DATA WARD,0,0,66
31067 DATA TORRES,0,0,67
31068 DATA PETERSON,0,0,68
31069 DATA GRAY,0,0,69
31070 DATA RAMIREZ,0,0,70
31071 DATA JAMES,0,0,71
31072 DATA WATSON,0,0,72
31073 DATA BROOKS,0,0,73
31074 DATA KELLY,0,0,74
31075 DATA SANDERS,0,0,75
31076 DATA PRICE,0,0,76
31077 DATA BENNETT,0,0,77
31078 DATA WOOD,0,0,78
31079 DATA BARNES,0,0,79
31080 DATA ROSS,0,0,80
31081 DATA HENDERSON,0,0,81
31082 DATA COLEMAN,0,0,82
31083 DATA JENKINS,0,0,83
31084 DATA PERRY,0,0,84
31085 DATA POWELL,0,0,85
31086 DATA LONG,0,0,86
31087 DATA PATTERSON,0,0,87
31088 DATA HUGHES,0,0,88
31089 DATA FLORES,0,0,89
31090 DATA WASHINGTON,0,0,90
31091 DATA BUTLER,0,0,91
31092 DATA SIMMONS,0,0,92
31093 DATA FOSTER,0,0,93
31094 DATA GONZALES,0,0,94
31095 DATA BRYANT,0,0,95
31096 DATA ALEXANDER,0,0,96
31097 DATA RUSSELL,0,0,97
31098 DATA GRIFFIN,0,0,98
31099 DATA DIAZ,0,0,99
31100 DATA HAYES,0,0,100
31101 DATA MYERS,0,0,101
31102 DATA FORD,0,0,102
31103 DATA HAMILTON,0,0,103
31104 DATA GRAHAM,0,0,104
31105 DATA SULLIVAN,0,0,105
31106 DATA WALLACE,0,0,106
31107 DATA WOODS,0,0,107
31108 DATA COLE,0,0,108
31109 DATA WEST,0,0,109
31110 DATA JORDAN,0,0,110
31111 DATA OWENS,0,0,111
31112 DATA REYNOLDS,0,0,112
31113 DATA FISHER,0,0,113
31114 DATA ELLIS,0,0,114
31115 DATA HARRISON,0,0,115
31116 DATA GIBSON,0,0,116
31117 DATA MCDONALD,0,0,117
31118 DATA CRUZ,0,0,118
31119 DATA MARSHALL,0,0,119
31120 DATA ORTIZ,0,0,120
31121 DATA GOMEZ,0,0,121
31122 DATA MURRAY,0,0,122
31123 DATA FREEMAN,0,0,123
31124 DATA WELLS,0,0,0
31125 DATA WEBB,0,0,125
31126 DATA SIMPSON,0,0,126
31127 DATA STEVENS,0,0,127
31128 DATA TUCKER,0,0,128
31129 DATA PORTER,0,0,129
31130 DATA HUNTER,0,0,130
31131 DATA HICKS,0,0,131
31132 DATA CRAWFORD,0,0,132
31133 DATA HENRY,0,0,133
31134 DATA BOYD,0,0,134
31135 DATA MASON,0,0,135
31136 DATA MORALES,0,0,136
31137 DATA KENNEDY,0,0,137
31138 DATA WARREN,0,0,138
31139 DATA DIXON,0,0,139
31140 DATA RAMOS,0,0,140
31141 DATA REYES,0,0,141
31142 DATA BURNS,0,0,142
31143 DATA GORDON,0,0,143
31144 DATA SHAW,0,0,144
31145 DATA HOLMES,0,0,145
31146 DATA RICE,0,0,146
31147 DATA ROBERTSON,0,0,147
31148 DATA HUNT,0,0,148
31149 DATA BLACK,0,0,149
31150 DATA DANIELS,0,0,150
31151 DATA PALMER,0,0,151
31152 DATA MILLS,0,0,152
31153 DATA NICHOLS,0,0,153
31154 DATA GRANT,0,0,154
31155 DATA KNIGHT,0,0,155
31156 DATA FERGUSON,0,0,156
31157 DATA ROSE,0,0,157
31158 DATA STONE,0,0,158
31159 DATA HAWKINS,0,0,159
31160 DATA DUNN,0,0,160
31161 DATA PERKINS,0,0,161
31162 DATA HUDSON,0,0,162
31163 DATA SPENCER,0,0,163
31164 DATA GARDNER,0,0,164
31165 DATA STEPHENS,0,0,165
31166 DATA PAYNE,0,0,166
31167 DATA PIERCE,0,0,167
31168 DATA BERRY,0,0,168
31169 DATA MATTHEWS,0,0,169
31170 DATA ARNOLD,0,0,170
31171 DATA WAGNER,0,0,171
31172 DATA WILLIS,0,0,172
31173 DATA RAY,0,0,173
31174 DATA WATKINS,0,0,174
31175 DATA OLSON,0,0,175
31176 DATA CARROLL,0,0,176
31177 DATA DUNCAN,0,0,177
31178 DATA SNYDER,0,0,178
31179 DATA HART,0,0.054,179
31180 DATA CUNNINGHAM,0,0,180
31181 DATA BRADLEY,0,0,181
31182 DATA LANE,0,0,182
31183 DATA ANDREWS,0,0,183
31184 DATA RUIZ,0,0,184
31185 DATA HARPER,0,0,185
31186 DATA FOX,0,0,186
31187 DATA RILEY,0,0,187
31188 DATA ARMSTRONG,0,0,188
31189 DATA CARPENTER,0,0,189
31190 DATA WEAVER,0,0,190
31191 DATA GREENE,0,0,191
31192 DATA LAWRENCE,0,0,192
31193 DATA ELLIOTT,0,0,193
31194 DATA CHAVEZ,0,0,194
31195 DATA SIMS,0,0,195
31196 DATA AUSTIN,0,0,196
31197 DATA PETERS,0,0,197
31198 DATA KELLEY,0,0,198
31199 DATA FRANKLIN,0,0,199
31200 DATA LAWSON,0,0,200
31201 DATA FIELDS,0,0,201
31202 DATA GUTIERREZ,0,0,202
31203 DATA RYAN,0,0,203
31204 DATA SCHMIDT,0,0,204
31205 DATA CARR,0,0,205
31206 DATA VASQUEZ,0,0,206
31207 DATA CASTILLO,0,0,207
31208 DATA WHEELER,0,0,208
31209 DATA CHAPMAN,0,0,209
31210 DATA OLIVER,0,0,210
31211 DATA MONTGOMERY,0,0,211
31212 DATA RICHARDS,0,0,212
31213 DATA WILLIAMSON,0,0,213
31214 DATA JOHNSTON,0,0,214
31215 DATA BANKS,0,0,215
31216 DATA MEYER,0,0,216
31217 DATA BISHOP,0,0,217
31218 DATA MCCOY,0,0,218
31219 DATA HOWELL,0,0,219
31220 DATA ALVAREZ,0,0,220
31221 DATA MORRISON,0,0,221
31222 DATA HANSEN,0,0,222
31223 DATA FERNANDEZ,0,0,223
31224 DATA GARZA,0,0,224
31225 DATA HARVEY,0,0,225
31226 DATA LITTLE,0,0,226
31227 DATA BURTON,0,0,227
31228 DATA STANLEY,0,0,228
31229 DATA NGUYEN,114402,0.046,229
31230 DATA GEORGE,114402,0.046,230
31231 DATA JACOBS,114402,0.046,231
31232 DATA REID,114402,0.046,232
31233 DATA KIM,111915,0.045,233
31234 DATA FULLER,111915,0.045,234
31235 DATA LYNCH,111915,0.045,235
31236 DATA DEAN,111915,0.045,236
31237 DATA GILBERT,111915,0.045,237
31238 DATA GARRETT,111915,0.045,238
31239 DATA ROMERO,111915,0.045,239
31240 DATA WELCH,109428,0.044,240
31241 DATA LARSON,109428,0.044,241
31242 DATA FRAZIER,109428,0.044,242
31243 DATA BURKE,109428,0.044,243
31244 DATA HANSON,106941,0.043,244
31245 DATA DAY,106941,0.043,245
31246 DATA MENDOZA,106941,0.043,246
31247 DATA MORENO,106941,0.043,247
31248 DATA BOWMAN,106941,0.043,248
31249 DATA MEDINA,104454,0.042,249
31250 DATA FOWLER,104454,0.042,250
31251 DATA BREWER,104454,0.042,251
31252 DATA HOFFMAN,104454,0.042,252
31253 DATA CARLSON,104454,0.042,253
31254 DATA SILVA,104454,0.042,254
31255 DATA PEARSON,104454,0.042,255
31256 DATA HOLLAND,104454,0.042,256
31257 DATA DOUGLAS,101967,0.041,257
31258 DATA FLEMING,101967,0.041,258
31259 DATA JENSEN,101967,0.041,259
31260 DATA VARGAS,101967,0.041,260
31261 DATA BYRD,101967,0.041,261
31262 DATA DAVIDSON,101967,0.041,262
31263 DATA HOPKINS,101967,0.041,263
31264 DATA MAY,99480,0.04,264
31265 DATA TERRY,99480,0.04,265
31266 DATA HERRERA,99480,0.04,266
31267 DATA WADE,99480,0.04,267
31268 DATA SOTO,99480,0.04,268
31269 DATA WALTERS,99480,0.04,269
31270 DATA CURTIS,99480,0.04,270
31271 DATA NEAL,96993,0.039,271
31272 DATA CALDWELL,96993,0.039,272
31273 DATA LOWE,96993,0.039,273
31274 DATA JENNINGS,96993,0.039,274
31275 DATA BARNETT,96993,0.039,275
31276 DATA GRAVES,96993,0.039,276
31277 DATA JIMENEZ,96993,0.039,277
31278 DATA HORTON,96993,0.039,278
31279 DATA SHELTON,96993,0.039,279
31280 DATA BARRETT,96993,0.039,280
31281 DATA OBRIEN,96993,0.039,281
31282 DATA CASTRO,96993,0.039,282
31283 DATA SUTTON,94506,0.038,283
31284 DATA GREGORY,94506,0.038,284
31285 DATA MCKINNEY,94506,0.038,285
31286 DATA LUCAS,94506,0.038,286
31287 DATA MILES,94506,0.038,287
31288 DATA CRAIG,94506,0.038,288
31289 DATA RODRIQUEZ,92019,0.037,289
31290 DATA CHAMBERS,92019,0.037,290
31291 DATA HOLT,92019,0.037,291
31292 DATA LAMBERT,92019,0.037,292
31293 DATA FLETCHER,92019,0.037,293
31294 DATA WATTS,92019,0.037,294
31295 DATA BATES,92019,0.037,295
31296 DATA HALE,92019,0.037,296
31297 DATA RHODES,92019,0.037,297
31298 DATA PENA,92019,0.037,298
31299 DATA BECK,92019,0.037,299
31300 DATA NEWMAN,89532,0.036,300
31301 DATA HAYNES,89532,0.036,301
31302 DATA MCDANIEL,89532,0.036,302
31303 DATA MENDEZ,89532,0.036,303
31304 DATA BUSH,89532,0.036,304
31305 DATA VAUGHN,89532,0.036,305
31306 DATA PARKS,87045,0.035,306
31307 DATA DAWSON,87045,0.035,307
31308 DATA SANTIAGO,87045,0.035,308
31309 DATA NORRIS,87045,0.035,309
31310 DATA HARDY,87045,0.035,310
31311 DATA LOVE,87045,0.035,311
31312 DATA STEELE,87045,0.035,312
31313 DATA CURRY,87045,0.035,313
31314 DATA POWERS,87045,0.035,314
31315 DATA SCHULTZ,87045,0.035,315
31316 DATA BARKER,87045,0.035,316
31317 DATA GUZMAN,84558,0.034,317
31318 DATA PAGE,84558,0.034,318
31319 DATA MUNOZ,84558,0.034,319
31320 DATA BALL,84558,0.034,320
31321 DATA KELLER,84558,0.034,321
31322 DATA CHANDLER,84558,0.034,322
31323 DATA WEBER,84558,0.034,323
31324 DATA LEONARD,84558,0.034,324
31325 DATA WALSH,82071,0.033,325
31326 DATA LYONS,82071,0.033,326
31327 DATA RAMSEY,82071,0.033,327
31328 DATA WOLFE,82071,0.033,328
31329 DATA SCHNEIDER,82071,0.033,329
31330 DATA MULLINS,82071,0.033,330
31331 DATA BENSON,82071,0.033,331
31332 DATA SHARP,82071,0.033,332
31333 DATA BOWEN,82071,0.033,333
31334 DATA DANIEL,82071,0.033,334
31335 DATA BARBER,79584,0.032,335
31336 DATA CUMMINGS,79584,0.032,336
31337 DATA HINES,79584,0.032,337
31338 DATA BALDWIN,79584,0.032,338
31339 DATA GRIFFITH,79584,0.032,339
31340 DATA VALDEZ,79584,0.032,340
31341 DATA HUBBARD,79584,0.032,341
31342 DATA SALAZAR,79584,0.032,342
31343 DATA REEVES,79584,0.032,343
31344 DATA WARNER,77097,0.031,344
31345 DATA STEVENSON,77097,0.031,345
31346 DATA BURGESS,77097,0.031,346
31347 DATA SANTOS,77097,0.031,347
31348 DATA TATE,77097,0.031,348
31349 DATA CROSS,77097,0.031,349
31350 DATA GARNER,77097,0.031,350
31351 DATA MANN,77097,0.031,351
31352 DATA MACK,77097,0.031,352
31353 DATA MOSS,77097,0.031,353
31354 DATA THORNTON,77097,0.031,354
31355 DATA DENNIS,77097,0.031,355
31356 DATA MCGEE,77097,0.031,356
31357 DATA FARMER,74610,0.03,357
31358 DATA DELGADO,74610,0.03,358
31359 DATA AGUILAR,74610,0.03,359
31360 DATA VEGA,74610,0.03,360
31361 DATA GLOVER,74610,0.03,361
31362 DATA MANNING,74610,0.03,362
31363 DATA COHEN,74610,0.03,363
31364 DATA HARMON,74610,0.03,364
31365 DATA RODGERS,74610,0.03,365
31366 DATA ROBBINS,74610,0.03,366
31367 DATA NEWTON,74610,0.03,367
31368 DATA TODD,74610,0.03,368
31369 DATA BLAIR,74610,0.03,369
31370 DATA HIGGINS,74610,0.03,370
31371 DATA INGRAM,74610,0.03,371
31372 DATA REESE,74610,0.03,372
31373 DATA CANNON,74610,0.03,373
31374 DATA STRICKLAND,74610,0.03,374
31375 DATA TOWNSEND,74610,0.03,375
31376 DATA POTTER,74610,0.03,376
31377 DATA GOODWIN,74610,0.03,377
31378 DATA WALTON,74610,0.03,378
31379 DATA ROWE,72123,0.029,379
31380 DATA HAMPTON,72123,0.029,380
31381 DATA ORTEGA,72123,0.029,381
31382 DATA PATTON,72123,0.029,382
31383 DATA SWANSON,72123,0.029,383
31384 DATA JOSEPH,72123,0.029,384
31385 DATA FRANCIS,72123,0.029,385
31386 DATA GOODMAN,72123,0.029,386
31387 DATA MALDONADO,72123,0.029,387
31388 DATA YATES,72123,0.029,388
31389 DATA BECKER,72123,0.029,389
31390 DATA ERICKSON,72123,0.029,390
31391 DATA HODGES,72123,0.029,391
31392 DATA RIOS,72123,0.029,392
31393 DATA CONNER,72123,0.029,393
31394 DATA ADKINS,72123,0.029,394
31395 DATA WEBSTER,69636,0.028,395
31396 DATA NORMAN,69636,0.028,396
31397 DATA MALONE,69636,0.028,397
31398 DATA HAMMOND,69636,0.028,398
31399 DATA FLOWERS,69636,0.028,399
31400 DATA COBB,69636,0.028,400
31401 DATA MOODY,69636,0.028,401
31402 DATA QUINN,69636,0.028,402
31403 DATA BLAKE,69636,0.028,403
31404 DATA MAXWELL,69636,0.028,404
31405 DATA POPE,69636,0.028,405
31406 DATA FLOYD,67149,0.027,406
31407 DATA OSBORNE,67149,0.027,407
31408 DATA PAUL,67149,0.027,408
31409 DATA MCCARTHY,67149,0.027,409
31410 DATA GUERRERO,67149,0.027,410
31411 DATA LINDSEY,67149,0.027,411
31412 DATA ESTRADA,67149,0.027,412
31413 DATA SANDOVAL,67149,0.027,413
31414 DATA GIBBS,67149,0.027,414
31415 DATA TYLER,67149,0.027,415
31416 DATA GROSS,67149,0.027,416
31417 DATA FITZGERALD,67149,0.027,417
31418 DATA STOKES,67149,0.027,418
31419 DATA DOYLE,67149,0.027,419
31420 DATA SHERMAN,67149,0.027,420
31421 DATA SAUNDERS,67149,0.027,421
31422 DATA WISE,67149,0.027,422
31423 DATA COLON,67149,0.027,423
31424 DATA GILL,67149,0.027,424
31425 DATA ALVARADO,67149,0.027,425
31426 DATA GREER,64662,0.026,426
31427 DATA PADILLA,64662,0.026,427
31428 DATA SIMON,64662,0.026,428
31429 DATA WATERS,64662,0.026,429
31430 DATA NUNEZ,64662,0.026,430
31431 DATA BALLARD,64662,0.026,431
31432 DATA SCHWARTZ,64662,0.026,432
31433 DATA MCBRIDE,64662,0.026,433
31434 DATA HOUSTON,64662,0.026,434
31435 DATA CHRISTENSEN,64662,0.026,435
31436 DATA KLEIN,64662,0.026,436
31437 DATA PRATT,64662,0.026,437
31438 DATA BRIGGS,64662,0.026,438
31439 DATA PARSONS,64662,0.026,439
31440 DATA MCLAUGHLIN,64662,0.026,440
31441 DATA ZIMMERMAN,64662,0.026,441
31442 DATA FRENCH,64662,0.026,442
31443 DATA BUCHANAN,64662,0.026,443
31444 DATA MORAN,64662,0.026,444
31445 DATA COPELAND,62175,0.025,445
31446 DATA ROY,62175,0.025,446
31447 DATA PITTMAN,62175,0.025,447
31448 DATA BRADY,62175,0.025,448
31449 DATA MCCORMICK,62175,0.025,449
31450 DATA HOLLOWAY,62175,0.025,450
31451 DATA BROCK,62175,0.025,451
31452 DATA POOLE,62175,0.025,452
31453 DATA FRANK,62175,0.025,453
31454 DATA LOGAN,62175,0.025,454
31455 DATA OWEN,62175,0.025,455
31456 DATA BASS,62175,0.025,456
31457 DATA MARSH,62175,0.025,457
31458 DATA DRAKE,62175,0.025,458
31459 DATA WONG,62175,0.025,459
31460 DATA JEFFERSON,62175,0.025,460
31461 DATA PARK,62175,0.025,461
31462 DATA MORTON,62175,0.025,462
31463 DATA ABBOTT,62175,0.025,463
31464 DATA SPARKS,62175,0.025,464
31465 DATA PATRICK,59688,0.024,465
31466 DATA NORTON,59688,0.024,466
31467 DATA HUFF,59688,0.024,467
31468 DATA CLAYTON,59688,0.024,468
31469 DATA MASSEY,59688,0.024,469
31470 DATA LLOYD,59688,0.024,470
31471 DATA FIGUEROA,59688,0.024,471
31472 DATA CARSON,59688,0.024,472
31473 DATA BOWERS,59688,0.024,473
31474 DATA ROBERSON,59688,0.024,474
31475 DATA BARTON,59688,0.024,475
31476 DATA TRAN,59688,0.024,476
31477 DATA LAMB,59688,0.024,477
31478 DATA HARRINGTON,59688,0.024,478
31479 DATA CASEY,59688,0.024,479
31480 DATA BOONE,59688,0.024,480
31481 DATA CORTEZ,59688,0.024,481
31482 DATA CLARKE,59688,0.024,482
31483 DATA MATHIS,59688,0.024,483
31484 DATA SINGLETON,59688,0.024,484
31485 DATA WILKINS,59688,0.024,485
31486 DATA CAIN,59688,0.024,486
31487 DATA BRYAN,59688,0.024,487
31488 DATA UNDERWOOD,59688,0.024,488
31489 DATA HOGAN,59688,0.024,489
31490 DATA MCKENZIE,57201,0.023,490
31491 DATA COLLIER,57201,0.023,491
31492 DATA LUNA,57201,0.023,492
31493 DATA PHELPS,57201,0.023,493
31494 DATA MCGUIRE,57201,0.023,494
31495 DATA ALLISON,57201,0.023,495
31496 DATA BRIDGES,57201,0.023,496
31497 DATA WILKERSON,57201,0.023,497
31498 DATA NASH,57201,0.023,498
31499 DATA SUMMERS,57201,0.023,499
31500 DATA ATKINS,57201,0.023,500
31501 DATA WILCOX,57201,0.023,501
31502 DATA PITTS,57201,0.023,502
31503 DATA CONLEY,57201,0.023,503
31504 DATA MARQUEZ,57201,0.023,504
31505 DATA BURNETT,57201,0.023,505
31506 DATA RICHARD,57201,0.023,506
31507 DATA COCHRAN,57201,0.023,507
31508 DATA CHASE,57201,0.023,508
31509 DATA DAVENPORT,57201,0.023,509
31510 DATA HOOD,57201,0.023,510
31511 DATA GATES,57201,0.023,511
31512 DATA CLAY,57201,0.023,512
31513 DATA AYALA,57201,0.023,513
31514 DATA SAWYER,57201,0.023,514
31515 DATA ROMAN,57201,0.023,515
31516 DATA VAZQUEZ,57201,0.023,516
31517 DATA DICKERSON,57201,0.023,517
31518 DATA HODGE,54714,0.022,518
31519 DATA ACOSTA,54714,0.022,519
31520 DATA FLYNN,54714,0.022,520
31521 DATA ESPINOZA,54714,0.022,521
31522 DATA NICHOLSON,54714,0.022,522
31523 DATA MONROE,54714,0.022,523
31524 DATA WOLF,54714,0.022,524
31525 DATA MORROW,54714,0.022,525
31526 DATA KIRK,54714,0.022,526
31527 DATA RANDALL,54714,0.022,527
31528 DATA ANTHONY,54714,0.022,528
31529 DATA WHITAKER,54714,0.022,529
31530 DATA OCONNOR,54714,0.022,530
31531 DATA SKINNER,54714,0.022,531
31532 DATA WARE,54714,0.022,532
31533 DATA MOLINA,54714,0.022,533
31534 DATA KIRBY,54714,0.022,534
31535 DATA HUFFMAN,54714,0.022,535
31536 DATA BRADFORD,54714,0.022,536
31537 DATA CHARLES,54714,0.022,537
31538 DATA GILMORE,54714,0.022,538
31539 DATA DOMINGUEZ,54714,0.022,539
31540 DATA ONEAL,54714,0.022,540
31541 DATA BRUCE,54714,0.022,541
31542 DATA LANG,52227,0.021,542
31543 DATA COMBS,52227,0.021,543
31544 DATA KRAMER,52227,0.021,544
31545 DATA HEATH,52227,0.021,545
31546 DATA HANCOCK,52227,0.021,546
31547 DATA GALLAGHER,52227,0.021,547
31548 DATA GAINES,52227,0.021,548
31549 DATA SHAFFER,52227,0.021,549
31550 DATA SHORT,52227,0.021,550
31551 DATA WIGGINS,52227,0.021,551
31552 DATA MATHEWS,52227,0.021,552
31553 DATA MCCLAIN,52227,0.021,553
31554 DATA FISCHER,52227,0.021,554
31555 DATA WALL,52227,0.021,555
31556 DATA SMALL,52227,0.021,556
31557 DATA MELTON,52227,0.021,557
31558 DATA HENSLEY,52227,0.021,558
31559 DATA BOND,52227,0.021,559
31560 DATA DYER,52227,0.021,560
31561 DATA CAMERON,52227,0.021,561
31562 DATA GRIMES,52227,0.021,562
31563 DATA CONTRERAS,52227,0.021,563
31564 DATA CHRISTIAN,52227,0.021,564
31565 DATA WYATT,52227,0.021,565
31566 DATA BAXTER,52227,0.021,566
31567 DATA SNOW,52227,0.021,567
31568 DATA MOSLEY,52227,0.021,568
31569 DATA SHEPHERD,52227,0.021,569
31570 DATA LARSEN,52227,0.021,570
31571 DATA HOOVER,52227,0.021,571
31572 DATA BEASLEY,49740,0.02,572
31573 DATA GLENN,49740,0.02,573
31574 DATA PETERSEN,49740,0.02,574
31575 DATA WHITEHEAD,49740,0.02,575
31576 DATA MEYERS,49740,0.02,576
31577 DATA KEITH,49740,0.02,577
31578 DATA GARRISON,49740,0.02,578
31579 DATA VINCENT,49740,0.02,579
31580 DATA SHIELDS,49740,0.02,580
31581 DATA HORN,49740,0.02,581
31582 DATA SAVAGE,49740,0.02,582
31583 DATA OLSEN,49740,0.02,583
31584 DATA SCHROEDER,49740,0.02,584
31585 DATA HARTMAN,49740,0.02,585
31586 DATA WOODARD,49740,0.02,586
31587 DATA MUELLER,49740,0.02,587
31588 DATA KEMP,49740,0.02,588
31589 DATA DELEON,49740,0.02,589
31590 DATA BOOTH,49740,0.02,590
31591 DATA PATEL,49740,0.02,591
31592 DATA CALHOUN,49740,0.02,592
31593 DATA WILEY,49740,0.02,593
31594 DATA EATON,49740,0.02,594
31595 DATA CLINE,49740,0.02,595
31596 DATA NAVARRO,49740,0.02,596
31597 DATA HARRELL,49740,0.02,597
31598 DATA LESTER,49740,0.02,598
31599 DATA HUMPHREY,49740,0.02,599
31600 DATA PARRISH,49740,0.02,600
31601 DATA DURAN,49740,0.02,601
31602 DATA HUTCHINSON,49740,0.02,602
31603 DATA HESS,49740,0.02,603
31604 DATA DORSEY,49740,0.02,604
31605 DATA BULLOCK,49740,0.02,605
31606 DATA ROBLES,49740,0.02,606
31607 DATA BEARD,47253,0.019,607
31608 DATA DALTON,47253,0.019,608
31609 DATA AVILA,47253,0.019,609
31610 DATA VANCE,47253,0.019,610
31611 DATA RICH,47253,0.019,611
31612 DATA BLACKWELL,47253,0.019,612
31613 DATA YORK,47253,0.019,613
31614 DATA JOHNS,47253,0.019,614
31615 DATA BLANKENSHIP,47253,0.019,615
31616 DATA TREVINO,47253,0.019,616
31617 DATA SALINAS,47253,0.019,617
31618 DATA CAMPOS,47253,0.019,618
31619 DATA PRUITT,47253,0.019,619
31620 DATA MOSES,47253,0.019,620
31621 DATA CALLAHAN,47253,0.019,621
31622 DATA GOLDEN,47253,0.019,622
31623 DATA MONTOYA,47253,0.019,623
31624 DATA HARDIN,47253,0.019,624
31625 DATA GUERRA,47253,0.019,625
31626 DATA MCDOWELL,47253,0.019,626
31627 DATA CAREY,47253,0.019,627
31628 DATA STAFFORD,47253,0.019,628
31629 DATA GALLEGOS,47253,0.019,629
31630 DATA HENSON,47253,0.019,630
31631 DATA WILKINSON,47253,0.019,631
31632 DATA BOOKER,47253,0.019,632
31633 DATA MERRITT,47253,0.019,633
31634 DATA MIRANDA,47253,0.019,634
31635 DATA ATKINSON,47253,0.019,635
31636 DATA ORR,47253,0.019,636
31637 DATA DECKER,47253,0.019,637
31638 DATA HOBBS,47253,0.019,638
31639 DATA PRESTON,47253,0.019,639
31640 DATA TANNER,47253,0.019,640
31641 DATA KNOX,47253,0.019,641
31642 DATA PACHECO,47253,0.019,642
31643 DATA STEPHENSON,44766,0.018,643
31644 DATA GLASS,44766,0.018,644
31645 DATA ROJAS,44766,0.018,645
31646 DATA SERRANO,44766,0.018,646
31647 DATA MARKS,44766,0.018,647
31648 DATA HICKMAN,44766,0.018,648
31649 DATA ENGLISH,44766,0.018,649
31650 DATA SWEENEY,44766,0.018,650
31651 DATA STRONG,44766,0.018,651
31652 DATA PRINCE,44766,0.018,652
31653 DATA MCCLURE,44766,0.018,653
31654 DATA CONWAY,44766,0.018,654
31655 DATA WALTER,44766,0.018,655
31656 DATA ROTH,44766,0.018,656
31657 DATA MAYNARD,44766,0.018,657
31658 DATA FARRELL,44766,0.018,658
31659 DATA LOWERY,44766,0.018,659
31660 DATA HURST,44766,0.018,660
31661 DATA NIXON,44766,0.018,661
31662 DATA WEISS,44766,0.018,662
31663 DATA TRUJILLO,44766,0.018,663
31664 DATA ELLISON,44766,0.018,664
31665 DATA SLOAN,44766,0.018,665
31666 DATA JUAREZ,44766,0.018,666
31667 DATA WINTERS,44766,0.018,667
31668 DATA MCLEAN,44766,0.018,668
31669 DATA RANDOLPH,44766,0.018,669
31670 DATA LEON,44766,0.018,670
31671 DATA BOYER,44766,0.018,671
31672 DATA VILLARREAL,44766,0.018,672
31673 DATA MCCALL,44766,0.018,673
31674 DATA GENTRY,44766,0.018,674
31675 DATA CARRILLO,42279,0.017,675
31676 DATA KENT,42279,0.017,676
31677 DATA AYERS,42279,0.017,677
31678 DATA LARA,42279,0.017,678
31679 DATA SHANNON,42279,0.017,679
31680 DATA SEXTON,42279,0.017,680
31681 DATA PACE,42279,0.017,681
31682 DATA HULL,42279,0.017,682
31683 DATA LEBLANC,42279,0.017,683
31684 DATA BROWNING,42279,0.017,684
31685 DATA VELASQUEZ,42279,0.017,685
31686 DATA LEACH,42279,0.017,686
31687 DATA CHANG,42279,0.017,687
31688 DATA HOUSE,42279,0.017,688
31689 DATA SELLERS,42279,0.017,689
31690 DATA HERRING,42279,0.017,690
31691 DATA NOBLE,42279,0.017,691
31692 DATA FOLEY,42279,0.017,692
31693 DATA BARTLETT,42279,0.017,693
31694 DATA MERCADO,42279,0.017,694
31695 DATA LANDRY,42279,0.017,695
31696 DATA DURHAM,42279,0.017,696
31697 DATA WALLS,42279,0.017,697
31698 DATA BARR,42279,0.017,698
31699 DATA MCKEE,42279,0.017,699
31700 DATA BAUER,42279,0.017,700
31701 DATA RIVERS,42279,0.017,701
31702 DATA EVERETT,42279,0.017,702
31703 DATA BRADSHAW,42279,0.017,703
31704 DATA PUGH,42279,0.017,704
31705 DATA VELEZ,42279,0.017,705
31706 DATA RUSH,42279,0.017,706
31707 DATA ESTES,42279,0.017,707
31708 DATA DODSON,42279,0.017,708
31709 DATA MORSE,42279,0.017,709
31710 DATA SHEPPARD,42279,0.017,710
31711 DATA WEEKS,42279,0.017,711
31712 DATA CAMACHO,42279,0.017,712
31713 DATA BEAN,42279,0.017,713
31714 DATA BARRON,42279,0.017,714
31715 DATA LIVINGSTON,42279,0.017,715
31716 DATA MIDDLETON,39792,0.016,716
31717 DATA SPEARS,39792,0.016,717
31718 DATA BRANCH,39792,0.016,718
31719 DATA BLEVINS,39792,0.016,719
31720 DATA CHEN,39792,0.016,720
31721 DATA KERR,39792,0.016,721
31722 DATA MCCONNELL,39792,0.016,722
31723 DATA HATFIELD,39792,0.016,723
31724 DATA HARDING,39792,0.016,724
31725 DATA ASHLEY,39792,0.016,725
31726 DATA SOLIS,39792,0.016,726
31727 DATA HERMAN,39792,0.016,727
31728 DATA FROST,39792,0.016,728
31729 DATA GILES,39792,0.016,729
31730 DATA BLACKBURN,39792,0.016,730
31731 DATA WILLIAM,39792,0.016,731
31732 DATA PENNINGTON,39792,0.016,732
31733 DATA WOODWARD,39792,0.016,733
31734 DATA FINLEY,39792,0.016,734
31735 DATA MCINTOSH,39792,0.016,735
31736 DATA KOCH,39792,0.016,736
31737 DATA BEST,39792,0.016,737
31738 DATA SOLOMON,39792,0.016,738
31739 DATA MCCULLOUGH,39792,0.016,739
31740 DATA DUDLEY,39792,0.016,740
31741 DATA NOLAN,39792,0.016,741
31742 DATA BLANCHARD,39792,0.016,742
31743 DATA RIVAS,39792,0.016,743
31744 DATA BRENNAN,39792,0.016,744
31745 DATA MEJIA,39792,0.016,745
31746 DATA KANE,39792,0.016,746
31747 DATA BENTON,39792,0.016,747
31748 DATA JOYCE,39792,0.016,748
31749 DATA BUCKLEY,39792,0.016,749
31750 DATA HALEY,39792,0.016,750
31751 DATA VALENTINE,39792,0.016,751
31752 DATA MADDOX,39792,0.016,752
31753 DATA RUSSO,39792,0.016,753
31754 DATA MCKNIGHT,39792,0.016,754
31755 DATA BUCK,39792,0.016,755
31756 DATA MOON,39792,0.016,756
31757 DATA MCMILLAN,39792,0.016,757
31758 DATA CROSBY,39792,0.016,758
31759 DATA BERG,39792,0.016,759
31760 DATA DOTSON,39792,0.016,760
31761 DATA MAYS,39792,0.016,761
31762 DATA ROACH,39792,0.016,762
31763 DATA CHURCH,39792,0.016,763
31764 DATA CHAN,39792,0.016,764
31765 DATA RICHMOND,39792,0.016,765
31766 DATA MEADOWS,39792,0.016,766
31767 DATA FAULKNER,39792,0.016,767
31768 DATA ONEILL,39792,0.016,768
31769 DATA KNAPP,39792,0.016,769
31770 DATA KLINE,37305,0.015,770
31771 DATA BARRY,37305,0.015,771
31772 DATA OCHOA,37305,0.015,772
31773 DATA JACOBSON,37305,0.015,773
31774 DATA GAY,37305,0.015,774
31775 DATA AVERY,37305,0.015,775
31776 DATA HENDRICKS,37305,0.015,776
31777 DATA HORNE,37305,0.015,777
31778 DATA SHEPARD,37305,0.015,778
31779 DATA HEBERT,37305,0.015,779
31780 DATA CHERRY,37305,0.015,780
31781 DATA CARDENAS,37305,0.015,781
31782 DATA MCINTYRE,37305,0.015,782
31783 DATA WHITNEY,37305,0.015,783
31784 DATA WALLER,37305,0.015,784
31785 DATA HOLMAN,37305,0.015,785
31786 DATA DONALDSON,37305,0.015,786
31787 DATA CANTU,37305,0.015,787
31788 DATA TERRELL,37305,0.015,788
31789 DATA MORIN,37305,0.015,789
31790 DATA GILLESPIE,37305,0.015,790
31791 DATA FUENTES,37305,0.015,791
31792 DATA TILLMAN,37305,0.015,792
31793 DATA SANFORD,37305,0.015,793
31794 DATA BENTLEY,37305,0.015,794
31795 DATA PECK,37305,0.015,795
31796 DATA KEY,37305,0.015,796
31797 DATA SALAS,37305,0.015,797
31798 DATA ROLLINS,37305,0.015,798
31799 DATA GAMBLE,37305,0.015,799
31800 DATA DICKSON,37305,0.015,800
31801 DATA BATTLE,37305,0.015,801
31802 DATA SANTANA,37305,0.015,802
31803 DATA CABRERA,37305,0.015,803
31804 DATA CERVANTES,37305,0.015,804
31805 DATA HOWE,37305,0.015,805
31806 DATA HINTON,37305,0.015,806
31807 DATA HURLEY,37305,0.015,807
31808 DATA SPENCE,37305,0.015,808
31809 DATA ZAMORA,37305,0.015,809
31810 DATA YANG,37305,0.015,810
31811 DATA MCNEIL,37305,0.015,811
31812 DATA SUAREZ,37305,0.015,812
31813 DATA CASE,37305,0.015,813
31814 DATA PETTY,37305,0.015,814
31815 DATA GOULD,37305,0.015,815
31816 DATA MCFARLAND,37305,0.015,816
31817 DATA SAMPSON,37305,0.015,817
31818 DATA CARVER,37305,0.015,818
31819 DATA BRAY,37305,0.015,819
31820 DATA ROSARIO,37305,0.015,820
31821 DATA MACDONALD,37305,0.015,821
31822 DATA STOUT,37305,0.015,822
31823 DATA HESTER,37305,0.015,823
31824 DATA MELENDEZ,37305,0.015,824
31825 DATA DILLON,37305,0.015,825
31826 DATA FARLEY,37305,0.015,826
31827 DATA HOPPER,37305,0.015,827
31828 DATA GALLOWAY,37305,0.015,828
31829 DATA POTTS,37305,0.015,829
31830 DATA BERNARD,37305,0.015,830
31831 DATA JOYNER,34818,0.014,831
31832 DATA STEIN,34818,0.014,832
31833 DATA AGUIRRE,34818,0.014,833
31834 DATA OSBORN,34818,0.014,834
31835 DATA MERCER,34818,0.014,835
31836 DATA BENDER,34818,0.014,836
31837 DATA FRANCO,34818,0.014,837
31838 DATA ROWLAND,34818,0.014,838
31839 DATA SYKES,34818,0.014,839
31840 DATA BENJAMIN,34818,0.014,840
31841 DATA TRAVIS,34818,0.014,841
31842 DATA PICKETT,34818,0.014,842
31843 DATA CRANE,34818,0.014,843
31844 DATA SEARS,34818,0.014,844
31845 DATA MAYO,34818,0.014,845
31846 DATA DUNLAP,34818,0.014,846
31847 DATA HAYDEN,34818,0.014,847
31848 DATA WILDER,34818,0.014,848
31849 DATA MCKAY,34818,0.014,849
31850 DATA COFFEY,34818,0.014,850
31851 DATA MCCARTY,34818,0.014,851
31852 DATA EWING,34818,0.014,852
31853 DATA COOLEY,34818,0.014,853
31854 DATA VAUGHAN,34818,0.014,854
31855 DATA BONNER,34818,0.014,855
31856 DATA COTTON,34818,0.014,856
31857 DATA HOLDER,34818,0.014,857
31858 DATA STARK,34818,0.014,858
31859 DATA FERRELL,34818,0.014,859
31860 DATA CANTRELL,34818,0.014,860
31861 DATA FULTON,34818,0.014,861
31862 DATA LYNN,34818,0.014,862
31863 DATA LOTT,34818,0.014,863
31864 DATA CALDERON,34818,0.014,864
31865 DATA ROSA,34818,0.014,865
31866 DATA POLLARD,34818,0.014,866
31867 DATA HOOPER,34818,0.014,867
31868 DATA BURCH,34818,0.014,868
31869 DATA MULLEN,34818,0.014,869
31870 DATA FRY,34818,0.014,870
31871 DATA RIDDLE,34818,0.014,871
31872 DATA LEVY,34818,0.014,872
31873 DATA DAVID,34818,0.014,873
31874 DATA DUKE,34818,0.014,874
31875 DATA ODONNELL,34818,0.014,875
31876 DATA GUY,34818,0.014,876
31877 DATA MICHAEL,34818,0.014,877
31878 DATA BRITT,34818,0.014,878
31879 DATA FREDERICK,34818,0.014,879
31880 DATA DAUGHERTY,34818,0.014,880
31881 DATA BERGER,34818,0.014,881
31882 DATA DILLARD,34818,0.014,882
31883 DATA ALSTON,34818,0.014,883
31884 DATA JARVIS,34818,0.014,884
31885 DATA FRYE,34818,0.014,885
31886 DATA RIGGS,34818,0.014,886
31887 DATA CHANEY,34818,0.014,887
31888 DATA ODOM,32331,0.013,888
31889 DATA DUFFY,32331,0.013,889
31890 DATA FITZPATRICK,32331,0.013,890
31891 DATA VALENZUELA,32331,0.013,891
32000 DATA $,0,0,0

 

No way to get those timings... something is wrong (ignore frame a/r from Altirra .PNG):

 

Here's T-Basic 1.5 output:

 

Altirra-SORT-TurboBasic-1.thumb.png.a19565581311fcb6e0658c42f5241578.png

Edited by Faicuai
Link to comment
Share on other sites

1 hour ago, Faicuai said:

No way to get those timings... something is wrong (ignore frame a/r from Altirra .PNG):

 

Here's T-Basic 1.5 output:

 

Altirra-SORT-TurboBasic-1.thumb.png.a19565581311fcb6e0658c42f5241578.png

 

2 hours ago, drpeter said:

OK, with that ROM and with this exact code, under PAL, I get the following timings:

 

Altirra 1.56:          5.72, 543.18, 565.92, 584.94 seconds

 

Turbo Basic 1.5:    9.66, 302.62, 314.48, 329.16 seconds

 

  Reveal hidden contents

0 POKE 559,0:POKE 20,0:POKE 19,0:POKE 18,0:DIM K$(30),O$(30),CL$(1):GOTO 45
10 P=1:F=1.3:G=1:L=0:REM SORT SUBROUTINE
13 L=L+1:P=P*F:G=INT(N/P):IF G<=1 THEN G=1:S=1
14 NW=N-G:REM ? "PASS ";L;" GAP ";G
15 FOR I=0 TO NW-1:RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+G):READ O$
16 IF K$>O$ THEN T=B(I):B(I)=B(I+G):B(I+G)=T:S=0
21 NEXT I:IF S=1 THEN RETURN 
22 GOTO 13
25 ? : ? "CHECKING SORT...  ";:R=0:FOR I=0 TO N-2:REM CHECK SORT ORDER ROUTINE
26 RESTORE 31001+B(I):READ K$:RESTORE 31001+B(I+1):READ O$
27 IF K$>O$ THEN ? "OUT OF ORDER ";K$:R=1
30 NEXT I:? :RETURN 
40 FOR I=0 TO N-1:RESTORE 31001+B(I):READ K$:? K$;" ";:NEXT I:RETURN 
44 REM MAIN
45 N=0:CL$=CHR$(125)
51 REM K$=TEMP,N$=NAME ARRAY,S()=SUBSTRING START PTRS
53 REM CL$=CLEAR SCREEN, POKE 752,1 =SYSTEM CURSOR OFF
55 ? CL$:? "COMB SORT MOST POPULAR SURNAMES":? : ? "LOADING DATA...  ";
56 READ K$,L,G,S:IF K$<>"$" THEN N=N+1:GOTO 56
57 DIM B(N-1)
60 FOR I=0 TO N-1:B(I)=I:NEXT I
70 ? N;" NAMES LOADED":? 
72 IF PEEK(20)>250 THEN 72
75 T1=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
80 GOSUB 10:REM SORT ROUTINE
81 IF PEEK(20)>250 THEN 81
82 T2=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
85 GOSUB 25:REM CHECK SORT ORDER
86 IF PEEK(20)>250 THEN 86
87 T3=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
92 GOSUB 40:REM PRINT SORTED LIST
93 IF PEEK(20)>250 THEN 93
94 T4=(PEEK(18)*256*256+PEEK(19)*256+PEEK(20))/50
96 ? : ? : ? "ELAPSED: ";T1;",";T2;",";T3;",";T4;" SECONDS"
98 ? : ? : ?"DONE":POKE 752,0:POKE 559,34:END 
31001 DATA SMITH,0,0,1
31002 DATA JOHNSON,0,0,2
31003 DATA WILLIAMS,0,0,3
31004 DATA JONES,0,0,4
31005 DATA BROWN,0,0,5
31006 DATA DAVIS,0,0,6
31007 DATA MILLER,0,0,7
31008 DATA WILSON,0,0,8
31009 DATA MOORE,0,0,9
31010 DATA TAYLOR,0,0,10
31011 DATA ANDERSON,0,0,11
31012 DATA THOMAS,0,0,12
31013 DATA JACKSON,0,0,13
31014 DATA WHITE,0,0,14
31015 DATA HARRIS,0,0,15
31016 DATA MARTIN,0,0,16
31017 DATA THOMPSON,0,0,17
31018 DATA GARCIA,0,0,18
31019 DATA MARTINEZ,0,0,19
31020 DATA ROBINSON,0,0,20
31021 DATA CLARK,0,0,21
31022 DATA RODRIGUEZ,0,0,22
31023 DATA LEWIS,0,0,23
31024 DATA LEE,0,0,24
31025 DATA WALKER,0,0,25
31026 DATA HALL,0,0,26
31027 DATA ALLEN,0,0,27
31028 DATA YOUNG,0,0,28
31029 DATA HERNANDEZ,0,0,29
31030 DATA KING,0,0,30
31031 DATA WRIGHT,0,0,31
31032 DATA LOPEZ,0,0,32
31033 DATA HILL,0,0,33
31034 DATA SCOTT,0,0,34
31035 DATA GREEN,0,0,35
31036 DATA ADAMS,0,0,36
31037 DATA BAKER,0,0,37
31038 DATA GONZALEZ,0,0,38
31039 DATA NELSON,0,0,39
31040 DATA CARTER,0,0,40
31041 DATA MITCHELL,0,0,41
31042 DATA PEREZ,0,0,42
31043 DATA ROBERTS,0,0,43
31044 DATA TURNER,0,0,44
31045 DATA PHILLIPS,0,0,45
31046 DATA CAMPBELL,0,0,46
31047 DATA PARKER,0,0,47
31048 DATA EVANS,0,0,48
31049 DATA EDWARDS,0,0,49
31050 DATA COLLINS,0,0,50
31051 DATA STEWART,0,0,51
31052 DATA SANCHEZ,0,0,52
31053 DATA MORRIS,0,0,53
31054 DATA ROGERS,0,0,54
31055 DATA REED,0,0,55
31056 DATA COOK,0,0,56
31057 DATA MORGAN,0,0,57
31058 DATA BELL,0,0,58
31059 DATA MURPHY,0,0,59
31060 DATA BAILEY,0,0,60
31061 DATA RIVERA,0,0,61
31062 DATA COOPER,0,0,62
31063 DATA RICHARDSON,0,0,63
31064 DATA COX,0,0,64
31065 DATA HOWARD,0,0,65
31066 DATA WARD,0,0,66
31067 DATA TORRES,0,0,67
31068 DATA PETERSON,0,0,68
31069 DATA GRAY,0,0,69
31070 DATA RAMIREZ,0,0,70
31071 DATA JAMES,0,0,71
31072 DATA WATSON,0,0,72
31073 DATA BROOKS,0,0,73
31074 DATA KELLY,0,0,74
31075 DATA SANDERS,0,0,75
31076 DATA PRICE,0,0,76
31077 DATA BENNETT,0,0,77
31078 DATA WOOD,0,0,78
31079 DATA BARNES,0,0,79
31080 DATA ROSS,0,0,80
31081 DATA HENDERSON,0,0,81
31082 DATA COLEMAN,0,0,82
31083 DATA JENKINS,0,0,83
31084 DATA PERRY,0,0,84
31085 DATA POWELL,0,0,85
31086 DATA LONG,0,0,86
31087 DATA PATTERSON,0,0,87
31088 DATA HUGHES,0,0,88
31089 DATA FLORES,0,0,89
31090 DATA WASHINGTON,0,0,90
31091 DATA BUTLER,0,0,91
31092 DATA SIMMONS,0,0,92
31093 DATA FOSTER,0,0,93
31094 DATA GONZALES,0,0,94
31095 DATA BRYANT,0,0,95
31096 DATA ALEXANDER,0,0,96
31097 DATA RUSSELL,0,0,97
31098 DATA GRIFFIN,0,0,98
31099 DATA DIAZ,0,0,99
31100 DATA HAYES,0,0,100
31101 DATA MYERS,0,0,101
31102 DATA FORD,0,0,102
31103 DATA HAMILTON,0,0,103
31104 DATA GRAHAM,0,0,104
31105 DATA SULLIVAN,0,0,105
31106 DATA WALLACE,0,0,106
31107 DATA WOODS,0,0,107
31108 DATA COLE,0,0,108
31109 DATA WEST,0,0,109
31110 DATA JORDAN,0,0,110
31111 DATA OWENS,0,0,111
31112 DATA REYNOLDS,0,0,112
31113 DATA FISHER,0,0,113
31114 DATA ELLIS,0,0,114
31115 DATA HARRISON,0,0,115
31116 DATA GIBSON,0,0,116
31117 DATA MCDONALD,0,0,117
31118 DATA CRUZ,0,0,118
31119 DATA MARSHALL,0,0,119
31120 DATA ORTIZ,0,0,120
31121 DATA GOMEZ,0,0,121
31122 DATA MURRAY,0,0,122
31123 DATA FREEMAN,0,0,123
31124 DATA WELLS,0,0,0
31125 DATA WEBB,0,0,125
31126 DATA SIMPSON,0,0,126
31127 DATA STEVENS,0,0,127
31128 DATA TUCKER,0,0,128
31129 DATA PORTER,0,0,129
31130 DATA HUNTER,0,0,130
31131 DATA HICKS,0,0,131
31132 DATA CRAWFORD,0,0,132
31133 DATA HENRY,0,0,133
31134 DATA BOYD,0,0,134
31135 DATA MASON,0,0,135
31136 DATA MORALES,0,0,136
31137 DATA KENNEDY,0,0,137
31138 DATA WARREN,0,0,138
31139 DATA DIXON,0,0,139
31140 DATA RAMOS,0,0,140
31141 DATA REYES,0,0,141
31142 DATA BURNS,0,0,142
31143 DATA GORDON,0,0,143
31144 DATA SHAW,0,0,144
31145 DATA HOLMES,0,0,145
31146 DATA RICE,0,0,146
31147 DATA ROBERTSON,0,0,147
31148 DATA HUNT,0,0,148
31149 DATA BLACK,0,0,149
31150 DATA DANIELS,0,0,150
31151 DATA PALMER,0,0,151
31152 DATA MILLS,0,0,152
31153 DATA NICHOLS,0,0,153
31154 DATA GRANT,0,0,154
31155 DATA KNIGHT,0,0,155
31156 DATA FERGUSON,0,0,156
31157 DATA ROSE,0,0,157
31158 DATA STONE,0,0,158
31159 DATA HAWKINS,0,0,159
31160 DATA DUNN,0,0,160
31161 DATA PERKINS,0,0,161
31162 DATA HUDSON,0,0,162
31163 DATA SPENCER,0,0,163
31164 DATA GARDNER,0,0,164
31165 DATA STEPHENS,0,0,165
31166 DATA PAYNE,0,0,166
31167 DATA PIERCE,0,0,167
31168 DATA BERRY,0,0,168
31169 DATA MATTHEWS,0,0,169
31170 DATA ARNOLD,0,0,170
31171 DATA WAGNER,0,0,171
31172 DATA WILLIS,0,0,172
31173 DATA RAY,0,0,173
31174 DATA WATKINS,0,0,174
31175 DATA OLSON,0,0,175
31176 DATA CARROLL,0,0,176
31177 DATA DUNCAN,0,0,177
31178 DATA SNYDER,0,0,178
31179 DATA HART,0,0.054,179
31180 DATA CUNNINGHAM,0,0,180
31181 DATA BRADLEY,0,0,181
31182 DATA LANE,0,0,182
31183 DATA ANDREWS,0,0,183
31184 DATA RUIZ,0,0,184
31185 DATA HARPER,0,0,185
31186 DATA FOX,0,0,186
31187 DATA RILEY,0,0,187
31188 DATA ARMSTRONG,0,0,188
31189 DATA CARPENTER,0,0,189
31190 DATA WEAVER,0,0,190
31191 DATA GREENE,0,0,191
31192 DATA LAWRENCE,0,0,192
31193 DATA ELLIOTT,0,0,193
31194 DATA CHAVEZ,0,0,194
31195 DATA SIMS,0,0,195
31196 DATA AUSTIN,0,0,196
31197 DATA PETERS,0,0,197
31198 DATA KELLEY,0,0,198
31199 DATA FRANKLIN,0,0,199
31200 DATA LAWSON,0,0,200
31201 DATA FIELDS,0,0,201
31202 DATA GUTIERREZ,0,0,202
31203 DATA RYAN,0,0,203
31204 DATA SCHMIDT,0,0,204
31205 DATA CARR,0,0,205
31206 DATA VASQUEZ,0,0,206
31207 DATA CASTILLO,0,0,207
31208 DATA WHEELER,0,0,208
31209 DATA CHAPMAN,0,0,209
31210 DATA OLIVER,0,0,210
31211 DATA MONTGOMERY,0,0,211
31212 DATA RICHARDS,0,0,212
31213 DATA WILLIAMSON,0,0,213
31214 DATA JOHNSTON,0,0,214
31215 DATA BANKS,0,0,215
31216 DATA MEYER,0,0,216
31217 DATA BISHOP,0,0,217
31218 DATA MCCOY,0,0,218
31219 DATA HOWELL,0,0,219
31220 DATA ALVAREZ,0,0,220
31221 DATA MORRISON,0,0,221
31222 DATA HANSEN,0,0,222
31223 DATA FERNANDEZ,0,0,223
31224 DATA GARZA,0,0,224
31225 DATA HARVEY,0,0,225
31226 DATA LITTLE,0,0,226
31227 DATA BURTON,0,0,227
31228 DATA STANLEY,0,0,228
31229 DATA NGUYEN,114402,0.046,229
31230 DATA GEORGE,114402,0.046,230
31231 DATA JACOBS,114402,0.046,231
31232 DATA REID,114402,0.046,232
31233 DATA KIM,111915,0.045,233
31234 DATA FULLER,111915,0.045,234
31235 DATA LYNCH,111915,0.045,235
31236 DATA DEAN,111915,0.045,236
31237 DATA GILBERT,111915,0.045,237
31238 DATA GARRETT,111915,0.045,238
31239 DATA ROMERO,111915,0.045,239
31240 DATA WELCH,109428,0.044,240
31241 DATA LARSON,109428,0.044,241
31242 DATA FRAZIER,109428,0.044,242
31243 DATA BURKE,109428,0.044,243
31244 DATA HANSON,106941,0.043,244
31245 DATA DAY,106941,0.043,245
31246 DATA MENDOZA,106941,0.043,246
31247 DATA MORENO,106941,0.043,247
31248 DATA BOWMAN,106941,0.043,248
31249 DATA MEDINA,104454,0.042,249
31250 DATA FOWLER,104454,0.042,250
31251 DATA BREWER,104454,0.042,251
31252 DATA HOFFMAN,104454,0.042,252
31253 DATA CARLSON,104454,0.042,253
31254 DATA SILVA,104454,0.042,254
31255 DATA PEARSON,104454,0.042,255
31256 DATA HOLLAND,104454,0.042,256
31257 DATA DOUGLAS,101967,0.041,257
31258 DATA FLEMING,101967,0.041,258
31259 DATA JENSEN,101967,0.041,259
31260 DATA VARGAS,101967,0.041,260
31261 DATA BYRD,101967,0.041,261
31262 DATA DAVIDSON,101967,0.041,262
31263 DATA HOPKINS,101967,0.041,263
31264 DATA MAY,99480,0.04,264
31265 DATA TERRY,99480,0.04,265
31266 DATA HERRERA,99480,0.04,266
31267 DATA WADE,99480,0.04,267
31268 DATA SOTO,99480,0.04,268
31269 DATA WALTERS,99480,0.04,269
31270 DATA CURTIS,99480,0.04,270
31271 DATA NEAL,96993,0.039,271
31272 DATA CALDWELL,96993,0.039,272
31273 DATA LOWE,96993,0.039,273
31274 DATA JENNINGS,96993,0.039,274
31275 DATA BARNETT,96993,0.039,275
31276 DATA GRAVES,96993,0.039,276
31277 DATA JIMENEZ,96993,0.039,277
31278 DATA HORTON,96993,0.039,278
31279 DATA SHELTON,96993,0.039,279
31280 DATA BARRETT,96993,0.039,280
31281 DATA OBRIEN,96993,0.039,281
31282 DATA CASTRO,96993,0.039,282
31283 DATA SUTTON,94506,0.038,283
31284 DATA GREGORY,94506,0.038,284
31285 DATA MCKINNEY,94506,0.038,285
31286 DATA LUCAS,94506,0.038,286
31287 DATA MILES,94506,0.038,287
31288 DATA CRAIG,94506,0.038,288
31289 DATA RODRIQUEZ,92019,0.037,289
31290 DATA CHAMBERS,92019,0.037,290
31291 DATA HOLT,92019,0.037,291
31292 DATA LAMBERT,92019,0.037,292
31293 DATA FLETCHER,92019,0.037,293
31294 DATA WATTS,92019,0.037,294
31295 DATA BATES,92019,0.037,295
31296 DATA HALE,92019,0.037,296
31297 DATA RHODES,92019,0.037,297
31298 DATA PENA,92019,0.037,298
31299 DATA BECK,92019,0.037,299
31300 DATA NEWMAN,89532,0.036,300
31301 DATA HAYNES,89532,0.036,301
31302 DATA MCDANIEL,89532,0.036,302
31303 DATA MENDEZ,89532,0.036,303
31304 DATA BUSH,89532,0.036,304
31305 DATA VAUGHN,89532,0.036,305
31306 DATA PARKS,87045,0.035,306
31307 DATA DAWSON,87045,0.035,307
31308 DATA SANTIAGO,87045,0.035,308
31309 DATA NORRIS,87045,0.035,309
31310 DATA HARDY,87045,0.035,310
31311 DATA LOVE,87045,0.035,311
31312 DATA STEELE,87045,0.035,312
31313 DATA CURRY,87045,0.035,313
31314 DATA POWERS,87045,0.035,314
31315 DATA SCHULTZ,87045,0.035,315
31316 DATA BARKER,87045,0.035,316
31317 DATA GUZMAN,84558,0.034,317
31318 DATA PAGE,84558,0.034,318
31319 DATA MUNOZ,84558,0.034,319
31320 DATA BALL,84558,0.034,320
31321 DATA KELLER,84558,0.034,321
31322 DATA CHANDLER,84558,0.034,322
31323 DATA WEBER,84558,0.034,323
31324 DATA LEONARD,84558,0.034,324
31325 DATA WALSH,82071,0.033,325
31326 DATA LYONS,82071,0.033,326
31327 DATA RAMSEY,82071,0.033,327
31328 DATA WOLFE,82071,0.033,328
31329 DATA SCHNEIDER,82071,0.033,329
31330 DATA MULLINS,82071,0.033,330
31331 DATA BENSON,82071,0.033,331
31332 DATA SHARP,82071,0.033,332
31333 DATA BOWEN,82071,0.033,333
31334 DATA DANIEL,82071,0.033,334
31335 DATA BARBER,79584,0.032,335
31336 DATA CUMMINGS,79584,0.032,336
31337 DATA HINES,79584,0.032,337
31338 DATA BALDWIN,79584,0.032,338
31339 DATA GRIFFITH,79584,0.032,339
31340 DATA VALDEZ,79584,0.032,340
31341 DATA HUBBARD,79584,0.032,341
31342 DATA SALAZAR,79584,0.032,342
31343 DATA REEVES,79584,0.032,343
31344 DATA WARNER,77097,0.031,344
31345 DATA STEVENSON,77097,0.031,345
31346 DATA BURGESS,77097,0.031,346
31347 DATA SANTOS,77097,0.031,347
31348 DATA TATE,77097,0.031,348
31349 DATA CROSS,77097,0.031,349
31350 DATA GARNER,77097,0.031,350
31351 DATA MANN,77097,0.031,351
31352 DATA MACK,77097,0.031,352
31353 DATA MOSS,77097,0.031,353
31354 DATA THORNTON,77097,0.031,354
31355 DATA DENNIS,77097,0.031,355
31356 DATA MCGEE,77097,0.031,356
31357 DATA FARMER,74610,0.03,357
31358 DATA DELGADO,74610,0.03,358
31359 DATA AGUILAR,74610,0.03,359
31360 DATA VEGA,74610,0.03,360
31361 DATA GLOVER,74610,0.03,361
31362 DATA MANNING,74610,0.03,362
31363 DATA COHEN,74610,0.03,363
31364 DATA HARMON,74610,0.03,364
31365 DATA RODGERS,74610,0.03,365
31366 DATA ROBBINS,74610,0.03,366
31367 DATA NEWTON,74610,0.03,367
31368 DATA TODD,74610,0.03,368
31369 DATA BLAIR,74610,0.03,369
31370 DATA HIGGINS,74610,0.03,370
31371 DATA INGRAM,74610,0.03,371
31372 DATA REESE,74610,0.03,372
31373 DATA CANNON,74610,0.03,373
31374 DATA STRICKLAND,74610,0.03,374
31375 DATA TOWNSEND,74610,0.03,375
31376 DATA POTTER,74610,0.03,376
31377 DATA GOODWIN,74610,0.03,377
31378 DATA WALTON,74610,0.03,378
31379 DATA ROWE,72123,0.029,379
31380 DATA HAMPTON,72123,0.029,380
31381 DATA ORTEGA,72123,0.029,381
31382 DATA PATTON,72123,0.029,382
31383 DATA SWANSON,72123,0.029,383
31384 DATA JOSEPH,72123,0.029,384
31385 DATA FRANCIS,72123,0.029,385
31386 DATA GOODMAN,72123,0.029,386
31387 DATA MALDONADO,72123,0.029,387
31388 DATA YATES,72123,0.029,388
31389 DATA BECKER,72123,0.029,389
31390 DATA ERICKSON,72123,0.029,390
31391 DATA HODGES,72123,0.029,391
31392 DATA RIOS,72123,0.029,392
31393 DATA CONNER,72123,0.029,393
31394 DATA ADKINS,72123,0.029,394
31395 DATA WEBSTER,69636,0.028,395
31396 DATA NORMAN,69636,0.028,396
31397 DATA MALONE,69636,0.028,397
31398 DATA HAMMOND,69636,0.028,398
31399 DATA FLOWERS,69636,0.028,399
31400 DATA COBB,69636,0.028,400
31401 DATA MOODY,69636,0.028,401
31402 DATA QUINN,69636,0.028,402
31403 DATA BLAKE,69636,0.028,403
31404 DATA MAXWELL,69636,0.028,404
31405 DATA POPE,69636,0.028,405
31406 DATA FLOYD,67149,0.027,406
31407 DATA OSBORNE,67149,0.027,407
31408 DATA PAUL,67149,0.027,408
31409 DATA MCCARTHY,67149,0.027,409
31410 DATA GUERRERO,67149,0.027,410
31411 DATA LINDSEY,67149,0.027,411
31412 DATA ESTRADA,67149,0.027,412
31413 DATA SANDOVAL,67149,0.027,413
31414 DATA GIBBS,67149,0.027,414
31415 DATA TYLER,67149,0.027,415
31416 DATA GROSS,67149,0.027,416
31417 DATA FITZGERALD,67149,0.027,417
31418 DATA STOKES,67149,0.027,418
31419 DATA DOYLE,67149,0.027,419
31420 DATA SHERMAN,67149,0.027,420
31421 DATA SAUNDERS,67149,0.027,421
31422 DATA WISE,67149,0.027,422
31423 DATA COLON,67149,0.027,423
31424 DATA GILL,67149,0.027,424
31425 DATA ALVARADO,67149,0.027,425
31426 DATA GREER,64662,0.026,426
31427 DATA PADILLA,64662,0.026,427
31428 DATA SIMON,64662,0.026,428
31429 DATA WATERS,64662,0.026,429
31430 DATA NUNEZ,64662,0.026,430
31431 DATA BALLARD,64662,0.026,431
31432 DATA SCHWARTZ,64662,0.026,432
31433 DATA MCBRIDE,64662,0.026,433
31434 DATA HOUSTON,64662,0.026,434
31435 DATA CHRISTENSEN,64662,0.026,435
31436 DATA KLEIN,64662,0.026,436
31437 DATA PRATT,64662,0.026,437
31438 DATA BRIGGS,64662,0.026,438
31439 DATA PARSONS,64662,0.026,439
31440 DATA MCLAUGHLIN,64662,0.026,440
31441 DATA ZIMMERMAN,64662,0.026,441
31442 DATA FRENCH,64662,0.026,442
31443 DATA BUCHANAN,64662,0.026,443
31444 DATA MORAN,64662,0.026,444
31445 DATA COPELAND,62175,0.025,445
31446 DATA ROY,62175,0.025,446
31447 DATA PITTMAN,62175,0.025,447
31448 DATA BRADY,62175,0.025,448
31449 DATA MCCORMICK,62175,0.025,449
31450 DATA HOLLOWAY,62175,0.025,450
31451 DATA BROCK,62175,0.025,451
31452 DATA POOLE,62175,0.025,452
31453 DATA FRANK,62175,0.025,453
31454 DATA LOGAN,62175,0.025,454
31455 DATA OWEN,62175,0.025,455
31456 DATA BASS,62175,0.025,456
31457 DATA MARSH,62175,0.025,457
31458 DATA DRAKE,62175,0.025,458
31459 DATA WONG,62175,0.025,459
31460 DATA JEFFERSON,62175,0.025,460
31461 DATA PARK,62175,0.025,461
31462 DATA MORTON,62175,0.025,462
31463 DATA ABBOTT,62175,0.025,463
31464 DATA SPARKS,62175,0.025,464
31465 DATA PATRICK,59688,0.024,465
31466 DATA NORTON,59688,0.024,466
31467 DATA HUFF,59688,0.024,467
31468 DATA CLAYTON,59688,0.024,468
31469 DATA MASSEY,59688,0.024,469
31470 DATA LLOYD,59688,0.024,470
31471 DATA FIGUEROA,59688,0.024,471
31472 DATA CARSON,59688,0.024,472
31473 DATA BOWERS,59688,0.024,473
31474 DATA ROBERSON,59688,0.024,474
31475 DATA BARTON,59688,0.024,475
31476 DATA TRAN,59688,0.024,476
31477 DATA LAMB,59688,0.024,477
31478 DATA HARRINGTON,59688,0.024,478
31479 DATA CASEY,59688,0.024,479
31480 DATA BOONE,59688,0.024,480
31481 DATA CORTEZ,59688,0.024,481
31482 DATA CLARKE,59688,0.024,482
31483 DATA MATHIS,59688,0.024,483
31484 DATA SINGLETON,59688,0.024,484
31485 DATA WILKINS,59688,0.024,485
31486 DATA CAIN,59688,0.024,486
31487 DATA BRYAN,59688,0.024,487
31488 DATA UNDERWOOD,59688,0.024,488
31489 DATA HOGAN,59688,0.024,489
31490 DATA MCKENZIE,57201,0.023,490
31491 DATA COLLIER,57201,0.023,491
31492 DATA LUNA,57201,0.023,492
31493 DATA PHELPS,57201,0.023,493
31494 DATA MCGUIRE,57201,0.023,494
31495 DATA ALLISON,57201,0.023,495
31496 DATA BRIDGES,57201,0.023,496
31497 DATA WILKERSON,57201,0.023,497
31498 DATA NASH,57201,0.023,498
31499 DATA SUMMERS,57201,0.023,499
31500 DATA ATKINS,57201,0.023,500
31501 DATA WILCOX,57201,0.023,501
31502 DATA PITTS,57201,0.023,502
31503 DATA CONLEY,57201,0.023,503
31504 DATA MARQUEZ,57201,0.023,504
31505 DATA BURNETT,57201,0.023,505
31506 DATA RICHARD,57201,0.023,506
31507 DATA COCHRAN,57201,0.023,507
31508 DATA CHASE,57201,0.023,508
31509 DATA DAVENPORT,57201,0.023,509
31510 DATA HOOD,57201,0.023,510
31511 DATA GATES,57201,0.023,511
31512 DATA CLAY,57201,0.023,512
31513 DATA AYALA,57201,0.023,513
31514 DATA SAWYER,57201,0.023,514
31515 DATA ROMAN,57201,0.023,515
31516 DATA VAZQUEZ,57201,0.023,516
31517 DATA DICKERSON,57201,0.023,517
31518 DATA HODGE,54714,0.022,518
31519 DATA ACOSTA,54714,0.022,519
31520 DATA FLYNN,54714,0.022,520
31521 DATA ESPINOZA,54714,0.022,521
31522 DATA NICHOLSON,54714,0.022,522
31523 DATA MONROE,54714,0.022,523
31524 DATA WOLF,54714,0.022,524
31525 DATA MORROW,54714,0.022,525
31526 DATA KIRK,54714,0.022,526
31527 DATA RANDALL,54714,0.022,527
31528 DATA ANTHONY,54714,0.022,528
31529 DATA WHITAKER,54714,0.022,529
31530 DATA OCONNOR,54714,0.022,530
31531 DATA SKINNER,54714,0.022,531
31532 DATA WARE,54714,0.022,532
31533 DATA MOLINA,54714,0.022,533
31534 DATA KIRBY,54714,0.022,534
31535 DATA HUFFMAN,54714,0.022,535
31536 DATA BRADFORD,54714,0.022,536
31537 DATA CHARLES,54714,0.022,537
31538 DATA GILMORE,54714,0.022,538
31539 DATA DOMINGUEZ,54714,0.022,539
31540 DATA ONEAL,54714,0.022,540
31541 DATA BRUCE,54714,0.022,541
31542 DATA LANG,52227,0.021,542
31543 DATA COMBS,52227,0.021,543
31544 DATA KRAMER,52227,0.021,544
31545 DATA HEATH,52227,0.021,545
31546 DATA HANCOCK,52227,0.021,546
31547 DATA GALLAGHER,52227,0.021,547
31548 DATA GAINES,52227,0.021,548
31549 DATA SHAFFER,52227,0.021,549
31550 DATA SHORT,52227,0.021,550
31551 DATA WIGGINS,52227,0.021,551
31552 DATA MATHEWS,52227,0.021,552
31553 DATA MCCLAIN,52227,0.021,553
31554 DATA FISCHER,52227,0.021,554
31555 DATA WALL,52227,0.021,555
31556 DATA SMALL,52227,0.021,556
31557 DATA MELTON,52227,0.021,557
31558 DATA HENSLEY,52227,0.021,558
31559 DATA BOND,52227,0.021,559
31560 DATA DYER,52227,0.021,560
31561 DATA CAMERON,52227,0.021,561
31562 DATA GRIMES,52227,0.021,562
31563 DATA CONTRERAS,52227,0.021,563
31564 DATA CHRISTIAN,52227,0.021,564
31565 DATA WYATT,52227,0.021,565
31566 DATA BAXTER,52227,0.021,566
31567 DATA SNOW,52227,0.021,567
31568 DATA MOSLEY,52227,0.021,568
31569 DATA SHEPHERD,52227,0.021,569
31570 DATA LARSEN,52227,0.021,570
31571 DATA HOOVER,52227,0.021,571
31572 DATA BEASLEY,49740,0.02,572
31573 DATA GLENN,49740,0.02,573
31574 DATA PETERSEN,49740,0.02,574
31575 DATA WHITEHEAD,49740,0.02,575
31576 DATA MEYERS,49740,0.02,576
31577 DATA KEITH,49740,0.02,577
31578 DATA GARRISON,49740,0.02,578
31579 DATA VINCENT,49740,0.02,579
31580 DATA SHIELDS,49740,0.02,580
31581 DATA HORN,49740,0.02,581
31582 DATA SAVAGE,49740,0.02,582
31583 DATA OLSEN,49740,0.02,583
31584 DATA SCHROEDER,49740,0.02,584
31585 DATA HARTMAN,49740,0.02,585
31586 DATA WOODARD,49740,0.02,586
31587 DATA MUELLER,49740,0.02,587
31588 DATA KEMP,49740,0.02,588
31589 DATA DELEON,49740,0.02,589
31590 DATA BOOTH,49740,0.02,590
31591 DATA PATEL,49740,0.02,591
31592 DATA CALHOUN,49740,0.02,592
31593 DATA WILEY,49740,0.02,593
31594 DATA EATON,49740,0.02,594
31595 DATA CLINE,49740,0.02,595
31596 DATA NAVARRO,49740,0.02,596
31597 DATA HARRELL,49740,0.02,597
31598 DATA LESTER,49740,0.02,598
31599 DATA HUMPHREY,49740,0.02,599
31600 DATA PARRISH,49740,0.02,600
31601 DATA DURAN,49740,0.02,601
31602 DATA HUTCHINSON,49740,0.02,602
31603 DATA HESS,49740,0.02,603
31604 DATA DORSEY,49740,0.02,604
31605 DATA BULLOCK,49740,0.02,605
31606 DATA ROBLES,49740,0.02,606
31607 DATA BEARD,47253,0.019,607
31608 DATA DALTON,47253,0.019,608
31609 DATA AVILA,47253,0.019,609
31610 DATA VANCE,47253,0.019,610
31611 DATA RICH,47253,0.019,611
31612 DATA BLACKWELL,47253,0.019,612
31613 DATA YORK,47253,0.019,613
31614 DATA JOHNS,47253,0.019,614
31615 DATA BLANKENSHIP,47253,0.019,615
31616 DATA TREVINO,47253,0.019,616
31617 DATA SALINAS,47253,0.019,617
31618 DATA CAMPOS,47253,0.019,618
31619 DATA PRUITT,47253,0.019,619
31620 DATA MOSES,47253,0.019,620
31621 DATA CALLAHAN,47253,0.019,621
31622 DATA GOLDEN,47253,0.019,622
31623 DATA MONTOYA,47253,0.019,623
31624 DATA HARDIN,47253,0.019,624
31625 DATA GUERRA,47253,0.019,625
31626 DATA MCDOWELL,47253,0.019,626
31627 DATA CAREY,47253,0.019,627
31628 DATA STAFFORD,47253,0.019,628
31629 DATA GALLEGOS,47253,0.019,629
31630 DATA HENSON,47253,0.019,630
31631 DATA WILKINSON,47253,0.019,631
31632 DATA BOOKER,47253,0.019,632
31633 DATA MERRITT,47253,0.019,633
31634 DATA MIRANDA,47253,0.019,634
31635 DATA ATKINSON,47253,0.019,635
31636 DATA ORR,47253,0.019,636
31637 DATA DECKER,47253,0.019,637
31638 DATA HOBBS,47253,0.019,638
31639 DATA PRESTON,47253,0.019,639
31640 DATA TANNER,47253,0.019,640
31641 DATA KNOX,47253,0.019,641
31642 DATA PACHECO,47253,0.019,642
31643 DATA STEPHENSON,44766,0.018,643
31644 DATA GLASS,44766,0.018,644
31645 DATA ROJAS,44766,0.018,645
31646 DATA SERRANO,44766,0.018,646
31647 DATA MARKS,44766,0.018,647
31648 DATA HICKMAN,44766,0.018,648
31649 DATA ENGLISH,44766,0.018,649
31650 DATA SWEENEY,44766,0.018,650
31651 DATA STRONG,44766,0.018,651
31652 DATA PRINCE,44766,0.018,652
31653 DATA MCCLURE,44766,0.018,653
31654 DATA CONWAY,44766,0.018,654
31655 DATA WALTER,44766,0.018,655
31656 DATA ROTH,44766,0.018,656
31657 DATA MAYNARD,44766,0.018,657
31658 DATA FARRELL,44766,0.018,658
31659 DATA LOWERY,44766,0.018,659
31660 DATA HURST,44766,0.018,660
31661 DATA NIXON,44766,0.018,661
31662 DATA WEISS,44766,0.018,662
31663 DATA TRUJILLO,44766,0.018,663
31664 DATA ELLISON,44766,0.018,664
31665 DATA SLOAN,44766,0.018,665
31666 DATA JUAREZ,44766,0.018,666
31667 DATA WINTERS,44766,0.018,667
31668 DATA MCLEAN,44766,0.018,668
31669 DATA RANDOLPH,44766,0.018,669
31670 DATA LEON,44766,0.018,670
31671 DATA BOYER,44766,0.018,671
31672 DATA VILLARREAL,44766,0.018,672
31673 DATA MCCALL,44766,0.018,673
31674 DATA GENTRY,44766,0.018,674
31675 DATA CARRILLO,42279,0.017,675
31676 DATA KENT,42279,0.017,676
31677 DATA AYERS,42279,0.017,677
31678 DATA LARA,42279,0.017,678
31679 DATA SHANNON,42279,0.017,679
31680 DATA SEXTON,42279,0.017,680
31681 DATA PACE,42279,0.017,681
31682 DATA HULL,42279,0.017,682
31683 DATA LEBLANC,42279,0.017,683
31684 DATA BROWNING,42279,0.017,684
31685 DATA VELASQUEZ,42279,0.017,685
31686 DATA LEACH,42279,0.017,686
31687 DATA CHANG,42279,0.017,687
31688 DATA HOUSE,42279,0.017,688
31689 DATA SELLERS,42279,0.017,689
31690 DATA HERRING,42279,0.017,690
31691 DATA NOBLE,42279,0.017,691
31692 DATA FOLEY,42279,0.017,692
31693 DATA BARTLETT,42279,0.017,693
31694 DATA MERCADO,42279,0.017,694
31695 DATA LANDRY,42279,0.017,695
31696 DATA DURHAM,42279,0.017,696
31697 DATA WALLS,42279,0.017,697
31698 DATA BARR,42279,0.017,698
31699 DATA MCKEE,42279,0.017,699
31700 DATA BAUER,42279,0.017,700
31701 DATA RIVERS,42279,0.017,701
31702 DATA EVERETT,42279,0.017,702
31703 DATA BRADSHAW,42279,0.017,703
31704 DATA PUGH,42279,0.017,704
31705 DATA VELEZ,42279,0.017,705
31706 DATA RUSH,42279,0.017,706
31707 DATA ESTES,42279,0.017,707
31708 DATA DODSON,42279,0.017,708
31709 DATA MORSE,42279,0.017,709
31710 DATA SHEPPARD,42279,0.017,710
31711 DATA WEEKS,42279,0.017,711
31712 DATA CAMACHO,42279,0.017,712
31713 DATA BEAN,42279,0.017,713
31714 DATA BARRON,42279,0.017,714
31715 DATA LIVINGSTON,42279,0.017,715
31716 DATA MIDDLETON,39792,0.016,716
31717 DATA SPEARS,39792,0.016,717
31718 DATA BRANCH,39792,0.016,718
31719 DATA BLEVINS,39792,0.016,719
31720 DATA CHEN,39792,0.016,720
31721 DATA KERR,39792,0.016,721
31722 DATA MCCONNELL,39792,0.016,722
31723 DATA HATFIELD,39792,0.016,723
31724 DATA HARDING,39792,0.016,724
31725 DATA ASHLEY,39792,0.016,725
31726 DATA SOLIS,39792,0.016,726
31727 DATA HERMAN,39792,0.016,727
31728 DATA FROST,39792,0.016,728
31729 DATA GILES,39792,0.016,729
31730 DATA BLACKBURN,39792,0.016,730
31731 DATA WILLIAM,39792,0.016,731
31732 DATA PENNINGTON,39792,0.016,732
31733 DATA WOODWARD,39792,0.016,733
31734 DATA FINLEY,39792,0.016,734
31735 DATA MCINTOSH,39792,0.016,735
31736 DATA KOCH,39792,0.016,736
31737 DATA BEST,39792,0.016,737
31738 DATA SOLOMON,39792,0.016,738
31739 DATA MCCULLOUGH,39792,0.016,739
31740 DATA DUDLEY,39792,0.016,740
31741 DATA NOLAN,39792,0.016,741
31742 DATA BLANCHARD,39792,0.016,742
31743 DATA RIVAS,39792,0.016,743
31744 DATA BRENNAN,39792,0.016,744
31745 DATA MEJIA,39792,0.016,745
31746 DATA KANE,39792,0.016,746
31747 DATA BENTON,39792,0.016,747
31748 DATA JOYCE,39792,0.016,748
31749 DATA BUCKLEY,39792,0.016,749
31750 DATA HALEY,39792,0.016,750
31751 DATA VALENTINE,39792,0.016,751
31752 DATA MADDOX,39792,0.016,752
31753 DATA RUSSO,39792,0.016,753
31754 DATA MCKNIGHT,39792,0.016,754
31755 DATA BUCK,39792,0.016,755
31756 DATA MOON,39792,0.016,756
31757 DATA MCMILLAN,39792,0.016,757
31758 DATA CROSBY,39792,0.016,758
31759 DATA BERG,39792,0.016,759
31760 DATA DOTSON,39792,0.016,760
31761 DATA MAYS,39792,0.016,761
31762 DATA ROACH,39792,0.016,762
31763 DATA CHURCH,39792,0.016,763
31764 DATA CHAN,39792,0.016,764
31765 DATA RICHMOND,39792,0.016,765
31766 DATA MEADOWS,39792,0.016,766
31767 DATA FAULKNER,39792,0.016,767
31768 DATA ONEILL,39792,0.016,768
31769 DATA KNAPP,39792,0.016,769
31770 DATA KLINE,37305,0.015,770
31771 DATA BARRY,37305,0.015,771
31772 DATA OCHOA,37305,0.015,772
31773 DATA JACOBSON,37305,0.015,773
31774 DATA GAY,37305,0.015,774
31775 DATA AVERY,37305,0.015,775
31776 DATA HENDRICKS,37305,0.015,776
31777 DATA HORNE,37305,0.015,777
31778 DATA SHEPARD,37305,0.015,778
31779 DATA HEBERT,37305,0.015,779
31780 DATA CHERRY,37305,0.015,780
31781 DATA CARDENAS,37305,0.015,781
31782 DATA MCINTYRE,37305,0.015,782
31783 DATA WHITNEY,37305,0.015,783
31784 DATA WALLER,37305,0.015,784
31785 DATA HOLMAN,37305,0.015,785
31786 DATA DONALDSON,37305,0.015,786
31787 DATA CANTU,37305,0.015,787
31788 DATA TERRELL,37305,0.015,788
31789 DATA MORIN,37305,0.015,789
31790 DATA GILLESPIE,37305,0.015,790
31791 DATA FUENTES,37305,0.015,791
31792 DATA TILLMAN,37305,0.015,792
31793 DATA SANFORD,37305,0.015,793
31794 DATA BENTLEY,37305,0.015,794
31795 DATA PECK,37305,0.015,795
31796 DATA KEY,37305,0.015,796
31797 DATA SALAS,37305,0.015,797
31798 DATA ROLLINS,37305,0.015,798
31799 DATA GAMBLE,37305,0.015,799
31800 DATA DICKSON,37305,0.015,800
31801 DATA BATTLE,37305,0.015,801
31802 DATA SANTANA,37305,0.015,802
31803 DATA CABRERA,37305,0.015,803
31804 DATA CERVANTES,37305,0.015,804
31805 DATA HOWE,37305,0.015,805
31806 DATA HINTON,37305,0.015,806
31807 DATA HURLEY,37305,0.015,807
31808 DATA SPENCE,37305,0.015,808
31809 DATA ZAMORA,37305,0.015,809
31810 DATA YANG,37305,0.015,810
31811 DATA MCNEIL,37305,0.015,811
31812 DATA SUAREZ,37305,0.015,812
31813 DATA CASE,37305,0.015,813
31814 DATA PETTY,37305,0.015,814
31815 DATA GOULD,37305,0.015,815
31816 DATA MCFARLAND,37305,0.015,816
31817 DATA SAMPSON,37305,0.015,817
31818 DATA CARVER,37305,0.015,818
31819 DATA BRAY,37305,0.015,819
31820 DATA ROSARIO,37305,0.015,820
31821 DATA MACDONALD,37305,0.015,821
31822 DATA STOUT,37305,0.015,822
31823 DATA HESTER,37305,0.015,823
31824 DATA MELENDEZ,37305,0.015,824
31825 DATA DILLON,37305,0.015,825
31826 DATA FARLEY,37305,0.015,826
31827 DATA HOPPER,37305,0.015,827
31828 DATA GALLOWAY,37305,0.015,828
31829 DATA POTTS,37305,0.015,829
31830 DATA BERNARD,37305,0.015,830
31831 DATA JOYNER,34818,0.014,831
31832 DATA STEIN,34818,0.014,832
31833 DATA AGUIRRE,34818,0.014,833
31834 DATA OSBORN,34818,0.014,834
31835 DATA MERCER,34818,0.014,835
31836 DATA BENDER,34818,0.014,836
31837 DATA FRANCO,34818,0.014,837
31838 DATA ROWLAND,34818,0.014,838
31839 DATA SYKES,34818,0.014,839
31840 DATA BENJAMIN,34818,0.014,840
31841 DATA TRAVIS,34818,0.014,841
31842 DATA PICKETT,34818,0.014,842
31843 DATA CRANE,34818,0.014,843
31844 DATA SEARS,34818,0.014,844
31845 DATA MAYO,34818,0.014,845
31846 DATA DUNLAP,34818,0.014,846
31847 DATA HAYDEN,34818,0.014,847
31848 DATA WILDER,34818,0.014,848
31849 DATA MCKAY,34818,0.014,849
31850 DATA COFFEY,34818,0.014,850
31851 DATA MCCARTY,34818,0.014,851
31852 DATA EWING,34818,0.014,852
31853 DATA COOLEY,34818,0.014,853
31854 DATA VAUGHAN,34818,0.014,854
31855 DATA BONNER,34818,0.014,855
31856 DATA COTTON,34818,0.014,856
31857 DATA HOLDER,34818,0.014,857
31858 DATA STARK,34818,0.014,858
31859 DATA FERRELL,34818,0.014,859
31860 DATA CANTRELL,34818,0.014,860
31861 DATA FULTON,34818,0.014,861
31862 DATA LYNN,34818,0.014,862
31863 DATA LOTT,34818,0.014,863
31864 DATA CALDERON,34818,0.014,864
31865 DATA ROSA,34818,0.014,865
31866 DATA POLLARD,34818,0.014,866
31867 DATA HOOPER,34818,0.014,867
31868 DATA BURCH,34818,0.014,868
31869 DATA MULLEN,34818,0.014,869
31870 DATA FRY,34818,0.014,870
31871 DATA RIDDLE,34818,0.014,871
31872 DATA LEVY,34818,0.014,872
31873 DATA DAVID,34818,0.014,873
31874 DATA DUKE,34818,0.014,874
31875 DATA ODONNELL,34818,0.014,875
31876 DATA GUY,34818,0.014,876
31877 DATA MICHAEL,34818,0.014,877
31878 DATA BRITT,34818,0.014,878
31879 DATA FREDERICK,34818,0.014,879
31880 DATA DAUGHERTY,34818,0.014,880
31881 DATA BERGER,34818,0.014,881
31882 DATA DILLARD,34818,0.014,882
31883 DATA ALSTON,34818,0.014,883
31884 DATA JARVIS,34818,0.014,884
31885 DATA FRYE,34818,0.014,885
31886 DATA RIGGS,34818,0.014,886
31887 DATA CHANEY,34818,0.014,887
31888 DATA ODOM,32331,0.013,888
31889 DATA DUFFY,32331,0.013,889
31890 DATA FITZPATRICK,32331,0.013,890
31891 DATA VALENZUELA,32331,0.013,891
32000 DATA $,0,0,0

 

 

Ran my Banana-Sort routine on a 100-names sample, on Turbo-Basic 1.5 (A800-Incognito) and on Altirra emulator (all NTSC).

 

Highest timing difference observed was 0.1 s. I don't have any timing issues on my side, nor my emulator's config.

 

There is a definitely a problem, though, with the timings shown above.

 

 

Link to comment
Share on other sites

6 hours ago, Faicuai said:

There is a definitely a problem, though, with the timings shown above.

The problem is that you are running on NTSC, rather than PAL, meaning that the frame-rate divisor in the code (50 fps) is incorrect by ratio ~6/5.

 

Either change the code so that the divisor in the timing calculations is ~60 fps or change your Altirra system settings to PAL ~50fps and you will get the correct timings.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...