10 REM *ABC SORT V2.8 IDEA BY R.G.GORE* 20 REM* RT. 1 BOX 315 / MEXIA TX * 30 REM* WRITTEN BY R.W. KOBER 8/1/85 * 40 PRINT"[147]":POKE53280,0:POKE53281,0 50 CLR:OPEN15,8,15 60 DIMAA$(1000):GOSUB1370:IFSFTHEN1020:REM SF=SET FLAG FOR MENU 70 : 80 :REM ********************* 90 :REM * CREATE A NEW LIST * 100 REM ********************* 110 : 120 K=K+1:IFK$="Y"ORZATHENK=I-AD 130 IFK>NTHEN190 140 R$ = "" 150 PRINTK;:INPUT" [191][157][157][157]";R$:IFR$="[191]"ORR$=""THENPRINT"[145][145]":GOTO150 160 IFR$="\"THEN1020 170 IFR$="END"THENFORP=KTON:AA$(P)="":NEXT:K=N+1:GOTO190 180 AA$(K)=R$:K=K+1:GOTO130 190 K=K-1:IFK>0THEN220 200 PRINT"[158]  ** NO INPUT TO SORT ** [146][159]" 210 FORT=1TO1000:NEXT:GOTO1020 220 PRINT" [";K;"] [129]ITEMS HAVE NOW BEEN SORTED.":I=K+1 230 : 240 REM ************************** 250 REM * SYS TO ML SORT ROUTINE * 260 REM ************************** 270 SYS49152,N,AA$(1):REM N=NUMBER TO SORT - AA$(1)=NUMBER TO START SORT WITH 280 : 290 PRINT"[150] PRINT TO S[146][159]CREEN OR P[146][159]RINTER?" 300 GETS$:IFS$=""THEN300 310 IFS$="\"THEN1020 320 IFS$="P"THEN580 330 : 340 REM ******************* 350 REM * PRINT TO SCREEN * 360 REM ******************* 370 : 380 PRINT"[147]"TAB(20-LEN(L$)/2)L$:REM CENTERS LIST TITLE & 390 UNDERLINES IT 390 PRINTTAB(19-LEN(L$)/2);:FORLI=1TOLEN(L$)+2:PRINT"[184]";:NEXT:PRINT 400 FORJ=1TOK 410 PRINTTAB(4)J;TAB(7);AA$(J):CL=PEEK(214):QQ=0:REM 214 CONTAINS CURRENT LINE# 420 : 430 REM ************************** 440 REM * STOP LISTING AT BOTTOM * 450 REM ************************** 460 : 470 IFCL>20THENPRINT" [158] ANY KEY TO CONTINUE - \ = MENU [159]":QQ=1 480 IFQQTHENWAIT198,1:GETKK$:IFKK$="\"THEN1020 490 IFQQTHENPRINT"[147]"TAB(20-LEN(L$)/2)L$ 500 IFQQTHENPRINTTAB(19-LEN(L$)/2);:FORLI=1TOLEN(L$)+2:PRINT"[184]";:NEXT:PRINT 510 POKE198,0:NEXT:PRINTTAB(11)"[158] ANY KEY FOR MENU [159]":WAIT198,1 520 POKE198,0:GOTO1020:REM 198 CONTAINS THE # OF CHARACTERS IN KEYBOARD BUFFER 530 : 540 REM ******************* 550 REM * PRINTER ROUTINE * 560 REM ******************* 570 : 580 GOSUB900:IFGMTHEN1000:REM GM=FLAG FOR GET MENU 590 REM ***************************** 600 REM * LINES 590 TO 640 ARE FOR * 610 REM * PRINTERS OTHER THAN THE * 620 REM * COMMODORE 1525 OR MPS 801 * 630 REM ***************************** 640 REM 650 PRINT#4,TAB(40-LEN(L$)/2);L$ 660 PRINT#4:PRINT#4 670 PRINT#4:LI=4 680 FORJ=1TOK 690 PRINT#4,TAB(10);J;AA$(J) 700 PP=0:IFPEEK(653)=1THENPRINTTAB(5)" [158] PRINTING PAUSED [146] [145]":PP=1 710 IFPEEK(197)=48THENJ=K:PRINTTAB(5)"  PRINTING ABORTED [146] ":GOTO740 720 IFPPTHENGOSUB950:GOTO700 730 IFLI=>60THENFORIL=1TO8:PRINT#4:NEXT:LI=0 740 LI=LI+1:NEXT 750 PRINT"  ADVANCE PAGE (Y/N) [146]" 760 GETA$:IFA$="Y"THEN790 770 IFA$="N"THEN1000 780 GOTO760 790 FORAP=1TO65-LI:PRINT#4:NEXT:GOTO1000 800 REM ************************** 810 REM * LINES 800 TO 840 DITTO * 820 REM * LINES 590 TO 640 ABOVE * 830 REM ************************** 840 REM 850 : 860 REM ********************* 870 REM * CHECK FOR PRINTER * 880 REM ********************* 890 : 900 GM=0:PRINT"[147]":CLOSE4:OPEN4,4 910 PRINT#4:IFST AND128THEN960 920 PRINT"[147][158]"TAB(242)"SET PRINTER HEAD TO TOP OF PAGE, AND" 930 PRINTTAB(44)" PRESS COMMODORE KEY WHEM READY ":WAIT653,2 940 PRINT"[147][154] DATA TO PRINTER - STAND-BY" 950 PRINT"  SHIFT TO PAUSE -- \ TO ABORT [145]":RETURN 960 PRINTTAB(248)"THE PRINTER IS NOT ON!" 970 PRINTTAB(240)TAB(249)"[151]\ TO ABORT PRINTING" 980 IFPEEK(197)=48THENGM=1:RETURN 990 GOTO910 1000 CLOSE4 1010 : 1020 PRINT"[147] ********" 1030 PRINT " * MENU *" 1040 PRINT " ********" 1050 : 1060 PRINTTAB(48)"[158]W[146][159]ORK WITH ANOTHER LIST":KK=K:K=0 1070 PRINTTAB(48)"[158]P[146][159]RINT SAME LIST AGAIN":AZ=0 1080 PRINTTAB(48)"[158]L[146][159]OAD AN EXISTING LIST":POKE2,0 1090 PRINTTAB(48)"[158]V[146][159]IEW FILE DIRECTORY" 1100 PRINTTAB(48)"[158]S[146][159]AVE LIST TO DISK" 1110 PRINTTAB(48)"[158]R[146][159]E-SORT LIST " 1120 PRINTTAB(48)"[158]A[146][159]DD TO LIST " 1130 PRINTTAB(48)"[158]E[146][159]DIT LIST" 1140 PRINTTAB(48)"[158]Q[146][159]UIT" 1150 PRINTTAB(43)"[150] ENTER '\' AT ANY PROMPT FOR MENU [159]" 1160 GETA$:IFA$=""THEN1160 1170 IFA$="3"THENK=1 1180 IFKTHENIFA$="4"THENSYS595:GOTO1310 1190 IFA$<>"3"ANDA$<>"4"THENK=0 1200 IFA$="W"THEN2780 1210 IFA$="P"THENK=I-1:GOTO290 1220 IFA$="L"THENPOKE2,1:GOTO2780 1230 IFA$="S"THEN1670 1240 IFA$="E"THEN2380 1250 IFA$="R"THENK=I:GOTO190 1260 IFA$="A"THENAZ=1:GOTO1990 1270 IFA$="V"THENSYS49600:GOTO1020 1280 IFA$<>"Q"THEN1160 1290 PRINTTAB(52)"[158] ARE YOU SURE? [159]":WAIT198,1:GETO$:IFO$="Y"THENCLOSE15 1300 IFO$="Y"THEN63000 1310 GOTO1020 1320 : 1330 REM *************** 1340 REM * WORK SCREEN * 1350 REM *************** 1360 : 1370 GOSUB2090:IFMETHEN1610 1380 PRINT"[147]"TAB(254)"[158] ABC SORT " 1390 IFPEEK(2)THENK$="Y":GOTO1510 1400 PRINTTAB(45)"[150]USE AN EXISTING LIST (Y/N) ?":SF=0:IFCSTHENRETURN 1410 PRINTTAB(240)TAB(242)"[151]'\' FOR THE MENU - 'L' FOR DIRECTORY[150]" 1420 PRINT""TAB(120):CS=0 1430 WAIT198,1:CS=1:PRINT"[147]":GOSUB1380:GETK$:IFK$="Y"THEN1510 1440 IFK$="L"THENSYS49600:CS=0:GOTO1380 1450 IFK$=CHR$(13)THENPRINT"[145][145][145]":GOTO1400 1460 IFK$="\"THEN1610 1470 IFK$<>"N"THENPOKE198,0:GOTO1430 1480 PRINT" - ALPHABETIZES BY FIRST ENTRY -":FLAG=1 1490 INPUT" MAXIMUM NUMBER TO ENTER [159] [191][157][157][157]";N$:N=VAL(N$):IFN$="\"THEN1610 1500 IFN=<0ORN>1000THENPRINT"[145][145][145][145]":GOTO1490 1510 Z$="THE NEW":IFK$="Y"THENZ$="EXISTING":FLAG=0 1520 TA$="":IFK$="Y"THENTA$="" 1530 PRINTTA$"[150] ENTER NAME OF "Z$" LIST [159]":INPUT" [191][157][157][157]";L$ 1540 IFLEN(L$)>15THENPRINTTAB(43)"[158]NAME LENGTH LIMIT = 15 CHARACTERS[145][145]":GOTO1530 1550 IFL$="[191]"ORL$=""THENPRINT"[145][145][145][145]":GOTO1530 1560 IFL$="\"THEN1610 1570 IFK$="Y"THENPRINTTAB(40)"PLEASE WAIT..... THE LIST IS LOADING..":GOTO1890 1580 PRINT" ENTER 'END' TO COMPLETE THE LIST IF LESS THAN"N"ARE ENTERED. 1590 [153]"DEF":[142] 1600 [153]"DEF" 1610 SF[178]1:[142] 1620 : 1630 [143] **************** 1640 [143] * SAVE ROUTINE * 1650 [143] **************** 1660 : 1670 [153][163]42)"CLRUSE THE SAME NAME "[199](34)L$[199](34)"CLR (Y/N)?":O[178]0 1680 [161]O$:[139]O$[178]""[167]1680 1690 [139]O$[178]"\"[167]1020 1700 [139]O$[178]"Y"[167][153]"SYS WARNING!! WAITDEF THIS EXISTING FILE WILL BE ":O[178]34 1710 [139]O[167][153]" REPLACED! OKAY TO CONTINUE?? (Y/N)CLR" 1720 [139]O[167][146]198,1:[161]KK$:[139]KK$[179][177]"Y"[167]1020 1730 [139]O[167]1780 1740 [139]O$[179][177]"N"[167]1680 1750 [133]"FOR ENTER NEW NAME SINCMDCMDCMD";L$:[139]L$[178]"SIN"[176]L$[178]""[167][153]"ONONONON":[137]1750 1760 [139]L$[178]"\"[167]1020 1770 [139][195](L$)[177]15[167][153][163]42)"SYSNAME TOO LONG...15 CHARACTER LIMIT":[137]1750 1780 [153]" OKAY...SAVING "L$ 1790 [152]15,"S0:"[170]"["[170]L$ 1800 [160]1:[159]1,8,1,"["[170]L$[170]",U,W" 1810 [141]2660:[139]ER[167]1020 1820 [129]I[178]1[164]N:[152]1,AA$(I):[130] 1830 [160]1:[137]1020 1840 : 1850 [143] **************** 1860 [143] * LOAD ROUTINE * 1870 [143] **************** 1880 : 1890 [160]2:[159]2,8,2,"["[170]L$[170]",U,R":I[178]1 1900 [141]2660:[139]ER[167]1020 1910 [132]2,AA$(I):I[178]I[170]1:[139]ST[167]1930 1920 [137]1910 1930 [160]2 1940 : 1950 [143] ************************** 1960 [143] * ADD MORE NAMES TO LIST * 1970 [143] ************************** 1980 : 1990 [139]I[178]0[167]I[178]K[170]1 2000 [153]"SYS NUMBER OF NAMES IN FILE ="I[171]1:AD$[178]"":[139]AZ[167]ZA[178]1 2010 [133]"CONTADDITIONAL NUMBER TO ADD TO LIST 0CMDCMDCMD";AD$:[139]AD$[178]"\"[167]1020 2020 [153]:AD[178][197](AD$):N[178]I[170]AD[171]1:I[178]N[170]1:[139]AZ[167]120 2030 [142] 2040 : 2050 [143] **************************** 2060 [143] * CHECK MEMORY FOR ML DATA * 2070 [143] **************************** 2080 : 2090 [139][194](49161)[178]165[175][194](49162)[178]20[167]ME[178]0:[142] 2100 : 2110 [143] **************** 2120 [143] * TITLE SCREEN * 2130 [143] **************** 2140 : 2150 [153]"LOAD"[163]250)"PRINT " 2160 [153][163]10)"PRINT DEF PRINT " 2170 [153][163]10)"PRINT DEF SYS A B C S O R T DEF PRINT " 2180 [153][163]10)"PRINT DEF V2.8 PRINT " 2190 [153][163]10)" " 2200 [153][163]99)"FORBY" 2210 [153][163]55)"CLRR. G. GORE" 2220 [153][163]59)"AND" 2230 [153][163]55)"R. W. KOBER" 2240 : 2250 [143] *************************** 2260 [143] * ML DATA LOADING ROUTINE * 2270 [143] *************************** 2280 : 2290 [129]D[178]49152[164]49492:[135]Y:[151]D,Y:[130] 2300 [151]595,76:[151]596,177:[151]597,194 2310 [129]D[178]49600[164]49901:[135]Y:[151]D,Y:[130] 2320 ME[178]1:[142] 2330 : 2340 [143] **************** 2350 [143] * EDIT ROUTINE * 2360 [143] **************** 2370 : 2380 [133]"CLR ENTER NUMBER TO EDIT (\=MENU) SINCMDCMDCMD";EN$:EN[178][197](EN$) 2390 [139]EN$[178]"SIN"[176]EN$[178]""[167][153]"ONONONON":[137]2380 2400 [139]FLAG[167]I[178]KK[170]1 2410 [139]EN$[178]"\"[167]2600 2420 [139]EN[177]I[171]1[167][153][163]52)"SYSNUMBER TOO LARGEDEFON":[137]2380 2430 [139]EN[179]1[167]2380 2440 [153]"PRINT NUMBER"EN"IS "AA$(EN) 2450 [153]"FOR EDIT THIS NAME (Y/N)?" 2460 [161]O$:[139]O$[178]"N"[167]2380 2470 [139]O$[179][177]"Y"[167]2460 2480 [153]"CONT ENTER THE CORRECT NAME (*=DELETE NAME)" 2490 [133]"DEF SINCMDCMDCMD";NN$:[139]NN$[178]"\"[167]2600 2500 [139]NN$[178]"SIN"[176]NN$[178]""[167][153]"ONONONONON":[137]2480 2510 [139]NN$[178]"*"[167][153]"  DELETE NAME COMPLETLY (Y/N)? DEF":[137]2530 2520 [153]"VERIFY CHANGE "AA$(EN)" TO "NN$" (Y/N)?ON" 2530 [161]O$:[139]O$[178]"N"[167]2480 2540 [139]O$[179][177]"Y"[167]2530 2550 [139]NN$[179][177]"*"[167]AA$(EN)[178]NN$ 2560 [139]NN$[178]"*"[167]AA$(EN)[178]"" 2570 [153]" OPENCHANGE ANOTHER (Y/N)?ON" 2580 [161]O$:[139]O$[178]"Y"[167]2380 2590 [139]O$[179][177]"N"[167]2580 2600 [137]1020 2610 : 2620 [143] ************************** 2630 [143] * ERROR CHECKING ROUTINE * 2640 [143] ************************** 2650 : 2660 [132]15,ER,ER$,TR,BL 2670 [139]ER[178]0[167][142] 2680 [153]"":[129]I[178]1[164]19:[153]"*TAN";:[130] 2690 [153][163]128)"DISK ERROR ENCOUNTERED!!PRINT" 2700 [153][163]100[171]([195](ER$)[173]2))ER$ 2710 [153][163]83)"SYS PRESS COMMODORE KEY TO CONTINUE OPEN" 2720 [146]653,2:[142] 2730 : 2740 [143] *********************** 2750 [143] * NEW LISTING WARNING * 2760 [143] *********************** 2770 : 2780 [153]"LOAD"[163]253)"SYS WARNING!! OPEN" 2790 [153][163]82)"FORTHE LIST NOW IN MEMORY WILL BE LOST " 2800 [153][163]45)"IF ANOTHER LIST IS SELECTED." 2810 [153][163]91)"PRINTCONTINUE? (Y/N)" 2820 [151]198,0:[146]198,1:[161]KK$:[139]KK$[178]"Y"[167]50 2830 [137]1020 2840 : 2850 [143] *********************** 2860 [143] * LIGHTNING SORT DATA * 2870 [143] *********************** 2880 : 2881 [131]32,253,174,32,158,173,32,247,183,165,20,133,253,165,21,133,254 2882 [131]32,253,174,32,158,173,162,1,165,71,157,85,193,157,125,193,165 2883 [131]72,157,105,193,157,145,193,165,253,208,2,198,254,198,253,160,3 2884 [131]24,189,125,193,101,253,157,125,193,189,145,193,101,254,157,145,193 2885 [131]136,208,236,189,85,193,133,80,189,105,193,133,81,189,125,193,133 2886 [131]82,189,145,193,133,83,32,21,193,144,4,202,208,228,96,165,82 2887 [131]133,78,165,83,133,79,160,2,177,78,153,250,0,136,16,248,48 2888 [131]11,24,165,80,105,3,133,80,144,2,230,81,160,2,177,80,153 2889 [131]247,0,136,16,248,32,32,193,144,230,56,165,82,233,3,133,82 2890 [131]176,2,198,83,32,21,193,176,31,160,2,177,82,153,247,0,136 2891 [131]16,248,32,32,193,176,225,160,2,177,80,145,82,185,247,0,145 2892 [131]80,136,16,244,48,183,160,2,177,80,145,78,185,250,0,145,80 2893 [131]136,16,244,24,189,85,193,125,125,193,133,82,189,105,193,125,145 2894 [131]193,133,83,102,83,102,82,32,21,193,176,22,189,85,193,157,86 2895 [131]193,189,105,193,157,106,193,32,53,193,232,32,69,193,76,71,192 2896 [131]189,125,193,157,126,193,189,145,193,157,146,193,32,69,193,232,32 2897 [131]53,193,76,71,192,165,81,197,83,208,4,165,80,197,82,96,160 2898 [131]255,200,196,247,176,11,196,250,176,6,177,248,209,251,240,241,96 2899 [131]196,250,96,24,165,80,105,3,157,85,193,165,81,105,0,157,105 2900 [131]193,96,56,165,80,233,3,157,125,193,165,81,233,0,157,145,193,96 2901 : 2902 [143] *********************** 2903 [143] * LIST DIRECTORY DATA * 2904 [143] *********************** 2905 : 2906 [131]173,33,208,72,173,32,208,72,173,134,2,72,32,204,255,32,68 2907 [131]229,169,9,141,33,208,169,11,141,32,208,169,7,141,134,2,24 2908 [131]162,1,160,11,32,240,255,160,0,185,120,194,240,6,32,210,255 2909 [131]200,208,245,169,1,162,8,160,0,32,186,255,169,1,162,118,160 2910 [131]194,32,189,255,32,192,255,162,1,32,198,255,160,31,32,207,255 2911 [131]136,208,250,160,13,169,32,32,210,255,136,208,250,32,207,255,72 2912 [131]165,144,201,64,240,24,104,201,91,208,241,32,207,255,201,34,240 2913 [131]5,32,210,255,208,244,169,13,32,210,255,208,212,104,169,1,32 2914 [131]195,255,32,204,255,160,0,185,140,194,240,6,32,210,255,200,208 2915 [131]245,169,0,133,198,165,198,240,252,104,141,134,2,104,141,32,208 2916 [131]104,141,33,208,169,0,133,198,32,68,229,96,36,0,18,32,70 2917 [131]73,76,69,32,68,73,82,69,67,84,79,82,89,32,13,13,0 2918 [131]13,32,32,32,32,32,32,32,32,32,1,1,32,18,32,39,92 2919 [131]39,32,75,69,89,32,70,79,82,32,77,69,78,85,32,13,0,13,0,255 2920 [131]32,68,229,24,162,11,160,9,32,240,255,160,0,185,215,194,240 2921 [131]6,32,210,255,200,208,245,160,252,162,0,32,179,238,232,208,250 2922 [131]200,208,245,96,82,46,87,46,32,75,79,66,69,82,32,87,82 2923 [131]79,84,69,32,84,72,73,83,13,0,52 63000 [143] RE-CONNECT TO LS 63010 [151]51200,75 : [143] ROUTINES NADA 63020 [147]"PAYLOAD CONNECT",8