5 'DEBUG Re-Location Program Copyright 1986,1987,1988,1990 Adrian Ryan 10 CLEAR512,MAXRAM:VN$="4.13":VO=4503:OA=58073 20 FN$="DEBUG CO":DA=63897:CLS:PRINT@41,"DEBUG Version: ";VN$;" Re-Locator Program" 30 PRINT"Searching for: ";FN$:GOSUB2000:IFAD=0THENBEEP:PRINTFN$;" not found":END 40 FORI=0TO3:V$=V$+CHR$(PEEK(AD+VO+I)):NEXTI:IFVN$<>V$THENBEEP:PRINT"Wrong Version of DEBUG!":END 50 TP=PEEK(AD)+256*PEEK(AD+1):L=(PEEK(AD+2)+256*PEEK(AD+3))-1:EX=PEEK(AD+4)+256*PEEK(AD+5) 60 CLS:PRINT"Present Start Location:";TP:PRINT"Present Entry Point :";EX:PRINT"File Length :";L:PRINT 65 INPUT"Enter new start location:";NS:IFNS>OAORNS<32512THENBEEP:PRINT"Illegal Address!":GOTO60 70 PRINT:PRINT"Do you wish to continue?(Y/N)"; 80 Z$=INKEY$:IFZ$=""THEN80 90 IFZ$<>"Y"ANDZ$<>"y"THENBEEP:END 100 DF=TP-NS:TP=TP-DF:EX=EX-DF:V=TP:GOSUB1000:POKEAD,LO%:POKEAD+1,HI%:V=EX:GOSUB1000:POKEAD+4,LO%:POKEAD+5,HI%:CLS 110 READD:IFD=9999THEN130 120 PRINT@129,"Address Offset:";D:V=PEEK(AD+D)+256*PEEK(AD+D+1):V=V-DF:GOSUB1000:POKEAD+D,LO%:POKEAD+D+1,HI%:GOTO110 130 BEEP:CLS:PRINT@53,"New Top:";TP:PRINT@93,"New End:";TP+L:PRINT@133,"New Exe:";EX:PRINT"Done":END 1000 HI%=V/256:LO%=V-256*HI%:RETURN 2000 FORI%=0TO18:D$="":FORJ%=0TO10:D$=D$+CHR$(PEEK(DA+(11*I%)+J%)):NEXTJ%:IFASC(LEFT$(D$,1))<128THEN2040 2010 P%=INSTR(4,D$,FN$):IFP%=0THEN2030 2020 PRINT"Found:";FN$:AD=ASC(MID$(D$,2,1))+256*ASC(MID$(D$,3,1)) 2030 IFAD<>0THENI%=18 2040 NEXTI%:RETURN 3000 DATA 7,11,17,23,33,38,41,48,55,60,63,68,72,79,92,101 3010 DATA 104,107,110,113,116,119,130,133,136,140,145,148,152,155,158,161 3020 DATA 164,167,170,173,176,182,188,191,194,197,202,205,208,211,215,219 3030 DATA 222,227,231,234,239,242,247,252,258,261,269,274,277,280,288,291 3040 DATA 294,309,315,318,330,336,339,342,345,348,351,355,360,363,367,371 3050 DATA 377,381,386,389,392,395,398,401,404,408,418,423,428,431,438,442 3060 DATA 445,448,457,460,463,472,475,481,484,487,490,493,496,499,502,505 3070 DATA 508,511,514,517,522,525,529,534,538,545,549,555,558,564,567,570 3080 DATA 573,576,581,587,590,596,599,602,605,608,612,615,618,624,633,639 3090 DATA 642,645,648,651,654,657,660,664,668,672,678,684,696,702,705,711 3100 DATA 715,720,723,729,733,736,742,745,753,761,765,768,771,774,781,785 3110 DATA 796,799,804,807,810,813,816,819,822,825,831,837,840,844,848,851 3120 DATA 855,860,863,866,875,878,882,885,888,892,895,898,901,904,907,910 3130 DATA 913,916,920,923,927,930,936,940,943,946,949,957,962,965,968,971 3140 DATA 974,977,980,983,986,989,992,995,998,1002,1008,1014,1017,1025,1031,1037 3150 DATA 1040,1043,1047,1050,1053,1056,1061,1064,1067,1070,1073,1076,1080,1083,1086,1097 3160 DATA 1102,1107,1110,1113,1118,1121,1124,1127,1130,1134,1137,1140,1143,1149,1152,1155 3170 DATA 1158,1161,1164,1167,1171,1174,1179,1182,1185,1188,1192,1195,1198,1203,1206,1209 3180 DATA 1215,1220,1225,1230,1235,1242,1251,1254,1260,1263,1266,1271,1274,1284,1287,1290 3190 DATA 1296,1299,1307,1310,1313,1316,1321,1324,1330,1333,1336,1339,1342,1350,1359,1364 3200 DATA 1371,1377,1380,1396,1400,1406,1409,1423,1436,1441,1449,1467,1470,1477,1480,1489 3210 DATA 1495,1502,1508,1518,1522,1529,1532,1538,1545,1549,1552,1573,1579,1583,1587,1593 3220 DATA 1596,1599,1603,1610,1614,1626,1630,1634,1637,1640,1648,1655,1658,1661,1669,1672 3230 DATA 1675,1678,1688,1691,1695,1698,1701,1710,1713,1716,1719,1722,1727,1730,1733,1737 3240 DATA 1746,1750,1754,1757,1761,1764,1770,1773,1778,1781,1790,1794,1827,1838,1843,1853 3250 DATA 1856,1862,1865,1870,1873,1885,1894,1897,1906,1912,1917,1922,1925,1929,1933,1941 3260 DATA 1946,1952,1957,1960,1963,1967,1973,1977,1980,1990,2003,2012,2016,2020,2023,2028 3270 DATA 2031,2037,2043,2049,2057,2068,2077,2081,2085,2089,2109,2115,2118,2123,2126,2129 3280 DATA 2133,2138,2141,2144,2147,2151,2155,2158,2161,2164,2167,2171,2177,2181,2185,2189 3290 DATA 2197,2201,2205,2209,2216,2220,2225,2230,2234,2238,2246,2258,2261,2276,2285,2294 3300 DATA 2300,2305,2310,2316,2327,2332,2336,2341,2348,2354,2359,2365,2372,2377,2381,2384 3310 DATA 2387,2392,2396,2399,2402,2405,2408,2411,2414,2417,2427,2434,2437,2441,2447,2450 3320 DATA 2454,2457,2462,2467,2471,2482,2485,2489,2507,2518,2525,2530,2542,2554,2559,2566 3330 DATA 2571,2583,2594,2634,2639,2647,2656,2664,2668,2671,2681,2691,2698,2701,2726,2730 3340 DATA 2737,2741,2757,2761,2771,2776,2788,2795,2798,2801,2809,2812,2826,2830,2833,2837 3350 DATA 2840,2843,2851,2863,2870,2873,2876,2879,2882,2885,2888,2891,2894,2897,2900,2903 3360 DATA 2906,2909,2912,2915,2918,2921,9999