1000 REM ************************* 1010 REM * * 1020 REM * S O L I T A I R E * 1030 REM * * 1040 REM * VON DIRK EUMANN * 1050 REM * ITZEHOER STR. 7C * 1060 REM * 2300 KIEL - 1 * 1070 REM * * 1080 REM ************************* 1090 : 1100 REM --- FARBEN ------------------- 1110 : 1120 HF =11 :REM HINTERGRUND/RAHMEN 1130 F0$="":REM CURSOR 1140 F1$="[144]":REM LEERE FELDER 1150 F2$="[152]":REM GITTER 1160 F3$="[155]":REM BESETZTE FELDER 1170 : 1180 REM --- SPIELFELDELEMENTE -------- 1190 : 1200 X$ =F3$+"[209]"+F2$+"[192]" 1210 X1$=X$+X$+X$+X$+F3$+"[209]" 1220 X2$=F2$+"[221] [221] [221][160][221][160][221]" 1230 X3$=X$+X$+X$+X$+X$+X$+X$+X$+X1$ 1240 X4$=F2$+"[221] [221] [221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221][160][221] [221]" 1250 X5$=LEFT$(X3$,24)+F1$+"[215]"+MID$(X3$,27) 1260 : 1270 REM --- WEITERE VARIABLE --------- 1280 : 1290 BS=1024 :REM VIDEO-RAM 1300 FS=55296:REM FARB-RAM 1310 JS=56320:REM JOYSTICK PORT#2 1320 R =104 :REM RESTLICHE STEINE 1330 WA=600 :REM DAUER WARTESCHLEIFE 1340 : 1350 POKE53280,HF:POKE53281,HF 1360 PRINTCHR$(9)CHR$(142)CHR$(8)CHR$(147); 1370 GOSUB2410:REM SPIELFELD 1380 : 1390 REM ------------------------------ 1400 REM STEUERUNG 1410 REM ------------------------------ 1420 FORI=1TO100:NEXT 1430 POKE204,0:GETA$ 1440 J=PEEK(JS):IF(JAND31)=31 AND A$=""THEN1430 1450 POKE205,2 1460 IFPEEK(207)THEN1460 1470 POKE204,1:CZ=PEEK(214):CS=PEEK(211) 1480 IFA$=" "THENF=1:POKE53281,15:GOTO1360 1490 IF(JAND16)=0THENGOSUB1830:GOTO1420 1500 IF(JAND1) =0THENGOSUB1580:GOTO1420 1510 IF(JAND2) =0THENGOSUB1640:GOTO1420 1520 IF(JAND4) =0THENGOSUB1760:GOTO1420 1530 IF(JAND8) =0THENGOSUB1700:GOTO1420 1540 GOTO1420 1550 : 1560 REM --- OBEN --------------------- 1570 : 1580 IF CZ<=0 THEN RETURN 1590 IF CZ<=8 THENIF CS<15 OR CS>23 THENRETURN 1600 PRINTF0$"[145][145]";:RETURN 1610 : 1620 REM --- UNTEN -------------------- 1630 : 1640 IF CZ>=24 THEN RETURN 1650 IF CZ>=16 THENIF CS<15 OR CS>23 THENRETURN 1660 PRINTF0$"";:RETURN 1670 : 1680 REM --- RECHTS ------------------- 1690 : 1700 IF CS>=31 THEN RETURN 1710 IF CS>=23 THENIF CZ<8 OR CZ>16 THENRETURN 1720 PRINTF0$"";:RETURN 1730 : 1740 REM --- LINKS -------------------- 1750 : 1760 IF CS<=7 THEN RETURN 1770 IF CS<=15 THENIF CZ<8 OR CZ>16 THEN RETURN 1780 PRINTF0$"[157][157]";:RETURN 1790 : 1800 REM ------------------------------ 1810 REM SPRUNG 1820 REM ------------------------------ 1830 Z=PEEK(BS+40*CZ+CS):IF Z<>81 THENRETURN 1840 IF(JAND1)=0THEN1920 1850 IF(JAND2)=0THEN2020 1860 IF(JAND4)=0THEN2220 1870 IF(JAND8)=0THEN2120 1880 RETURN 1890 : 1900 REM --- OBEN --------------------- 1910 : 1920 Z1=PEEK(BS+40*(CZ-2)+CS) 1930 Z2=PEEK(BS+40*(CZ-4)+CS):GOSUB2330 1940 IF F THEN F=0:GOTO2350 1950 FORI=0TO2:X=40*(CZ-2*I)+CS:POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT 1960 FORI=1TOWA:NEXT 1970 PRINTF1$"[215]";:POKE214,CZ-2:POKE211,CS:SYS58640:PRINT"[215]"; 1980 POKE214,CZ-4:POKE211,CS:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN 1990 : 2000 REM --- UNTEN -------------------- 2010 : 2020 Z1=PEEK(BS+40*(CZ+2)+CS) 2030 Z2=PEEK(BS+40*(CZ+4)+CS):GOSUB2330 2040 IF F THEN F=0:GOTO2350 2050 FORI=0TO2:X=40*(CZ+2*I)+CS:POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT 2060 FORI=1TOWA:NEXT 2070 PRINTF1$"[215]";:POKE214,CZ+2:POKE211,CS:SYS58640:PRINT"[215]"; 2080 POKE214,CZ+4:POKE211,CS:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN 2090 : 2100 REM --- RECHTS ------------------- 2110 : 2120 Z1=PEEK(BS+40*CZ+(CS+2)) 2130 Z2=PEEK(BS+40*CZ+(CS+4)):GOSUB2330 2140 IF F THEN F=0:GOTO2350 2150 FORI=0TO2:X=40*CZ+(CS+2*I):POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT 2160 FORI=1TOWA:NEXT 2170 PRINTF1$"[215]";:POKE214,CZ:POKE211,CS+2:SYS58640:PRINT"[215]"; 2180 POKE214,CZ:POKE211,CS+4:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN 2190 : 2200 REM --- LINKS -------------------- 2210 : 2220 Z1=PEEK(BS+40*CZ+(CS-2)) 2230 Z2=PEEK(BS+40*CZ+(CS-4)):GOSUB2330 2240 IF F THEN F=0:GOTO2350 2250 FORI=0TO2:X=40*CZ+(CS-2*I):POKEBS+X,86:POKEFS+X,ABS(I>1):NEXT 2260 FORI=1TOWA:NEXT 2270 PRINTF1$"[215]";:POKE214,CZ:POKE211,CS-2:SYS58640:PRINT"[215]"; 2280 POKE214,CZ:POKE211,CS-4:SYS58640:PRINTF3$"[209][157]"F0$;:RETURN 2290 : 2300 REM ------------------------------ 2310 REM EINGABEFEHLER/REST 2320 REM ------------------------------ 2330 IF Z1<>81 OR Z2<>87 THENF=1:RETURN 2340 R=R-1:PRINT""F2$;TAB(32)R"[157] " 2350 POKE214,CZ:POKE211,CS:SYS58640 2360 RETURN 2370 : 2380 REM ----------------------------- 2390 REM SPIELFELD AUSGEBEN 2400 REM ----------------------------- 2410 PRINTTAB(15)X1$F2$" REST:";R 2420 PRINTTAB(15)X2$ 2430 PRINTTAB(15)X1$:PRINTTAB(15)X2$ 2440 PRINTTAB(15)X1$:PRINTTAB(15)X2$ 2450 PRINTTAB(15)X1$:PRINTTAB(15)X2$ 2460 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$ 2470 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$ 2480 PRINTTAB( 7)X5$:PRINTTAB( 7)X4$ 2490 PRINTTAB( 7)X3$:PRINTTAB( 7)X4$ 2500 PRINTTAB( 7)X3$:PRINTTAB(15)X2$ 2510 PRINTTAB(15)X1$:PRINTTAB(15)X2$ 2520 PRINTTAB(15)X1$:PRINTTAB(15)X2$ 2530 PRINTTAB(15)X1$:PRINTTAB(15)X2$ 2540 PRINTTAB(15)X1$;F0$; 2550 IFFTHENF=0:GOTO 2630 2560 F=1:PRINT"":FORI=1TO9:PRINT:NEXT 2570 PRINTTAB(9)F1$"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 2580 PRINTTAB(9)"[221]"F0$" *** SOLITAIRE *** "F1$"[221]" 2590 PRINTTAB(9)"[221] [221]" 2600 PRINTTAB(9)"[221]"F2$"(C)1986 DIRK EUMANN"F1$"[221]" 2610 PRINTTAB(9)"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]" 2620 FORI=1TO3000:NEXT:PRINT"";:POKE53281,15:GOTO2410 2630 POKE214,12:POKE211,19:SYS58640 2640 POKE53281,HF:RETURN