26

O.K. - demo można ściągnąć stąd: http://sikor_soft.w.interia.pl/temp/demou.atr (proszę gdzieś dodać na stały serwer, bo stąd za kilka dni zniknie) ;) Wszyscy wymienieni w creditsach i nie tylko są proszeni o zakupienie sobie piwa na grzybsoniadzie i wypicie w moim towarzystwie, jako prowodyra ;)
Dzięki za przednią zabawę ;)
Sposób uruchomienia: wgrać atr-a z Basiciem, wejść do basica, wpisać: RUN "D:PADEMO.BAS" i napawać się widokiem dema ;)
Może za rok zrobimy kolejną edycję ;)

Sikor umarł...

Jest błąd w linku, powinno być: http://sikor-soft.w.interia.pl/temp/demou.atr

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

28

dziwne. u mnie działają oba linki  :/

U mnie w firmie jest bardzo restrykcyjne proxy+firewall, pewnie dlatego.

Atari: FireBee, (Falcon030 CT60e SuperVidel SvEthlana CTPCI), TT, (520ST Pak030 Frak PuPla Panther), (520ST 4MB ST RAM 8MB TT RAM CosmosEx SC1435), (1040STFM UltraSatan SM124), (1040STE 4MB ST RAM 8MB TT RAM CosmosEx NetUSBee SM144 SC1224), 260ST, 520 ST+, (MEGA ST SM125), (65XE Rapidus U1MB VBXE SIDE2 SIO2PC), (Jaguar SkunkBoard), Lynx II, 2x Portfolio

30 Ostatnio edytowany przez Sikor (2010-03-26 22:37:49)

Może tak nowa edycja? Mamy 26.03 - więc jeszcze kilka dni zostało... O.K., zacznę...

10 GR.0:POKE 710,0:?"Prima Aprilis - edycja 2010 ;)"

Uprzejmie się prosi o dodawanie nowych linijek kodu. Deadline - 30.03 (trza to jeszcze przepisać i dodać do atra... :P )

Sikor umarł...

31 Ostatnio edytowany przez maw (2010-03-27 10:43:32)

20 POKE 752,0
100 LOCATE 0,0,A
110 POSITION 0,0:? CHR$(254)
120 POSITION 38,0:? CHR$(A);
130 GOTO 100
___
Press play on tape...

32 Ostatnio edytowany przez mono (2010-03-27 11:09:25)

10 GR.0:POKE 752,1:POKE 710,0
20 ?"Prima Aprilis - edycja 2010 ;)"
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

33 Ostatnio edytowany przez mono (2010-03-27 12:25:09)

Właściwie, to czemu nie :D
Oto muzyka z filmów edukacyjnych z chemii:

30 DIM F(3),V(3),P(3),D(3),C(5)
40 FOR S=0 TO 3:V(S)=0:P(S)=0:NEXT S
50 DATA 0,8,4,2,12,10
60 FOR I=0 TO 5:READ D:C(I)=D:NEXT I
70 S=0
130 IF V(S)>0 THEN V(S)=V(S)-1:GOTO 190
140 POS.P(S),20:? " ";
150 F(S)=INT(256*RND(0))
160 V(S)=INT(16*RND(0))
170 P(S)=39-INT(F(S)/256*40)
180 D(S)=INT(6*RND(0))
190 POS.P(S),20:? CHR$(20);
200 SOUND S,F(S),C(D(S)),V(S)
210 S=S+1:IF S>3 THEN S=0
220 GOTO 100

Trochę mroczna wyszła...

Edit: Ale ciągle interesująca ;P W załączniku cały program.

Edit 2: Można by jeszcze dodać dłuższy scroll i wskaźnik poziomu sygnału dla każdego z kanałów :) i ulepszyć equalizer i generowanie dźwięków do skali temperowanej np.

Post's attachments

PRIMAA.LST 555 b, liczba pobrań: 3 (od 2010-03-27) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

34 Ostatnio edytowany przez mono (2010-03-27 14:44:54)

Trochę dłuższy skrol:

11 DIM T$(1000):L=37
12 T$="       Prima Aprilis - edycja 2010 ;)"
20 POKE 710,0:? T$(1,L);
100 L=L+1:IF L>LEN(T$) THEN L=1
120 POS.38,0:? T$(L,L);

Zmienną T$ można w kolejnych liniach 13..19 rozszerzać o kolejne teksty.

Edit: Kto zrobi skrola? :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

35

Hehe, chyba wyjdzie lepiej niż ostatnio... Czekamy, co ktoś dalej dopiszę - proponuję dopisywać do pełnego kodu, aby potem szybko i prosto przenieść na Atari ;)

Sikor umarł...

36 Ostatnio edytowany przez mono (2010-03-28 00:02:38)

Nikt się nie chce bawić? No to naści - wskaźnik poziomu sygnału:

90 DIM LL$(128),LR$(128),L$(6):L$(1)=CHR$(160):L$(2)=CHR$(25):L$(3)=CHR$(32):L$(4)=CHR$(32):L$(5)=CHR$(153):L$(6)=CHR$(160)
91 FOR I=0 TO 15:FOR J=0 TO 7
92 LL$(1+I*8+J)=L$(2+SGN(2*J-I)):LR$(1+I*8+J)=L$(5+SGN(2*J+1-(15-I)))
93 NEXT J:NEXT I
170 P(S)=38-INT(F(S)/256*39)
185 IF S<2 THEN V=1+V(S)*8:POSITION 0,22+S:? LL$(V,V+7);
186 IF S>=2 THEN V=1+V(S)*8:POSITION 30,20+S:? LR$(V,V+7);
205 IF S<2 THEN D=V(S)/2:IF D<=7 THEN V=1+V(S)*8+D:POSITION D,22+S:? LL$(V,V);
206 IF S>=2 THEN D=INT(0.5+V(S)/2):IF D<8 THEN V=8+V(S)*8-D:POSITION 37-D,20+S:? LR$(V,V);
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

37

Czyli póki co mamy:

10 GR.0:POKE 752,1:POKE 710,0
11 DIM T$(1000):L=37
12 T$="       Prima Aprilis - edycja 2010 ;)"
13 T$="....Idea by Sikor, programming by Sikor, Maw, Mono..."
14 T$="made only for fun........."
20 POKE 710,0:? T$(1,L);
90 DIM LL$(128),LR$(128),L$(6):L$(1)=CHR$(160):L$(2)=CHR$(25):L$(3)=CHR$(32):L$(4)=CHR$(32):L$(5)=CHR$(153):L$(6)=CHR$(160)
91 FOR I=0 TO 15:FOR J=0 TO 7
92 LL$(1+I*8+J)=L$(2+SGN(2*J-I)):LR$(1+I*8+J)=L$(5+SGN(2*J+1-(15-I)))
93 NEXT J:NEXT I
100 L=L+1:IF L>LEN(T$) THEN L=1
120 POS.38,0:? T$(L,L);
170 P(S)=38-INT(F(S)/256*39)
185 IF S<2 THEN V=1+V(S)*8:POSITION 0,22+S:? LL$(V,V+7);
186 IF S>=2 THEN V=1+V(S)*8:POSITION 30,20+S:? LR$(V,V+7);
205 IF S<2 THEN D=V(S)/2:IF D<=7 THEN V=1+V(S)*8+D:POSITION D,22+S:? LL$(V,V);
206 IF S>=2 THEN D=INT(0.5+V(S)/2):IF D<8 THEN V=8+V(S)*8-D:POSITION 37-D,20+S:? LR$(V,V);

P.S.
Jeszcze nie sprawdzałem, czy działa, bo jeszcze nie ma deadline-u. Ale jakby komuś się chciało - poproszę ;)

Sikor umarł...

38 Ostatnio edytowany przez mono (2010-03-28 13:39:22)

Kod w aktualnej postaci wygląda tak:

10 GRAPHICS 0:POKE 752,1
11 DIM T$(1000):L=37
12 T$="       Prima Aprilis - edycja 2010 ;)"
13 T$(38)="    Idea by Sikor, programming by Sikor, MaW, Mono..."
14 T$(91)="    Made only for fun."
15 T$(113)=""
20 POKE 710,0:? T$(1,L);
30 DIM F(3),V(3),P(3),D(3),C(5)
40 FOR S=0 TO 3:V(S)=0:P(S)=0:NEXT S
50 DATA 0,8,4,2,12,10
60 FOR I=0 TO 5:READ D:C(I)=D:NEXT I
70 S=0
90 DIM LL$(128),LR$(128),L$(6):L$(1)=CHR$(160):L$(2)=CHR$(25):L$(3)=CHR$(32):L$(4)=CHR$(32):L$(5)=CHR$(153):L$(6)=CHR$(160)
91 FOR I=0 TO 15:FOR J=0 TO 7
92 LL$(1+I*8+J)=L$(2+SGN(2*J-I)):LR$(1+I*8+J)=L$(5+SGN(2*J+1-(15-I)))
93 NEXT J:NEXT I
100 L=L+1:IF L>LEN(T$) THEN L=1
110 POSITION 0,0:? CHR$(254)
120 POSITION 38,0:? T$(L,L);
130 IF V(S)>0 THEN V(S)=V(S)-1:GOTO 190
140 POSITION P(S),20:? " ";
150 F(S)=INT(256*RND(0))
160 V(S)=INT(16*RND(0))
170 P(S)=38-INT(F(S)/256*39)
180 D(S)=INT(6*RND(0))
185 IF S<2 THEN V=1+V(S)*8:POSITION 0,22+S:? LL$(V,V+7);
186 IF S>=2 THEN V=1+V(S)*8:POSITION 31,20+S:? LR$(V,V+7);
190 POSITION P(S),20:? CHR$(20);
200 SOUND S,F(S),C(D(S)),V(S)
205 IF S<2 THEN D=V(S)/2:IF D<=7 THEN V=1+V(S)*8+D:POSITION D,22+S:? LL$(V,V);
206 IF S>=2 THEN D=INT(0.5+V(S)/2):IF D<8 THEN V=8+V(S)*8-D:POSITION 38-D,20+S:? LR$(V,V);
210 S=S+1:IF S>3 THEN S=0
220 GOTO 100
Post's attachments

PRIMAA2.LST 1.15 kb, liczba pobrań: 4 (od 2010-03-28) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

39 Ostatnio edytowany przez maw (2010-03-28 15:12:03)

nie bo wygląda tak :P

//EDIT: oczywiście, to listing basica, nie turbo

Post's attachments

apriliscompo.tbl 1.54 kb, liczba pobrań: 10 (od 2010-03-28) 

Tylko zalogowani mogą pobierać załączniki.
___
Press play on tape...

40

Ja ostatnio chyba widziałem jakiś program pisany przez kilka osób w Basicu, nawet się zaczynał podobnie...

230 REM Copyright 2010 by:

41

Mono no patrz, kopyrajdów w kodzie nie uwzględniłeś, jak mogłeś zapomnieć!

___
Press play on tape...

42

Pozwolisz MaW, że zerknę:

70 DLL=PEEK(560)+256*PEEK(561)+6:DLV1=16
300 POKE DLL,DLV1-16:POKE DLL+2,128-DLV1
310 DLV1=DLV1*2:IF DLV1>128 THEN DLV1=16
320
330
340
350

Teraz chyba nieco lepiej.

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

43 Ostatnio edytowany przez mono (2010-03-31 19:29:27)

@MaW: Nie wiem do czego potrzebujesz tablicy E, ale wstawiłem Twój kod (nieco zmodyfikowany) do mojej wersji i wygląda to tak:

10 GRAPHICS 0:POKE 752,1
11 DIM T$(1000):L=37
12 T$="       Prima Aprilis - edycja 2010 ;)"
13 T$(38)="    Idea by Sikor, programming by Sikor, MaW, Mono..."
14 T$(91)="    Made only for fun."
15 T$(113)=""
20 POKE 710,0:? T$(1,L);
30 DIM F(3),V(3),P(3),D(3),C(5)
40 FOR S=0 TO 3:V(S)=0:P(S)=0:NEXT S
50 DATA 0,8,4,2,12,10
60 FOR I=0 TO 5:READ D:C(I)=D:NEXT I
70 S=0
80 DLL=PEEK(560)+256*PEEK(561):DLV1=16
90 DIM LL$(128),LR$(128),L$(6):L$(1)=CHR$(160):L$(2)=CHR$(25):L$(3)=CHR$(32):L$(4)=CHR$(32):L$(5)=CHR$(153):L$(6)=CHR$(160)
91 FOR I=0 TO 15:FOR J=0 TO 7
92 LL$(1+I*8+J)=L$(2+SGN(2*J-I)):LR$(1+I*8+J)=L$(5+SGN(2*J+1-(15-I)))
93 NEXT J:NEXT I
100 L=L+1:IF L>LEN(T$) THEN L=1
110 POSITION 0,0:? CHR$(254)
120 POSITION 38,0:? T$(L,L);
130 IF V(S)>0 THEN V(S)=V(S)-1:GOTO 190
140 POSITION P(S),19:? " ";
150 F(S)=INT(256*RND(0))
160 V(S)=INT(16*RND(0))
170 P(S)=38-INT(F(S)/256*39)
180 D(S)=INT(6*RND(0))
185 IF S<2 THEN V=1+V(S)*8:POSITION 0,21+S:? LL$(V,V+7);
186 IF S>=2 THEN V=1+V(S)*8:POSITION 31,19+S:? LR$(V,V+7);
190 POSITION P(S),19:? CHR$(20);
200 SOUND S,F(S),C(D(S)),V(S)
205 IF S<2 THEN D=V(S)/2:IF D<=7 THEN V=1+V(S)*8+D:POSITION D,21+S:? LL$(V,V);
206 IF S>=2 THEN D=INT(0.5+V(S)/2):IF D<8 THEN V=8+V(S)*8-D:POSITION 38-D,19+S:? LR$(V,V);
210 S=S+1:IF S>3 THEN S=0
300 A=PEEK(20)
310 IF PEEK(20)=A THEN 310
320 POKE DLL,DLV1-16:POKE DLL+6,128-DLV1
330 DLV1=DLV1*2:IF DLV1>128 THEN DLV1=16
10000 GOTO 100

Zsynchronizowałem zmiany dlist z ramką (linia 300..310), żeby ekran nie latał "w te i we wte" ;) oraz modyfikuję puste linie na początku dlist i tylko jeden wiersz trybu 0 dzięki czemu mamy na ekranie 23 wiersze, a nie 22.
Jeśli chodzi o synchronizację to trick jest prosty - komórka 20 zmienia się co ramkę na VBLK więc czekam na zmianę po czym szybko zapisuję nowe puste linie do dlist. BASIC jest na tyle wolny, że odbywa się to zapewne już po wyświetleniu drugiego wiersza trybu tekstowego (który zamieniany jest na puste linie). Gdyby w przyszłości metoda okazała się za wolna, można spróbować innej sztuczki:

300 A=PEEK(20): FOR B=0 TO 1:IF PEEK(20)=A THEN B=0:NEXT B
310 POP

Technika jest szybsza niż GOTO, bo BASIC przy każdej pętli FOR odkłada na stos "adres" początku pętli FOR..NEXT dzięki czemu nie szuka numeru wiersza (wyszukiwanie wiersza odbywa się zawsze od początku pamięci programu, co trwa i trwa). No a POP zdejmuje to, co FOR wstawiło.

Post's attachments

PRIMAA3.LST 1.31 kb, liczba pobrań: 2 (od 2010-03-31) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

44

O.K. To uważamy tegoroczną edycję za zakończoną. Dla leniwych - atr w załączniku. Wczytujemy z Basiciem ;)
Uczestnikom, którym się chciało - dziękuję za zabawę ;)

Post's attachments

primaaprilis_2010.atr 90.02 kb, liczba pobrań: 9 (od 2010-03-31) 

Tylko zalogowani mogą pobierać załączniki.
Sikor umarł...

45

Bardzo fajna ścieżka dźwiękowa. Słuchałem jej dwie minuty, ma swój urok!

Atari 800XE/U1MB/Sophia2/PokeyMax + A1050 Toms Multi + CA2001

46

Ej, co jest - cenzura ? a gdzie mój zakłucacz dźwięków ???

350 SOUND INT(RND(0)*4),RND(0)*255,10,RND(0)*15

Sikor, poprawiaj atr-a!

___
Press play on tape...

47

Dodaj do atra i załącz ponownie - no problem. Wszystkie pliki poza dosowymi na dysku - to nasz listing ;P Ja po prostu dodałem lst do atr-a - możesz poprawić, jak chcesz ;)

Sikor umarł...

48 Ostatnio edytowany przez mono (2010-03-31 22:07:00)

Sikor! Jeszcze do północy jest godzina! Ja chce mój efekt wstawić :D

@MaW: To ja już wstawię Twój zakłócacz, który wywaliłem przypadkiem i dodam wszystko do atra.
@Sikor: Jeszcze chwilka - cierpliwości :)

hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje

49

@mono: spoko, wszak to zabawa tylko ;P Wstawisz, dopiszesz wersję (1.2, a co :L) i już :D

Sikor umarł...

50 Ostatnio edytowany przez mono (2010-03-31 22:43:06)

No to właśnie wstawiam :)

85 DIM E$(9):E$(1)=CHR$(18):E$(2)=CHR$(6):E$(3)=CHR$(124):E$(4)=CHR$(7):E$(5)=CHR$(18):E$(6)=CHR$(6):E$(7)=CHR$(124):E$(8)=CHR$(7):E$(9)=CHR$(18):DATA 1,0,1,-1,0,-1,-1,-1,-1,0,-1,1,0,1,1,1,1,0
86 DIM X(4),Y(4),A(4),DX(8),DY(8)
87 FOR I=0 TO 4:X(I)=INT(39*RND(0)):Y(I)=INT(16*RND(0)):A(I)=6.28318*RND(0):NEXT I
88 FOR I=0 TO 8:READ X,Y:DX(I)=X:DY(I)=Y:NEXT I
89 P=0:PI=3.1415926:PIPI=2*PI:PI2=PI/2:PI4=PI2/2:PI8=PI4/2
400 I=INT((A(P)+PI8)/PI4)
410 POSITION X(P),2+Y(P):? E$(1+I,1+I)
420 X(P)=X(P)+DX(I):Y(P)=Y(P)+DY(I)
430 IF X(P)>38 THEN X(P)=0
440 IF X(P)<0 THEN X(P)=38
450 IF Y(P)>15 THEN Y(P)=0
460 IF Y(P)<0 THEN Y(P)=15
470 A(P)=A(P)+PI2*RND(0)-PI4
480 IF A(P)>=PIPI THEN A(P)=A(P)-PIPI
490 IF A(P)<0 THEN A(P)=A(P)+PIPI
500 P=P+1:IF P>4 THEN P=0

Efekt jest piorunujący (!) haaaa - nazwałem go "ślimaki" ;) To jedyny efekt do dema, który potrafię zakodować... :/ Wiem - to przykre, ale niestety taka jest prawda. Przykro mi bardzo.

Edit: A w załączniku kod.

Post's attachments

PRIMAA4.LST 1.97 kb, liczba pobrań: 3 (od 2010-03-31) 

Tylko zalogowani mogą pobierać załączniki.
hex, code and ror'n'rol
niewiedza buduje, wiedza rujnuje