5 Linii
Refleks
Pan Adam Salamon przysłał program, który świetnie nadaje się do szkolenia początkujących "wklepywaczy". Wyświetla on litery w różnych miejscach ekranu, na co trzeba odpowiadać naciskaniem odpowiadających im klawiszy. Rywalizacja "kto osiągnie najkrótszy czas" jest niezłą, wciągającą zabawą.
1 GRAPHICS 0:POKE 755,0:POKE 731,1:OPE
N #1,4,0,"K:":EKR=PEEK(88)+256*PEEK(89
):S=0:FOR I=1 TO 10
2 X=INT(RND(0)*26)+33:W=INT(RND(0)*960
):POKE EKR+W,X:POKE EKR+W,X:POKE 20,0:
POKE 19,0
3 GET #1,K:ON X+32<>K GOTO 3:S=S+256*P
EEK(19)+PEEK(20):FOR J=1 TO 50:SOUND 0
,100,14,15:NEXT J:SOUND 0,0,0,0
4 POKE EKR+W,0:NEXT I:? :? "TWOJ SREDN
I CZAS ";S/500;" SEK.":POKE 755,2:POKE
731,0:CLOSE #1
Literki
Trudno mówić o przydatności tego programu, nadesłanego przez pana Jerzego Kasenberga, ale pomysł i brawurowa realizacja zasługują na uwagę.
1 FOR I=0 TO 126:READ A:POKE 1536+I,A:NE
XT I:LIST :POKE 552,0:POKE 553,6:POKE 53
8,1:DATA 160,0,165,205,208,77,173
2 DATA 10,210,101,88,133,203,165,206,101
,89,133,204,162,4,134,207,173,10,210,41,
3,133,206,162,192,202,208,10,198,207
3 DATA 208,6,169,3,141,27,2,96,32,122,6,
144,12,165,203,233,192,133,203,165,204,2
33,3,133,204,177,203,208,13,24,165
4 DATA 203,105,13,133,203,144,213,230,20
4,208,209,133,207,152,44,165,208,145,203
,24,165,203,105,40,133,203,144,2,230
5 DATA 204,32,122,6,176,11,177,203,133,2
08,165,207,145,203,169,3,44,169,0,133,20
5,238,26,2,96,165,204,197,106,96,06,96
Pauza
Pan Przemysław Adamczak nadesłał program do genero-wania opóźnienia czasowego. Program jest oparty na pomyśle zaczerpniętym z Bajtka i ma tylko 2 linijki. Opóźnienie uzyskuje się w wyniku wykonania rozkazu.
X=USR(ADR(PAUZA$),CZAS)
gdzie CZAS to czas trwania przerwy w jednostkach równych 1/50 sekundy (dla komputerów pracujących w systemie PAL).
1 DIM PAUZA$(20):RESTORE 2:FOR A=1 TO
20:READ B:PAUZA$(A,A)=CHR$(B):NEXT A
2 DATA 104,104,141,33,2,104,141,33,2,1
73,33,2,208,251,173,32,2,208,251,96
Rurka
Na pierwszy rzut oka ten program Łukasza Wasilewskiego z Ełku ma niewiele wspólnego z rubryką 5 linii... W rzeczywistości tworzy on dopiero właściwy program, który można zgrać na kasetę rozkazem LIST "C:",1,5 lub na dyskietkę - LIST "D:RURKA.LST",1,5. Innym sposobem oddzielenia "pięciolinijkowca" jest skasowanie wszystkich wierszy o numerach większych od 5 i zapisanie go przez CSAVE lub SAVE. Efekt działania programu jest całkiem niebrzydki.
10 POKE 82,0:GRAPHICS 0:POSITION 0,3:?
"1POKE82,0:GR.0:RES.:F.I=39962TO39970
:READA:POKEI,A:NEXTI:POKE39998,26:";
11 ? "POKE560,26:D.112,240,102,60,6,70
,40,6,16":POSITION 0,6:? "2POKE766,1:P
OKE88,0:POKE89,6:?";CHR$(34);:S=0
12 POKE 766,1:RESTORE 20:FOR I=1 TO 85
:READ A:? CHR$(A);:S=S+A:NEXT I:? CHR$
(34);";":POSITION 0,9:? "3?";CHR$(34);
13 FOR I=1 TO 84:READ A:? CHR$(A);:S=S
+A:NEXT I:? CHR$(34);":";:ON S<>16122
GOTO 19:? "POKE88,64:POKE89,156:";
14 POKE 766,0:? "POKE766,0":POSITION 0
,12:? "4POKE1568,2:POKE1575,2:POKE1621
,2:POKE1626,2:POKE710,4:POKE712,4";
15 ? ":POKE83,19:?CHR$(125);";CHR$(34)
;" TAJEMNICE ATARI ";CHR$(34):POSIT
ION 0,15:? "5F.I=0TO39:POKE1576+I,";
16 ? "(PEEK(I+40000)):NEXTI:POKE83,39:
?CHR$(125):A=USR(1616):END":POSITION 0
,18:? "POKE842,12:CONT"
17 POSITION 0,0:POKE 842,13:STOP
18 ? CHR$(125);"GOTOWE":END
19 ? :? "BLAD":STOP
20 DATA 8,170,8,194,40,221,63,38,173,4
2,148,173,58,144,105,36,173,54,144,138
,48,239,201,36,173,54,144,104,202,104
21 DATA 0,36,0,36,38,40,40,38,36,0,32,
32,32,32,32,32,32,32,32,32,32,32,32,32
,32,32,32,32,32,32,32,32,32,32,32,32
22 DATA 32,32,32,32,32,32,32,32,32,32,
32,32,32,32,104,201,32,173,32,0,201,38
,173,33,0,194,128,174,46,148,194,36
23 DATA 166,139,194,32,174,37,148,166,
140,192,114,194,38,12,28,228,134,139,1
44,80,201,36,165,139,230,140,197,140
24 DATA 137,39,144,63,194,92,192,72,20
5,61,188,137,72,144,44,174,61,188,172,
64,188,201,62,165,139,144,38,172,61
25 DATA 188,174,64,188,201,32,165,140,
173,37,148,12,226,128
Dziesbin
Wiele osób przysyła programy do konwersji liczb z systemu dziesiętnego na dwójkowy. Nierzadko mają one zabawne tytuły, na przykład "dziesbin" i z trudem mieszczą się w pięciu linijkach. Redakcyjny kosz jest pełen takich programów. Z litości dla umęczonej poczty prezentuję dziś moją wersję:
1 N=16:W=2^(N-1):? "LICZBA":INPUT X:FO
R I=1 TO N:D=X>=W:X=(X-W*D)*2:? CHR$(4
8+D);:NEXT I:?
Liczba N określa długość liczby dwójkowej. Jeśli wymyślisz lepsze (krótsze?) rozwiązanie, możesz je przysłać. A jak nie, to sam je ciśnij do kosza.
Redaktor
|