FFFF000000060002000177AA000000000065000000002000110000001-7EFF6EBE0Â4800480223020Á-1‚0Â2‚23021FFFFFF831C0‚10‚‚2‚667D00001000001D0000000070C2140840‚‚2‚3421FFC1C04CC0003322342210C2119D340840‚‚34228121FFD6104CE00080228121DC019D3283D40840‚‚8122CF21FFE4804CE000CE22CF2E80283D375840840‚‚CF2212521FFF1104CC0001242212523F0375846B740840‚‚1252217B21FFF3304CE00017A2217B2F9046B752D940840‚‚17B221C221FFC0404CC0001C1221C22B4052D9667D40840‚‚1C22223021FF13A4048E00022F22230220000200000C2700000000C21,1 GOTO 10 !///////////////! !Delete Line 1 ! !To Skip Title ! !Screen. ! 2 GOTO 90 !///////////////! ! Cat-Man v2.14 ! !///////////// //! !MAR 13, 2009 ! !///////////////! 3 DISPLAY AT(23,1):"----------------------------hit any key OR enter to run" :: CALL KEY(3,AF,AG):: IF AG=0 THEN 3 ! wait routine for intro 4 IF AF=13 THEN 100 ELSE RETURN 10 CALL CLEAR :: CALL SCREEN(12):: GOSUB 1360 20 DISPLAY AT(4,9):"Beta Version": :"overview:":"----------------------------": :"Designed to Aid in the": :"creation of TI-BASE": :"compatible Disk Catalogs." 30 DISPLAY AT(15,1):"It will also perform other": :"Disk & File Related tasks": :"as much as could be done": :"within a single XB program." 40 GOSUB 3 :: DISPLAY AT(6,1):"Current Options:" :: DISPLAY AT(9,1):"Create a Di s/Var80 Catalog": :"of your disks.": :"Convert or combine Files" 50 DISPLAY AT(15,1):"to many formats, including": :"custom conversion to TI-BASE ": :"(Requires Ti-Base v1.0 to": :"use the new file it creates)" 60 GOSUB 3 :: DISPLAY AT(6,1):"Catalog Options:" :: DISPLAY AT(9,1):"Cat-man wil l also Catalog": :"to the screen & will read a": :"file or run an XB program." 70 DISPLAY AT(15,1):"File deletion is also": :"supported. A running print-": :"o ut may be disabled or": :"obtained via PIO or RS232." 80 GOSUB 3 :: DISPLAY AT(6,1):"Bug Report:" :: DISPLAY AT(8,1):"I created this p rogram in 1991. I wanted to try to make a useful program that filled the T I's 24k RAM." 85 DISPLAY AT(12,1):"At its core, it contains thecode from several utility" 90 DISPLAY AT(14,1):"programs which I added to and streamlined the inputs. I u sed the program with TI- Base v.1 to create a library" 92 DISPLAY AT(18,1):"of my entire collection of TI disks. It may halt with som e bad inputs, but won't crash too easily. Bad disks give the most problems." 94 GOSUB 3 :: DISPLAY AT(6,1):"Comments:" :: DISPLAY AT(8,1): :"I have spent man y hours ": :"developing this program.": :"I hope you find it useful." 96 DISPLAY AT(14,1): :"Feel free to write with yourcomments to:": :"E Gerken":"B ox 747 Hill City SD 57745": :"wriverprep@aol.com": :" " 99 GOSUB 3 100 ! Cat/Man2 Disk Catalog Manager Version 2.1.3 Copyright 01/15/1990-3/2 009 Ed Gerken Box 747 Hill City SD 57745 120 GOTO 160 :: ON ERROR :: CALL ERR(A,B,C,D):: CALL CLEAR :: CALL CLSALL :: CAL L COLOR :: CALL HCHAR :: CALL INIT :: CALL LOAD :: CALL PEEK :: CALL SCREEN :: C ALL CHARPAT :: CALL CHAR 125 DD,FF,BB,FG$,FF$,SEG$ 130 H$(60),B$,A$,H,C$,D$,J,E$,K,M,G$,J$,K$,P,PM :: DIM M$(5) 135 ZP :: AZ$() 140 ZZ$,N$,O$,P$,Q$,R$,V,S$,X,AA,AD :: CALL KEY :: GOTO 110 :: GOSUB 110 :: DISP LAY AT(1,1):: ACCEPT AT(1,1):: PRINT :: INPUT 145 ASC(V$) 150 Q,I$,AJ,T$,V$,AG,X$,AD,W$,AB,AP,AR,AQ,AF 160 PO$="OFF" 170 CALL CLEAR :: T$="DSK1.LIBPRG" :: O$="DSK1.LIBDSK" :: I$="disk?" :: A$=" " :: C$=" " 172 K$=" " :: K=150 :: W$="" :: ZZ$="DSK1.FILES/D" 180 Q,AR=1 :: P$="1-1" :: R$="S" :: CALL SCREEN(5):: FOR AR=0 TO 14 :: CALL COLO 000200000DB800000C21DB2,R(AR,16,5):: NEXT AR :: DIM Y$(5),Z$(20),AM(20),AN(20),AO(20):: Y$(1)="DF" 190 Y$(2)="DV" :: Y$(3)="IF" :: Y$(4)="IV" :: Y$(5)="PRG" 200 IMAGE ## 210 IMAGE ### 220 PM=1 :: GOSUB 1360 :: DISPLAY AT(4,5):"Master Menu List": :: DISPLAY AT(6,2) :"1) Write Catalog":" 2) Convert Files" 230 DISPLAY AT(8,2):"3) Combine Files":" 4) XBLoad v3.6xx":" 5) Delete Files":" 6) Sweep Disks":" 7) Exit":" 8> Printer is ";PO$ 240 GOSUB 1220 :: IF AF<1 OR AF>8 THEN DISPLAY AT(21,10):"CHOOSE AGAIN" :: GOTO 240 250 ON AF GOTO 280,1522,2130,260,2040,1540,270,400 260 IF AF=4 THEN AQ,Q=2 :: GOTO 360 270 Q=3 :: GOSUB 1310 :: GOTO 220 280 Q=2 290 GOSUB 1360 :: DISPLAY AT(4,2):"Write Disk Cat To DV/80 file" :: DISPLAY AT(8 ,0):"Select: Drive (1)":" Drive (2)":" Drive (3)": : :"Other Op tions:" 300 DISPLAY AT(15,4):"4) EXB Loader":" 5) Change Output File":" 6) Return to Main Menu" 305 GOSUB 1220 :: IF AF<1 OR AF>6 THEN DISPLAY AT(20,0):"Oopsy! Try Again!" :: G OTO 290 306 IF AF<>5 THEN 315 307 DISPLAY AT(20,0):"New Filename? (5 char. max)" :: IF W$="" THEN AR=8 ELSE AR =LEN(W$) 308 DISPLAY AT(21,1):SEG$(O$,1,AR) 309 ACCEPT AT(21,1)SIZE(-15):W$ :: IF LEN(W$)>10 THEN DISPLAY AT(20,0):"Filename too long. 5 max. " :: GOSUB 1300 :: GOTO 307 310 O$=W$&"DSK" :: DISPLAY AT(20,1):"Appending File Extension" :: GOSUB 1300 :: DISPLAY AT(21,1):O$ :: GOSUB 1300 :: GOTO 290 315 IF AF=4 THEN AQ,Q=2 :: GOTO 360 320 IF AF<1 OR AF>6 THEN DISPLAY AT(21,9):"Out of Range" :: GOTO 310 330 IF AF>=1 AND AF<=3 THEN AQ=1 :: AP=AF :: GOTO 830 340 IF AF=6 AND W$="" THEN Q=1 ELSE Q=2 350 GOTO 220 360 GOTO 3000 400 ! PRINTER SUPPORT 410 DISPLAY AT(21,0):"Printer? off/pio/rs232":PO$ :: ACCEPT AT(22,0)SIZE(-15):PO $ 420 DISPLAY AT(21,0):"Printer is set as ";PO$:" Thanks!" 800 GOTO 220 ! return to menu 820 CALL CLEAR :: DISPLAY AT(10,0):"RUNNING DSK1.LOAD" :: RUN "DSK1.LOAD" 830 CALL CLEAR :: I$="DSK"&STR$(AP)&"." :: ON ERROR 1180 :: GOSUB 1360 :: DISPLA Y AT(4,0):"Disk Catalog File Writer" :: DISPLAY AT(7,0):" Disk Info File:": :" ": : : :" Program Info File:" 840 IF W$<>"" THEN 875 850 IF PM=1 THEN O$="DSK1.LIB" :: T$=O$ 855 DISPLAY AT(17,0): :"Info File Dsk# & File Name? (5 CHAR. MAX FILENAME) ": :S EG$(O$,1,10) 860 ACCEPT AT(21,1)SIZE(-15):W$ :: IF LEN(W$)>10 THEN DISPLAY AT(20,0):"Filename too long. 5 max. " :: GOSUB 1300 :: GOTO 855 870 DISPLAY AT(17,0): : : : : : : :: O$=W$&"DSK" 875 ON ERROR 1180 :: DISPLAY AT(9,0): :: DISPLAY AT(9,4):O$ :: FF=0 :: OPEN #3:O $,DISPLAY ,VARIABLE 80,APPEND :: FF=3 :: T$=W$&"PRG" :: DISPLAY AT(15,4):T$ 880 FF=30 :: OPEN #2:T$,DISPLAY ,VARIABLE 80,APPEND :: FF=230 :: OPEN #1:"DSK"&S TR$(AP)&".",INPUT ,RELATIVE,INTERNAL :: FF=123 :: INPUT #1:S$,AA,AA,AB 890 DISPLAY AT(23,0):"#.Dskname";TAB(14);"Max";TAB(18);"Used";TAB(23);"Avail." : : DISPLAY AT(24,0):STR$(AP);".";S$;TAB(13);AA;TAB(18);AA-AB;TAB(23);AB :: Q=1 895 IF PO$<>"OFF" THEN OPEN #4:PO$ 900 DISPLAY AT(18,0): : :"1)Go 2)New Filename 3)Back" :: Q=1 :: GOSUB 1220 :: IF AF<1 OR AF>3 THEN DISPLAY AT(21,9):"OUT OF RANGE" :: GOTO 900 910 ON AF GOTO 950,920,940 920 DISPLAY AT(20,0):"CLOSING FILES..." :: GOSUB 1352 :: DISPLAY AT(17,0): :"Inp ut New Info File Drive # & File Name? (5 Char. max.) ": :SEG$(O$,1,LEN(W$)) 930 DISPLAY AT(7,0):" Disk Info:": : : : : :" Program Info:": : : : :: GOTO 86 0 940 DISPLAY AT(20,0):"CLOSING FILES..." :: GOSUB 1352 :: DISPLAY AT(9,0): : :T$; " Closed":"" :: Q=5 :: GOTO 290 950 DISPLAY AT(17,0): : : : : : :: DISPLAY AT(19,0):"Disk Catalog #? ";X :: ACC 000200000E70000019D3E6A,EPT AT(19,19)VALIDATE(DIGIT)SIZE(-3):X :: DISPLAY AT(19,0):"Disk Bin #? ";P$ :: ACCEPT AT(19,13)VALIDATE(NUMERIC)SIZE(-5):P$ 960 DISPLAY AT(18,0):"S)ngl D)bl / flippy (A)or(B)S-D-A-B ";R$ :: ACCEPT AT(19,9 )VALIDATE(UALPHA)SIZE(-1):R$ :: DISPLAY AT(18,0): :"NOTE? (30 CHAR. MAX) " :K$ :: ACCEPT AT(20,0):K$ 970 DISPLAY AT(18,0): : : : :: DISPLAY AT(7,0):" Now Writing to:" :: DISPLAY AT (13,0): : : : : :: DISPLAY AT(20,0):"Press Space Bar to Halt" :: CALL KEY(3,AR,A G):: IF AR=32 THEN GOSUB 1370 980 PRINT #3:TAB(1);STR$(X);TAB(5);P$;TAB(10);S$;TAB(20);AB;TAB(25);AA-AB;TAB(30 );R$;K$ :: CLOSE #3 :: DISPLAY AT(7,0): :O$;" Closed":"" :: GOSUB 1300 985 IF PO$<>"OFF" THEN PRINT #4:TAB(1);STR$(X);TAB(5);P$;TAB(10);S$;TAB(20);AB;T AB(25);AA-AB;TAB(30);R$;K$ 990 FF=120 :: DISPLAY AT(7,0):" Now Writing to:": :" ";T$:"" 1000 ON ERROR 1420 :: INPUT #1:J$,M,H,J :: IF LEN(J$)=0 THEN 1050 1010 DISPLAY AT(17,0):J$;" size:";H :: DISPLAY AT(20,0):"Press Space Bar to Hal t": :: CALL KEY(3,AR,AG):: IF AR=32 THEN GOSUB 1370 1015 IF PO$<>"OFF" THEN PRINT #4:TAB(1);J$;TAB(11);H;TAB(16);Y$(ABS(M)); 1020 PRINT #2:TAB(1);J$;TAB(11);H;TAB(16);Y$(ABS(M));:: IF ABS(M)=5 THEN 1040 1025 IF PO$<>"OFF" THEN E$=STR$(J):: PRINT #4:TAB(18);E$; 1030 E$=STR$(J):: PRINT #2:TAB(18);E$;:: DISPLAY AT(20,0):"Press Space Bar to Ha lt" :: CALL KEY(3,AR,AG):: IF AR=32 THEN GOSUB 1370 1035 IF PO$<>"OFF" THEN PRINT #4:TAB(21);X;TAB(26);P$;TAB(31);S$;TAB(41);R$;:: P RINT #4:TAB(42);A$;TAB(62);C$ 1040 PRINT #2:TAB(21);X;TAB(26);P$;TAB(31);S$;TAB(41);R$;:: PRINT #2:TAB(42);A$; TAB(62);C$ :: GOTO 1000 1050 DISPLAY AT(17,0): : :"Catalog complete...": : :: CLOSE #1 :: FF=2 :: DISPLA Y AT(23,0):"Closed" :: CLOSE #2 :: FF=0 1053 DISPLAY AT(7,0): :T$;" Closed": : : :"" :: IF PO$<>"OFF" THEN CLOSE #4 :: O N ERROR 1410 1060 DISPLAY AT(19,0):"CATALOG ANOTHER DISK?" 1070 DISPLAY AT(20,0):" 1) Yes 2) No" :: AF=1 :: GOSUB 1220 :: IF AF<1 OR AF >2 THEN 1070 1080 ON AF GOTO 1090,1092 1090 X=X+1 :: GOTO 290 1092 DISPLAY AT(19,0):"Convert To Ti-Base?":"1) Yes 2) No" :: AF=1 :: GOSUB 12 20 :: IF AF>2 OR AF<1 THEN 1092 1093 ON AF GOTO 1720,220 1100 DISPLAY AT(17,0): :"** DISK-READ-ERROR **":" " 1105 DISPLAY AT(20,0):"1)Re-Read 2)New Disk 3)Menu" :: AF=1 :: GOSUB 1220 :: IF AF<1 OR AF>3 THEN 1100 1110 DISPLAY AT(17,0): : : : : : :: ON AF GOTO 1000,1120,1130 1120 GOSUB 1352 :: GOTO 290 1130 GOSUB 1352 :: GOTO 220 1140 GOSUB 1360 :: DISPLAY AT(20,0):"No Disk in Drive. Re-Running" :: RUN 1180 GOTO 1420 :: CALL ERR(A,B,C,D) 1185 DISPLAY AT(18,0):"** FILE-READ/WRITE ERROR **":"" 1190 DISPLAY AT(20,0):"1)Re-Try 2)Filename 3)Menu" :: AF=1 :: GOSUB 1220 :: IF A F<1 OR AF>3 THEN DISPLAY AT(21,9):"Try Again!" :: GOTO 1180 1200 ON AF GOTO 1210,920,1215 1210 GOSUB 1352 :: GOTO 870 1215 GOSUB 1352 :: GOTO 170 1220 DISPLAY AT(21,0):"Select ";Q :: CALL KEY(3,AF,AG):: IF AG<>0 THEN 1240 ELSE 1230 1230 CALL HCHAR(21,9,32,15):: GOTO 1220 1240 IF AF=13 THEN AF=Q :: DISPLAY AT(21,0):"Select ";Q :: Q=AF :: RETURN 1250 IF AF<48 OR AF>72 THEN DISPLAY AT(21,10):"Input out of range" :: GOTO 1220 1260 IF AF>57 THEN AF=AF-64 ELSE AF=AF-48 1270 DISPLAY AT(21,0):"Select ";AF :: RETURN 1280 IF I$="" THEN RETURN 1290 DISPLAY AT(24,0):"Active :";I$ :: RETURN 1300 FOR AR=1 TO K :: NEXT AR :: RETURN 1310 ON ERROR 1460 :: GOSUB 1360 :: DISPLAY AT(0,0):"Load Program/Leave Cat-Man@ " 1315 DISPLAY AT(6,0):" 1) Run Ti-Base":" 2) Run Dsk1.Load":" 3) Main Menu":" 4) End Session" :: GOSUB 1220 :: ON AF GOTO 1320,1330,1340,1350,790 1320 CALL CLEAR :: DISPLAY AT(10,0):"RUNNING TI-BASE" :: RUN "DSK.TIBASE.LOAD" 1330 CALL CLEAR :: DISPLAY AT(10,0):"RUNNING DSK1.LOAD" :: RUN "DSK1.LOAD" 1340 IF AQ=8 THEN 220 ELSE RETURN 000200000F210000283DF1B,1350 END 1352 GOTO 1355 :: FF$=STR$(FF):: FOR BB=1 TO LEN(FF$):: FG$=SEG$(FF$,BB,1):: FF= VAL(FG$) 1353 IF FF=0 THEN RETURN 1354 CLOSE #FF :: NEXT BB :: RETURN 1355 CALL CLSALL :: RETURN 1360 DISPLAY AT(0,0)ERASE ALL:"CAT-MAN v2.14":"Disk Catalog Manager Mar '09" :: CALL HCHAR(3,1,45,32):: GOSUB 1280 :: RETURN 1370 DISPLAY AT(19,0):"** Operation Halted **":"1) Continue 2) Back" :: AF=1 1380 GOSUB 1220 :: IF AF<1 OR AF>2 THEN DISPLAY AT(21,9):"OUT OF RANGE" :: GOTO 1380 1390 DISPLAY AT(19,0): : : : :: IF AF=2 AND AQ=6 THEN CLOSE #1 :: GOTO 1540 1400 IF AF=2 THEN 940 ELSE RETURN 1410 DISPLAY AT(20,0):" **MISC. ERROR IN CLOSING**":"TRYING AGAIN..." :: GOSUB 1 352 :: GOSUB 1300 :: DISPLAY AT(20,0):"Successful... Returning": :: GOTO 1060 1420 CALL ERR(A,B,C,D):: GOSUB 1360 :: DISPLAY AT(5,0):"Master Error Screen": :" Closing Files..." :: GOSUB 1352 :: GOSUB 1300 1430 DISPLAY AT(7,0):" Recovery Successful": :" * Reports *" :: DISPLAY AT(11, 0):" Error Code:";A:" Type: ";B :: IF B<0 THEN DISPLAY AT(15,0):"Program Exe cution Error" 1440 IF A=130 THEN DISPLAY AT(16,0):"Error In Handling File#";B 1450 DISPLAY AT(17,0):"Problem Occured at";D :: DISPLAY AT(21,0):"Press a key to Re-RUN or":"to return" :: CALL KEY(3,AR,AG):: IF AG=0 THEN 1450 1452 IF A=130 AND B=1 THEN DISPLAY AT(15,0):"****************************Trouble Reading Files - Check Your Disk! ":"****************************": : : : : :: GOSUB 1300 :: GOTO 1470 1455 IF DD=9 THEN 1470 1460 DISPLAY AT(19,0): :"** FATAL ERROR **": :"**UNACCEPTABLE INPUT!**": :"Re-bo oting" :: RUN 1470 PM=3 :: ON ERROR 1420 :: DD=9 1475 GOSUB 1300 :: GOTO 220 1480 GOSUB 1360 :: DISPLAY AT(4,2):"File Utilities" :: DISPLAY AT(6,4):"options: " :: DISPLAY AT(8,0):" 1) Convert Files":" 2) Combine two files" 1490 DISPLAY AT(10,0):" 3) XB Load/Catalog":" 4) Delete a file" :: DISPLAY AT(12 ,0):" 5) Selective Sweep":" 6) Previous Menu":" 7) Finished" 1500 Q=1 :: GOSUB 1220 :: IF AF<1 OR AF>7 THEN DISPLAY AT(21,9)"Choose Again" :: GOTO 1500 1510 IF AF=7 THEN AQ=7 1520 ON AF GOTO 1522,2130,1525,2040,1540,220,1310 1522 AQ=2 :: GOTO 1720 1525 AQ=2 :: FF=0 :: GOTO 360 1530 GOTO 1480 1540 GOSUB 1360 :: DISPLAY AT(4,2):" Disk Sweep Utility": :" Clears Any or All files" 1545 DISPLAY AT(9,0):" Drive (1)":" Drive (2)":" Drive (3)":" Back (4)" 1550 DISPLAY AT(19,0):"Drive To Check?" 1560 Q=4 :: GOSUB 1220 :: IF AF<1 OR AF>4 THEN DISPLAY AT(21,9)"Choose Again" :: GOTO 1560 1570 ON AF GOTO 1575,1575,1575,1470 1575 N$="DSK"&STR$(AF)&"." :: I$=N$ :: GOSUB 1360 :: DISPLAY AT(4,0):"Disk Sweep Utility" :: DISPLAY AT(10,0):"Preparing to Sweep ";N$ 1580 OPEN #1:N$,INPUT ,INTERNAL,RELATIVE :: INPUT #1:Q$ :: DISPLAY AT(12,0):"Dis k Name:"&Q$ :: I$=I$&Q$ :: GOSUB 1280 1590 DISPLAY AT(19,0):"Abort Sweep?":"1)Continue 2)Abort 3)Back" :: Q=2 :: GOS UB 1220 :: IF AF<1 OR AF>3 THEN DISPLAY AT(21,9):"Choose Again" :: GOTO 1590 1600 ON AF GOTO 1620,1610,1470 1610 DISPLAY AT(19,0): : :"Closing Files..." :: CLOSE #1 :: GOSUB 1300 :: GOTO 1 540 1620 DISPLAY AT(19,0): :"1) Selective 2) All Files" :: Q=1 :: GOSUB 1220 :: IF AF<1 OR AF>2 THEN DISPLAY AT(21,9):"Try Again" :: GOTO 1620 1630 DISPLAY AT(19,0): : :"Hold Down Space Bar to Halt" :: CALL KEY(3,AR,AG):: I F AG<>0 THEN AQ=6 :: GOSUB 1370 1640 V=1 1650 INPUT #1,REC(V):V$ :: IF V$="" THEN CLOSE #1 :: DISPLAY AT(20,0):"No Files Present" :: GOSUB 1300 :: GOTO 1540 1660 CALL KEY(3,AR,AG):: IF AR=32 THEN CLOSE #1 :: GOTO 1480 1670 IF AF=2 THEN 1690 1680 DISPLAY AT(18,0):"Delete? (Y/N) ";V$: :"" :: CALL KEY(3,AR,AG):: IF AG=0 TH EN 1680 :: IF AR=89 THEN 1690 ELSE V=V+1 :: DISPLAY AT(18,0):"Did Not Delete..." ;V$ :: GOTO 1650 1690 DISPLAY AT(18,0):"Deleting...";V$: : :: DELETE N$&V$ :: GOTO 1650 :: V=V+1 :: CALL HCHAR(AC-1,LL+13,78):: GOTO 1650 :: GOTO 1540 1700 V=V+1 :: IF AC<25 THEN CALL HCHAR(AC-1,14,78)ELSE CALL HCHAR(AC-20,29,78) 000200000F6500003758F5F,1710 GOTO 1630 1720 GOSUB 1360 :: GOSUB 1280 :: IF AQ<>1 THEN 1725 :: I$=T$ :: AQ=1 :: M$(AQ)=I $ :: DISPLAY AT(4,2):"File Conversion": :" *Files Info*" 1725 IF AQ=3 THEN I$=O$ :: ZZ$="DSK2.DISKS/D" :: DISPLAY AT(4,2):"File Conversio n": :" *Disk Info* " 1727 AQ=1 1730 IF AQ=1 THEN 1750 ELSE 1740 1740 I$=ZZ$ :: DISPLAY AT(9,2):" Converted File" :: GOTO 1760 1750 DISPLAY AT(9,2):" Master File" 1760 DISPLAY AT(11,3):"Filename: ";I$ :: DISPLAY AT(13,5):"Mode";AQ: :"1) Displa y/Variable":"2) Display/Fixed":"3) Internal/Fixed":"4) Internal,Variable" 1770 DISPLAY AT(19,1):"5) Return To Main Menu" :: IF AQ=1 THEN Q=1 ELSE Q=3 1780 ACCEPT AT(11,13)SIZE(-15):M$(AQ):: I$=M$(1):: IF AQ=2 THEN ZZ$=M$(2) 1790 GOSUB 1220 :: IF AF<1 OR AF>5 THEN DISPLAY AT(21,9):"Choose Again " :: GOTO 1790 1800 IF AF=5 THEN 1810 ELSE 1820 1810 IF AQ=1 THEN 1480 ELSE CLOSE #1 :: GOTO 1480 1820 ON AF GOTO 1840,1830,1830,1840,1470 1830 DISPLAY AT(22,3):"Fixed 80" :: ACCEPT AT(22,9)SIZE(-3)VALIDATE(DIGIT):AR :: IF AR=0 THEN 220 ELSE 1845 1840 DISPLAY AT(22,3):"Variable 80" :: ACCEPT AT(22,12)SIZE(-3)VALIDATE(DIGIT):A R :: IF AR=0 THEN 220 1845 FF=0 1850 IF AQ=1 THEN 1860 :: IF AQ=2 THEN 1870 1860 ON AF GOTO 1880,1900,1920,1940 1870 DISPLAY AT(21,0): :"Start at Rec#? ";AJ :: ACCEPT AT(22,17)SIZE(-5):AJ 1875 ON AF GOTO 1890,1910,1930,1950 1880 OPEN #AQ:M$(AQ),INPUT ,DISPLAY ,VARIABLE AR :: FF=AQ :: GOTO 1960 1890 OPEN #AQ:M$(AQ),DISPLAY ,VARIABLE AR :: FF=AQ :: GOTO 1960 1900 OPEN #AQ:M$(AQ),INPUT ,DISPLAY ,FIXED AR :: FF=AQ :: GOTO 1960 1910 OPEN #AQ:M$(AQ),DISPLAY ,FIXED AR :: FF=AQ :: GOTO 1960 1920 OPEN #AQ:M$(AQ),INPUT ,INTERNAL,RELATIVE AR :: FF=AQ :: GOTO 1960 1930 OPEN #AQ:M$(AQ),INTERNAL,RELATIVE AR :: FF=AQ :: GOTO 1960 1940 OPEN #AQ:M$(AQ),INPUT ,INTERNAL,VARIABLE AR :: FF=AQ :: GOTO 1960 1950 OPEN #AQ:M$(AQ),INTERNAL,VARIABLE AR :: FF=AQ 1960 AQ=AQ+1 :: IF AQ=3 THEN 1970 :: GOTO 1730 1970 GOSUB 1360 :: DISPLAY AT(9,3):M$(1):: DISPLAY AT(10,3):" Reading:" :: DISP LAY AT(14,3):M$(2):: DISPLAY AT(15,3):" Writing:" :: ON AF GOTO 1980,1980,2010, 2010 1980 IF EOF(1)THEN 2000 1990 LINPUT #1:X$ :: X$=SEG$(X$,1,78):: DISPLAY AT(10,14):AJ :: PRINT #2,REC AJ: X$ :: DISPLAY AT(15,14):AJ :: AJ=AJ+1 :: GOTO 1980 2000 DISPLAY AT(22,5):"Command Completed" :: CLOSE #1 :: CLOSE #2 :: FF=0 :: GOT O 1470 2010 IF EOF(1)THEN 2030 2020 LINPUT #1:X$ :: X$=SEG$(X$,1,77):: DISPLAY AT(10,14):AJ :: PRINT #2,REC AJ: X$ :: DISPLAY AT(15,14):AJ :: AJ=AJ+1 :: GOTO 2010 2030 DISPLAY AT(22,5):"Conversion Completed" :: CLOSE #1 :: CLOSE #2 :: FF=0 :: GOTO 1470 2040 GOSUB 1360 :: DISPLAY AT(4,2):"File Delete Utility" :: DISPLAY AT(5,3):" Diskette cannot be Write Protected" 2050 DISPLAY AT(10,0):" Drive (1)":" Drive (2)":" Drive (3)":" Back (4)" :: Q=4 :: GOSUB 1220 :: IF AF<1 OR AF>4 THEN DISPLAY AT(21,9):"Choose Again" :: GO TO 2050 2060 IF AF=4 THEN 1470 2070 DISPLAY AT(20,0):"Filename: (Erase to Return)";SEG$(I$,6,15):: ACCEPT AT(2 1,0)SIZE(-10):T$ :: IF T$="" OR T$="3" THEN DISPLAY AT(20,0):"Returning to menu" :: GOSUB 1300 :: GOTO 1470 2080 OPEN #1:"DSK"&STR$(AF)&".",INPUT ,INTERNAL,RELATIVE :: FF=1 2090 INPUT #1:G$,GG :: IF G$="" THEN CLOSE #1 :: DISPLAY AT(21,5):"No Files On D isk" :: GOSUB 1300 :: GOTO 2050 2100 IF G$=T$ THEN 2110 ELSE 2090 2110 IF GG<0 THEN DISPLAY AT(21,0):"* File Write-Protected *" :: GOSUB 1300 :: C LOSE #1 :: GOTO 2040 2120 DELETE "DSK"&STR$(AF)&"."&T$ :: DISPLAY AT(20,0): :T$;" Deleted" :: GOSUB 1 300 :: CLOSE #1 :: GOTO 1470 2130 GOSUB 1360 :: AQ=1 :: M$(AQ)=W$ 2135 DISPLAY AT(4,0):"Combine Files Menu:" :: ON AQ GOTO 2150,2160,2140 2140 DISPLAY AT(8,2):"** Combined File:" :: GOTO 2170 2150 DISPLAY AT(8,2):"** First File:" :: GOTO 2170 2160 DISPLAY AT(8,2):"** Second File" 2170 IF I$="disk?" THEN I$="DSK2." 2171 DISPLAY AT(11,3):"Filename: ";I$ 2175 DISPLAY AT(13,5):"Mode";AQ:" 1) Display/Variable":" 2) Display/Fixed":" 3) Internal/Fixed":" 4) Internal/Variable" 000200000C28000046B7C22,2180 DISPLAY AT(18,3):"5) Return To Menu" :: ACCEPT AT(11,13)SIZE(-15):M$(AQ) 2190 GOSUB 1220 :: IF AF<1 OR AF>5 THEN DISPLAY AT(21,9):"Choose Again " :: GOTO 2190 2200 IF AF=5 THEN 2210 ELSE 2240 2210 IF AQ=1 THEN 1470 2220 IF AQ=2 THEN CLOSE #1 :: FF=0 :: GOTO 1470 2230 IF AQ=3 THEN CLOSE #1 :: CLOSE #2 :: FF=0 :: GOTO 1470 2240 ON AF GOTO 2260,2250,2250,2260 2250 AR=80 :: DISPLAY AT(22,3):"Fixed 80" :: ACCEPT AT(22,9)SIZE(-3)VALIDATE(DIG IT):AR :: IF AR=0 THEN 220 ELSE 2265 2260 AR=80 :: DISPLAY AT(22,3):"Variable 80" :: ACCEPT AT(22,12)SIZE(-3)VALIDATE (DIGIT):AR :: IF AR=0 THEN 220 2265 FF=0 2270 ON AQ GOTO 2280,2280,2290 2280 ON AF GOTO 2300,2320,2340,2360 2290 ON AF GOTO 2310,2330,2350,2370 2300 OPEN #AQ:M$(AQ),INPUT ,DISPLAY ,VARIABLE AR :: FF=AQ :: GOTO 2380 2310 OPEN #AQ:M$(AQ),DISPLAY ,VARIABLE AR :: FF=AQ :: GOTO 2380 2320 OPEN #AQ:M$(AQ),INPUT ,DISPLAY ,FIXED AR :: FF=AQ :: GOTO 2380 2330 OPEN #AQ:M$(AQ),DISPLAY ,FIXED AR :: FF=AQ :: GOTO 2380 2340 OPEN #AQ:M$(AQ),INPUT ,INTERNAL,FIXED AR :: FF=AQ :: GOTO 2380 2350 OPEN #AQ:M$(AQ),INTERNAL,FIXED AR :: FF=AQ :: GOTO 2380 2360 OPEN #AQ:M$(AQ),INPUT ,INTERNAL,VARIABLE AR :: FF=AQ :: GOTO 2380 2370 OPEN #AQ:M$(AQ),INTERNAL,VARIABLE AR :: FF=AQ 2380 AQ=AQ+1 :: IF AQ=4 THEN 2390 ELSE 2135 2390 FOR ZZ=8 TO 23 :: CALL HCHAR(ZZ,1,32,32):: NEXT ZZ :: AF=1 :: DISPLAY AT(9, 3):M$(1):: DISPLAY AT(10,3):"1 Reading:" :: DISPLAY AT(14,3):M$(2):: DISPLAY AT( 15,3):"2 Reading:" 2400 DISPLAY AT(19,3):M$(3):: DISPLAY AT(20,3):" Combining:" 2410 ON AF GOTO 2420,2420,2450,2450 2420 IF EOF(AF)THEN 2470 2430 LINPUT #AF:X$ :: AJ=AJ+1 :: DISPLAY AT((AF+1)*5,14):AJ :: PRINT #3:X$ :: DI SPLAY AT(20,14):AJ :: GOTO 2420 2440 DISPLAY AT(22,5):"Command Completed" :: FF=123 :: GOSUB 1352 :: GOTO 1470 2450 IF EOF(AF)THEN 2470 2460 INPUT #AF:X$ :: AJ=AJ+1 :: DISPLAY AT((AF+1)*5,14):AJ :: PRINT #3:X$ :: DIS PLAY AT(20,14):AJ :: GOTO 2450 2470 AF=AF+1 :: IF AF=3 THEN 2440 ELSE 2410 2480 GOTO 220 2990 !@P+ 3000 ! XBLOAD v3.6xx modified for CATMAN v2.12b 2/7/89 3010 F$="DSK2." 3100 ! LOAD 3.6x 02/15/87 modified 11/18/88 by Ed Gerken Box 337,Hill City SD 57745 3110 ! (C)1987 By Jim Swedlow 7301 Kirby Way Stanton, CA 90 680 3120 D$="1234" :: P$="PIO" :: F$="DSK1." :: FF$="DSK1." 3130 ON ERROR 3520 :: CALL LOAD(-31806,16) 3140 FF$="DSK2." :: CALL CLEAR :: DISPLAY AT(2,0):"XBLOAD Version 3.6x 01/25/90_ ___________________________" :: DISPLAY AT(10,0):"Scan which drive? ";FF$ 3150 ACCEPT AT(10,22)SIZE(-5):FF$ :: IF ASC(FF$)<49 OR ASC(FF$)>57 AND ASC(FF$)< >88 THEN DISPLAY AT(10,22):"?" :: GOTO 3140 3160 F$="DSK"&FF$ 3170 @=1 :: DISPLAY ERASE ALL :: L$=" Aborts" :: ON ERROR 3530 :: OPEN #@:F$, INPUT ,RELATIVE,INTERNAL :: S,L,A,D=0 :: INPUT #@:H$(D),G(D),H,Y(D):: H$(D)=F$&H $(D) 3180 DISPLAY AT(7,7):"LOAD Version 3.6x": :" Press any key to interrupt": :TAB(1 0-LEN(H$(D))/2);"Scanning ";H$(D) 3190 D=D+@ :: INPUT #@:H$(D),G(D),C,Y(D):: IF H$(D)="" THEN 3220 ELSE A=A+C :: B $=STR$(C):: C=ABS(G(D)) 3200 B$=H$(D)&RPT$(" ",14-LEN(H$(D))-LEN(B$))&B$&" "&SEG$("DisFixDisVarIntFixInt 0002000013AB000052D913A4,VarProgram",6*C-5,6-(C=5)):: IF C<5 THEN B$=B$&STR$(Y(D)) 3210 Z$(D)=B$&RPT$(" ",25-LEN(B$))&SEG$("PU",@-(G(D)>0),@):: DISPLAY AT(15,2):Z$ (D):: H$(D)=F$&H$(D):: CALL KEY(3,I,B):: IF B<@ THEN 3190 ELSE S,D=D+@ 3220 CLOSE #@ :: D=D-@ :: P=INT(D/16+.99):: H=H-Y(0) 3230 DISPLAY AT(@,@)ERASE ALL:H$(0);TAB(18);"Page";L+@;"of ";STR$(P):"Free";Y(0) ;TAB(15);"Used";H:" Filename Size Type" :: IF S OR H=A THEN 3250 3240 DISPLAY AT(2,25)BEEP:A :: DISPLAY AT(13,5):"Error in disk size" :: DISPLAY AT(2,24)SIZE(@):CHR$(30):: DISPLAY AT(2,24)SIZE(@):" " :: CALL SOUND(-99,110,0,- 4,0):: GOSUB 3460 3250 IF D THEN DISPLAY AT(@,23)SIZE(@):STR$(L+@)ELSE DISPLAY AT(11,@):"No files found on this disk" :: M=0 :: GOTO 3270 3260 CALL HCHAR(4,@,32,512):: M=16+(L+@=P)*(16*P-D):: FOR C=@ TO M :: DISPLAY AT (C+3,@):CHR$(C+64);" ";Z$(C+16*L):: NEXT C 3270 DISPLAY AT(21,@):"<1>Print Catalog<2>Page Up <3>Delete a File<4>Page Down< 5>Change Drive <6>Main Menu" 3280 GOSUB 3450 :: IF E=49 THEN 3390 :: IF E=50 THEN L=MIN(L+@,P-@):: GOTO 3250 ELSE IF E=51 AND D THEN 3430 :: IF E=52 THEN L=MAX(L-@,0):: GOTO 3250 ELSE IF E= 53 THEN 3410 :: IF E=54 THEN 220 ELSE IF E<65 OR E>64+M THEN 3280 3290 A=E+L*16-64 :: F=ABS(G(A)):: IF F=5 OR(F=4 AND Y(A)=254)THEN 3610 :: DISPLA Y AT(21,@):"Print ";H$(A):"ext on Printer ";L$:"ile on Printer creen" 3300 GOSUB 3450 :: IF E=90 THEN 3270 :: IF E<>70 AND E<>83 AND E<>84 THEN 3300 : : C=-(E=70)-2*(E=84):: IF C THEN ON ERROR 3550 :: OPEN #@:P$ :: DISPLAY AT(21,@) :"Printing ";H$(A):L$: :ELSE DISPLAY ERASE ALL :: PRINT H$(A): : 3310 ON ERROR 3560 :: IF F>2 THEN 3340 ELSE IF F=@ THEN OPEN #2:H$(A),INPUT ,FIX ED ELSE OPEN #2:H$(A),INPUT 3320 IF EOF(2)=0 AND E<>90 THEN LINPUT #2:B$ :: GOSUB 3480 :: GOTO 3320 3330 CLOSE #2 :: IF C THEN CLOSE #@ :: GOTO 3270 ELSE PRINT : : :: A=X :: IF E=9 0 THEN 3230 :: GOSUB 3460 :: GOTO 3230 3340 IF F=3 THEN OPEN #2:H$(A),INPUT ,INTERNAL,FIXED ELSE OPEN #2:H$(A),INPUT ,I NTERNAL 3350 IF EOF(2)OR E=90 THEN 3330 :: INPUT #2:B$ :: IF LEN(B$)<>8 THEN 3380 :: A=2 *ASC(B$):: B=ASC(SEG$(B$,2,@)):: IF A=0 AND B=0 THEN B$="0" :: GOTO 3380 3360 IF (A<255 AND B>99)OR(A>255 AND B<157)THEN 3380 :: E=0 3365 FOR I=3 TO 8 :: F=ASC(SEG$(B$,I,@)):: IF F>99(OR I>5)AND(F>31 AND(F<127))TH EN 3380 3370 E=E+F*10^(4-2*I):: NEXT I :: IF B<100 THEN B$=STR$((B+E)*10^(A-128))ELSE B$ =STR$((B-256-E)*10^(382-A)) 3380 GOSUB 3480 :: GOTO 3350 3390 ON ERROR 3550 :: OPEN #@:P$ :: DISPLAY AT(21,@):"Printing disk catalog": : : : :: IF S THEN PRINT #@: :"Incomplete Catalog" 3400 PRINT #@: :"Disk: ";SEG$(AZ$(0),6,10):"Free: ";Y(0);"* Used: ";X:"FILENAME SIZE TYPE":RPT$("-",28):: FOR I=@ TO D :: PRINT #@:Z$(I):: NEXT I :: CLOSE #@ :: GOTO 3270 3410 A=LEN(D$):: B=VAL(SEG$(F$,4,@)):: A=B+@+A*(B=A) 3420 DISPLAY AT(21,@):" Drive: ";A: :"4 Exits": : :: ACCEPT AT(21,18)VAL IDATE(D$)SIZE(-@)BEEP:F$ :: IF F$="4" THEN 220 3425 IF F$="" THEN 3420 ELSE F$="DSK"&F$&"." :: GOTO 3170 3430 DISPLAY AT(21,@):"Delete file * ";L$: : : : :: B$="Press ID to delete" :: G OSUB 3470 :: IF E=90 THEN 3270 ELSE IF E<65 OR E>64+M THEN 3430 ELSE A=E+L*16-64 :: DISPLAY AT(21,8):AZ$(A);"?": : : : 3440 IF G(A)<0 THEN DISPLAY AT(22,@):"PROTECTED * CANNOT DELETE" :: GOSUB 3460 : : GOTO 3270 ELSE B$="Press to verify" :: GOSUB 3470 :: IF E=89 THEN DISPLAY AT(21,6):"ing ";H$(A): : : : :: ON ERROR 3580 :: DELETE H$(A):: GOTO 3170 ELSE 3 270 3450 B$=" Choice? Vn 3.6x" :: GOTO 3470 3460 B$=" Press any key to continue" 3470 DISPLAY AT(24,@):B$ :: FOR I=@ TO 18 :: CALL KEY(3,E,B):: IF B=@ THEN DISPL AY AT(24,@): :: RETURN ELSE 3477 3475 DISPLAY AT(24,@):" " :: FOR I=@ TO 5 :: NEXT I 3477 NEXT I :: GOTO 3470 3480 IF C=0 THEN PRINT B$ :: CALL KEY(3,A,B):: IF B=0 THEN RETURN ELSE PRINT :: B$="Any key continues "&L$ :: GOTO 3470 3490 IF C=2 THEN 3510 3491 ZP=LEN(B$):: FOR A=1 TO ZP 3492 B=ASC(SEG$(B$,A,1)) 3495 IF B<32 OR B>127 THEN B$=SEG$(B$,@,A-@)&"*"&SEG$(B$,A+@,255) 3500 NEXT A 3510 PRINT #@:B$ :: CALL KEY(3,E,B):: RETURN 3520 CALL INIT :: RETURN 3130 3530 ON ERROR 3540 :: CLOSE #@ 3540 DISPLAY AT(11,@)ERASE ALL:" ";SEG$(F$,@,4);" could not be accessed": : : : :: F$="DSK1." :: RETURN 3410 3550 IF P$="NO" THEN RETURN 3270 ELSE DISPLAY AT(11,@)ERASE ALL:P$: :"is not a v alid printer name": :"Modify name in line 120" :: STOP 3560 ON ERROR 3570 :: CLOSE #2 3570 ON ERROR 3580 :: CLOSE #@ 3580 ON ERROR 3590 :: DISPLAY AT(11,5)ERASE ALL:"File ";H$(A): :" could not b e accessed" :: GOSUB 3460 :: RETURN 3170 3590 DISPLAY AT(22,2):"Could not find file": : :: RUN 3600 3600 @=1 :: GOSUB 3460 :: GOTO 3120 3610 B$=H$(A):: IF SEG$(B$,LEN(B$),@)="*" THEN DISPLAY AT(11,@)ERASE ALL BEEP:"R ETURN TO BASIC AND LOAD BY": :"ENTERING:": :"" :: STOP ELSE DISPLAY AT(11,@)ERASE ALL BEEP:"Loading ";B$ :: B$=B$&CHR$(0) 3620 CALL KEY(5,A,B):: ON ERROR 3590 :: D=LEN(B$):: CALL PEEK(-31952,A,B):: CALL PEEK(A*256+B-65534,A,B):: C=A*256+B-65534 :: CALL LOAD(C,D-@):: FOR I=@ TO D :: CALL LOAD(C+I,ASC(SEG$(B$,I,@))):: NEXT I 3630 RUN "DSK1.CATMAN219" 0 00040000000B000000020667F000050000000B000000020667F0000600000031000000010ÁC310‚‚ÁFFFF0‚C00000 20ÂÁ ‚‚Á000700000018000000010‚20Â180‚Á0008000000970000000140,Geneva40,4030 10000900000017000000022‚1181FF2‚1181FF000A00000021000000022‚7FFFFFFF1FF2‚7FFFFFFF1FF000B00000005000000020Â000C0000001100000001667D0Â6D0‚000F000000200000000050 10 ‚ÂÁÂÁ‚‚ÁÂ00130000007E00000000DA91F8CE1C1D1E1F7F1B044,-.¦¹°­­.'"ÔÕÒÓÉÉFFFF0FFFF001280000000C00000001667F‚0Á‚01290000000C00000001667F‚0Á‚