[ 53280,0:53281,0:646,(162):"":" USE LYNX TO DISSOLVE THIS FILE":10 6 *LYNX XVII WILL CORLEY 40 COPY-FAST 14 P 176 <-- CONTENTS --> 41 S 100 ASCII FILE SPLIT 6 P 167 ASCII-WPRO PET 4 P 8 BACKUP 7 P 202 CHANGE UNIT NO 7 P 104 CHECK DISK 5 P 171 CROSS-REF.ML 7 P 34 DATA FILE EDITOR 44 P 17 DATA INPUT DG 16 P 163 DD SORT 17 P 111 DD RESTORE 18 P 156 DELETE ALL 7 P 185 DISK CONTENTS 10 P 71 DISK FILE REC-4 39 P 118 DISK LOG 10 P 166 DISK RECLAIM 9 P 135 DISK RECOVERY 10 P 173 DISK RENUMBER 19 P 208 DISK REV2.01 41 P 179 FILE EXAMINE 2 P 186 FILE SPLITTER 7 P 25 IDENTIFY DISK 3 P 218 INPUT/OUTPUT 30 P 237 LIST-ME.BUILDER 9 P 166 LIST-ME.STRIPPER 5 P 221 LOAD ADD CHANGE 11 P 83 LOAD ADDRESS.MOD 8 P 106 MICROMONE40@$6B 22 P 205 RAM TEST 1 P 237 RE-CHAIN BASIC 5 P 74 RENAME ANY DISK 10 P 54 STRING THING 8 P 189 T&S LINK 29 P 85 TAPE TO DISK 5 P 112 UNBUMP 4 P 36 UNICOPY 4.0 8 P 154 UNICOPY INST 9 P 74 UNIV'L ROM TEST 16 P 204 DISK TO TAPE 34 P 201 3 P 218 INPUT/OUTPUT 30 P 237 LIST-ME.BUILDER 9 P 166 LIST-ME.STRIPPER 5 P 221 LOAD ADD CHANGE 11 P 83 LOAD ADDRESS.MOD 8 P 106 MICROMONE40@$6B 22 P 205 RAM TEST 1 P 237 RE-CHAIN 'd DSAVE D1,"@COPY-FAST":PRINT DS$[n"ISK OPY-AST OD'D BY OE RIFFIN ()"xA$"** JOE GRIFFIN **":A$A$A$A$:A$A$A$A$A$A$P$"" L2(232),L1%(232),N$(232),T%(232),T$(4) XXX,SEQ,PRG,USR,RELJ04:T$(J):JMN0:DF0:ML(43)256(42)387J "RE UPLICATED ILES TO BE KEPT ?"r " (LL/ELECTED/ONE) N";DF$ DF$"S" DF1 DF$"A" DF2"ROM NIT 8";F1090F$D$"O NIT 9";T1090T$D$ FT F$T$-"N0:1:15: 15,F,15:15,"I"F$I,Z0:"PATTERN *";P$q6P$"XXX"(P$"",16)@"ELECT ILES TO BE OPIED"J"WITH '' OR '' KEY OR SE"T"'' KEY TO NSERT ARKER ILE"^ 1,F,3,"$"F$h1120:E:290 r ML|R255: 400' ML89KJ1621:((A$,J3))160J\N$(A$,4,J)T9(A$) 192: T91 T94 580L1%((A$,22))L2((A$,29))((A$,30))256L2$("0000"((L2),2),4)(A$,4,16);" ";T$(T9);" ";L2$P(151)R'Z$:Z$""P255520TZ$"Y"Z$"N"Z$"M"Z(Z$):R255:520rZ$(13) Z77 R0:520{480 Z0 480Z78" ":580 Z89 570&NN1:N$(N)(31):L2(N)1:T%(N)3 0 "<- MARKER GAP -> ": 460N :NN1:L2(N)L2:N$(N)N$:T%(N)T9:L1%(N)L1%b DST0N232390{ N1:15:" * * * * *" XN0"* NO PROGRAMS *": 1060 bJ1N lL2L2(J):T%T%(J):LL2790 vQ0670 "*** OUTPUT DISK FULL" "DO YOU HAVE A NEW ONE";Z$# (Z$)89\ 15:15,T,15:"ANT TO THE UTPUT ISK N";Z$o (Z$)89720 "ISK AME,";X$,Y$ 15,"N"T$":"X$","Y$ 1120:E:670 15,"I"T$:1,T,0,"$"T$":!#$%&" 1120:E:670 1150:1150:QQ1! #1,X$:X$""750+ 1150P LXY256:"(";L;"LOCKS REE )"` 1:15:620v 14,F,15:15,T,15  N$(J)(31) 870 *MNMN1:MN$("000"((MN),2),3) 4"<- MARKER "MN$" -> "; > 4,T,4,T$":<- MARKER "MN$" ->,U,W": 11201 H E63 4: "": 810S R E "*M-O** ";E$;E: 1040t \4,"DUMMY FILE":LL1: 1030 fL2$("0000"((L2),2),4) p(N$(J)" ",18);L2$;" "; z3,F,3,F$":"N$(J)","T$(T%)" 14,E,E$,E1,E2:1130:E"*F-O** ";E$;E:10401 DT(DF2)d T%44,T,4,T$":"N$(J)",L,"(L1%(J)):940 4,T,4,T$":"N$(J)","T$(T%)",W" 1120: (DF0) (E63) 990  DT 980  E$: "EEP EW ERSION Y";KP$: KP$"Y" 1030;DT1:"";(N$(J)" ",18);L2$;" ";lN$(J)(N$(J)" ",10)TI$: 4: 920E"*T-O** ";E$;E:1040LLL2:T%4 ML306:1020 ML287N$(J)"":1120:E"*T-W** ";E$;E:1040""4:3:15:14J7$X(0):"NOTHER NPUT ISK EADY ";Z$I.(Z$)89290O8dB"RIVE 0";DuLDDD1090VD$(D48):`15,E,E$,E1,E2jE0E(ST 191):E$"*ST*"t~#1,X$#1,X$#1,X$X(X$(0)) #1,X$:Y(X$(0)) ***F**D z@O ݱ* ?Ѻ` z֩ DDE ELxBiBCiCXBHJJJJ 0 h) 0   E @E DE  F FDLBC E`@ABC@A P  @ A   0 `jE0E(ST 191):E$"*ST*"t~#1,X$#1,X$#1,X$Xƀ*LM12:RM90:PT12:PL66:TL63:VP2 "OE'S TILITIES " 2C - IST OF ONTENTS ILES MARKED ">" IN FIRST COLUMN ARE AVAILABLE WHEN USED IN 8050 DRIVE. >"COPY-FAST" PRG - IM 'S OPIER, MODIFIED TO ALLOW MARKERS "----------------" USR "<- 18/PR/88 -->" USR - ATE THIS DISK CREATED "----------------" USR >"<-- CONTENTS -->" SEQ - HIS CONTENTS FILE "----------------" USR "2031 BAM VIEW" PRG - HOW ON 2031 DRIVE "2031 BLOCK R/W" PRG - EAD/RITE BLOCKS ON 2031 "2031 PROTECT" PRG - IMPLE DISK PROTECTION FOR 2A FORMAT DISKS "8250 -> 8050" PRG - ONVERT 8250 TO 8050 >"8296D DIAGNOSTIC" PRG - IAGNOSTICS AND DRIVE CHECKS >"970004.D SFTERR" PRG - ISK DRIVE CHECKING "22A ERROR - 8050" PRG - OT ORKING (FROM NSIDE ) "ACCUMULATOR" PRG - CCUMULATE SUB AND FULL TOTALS "ADD-ON-LOAD" PRG - 64 ADD ON LOADER "ADD-ON-MON" PRG - 64 ADD ON MONITOR "ARCHIVE COUNT" PRG - OUNT BLOCKS AND FILES FOR ARCHIVE DISKS >"ASCII FILE SPLIT" PRG - PLIT LARGE FILE INTO SMALLER SECTIONS "ASCII-WPRO PET" PRG - ONVERT SEQUENTIAL FILE TO ORDRO/ FORMAT >"B-AID.8032.A" PRG - -ID FOR 8032 + PRINTER >"B-AID.8032.C" PRG - -ID FOR 8032 + PRINTER >"BACKUP" PRG - NY UNIT BACKUP - HANDLES 8050 DISKS IN 8250 >"BLOCK HUNT" PRG - CAN DISK FOR BAD SECTORS "BLOCK MOVE" PRG - OVE A BLOCK OF CODE IN MEMORY "BLOCK READ" PRG - EAD A SECTOR ON UAL RIVES "BLOCK READ/WRITE" PRG - EAD/RITE A SECTOR ON UAL RIVES "BLOCK TO T/S CON" PRG - ONVERT BLOCK NUMBER TO POSITION ON DISK "BLOCK ZAP" PRG - EAD BLOCK FROM ONE DRIVE WRITE TO OTHER "BUFFER-IN" PRG - NPUT BUFFER - ACCEPTS COMMA, COLON ETC "BUZZ WORDS" PRG - REATE BUZZ WORDS, PHRASES "CBM 4032 V2" PRG - ONVERT 8032 TO 40 COLUMN SCREEN - REVISED "CBM 4032 V2.1" PRG - - M/C CODE >"CBM 4032-UNIV" PRG - - UNIVERSAL "CBM 4032/LC V2" PRG - DITTO SPACED LOWER CASE DISPLAY - REVISED "CBM 4032/LC V2.1" PRG - - M/C CODE >"CBM 4032-UNIV/LC" PRG - - UNIVERSAL "CBM4-2.BIN" PRG - BINARY OF 4032 ROUTINE >"CHANGE UNIT NO" PRG - SOFT CHANGE UNIT NUMBER OF DISK DRIVE >"CHECK DISK" PRG - CHECK SECTORS FOR READABILITY, ALLOCATE BAD ONES >"CODE MODS" PRG - SUBROUTINES TO CREATE PRETTY LISTINGS (ON ) >"COMPACT" PRG - MACHINE CODE OMPACTOR >"COMPACTOR" PRG - COMPILED OMPACTOR >"COMPARE" PRG - OMPARE TWO FILES >"COMPARE SB" PRG - OMPARE TWO UPERBASE FILES >"COMPARE SEQ" PRG - OMPARE TWO SEQUENTIAL FILES >"CONVERTOR.CF" PRG - CONVERT BETWEEN , AND CREEN ODE "CONVERTOR" PRG - VERSION OF ABOVE "COPY-ALL.64" PRG - .'S UTILITY FOR 64 "COPY/ALL" PRG - VERSION - SOURCE OF 'COPY-FAST' "COPY/ALL.V5" PRG - IM IERNEY'S VERSION OF 'COPY/ALL' >"COPY 64 READ-ME" PRG - OPY READ-ME FILES FROM 1541 TO 8050 >"COPY UNIVERSAL" PRG - EREK OBIAS'S OPY SECTORS ACROSS DEVICES "CROSS-REF.A" PRG - PROGRAM ROSS-REFERENCER (COMPILED) >"CROSS-REF.ML" PRG - DITTO (MACHINE CODE) "DATA FILE EDITOR" PRG - DITOR FOR SEQUENTIAL DATA FILES (IXFILE BASED) >"DATA INPUT DG" PRG - NPUT ROUTINES - CRASHPROOF >"DD SORT" PRG - ICK IGNALL'S DIRECTORY SORTING PROGRAM >"DD RESTORE" PRG - RESTORATION PROGRAM >"DELETE ALL" PRG - ELETE SELECTED FILES FROM DIRECTORY >"DIRECT-ASC" PRG - IRECTORY PRINTOUT ON PSON "DIRECT-ASC/S.COL" PRG - INGLE COLUMN PRINTOUT "DIRECT ENTRY" PRG - REATE DIRECTORY FROM OUTPUT OF FILE RECOVERY >"DIRECTOR.CF" PRG - IRECTORY MANIPULATION (OMPILED VERSION) "DIRECTOR" PRG - DITTO ( VERSION) >"DISK CHECKER" PRG - CHECK DISK FOR READABILITY - COMPILED >"DISK CONTENTS" PRG - SHOW CONTENTS INCLUDING DELETED FILES >"DISK EDITOR" PRG - EDIT 8050 DISKS - VERSATILE, FAST >"DISK FILE REC-8" PRG - DISK REPAIR 8050, FINDS SEQUENCES OF SECTORS, ETC "DISK FILE REC-4" PRG - DITTO 4040 "DISK FILE REC-SD" PRG - DITTO, FOR SINGLE DRIVES (2031, 1541) >"DISK LOG" PRG - DISPLAY POSITION, START & END ADDRESS, ETC "DISK LOG/SPECIAL" PRG - DITTO, PRINTS '?' FOR CONTROL CODES IN NAME "DISK MAINTENANCE" PRG - DISK HOUSEKEEPING (FROM ON ATEY - UNCHECKED) "DISK PROTECT" PRG - SIMPLE DISK PROTECTION FOR 2C FORMAT DISKS >"DISK RECLAIM" PRG - RECLAIM DELETED FILES (ONTO SAME DRIVE) "DISK RECOVERY" PRG - DITTO ONTO OTHER DRIVE "DISK RECOVER" PRG - ?? USED FOR ERT'S DISK >"DISK RENUMBER" PRG - RENUMBER PROGRAM ON DISK >"DISK REV2.01" PRG - ISK EVEALED (OT UBLIC OMAIN) >"DISK SHOW DATA" PRG - DISPLAY CONTENTS OF SEQUENTIAL/RELATIVE FILE "DISK TO EPSON" PRG - LIST PROGRAM FILES TO EPSON PRINTER >"DISK TO LIST" PRG - DITTO TO CBM PRINTER >"DISK TO TAPE" PRG - TRANSFER FILES FROM TAPE TO DISK "DISK TO TAPE 2" PRG - 2 VERSION OF ABOVE "DISK UTIL-DG" PRG - USER FRIENDLY(!) DISK HOUSEKEEPING - FROM "DISK-SAVER" PRG - USED FOR ERT'S DISK ??? >"DISKSORT" PRG - ORT VERY LARGE FILES ON DISK (SES LTRASORT) >"ULTRACODE" PRG - LTRASORT CODE FOR 'DISKSORT' >"DISKMERGE.CF" PRG - SECOND PASS OF DISKSORT - RE-MERGES SORTED FILES "DISKWEAVE.CF" PRG - OSITION FILES ON FRONT OR BACK OF 8250 DISK "DISKWEAVE" PRG - USES '<-- CONTENTS -->' TO DETERMINE ORDER & SIDE "DISPLAY T&S 8032" PRG - DISPLAY SECTOR CONTENTS "DISSASSEMBLER" PRG - .'S ASSEMBLER "DISSEMBLER" PRG - ASSEMBLER FROM AE EST "DISSEMBLER.GT" PRG - DITTO (COMPILED) "DUM 3.4/8000" PRG - DISK HOUSEKEEPING UTILITY (PARTLY MOD'D) "DUPLICATE DISK" PRG - SECTOR BY SECTOR COPYING OF 8050 DISK "EXPAND RELATIVE" PRG - CONVERT REL FILES FROM 8050 TO 8250 >"FILE EXAMINE" PRG - LIST CHARACTERS TO SCREEN "FILE SPLITTER" PRG - SPLIT ORDPRO/ FILE INTO SMALLER FILES >"FILE TRACE" PRG - EREK OBIAS'S SECTOR USAGE CHECK >"FIXFILE/5A" PRG - ILE EDITOR (ORIGINALLY FROM OMPUTE!) >"FIXFILE RECOVERY" PRG - PICK UP DATA AFTER CRASH "FLIP" PRG - TRANSPOSE UPPER/LOWER CASE IN 1.0 PROGRAMS "FOLLOW SECTORS" PRG - FOLLOW CHAIN OF SECTORS "FRONT PANEL" PRG - FROM 1ST BOOK OF PET "GAS-HODGE" PRG - UEL CONSUMPTION ( 622 ) "FUEL HODGE" SEQ - DATA FILE FOR ABOVE "GAS-DAISY" PRG - UEL CONSUMPTION ( 70 ) "FUEL DAISY" SEQ - DATA FILE FOR ABOVE "GAS-SNOWY" PRG - UEL CONSUMPTION ( 142 ) "FUEL SNOWY" SEQ - DATA FILE FOR ABOVE "GURU" PRG - MIGA SIMULATOR - THROWS URU EDITATION RRORS >"HARD COPY" PRG - ACKUP DISK, WITHOUT ABORTING ON ERRORS "HOUR.DISPLAY" PRG - DISPLAY TIME ON SCREEN >"IDENTIFY DISK" PRG - IDENTIFY DISK DRIVE, SET VARIABLES ACCORDINGLY >"INPUT/OUTPUT" PRG - CRASHPROOF INPUT, FORMATTED OUTPUT >"INT MUSIC" PRG - MUSIC PLAYER, WORKS UNDER INTERUPT >"THE ENTERTAINER" SEQ - DATA FILE FOR ABOVE >"ITEM COUNTER" PRG - OUNT NO OF ITEMS IN AN FILE "LENS" PRG - ARIOUS LENS CALCS >"LIST-ME.BUILDER" PRG - CREATE 'LIST-ME.XX' FILES FROM OUTPUT >"LIST-ME.STRIPPER" PRG - STRIP 'LIST-ME.XX' FILES INTO TEXT FORMAT >"LISTER" PRG - FORMATTED LISTING OF PROGRAMS "LOAD ADD CHANGE" PRG - CHANGE PROGRAM LOAD ADDRESS >"LOAD ADDRESS.MOD" PRG - DITTO (MY VERSION) >"MERGE" PRG - LEN ISHER (OMPUTE!) ERGE ROGRAM "MERGER" PRG - IM UTTERFIELD ERGE ROGRAM >"MICROMONE80@$6B" PRG - ICROMON XTENDED ONITOR - 80 COLUMN "MICROMONE40@$6B" PRG - DITTO 40 COLUMN "MODIFY T&S.8032" PRG - SIMPLE DISK EDITOR - COMPILED "NARROW" PRG - SET UP 40 COLUMN SCREEN, WITH SHADED BACKGROUND "NOSTOP" PRG - DEFEAT STOP KEY, MAINTAIN CLOCK "QUADRA-PET" PRG - FOUR 'S FOR THE PRICE OF ONE "QUADRA-PET UTIL" PRG - UTILITY FOR THE ABOVE >"RAM TEST" PRG - TEST ALL (INCLUDING SCREEN) >"RCC-COMMS-2.1" PRG - COMMUNICATIONS PACKAGE >"RE-CHAIN BASIC" PRG - RE-CHAIN PROGRAM AFTER LOAD ADDRESS MOD >"RENAME ANY DISK" PRG - CHANGE DISK NAME, ID "S-BACKUP" PRG - ACKUP PROGRAM + "SCREEN DUMP/ST" PRG - CREEN DUMP, USING TRINGTHING FOR INPUT >"SCOPY INSTRUCT" PRG - INSTRUCTIONS FOR COPY >"SCOPY V5.0" PRG - DEVICE TO DEVICE COPY UTILITY >"SECTOR TEST" PRG - CHECK A SECTOR FOR READABILITY >"SIPOD" PRG - ICK IGNALL'S INTERFACE, NOT UBLIC OMAIN "SS-FILE.SPLIT" PRG - SPLIT LARGE (-128) FILE "STARTUP" PRG - DIRECTORY BOOT PROGRAM >"STRING THING" PRG - .'S FILE INPUT ROUTINE "STRING THING/PS" PRG - DITTO, FOR ETSPEED "STRING THING-64" PRG - DITTO, FOR -64 >"SUPER DISK DOC" PRG - IMON'S DISK EDITOR, NOT UBLIC OMAIN >"SDD.BIN" PRG - BINARY EDITOR FILE ($2000) >"SUPER-7 DISK DOC" PRG - IMON'S DISK EDITOR (FOR 700), NOT UBLIC OMAIN >"SDD-BIN" PRG - BINARY FOR -700 >"SDD-LOGO" PRG - SCREEN DISPLAY FOR -700 >"SDD-700.BIN" PRG - MAIN BINARY CODE FOR -700 >"T&S-DPG" PRG - EE LLEN'S CORRUPTED SECTOR HUNTER MOD'D FOR 8250 "T&S LINK" PRG - DITTO, ORIGINAL (4040) VERSION "TAB SETTING" PRG - ROUTINE TO SET TAB STOPS "TAPE TO DISK" PRG - READ FILES BACK FROM TAPE ONTO DISK >"UNBUMP" PRG - STOP DRIVE BUMPING (DOESN'T WORK ON 8250) >"UNCOMPACT" PRG - FILE NCOMPACTOR - MACHINE CODE >"UNCOMPACTOR" PRG - DITTO COMPILED >"UNICOPY 4.0" PRG - COPY TO DISK OR TAPE >"UNICOPY INST" PRG - INSTRUCTIONS FOR ABOVE >"UNIV'L ROM TEST" PRG - CHECK FOR HARD AND SOFT ROM TYPES "VARIABLE INDEX" PRG - PICK UP VARIABLES FROM CROSS-REF FILE "VARIABLE MERGE" PRG - MERGE LISTS FROM ABOVE >"VERIFY DISK" PRG - VERIFY FILES ACROSS DISKS >"VERIFY M-L" PRG - IMON'S COMPARE BINARY FILES UTILITY >"VERIFY SRC" PRG - IMON'S COMPARE SOURCE FILES UTILITY >"VERIFY.GT" PRG - IMON'S COMPILED & ENHANCED VERSION "PRINTDPSFILES" PRG - NDEX RINTER FOR PRINTER 644 BLOCKS FREE. CTIONS FOR ABOVE >"UNIV'L ROM TEST" PRG - CHECK FOR HARD AND SOFT ROM TYPES "VARIABLE INDEX" PRG - PICK UP VARIABLES FROM CROSS-REF FILE "VARIABLE MER&d ** STRING THING (UNIVERSAL) **Kn ** JIM BUTTERFIELD **ox STRING MUST BE FIRST VARIABLEA$"** JOE GRIFFIN **"A$A$A$A$A$A$A$A$A$A$ ABOVE SETS STRING AT MAX (255) 160,2,177,42,153,134,0,200,192,6 208,246,162,1,32,198,255F 32,228,255,201,13,240,15,164,139,145 137,200,132,139,196,136,240,4,165,150,240,234,76,204,255J896937:X:J,X:TTX:JT6108 " ILE PLITTER - BY OE RIFFIN" 15,8,15 "NPUT ILENAME ";FI$6 "HICH RIVE 0";ID$U 1,8,3,ID$":"FI$",S,R"w 550: EN "";: 1: 240 "O. OF LINES PER RECORD 1";LR", "UTPUT ILENAME ";FO$6 (FO$)14 FO$(FO$,14)@ "HICH RIVE 1";OD$#J 2,8,4,OD$":"FO$",S,R",TFS1R^ 550: EN62 "";: 2: 300qh 2: DON'T REALLY WANT ITrNLLR(200LR): NO OF LINES REQUIRED|SL1NF$FO$"/"(64SL) " RITING ILE ";(34);NF$;(34);"" 2,8,4,OD$":"NF$",S,W"2 550: EN "";: 2: 15:;LC0`: NEXT SYS SAME AS 'INPUT#1,A$'o896:RSST: L=SIZE OF INPUT (COULD BE 0)L(139) (A$,L)2,(A$,L);(13); RS0 530LCLC1: LCNL 2:SLSL1: 390  450  1: 2: 157  " *** DONE *** "= T &15,EN,EM$,ET$,ES$l + FS1 FS0: 570 0 EN " ISK RROR : ";EN;EM$ :|SL1NF$FO$"/"(64SL) " RITING ILE ";(34);NF$;(34);"" 20d"ASCII TO WORDPRO JIM BUTTERFIELD"=n15,8,15]x"INPUT ASCII FILE NAME";F$r 1,8,3,F$:15,E E0 1: 120"OUTPUT WORDPRO FILE NAME";F$ 2,8,4,"0:"F$",P,W":15,E E0 2: 1502,(8);(48); 1408 2: 1: 15(0     ` | !"#$%&'()*+,-./0123456789:;<=>?  !"#$%&'()*+,-./0123456789:;<=>?~ !"#$%&'()*+,-./@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ 2: 1: 15(0     `d DSAVE "@BACKUP":? DS$5n 59468,14: (14);;xQ BY JOE GRIFFINW~ FOR SINGLE OR DOUBLE DENSITY DRIVES 9/JUNE/1987"ISK IMING ROGRAM"BY : OE RIFFIN - B "EVICE UMBER OF ISK RIVE 9";UNt"LACE OURCE ISK TO BE OPIED IN RIVE 1"LACE ARGET ISK IN RIVE 0:"PRESS SPACE TO CONTINUE" 158,0SP$:SP$" "280": ,"ISK IMING ROGRAM6:G@ FIND TYPE OF DRIVE IN USE, SET DIRECTORY TRACKMJ:gT 15,UN,15,"U:":TSTI~^ TI(TS60) 350h15,"M-R"(255)(255):#15,A$r (A$)226 T18:DV$"3040":D$"1.2": 430| (A$)213 T18:DV$"4040":D$"2.1": 4303 (A$)254 T18:DV$"2031":D$"2.6": 430d (A$)242 T39:DV$"8050":D$"2.5": 430 (A$)198 T39:DV$"8250":D$"2.7": 430 "NIT"(" "(UN),3)" - RIVE NOT RECOGNISED !":  "NIT"(" "(UN),3)" - ";DV$;" RIVE USING ";D$+ IS1: DV$"8250" IS08 15,"I1"d  532: EN19 IS0 IS1: 560: 450 EN0""EN;B$;" ";T$;" ";S$;" ";D$: 15:240 : TSTI:15,"D0=1": 532:TFTI TE((TFTS3)6):TM(TE600)&! EN19 " ISK RROR ";EN;"- ";B$,T$;" ";S$;" ";D$S! "IME TAKEN =";TM;":";.1(TE600TM)\!  15f! 240l!!15,EN,B$,T$,S$,D$:! *** 8250 => 8050 TRANSITION!& COURTESY OF MICK BIGNALL (THE MEMORY MAN)"0 "ESETTING 8250 DRIVE AS AN 8050"8":15,"M-W"(172)(16)(1)(1) : TELL IT TO BE 8050m"D15,"M-W"(195)(16)(1)(0) : ALLOW 'COLLECT'"N15,"U9" : NMI RESET TO FINISH THE JOB"X " ** ONE ! **""bTI TE((TFTS3)6):TM(TE600)&! EN19 *VS$"970114.A": CHANGE UNIT ADDRESS5(14)_("PROGRAM "VS$" UNIT ADDRESS CHANGE"2"UNIT'S CURRENT ADDRESS NUMBER 8";DO7 15,DO,15:500d"***************************************"o"* *"0p"* "VS$ " UNIT ADDRESS CHANGE *"_q"* *"r"* THIS PROGRAM CHANGES UNIT *"s"* ADDRESS NUMBER TO THE NUMBER THAT *"t"* IS GIVEN BY THE OPERATOR. THIS *"u"* CAN RANGE FROM "RG$ ". THIS IS *"Jv"* A SOFT CHANGE; THUS A RESET OF *"yw"* THE UNIT WILL CAUSE IT TO RESTORE *"x"* TO THE HARD ADDRESS NUMBER (8). *"y"* *"z"* THIS PROGRAM IS APPLICABLE FOR *"5{"* ANY 2031, 2040, 4040, 8050, *"d|"* 8250, 9060, 9090 DISK DRIVE. *"}"* *"~"***************************************""UNIT'S NEW ADDRESS NUMBER 9";DN LB119 260" DN8 DN11 "": 250BDN8 DN15 "": 250n615,"M-W"(LB)(00)(2)(DN32)(DN64)v@15|J*********************************************************************** TYPE OF DRIVE? AND SET LB6 ***********************************************************************o 15,"M-R"(255)(255):#15,C$:C(C$(0)): DOSTYPE  ST 550 : DO= OLD CHANNEL ADDRESS C254 LB119:RG$"8 TO 11":: 2031 RG$"8 TO 15" C226 LB50:: 2040 LB12:- &" UNIT AT ADDRESS"DO"IS NOT RESPONDING"N 0" CHECK POWER AND CABLES "X :15:(DN32)(DN64)v@15|J*********************************************************************** TYPE OF DRIVE? AND SET LB6 ******* CHECK DISK 2.0A 8050 DUAL FLOPPY DISK DRIVEGnDN8: FLOPPY DEVICE NUMBER T(100): BAD TRACK ARRAY S(100): BAD SECTOR ARRAY: : ""9)""(13)9)" CHECK DISK PROGRAM "& "DRIVE NUMBER TO BE VERIFIED";D$5 15,DN,15D# 15,"V"D$`( "VERIFYING DRIVE "D$w-N%(TI)255:A$""2 I1 255:A$A$(255(IN%)):< 900F 2,DN,2,"#"P: 2,A$;UT1:S0Z 15,"B-A:"D$;T;Sd 15,EN,EM$,ET,ES$iES((ES$,2))#n EN0 130;s ET0 200: END]x 15,"B-A:"D$;ET;ES:TET:SESt 15,"U2:2,"D$;T;SNBNB1: "NUMBER OF BLOCKS CHECKED: "NB "CHECKING TRACK "T", SECTOR "S"" 15,EN,EM$,ES,ET EN0 85T(J)T:S(J)S:JJ19 "BAD BLOCK:",T,SB 85Q 15,"I"D$o "INIT DRIVE "D$:900w 2 J0 "NO BAD BLOCKS!": 2,DN,2,"#" "BAD BLOCKS","TRACK","SECTOR" I0 J1 15,"B-A:";D$,T(I);S(I),,T(I),S(I)D ""J"BAD BLOCKS HAVE BEEN ALLOCATED"N 2:d 15,EN,EM$,ET,ESs EN0  "ERROR #"EN,EM$,ET,ES 15,"I"D$B "CHECKING TRACK "T", SECTOR "S"" 15,EN,EM$,ES,ETd "ROSS EFERENCE"Nn " ACHINE ANGUAGE ERSION - IM UTTERFIELD"hsW6:(32808)32W11x1:"AME OF ROGRAM ";N$1,8,3,N$",P,R":#1,X$,Y$ Y$(4)120X$""X$(1)120X$""#1,X$19241"RINTER ";Z$:P3:(Z$)89P4:W11G4,P:4,"ROSS-EF ";N$:208,W:2335Q4:4256(J5):4,L;qJ:4:45):4,L;J:4:4        H $0 <  $$$$$$$$$$$0000000 000 $0 << HH $0 < $0 << $0 < ll$0 < $0 <     0 `  Z Y  )TT ))HTT TUTXh` T`H8 TѺ0Iۥ8 8T֠Ti h``8z { zze{e  8 88  L08`T TѺ0" T : 漥А  0ޠZȱY iȅž忐`zxY&Zz}zzX0zHJJJJ 0 h) 0ƽ `Ž ƽLNONE Xh` T`H8 TѺ0Iۥ8 8T֠Ti h``8z { zze{e  8 88 1049 :CROWFASTL {)U< FFO w=4XaRwmc.  >"[[! b": ^5kWt}!!  .! }GLJel)q~*x 7 r 6L!h"""R#676   L LL?<=l<8):cabmLm^_`abcL&):&c&a&bmLm&^&_&`&a&b&cL4);kijLfghijkL&);&k&i&jL&f&g&h&i&j&kLL  :0 U: Q ¥abL/ ȑc/aȱb abȑbcabLmm8 Yͥba(^?"ɐ)  %` 𒨹 %_`^_`abcLʆL&e:&x0 a&b&L_&/-&,&,ȩ,c/aȱb _Șabȩ&bc_&a&b&L:Р&, Q ¤,Lmm8 Yͥba(^E"ɐ)  %` 𾪽 %_`^&_&`&a&b&c&L&J&&L6)LLOLL6LeLLtLLȄ:6bȱ6a6i67LȄ;6jȱ6i6i67L6]:6i66e;L[aȄ:6b67LiȄ;6j6й7L67icbȱ6aeb677:L"67ikjȱ6iej677;L"ȱ6ȱ676Ln: L  :La - ~L _8b ba ab} ba} a _ _i/S оS abS c` ߺL b :bL b8Ɛ  :Labc $L8 Iiע ʆL$: h(hjhiHHEiHjHaHbHHL D hإa3b2 Z  ¥aibj3a2bL HHE r 32 r HL Bh Z HHE r 2L1 hh LC hX,)?$,0p"-:  - LW >bȱ>a a >bȄ:HVH8e>>?`>?Ȅ `*Lϳ>?bȄc:ȱ>")?a$"pȘ LW%>%?L: ab :` tƅbL: Q  : L: aͨ: IbaL:ca ~La0bȈ`: )L I ,:  L  L  L  L  L  L  ,LHH: a0>clb -l Gl: ¥ab,h$hhL: ¥aLs` ¥ab` Z c L -ɠ,L: abL?c L= -:baL t 0 :)bLWL :Ȫ2Ȅ3 L; b, A b- A: baL -ɠE,%-L,L  ,6-7 ܵ8LⷠԠӠ\^#aѥbڥc A b A b A b cL b L b L b L Lh >ۆ`a:bc` bP;<> >` b8<`>Ҏ=;<ю:?` b 6`  ,?-@`Ls b=> @>`=:L1ڥ҅  }L bŅ`: -`ab`##`6     L 0>VcOڱkڑڄہ_lۉ; ab :` `:;.iaiajbjb`; Q͢]e]em` Lrab :Lr -, :`:bIbaIabaLcIcL:%;b,ejba-eiapL:; CcEkl^ L L:%;8b,jbba-iaapL:; CcEkl^ L L(:%;8b,jba-iap L:; CcEkl^ ɥcIcL La:%;{i3j2f_`ghBCb,a-Ei"Fafb_ej_`ei`geBgheChj&i&B&C֥_b`aE"0hgh fLLfL:; CcEkl^ aL32  L U::%;ab :cEkl^ HL:; CL;:%;ki3j2bL,-,L^ȱ,c _ȱ,`ȱ,aȱ,b:L,: ¥b a*eFeG,DL,-:,aȱ,bL,: ¥b a*ebeaeFeG,JL-,:ȱ,aȱ,bȱ,cL  LK  L  L  ;,iȱ,jL  ,fȱ,k gȱ,hȱ,iȱ,j;L  ,iȱ,jȱ,kL66i676: Q  aȥbL66i676:0OaȑȥbLmm Q   LT^bӥ_Ȧc0)ȥ`ȥaȥbL/-,,ȑ,c/aȱb abȥbcbaL6Fȱ6G6i67L"6,6i676-`": :8F2Gʆ32#,-Fafb ,e#,-e$-#&$; },ejb-eia"P%0 L >LJL[%0DL 'd  %6%7%.%/%>%?% & ʅ΍%L!&!5140%>%?!,!-,ɖܩ&!!i!!!!>%%%s!%t!s!t!t!s!%,%-,3,2,d2,2,2,i,-` ԵL ܵL6,ȱ6-ȱ6,ȱ6,ȱ6e667L"6#ȱ6$6i67##Hȱ#Hȱ#HH #HH#H$HHLy#Lͳhh-h,h,h,h,h,Lh,L  6H7HH,6ȱ,7L"676,- &- &- &-8,,-8-i&-,):,c,b,aL,c,b,a,`,_,^L676,- &- &- &-8,,-8-i&-,);,k,j,iL,k,j,i,h,g,fL676#$ &$ &$ &$8##$8$i&$#X:#0Vb#a#Lmm8 Y # Q L#c#b#a#`#_#^#L:Ь͠#/3#2#2ȑ2c/ aȱb a#i$bȊbc#b#a#L:baL;jiL-  ) , e,,ȱ)e,- j;iLb:aL-  ȱ- ijkLa:bcL,  u `a0, :L; uL ͠" u [32nZ$ Р ":L; uLaLsåbc rL^%]:L^%e;LڡiG<)FȘЇ/-CBȹȄά&RjneR> e.ы*R? Re.ы*R@ e.ы***.?)RRRRRC_F F FPART OF F# CURRENT LINE - EDIT OR F R ˊ &F^-------F^RRRRRRC_eRHcF:#ˊ &F Ь& F:)a`aF!×`rs!#F STRING TOO LONG Cљ.F!ˊ &R!Ь& !R#˞ &F՞kRUPLo t R+  R+Rˊ &F ,& +k+ 4ΞkFB,# CN+`! F a0,N+Fd, CN+`N+Fѓ, Cz+R a`z+F,! CN+O aN+F ,RUU`# #`C0,FѬ-F-2N+sz+FFFF-RUU` `CN+FѬ-Fa-rz+Fq-`N+Fф-Fa`N+F р.U UUz+3sѹ-1.U U1.UUߌz+FFK.FFFK.FR a`K.FFFF# Cz+Fh!×ha`z+RRRRRC_O !×aљ.!i!ëeӑaN+F ,RUU`# #`C0,FѬ-F-2N+sz+FFFF-RUU` `CN+FѬ-Fa-rz+Fq-`N+Fф-Fa`N+F р.U UUzGf ***************************************************************g * 'CRASH-PROOF' DATA INPUT ROUTINE BY JOE GRIFFIN *h * *i * USER SUPPLIES : Z1 - COLUMN AT WHICH FIRST COLON APPEARS *_j * Z2 - SCREEN ROW ON WHICH PROMPT APPEARS *k * Z3 - WIDTH OF INPUT FIELD *l * *1m * COMPUTER RETURNS : B$ - INPUT STRING *wn * *o ***************************************************************p 226,0: 224,21: 57439: SET WINDOW z " ";F I1 9: "^-------";:: SHOW TABSP "^" 226,3: 224,23: 57439:RT0:Z372: SET WINDOW ":";: I1 Z3: " ";: I: ":";: MARK OUT WIDTHB$IN$:B1: SET NEW STRINGY ZR ZR0:B$ZR$:ZR$"":B1(B$): OVERFLOW STRINGZL0:ZT0: START OF STRING (B$)Z3 " STRING TOO LONG";: 59044: 6630#  "";: DISPLAY ITN  I1 (B$): 205,1: (B$,I,1);: Im  (SP$,Z3(B$));: 205,0  I0 Z3: "";: Z00:PC3276880(216)(198) CC(PCB): RESERVE CHARACTER-  167,0: TURN CURSOR ONG  ZA$: ZA$"" 6160  167,1: CURSOR OFF AGAIN B PCB,CC:Z00 L ZA$(29) 6270: CURSOR RIGHT V BZ3 59044: 6080 `BB1 j B(B$) B$B$" ": 6250& t 6080[ ~ ZA$(157) 6300: CURSOR LEFTv  B1 59044: 6080 BB1: 6080  ZA$(20) 6330: DELETE CHAR  B1 59044: 6090 B$(B$,B2)(B$,B):BB1: 60902  ZA$(148) 6360: INSERT CHARR  (B$)Z3 59044: 6080v B$(B$,B1)" "(B$,B): 6080  ZA$(9) 6390: TAB B8((B7)8)1: BZ3 BZ3: 59044  6250  ZA$(18) 6570: REVERSE ONC  ZA$(17) 6430: CURSOR DOWN  ZL 6080: CLEAR SHIFT LOCK ZT1: 6090: SHIFT NEXT CHAR  ZA$(27) ZA$(250): ESCAPE TOKEN FOR TEXT FILE0( ZA$(44) ZA$(108): DUMMY COMMAc- ZA$(34) ZA$(98): DUMMY QUOTES2 ZA$(137) 6480: SET/CLEAR TAB(TAB LEFT)<B8((B2)8)1: B1 B1: 59044F 6080 P ZA$(146) 6570: REVERSE OFF@Z ZA$(145) 6510: CURSOR UPxdZL1: 6090: SHIFT LOCKn ZA$(19) 6530: HOME CURSORxB1: 6080 ZA$(147) 6550: CLEAR SCREENB$"":B1: 60807 ZA$(13) 6630: RETURNj (ZA$)32 ((ZA$)127 (ZA$)160) 6090 (ZL) (ZT) ZT0: 6572 6580 (ZA$)128 ZA$((ZA$)128): 6580 (ZA$)192 (ZA$)223 6090 B1 ZA$(17)ZA$(145): 6600D (B$,B1)(145) ZA$(17)ZA$(145): 6600yZA$ZA$(145):B$(B$,B2)(B$,B):BB1: 6600 ZA$(222) ZA$(255) ZA$(223) ZA$(254) BZ3 59044: 6680C$"": B(B$)1 C$(B$,B1): SAVE THE RESTNB$(B$,B1)ZA$C$:BB(ZA$): 6090: ADD TOGETHERZ ""; I1 Z1Z32: "";:: REPOSITION TO I1 Z2: "";:: END OF INPUTIN$B$: (B$)0 RT1 CM$"I" 59044: 6080"B$B$ZA$),SPZ3: IZ3 1 1H6 (B$,I,1)" " SPI:I1P@ IvJZR$(B$,SP1):ZR1:B$(B$,SP1)T 66302) ZA$(255) ZA$(223) ZA$(254) BZ3 59044: 6680C$"": B(B$2 "DISK DRIVE UNIT NUMBER 8";DN: 635,DNI 2521::DDST V2.0p "''''''''''''''''''''''''''''''''' " HIS DISK DIRECTORY ASCII SORTING" PROGRAM COMES TO YOU WITH THE" COMPLIMENTS OF ICK IGNELL" (PET SERVICE & MEMORY UPGRADE MAN).1" ''''''''''''''''''''''''''''''''''T" THE PROGRAM IS IN THE PUBLICx" DOMAIN AND MAY BE DISTRIBUTED" FREELY TO ANYONE WHO WANTS A COPY." ''''''''''''''''''''''''''''''''''" SUITABLE FOR:- S 2,3 & 4 " WITH 9" VDUS, FAT 40'S(" & 80 COLUMN MACHINES.."W" DRIVES WITH DOS 2.1, 2.2, 2.5~" & 2.7 (2040/3040 UPGRADED, 4040," 8050 AND 8250) ARE SUPPORTED." ''''''''''''''''''''''''''''''''''" HEN THE PROGRAM IS RUN A COPY OF" THE ORIGINAL BAM AND DIRECTORYA " BLOCKS ARE STORED ON DRIVE #1 AS Ai!" SEQUENTIAL FILE. HIS ALLOWS THE"" POSSIBILITY OF RESTORING THE#" DIRECTORY TO ITS ORIGINAL STATE$" IF REQUIRED USING "DD ".%" ''''''''''''''''''''''''''''''''''&" LACED IN THE IBRARY?'" WHENCE IT HAS BEEN MODIFIED^(" FOR USE WITH 8250 DRIVESu)" BY : OE RIFFIN*" OFTWARE IBRARIAN+" 21 ULY 1985," '''''''''''''''''''''''''''''''''' -" NY PROBLEMS CONTACT ICK BIGNELL% ." AT:- T /" 7 LYDESDALE LOSE,| 0" OREHAMWOOD, 1" ERTS, 6 2. NGLAND. 2" TEL: 01-953-8385LA llllllllllLLLLLcLLLCLLLLmLLL$LLL(LoLܠ BO)?` Lu  M© 0zѩ҅ӭ{ԩĠ ڄ  k @ ? ѩ҅ӭ{ԩ ڄ  ɷ L0 +x L^< ? > '< >  I 0z ? @  & I 1z  &ѩ҅ӭ{ԩƠ ڄ *z & [ > ) 豼) ѩ҅ӭ{ԩ ڄ  | ||6 }3   1LP &c > 0 [ [ ?  @  [ [  [  &L= Ƞ u u 0z & ȱ` 1z &`M-WM-WU9U:#U1:2,0 U2:2,0 B-P:2,0 M-RDISK ERROR ON DRIVE #? 1:NAME=13 CHARSID,S,W THE FIRST FILE NAME ON THIS DISK IS: > bb PRG < WANT IT KEPT THE FIRST? (Y/N) THE DOS IN THIS DRIVE NOT RECOGNISED! ONLY DOS 2.1/2.2 (3040/4040), DOS 2.5 (8050) AND DOS 2.7 (8050/8250) ARE SUPPORTED BY THIS PROGRAM. NO VALID FILE EXISTS ON THIS DISKETTE! DO YOU WANT THE DIRECTORY SUB-SORTED INTO FILE TYPES (Y/N)  DISK DIRECTORY SORTING PROGRAM BY MGB. INSERT THE DISKETTE TO BE SORTED IN DRIVE #0, AND A SPARE DISKETTE IN DRIVE #1 FOR STORING DIRECTORY DATA.  **** HIT ANY KEY WHEN READY. **** ** PROGRAM ABORTED! ** INSUFFICIENT MEMORY AVAILABLE. ERROR DETECTED IN LINK ADDRESS BYTE! ILLEGAL FILE TYPE IN DIRECTORY. FUNCTION COMPLETED O.K. ANOTHER DIRECTORY TO SORT? **** THE BASIC IN THIS MACHINE IS NOT RECOGNISED! PROGRAM ABORTED. **** 8eƿ54LL^ƿŹ𥹅< mL^濥Żݥ  ŵ i i 潥ŹӥŸźŻL^0 e濥Ź륾ŸL^ɂC"  P Ni 潩Y,N  - YN,  i Ż źL>Ѽ6ȱ/Ѿ))ųi Ż¥źHh i L  | | |2`z | 0  L ` `? 0@ L7 {ԩo  {ԩo  {ԩo  ѩ҅ӭ{ԩƠ ڄ *z &<  ؠ    Р u u 0z &ȱ濥<    YLA 0zѩ҅ӭ{ԩĠ ڄ  `?  I 0z   | | |26|6@ `LM | 0  L ` `? 0@ L7 {ԩo  {ԩo %dE0:WF0:T0:S0:NT0:NS0:320=n15,E,EM$,ET$,ES$:qx"DISK ERROR:-"E", "EM$", T-"ET$", S-"ES$"": DD RESTORE' BY MICK BIGNELL . V1 [10/8/82] * TEL: 019538385. WARNING!! DO ALTER H THIS ING UNLESS YOU ARE FAMILIAR WITH THE z WKINGS OF THE DISK DRIVES THE MATTING  OF DISKS, LOSS & CORRUPTION MAY OCCUR. *  VARIOUS MODS BY JOE GRFIN . V2 [21785] Q  THIS PROGRAM HAS BEEN MODIED BY JOE GRFIN,  ALLOW USE WITH 4040, 8050 8250 DRIVES.  ' LIKE DD ST THIS PROGRAM REDERS 8050 DISKS \ THE 8250, WITHOUT SPECIAL PRECAUTIS  THIS PROGRAM IS RESRING THE OF /" A DISK, (PREVIOUSLY STED WITH DD SORT'), *b, ITS IGINAL UNSTED CDITI. 6@A0:BP0:Q0:X0:RS(144):IRS:K(145)JI46K230I85K228X3( TEM$"":ET$"":ES$"":B$"":ID$"":N$"":A$"":NL$(0):SN$""n ^"";: SCREEN FORMAT FOR 80 COLUMN MACHINES h" DIRECTORY RESTORE PROGRAM BY MGB. " m "DISK DRIVE UNIT NUMBER 8";UN r" INSERT THE DISKETTE TO BE RESTORED IN# |" DRIVE #0 AND THE DATA DISKETTE, WITH"S " THE RELEVANT SEQ FILE, IN TO DRIVE #1." " **** HIT ANY KEY WHEN READY. **** ":158,0 A$:A$""410 15,UN,15  ******************  * CHECK DOS TYPE *  ******************& 15,"M-R"(252)(255):#15,A$:A(A$NL$)L A43T18:BP144:Q1:510: 4040r A213T39:BP6:Q3:510: 8050 A183T39:BP6:Q5:510: 8250 "DOS NOT RECOGNISED";A:1100 15,"I0":110:E0540  E66 A183 Q3: 540: 8050 DISK IN 8250 !A 120:"ON DRIVE #0. [USE 'DD RECLAIM'].":1100q 15,"I1":110:E120:"ON DRIVE #1.":1100 &***************************************** 0***** GET DISK NAME & ID FROM HEADER **** :***************************************** D2,UN,2,"#":110:E1100? N15,"U1:";2;0;T;S:110:E0610v X120:"CAN'T READ HEADER BLOCK ON DRIVE #0.":1100 b15,"B-P:"2;BP:N$"":I012:#2,A$:A(A$NL$)127 lN$N$(A)::15,"B-P:"2;BP18:ID$"":I01 v#2,A$:A(A$NL$)127:ID$ID$(A):7I1981931:SN$"1:"N$(I)ID$",S,R"^"OPENING FILE:- '"(SN$,3,16)"'"~3,UN,3,SN$:110:E623:::E"FILE NOT FOUND ON DRIVE #1.":1100****************************** COMPARE BAM WITH SEQ DATA ******************************-"CHECKING BAM."XI1Q:15,"U1:";2;0;T;S:110:E0740120:"CAN'T READ BAM BLOCK(S) ON DRIVE #0.":1100K0255:#3,A$:#2,B$:A$B$:830"THE BAM ON DRIVE #0 IS NOT THE SAME AS""THE ONE STORED AS DATA ON DRIVE #1."A"THIS MAY BE DUE TO A 'WRITE' OPERATION"n "TO THE DISKETTE SINCE SORTING, OR THE""DATA DISK IN DRIVE #1 DOES NOT HAVE" "THE MOST RECENT FILE PRESENT."*"TO CONTINUE WOULD CAUSE LOSS OF DATA."411001>15,"B-P";2;0:#2,A$:#2,B$:T(A$NL$):S(B$NL$):\H"HEADER AND BAM BLOCK(S) CHECK O.K."R ********************************\ * READ DIRECTORY FROM SEQ FILE *f * AND WRITE IT TO DRIVE #0 *p ********************************z"WRITING ORIGINAL DIRECTORY"I"TO DRIVE #0. ";:X"(RUN/STOP HAS BEEN"uX"TEMPORARILY DISABLED).";:144,RS3}:#3,A$:#3,B$:NT(A$NL$):NS(B$NL$)NT0BP144NT18BP6NT391000"ERROR IN SEQ FILE ON DRIVE #1.""ILLEGAL 'NEXT TRACK' POINTER."IWF" CORRECT THE ERROR AND RUN AGAIN."wWF" DIRECTORY IS CORRUPT!!! "110015,"B-P:"2;0:2,(NT)(NS);"WRITING TRACK"T", SECTOR"S" "I2255:#3,A$:A$""A$NL$2,A$;::110:E010508120:"CAN'T READ SEQ FILE DRIVE #1.":970]15,"U2:";2;0;T;S:110:E0WF1$E25120:"FATAL ERROR! [USE 'DD RECLAIM']":980.E120:"CORRECT THE ERROR AND RUN AGAIN.":9808NTTNT:SNS:930B" *** FUNCTION COMPLETED. *** ":11107L" >>> PROGRAM ABORTED <<<"RV144,RS:15,"U:":2:3v`15:"";110015,"B-P:"2;0:2,(NT)(NS);"WRITING TRACK"T", SECTOR"S" "I2255:#3,A$:  307"@1:DELETE ALL",8 :"1:DELETE ALL",8 :Q"ISK ELETE LL"("ODIFIED FROM A UTTERFIELD MASTERPIECE BY ETER PENCER2 L%(232),N$(232),T%(232)<"N NIT 8";FF620PF$D$nx6801:15: 15,F,15:15,"I"F$650:"OLD DOWN 'Y' OR 'N' KEY TO SELECT"["PROGRAMS TO BE DELETED..."n 1,F,0,"$"F$650:E:130N0:R255:Z89:750:210770L%XY256#1,X$:X$""400X$(34)220N$""#1,X$:X$(34)270N$N$X$:250*#1,X$:X$""200FX(X$):(X127)32270]"#1,X$:X$""290, ( X80X83 ) ( X82 X85 ) 2006N$;18);(X)@P(151)RJZ$:Z$""P255370TZ$"Y"Z$"N"Z(Z$):R255:370^Z$(13)R0:370 h3307rZ80" ":200[|NN1:L%(N)L%:N$(N)N$:T%(N)Xd200}1:15:" * * * * *":J1N L%=L%(J):T%=T%(J):IFL>L%GOTO480 PRINT"*** OUTPUT DISK FULL" INPUT"DO YOU HAVE A NEW ONE";Z$ IFASC(Z$)<>89THENEND. GOSUB680:GOTO430;15,F,15iN$(J);(" ",17(N$(J)));15,"S"F$":"N$(J)LLL%650:E E$;E1 : 560N$(J)""650:E E$;E;E1;E2 : 560&""015:JD 680 NX(0):"ANOTHER DISK READY";Z$/ X(Z$)89 1205 bJ l"DRIVE 0";DZ vDDD620k D$(D48):~ 15,E,E$,E1,E2 E0E(ST 191):E$"*ST*"    15,F,15 15,"I"F$:1,F,0,"$"F$":!#$%&" 650:E:680 750 LXY256:"(";L;"BLOCKS FREE )", 1:15:F #1,X$,X$,X$,X$,X$,X$] #1,X$:X$""760n #1,X$,X$,X$ X(X$):XX(X$) #1,X$:Y(X$):YY(X$) J)""650:E E$;E;E1;E2 : 560&""015:JD 68d DISK CONTENTS-n 59468,14: (14);Ax TOM CRANSTOUNT OCTOBER 1981Zx MODIFIED BY JOE GRIFFIN~ FOR SINGLE OR DOUBLE DENSITY DRIVES 7/APRIL/1984""ISK IRECTORY ONTENTS ISTING ROGRAM(I"BY : OE RIFFIN - w "EVICE UMBER OF ISK RIVE 8";UN"LACE ISK TO BE ISTED IN RIVE 0:"PRESS SPACE TO CONTINUE""SP$:SP$" "290,:6"ISK IRECTORY ONTENTS ISTING ROGRAM@:RJ FIND TYPE OF DRIVE IN USE, SET DIRECTORY TRACKXT:^ 15,UN,15:15,"M-R"(255)(255):#15,A$h (A$)226 T18:DV$"3040":D$"1.2": 420r (A$)213 T18:DV$"4040":D$"2.1": 420| (A$)254 T18:DV$"2031":D$"2.6": 420I (A$)242 T39:DV$"8050":D$"2.5": 420z (A$)198 T39:DV$"8250":D$"2.7": 420 "NIT"(" "(UN),3)" - RIVE NOT RECOGNISED !": "NIT"(" "(UN),3)" - ";DV$;" RIVE USING ";D$;"":15,"I0":IS0<15,EN,B$,C$: EN19 IS0 IS1: 450]EN0""B$: 15:260c:yCH$(256),T$(100)8,UN,8,"#15,EN,B$: EN EN;B$:S1:15,"U1:8,0,"T;S15,EN,B$: EN EN;B$:&:0: :I1256 D#8,CH$(I), NCH$(I)""CH$(I)(0)2 X8 b:H lI325632R vN$""b JI3I19 CH$(J)(160)JJ18:670 N$N$CH$(J)  (N$)0JJ16:880  (N$)17 N$(N$,16)  (CH$(I))129 "";:QQ1  " ";N$;" ";  (CH$(I))129 "";J  (" ",20(N$));g  (CH$(I))129 "";p Z1  CH$(I)(0) X$"SCR":Z0  CH$(I)(1) X$"PRG UNCLOSED":Z0  CH$(I)(2) X$"SEQ UNCLOSED":Z0  CH$(I)(3) X$"USR UNCLOSED":Z09  CH$(I)(4) X$"REL UNCLOSED":Z0e * CH$(I)(128) X$"SCR UNCLOSED":Z0 4 CH$(I)(130) X$"PRG":Z0 > CH$(I)(129) X$"SEQ":Z0 H CH$(I)(131) X$"USR":Z0 R CH$(I)(132) X$"REL":Z0 \Z1X$"---" f X$ p z: :2 AN$"END"9508 :M CH$(1)(0)950b S(CH$(2)):530h : ""Q"CRATCHED ILE";  Q1 "S HAVE";  Q1 " HAS"; " BEEN IDENTIFIED  8: 15  "PRESS  RETURN TO END"  X$: X$(13) 1020+ "ROGRAM OMPLETE"1 0e * CH$(I)(128) X$"SCR UNCLOSED":Z0 4 CH$(I)(130) X$"PRG":Z0 > CH$(I)(129) X$"SEQ":Z0 H CH$(I)(131) X$"USR":Z0 R CH$(I)(132) X$"REL":Z 400"RUN":500525b "SAVE ON DRIVE #";A:A$"DISK FILE RECVRY":A0A110 B$(A)":"A$:15,8,15,"S"B$:15:A$" SCRATCHED B$,8:B$,8:A$" SAVED AND VERIFIED": ****************************** * *4 * DISK FILE RETRIEVER *Y * *~ * BY DAVID CONE * * * * COMPUTE #10 - MARCH 1981 * * * ******************************3 * PUT DISK WITH LOST FILESV * INTO DRIVE 1. THIS PROGRAMy * WILL THEN SEARCH FOR FILES * IN TRACKS 17-1 & 19-35 AND * RETURN THE START BLOCK, END * BLOCK, AND NUMBER OF BLOCKS. * THE FIRST 256 BYTES OF ANY( * FILE MAY BE EXAMINED TOF * ALLOW IDENTIFICATION.i * ANY IDENTIFIED FILE CAN BE * COPIED ON TO DRIVE #0. ****************************** * USAGE: DRIVES: * DRIVE 0: GOOD DISK * DRIVE 1: DAMAGED DISK * LOGICAL FILES:? * 1: WRITE FROM KEYBOARD\ * 8: READ FROM DISKx * 9: WRITE TO DISK * 15: DISK CONTROL * DISK CHANNEL: 2 * DISK BUFFER: #2 (1900-19FF) ******************************  * PROGRAM ENTRY POINTS8  * 10 - SAVE & VERIFY PRGM]  * 1000 - PRINT SUMMARY TABLEv  * 1100 - CHOICES  ******************************  ** NUMERICAL VARIABLES P(0)0: PRESENT TRACK # P(1)0: PRESENT SECTOR # L(0)0: TRACK LINK$ L(1)0: SECTOR LINKG SR17: START TRACK (17 OR 19)] SP00: END TRACK SM20: MAX # OF SCTRS IN TRACK TRSR: VARIABLE TRACK VALUE :M01: SEQUENCE # MM50: MAX # OF SEQUENCES :N00: # OF BLOCKS IN SEQ PS00: START OF BASIC/ PL00: 1ST LINK POINTERJ PN00: REM 1ST LINE #f ES00: ERROR IN SECTOR ET00: ERROR IN TRACK EL00: DISK ERROR IN LINE # : : A,J,K GENERAL VARIABLES  **  ** STRING VARIABLES : : A$,Z$ GENERAL VARIABLES- B$"": CONT RUN VARIABLEH F$"": NEW FILE NAMEj T$"": TYPE OF FILE CREATED EN$"00" : DISK ERROR # EM$" OK": DISK ERROR MESSAGE S$"": STRING UTILITY H$"0123456789ABCDEF": HEX DGTS ZG$"GOTO5": STRING UTILITY ? **9 @ ** MATRIX VARIABLES\ AD%(35,20,3): BLOCK POINTERS B: ^ ^ 0,1 IN TRK & BLK PNTRS C: ^ ^ 2,3OUT TRK & BLK PNTRS D: ^ 20-BLOCK NUMBER E: 35- - -TRACK NUMBER FS%(MM,4): SEQUENCE DATA!G: 0,1 START TRACK & BLOCKBH: 2 NUMBER OF BLOCKSfI: 3,4 END TRACK & BLOCKoN **S15,8,15:EL595:5100X ** PAGE 1/INTRODUCTION,TRACKS]1,0:ZG$:9)"DISK RECOVERY PROGRAM b" PUT DISK FOR RECOVERY IN DRIVE 1:g" HIT ANY KEY WHEN DISK IS IN PLACE.ll" (DISK WILL THEN BE INITIALIZED)":4000q15,"I1":EL625:5100v" START: TRACK 17 (DOWN) OR 19 (UP)? 17";:1,SR:{SR17SR19"":6307)"END SEARCH AT TRACK: ";:1,SP:>SR17SP1SP16"":640bSR19SP20SP35"":640u1:J11000: ** PAGE 2/DESCRIPTION59468,14:ZG$:"RACKS"SR"TO"SP"WILL NOW BE SEARCHED FOR"FILES. HE INITIAL AND ENDING BLOCKS,"AND THE LENGTH OF EACH RECOVERED FILEV"ARE RECORDED. (RACK SUMMARIES AREm"ALSO DISPLAYED)."HIS SEARCH CAN RUN CONTINUOUSLY, BE"HALTED AFTER EACH OPERATION, HAVE A"PAUSE AFTER EACH OPERATION, OR BE ENDED""WITH A JUMP TO THE SUMMARY.A" YPE Ò FOR CONTINUOUS RUNNINGk" YPE Ȓ FOR HALT IN OPERATION" YPE В FOR PAUSES IN OPERATION" YPE Ӓ TO ESCAPE TO SUMMARY"PERATIONAL MODE MAY BE CHANGED DURING*"THE SEARCH BY TYPING THE ABOVE COMMANDS AT ANY TIME.:4000:B$A$WZG$:59468,12:TRSR:M1t8,8,2,"#2":EL696:5100 ** FIND INITIATOR BLOCKSP(0)TR:5010: @ GET NUMBER OF BLOCKS IN TRACK TR K0SM:P(1)K: @ SEARCH TRK :D%(P(0),P(1),2)0735+:5020: @ GET LNKS/OUT PTRSf:L(0)0D%(P(0),P(1),2)64:735: @ END OF FILE FOUND:5040: @ IN PTRS TO NXT BLK4060: @ TRACK TABLE ** FOLLOW LINKS FOR EACH STARTP(0)TRK0SM:P(1)K:N1 :D%(P(0),P(1),0)0835,:S%(M,0)P(0):S%(M,1)P(1)I:4010: @ PRINT DISPLAYh:""14)S$N,S$P(0),S$P(1) :5020: @ GET LINKS:L(0)0D%(P(0),P(1),2)64:805:5040: @ IN PTRS TO LNK BLK:P(0)L(0):P(1)L(1):NN1 :775%: @ CLOSE END OF LINK SEQUENCE1*:S%(M,2)N:S%(M,3)P(0)C/:S%(M,4)P(1)c4:4020: @ COMPLETE DISPLAYu9:B$"S"KSM>:MM1:P(0)TR: @ RESETSCHB$"S"1000MTRTR1:SR19TRTR2: @ GO ON TO NEXT TRACKR @ TEST FOR END TRACKWSR17TRSP1000$\SR19TRSP1000-a700H ** PRINT OUT SUMMARYWK0:B$"H"vZG$;:11)"FILE SUMMARY"SEQ #","BLOCKS"," START "," FINISH,,"TR SEC","TR SECJ115K1515K:JM1J1515K:1045  :4040: @ FORMAT NUMBERS':" "J," "S%(J,2),A$,Z$-BKK1:"":4030PJM1010aL ** CHOICESQZG$:"CHOICES: LOOK: FIRST 240 BYTESV12)"SUMMARY REVIEW[12)"RETRIEVE A FILE`12)"B SCAN OTHER BAND e12)"^ DIFFERENT DISK%j12)"EXIT PROGRAM<o4000:A$"L"1200MtA$"S"1000^yA$"R"1500r~A$"B"8:600A$"^"4050:400A$"E"4050:ZG$:1135 ** GET 1ST PAGE OF FILE DATA"INPUT TRACK, SECTOR";J,KJ35J11100$P(0)J:5010:K0KSM1100HP(1)K:5020: @ LNKS L(0) L(1)tA2:5070: @ READ NEXT BYTES (SET BP)5050:PSA: @ START BASIC5050:PLA: @ 1ST PROG LINK5050:PNA: @ 1ST LINE #A2:5070: @ GET STRINGZ$""J0250!:#8,A$:5060:Z$Z$A$'AZ$(L(0))(L(1))Z$oZG$12)"FIRST PAGE DATA": @ PRINT DATA,,"TRACK","SECTOR"INITIAL BLOCK",P(0),P(1) 15)"BYTES""BLOCK POINTER"16)"0&1",L(0),L(1)20)"DECIMAL VALUE"PRGRM START"16)"2&3"23)PS;"1ST LINK"16)"4&5"23)PL\#"1ST LINE #"16)"6&7"23)PNn("HEX VALUESy-J052:A8J:5080:" "A$" : ";7:K07<::A((Z$,8JK1,1))A::5080:A$" ";F::KP"CHARACTER VALUES:UK0ZJ180+_:A((Z$,J80K,1))6d:5090<ijn" 'C' TO CONTINUE: +/- CHANGE LINE SCANs4000:A$"C"1100xA$"+"K2"";:KK1:1370}A$"-"K0"";:KK1:13701395 ** RETRIEVE A FILE"STARTING TRACK, SECTOR";J,K&J35J11100MP(0)J:P(1)K:5010:K0KSM1100jZG$10)"FILE RETRIEVAL"RETRIEVING THE FILE STARTING AT:3)"TRACK "P(0)""20)"SECTOR "P(1)"NAME FOR RETRIEVED FILE:":" ";F$"IS THIS A PROGRAM OR A SEQUENTIAL FILEK 4000:A$"P"T$"PRG":" PROGRAM":1560xA$"S"T$"SEQ":" SEQUENTIAL":15601545"PUT GOOD DISK WITH SUFFICIENT BLOCKS IN DRIVE 0"INITIALIZE? (Y/N)":4000 "A$"Y"15,"I0":EL1535:5100 '4030; ,"IS EVERYTHING OK? TYPE 'C' TO GO!k 1" (ANY OTHER LETTER WILL ABORT)":4000} 6A$"C"1100 ; ** RETRIEVE PROGRAM @9,8,4,"0:"F$","T$",WRITE":EL1600:5100 EEL1555:5100!J"COPYING TRACK:"P(0)21)"SECTOR:"P(1)1!O5020:P(0)L(0):P(1)L(1): @ GET LINKSJ!TA255:P(0)0AP(1)U!YJ2Ao!^:15,"M-R";(J);(19)!c:#15,A$:5060!h:9,A$;!m:EL1570!rP(0)01610: @ GET NEXT BLOCK!w9:"FILE RECOVERED":4030:1100! ** GET AND HOLD"A010:A$:%"A$:A$""4002X" @ SCREEN DUMP:IFA$=""THENGOSUB'SCREEN DUMP'd"A(A$)j"" ** PRINT DISPLAY OF RECOVERED SEQUENCES"ZG$:7)"RECOVERED DISK SEQUENCES"12)"SEQUENCE"M #,,"TRACK","SECTOR":"START",,S%(M,0),S%(M,1)##"PRESENT BLOCK":># ** BOTTOM OF DISPLAY\#"END",,S%(M,3),S%(M,4)}#"NUMBER OF BLOCKS",S%(M,2)#" (C-CONT P-PAUSE H-HALT S-SUMMARY#4070:# ** TYPE ANY KEY---#7)"TYPE ANY KEY TO CONTINUE":4000:$ ** FORMAT NUMBERSF$A$""((S%(J,0)),2)" "((S%(J,1)),2)"s$Z$((S%(J,3)),2)" "((S%(J,4)),2)y$$ ** CLOSE FILES$15,"B-P,2,0":8:15:$ ** PRINT TRACK SUMMARY TABLE$ZG$:8)"TRACK "TR"SUMMARY TABLE"%"SEC TR IN SC TR OUT SC9%J0SM:J;:K03S%59K)D%(P(0),J,K);o%::""4)""14)"":{%4070:% ** PAUSE/STOP CONTROL%A$:A$"H" A$"C"A$"P"A$"S"B$A$%B$"H"4030:%B$"P"J05000:&A$:A$""4003:'&A$"H"A$"C"A$"S"B$A$-&P& ** NUMBER OF BLOCKS IN TRACKi&SM16:P(0)31SM17|&P(0)25SM18&P(0)18SM20&& ** GET LNKS--P(0)P(1)IN:L(0)L(1)OUT--OUT PTRS SET&15,"U1:";2;1;P(0);P(1)&EL5021:5100'J01: @ GET LINKS.':15,"M-R";(J);(19)A':#15,A$:5060h':L(J)(A$):D%(P(0),P(1),J2)L(J)z':A2:5070:': ** IN POINTERS FOR LINK BLOCK':J01'::D%(L(0),L(1),J)P(J)'::' ** GET DEC VALUE-2 BYTES(#8,A$:5060: @ LO(A(A$)*(#8,A$:5060: @ HI>(A(A$)256A:R( ** WHEN A$=""e(A$""A$(0)k(|( ** SET B-P(15,"B-P,2,";A(EL5071:5100:( ** DEC>HEX(A$(H$,1(240A)16,1)(H$,1(15A),1):5060:) ** ASC > CHARACTERS)A32""(A64)"";:B)A34A98(34)(34)(20);:R)A1285095o)A160""(A32)"";:|)(A);:) ** CHECK DISK ERROR)15,EN$,EM$,ET,ES:EN$"00")"DISK ERROR AT PROGRAM LINE "EL *"ERROR MESSAGE: "EN$" "EM$,ET","ES*EN$"22"1000$*A(A$)256A:R( ** WHEN A$=""e(A$""A$(0)k(|( ** SET B-P(15,"B-P,2,";A(EL5071:5100:( ** DEC>HEX dT$(8)5n"ISK ILE OG - IM UTTERFIELD"SxJ199:(J32768)32J[YJ 169,0,162,4,149,95,202,16,251,169,160,133,94,162,2,32,198,255 230,98,208,10,230,97,208,6,230,96,208,2,230,95,32,228,255,165,150( 240,235,32,204,255,198,94,6,98,38,97,38,96,38,95,16,244,96D 169,0,133,136,133,137` 230,136,208,2,230,137 162,15,32,201,255,169,80,32,210,255 169,4,32,210,255, 165,136,32,210,255, 165,137,32,210,255  169,1,32,210,255, 32,204,255, 162,15,32,198,255, 32,228,2558 72, 32,204,255, 104, 201,48,240,200,96RJ860914:X:J,X:JlJ915977:X:J,X:J " XXX "," SEQ "," PRG "," USR "," REL "J04:T$(J):"RINTER N";Z$Z3:(Z$)89Z4:Y80:"ATE*";D$""NIT 8";U(,"RIVE 0";D:D0D1300C6"ILE HECK Y";Z$U@(Z$)89F1uJ5,Z:1,U,15,"I"(D48):1TG$" "^15,U,15h1,U,3,"$"(D48)r#1,A$:A(A$" ")|A1A65L1141:L289:410A67L13:L2485:4101:"???":G5:5,(14);"*** ISK OG *** ";(20);D$:5]J1L1:#1,A$:J5," ";(14);(34);:J123:#1,A$:5,A$;:J5,(34):5:J1L2:#1,A$:J A67 450 A$(78) J1 250:#1,A$:J: 450 : 8050-  A$(101) J1 758:#1,A$:J: 450: 8250P  "ISK ECOGNISED !!!":v MM1:#1,K$,T$,S$:S$""S$(0) L71:Z$(160):F$"":J116:#1,A$ A$Z$L70 L7F$F$A$ J #1,A$,A$,A$:L%(A$):L%L%(A$) J16:#1,A$:J L7(A$):L7L7(A$); #1,A$:L(A$):LL(A$)J LLL7256i &#1,A$:M8#1,A$,A$:570q 0M0 :SWST:K$""820 DK(K$)128:PP0: K64 K69 PP1:KK64 F K4 K0 NY50F1615 X5,(" "((T$)),3); b5,(" "((S$)),3);" "; g5,T$(K);5 l PP0 5," ";J q PP1 5,"<";e v5,(" "(L),4);" "; 5,(34);(F$(34)G$,17);" "; K0810 K45,"L=";((L%),2); K2F12,U,4,(D48)":"F$","T$(K) A0:K2720 #2,A$,B$:A0:A$""A(A$), B0:B$""B(B$)5 840B F0800P K4760o 915:A(136)(137)2561 5,",";((A),2);"R";:800 1,92:2,3:AA(0) K25,A;"BYTES";:800 5," ";:A%A256:AAA%256:BBA% 840 2 *5 4SW0450% 9 Z4 5,(12);9 >1:5:15: 290P HXB16:850:XA16z RJ12:X%X:X(XX%)16:X%9X%X%7 \5,(X%48);:J: K45,"L=";((L%),2); K2F12,U,4,(D48)":"F$","T$(K) A0:K27d DISK RECLAIM,i 59468,14: (14);@n TOM CRANSTOUNSx OCTOBER 1981Yw MODIFIED BY JOE GRIFFIN} FOR SINGLE OR DOUBLE DENSITY DRIVES 7/APRIL/1984"ISK ECLAIM ROGRAM7"BY : OE RIFFIN - f "EVICE UMBER OF ISK RIVE 8";UN"LACE Ē ISK IN RIVE 0:"NSWER TO RECOVER TO BORT ARLY""RESS SPACE TO CONTINUE""SP$:SP$" "290,:6"ISK ECLAIM ROGRAM%@:ZJ FIND TYPE OF DRIVE IN USE, SET DIRECTORY TRACK`T:^ 15,UN,15:15,"M-R"(255)(255):#15,A$c (A$)226 T18:DV$"3040":D$"1.2": 390h (A$)213 T18:DV$"4040":D$"2.1": 390 m (A$)254 T18:DV$"2031":D$"2.6": 390Qr (A$)242 T39:DV$"8050":D$"2.5": 390w (A$)198 T39:DV$"8250":D$"2.7": 390| "NIT"(" "(UN),3)" - RIVE NOT RECOGNISED !": "NIT"(" "(UN),3)" - ";DV$;" RIVE USING ";D$:15,"I0":FT0815,EN,B$,C$: FT0 FT1: 430YEN0""B$: 15:250_:uCH$(256),T$(100)8,UN,8,"#S1:15,"U1:08,0,"T;S"EADING IRECTORY RACK "T"ECTOR"S:I1256#8,CH$(I) &CH$(I)""CH$(I)(0) 0 ::, DI325632B NCH$(I)(0)770L XN$""\ bJI3I19{ lCH$(J)(160)JJ18:640 vN$N$CH$(J)  (N$)0JJ16:770 "RECOVER :"N$;:"Y";AN$ AN$"Y""YPE OF ILE (P/S/U/R)P";TY$ AN$"Y"750, Z1:TY$(TY$,1)H  TY$"P"X$(130):Z0d  TY$"S"X$(129):Z0  TY$"U"X$(131):Z0  TY$"R"X$(132):Z0 Z1660 (AN$,1)"Y"CH$(I)X$:T$(Q)N$:QQ1 AN$"END"790  : 15,"B-P:8,0" : *I1256( 48,CH$(I);. >4 H:J R15,"U2:08,0";T;S] \AN$"END"910c f:x pCH$(1)(0)910 zS(CH$(2)):500 : ""Q"CRATCHED ILE";  Q1 "S HAVE";  Q1 " HAS"; " BEEN RECLAIMED "LEASE AIT A OMENT :: "ALIDATING ON ISK 0G 15,"V0"T  8: 15m "ROGRAM OMPLETE"s 1):Z0  TY$"R"X$(132):Z0 Z1660 (AN$,1)"Y"CH$(I)X$:T$(Q)N$:QQ1 AN$"END"790  d DISK RECOVERY)n TOM CRANSTOUN<x OCTOBER 1981B` MODIFIED BY JOE GRIFFIN~ APV CRAWLEY FOR SINGLE OR DOUBLE DENSITY DRIVES 7/APRIL/1984"DISK RECOVERY PROGRAM3"DEVELOPMENT VERSIONX"BY JOE GRIFFIN - APV CRAWLEY "EVICE UMBER OF ISK RIVE 8";UN"PLACE BAD DISK IN DRIVE 0"PLACE GOOD DISK IN DRIVE 1"ANSWER END TO RECOVER TO ABORT EARLY"""PRESS SPACE TO CONTINUE"9"SP$:SP$" "290?,:`6"DISK RECOVERY PROGRAMf@:J FIND TYPE OF DRIVE IN USE, SET DIRECTORY TRACKT:^ 15,UN,15:15,"M-R"(255)(255):#15,A$c (A$)226 T18:DV$"3040":D$"1.2": 3850h (A$)213 T18:DV$"4040":D$"2.1": 385am (A$)254 T18:DV$"2031":D$"2.6": 385r (A$)242 T39:DV$"8050":D$"2.5": 385w (A$)198 T39:DV$"8250":D$"2.7": 385| "NIT"(" "(UN),3)" - RIVE NOT RECOGNISED !":@ "NIT"(" "(UN),3)" - ";DV$;" RIVE USING ";D$;""F: "DO YOU WANT TO ERASE OLD FILES ON THE BAD DISK N";E$SM0: E$"Y" SM115,"I"15,EN,B$,C$EN0""B$: 15:250:CH$(256),T$(100) 8,UN,8,"# S1 :- 15,"U1:08,0,"T;SX "READING DIRECTORY TRACK "T"SECTOR"S^ :k I1256z #8,CH$(I) &CH$(I)""CH$(I)(0) 0 :: DI325632 NCH$(I)(0)770 XN$"" bJI3I19 lCH$(J)(160)JJ18:640 vN$N$CH$(J) 0 (N$)0JJ16:770V "RECOVER :"N$;:"Y";AN$ AN$"Y""TYPE OF FILE (P/S/U/R)P";TY$ AN$"Y"750 Z1:TY$(TY$,1)  TY$"P"X$(130):Z0  TY$"S"X$(129):Z0  TY$"U"X$(131):Z0!  TY$"R"X$(132):Z0/ Z1660Z (AN$,1)"Y"CH$(I)X$:T$(Q)N$:QQ1m AN$"END"790s y : 15,"B-P:8,0" : *I1256 48,CH$(I); > H: R15,"U2:08,0";T;S \AN$"END"910 f: pCH$(1)(0)910 zS(CH$(2)):500 :D Q0"NO FILES TO BE RECOVERED": 1030d ""Q"SCRATCHED FILE";w  Q1 "S"; " TO BE RECLAIMED "PLEASE WAIT A MOMENT I0Q1 15,"C1:"T$(I)"=0:"T$(I) 15,A$,B$,C$,D$ "C1:"T$(I)"=0:"T$(I)"->"B$%  SM 15,"S0:"T$(I)+ >  SM0 1030^ "VALIDATING BAM ON DISK 0k 15,"V0"x  8: 15 "PROGRAM COMPLETE"  48,CH$(I); > H: R15,"U2:08,0";T;S \AN$"END"910 f: pCH$:PG$"RE-NUM":NM$"24":620007" GARY HUCKELLT" 5924 QUIET SLOPE DRIVEn" SAN DIEGO, CA 92120t"" CURSOR #24, FEB 1981" COPYRIGHT(C)1981 THE CODE WORKS" BOX 550, GOLETA, CA. 93116" " AS OF 81 FEB 02=dMC4879:AF634:ALAF2:ANAL2:ASAN2:AAAS2:ABAA2:AEAB2:AUAE1XnP(Z)(Z)256(Z1)xMB$"LINE NUMBERS MUST BE FROM 0 TO 63999."(50000)0"RE-NUM WON'T WORK ON OLD ROMS.":Z024:AFZ,0:ZZ2535:T:AFZ,T:Z3,2,16,39,232,3,100,0,10,0,0 15,8,15J"OLD FILE? ";:60000:(IN$)09000oZ1(IN$):(IN$,Z,1)":"1030Z:IN$"0:"IN$OF$IN$OK0:UN2:F$OF$:DR$"READ":8000:ER1000L"NEW FILE? ";:60000:(IN$)09000 VZ1(IN$):(IN$,Z,1)":"1130!`Z:IN$"0:"IN$-jNF$IN$`tOK63:UN3:F$NF$:DR$"WRITE":8000:ER01400q~EROK1100"";F$;" ALREADY EXISTS.":"OK TO DELETE IT? ";:60000(IN$,1)"Y""";F$;" NOT DELETED.":110015,"S";F$:15,ER,ER$,TK,SCER1TK11140HER1"CAN'T DELETE ";F$;": ";ER$:1100uTK1"";TK;"FILES DELETED???":1140"CAN'T DELETE ";F$:1100x"FIRST LINE TO BE RENUMBERED? ";:60000IN$""IN$"0":"I'LL START AT LINE ";IN$;"." FL(IN$)$ FL0FL63999MB$:1400L "WHAT SHOULD IT BECOME? ";:60000 IN$""IN$"100":"I'LL CHANGE IT TO LINE ";IN$;"." NF(IN$) NF0NF63999MB$:1500 @"LAST LINE TO BE RENUMBERED? ";:60000 JIN$""IN$"63999":"I'LL RENUMBER THROUGH LINE ";IN$;"."- TLL(IN$)K ^LL0LL63999MB$:1600w "NEW LINE NUMBER INCREMENT? ";:60000 IN$""IN$"10":"I'LL GO UP BY ";IN$;"." NS(IN$) NS1NS10000"INCREMENT MUST BE FROM 1 TO 10000.":1700$ "RENUMBERING LINES";FL;"THROUGH";LL;",P "STARTING WITH";NF;", UP BY";NS;"."z "WANT TO CHANGE ANYTHING? ";:60000 &(IN$,1)"Y"1400 l"WANT ERROR MESSAGES ON PAPER? ";:60000 vPR((IN$,1)"Y") PR04,3 PR4,4:"MAKE SURE YOUR PRINTER'S ON."8 Z(FL256):AF,FL256Z:AF1,Z] Z(LL256):AL,LL256Z:AL1,Z Z(NF256):AN,NF256Z:AN1,Z Z(NS256):AS,NS256Z:AS1,Z IN$"" 4"PASS 1 >MC H2:15,ER,ER$,TK,SC RER07500 \(AE)7000' UN2:F$OF$:OK0:DR$"READ":80004 ER7900C "PASS 2M MC3_ (AE)02400  4:4,"LINE";(P(AU));", USED IN STMT";(P(AB));" "; PR04  P(AB)P(AA)4,"(NOW STMT";(P(AA));") ";  4,"DOES NOT EXIST." MC6:2300` 2:3:150j "";OF$;" NOW RENUMBERED"Mt "AND SAVED AS ";NF$;"."S~ X"NOT ENOUGH MEMORY TO RENUMBER":"THE PROGRAM.":7900L"DISK ERROR: ";ER;ER$;TK;SCV7900`2:3:15?@UN,8,UN,F$",P,"DR$ J15,ER,ER$,TK,SCTER0)YUN:EROKG[ER6015:15,8,15:8070_^ER29ER718100sh15,"I";(F$,1)r15,ER,ER$,TK,SC|ER08100UN,8,UN,F$",P,"DR$15,ER,ER$,TK,SCER0UN"CAN'T ";DR$;" ";F$;": ";ER$ (#-`IN$" ":ZTTI:ZC2:ZD$(20)CjZ$:Z$""60070stZTTI(" ",ZC,1);"";:ZC3ZC:ZTTI15~~60010Z(Z$):ZL(IN$):(Z127)32" ";:60110ZF(Z127)64(Z127)91Z$((Z128)255)ZL25460010 IN$IN$Z$:Z$;ZD$;Z$;*Z13IN$(IN$,2):CR$;:VZ20ZL1IN$(IN$,ZL1):"";:60010Z141Z$(20(ZL1)):Z2ZL:Z$;:Z:600006001060010059468,125"";15(PG$));PG$;" BY GARY HUCKELL :" CURSOR #";NM$;" COPYRIGHT (C) 1981*DI113:"";:I:""TN"RENUMBER (PIECES OF) YOUR PROGRAMS|S"(THIS PROGRAM REQUIRES A DISK.)X"PRESS RETURN TO BEGIN"bZ$:Z$""62050l""::CRT32768:CR$(13)WD40:CRT,96:(CRT1024)96WD80:(142); 100LLLi P  ^ȑ^ B` ^ ȑ^ȑ^ȑ^^{=^z3}^*|^ ~^ȑ^~m~m^i^_i_1^0  B` L'   B       B `   Y譊Y Y7mYmZ B Y L" ILJЪɉɍɧО YL0 :YLLMYYR * * *mmY)mL &} B[\` L08Ώyy0 Yȹбi0Y譑,YLLMHH P^L>͈^͇e^^_L^ȱ^L>hh`H@)@ h`.^/_`T1024)96WD80:(142);-;WD40:CRT,96:(CRT1024)96WD80:(142),)W YL0 :YLLM (C) 1984 INTEGRAL SOFTWAREɉɉɉɉɉɉɉ뉉ixɉɉɉɉɉɉɉ%P߭x)腱HHhŴMH葱Xll2)`A`!! !5 ͹}iUA-mbxeP7"y򌘠FiT?f Phmn|q|\ OO`v kDuaY].ldUʗӡDmc1PYG" K`t+71a]CGr{3 {Y"ˉoHz_O>JD20wq(-qzh@,J x[@<⟏ק7cJ ZGD}l4DfaeY֥--mK2mAަ( ?1=zt//֣bOX%.%B~JSWqsu2󾺅n{DQ:ӼHU> ԱK }Y)V, nOÇ6,+00.5Ă>9 {\$3fU. {d,63"9-wjQߤLo;;껯Cpz/N"6W<d3=}HLHf".7^57P64ز7:nGI጗|IR?\dXIEQk, ܩ=o 4<&s3)迡]nz8ʠ<{~ZStN[$11X0xgJڱ23s}V{ԭ'x7JOHWR<i&W䞯l+v5^XtO!po&{q@,LWcQWVk;{!Dkz5;̏Hc >MRf ( lQF+=zuXIN<i`P*∬b^*\["ol2ձgVu@96) nʋzNUڧ%{>J$(cg_SEP7ү^%qa5 ā>?e9W?gԪ9etSMծ1,uL-UL2, lH٢[\qSh}%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3Hey-AUi} 1F[p-BWl)>Sh}%:Ody !6K`u2G\q.CXm*?Ti~&;Pez "7Lav 3H]r/DYn+@Uj'Sh}%:Ody !6K`u2G\q.CXm*G[o#,tB9<$Hvv8N>F&/6*e1 x Luy1bnw? lRC$&lTZzs<K5„YR+sc=/bvj|>GeLm +PuCe'T#_+m/5E7MG.(/^X5K*TJ$9O&Pi =S"\,bMZ Ppo$b$܄zj _\/5dNp{a.@Z@dl>(mdE|SADM1vj5 !SGIO̎/ClKɂ {Q*iWD:qV]NtP` < xld{‘{RUJ{jA*(X^xpY+-aa=ьXcO2QJf`bnKYFf+0)x%`H# THK{;O_jKebzZ4Ke_Dd7\Gk3)kv%Eٝ\;Su9-U]BIӊg&}y{8N*ye&̮_ϱ.s 0V)w4 gP[8f'T'y{;|=<@uTq i)ӢiR8Iџ_`iD <}(M+Pu[;qmSF`[H®̳}BǞE-fQ$,힟oX (Eg*ny:ȓNxR9- |A!X ZMSH]zt58-rTSp[ܜY<KRP#ɎZeX3yl=Q+,PR0yegS u1:cAȍNFcYgBre(n4Z%q홣E]/Q̷KpFeFfeax|/=Ch(ID5v'8 H,b,CĂfAf\,:n )bEe0Ikoʭ*h4f<$&P/Ӵ3L "8v?U"HGe%_C$$?n%*DUc0aa:GIOX&n%=S@%R^EWXQ-j2oF) ~^5!ѫLd$l5 +ExG&&k{(n6Jwٝ<c nI/UQI <;hbRƚZV3_]o u).nǚ5SRGTzN\W]{RT^g[mM=R2(Z-k?fBD}Q\;ʸgw(?!`n|I%g憅~ 3z\Fx trVj6F(G=焄ٛf\O|3,} Po" j7ez9874Xi@f%hKPaoq:2=ݣ<(EZ톺 <ϝbI c"AȋX?^6KL{j(MդљܘZ"Ob$1KIHh iOG ߋ*w~ˇ*b^B%|{ݯ}U+bYCڜC͋Rhch:%"$)xritfP( jtPəU4©gwRj$_KQ:O@koϬs^dU&LR[H6%ڒt{'h@e7zƲ;J@(n[Es/2}N.f"O{,7zy|ƞ?1=i/}oXNDcPsz&'@#܎Z}Vїi~)UQ%GT0s@|˄6" =P`!(VgYao) W_ _"ks(=#IxnۍAnS;gx8H7{|$=K]< mc:T6tj 04;b#vG$.(nZu66w@GĘMؙ"ZIyd8rؑNjP1 f!R/9s=׌]g(d`CE>'`0vۜ?s 4AFqLjQ '.E7zP\#_zn L{-Xl@2柠~76}Te.X XP>M0C -fwy((Hd/6'+wH#8_'6LT1 ҏ <_zYw,mٗXS!D/@u om~D*@ޟxjGKRtUeM [e5*s)JC/GЎBX5*['Eu !Py5d'fS4:T[ÕO(=g)pPNZ]~hE$X尽.(Rq(&q𭰮t1HpDK\P낉!#h9G隲t6 r`eU~ EO*%PRU)cUVE,-gIZYW;-^XM` :{(!!d}k.p8,0)?Bbs4܋TO"&}e,}w00a" gsl {AAu)/ݺrױ9:ope(#BMGf"q]Jt!dJ+aWʧn:br2jŨLO99;p<AG F;+Rv<S &nlz24I;7Gs2{ 6&f'u{J9 b#ΦdVxG)cVTϐb"j#2xY1%vc>ZP&=8\^Z&xڧ/Um+Q,Gm=;K72\PS/9XoR]J׃(NJ ŽοMf>uɍ~Q&_UH؋MYY|qJEؘǚbpG3I~w5 BoᝢQc$"ӑd|$1l^ܦkޮA4dVۜcQ\Y.*Xu?'W @PVMڔYz?GrF/GKy* 9)wXɾ!P{0HBxDTi>* h]7ixnF,J02_?YLY=*Tı9^\`T7zM&Gfi*;rK X|[dp^̔Iӛ/zwOoL>5S;m #@*Ȗuz`L!; dy3}a*EW6 Sl-y &n1 ܄ǝa^Hv-5| Q.\hBV%i`ɴ^cmv/0>b qG6Z Wh2/ݣgJVr k*(FNxvBh异(g3ZY{ATCE}p$g&{lCwMuA%,do8,|8t#݋m'xJ[|'eXҁkޕ(+w$KVڛg5@usk.ӯ3doN- {~ǒ [iSx7lq.g=J @ȍAyd)ֿldq,9 ]AlݤCƙC_Z+.j跈bI*)I }ry$IR+QREdɔY7Af',õyq/|b۱?#bH|&ȋ HIP Q\~7k*o;xN~w!mf*C[($ܓ v9fތI : QSxHX@ UR`/02x@$,4| ^bJy}P'"nl dn-#br!IџM,6\9MO󓤩G!;TH444FV*ݲ9vUv B4_Zdr"4-i~[nT{n8,\?6D" sz讎oxb<`3l54,(Y*n܂ߠl4BzՆӅc62efrW^ gˌ2^OhSiґV?d|QΑ Ewis354.wZ+81\(Qj9c27?Wh8eTEkl8aDخxp:G՝'SL>^czÐ|\n}*}@. {Y!װیVtW&sHeRy ;J9U"lV&gyu.}rr>Hr͎* SOb: QdzZTι-ʎ%wM9-J~Y[G}EYm[ᯱ/tF#%ooV;ZDƠPCoX OLv4C_e] 1inۢ O@Dzs>7qӎK{OXW kڒQwSF`[H–ss?DYvY[<\`鼱Dd判OQx EEǙvpgpټoW>3ct7Y9g '9g1l|/= x`@iH_\#= [N>!ZƠrP@ڞ_H`錦ݎagD<ϑME7R el+-!v[ZSFiu~vW:`A|k=(鄳EpoW&sHeRy ;J9U"lV&gyu.}rr>Hr͎*d"DRIVE NO";DN$(n"FILENAME";F$Jx"FILE TYPE (S/P/U) S";T$bSA5:T$"P" SA0t"CHAR ASCII""---- ----- PRESS ANY KEY TO CONTINUE"5,8,5,DN$":"F$","T$",R"#5,A$:A999: A$"" A(A$)ST0240"*"A$" "A:CC1:C5170(B$:B$""2005C0:170<5BS"*"A$" "Au ST64 "END OF FILE":220"UNUSUAL STATUS (SEE CBM MANUAL PAGE 107 ( ST="ST")":220"SHELP^"SHELP%)d59468,14:" ILE USTER"Hn"* BY IM UTTERFIELD *"ixJ081:(J32768)42J:634,J:L83276824J:L9327682JL%L8256:136,L8L%256:137,L%L%L9256:635,L9L%256:636,L% 15,8,151:"NAME OF EXISTING FILE";I$:1,8,3,I$",P,R"I15,DZ,DZ$:DZ0" ** ";DZ$;" ** ":200W#1,A$,A$" UTPUT FILES WILL HAVE A SEQUENCE"" NUMBER ADDED TO THE NAME..."" UTPUT WRITES TO DRIVE 0."2:"NAME OF OUTPUT FILE(S)";O$:2,8,4,"0:"O$"*,P,R"@15,DZ,DZ$:DZ62" ** PICK ANOTHER NAME ** ":250f"HOLD DOWN TO COPY;" PRESS TO BREAK TO NEW FILE."J11000: "";I$ J1(634):"";:2529:OO1:L10:2:2,8,4,"0:"O$((O),2)",P,W""";20);O$((O),2)D15,DZ,DZ$:DZ0" ** ";DZ$;" ** ":X"2,(0);(128);g, GET LINEq12438{6SWSTh TEST LINK HEREr(L8)122(L81)14(L82)24(L83)58600|2507 TEST KEYSL1L11:"";30);"LINE";L1K(151):K$K 324108"";30);" "HSW0470ZK$(13)270c300u2:1:2529:XJ(634)161:(L8J)32JbJ1J:I$"":J4J11:X(L8J)cX32XX64:619dX96X64XX128kI$I$(X):J! l"";(I$" ",18)9 v1:1,8,3,I$",P,R"j 15,DZ,DZ$:DZ0" ";DZ$;" ** ": #1,A$,A$:A$,A$:300{|mzȅzߢ  z ` z `{|z mzƌ`K 324108"";30);" "HSW0470ZK$(13)270c300u2:1:2529:XJ(634)161:(L8J)32JbJ1J:I$"":J4J11:X(L8J)cX32XX64:619dX96X64XX128kI$I$(' DSAVE "@IDENTIFY DISK",D1:? DS$-:b FIND TYPE OF DRIVE IN USE, SET DIRECTORY TRACKh: 15,UN,15:15,"M-R"(255)(255):#15,A$ (A$)254 101015,"M-R"(254)(255):#15,B$ (B$)182 T18:DV$"2031":D$"2.6": 10603 (B$)103 T18:DV$"1541":D$"2.6": 1060e (B$)103 T18:DV$"1571":D$"?.?": 1060 1050: UNKNOWN DRIVE (A$)226 T18:DV$"3040":D$"1.2": 1060 (A$)213 T18:DV$"4040":D$"2.1": 1060 (A$)242 T39:DV$"8050":D$"2.5": 1060H (A$)198 T39:DV$"8250":D$"2.7": 1060 "NIT"(" "(UN),3)" - RIVE NOT RECOGNISED !":$ "NIT"(" "(UN),3)" - ";DV$;" RIVE USING ";D$.:8 15:$)182 T18:DV$"2031":D$"2.6": 1>Z0$" ":Z1$"$$$$$$$$$$$$$$$$$$$$$$"Y "NUMBER ";Z0t "FIELD WIDTH ";Z1 "DECIMAL PLACES ";Z2(Z1Z14: 50000:Z1Z14: "<";Z$;">"2 51000: "<";Z$;">"< 10 6 ***************************************************************f7 * 'CRASH-PROOF' DATA INPUT ROUTINE BY JOE GRIFFIN *8 * *9 * USER SUPPLIES : Z1 - COLUMN AT WHICH FIRST COLON APPEARS *8: * Z2 - SCREEN ROW ON WHICH PROMPT APPEARS *~; * Z3 - WIDTH OF INPUT FIELD *< * Z0$ - STRING OF SPACES * = * COMPUTER RETURNS : ZB$ - INPUT STRING *P> * IN$ - SAME *? ***************************************************************@ 226,Z1: 224,Z2: 57439:RT0: SET WINDOW J "<";: ZI1 Z3: " ";: ZI: ">";: MARK OUTQTZB$IN$:ZB1: SET NEW STRING^ "";: DISPLAY STRINGh ZI1 (ZB$): 205,1: (ZB$,ZI,1);: ZIr 205,0: (Z0$,Z3(ZB$)) | "";: ZB1 ZI2 ZB: "";:0 Z00:ZC3276880(216)(198)s CC(ZCZB): RESERVE CHARACTER 167,0: TURN CURSOR ON ZA$: ZA$"" 40100 167,1: CURSOR OFF AGAINW ZCZB,CC: RESTORE CHARACTER œ ZA$(29) 40180: CURSOR RIGHT ̜ ZBZ3 59044: 40030 ֜ZBZB1 ZB(ZB$) ZB$ZB$" ": 40160 ꜉ 400301 ZA$(157) 40210: CURSOR LEFTN ZB1 59044: 40030b ZBZB1: 40030  ZA$(20) 40240: DELETE CHAR  ZB1 59044: 40030 &ZB$(ZB$,ZB2)(ZB$,ZB):ZBZB1: 40030) 0 ZA$(148) 40270: INSERT CHARK : (ZB$)Z3 59044: 40030u DZB$(ZB$,ZB1)" "(ZB$,ZB): 40030 N ZA$(19) 40290: HOME CURSOR XZB1: 40030 b ZA$(147) 40310: CLEAR SCREEN lZB$"":ZB1: 40030[ v ZA$CR$ 40360: RETURN (ZA$)32 ((ZA$)127 (ZA$)160) 40030 ZBZ3 59044: 40030 C$"": ZB(ZB$)1 C$(ZB$,ZB1): SAVE THE REST'ZB$(ZB$,ZB1)ZA$C$:ZBZB1: 40030: ADD TOGETHER7 " ";ZB$;n ZI(ZB$)1 Z3: " ";: ZI: " ";: BLANK ENDSIN$ZB$: (ZB$)0 RT1Ɲ "": 198,0: 216,Z21: 57447: REPOSITION CURSORН;:<Ï ** ROUTINE FOR PRODUCING FORMATTED FIXED POINT OUTPUT=:N>Ï - INPUT VARIABLES REQUIRED - Z0 NUMBER TO BE OUTPUT?Ï - Z1 FIELD WIDTH@Ï - Z2 NO OF DECIMAL PLACESAÏ +VE DISPLAY Z2 PLACES1BÏ -VE ROUND TO Z2 POWER OF 107C:kDÏ - OUTPUT VARIABLE RETURNED - Z$ OUTPUT STRINGqE:FÏ - LOCAL VARIABLES USED - Z3 ROUNDED VALUE OF Z0GÏ - Z4 STRING LENGTH"HÏ - Z5 COUNTER FOR POSITION OF D.P.aIÏ - Z6 POWER OF 10 FOR ROUNDINGJÏ - Z7 SWITCH FOR REVERSE VIDEO (=1 ON)K:LÏ - GLOBAL VARIABLES USED - Z0$ STRING OF SPACES FOR PADDING=MÏ - Z1$ STRING OF DOLLAR SIGNS FOR OVERFLOWCN:PË Z2Z1 50270: ** INCORRECT FIELD WIDTHZË Z20 Z3(Z0.5): 50050dZ61: Z51 (Z2):Z6Z610:: ** SET POWER OF TEN#nË Z20 Z3((Z0Z60.5)Z6): ** GET REQUIRED WHOLE NUMBERExË Z20 Z3((Z0Z60.5)Z6)Ë (Z3).01 Z30 Z3Z3(Z0): ** ADD TO SMALL NUMBERÏ TO AVOID TRUNCATIONZ$(Z3):Z4(Z$): Z30 500901Z$(Z$,Z41):Z4Z41: ** REMOVE LEADING SPACEHË (Z3)1 50140[Ë Z30 50140Ë Z30 Z$"0"Z$: ** REMOVE EXTRA 1Ë Z30 Z$"-0"(Z$,Z41): ON SMALL NUMBERSZ4Z41Ë Z4Z1 50260: ** TOO LARGE FOR FIELD.Ë Z20 50200WÁ Z51 Z4: (Z$,Z5,1)"." 50180uÂ:Z$Z$".":Z4Z41:Z5Z4ċ (Z4Z5)Z2 50200Z$Z$"0":Z4Z41: 50180: ** ADD TRAILING ZERO'Sċ (Z0).01 Z30 Z$"-0"(Z$,Z42))"ċ (Z0).01 Z30 Z$"0"(Z$,Z41)i,ċ Z4Z1 50260: ** TOO LARGE FOR FIELD6ċ Z71 Z$""Z$"": ** REVERSE IF REQUIRED@ċ Z4Z1 Z$(Z0$,Z1Z4)Z$: ** PAD FRONTJĉ 50290: ** PREVENT FALL THROUGH\Tċ Z20 50280: ** FIELD WIDTH ERRORSu^Z$(Z1$,Z1): 50290hZ$(Z1$,Z1Z21)"."(Z1$,Z2)rĎ :!Ǐ ** ROUTINE FOR PRODUCING FORMATTED FLOATING POINT OUTPUT":$#Ǐ - INPUT VARIABLES REQUIRED - Z0 NUMBER TO BE OUTPUTV$Ǐ - Z1 FIELD WIDTH%Ǐ - Z2 NO OF DECIMAL PLACES&Ǐ +VE - DISPLAY IN RANGE 1.0-10.0'Ǐ -VE - DISPLAY IN RANGE 0.1- 1.0(:Q)Ǐ - OUTPUT VARIABLE RETURNED - Z$ OUTPUT STRINGW*:+Ǐ - LOCAL VARIABLES USED - Z3 ROUNDED VALUE OF Z0,Ǐ - Z4 STRING LENGTH-Ǐ - Z5 COUNTER FOR POSITION OF D.P.G.Ǐ - Z6 POWER OF 10 FOR ROUNDING/Ǐ - Z7 SWITCH FOR REVERSE VIDEO (=1 ON)0Ǐ - ZS SIGN OF Z01Ǐ - ZP COUNTER TO ADJUST 1(X$,H161,1); ?(X$,M(H)1,1); @(X$,L161,1); A(X$,M(L)1,1); B 30) "$"; C(X$,HE161,1); D(X$,M(HE)1,1);, E(X$,LE161,1);B F(X$,M(LE)1,1)c G20) H256L 30) H256LCi H IND$":"NN$ 20) "$"; J(X$,H2161,1); K(X$,M(H2)1,1); L(X$,L2161,1); M(X$,M(L2)1,1); N 30) "$"; O(X$,EH161,1); P(X$,M(EH)1,1);/ Q(X$,EL161,1);E R(X$,M(EL)1,1)\ S20) AD 30) ADCh T8:9:u UDS$:: V WE JUST GOT END OF LINE W9,(0); X NOW HANDLE LINE-POINTER CHAIN Y#8,A$:A$""A$(0) Z#8,B$:DKST:B$""B$(0)' [N(A$)256(B$):N09,A$;B$;:54W \NNV:9,(N256(N256));(N256);:DK54q ]#8,A$:A$""A$(0) ^9,A$;:#8,B$:DKST:B$""B$(0) _9,B$;: `" ************************************************** a" *** HIS PROGRAM MODIFIES LOAD ADDRESSES ***S b" *** OF BASIC PROGRAMS. *** c" *** OR 8050, 4040, 2031 AND IC DISK DRIVES *** d" *** Y RIC RANDON (416)-239-4666 ***e" *** ERSION 1.2 - UNE 21, 1982 () ***;f" **************************************************56));(N256);:DK54q ]#8,A$:A$""A$(0) ^9,A$;:#8,B$:DKST:B$""B$(0) _9,B$;: `" ************************************************** a" *** HI2 B$(255)$d(14):59468,14bn "ODIFY ROGRAM OAD DDRESS FOR 8000 ERIES ACHINES"hx "HIS ROUTINE FOR 8050 OR 8250 DISK DRIVES" "AME OF FILE TO BE MODIFIED ";FI$ "HICH DRIVE IS IT ON 0";D$ 15,8,15,"I"D$: 650" 1,8,2,"#": 650D,T39:S1: START OF DIRECTORY_^15,"U1:2,"D$;T;S:650q15,"B-P:2,0"#1,T$:T$T$(0)#1,S$:S$S$(0) E1 8#1,FT$ : FILE TYPE FT$"" FT$(0)#1,X$ : TRACK POINTER TP(X$(0))*#1,X$ : SECTOR POINTER<SP(X$(0))XI1 : BYTE POINTERqFA$"" : FILE NAME#1,X$: X$(160) FA$FA$X$II1: I17 450 FA$"" 486 FT$(130) 478 FA$FI$ 472I1  (FA$)I 478$ (FI$,I,1)"?" 470? (FI$,I,1)"*" 472b (FI$,I,1)(FA$,I,1) 478yII1: I17 462 "ILE ";(34);FA$;(34);" HAS BEEN FOUND" "S THIS THE FILE YOU WISH TO AMMEND Y";AN$ AN$"Y" 490' I21 31:# 1,X$: I: READ REST OF ENTRYA E8 #1,X$:#1,X$I E]T(T$):S(S$)w T0 S255 488 "ORRY, FILE ";(34);FI$;(34);" NOT FOUND" 1: 15: 350 "TARTING RACK AND ECTOR OF FILE ARE :";TP;SP &15,"U1:2,"D$;TP;SP:650( 015,"B-P:2,0"Z 6 I0 255:#1,B$(I): B$(I)"" B$(I)(0)b 8 I D 1:15,"U:":15,"I"D$: 650 F 1,8,2,"#": 650 H15,"B-P",2,0 ILA(B$(2))256(B$(3)): LA1025 590 J "ODIFYING OAD DDRESS" KB$(2)(1):B$(3)(4). L I0 255:1,B$(I);:L M15,"U2:"2,D$,TP,SP: 650Y N 1: 15_ X v****************************** * SUBROUTINES * ****************************** * ERROR ROUTINE * ******************************- 15,EN,EM$: EN0 X "SYSTEM OR DRIVE NOT RESPONDING": I D 1:15,"U:":15,"I"D$: 650 F 1,8,2,"#": 650 H15,"B-P",2,0 ILA(B$(2))256(B$(3)): LA1025 590 J "ODIFYING OAD DDRkx͋pppp͎ppppoooo4501X ݚo oolL p -p Cl p p p k !p BpLp# p 'p̊Ȑ` -p Cl p k BpLk p 0p p Ep $p p 'p Hp` JUY\V^ԓklkllmmm1nrnn"olkoskk02JAN83-CHM07AUG83-DPG (MODS FOR CBM)LpL qLLL'qL,qLqLqLqL!rLrL*sLsL:tLntLttLixLpxLsxLxLxLxLxL&yL_yLvyL{yLyLyLyLyLzLzL/zLAzLjzLszLzL6{L|LC|L]|L|L|L|Ly,(v,#v$($$$,$$x4501X8{z y {yM* sxR$? p . sx |.݉ ll ` r vy`Hh`Lq8 ` Mx {y q |x q9 r _y( qee q r q kq oqL,q y x` tt x qҭ _y tt |'  3z ? x | x x x {y ͆ ̈ !r _y qL,q nt q , q *s x u ky y BsH sh s s~ u~ u` 6sȘ s px` 5s`8e`J J") J~JJJJ)~)) JJJ Ȉ` s q̊Ȑ`~-.*i? pLvy Yx s,LkuH TY$84 PT$" UNKNOWN FILE TYPE"HTY0"";:PT$"* DELETED OR UNUSED ENTRY"RTY0 TY5"";:PT$"* UNCLOSED FILE"\TY4 TY$80 "";:PT$"* UNKNOWN FILE TYPE"@fTY127F$(FX)F$:SL%(FX,0)T1:SL%(FX,1)S1:FXFX1zpFXMF"CATALOG TOO BIG... CHANGE MF VARIABLE":1470zPT$PT5,PT$T0 950:NO MORE DIRECTORY SECTORS560-----------------------------------------------------N"";:PT$"FILES ABOVE MARKED * ARE IGNORED FOR SUBSEQUENT ANALYSIS"X PT$pPT5:5,PT$:5:5v"";:PT$"FILENAME & TRACK:SECTOR CHAIN"PT$PT5,PT$:5I1FX1TSL%(I,0):SSL%(I,1):SET UP FILE START LOCATIONPT$(F$(I)SP$,17)%PT$;V$PT5,PT$;:PC0 :ZERO PRINTER COLUMN COUNTu.1750:PRINT T & S STRING8PT5,TS$;" ";:PCPC1BPT PC9PC0:5:5,(SP$,17);LML%(T,S)02010:1160: INTERLINKED FILE CHAINSVML%(T,S)I`1610:READ SECTOR INTO BUFFER=j1650:GET NEXT LINK ADDRZtT0 1160:END OF CHAINx~1070:GET NEXT LINK ADDR:PT5----------------------------------------------------NOW SEE IF BAM ACCURATELY REFLECTS SECTOR USAGE"VERIFYING BAM"PT5:5%F"CHECKING...... ";oT18:S0:1610:READ BAM INTO BUFFERBP5:POSITION BUF POINTER TO TRACK 1 T 1 351690:B(0)Q:1720:B(1)Q:1720:B(2)Q:GET BAM BIT DATA SS20:T17SS18:T24SS17:T30SS16:SS=SECTORS& 2S0SS\"";:1760 :PRINT CURRENT T&S(BA0: 2(S 7) B(S8) BA1 :SECTOR=FREE IF BA=12 ML%(T,S)0 BA0 1440:GOOD BAM ENTRY... FREE< ML%(T,S)0 BA1 1440:GOOD BAM ENTRY... BUSY(FERER1:INCREMENT ERROR COUNTER1P""\Z"*BAD BAMFOR T&S ";:1760:PRINT T&SdPT5,"*BAD BAM FOR T&S ";TS$;n BA0 PT$" UNUSED SECTOR BUT BAM SAYES USED"x BA1 PT$" USED BY "F$(ML%(T,S))" BUT BAM SAYS UNUSED"PT$PT5,PT$/"CHECKING...... ";5ABPBP4GR2:15o:ER"DISK ERRORS FOUND" PT5:5,ER" DISK ERRORS FOUND"PT5"DO YOU WANT A T&S USAGE PRINTOUT (Y/N)"Q$:Q$""1520Q$"Y"21004----------------------------------------------------MDISK ERROR HANDLINGg"15,E,E$,E1,E2:E0,"DISK ERROR:";E;E$;E1;E262:15:@----------------------------------------------------JREAD T&S INTO BUFFERT15,"U1:2,";D$;T;S:1550 ^h:6r---------------------------------M|GET NEXT LINK T&Sg1720:TQ:1720:SQ:---------------------------------POSITION BUFFER POINTER & GET BYTE15,"B-P,2";BP:GET BYTE FROM BUFFER Q$ & Q #2,Q$:Q$""Q$(0)Q(Q$):K---------------------------------------------CREATE & PRINT TRACK AND SECTOR STRING USING T & S OP$"D" 1900HEX OUTPUTTS$((T),3)(TS$)2TS$"0"TS$TS$TS$":"Q$((S),3):(Q$)2Q$"0"Q$@&TS$TS$Q$:POPO1:KEEP TRACK OF POSITION ON SCREEN0IIIIII:17);:PO0:NEW LINE IF DIFFERENT FOR/NEXT VARIABLE:PO9 17);:PO0DTS$;" ";NX---------------------------------------------bDECIMAL OUTPUT lTS$((T),2)%v(TS$)2TS$"0"TS$5TS$TS$":"YQ$((S),2):(Q$)2Q$"0"Q$c1830--------------------------------------------- AS ABOVE BUT USE VARIABLES T1 & S1 (PRESERVE T & S)QT:QQS:TT1:SS11750TQ:SQQ:5-----------------------------------------------U INTERLINKED FILES ROUTINE[PT$(SP$,17)"REMAINDER OF CHAIN IGNORED....." PT$ PT5,PT$ "*** BAD FILES *** "F$(ML%(T,S))" AND "F$(I)" ARE INTERLINKED!!!"9PT5,"*** BAD FILES "F$(ML%(T,S))"AND"F$(I)" ARE INTERLINKED!!!"^ ERER1:INCREMENT ERROR COUNTERd*+------------------------------------------------------------------4 T&S USAGE PRINTOUT ROUTINEH5,4M5," ";RS020:S$((S)" ",3):5,S$;::5!\ T1 35>fT$"TRK "((T)" ",3)Ip5,T$;zSS20:T17SS18:T24SS17:T30SS16:SS=SECTORSS0SSML%(T,S)05," . ";ML%(T,S)05," X ";55," "; S020:S$((S)" ",3):5,S$;::5 5$(I)" ARE INTERLINKED!!!"^ ERER1:INCREMENT ERROR COUNTERd*+------------------------------------------------------------------4 T&S USAGE PRINTOUT ROUT& ******************************K ** TAPE TO DISK RECOVERY **p ** FOR SEQUENTIAL FILES **( ** WRITTEN BY : JOE GRIFFIN **2 ** BASED ON : **< ** STRING THING (UNIVERSAL) **F ** BY : JIM BUTTERFIELD **)P ******************************MZ STRING MUST BE FIRST VARIABLEhdA$" * JOE GRIFFIN * "~nA$A$A$A$A$A$xA$A$A$A$ ABOVE SETS STRING AT MAX (255) 160,2,177,42,153,134,0,200,192,6,208  246,162,1,32,198,255,32,228,255,164,1397 145,137,200,132,139,201,13,240,8,196b 136,240,4,165,150,240,234,76,204,255J896937:X:J,X:TTX:JT6101 15,8,15: DISK ERROR CHANNEL "NAME FOR RECOVERED FILE ";N$"DRIVE NUMBER 0";D$D$"0"D$"1"220-TT$D$":"N$",SEQ,WRITE"B8,8,8,TT$: 360M1,1,0r: NEXT SYS SAME AS 'INPUT#1,A$' 896:RSST": L=SIZE OF INPUT (COULD BE 0),L(139)68,(A$,L);: (A$,L);@ RS0 280J"STATUS =";STT 1: 8: 15 ^"h15,EN,EM$,ES$,ET$2r EN20 Z| " ISK RROR ";EN;EM$;ET$;ES$d 34096937:X:J,X:TTX:JT6101 15,8,15: DISK ERROR CHANNEL "NAME FOR RECOVERED FILE ";N$"DRIVE NUMBER 0";D$ d DSAVE "@UNBUMP",D1:? DS$Kn "TOP ISK RIVES FROM UMPING"px "ISK RIVE UMBER 8 ";UN UN8 UN15 "";: 120 220 L11 "ORRY RIVE ANNOT BE EBUMPED!": 17015,"M-W"(L2)(L1)(1)(133) 15 :B FIND TYPE OF DRIVE IN USE, SET DIRECTORY TRACKH:u 15,UN,15:15,"M-R"(255)(255):#15,A$ (A$)226 L11:L20:DV$"3040":D$"1.2": 290 (A$)213 L167:L292:DV$"4040":D$"2.1": 290 (A$)254 L10:L2106:DV$"2031":D$"2.6": 290U (A$)242 L116:L2245:DV$"8050":D$"2.5": 290 (A$)198 L11:L20:DV$"8250":D$"2.7": 290 "NIT"(" "(UN),3)" - RIVE NOT RECOGNISED !": 310 " "NIT"(" "(UN),3)" - ";DV$;" RIVE USING ";D$,6 15:DRIVE IN USE, SET DIRECTORY TRACKH:u 15,UN,15:15,"M-R"(255)(255):#15,A$ (A$)226 L11:L20:DV$"3040":D$"1.2": 290 (A$)213 L167:L292:DV$"4040":D$"2.1": 290 (A$)254 L10: d1039BC ȹ 4J5K o҆ԄөRцڄ c ȹT l Ri R:>Y=ADE K匍? ȹ6 `҆Ԅӭ:Rцڄ c  ; ;,<H F HF8?FH W <SPгHAADEBDCE@j @ v LC ȹ] DBEC  A ȹo V ȹ 2  ȹ$ YN C0 ȹl Y N ` Lyk 7" " jȪ!   <k,j`8?F?Alii`->; YN ; =,>=N Q `  1 1I  `  L挥JK`挥LM` NO@lɠ@@@ȥIj @ b҆Ԅӭ@jцڄ c %   ȥii  I NOLD` GD I 0 @lɠ@@l<@,lȩWlȌ@ȱȱLȱ8MGD 8@@I@j GD  Lb҆Ԅӭ@jцڄ c  !  I iiNOL$GT `҆Ԅӭ@lцڄۭ<S c !  `  ! !8L勍PM匍QmPɥmQʩ LɭM `.  ȹ ` ȹ TD GD ȹ YNG ` UNICOPY V2.1 JIM BUTTERFIELD FORMAT OUTPUT DISKS IN ADVANCE DISK INPUT PATTERN? *$0: ** NO FILES ** READING FILES: ** READY TO WRITE FILES ** PRESS ANY KEY -- READY TO READ FILES -- PRESS ANY KEY OUTPUT TO TAPE OR DISK? *WRITE END-OF-TAPE MARK? * ANOTHER OUTPUT? HOLD DOWN 'Y' OR 'N' TO SELECT FILES ... MORE COPY MORE FROM INPUT DISK? LɭM `.  ȹ ` ȹ TD GD+d "UNICOPY .... JIM BUTTERFIELD"Xn " ... INSTRUCTIONS"^x "PROGRAM UNICOPY ALLOWS YOU TO COPY "FILES - PROGRAM OR SEQUENTIAL - USING "A SINGLE DRIVE(2031, 1541, ETC.)  " IT WILL NOT COPY RELATIVE, USER OR8 "DIRECT ACCESS FILES ... USE BACKUP FORF "THESE.s " DISKS TO WHICH YOU ARE COPYING MUST "BE FORMATTED ('NEW'-ED OR 'HEADER'-ED) "BEFORE USING PROGRAM UNICOPY. " THE PROGRAM READS THE DISK DIRECTORY" "AND ALLOWS YOU TO SELECT THE FILES YOUO "WANT. PRESS 'Y' TO ACCEPT A FILE FORo "COPYING, 'N' TO SKIP IT. " PRESS ANY KEY J1 1E9: X$: X$"" J, "YOU MAY 'LOCK IN' THE LAST KEY PRESSED6 "BY PRESSING THE KEY..@ " PATTERN MATCHING: '*' IS ALL FILES;YJ "'A*' IS ALL FILES WHOSE NAMES STARTT "WITH AN A, 'R?D?' ALLOWS FILE NAMES^ "SUCH AS RIDE, REDS AND R2D2.h " ON THE C64, YOU WILL BE ASKED, 'ANYr "RESIDENT PROGRAMS? IF YOU HAVE A WEDGE,3| "MONITOR, LINK OR OTHER PROGRAM IN PLACEa "ANSWER 'Y' AND UNICOPY WILL LEAVE THEM "UNTOUCHED. IF NOT, UNICOPY WILL MAKE "USE OF EXTRA MEMORY TO HOLD PROGRAMS. " WHEN THE INPUT AREA IS FULL, UNICOPY  "WILL SIGNAL '..MORE' AND STOP OFFERINGF  "YOU PROGRAMS TO COPY. 'MORE' TELLS YOUt  "THAT THERE'S PART OF THE DIRECTORY YOU  "HAVEN'T SEEN YET.  " PRESS ANY KEY  J1 1E9: X$: X$"" J  "THE 'READY TO WRITE' SIGNAL ALLOWS YOU(  "TO PLACE THE OUTPUT TAPE OR DISK BEFORES  "PRESSING A KEY TO START THE OUTPUT.  " IT'S A GOOD IDEA TO START THE OUTPUT  "TAPE BEFORE PRESSING THE START KEY. & "THAT WAY, YOU'LL SKIP THE 'PRESS PLAY.. 0 "MESSAGE. : " YOU MAY COPY THE SAME PROGRAMS TOD D "MORE THAN ONE TAPE OR DISK; ANSWER 'Y'f N "TO THE QUESTION 'ANOTHER?' X " IF YOU CHOOSE OUTPUT TO TAPE, YOU'LL b "BE ASKED IF A 'TAPE MARK' IS WANTED. l "THIS SIGNALS END-OF-TAPE SO THAT WHEN v "SEARCHING FOR A PROGRAM, YOU WON'T6  "READ BEYOND THIS POINT.Y TO START THE OUTPUT.  " IT'S A GOOD IDEA TO START THE OUTPUT  "TAPE BEFORE PRESSING THE START KEY. & "THAT WAY, YOU'LL SKIP THE 'PRESS PLAY.. 0 "MESSAGE. : 1d" NIVERSAL OM EST IM UTTERFIELD"_n" DDITIONAL OM YSTEMS BY OE RIFFINx IF YOU FIND ANY OTHER ROM SYSTEMS CONTACT JIM BUTTERFIELD, 14 BROOKLYN AVENUE TORONTO ONT CANADA M4M 2X5 "011 ORIGINAL"- 59487,12796,51858,61980,58622, 7753, 6792, -1, -1B "019 ORIGINAL"~ 59339,12796,51858,61980,58622, 7753, 6792, -1, -1 "UPGRADE PERSONAL" 41799,42993,64959, 8803,38129,43129,23093