home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh3x / sh34c.d64 / musterbrueter (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  11KB  |  499 lines

  1. 100 REM ************************
  2. 110 REM *  MUSTERBRUETER V2.8  *
  3. 120 REM *     VOM 25.12.87     *
  4. 130 REM *        AUTOR:        *
  5. 140 REM *    I. CAMPHAUSEN     *
  6. 150 REM *    ASPENWEG 29       *
  7. 160 REM *    1000 BERLIN 20    *
  8. 170 REM * HARDWARE: C64 + 1541 *
  9. 180 REM ************************
  10. 190 :
  11. 200 IF ZX=0 THEN ZX=1:LOAD"MB.MC",8,1
  12. 210 :
  13. 1000 POKE 56,20000/256:POKE 55,20000 AND 255:CLR
  14. 1010 DIM HM$(9),MZ$(9)
  15. 1020 ZF=0:HF=15:RF=11:F1=0:F0=12
  16. 1030 :
  17. 1040 S1=49152+11*256:REM ADRESSEN FUER SPEICHERBEREICHE
  18. 1050 S2=S1+64
  19. 1060 SD=21519
  20. 1070 NA=S2+64
  21. 1080 AN=49152+10*256
  22. 1090 VIC=53248
  23. 1100 VRAM=49152+12*256
  24. 1105 :
  25. 1110 CALC=20000:REM STARTADRESSEN MASCHINENPGM'S
  26. 1120 COPY=20003
  27. 1130 GCL=20006
  28. 1140 FARBSET=20009
  29. 1150 EIN=20012
  30. 1160 AUS=20015
  31. 1170 DIR=20018
  32. 1180 DEVPRES=20021
  33. 1190 SA=20024
  34. 1200 SPEICHERMAN=20027
  35. 1210 SS=20030
  36. 1220 AS=20033
  37. 1230 ZEICHENNEU=20036
  38. 1240 IS=20039
  39. 1250 :
  40. 1260 :
  41. 1280 SYS 58784:REM VIC INITIALISIEREN
  42. 1290 POKE 53281,HF:POKE 53280,RF:POKE 646,ZF
  43. 1300 SYS ZEICHENNEU:PRINT CHR$(8):REM <C=> <SHIFT> VERRIEGELN
  44. 1310 PRINT "[147]"
  45. 1320 PRINT TAB(13)"[205]USTERMAKER 64"
  46. 1330 PRINT:PRINT TAB(9)"VON [201]NGMAR [195]AMPHAUSEN"
  47. 1340 FOR I=1 TO 9:READ HM$(I):NEXT I
  48. 1350 DATA"[193]USGANGSSTELLUNG EDITIEREN","AKTIVE [206]ACHBARSCHAFT EDITIEREN"
  49. 1360 DATA"N;CHSTES [194]ILD BERECHNEN","[194]ILDERSERIE BERECHNEN","[199]RAFIK LADEN"
  50. 1370 DATA"[199]RAFIK SAVEN","[218]WISCHENSPEICHER BENUTZEN"
  51. 1380 DATA"[199]RAFIK ZEIGEN","[198]ARBEN ;NDERN"
  52. 1390 FOR I=1 TO 9:READ MZ$(I):NEXT I
  53. 1400 DATA"[211]PEICHER L:SCHEN"
  54. 1410 DATA"[199]RAFIK > [211]PEICHER"
  55. 1420 DATA"[211]PEICHER > [199]RAFIK"
  56. 1430 DATA"[199]RAFIK [207][210] [211]PEICHER"
  57. 1440 DATA"[199]RAFIK [193][206][196] [211]PEICHER"
  58. 1450 DATA"[199]RAFIK [216][207][210] [211]PEICHER"
  59. 1460 DATA"[199]RAFIK INVERTIEREN"
  60. 1470 DATA"[211]PEICHER INVERTIEREN"
  61. 1480 DATA"[199]RAFIK ZEIGEN"
  62. 1490 :
  63. 1500 FOR I=AN TO AN+64:POKE I,0:NEXT I
  64. 1510 FOR I=0 TO 63:POKE S1+I,0:POKE S2+I,PEEK(SD+I):NEXT I
  65. 1520 :
  66. 1530 US$=CHR$(183):FOR I=1 TO 5:US$=US$+US$:NEXT I
  67. 1540 :
  68. 1550 :
  69. 1560 REM **********
  70. 1570 REM HAUPTMENUE
  71. 1580 REM **********
  72. 1590 :
  73. 1600 T$="[200]AUPTMENUE":PRINT"[147]":GOSUB 5300:PRINT
  74. 1610 FOR I=1 TO 9
  75. 1620 PRINT TAB(2)I"[157])";SPC(2);HM$(I):PRINT
  76. 1630 NEXT I
  77. 1635 POKE 198,0
  78. 1640 GET A$:IF A$="" THEN GOTO 1640
  79. 1650 IF (A$<"1") OR (A$>"9") THEN GOTO 1640
  80. 1660 A=VAL(A$):T$=HM$(A)
  81. 1670 ON A GOSUB 1700,3300,4100,4190,4420,4560,4700,4900,5000
  82. 1680 GOTO 1600
  83. 1700 :
  84. 1710 REM **************************
  85. 1720 REM AUSGANGSSTELLUNG EDITIEREN
  86. 1730 REM **************************
  87. 1740 :
  88. 1750 PRINT"[147]":GOSUB 5300
  89. 1760 SYS SS:PRINT"";:REM STELLUNG ANZEIGEN
  90. 1770 PRINT:PRINT:PRINT:PRINT
  91. 1780 PRINT TAB(25)"  _ - ZUR@CK":PRINT:PRINT
  92. 1790 PRINT TAB(25)"  [204] - LADEN"
  93. 1800 PRINT TAB(25)"  [211] - SAVEN":PRINT
  94. 1810 PRINT TAB(25)"[211][208][195] - TOGGLE"
  95. 1820 PRINT TAB(25)"[195][204][210] - L:SCHEN"
  96. 1830 PRINT TAB(25)"[201]   - INVERT.":PRINT
  97. 1840 PRINT TAB(25)"   [195][210][211][210] [213][208]"
  98. 1850 PRINT TAB(25)"      ^"
  99. 1860 PRINT TAB(25)"[204][197][198][212] _ > [210][201][199][200][212]"
  100. 1870 PRINT TAB(25)"      <"
  101. 1880 PRINT TAB(25)"  [195][210][211][210] [196][207][215][206]":PRINT:PRINT
  102. 1890 PRINT TAB(25)"[210][197][212][213][210][206] - [197]NDE"
  103. 1900 :
  104. 1910 POKE VIC,112:POKE VIC+1,140:REM X/Y-STARTPOSTION DES FADENKREUZ-CURSORS
  105. 1920 POKE VIC+39,1:REM SPRITEFARBE
  106. 1930 POKE VRAM+1016,45:REM BLOCKPOINTER
  107. 1940 POKE VIC+21,1:REM SPRITE AN
  108. 1950 :
  109. 1960 GET A$:IF A$="" THEN GOTO 1960
  110. 1970 IF A$="_"THEN POKE VIC+21,0:GOTO 3240
  111. 1980 IF A$="[157]" THEN GOTO 2100
  112. 1990 IF A$="" THEN GOTO 2180
  113. 2000 IF A$="[145]" THEN GOTO 2240
  114. 2010 IF A$="" THEN GOTO 2300
  115. 2020 IF A$="[147]" THEN GOTO 2360
  116. 2030 IF A$=" " THEN GOTO 2400
  117. 2040 IF A$="I" THEN GOTO 2500
  118. 2050 IF A$="L" THEN GOTO 2670
  119. 2060 IF A$="S" THEN GOTO 2540
  120. 2070 IF A$=CHR$(13) THEN GOTO 2800
  121. 2080 GOTO 1960
  122. 2090 :
  123. 2100 REM LEFT
  124. 2110 :
  125. 2120 X=PEEK(VIC):IF X=16 THEN 2140
  126. 2130 X=X-8:POKE VIC,X
  127. 2140 GOTO 1960
  128. 2150 :
  129. 2160 REM RIGHT
  130. 2170 :
  131. 2180 X=PEEK(VIC):IF X=200 THEN GOTO 2200
  132. 2190 X=X+8:POKE VIC,X
  133. 2200 GOTO 1960
  134. 2210 :
  135. 2220 REM UP
  136. 2230 :
  137. 2240 Y=PEEK(VIC+1):IF Y=68 THEN GOTO 2260
  138. 2250 Y=Y-8:POKE VIC+1,Y
  139. 2260 GOTO 1960
  140. 2270 :
  141. 2280 REM DOWN
  142. 2290 :
  143. 2300 Y=PEEK(VIC+1):IF Y=228 THEN GOTO 2320
  144. 2310 Y=Y+8:POKE VIC+1,Y
  145. 2320 GOTO 1960
  146. 2330 :
  147. 2340 REM CLEAR
  148. 2350 :
  149. 2360 FOR I=S1 TO S1+63:POKE I,0:NEXT I:PRINT"":PRINT:PRINT:SYS SS
  150. 2370 GOTO 1960
  151. 2380 :
  152. 2390 REM TOGGLE
  153. 2400 :
  154. 2410 X=PEEK(VIC):Y=PEEK(VIC+1)
  155. 2420 X%=(X-16)/8:Y%=(Y-68)/8
  156. 2430 A%=3*Y%+X%/8:B=2^(7-X%AND7)
  157. 2440 P=PEEK(S1+A%):IF (PANDB)=0 THEN POKE S1+A%,P OR B:GOTO 2460
  158. 2450 POKE S1+A%,P AND (255-B)
  159. 2460 PRINT"":PRINT:PRINT:SYS SS:GOTO 1960
  160. 2470 :
  161. 2480 REM INVERT
  162. 2490 :
  163. 2500 SYS IS:PRINT"":PRINT:PRINT:SYS SS:GOTO 1960
  164. 2510 :
  165. 2520 REM SAVEN
  166. 2530 :
  167. 2540 POKE VIC+21,0:N$=""
  168. 2550 PRINT"[147]         [193]USGANGSSTELLUNG SAVEN"
  169. 2560 PRINT:INPUT"[198]ILENAME ";N$:IF N$="_" THEN GOTO 2630
  170. 2570 IF N$="$" THEN GOSUB 5700:GOTO 2540
  171. 2580 IF N$="" THEN GOTO 2630
  172. 2590 SYS DEVPRES:IF ST<>0 THEN GOTO 2540
  173. 2600 S=S1:E=S1+64:REM START- UND ENDADRESSE
  174. 2610 GOSUB 5390:REM BEREICH SPEICHERN
  175. 2620 GOSUB 5490:IF FE<>0 THEN GOTO 2540:REM FEHLERKANAL
  176. 2630 GOTO 1700
  177. 2640 :
  178. 2650 REM LADEN
  179. 2660 :
  180. 2670 POKE VIC+21,0:N$=""
  181. 2680 PRINT"[147]         [193]USGANGSSTELLUNG LADEN"
  182. 2690 PRINT:INPUT"[198]ILENAME ";N$:IF N$="_"THEN GOTO 2760
  183. 2700 IF N$="$" THEN GOSUB 5700:GOTO 2670
  184. 2710 IF N$=""THEN GOTO 2760
  185. 2720 SYS DEVPRES:IF ST<>0 THEN GOTO 2670
  186. 2730 S=S1
  187. 2740 GOSUB 5600:REM LADEN
  188. 2750 GOSUB 5490:IF FE<>0 THEN GOTO 2670:REM FEHLERK.
  189. 2760 GOTO 1700
  190. 2770 :
  191. 2780 REM AUSGANGSSTELLUNG FERTIG, POSITIONIEREN IN DER HIRESGRAFIK
  192. 2790 :
  193. 2800 POKE VIC+21,0:PRINT"[147]"
  194. 2810 POKE VIC,168:POKE VIC+1,138:POKE VIC+16,0
  195. 2820 POKE VIC+39,0:POKE VRAM+1016,44
  196. 2830 POKE VIC+21,1
  197. 2840 GET A$:IF A$="" THEN GOTO 2840
  198. 2850 IF A$="[157]" THEN GOTO 2910
  199. 2860 IF A$="" THEN GOTO 2950
  200. 2870 IF A$="[145]" THEN GOTO 2990
  201. 2880 IF A$="" THEN GOTO 3020
  202. 2890 IF A$=CHR$(13) THEN GOTO 3080
  203. 2900 GOTO 2840
  204. 2905 :
  205. 2910 X=PEEK(VIC)+256*(PEEK(VIC+16) AND 1):IF X=24 THEN GOTO 2930
  206. 2920 X=X-8:POKE VIC,X AND 255:POKE VIC+16,X/256
  207. 2930 GOTO 2840
  208. 2940 :
  209. 2950 X=PEEK(VIC)+256*(PEEK(VIC+16) AND 1):IF X=320 THEN GOTO 2970
  210. 2960 X=X+8:POKE VIC,X AND 255:POKE VIC+16,X/256
  211. 2970 GOTO 2840
  212. 2980 :
  213. 2990 Y=PEEK(VIC+1):IF Y=50 THEN GOTO 3010
  214. 3000 Y=Y-8:POKE VIC+1,Y
  215. 3010 GOTO 2840
  216. 3015 :
  217. 3020 Y=PEEK(VIC+1):IF Y=226 THEN GOTO 3040
  218. 3030 Y=Y+8:POKE VIC+1,Y
  219. 3040 GOTO 2840
  220. 3050 :
  221. 3060 REM SPRITE IN BITMAP KOPIEREN
  222. 3070 :
  223. 3080 X=PEEK(VIC)+256*(PEEK(VIC+16) AND 1):Y=PEEK(VIC+1)
  224. 3090 X%=(X-24)/8:Y%=(Y-50)/8
  225. 3100 AD=57344+8*X%+320*Y%:SYS GCL
  226. 3110 FOR I=0 TO 7
  227. 3120 POKE AD+I,PEEK(S1+3*I)
  228. 3130 POKE AD+8+I,PEEK(S1+1+3*I)
  229. 3140 POKE AD+16+I,PEEK(S1+2+3*I)
  230. 3150 POKE AD+320+I,PEEK(S1+24+3*I)
  231. 3160 POKE AD+328+I,PEEK(S1+25+3*I)
  232. 3170 POKE AD+336+I,PEEK(S1+26+3*I)
  233. 3180 NEXT I
  234. 3185 FOR I=0 TO 4
  235. 3190 POKE AD+640+I,PEEK(S1+48+3*I)
  236. 3200 POKE AD+648+I,PEEK(S1+49+3*I)
  237. 3210 POKE AD+656+I,PEEK(S1+50+3*I)
  238. 3220 NEXT I
  239. 3230 POKE VIC+21,0:SYS COPY
  240. 3240 RETURN
  241. 3250 :
  242. 3260 REM ******************************
  243. 3270 REM AKTIVE NACHBARSCHAFT EDITIEREN
  244. 3280 REM ******************************
  245. 3290 :
  246. 3300 PRINT"[147]":GOSUB 5300
  247. 3310 PRINT:PRINT:PRINT:PRINT:SYS AS
  248. 3320 PRINT"":PRINT:PRINT:PRINT:PRINT
  249. 3330 PRINT TAB(21)"  _ - [200]AUPTMEN@":PRINT:PRINT
  250. 3340 PRINT TAB(21)"[211][208][195] - TOGGLE"
  251. 3350 PRINT TAB(21)"[195][204][210] - L:SCHEN"
  252. 3360 PRINT TAB(21)" [201]  - INVERTIEREN":PRINT
  253. 3370 PRINT TAB(21)"     [213][208]"
  254. 3380 PRINT TAB(21)"      ^"
  255. 3390 PRINT TAB(21)"[204][197][198][212] _ > [210][201][199][200][212]"
  256. 3400 PRINT TAB(21)"      <"
  257. 3410 PRINT TAB(21)"    [196][207][215][206]":PRINT:PRINT
  258. 3420 PRINT TAB(21)"[210][197][212][213][210][206] - [197]NDE"
  259. 3430 :
  260. 3440 POKE VIC,96:POKE VIC+1,123:POKE VIC+16,0
  261. 3450 POKE VIC+39,1:POKE VRAM+1016,45
  262. 3460 POKE VIC+21,1
  263. 3470 :
  264. 3480 GET A$:IF A$="" THEN GOTO 3480
  265. 3490 IF A$="[157]" THEN GOTO 3600
  266. 3500 IF A$="" THEN GOTO 3670
  267. 3510 IF A$="[145]" THEN GOTO 3730
  268. 3520 IF A$="" THEN GOTO 3790
  269. 3530 IF A$="[147]" THEN GOTO 3850
  270. 3540 IF A$=" " THEN GOTO 3900
  271. 3550 IF A$="I" THEN GOTO 3980
  272. 3560 IF A$="_" THEN GOTO 4030
  273. 3570 IF A$=CHR$(13) THEN GOTO 4030
  274. 3580 :
  275. 3590 REM LEFT
  276. 3600 :
  277. 3610 X=PEEK(VIC):IF X=72 THEN GOTO 3630
  278. 3620 X=X-8:POKE VIC,X
  279. 3630 GOTO 3480
  280. 3640 :
  281. 3650 REM RIGHT
  282. 3660 :
  283. 3670 X=PEEK(VIC):IF X=120 THEN 3690
  284. 3680 X=X+8:POKE VIC,X
  285. 3690 GOTO 3480
  286. 3700 :
  287. 3710 REM UP
  288. 3720 :
  289. 3730 Y=PEEK(VIC+1):IF Y=99 THEN 3750
  290. 3740 Y=Y-8:POKE VIC+1,Y
  291. 3750 GOTO 3480
  292. 3760 :
  293. 3770 REM DOWN
  294. 3780 :
  295. 3790 Y=PEEK(VIC+1):IF Y=147 THEN 3810
  296. 3800 Y=Y+8:POKE VIC+1,Y
  297. 3810 GOTO 3480
  298. 3820 :
  299. 3830 REM CLEAR
  300. 3840 :
  301. 3850 FOR I=0 TO 64:POKE AN+I,0:NEXT I
  302. 3860 PRINT"":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:SYS AS
  303. 3865 GOTO 3480
  304. 3870 :
  305. 3880 REM TOGGLE
  306. 3890 :
  307. 3900 X=PEEK(VIC):Y=PEEK(VIC+1)
  308. 3910 X%=(X-72)/8:Y%=(Y-99)/8
  309. 3920 AD=AN+8*Y%+X%:P=PEEK(AD)
  310. 3925 IF P<>0 THEN POKE AD,0:GOTO 3940
  311. 3930 POKE AD,1
  312. 3940 PRINT"":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:SYS AS
  313. 3945 GOTO 3480
  314. 3950 :
  315. 3960 REM INVERT
  316. 3970 :
  317. 3980 FOR I=0 TO 63:POKE AN+I,-(PEEK(AN+I)=0):NEXT I
  318. 3990 PRINT"":PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:SYS AS
  319. 3995 GOTO 3480
  320. 4000 :
  321. 4010 REM FERTIG
  322. 4020 :
  323. 4030 POKE VIC+21,0
  324. 4040 RETURN
  325. 4050 :
  326. 4060 REM ************************
  327. 4070 REM NAECHSTES BILD BERECHNEN
  328. 4080 REM ************************
  329. 4090 :
  330. 4100 SYS GCL:POKE 780,F1*16+F0:SYS FARBSET:SYS EIN
  331. 4105 SYS CALC
  332. 4110 POKE 198,0:WAIT 198,1
  333. 4120 SYS AUS
  334. 4130 RETURN
  335. 4140 :
  336. 4150 REM *********************
  337. 4160 REM BILDERSERIE BERECHNEN
  338. 4170 REM *********************
  339. 4180 :
  340. 4190 PRINT"[147]":GOSUB 5300:PRINT:NA$="":MB$="":S$=""
  341. 4200 INPUT"MAXIMALE [194]ILDERZAHL ";MB$:IF MB$="_" THEN GOTO 4360
  342. 4210 MB=VAL(MB$):IF (INT(MB)<>MB) OR (MB<1) THEN GOTO 4200
  343. 4220 PRINT:PRINT:PRINT"[213]NTER WELCHEM [206]AMEN SOLL DIE [194]ILDERSERIE";
  344. 4230 INPUT"ABGESPEICHERT WERDEN ";NA$:IF NA$="_" THEN GOTO 4360
  345. 4240 IF NA$="" THEN GOTO 4220
  346. 4250 :
  347. 4260 Z=1:NR=1
  348. 4270 SYS GCL:POKE 780,F1*16+F0:SYS FARBSET:SYS EIN:SYS CALC
  349. 4280 N$=NA$+"."+STR$(NR)
  350. 4290 SYS AUS:PRINT"[147]":GOSUB 5300:PRINT
  351. 4300 SYS DEVPRES:IF ST<>0 THEN GOTO 4290
  352. 4310 S=40960:E=S+8192:SF=1
  353. 4320 GOSUB 5390:SYS SA:REM BEREICH SPEICHERN
  354. 4330 GOSUB 5490:IF FE<>0 THEN GOTO 4190:REM FEHLERKANAL
  355. 4340 NR=NR+1:Z=Z+1
  356. 4350 IF Z<=MB THEN GOTO 4270
  357. 4360 RETURN
  358. 4370 :
  359. 4380 REM ************
  360. 4390 REM GRAFIK LADEN
  361. 4400 REM ************
  362. 4410 :
  363. 4420 PRINT"[147]":GOSUB 5300:N$=""
  364. 4430 INPUT"[198]ILENAME ";N$:IF N$="_" THEN GOTO 4505
  365. 4440 IF N$="" THEN GOTO 4505
  366. 4450 IF N$="$" THEN GOSUB 5720:GOTO 4420
  367. 4460 SYS DEVPRES:IF ST<>0 THEN GOTO 4420
  368. 4470 S=57344
  369. 4480 GOSUB 5600:REM LADEN
  370. 4490 GOSUB 5490:IF FE<>0 THEN GOTO 4420:REM FEHLERK.
  371. 4500 SYS COPY
  372. 4505 RETURN
  373. 4510 :
  374. 4520 REM ************
  375. 4530 REM GRAFIK SAVEN
  376. 4540 REM ************
  377. 4550 :
  378. 4560 PRINT"[147]":GOSUB 5300:N$=""
  379. 4570 INPUT"[198]ILENAME ";N$:IF N$="_" THEN GOTO 4650
  380. 4580 IF N$="" THEN GOTO 4650
  381. 4590 IF N$="$" THEN GOSUB 5720:GOTO 4560
  382. 4610 SYS DEVPRES:IF ST<>0 THEN GOTO 4560
  383. 4620 S=40960:E=S+8192:SF=1
  384. 4630 GOSUB 5390:SYS SA:REM BEREICH SPEICHERN
  385. 4640 GOSUB 5490:IF FE<>0 THEN GOTO 4560:REM FEHLERKANAL
  386. 4650 RETURN
  387. 4660 :
  388. 4670 REM ***************************
  389. 4680 REM ARBEIT MIT ZWISCHENSPEICHER
  390. 4690 REM ***************************
  391. 4700 :
  392. 4710 PRINT"[147]":GOSUB 5300:PRINT
  393. 4720 FOR I=1 TO 9
  394. 4730 PRINT TAB(6)I"[157])";SPC(2);MZ$(I):PRINT
  395. 4740 NEXT I
  396. 4750 PRINT:PRINT TAB(7)"_ - ZUR@CK ZUM [200]AUPTMEN@"
  397. 4760 :
  398. 4770 POKE 198,0
  399. 4775 GET A$:IF A$="" THEN GOTO 4775
  400. 4780 IF A$="_" THEN 4850
  401. 4790 A=VAL(A$):IF A<1 OR A>9 THEN GOTO 4775
  402. 4800 IF A=9 THEN GOSUB 4920:GOTO 4710
  403. 4810 POKE 53280,255-PEEK(53280)
  404. 4820 POKE 781,A:SYS SPEICHERMAN:SYS COPY
  405. 4830 POKE 53280,255-PEEK(53280)
  406. 4840 GOTO 4770
  407. 4850 RETURN
  408. 4860 :
  409. 4870 REM *************
  410. 4880 REM GRAFIK ZEIGEN
  411. 4890 REM *************
  412. 4900 :
  413. 4920 POKE 780,16*F1+F0:SYS FARBSET:SYS EIN
  414. 4940 POKE 198,0:WAIT 198,1
  415. 4950 SYS AUS:PRINT"[147]"
  416. 4955 RETURN
  417. 4960 :
  418. 4970 REM **************
  419. 4980 REM FARBEN AENDERN
  420. 4990 REM **************
  421. 5000 :
  422. 5010 Z2=ZF:H2=HF:R2=RF:P2=F1:B2=F0
  423. 5020 PRINT"[147]":GOSUB 5300:PRINT
  424. 5030 PRINT TAB(7)"_ - ZUR@CK ZUM [200]AUPTMEN@":PRINT:PRINT
  425. 5040 POKE 646,Z2:PRINT TAB(7)"1)  [218]EICHENFARBE":PRINT
  426. 5050 POKE 646,ZF:POKE 53281,H2:PRINT TAB(7)"2)  [200]INTERGRUNDFARBE":PRINT
  427. 5060 POKE 646,P2:PRINT TAB(7)"3)  [214]ORDERGRUND [200]IRES":PRINT
  428. 5070 POKE 646,B2:PRINT TAB(7)"4)  [200]INTERGRUND [200]IRES":PRINT
  429. 5080 POKE 646,ZF:POKE 53280,R2:PRINT TAB(7)"5)  [210]AHMENFARBE":PRINT:PRINT
  430. 5090 POKE 646,ZF:PRINT TAB(4)"[210][197][212][213][210][206]  NEUE [198]ARBEN @BERNEHMEN"
  431. 5100 GET A$:IF A$="" THEN GOTO 5100
  432. 5110 IF A$="_" THEN GOTO 5230
  433. 5120 IF A$=CHR$(13) THEN GOTO 5220
  434. 5130 A=VAL(A$):IF A<1 OR A>5 THEN GOTO 5100
  435. 5140 ON A GOTO 5160,5170,5180,5190,5200
  436. 5150 :
  437. 5160 Z2=(Z2+1) AND 15:GOTO 5020
  438. 5170 H2=(H2+1) AND 15:POKE 53281,H2:GOTO 5020
  439. 5180 P2=(P2+1) AND 15:GOTO 5020
  440. 5190 B2=(B2+1) AND 15:GOTO 5020
  441. 5200 R2=(R2+1) AND 15:POKE 53280,R2:GOTO 5020
  442. 5210 :
  443. 5220 ZF=Z2:RF=R2:HF=H2:F1=P2:F0=B2
  444. 5230 POKE 646,ZF:POKE 53280,RF:POKE 53281,HF
  445. 5240 RETURN
  446. 5250 :
  447. 5260 :
  448. 5270 REM ************************
  449. 5280 REM UP UEBERSCHRIFT AUSGEBEN
  450. 5290 REM ************************
  451. 5300 :
  452. 5310 PRINT"":TA=(40-LEN(T$))/2
  453. 5320 PRINT TAB(TA) T$:PRINT TAB(TA) LEFT$(US$,LEN(T$))
  454. 5330 RETURN
  455. 5340 :
  456. 5350 REM ***************
  457. 5360 REM BEREICH ABSAVEN
  458. 5370 REM ***************
  459. 5380 :
  460. 5390 SYS (57812)N$,8
  461. 5400 POKE 194,INT(S/256):POKE 193,S-256*PEEK(194)
  462. 5410 POKE 175,INT(E/256):POKE 174,E-256*PEEK(175)
  463. 5420 IF SF=0 THEN SYS 62957
  464. 5430 SF=0
  465. 5435 RETURN
  466. 5440 :
  467. 5450 REM ********************
  468. 5460 REM FEHLERKANAL ABFRAGEN
  469. 5470 REM ********************
  470. 5480 :
  471. 5490 FE=0:OPEN 1,8,15
  472. 5500 INPUT#1,FE,FE$,F$,F$
  473. 5510 CLOSE 1
  474. 5520 PRINT:PRINT FE,FE$
  475. 5530 IF FE<>0 THEN POKE 198,0:WAIT 198,1
  476. 5540 RETURN
  477. 5550 :
  478. 5560 REM *****
  479. 5570 REM LADEN
  480. 5580 REM *****
  481. 5590 :
  482. 5600 POKE 781,8:POKE 782,0:SYS 65466
  483. 5610 FOR I=1 TO LEN(N$):POKE NA-1+I,ASC(MID$(N$,I,1)):NEXT I
  484. 5620 POKE 782,NA/256:POKE 781,NA-256*PEEK(782)
  485. 5630 POKE 780,LEN(N$):SYS 65469
  486. 5640 POKE 780,0:POKE 782,S/256:POKE 781,S-256*PEEK(782)
  487. 5650 SYS 65493
  488. 5660 RETURN
  489. 5670 :
  490. 5680 REM *********
  491. 5690 REM DIRECTORY
  492. 5700 REM *********
  493. 5710 :
  494. 5720 PRINT"":PRINT:PRINT:PRINT:PRINT
  495. 5730 SYS DEVPRES:IF ST<>0 THEN GOTO 5760
  496. 5740 SYS DIR:GOSUB5490:IF FE<>0 THEN GOTO 5760
  497. 5750 POKE 198,0:WAIT 198,1
  498. 5760 RETURN
  499.