JamesD Posted August 5, 2019 Share Posted August 5, 2019 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. Quote Link to comment Share on other sites More sharing options...
jnharmon Posted August 5, 2019 Share Posted August 5, 2019 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 2 Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by Faicuai Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by drpeter Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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: 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. 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. 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. No need to check. Sort routine fully converges on the fly, and validates itself, as it goes. 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. 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. 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. 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 August 5, 2019 by Faicuai 1 Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 (edited) 6 hours ago, Faicuai said: For the sake of clarity: 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. 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. 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. No need to check. Sort routine fully converges on the fly, and validates itself, as it goes.A 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. 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. 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. 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 August 5, 2019 by drpeter Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by drpeter Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by drpeter 1 Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 5, 2019 Share Posted August 5, 2019 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. Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 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 ? Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 Furthermore, ran your code (adjusted to PAL timings) and got the same result as you for stock ROM Rev 4, Basic Rev C So Altirra execution environment isn't obviously awry... Quote Link to comment Share on other sites More sharing options...
JamesD Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by JamesD Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 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. Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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: 359 secs on TurboBasic XL v1.5. Impossible to make it run any faster. 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). 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. On your 2nd-gen code version (runs DOS-less), TurboBasic CANNOT reach {Altirra Basic + XE04_FP} combined performance. On my own crafted Sort routine, TurboBasic CANNOT reach {Altirra Basic + XE04_FP} combined performance, in any of my tests. 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: 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 August 5, 2019 by Faicuai Quote Link to comment Share on other sites More sharing options...
JamesD Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by JamesD Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 35 minutes ago, JamesD said: 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. This is a nice summary of features of BASICs for the ATARI in 1987: https://www.atarimagazines.com/v6n2/BASICBonanza.html Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 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? Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 5, 2019 Share Posted August 5, 2019 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 Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by Faicuai Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 5, 2019 Share Posted August 5, 2019 (edited) 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 August 5, 2019 by drpeter Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 6, 2019 Share Posted August 6, 2019 (edited) 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: Edited August 6, 2019 by Faicuai Quote Link to comment Share on other sites More sharing options...
JamesD Posted August 6, 2019 Share Posted August 6, 2019 Check CPU timing settings? Quote Link to comment Share on other sites More sharing options...
Faicuai Posted August 6, 2019 Share Posted August 6, 2019 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: 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. Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 6, 2019 Share Posted August 6, 2019 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. Quote Link to comment Share on other sites More sharing options...
drpeter Posted August 6, 2019 Share Posted August 6, 2019 (edited) Here's modified version of code which adjusts automatically for a PAL or NTSC system (see line 45) SORTY4.BAS is for Atari/Altirra loading e.g. via LOAD "H:SORTY4.BAS" SORTY4.TXT is for viewing on PC platforms SORTY4.TXT SORTY4.BAS Edited August 6, 2019 by drpeter Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.