00000000: 39 09 7F 09 D4 09 00 0A 33 00 20 54 48 52 45 45 |9.......3. THREE|
00000010: 20 52 4F 55 54 49 4E 45 53 20 57 4F 52 4B 20 54 | ROUTINES WORK T|
00000020: 4F 47 45 54 48 45 52 20 54 4F 20 46 4F 52 4D 20 |OGETHER TO FORM |
00000030: 51 55 49 43 4B 53 4F 52 54 00 14 23 00 20 51 55 |QUICKSORT..#. QU|
00000040: 49 43 4B 53 4F 52 54 20 3A 3A 20 50 41 52 54 49 |ICKSORT :: PARTI|
00000050: 54 49 4F 4E 20 3A 3A 20 53 57 41 50 00 1E 04 00 |TION :: SWAP....|
00000060: 00 28 12 70 01 00 00 04 7A 02 01 72 03 72 04 72 |.(.p....z..r.r.r|
00000070: 05 7C 00 32 12 8C 8F 06 00 04 05 93 8F 07 00 04 |.|.2............|
00000080: 05 93 94 C5 00 3C 28 7F 08 07 03 10 07 04 10 07 |.....<(.........|
00000090: 03 10 07 04 16 00 20 53 4F 52 54 20 41 24 28 4C |...... SORT A$(L|
000000A0: 45 46 54 27 3A 52 49 47 48 54 27 29 00 46 05 7D |EFT':RIGHT').F.}|
000000B0: 01 00 50 04 00 00 5A 11 70 08 00 00 04 72 03 72 |..P...Z.p....r.r|
000000C0: 04 72 09 72 0A 7B 00 64 30 09 06 0C 02 04 03 04 |.r.r.{.d0.......|
000000D0: 04 27 47 02 00 02 25 13 3C 00 20 47 45 54 20 4D |.'G...%.<. GET M|
000000E0: 49 44 44 4C 45 20 45 4C 45 4D 45 4E 54 20 41 53 |IDDLE ELEMENT AS|
000000F0: 20 50 49 56 4F 54 00 6E 17 95 00 20 50 45 52 46 | PIVOT.n... PERF|
00000100: 4F 52 4D 20 53 57 41 50 50 49 4E 47 53 00 78 14 |ORM SWAPPINGS.x.|
00000110: 97 06 06 0C 02 07 09 16 31 99 07 09 02 00 01 3D |........1......=|
00000120: 9A 00 82 14 97 06 06 0C 02 07 0A 16 2B 99 07 0A |............+...|
00000130: 02 00 01 40 9A 00 8C 26 68 04 09 04 0A 2E 6A 7F |...@...&h.....j.|
00000140: 0B 0C 02 07 09 1C 12 0C 02 07 0A 1C 18 07 09 02 |................|
00000150: 00 01 3D 42 07 0A 02 00 01 40 42 00 96 0C DA 04 |..=B.....@B.....|
00000160: 09 04 0A 30 96 00 00 00 A0 2A 68 04 03 04 0A 2A |...0.....*h....*|
00000170: 6A 7F 08 07 03 10 07 0A 10 07 03 10 07 0A 16 00 |j...............|
00000180: 20 53 4F 52 54 20 41 24 28 4C 45 46 54 27 3A 4A | SORT A$(LEFT':J|
00000190: 29 00 AA 2B 68 04 09 04 04 2A 6A 7F 08 07 09 10 |)..+h....*j.....|
000001A0: 07 04 10 07 09 10 07 04 16 00 20 53 4F 52 54 20 |.......... SORT |
000001B0: 41 24 28 49 3A 52 49 47 48 54 27 29 00 B4 05 7D |A$(I:RIGHT')...}|
000001C0: 08 00 BE 04 00 00 C8 0D 70 0B 00 00 02 77 02 77 |........p....w.w|
000001D0: 0C 7B 00 D2 14 09 07 06 02 3C 09 02 06 0C 3C 42 |.{.......<....<B|
000001E0: 09 0C 06 07 3C 42 00 DC 05 7D 0B 00 E6 04 00 00 |....<B...}......|
000001F0: F0 1E 00 20 44 45 4D 4F 20 4F 46 20 54 48 49 53 |... DEMO OF THIS|
00000200: 20 53 4F 52 54 20 46 4F 4C 4C 4F 57 53 00 FA 04 | SORT FOLLOWS...|
00000210: 00 01 04 14 8C 8F 0D 01 02 00 01 90 02 00 32 92 |..............2.|
00000220: 02 00 23 93 C5 01 0E 09 07 0E 02 00 00 3A 01 18 |..#..........:..|
00000230: 09 97 5C 37 98 00 00 01 22 09 07 0E 02 00 01 3D |..\7...."......=|
00000240: 01 2C 0B AF 0C 0D 07 0E 1C B2 B3 01 36 06 9B 00 |.,..........6...|
00000250: 00 01 40 04 00 01 4A 19 00 20 53 4F 52 54 20 45 |..@...J.. SORT E|
00000260: 52 52 4F 52 20 4D 45 53 53 41 47 45 53 3A 01 54 |RROR MESSAGES:.T|
00000270: 04 00 01 5E 19 5F 03 10 53 4F 52 54 49 4E 47 20 |...^._..SORTING |
00000280: 53 54 41 52 54 45 44 3A 65 60 61 01 68 13 7F 01 |STARTED:e`a.h...|
00000290: 09 0D 12 02 00 01 0D 07 0E 10 02 00 23 13 01 72 |............#..r|
000002A0: 22 00 20 20 20 20 20 20 20 20 20 20 20 5E 20 20 |". ^ |
000002B0: 20 20 20 5E 20 20 20 20 20 5E 20 20 20 20 20 5E | ^ ^ ^|
000002C0: 01 7C 3D 00 20 20 20 20 20 20 20 20 20 20 20 21 |.|=. !|
000002D0: 20 20 20 20 20 21 20 20 20 20 20 21 20 20 20 20 | ! ! |
000002E0: 20 2B 2D 3E 4C 45 4E 47 54 48 20 4F 46 20 53 54 | +->LENGTH OF ST|
000002F0: 52 49 4E 47 20 49 4E 20 41 52 52 41 59 01 86 46 |RING IN ARRAY..F|
00000300: 00 20 20 20 20 20 20 20 20 20 20 20 21 20 20 20 |. ! |
00000310: 20 20 21 20 20 20 20 20 2B 2D 2D 2D 2D 2D 2D 2D | ! +-------|
00000320: 3E 4E 55 4D 42 45 52 20 4F 46 20 53 54 52 49 4E |>NUMBER OF STRIN|
00000330: 47 53 20 49 4E 20 41 52 52 41 59 20 54 4F 20 53 |GS IN ARRAY TO S|
00000340: 4F 52 54 01 90 48 00 20 20 20 20 20 20 20 20 20 |ORT..H. |
00000350: 20 20 21 20 20 20 20 20 2B 2D 2D 2D 2D 2D 2D 2D | ! +-------|
00000360: 2D 2D 2D 2D 2D 2D 3E 31 20 48 45 52 45 20 4D 45 |------>1 HERE ME|
00000370: 41 4E 53 20 53 54 41 52 54 20 57 49 54 48 20 46 |ANS START WITH F|
00000380: 49 52 53 54 20 52 45 43 4F 52 44 01 9A 43 00 20 |IRST RECORD..C. |
00000390: 20 20 20 20 20 20 20 20 20 20 2B 2D 2D 2D 2D 2D | +-----|
000003A0: 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 2D 3E 4E |-------------->N|
000003B0: 41 4D 45 20 4F 46 20 54 48 45 20 41 52 52 41 59 |AME OF THE ARRAY|
000003C0: 59 20 54 4F 20 42 45 20 53 4F 52 54 45 44 01 A4 |Y TO BE SORTED..|
000003D0: 04 00 01 AE 1F 00 20 50 52 49 4E 54 20 54 48 45 |...... PRINT THE|
000003E0: 20 53 4F 52 54 45 44 20 4D 45 53 53 41 47 45 53 | SORTED MESSAGES|
000003F0: 3A 01 B8 04 00 01 C2 22 82 09 0F 00 02 00 01 84 |:......"........|
00000400: 04 0E 85 88 5F 04 09 64 66 03 01 3A 65 67 0C 0D |...._..df..:eg..|
00000410: 07 09 16 65 60 61 89 01 CC 04 00 01 D6 04 9F 01 |...e`a..........|
00000420: E0 04 00 01 EA 33 00 20 53 54 41 52 54 2D 4F 46 |.....3. START-OF|
00000430: 2D 44 41 54 41 20 3A 3A 3A 20 54 4F 20 42 45 20 |-DATA ::: TO BE |
00000440: 52 45 41 44 20 49 4E 54 4F 20 53 54 52 49 4E 47 |READ INTO STRING|
00000450: 20 41 52 52 41 59 01 F4 04 00 01 FE 15 AA AE 0C | ARRAY..........|
00000460: 46 4F 52 4D 41 54 20 45 52 52 4F 52 AB 00 00 02 |FORMAT ERROR....|
00000470: 08 15 AA AE 0C 53 59 4E 54 41 58 20 45 52 52 4F |.....SYNTAX ERRO|
00000480: 52 AB 00 00 02 12 16 AA AE 0D 54 59 50 45 20 43 |R.........TYPE C|
00000490: 4F 4E 46 4C 49 43 54 AB 00 00 02 1C 20 AA AE 17 |ONFLICT..... ...|
000004A0: 46 55 4E 43 54 49 4F 4E 20 41 52 47 55 4D 45 4E |FUNCTION ARGUMEN|
000004B0: 54 20 45 52 52 4F 52 AB 00 00 02 26 2E AA AE 25 |T ERROR....&...%|
000004C0: 53 54 41 54 45 4D 45 4E 54 20 54 4F 4F 20 4C 4F |STATEMENT TOO LO|
000004D0: 4E 47 20 4F 52 20 54 4F 4F 20 43 4F 4D 50 4C 49 |NG OR TOO COMPLI|
000004E0: 43 41 54 45 44 AB 00 00 02 30 15 AA AE 0C 53 59 |CATED....0....SY|
000004F0: 53 54 45 4D 20 45 52 52 4F 52 AB 00 00 02 3A 16 |STEM ERROR....:.|
00000500: AA AE 0D 4E 41 4D 45 20 54 4F 4F 20 4C 4F 4E 47 |...NAME TOO LONG|
00000510: AB 00 00 02 44 16 AA AE 0D 42 52 41 43 4B 45 54 |....D....BRACKET|
00000520: 20 45 52 52 4F 52 AB 00 00 02 4E 11 AA AE 08 4F | ERROR....N....O|
00000530: 56 45 52 46 4C 4F 57 AB 00 00 02 58 26 AA AE 1D |VERFLOW....X&...|
00000540: 45 52 52 4F 52 20 49 4E 20 53 54 52 55 43 54 55 |ERROR IN STRUCTU|
00000550: 52 45 44 20 53 54 41 54 45 4D 45 4E 54 AB 00 00 |RED STATEMENT...|
00000560: 02 62 20 AA AE 17 45 52 52 4F 52 20 49 4E 20 47 |.b ...ERROR IN G|
00000570: 4F 54 4F 20 53 54 41 54 45 4D 45 4E 54 AB 00 00 |OTO STATEMENT...|
00000580: 02 6C 17 AA AE 0E 53 54 41 43 4B 20 4F 56 45 52 |.l....STACK OVER|
00000590: 46 4C 4F 57 AB 00 00 02 76 19 AA AE 10 55 4E 4B |FLOW....v....UNK|
000005A0: 4E 4F 57 4E 20 56 41 52 49 41 42 4C 45 AB 00 00 |NOWN VARIABLE...|
000005B0: 02 80 1E AA AE 15 50 52 4F 43 45 44 55 52 45 20 |......PROCEDURE |
000005C0: 50 41 52 41 4D 20 45 52 52 4F 52 AB 00 00 02 8A |PARAM ERROR.....|
000005D0: 1A AA AE 11 49 4E 44 45 58 2F 50 41 52 41 4D 20 |....INDEX/PARAM |
000005E0: 45 52 52 4F 52 AB 00 00 02 94 18 AA AE 0F 53 55 |ERROR.........SU|
000005F0: 42 53 54 52 49 4E 47 20 45 52 52 4F 52 AB 00 00 |BSTRING ERROR...|
00000600: 02 9E 36 AA AE 2D 43 4F 4D 4D 41 4E 44 2C 20 41 |..6..-COMMAND, A|
00000610: 52 52 41 59 2C 20 53 55 42 53 54 52 49 4E 47 2C |RRAY, SUBSTRING,|
00000620: 20 4F 52 20 50 52 4F 43 45 44 55 52 45 20 45 52 | OR PROCEDURE ER|
00000630: 52 4F 52 AB 00 00 02 A8 14 AA AE 0B 49 4E 44 45 |ROR.........INDE|
00000640: 58 20 45 52 52 4F 52 AB 00 00 02 B2 1F AA AE 16 |X ERROR.........|
00000650: 49 4C 4C 45 47 41 4C 20 4E 4F 2E 20 4F 46 20 49 |ILLEGAL NO. OF I|
00000660: 4E 44 49 43 45 53 AB 00 00 02 BC 20 AA AE 17 53 |NDICES..... ...S|
00000670: 54 52 49 4E 47 20 41 53 53 49 47 4E 4D 45 4E 54 |TRING ASSIGNMENT|
00000680: 20 45 52 52 4F 52 AB 00 00 02 C6 20 AA AE 17 46 | ERROR..... ...F|
00000690: 55 4E 43 54 49 4F 4E 20 41 52 47 55 4D 45 4E 54 |UNCTION ARGUMENT|
000006A0: 20 45 52 52 4F 52 AB 00 00 02 D0 18 AA AE 0F 4E | ERROR.........N|
000006B0: 4F 54 20 49 4D 50 4C 45 4D 45 4E 54 45 44 AB 00 |OT IMPLEMENTED..|
000006C0: 00 02 DA 1D AA AE 14 5A 4F 4E 45 20 56 41 4C 55 |.......ZONE VALU|
000006D0: 45 20 49 4E 43 4F 52 52 45 43 54 AB 00 00 02 E4 |E INCORRECT.....|
000006E0: 11 AA AE 08 53 54 45 50 20 3D 20 30 AB 00 00 02 |....STEP = 0....|
000006F0: EE 18 AA AE 0F 41 52 52 41 59 20 52 45 44 45 46 |.....ARRAY REDEF|
00000700: 49 4E 45 44 AB 00 00 02 F8 18 AA AE 0F 44 49 4D |INED.........DIM|
00000710: 45 4E 53 49 4F 4E 20 45 52 52 4F 52 AB 00 00 03 |ENSION ERROR....|
00000720: 02 13 AA AE 0A 43 41 53 45 20 45 52 52 4F 52 AB |.....CASE ERROR.|
00000730: 00 00 03 0C 14 AA AE 0B 45 4E 44 20 4F 46 20 44 |........END OF D|
00000740: 41 54 41 AB 00 00 03 16 1A AA AE 11 46 49 4C 45 |ATA.........FILE|
00000750: 20 41 4C 52 45 41 44 59 20 4F 50 45 4E AB 00 00 | ALREADY OPEN...|
00000760: 03 20 19 AA AE 10 46 49 4C 45 20 49 4E 50 55 54 |. ....FILE INPUT|
00000770: 20 45 52 52 4F 52 AB 00 00 03 2A 14 AA AE 0B 45 | ERROR....*....E|
00000780: 4E 44 2D 4F 46 2D 46 49 4C 45 AB 00 00 03 34 16 |ND-OF-FILE....4.|
00000790: AA AE 0D 46 49 4C 45 20 4E 4F 54 20 4F 50 45 4E |...FILE NOT OPEN|
000007A0: AB 00 00 03 3E 19 AA AE 10 43 4F 4E 20 4E 4F 54 |....>....CON NOT|
000007B0: 20 50 4F 53 53 49 42 4C 45 AB 00 00 03 48 1D AA | POSSIBLE....H..|
000007C0: AE 14 45 52 52 4F 52 20 49 4E 20 50 52 49 4E 54 |..ERROR IN PRINT|
000007D0: 20 55 53 49 4E 47 AB 00 00 03 52 19 AA AE 10 44 | USING....R....D|
000007E0: 49 56 49 53 49 4F 4E 20 42 59 20 5A 45 52 4F AB |IVISION BY ZERO.|
000007F0: 00 00 03 5C 1E AA AE 15 50 52 4F 47 52 41 4D 20 |...\....PROGRAM |
00000800: 4E 4F 54 20 50 52 45 50 41 53 53 45 44 AB 00 00 |NOT PREPASSED...|
00000810: 03 66 17 AA AE 0E 46 49 4C 45 20 4E 4F 54 20 46 |.f....FILE NOT F|
00000820: 4F 55 4E 44 AB 00 00 03 70 17 AA AE 0E 4E 4F 54 |OUND....p....NOT|
00000830: 20 49 4E 50 55 54 20 46 49 4C 45 AB 00 00 03 7A | INPUT FILE....z|
00000840: 1B AA AE 12 44 45 56 49 43 45 20 4E 4F 54 20 50 |....DEVICE NOT P|
00000850: 52 45 53 45 4E 54 AB 00 00 03 84 18 AA AE 0F 4E |RESENT.........N|
00000860: 4F 54 20 4F 55 54 50 55 54 20 46 49 4C 45 AB 00 |OT OUTPUT FILE..|
00000870: 00 03 8E 1F AA AE 16 53 54 52 49 4E 47 20 4E 4F |.......STRING NO|
00000880: 54 20 44 49 4D 45 4E 53 49 4F 4E 45 44 AB 00 00 |T DIMENSIONED...|
00000890: 03 98 1C AA AE 13 54 4F 4F 20 4D 41 4E 59 20 46 |......TOO MANY F|
000008A0: 49 4C 45 53 20 4F 50 45 4E AB 00 00 03 A2 14 AA |ILES OPEN.......|
000008B0: AE 0B 45 4E 44 20 4F 46 20 54 41 50 45 AB 00 00 |..END OF TAPE...|
000008C0: 03 AC 17 AA AE 0E 54 4F 4F 20 4D 41 4E 59 20 4E |......TOO MANY N|
000008D0: 41 4D 45 53 AB 00 00 03 B6 24 AA AE 1B 46 55 4E |AMES.....$...FUN|
000008E0: 43 54 49 4F 4E 20 56 41 4C 55 45 20 4E 4F 54 20 |CTION VALUE NOT |
000008F0: 52 45 54 55 52 4E 45 44 AB 00 00 03 C0 16 AA AE |RETURNED........|
00000900: 0D 55 53 45 52 20 45 52 52 4F 52 20 23 31 AB 00 |.USER ERROR #1..|
00000910: 00 03 CA 16 AA AE 0D 55 53 45 52 20 45 52 52 4F |.......USER ERRO|
00000920: 52 20 23 32 AB 00 00 03 D4 04 00 03 DE 10 00 20 |R #2........... |
00000930: 45 4E 44 2D 4F 46 2D 44 41 54 41 03 E8 04 00 00 |END-OF-DATA.....|
00000940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00000980: 00 00 00 00 00 09 51 55 49 43 4B 53 4F 52 54 01 |......QUICKSORT.|
00000990: 41 05 4C 45 46 54 27 06 52 49 47 48 54 27 06 52 |A.LEFT'.RIGHT'.R|
000009A0: 45 43 4C 45 4E 05 50 49 56 4F 54 06 42 55 46 46 |ECLEN.PIVOT.BUFF|
000009B0: 45 52 09 50 41 52 54 49 54 49 4F 4E 01 49 01 4A |ER.PARTITION.I.J|
000009C0: 04 53 57 41 50 01 42 07 4D 45 53 53 41 47 45 09 |.SWAP.B.MESSAGE.|
000009D0: 4D 45 53 53 41 47 45 4E 4F 00 00 |MESSAGENO.. |
9..T...3. THREE ROUTINES WORK TOGETHER
TO FORM QUICKSORT..#. QUICKSORT :: PARTI
TION :: SWAP.....(.P....Z..R.R.R.|.2....
...........E.<(.............. SORT A$(L
EFT':RIGHT').F.}..P...Z.P....R.R.R.R.{.D
0........'G...%.<. GET MIDDLE ELEMENT AS
PIVOT.N... PERFORM SWAPPINGS.X.........
1......=............+......@...&H.....J
..................=B.....@B...Z....0....
*H....*J.............. SORT A$(LEFT':J
)..+H....*J.............. SORT A$(I:RIG
HT')...}......H.P....W.W.{.R.....<....<B
....<B...}......... DEMO OF THIS SORT FO
LLOWS.................2...#.E........:..
..\7...."......=.,..........6.....@...J.
. SORT ERROR MESSAGES:.T...^._..SORTING
STARTED:E`A.H..............#..R".
^ ^ ^ ^.|=. !
! ! +->LENGTH OF STRING IN
ARRAY..F. ! ! +-------
>NUMBER OF STRINGS IN ARRAY TO SORT..H.
! +------------->1 HERE ME
ANS START WITH FIRST RECORD..C.
+------------------->NAME OF THE ARRAY
Y TO BE SORTED........ PRINT THE SORTED
MESSAGES:.....B"............_..DF..:EG..
...E`A..L...V........3. START-OF-DATA ::
: TO BE READ INTO STRING ARRAY..........
FORMAT ERROR.........SYNTAX ERROR.......
..TYPE CONFLICT..... ...FUNCTION ARGUMEN
T ERROR....&...%STATEMENT TOO LONG OR TO
O COMPLICATED....0....SYSTEM ERROR....:.
...NAME TOO LONG....D....BRACKET ERROR..
..N....OVERFLOW....X&...ERROR IN STRUCTU
RED STATEMENT....B ...ERROR IN GOTO STAT
EMENT....L....STACK OVERFLOW....V....UNK
NOWN VARIABLE.........PROCEDURE PARAM ER
ROR.........INDEX/PARAM ERROR.........SU
BSTRING ERROR.....6..-COMMAND, ARRAY, SU
BSTRING, OR PROCEDURE ERROR.........INDE
X ERROR.........ILLEGAL NO. OF INDICES..
... ...STRING ASSIGNMENT ERROR....F ...F
UNCTION ARGUMENT ERROR....P....NOT IMPLE
MENTED....Z....ZONE VALUE INCORRECT.....
....STEP = 0.........ARRAY REDEFINED....
.....DIMENSION ERROR.........CASE ERROR.
........END OF DATA.........FILE ALREADY
OPEN.... ....FILE INPUT ERROR....*....E
ND-OF-FILE....4....FILE NOT OPEN....>...
.CON NOT POSSIBLE....H....ERROR IN PRINT
USING....R....DIVISION BY ZERO....\....
PROGRAM NOT PREPASSED....F....FILE NOT F
OUND....P....NOT INPUT FILE....Z....DEVI
CE NOT PRESENT.........NOT OUTPUT FILE..
.......STRING NOT DIMENSIONED.........TO
O MANY FILES OPEN.........END OF TAPE...
......TOO MANY NAMES.....$...FUNCTION VA
LUE NOT RETURNED.........USER ERROR #1..
..J....USER ERROR #2....T...... END-OF-D
ATA.....................................
......................................QU
ICKSORT.A.LEFT'.RIGHT'.RECLEN.PIVOT.BUFF
ER.PARTITION.I.J.SWAP.B.MESSAGE.MESSAGEN
O..
×
C64 Image
> CLICK IMAGE PREVIEW FOR FULL MODAL