[#1] znawca bejzika poszukiwany na gwałt
...bo rozchodzi się o to, że człowiek od listingów powiedział "pierwolę, nie robię" i tera cały balast wklepywania i testowania tego gufna spada na mnie. 😠
a w tym przypadku szarpię się z listingami z Bajtka 3/87, z artykułu pt. "Polskie znaki". Składa się na niego łącznie 5 listingów: 4 w tym numerze plus jeden z poprzedniego, potrzebny do uruchomienia pozostałych (choć są i kombinacje jego niewymagające). Numerem 2/87 na szczęście dysponuję, lecz 3 już nie. buuu! Zdołałem jednak przeklepać całe to dziadostwo przynajmniej do postaci, przy której Atari nie protestuje. Tu wklejam kolejne:

nr 2/87:
40 DATA 00003C063E663E030A000C183C60603C001A00003C667E603C062A0038181E38183C0062000C187C6666660072000C183C66,40,271881
50 DATA 663C007A0C183C603C063C009A0018187C18307C00D2000C187C18307C00C200183C66667E6603180C183C6660663C003000,50,271971
60 DATA 7E607C607E180C2000606C7860607E00E10C1866767E6E6600380C183C6666663C00010C183E603C067C00F918187E0C1830,60,277101
70 DATA 7E00D90C187E0C18307E00E968A00084CB84CDA9E085CCA99C85CEB1CB91CDC8D0F9E6CCE6CEA5CC2904F0EF68AA85CC6885,70,303109
80 DATA CBA0DD91CBA0EF91CBC88A91CBA0DE91CBA2A2CABD0080A829FC85CD982903099C85CEA008CABD00808891CDD0F78AD0E260,80,294699
100 DIM A$(100),C$(1),POL$(250):C$=CHR$(34):M=0:POKE 82,0:FOR K=1 TO 5
110 READ A$,L,S1:ON LEN(A$)<>100 GOTO 999:S2=0:FOR J=1 TO 99 STEP 2:B=0
120 FOR I=J TO J+1:N=ASC(A$(I,I)):S2=S2+I*N:N=N-48-7*(N>57)
130 ON (N<0 OR N>15) GOTO 999:B=B+N*(1+15*(I=J)):NEXT I:M=M+1:POL$(M)=CHR$(B):NEXT J:ON S1<>S2 GOTO 999:NEXT K
200 REM Patrz Bajtek 1/87
500 K=1:N=32760:POKE 752,1:? CHR$(125):POSITION 0,4:LIST N,N+4:FOR J=1 TO 3
505 M=(K+98-J)*(J<3)+250*(J=3):? N+J;" POL$(";K;")=";C$;:FOR I=K TO M
510 ? CHR$(27);POL$(I,I);:NEXT I:? C$:K=M+1:NEXT J
515 ? "POKE842,12:GOS.32760:CLR:L.:END":POSITION 0,2:POKE 842,13:NEW
999 ? "Popraw dane:":LIST L:END
32760 DIM POL$(250)
32764 POKE 106,156:GRAPHICS 0:POL=ADR(POL$):POL=USR(POL+162,POL):POKE 756,156:RETURN


i trzy pierwsze z numeru 3/87:
200 GOSUB 32764:POKE 82,0:OPEN #1,4,0,"K":C=32:X=756:FOR I=1 TO 18:D=9*I
210 L=ASC(POL$(D,D)):PRINT L
212 A=INT(L/8)
213 R=L-8*A
214 B=A+C*(R+(R<2)-2*(R=2))
216 ? CHR$(125):?
220 ? "Podaj klawisz dla ";CHR$(B);" = ";:B=L:FOR J=0 TO 6:FOR K=0 TO 99:NEXT K
230 POKE X,224:FOR K=0 TO 99:NEXT K:POKE X,156:NEXT J:GET #1,A:? CHR$(A):K=0
240 ON A=155 GOTO 270:B=A-128*(A>127):B=B+64*(B<C)-C*(B>31)*(B<96):M=INT(B/C)
250 B=B*B-255*M:A$="2 razy!":FOR J=1 TO I-1:K=K+(ASC(POL$(9*J,9*J))=B):NEXT J
260 ON K*I-K>0 GOSUB 980:A$="Tylko GR.0!":ON (M>1)=(R<2) GOSUB 980:A$="Tylko BOOT!":ON (B=34)+(B=155) GOSUB 980
270 A$="OK.":GOSUB 980:POL$(D,D)=CHR$(B):NEXT I:CLOSE #1
980 ? :? :? A$;" Zmienisz? (T/N) ";
981 GET #1,A:A=A-C*(A>90):N=(A=78):ON I-N-(A=84) GOTO 981:IF N THEN RETURN
982 POP :GOTO 210


400 ? CHR$(125):POL$(223,223)=CHR$(6):POL$(241,241)=CHR$(6):POL$(195)=POL$(218):DIM AUT$(250),B$(99):RESTORE 405:M=0
405 DATA 000400800D80A93C8D02D31860A2FDBDBA809DFF05CAD0F7A200BD1A03C945F005E8E8E8D0F4E88E8180BD1A0385CD,405,261447
410 DATA A9839D1A03E8BD1A0385CEA9809D1A03A000A210B1CD998380C8CAD0F7A95B8D8780A9808D8880A9288D828060AC82,410,254911
415 DATA 80F009B99280CE8280A001608A48AE8180A5CD9D1A0358A5CE9D1A0368AAA99BA00160000000000000000000000000,415,237765
420 DATA 00004C0000003635312C363537454B4F503A2938393631285253553D583A302E52473A3635312C363031454B4F50,420,230604
430 FOR K=1 TO 4:READ B$,L,S1:S2=0:FOR J=1 TO 93-2*(K=4) STEP 2:B=0:FOR I=J TO J+1:N=ASC(B$(I,I)):S2=S2+I*N
440 N=N-48-7*(N>57):B=B+N*(1+15*(I=J)):NEXT I:M=M+1:AUT$(M)=CHR$(B):NEXT J:ON S1<>S2 GOTO 999:NEXT K
450 ? "(K)aseta czy (D)ysk";:INPUT C$:C=(C$="K"):ON 1-C-(C$="D") GOTO 450:IF C THEN B$="C":P=1:? "Magnetofon";:GOTO 460
455 B$="D:AUTORUN.SYS":P=S:RESTORE 456:FOR I=8 TO 13:READ A:AUT$(I,I)=CHR$(A):NEXT I:? "Dysk";
456 DATA 255,255,13,128,183,129,224,2,225,2,13,128
460 ? " gotowy (Return)";:INPUT C$:TRAP 499:CLOSE #1:OPEN #1,8,128*C,B$:FOR I=P TO 187:PUT #1,ASC(AUT$(I,I)):NEXT I
470 FOR I=1 TO 227:PUT #1,ASC(POL$(I,I)):NEXT I:FOR I=1 TO 26:PUT #1,ASC(A$(I,I)):NEXT I:IF C THEN 490
480 FOR I=1 TO 6:READ A:PUT #1,A:NEXT I
490 CLOSE #1:? "Zrobione!":END
499 ? "Blad ";PEEK(195);".Jeszcze raz:";:GOTO 460


300 A$="68A208AC039EF007CA9D009ED0FA60CABD00E29D009E8AD0F660":S2=0:L=300
310 M=0:FOR J=1 TO 51 STEP 2:B=0:FOR I=J TO J+1:N=ASC(A$(I,I)):S2=S2+I*N:N=N-48-7*(N>57):B=B+N*(1+15*(I=J)):NEXT I
320 M=M+1:A$(M,M)=CHR$(B):NEXT J:ON S2<>80466 GOTO 999



o ile sam 2/87 działa bez zarzutów, to próba scalenia go według instrukcji z listingiem nr 1 z 3/87 daje w efekcie symptomy nieprzewidziane w opisie, który tako rzecze:
a) wczytaj z kasety lub dyskietki program z Bajtka
nr 2/87;
b) wpisz zamieszczony obok program nr 1;
c) napisz RUN. Po 30 sekundach program zapyta,
jak chcesz otrzymywać małą literę „ą”. Wcześniej
mrugnie kilka razy, przypominając obecne przy
porządkowanie;
— jeśli nie chcesz go zmieniać, naciśnij RETURN,
po czym odpowiedz „Nie” na pytanie, czy jednak
chcesz je zmienić. Zostaniesz natychmiast zapytany
o następną literę;
— jeśli chcesz je zmienić, naciśnij klawisze odpowiadające
Twemu wyborowi. Nie zapomnij o CON-
TROL (aby uzyskać np. znak graficzny) lub CAPS
(dla małej litery) itd;


no i wszystko ładnie-pięknie, tylko po uruchomieniu działanie wygląda tak:


program pyta najpierw o małe ą, wyświetlając "domyślnie" przyporządkowany znaczek. I tu jest kilka scenariuszy:
a) pierwszy - przedstawiony na powyższym filmiku: jeśli zaakceptuję wciskając enter i odpowiem N, przechodzi do małego ć. Po zaakceptowaniu ć i pytaniu, czy zmienić, program nie reaguje na nic poza enterem. Jak wcisnę enter, kończy się tak jak na filmiku i po tym wszystkie polskie literki są dostępne z klawiatury według domyślnych ustawień z listingu 2/87 (czyli małe pl znaczki uzyskujemy wciskając ctrl+odpowiednią literę, a duże caps shift+którąś cyferkę... swoją drogą, te duże nie pokrywają się z kombinacjami opisanymi w Bajtku 2/87, a niektórych nie ma w ogóle, no ale to już odrębna kwestia).
b) jeśli po zaakceptowaniu ą na pytanie odpowiem T, program od razu wykrzacza się z komunikatem "Popraw dane:", po czym jednak znowu wszystkie polskie literki są dostępne spod domyślnych kombinacji z 2/87...
c) natomiast próba przypisania polskim znaczkom innej kombinacji klawiszy nie przynosi rezultatu, tzn. mimo wciśnięcia dla ą np. ctrl+g nadal po zakończeniu działania programu mamy literkę pod ctrl+a.

PYTANIE: gdzie tkwi błąd? Od razu podkreślę, że w bejzika umiem słabo, więc możliwe, że w tych listingach jest jakaś głupota.

/edit: zauważyłem, że po dodaniu wiersza pustego na końcu listingu 1 z 3/87 (w windzianym edytorze z ATASCII) program zamiast wywalać się z komunikatem "Popraw dane" jakby wpadał w infinite loop i w kółko pyta o ć oraz czy OK.

/edit2: problem niezgodności kombinacji klawiszy z tymi podanymi w Bajtku już się wyjaśnił: Atari ma po prostu inną "mapę" znaczków x| (tych z shiftem). Nie wziąłem tego pod uwagę.

Ostatnia aktualizacja: 28.08.2023 15:46:21 przez snajper
[#2] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #1

nie znam basica Atari ale ten program to lipa totalna
np. linie 220 i 230 sa kompletnie bez sensu, bo rozbijajac je na pojedyczne instrukcje z gory na dol mamy cos takiego:

....
B=L
FOR J=0 TO 6 ............ <--- ta petla nie ma sensu !
FOR K=0 TO 99: NEXT K ........... <--- ta petla nie ma sensu !
POKE X,224 .......... <---- ten poke nie ma sensu, bo pozniej zapisany jest w nim wartosc 156
FOR K=0 TO 99: NEXT K ............. <--- ta petla nie ma sensu !
POKE X,156
NEXT J
GET #1,A
? CHR$(A):K=0
...


mowiac po selurowemu "to Panie sa atarowe bzdety najwyzszej klasy" ok, racja ok, racja

ps.
dla wiekszej czytelnosci tego bagienka, rozbilbym niektore isntrukcje a zamiast "?" wpislabym slownie PRINT

Ostatnia aktualizacja: 28.08.2023 14:50:09 przez selur
[#3] Re: znawca bejzika poszukiwany na gwałt

@selur, post #2

te pierwsze fory to, z tego, co zauważyłem, służą do migotania literką... Domyślam się, że to "k=0 to 99" jakimś sposobem odmierza czas jednego mrugnięcia. Więc chyba jakiś sens to ma. Inna sprawa, że tego mrugania nie da się w żaden sposób przerwać, co już jest głupie.

Ostatnia aktualizacja: 28.08.2023 14:48:59 przez snajper
[#4] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #3

aha chyba, ze to taka "prezentacja" migania tych znaczkow

zmniejsze petla J od 0 do 4 a petle K od 0 do 10 wtedy bedzie szybciej


p.s.
zeby szukac bledu w tym lesie trzeba najpierw znalezc tablice kodow znakow w atari czyli jaki znak ma wartosc bajtu a druga sprawa to znalezienie adresu generatora znakow i gdzie w pamieci sa zapisywane dane bitowe (8 bajtow dla kazdego znaku).



a tu jest manual Atari BASIC jak ktos chce sie nauczyc psiac gry na Atari

Ostatnia aktualizacja: 28.08.2023 15:08:06 przez selur
[#5] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #3

Przecież te numery już dawno są zReduksowane, tzn że ktoś w nich poprawił literówki i można przetestowane teksty i listingi skopiować z pdf-a.

https://www.t2e.pl/Reduksy
1
[#6] Re: znawca bejzika poszukiwany na gwałt

@ZorrO, post #5

jassssssssne. cafe O tych reduPsach wypowiadałem się już nie raz, ale mogę powtórzyć: są spartaczone do potęgi. Ładnie wyglądają - i na tym ich wartość się kończy. Chcesz dowodów? Proszę, pierwszy z brzegu, akurat tyczący się omawianego artykułu:



chętnie się dowiem, co znaczy "260 ON K$I=K>0". Bo BASIC tego nie wie. Pominę ten drobny szczegół, że w oryginale wiersz 260 wygląda tak:
260 ON K*I-K>0 GOSUB 980:A$="Tylko GR.0":ON (M>1)=(R<2) GOSUB 980:A$="Tylko 800 T:":ON (B=34)+(B=155) GOSUB 980
- na czerwono zaznaczyłem fragment, który gość w ogóle skasował, a o którym m.in. jest mowa w tekście.
A takich kwiatków jest więcej, tutaj masz mój ulubiony, z Bajtka 11/86:




dostrzegasz, co tu jest nie tak?
Na wypadek, gdyby nie, poniżej wklejam wersję właściwą.




Ostatnia aktualizacja: 29.08.2023 04:37:11 przez snajper
[#7] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #6

wpisywalem wiele programow basicowych na ZX spectrum , raz nawet przepisalem gre z zachodniej gazety ale takiego burdelu jak w tych listingach, to jeszcze nie widzialem. To w ogole nie jest czytelne, jakby ktos sie spieszyl i wszystko napisal jednym ciurkiem w linii.
Tragedia... a pozniej ludzie mowia, ze basic'i sa nieczytelne.
[#8] Re: znawca bejzika poszukiwany na gwałt

@selur, post #7

to kondensowanie kodu jest raczej celowym zabiegiem. Takie programy starano się upychać w możliwie małej pamięci. A ZX to inna para kaloszy - tam instrukcje są trwale przypisane klawiszom, nie możesz sobie np. skasować następujących po nich spacji. BASIC na Atari z kolei dysponuje szeregiem skrótów - masz G. zamiast GOTO, E. zamiast ENTER itd., z których również robiono pożytek.
bajdełej, wczoraj zabrałem się za kolejny listing z tego samego Bajtka - na ZX-a właśnie. Ma to być gra pt. "BZZZZ", coś a'la Tron, no i niby wszystko wklepałem - łącznie z 90 linijkami znaczków typu DATA %| - tylko teraz nie wiem, czy to w ogóle wykonało się prawidłowo. :/ Bo coś mi się tej gry załadować nie udaje, a wyświetlany jest najwyżej screen "loadera" z zapętlonym w nieskończoność paskującym tłem. Do tej pory ze spektrumem miałem zero styczności (nie licząc gier spod emulatora), więc praktycznie dopiero poznaję środowisko. Może spróbuję jeszcze raz, tylko tym razem bez tego emulatorowego "turba" dla magnetofonu, czyli żeby to działało w normalnym tempie, w szczególności przy nagrywaniu.

Ostatnia aktualizacja: 29.08.2023 08:15:52 przez snajper
[#9] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #8

Tym razem Faust twierdzi że działa, i jest gotowiec Bzzzz do ściągnięcia, w przeciwieństwie do przykładów które podałeś których nie ma, czyli faktycznie tamte nie były testowane.
https://www.t2e.pl/pl/readyrun/moreinfo/142/bajtek-031987

Parę lat temu we wcześniejszych numerach takie wpadki mu sie nie zdarzały, ale narzekał że ubyło mu pomocników.

Może nie są ładne ale te powinny działać:
https://www.t2e.pl/pl/readyrun/moreinfo/141/Atari-XEXL/Bajtek-021987/141/Polskie-Znaki

Ostatnia aktualizacja: 29.08.2023 09:52:02 przez ZorrO
[#10] Re: znawca bejzika poszukiwany na gwałt

@ZorrO, post #9

wracając do tematu - jest progres. Atari nadal leży i kwiczy, ale spektrum coś tam już ruszył do przodu... Jak widać, nadal sobie nie pogram i pewnie trzeba będzie całe to gufno wklepywać po raz n-ty, żeby przed zapisem na taśmę pozbyć się linijki 10 - jednak jest szansa, że do jutra gra będzie śmigać. Opis mówi: "Wprowadź teraz do komputera (usuwając część właśnie nagraną na taśmę [czyli linijkę 10]) "Program 3" i uruchom go instrukcją RUN". Zapewne chodzi im o wywalenie go z taśmy, a nie tylko usunięcie z pamięci. Bo widać, że ta linijka uparcie tam włazi.

[#11] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #10

Matko boska co to, o co chodzi z tym gownianym loaderem, do takiej gierki... co za cep to wymyslil ?

Programowanie w BASICU ZX, to najprostsza rzecz pod sloncem, wpisujesz listing, nagrywasz go na tasme i Run a jak co zawsze mozna go wgrac z tasmy.
Na co te jakies popierd.... wprowadzanie danych z klawiatury, to sie w data zapisuje na stale a nie za kazdym razem inputem.
Co za krety pisaly te programy...

Ostatnia aktualizacja: 29.08.2023 21:35:56 przez selur
[#12] Re: znawca bejzika poszukiwany na gwałt

@selur, post #11

A co nie są podpisane?

Te listingi nie koniecznie miały działać, ale także a może raczej czegoś uczyć.
[#13] Re: znawca bejzika poszukiwany na gwałt

@selur, post #11

Programowanie w BASICU ZX, to najprostsza rzecz pod sloncem, wpisujesz listing, nagrywasz go na tasme i Run a jak co zawsze mozna go wgrac z tasmy.

no i właśnie tak samo działa BZZZZ:
1. wklepujesz kod do wyświetlania screena "ładowanie BZZZ", zapisujesz na taśmie.
2. wklepujesz kod programu do weryfikacji poprawności kolejnych linijek DATA (które mają na końcu sumę kontrolną) i uruchamiasz
3. wklepujesz 90 linijek DATA, które zawierają grę właściwą i na końcu zapisywane są na taśmie.

później masz na taśmie gotową grę, którą wczytujesz przez LOAD. No i u mnie wszystko bangla, tylko po jej załadowaniu i próbie rozpoczęcia gry pojawia się "B Integer out of range, 10:10". Nie bardzo rozumiem, co oznacza to "10:10" - linijka 10?
10 BORDER 0: POKE 23693,0: CLS : FOR N=0 TO 30 STEP 5: BEEP .02,N: NEXT N: PRINT INK 7; BRIGHT 1; FLASH 1;AT 18,8;"ladowanie BZZZZ": LOAD ""CODE : POKE 23693,7: RANDOMIZE USR 30000
- ja tu nie widzę wiele integerów.
[#14] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #13

A czy przed kropką w BEEP nie musi być zero? Albo może 0.2 zamiast .02
[#15] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #13

Zrób tak.
Wpisz LOAD "BZZZZ MK" CODE
Po wgraniu danych wpisz RANDOMIZE USR 30000
Napisz jak poszło.
[#16] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #13

to chyba byla tak, ze numer linii a pozniej numer instrukcji w linii. Kazda instrukcja jest odzielona separatorem :, wiec po mojemu blad jest w Randomize USR 30000 czyli program sie wywala przy wywolaniu kodu spod adresu 30000 a wiec kod pod tym adresem jest pewnie bledny.
[#17] Re: znawca bejzika poszukiwany na gwałt

@selur, post #16

hłe hłe... Huz masta haka?



@ZorrO
nie musi. Tamten beep akurat odpowiada za plumknięcie po wyświetleniu screena loadera.

@Norbert
może sprawdzę to jutro. A przyczyną okazała się być... literówka w listingu. Dopiero po przeanalizowaniu działania tych wszystkich instrukcji zauważyłem, że we fragmencie:

3080 PRINT "w porzadku": SAVE "B
ZZZZ MK"CODE 30000,1078: PRINT :
 PRINT "przewin tasme w celu wer
yfikacji": VERIFY ""CODE : STOP


coś mi nie gra... Skoro instrukcja SAVE zapisuje na taśmie określoną ilość bajtów, a kod gry zajmuje 90 linijek razy 12 bajtów, czyli równe 1800... Powyżej mamy natomiast 1078 (+1, bo licząc od zera). Czyli tak jakby gra nie zapisywała się w całości. A że 9 jest zwykle bardzo blisko ósemki oraz wizualnie podobna, istniało niemałe prawdopodobieństwo, że ktoś przy wklepywaniu się wykopyrtnął. No i BINGO.

nadal pozostaje parę kwestii kosmetycznych - np. pozycja napisów podczas weryfikacji ("Program:" jest niżej niż wyświetlane później nazwy kolejnych pozycji). Odrębną kwestią jest, co widać na filmiku, prędkość gry (na filmiku ustawiłem max) - z tym już będzie ciężko.

to teraz wracamy do problemu Atari...

Ostatnia aktualizacja: 30.08.2023 03:22:50 przez snajper
[#18] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #17

Ahahahahahaha tyle zachodu a tu taka sraczka na ekranie, przeciez to chyba rysuje jeden piksel na minute
[#19] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #17

a kod gry zajmuje 90 linijek razy 12 bajtów, czyli równe 1800... Powyżej mamy natomiast 1078 (+1, bo licząc od zera). Czyli tak jakby gra nie zapisywała się w całości. A że 9 jest zwykle bardzo blisko ósemki oraz wizualnie podobna, istniało niemałe prawdopodobieństwo, że ktoś przy wklepywaniu się wykopyrtnął.


Tak, tak nie jest równe 1800 ale 1080.
Też się pomyślałeś. Przypadek ? szeroki uśmiech

A co do kosmetyki, to nie potrzebne jest każdorazowe sprawdzanie poprawności. I tak już tego się nie poprawi jeśli jest nagrane.
Ten loader mozna zmienić na taki, który będzie wczytywał dane komenda LOAD "" CODE i uruchamiał grę RANDOMISE USR 30000
[#20] Re: znawca bejzika poszukiwany na gwałt

@Norbert, post #19

Tak, tak nie jest równe 1800 ale 1080.
Też się pomyślałeś. Przypadek ?

też się... co? ;)
no, późna pora była. Zauważyłem to dziś, tylko było już za późno na edycję. ;)

A co do kosmetyki, to nie potrzebne jest każdorazowe sprawdzanie poprawności. I tak już tego się nie poprawi jeśli jest nagrane.

masz na myśli te 90 linijek kodu szesnastkowego? One są sprawdzane PRZED nagraniem, krok po kroku, w miarę wklepywania... Jak któraś linijka nie zgadza się z sumą kontrolną, bzyczy, że błąd, i wklepujesz, aż błędu nie będzie.

@selur
no cóż. Tu już musimy zrobić dezasemblację, dekompilację i reverse engineering, jak każdy zwykły korektor Retronics. Pewnie prędzej byłoby wklepać taką grę na nowo.

Ostatnia aktualizacja: 30.08.2023 14:27:02 przez snajper
[#21] Re: znawca bejzika poszukiwany na gwałt

@selur, post #2

Pętla K jest po to aby zatrzymać na moment działanie programu, dlatego POKE też ma sens.

Nie mam czasu teraz tego programu przeanalizować, ale chciałem tylko zauważyć że jeśli dla Ciebie coś nie ma sensu, to nie znaczy że go nie ma w rzeczywistości ;)
[wyróżniony] [#22] Re: znawca bejzika poszukiwany na gwałt

@karolb, post #21

Hej, kiedyś przepisywałem listingi z Bajtka - na Atari miałem wszystkie przepisane (i pewnie nadal mam - musiałbym poszukać), część poprawiałem. Część udostępniłem w sieci. Napisałem też program którym łatwo można sprawdzić cały listing jeżeli ma kody (kody z Bajtka uwzględniają spacje po komendach - m.in. dlatego warto listing najpierw przepuścić przez Atari; zagraniczny magazyn (nie pamiętam który) nie uwzględnia spacji; są też kody odczytywane przez Ampel Dekoder, do tych kodów też napisałem program na PC).

W sieci są dostępne listingi z Bajtka przepisane przez Amarok-a: https://gitlab.com/amarok8bit/atari-listings/-/blob/master/Bajtek/bajtek.zip
Tu ich spis: https://gitlab.com/amarok8bit/atari-listings/-/blob/master/README.md (pojedyncze pliki jak zauważyłem, mają złe kodowanie - UNICODE i niestety bez zamiany Returnów na poprawny - ASCII 155 - się nie wczytują, jeżeli mają inne znaki "specjalne" to pewnie będą wymagały większej edycji - dlatego lepiej korzystać z plików atr). Sprawdziłem tylko kilka plików czy działają, myslę, że są ok, ale zawsze warto weryfikować.

Warto też porównywać listingi z kilku źródeł, więc jak ktoś coś przepisał to tym lepiej.

Chętnie pomogę, w wolnej chwili :)

Edit: Przepraszam, odpowiedziałem do ostatniego postu, a powinienem do pierwszego. A oczywiście takie pętle stosuje się aby osiągnąć odpowiednie opóźnienie, w Turbo Basic-u używa się PAUSE i liczby, czasami jednak konieczne jest też stosowanie pętli.

Ostatnia aktualizacja: 31.08.2023 14:34:52 przez QTZ
1
[#23] Re: znawca bejzika poszukiwany na gwałt

@QTZ, post #22

dzięki wielkie! pokłony Sprawdziłem te z PL literkami i działa!



co prawda tam te listingi są już scalone w paczkach, żeby nie kombinować z ładowaniem kolejnych kilku, no ale to już będzie z górki... W tej sytuacji zostały mi do przetestowania tylko dwa na Amstrada, z przedostatniej strony. Jest szansa, że dziś przynajmniej z tym numerem się wyrobię.

BTW - pytanie bonusowe z LOGO, konkretnie spektrumowego. Czy ono różni się pod względem instrukcji od atarowskiego? W listingach z Bajtka 3/87 są użyte m.in. OP SENTENCE i [PENERASE], tymczasem po wklepaniu ich na Atari i sprawdzeniu w atarowskim manualu wychodzi na to, że nie ma czegoś takiego jak SENTENCE i PENERASE, tylko SE i PE.
[#24] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #23

Program SORTUJ dla CPC z Bajtek 3/87 str.31.
Ten i następne 2 działają na emulatorze. :)

9 REM ***** WPROWADZANIE DANYCH *****
10 PRINT "Ile slow podasz ";:INPUT l
20 l=l-1
30 DIM a$(l)
40 FOR s=0 TO l
50 PRINT "Podaj ";s+1;" slowo";:INPUT a$(s)
60 NEXT s
99 REM ***** PROGRAM GLOWNY *****
100 FOR t=1 TO l
110 w=0
120 IF a$(t)<=a$(w) THEN GOSUB 150
130 w=w+1
140 IF w=t THEN NEXT t:GOTO 300 ELSE GOTO 120
150 p$=a$(t)
160 FOR z=(t-1) TO w STEP -1
170 a$(z+1)=a$(z)
180 NEXT z
190 a$(w)=p$
200 w=t-1
210 RETURN
299 REM *** WYDRUK DANYCH KONCOWYCH ***
300 FOR a=0 TO l
310 PRINT a$(a)
320 NEXT a




Ostatnia aktualizacja: 31.08.2023 22:01:37 przez ZorrO
[#25] Re: znawca bejzika poszukiwany na gwałt

@ZorrO, post #24

4 KOLEDY dla CPC z Bajtek 3/87 str.31.
W jednej z kolęd fałszuje jedną nutkę ale tak było w Bajtku nie jestem muzykiem by to poprawić.

10 GOSUB 120
20 PRINT "PODAJ ILOSC ZWROTEK  ";:INPUT p
30 FOR z=1 TO p:ON w GOSUB 250,260,270,280
40 READ t,e
50 FOR n=1 TO e
60 READ a,b
70 SOUND 1,ROUND(62500/(440*(2^(2+((b-10)/12))))),t/a*20
80 SOUND 2,ROUND(62500/(440*(2^((-1)+((b-10)/12))))),t/a*20
90 SOUND 7,500,1,0
100 NEXT n,z
110 GOTO 10
120 INK 0,0:INK 1,15:INK 2,17:PEN 1:MODE 1
130 PRINT "
140 PRINT "    ";CHR$(164);" 1986 GRZEGORZ ROWINSKI"
150 PEN 2:PRINT
160 PRINT "      MENU:":PRINT
170 PRINT "(1) PRZYBIEZELI DO BETLEJEM PASTERZE"
180 PRINT "(2) GDY SIE CHRYSTUS RODZI"
190 PRINT "(3) BOG SIE RODZI"
200 PRINT "(4) LULAJZE, JEZUNIU, MOJA PERELKO"
210 PEN 1:PRINT
220 PRINT "CO WYBIERASZ";:INPUT w
240 RETURN
250 RESTORE 300:RETURN
260 RESTORE 400:RETURN
270 RESTORE 500:RETURN
280 RESTORE 600:RETURN
300 DATA 10,62
310 DATA 8,3,8,2,8,3,8,5,8,7,8,5,8,7,8,8,4,10,4,12,2,10
320 DATA 8,3,8,2,8,3,8,5,8,7,8,5,8,7,8,8,4,10,4,12,2,10
330 DATA 4,15,8,10,8,10,8,12,8,10,8,8,8,7,4,8,8,8,8,8,8,10,8,8,8,7,8,5,4,7,4,8,2,10,4,7,4,5,2,3
340 DATA 4,15,8,10,8,10,8,12,8,10,8,8,8,7,4,8,8,8,8,8,8,10,8,8,8,7,8,5,4,7,4,8,2,10,4,7,4,5,2,3
400 DATA 10,56
410 DATA 4,9,4,6,4,14,4,11,2,11,2,9,4,6,4,2,4,7,4,4,2,4,2,2
420 DATA 4,9,4,6,4,14,4,11,2,11,2,9,4,6,4,2,4,7,4,4,2,4,2,2
430 DATA 4,4,4,4,4,7,4,4,4,6,4,6,4,9,4,6,4,4,4,4,4,7,4,4,4,6,4,6,4,9,4,6,3,9,8,9,2,9,3,11,8,11,2,11,3,13,8,13,2,13,4,14,4,9,4,11,4,7,2,6,2,4,1,2
500 DATA 20,70
510 DATA 8,3,8,15,4,15,8,14,8,12,8,12,8,12,4,12,8,10,8,8,8,7,8,10,8,15,8,10,8,8,8,7,4,7,4,5,4,1000
520 DATA 8,3,8,15,4,15,8,14,8,12,8,12,8,12,4,12,8,10,8,8,8,7,8,10,8,15,8,10,8,8,8,7,4,7,4,5,4,1000
530 DATA 3,8,8,5,8,7,8,8,8,10,8,10,4,7,4,10,3,8,8,5,8,7,8,8,8,10,8,10,4,7,4,10,3,8,8,5,8,7,8,8,8,10,8,10,4,7,4,10,3,8,8,5,8,7,8,8,8,10,8,2,4,5,4,3
600 DATA 15,74
610 DATA 4,6,4,6,4,6,4,9,8,7,8,6,4,7,4,4,4,6,4,7,4,11,2,9,4,6,4,6,4,6,4,9,8,7,8,6,4,7,4,4,3,9,8,7,4,7,2,6
620 DATA 4,9,4,9,8,14,8,13,4,11,4,11,8,11,8,9,4,7,4,7,4,7,4,11,2,9,4,6,4,6,4,6,4,9,8,7,8,6,4,7,4,4,3,9,8,7,4,7,2,6
630 DATA 4,9,4,9,8,14,8,13,4,11,4,11,8,11,8,9,4,7,4,7,4,7,4,11,2,9,4,6,4,6,4,6,4,9,8,7,8,6,4,7,4,4,3,9,8,7,4,7,2,6




Ostatnia aktualizacja: 31.08.2023 22:01:10 przez ZorrO
[#26] Re: znawca bejzika poszukiwany na gwałt

@ZorrO, post #25

Program CIEPLO ZIMNO z Bajtek 3/87 str30.
Działa na CPC, ale używa tylko takich komend które są wspólne dla różnych dialektów i powinien działać także na Atari i Commodore. A na Spectrum chyba sie inaczej tablice DIM deklaruje, a nazwy zmiennych mogą mieć tylko jedną literę.

10 REM ***********************************
20 REM ******** cieplo zimno *************
30 REM ***********************************
99 REM ********* inicjalizacja ***********
100 CLS
110 DIM schowek(32)
120 DIM przykrywka(32)
130 LET pozycja=1
140 LET znaleziono=0
199  REM ****** ukrywanie prezentow ******
200  FOR i=1 TO 5
210   INPUT"Podaj nr schowka 2-30 ",numer
220   IF numer<2 OR numer>30 THEN GOTO 210
230   IF schowek(numer)=1 THEN GOTO 210
240   LET schowek(numer)=1
250  NEXT i
299  REM ******* szukanie prezentow *******
300  FOR p=0 TO 10
310   IF p=0 THEN GOTO 340
319   REM **** odczytywanie klawiatury ****
320   INPUT pozycja
330   IF pozycja<>INT(pozycja) OR pozycja<1 OR pozycja>30 OR przykrywka(pozycja)=1 THEN GOTO 320
339   REM ********** rysunek **************
340   CLS
350   PRINT "         (   1    )(   2    )3"
360   PRINT "123456789012345678901234567890"
370   LET przykrywka(pozycja)=1
380    FOR i=1 TO 30
390     IF przykrywka(i)=0 THEN PRINT "#";
400     IF przykrywka(i)=1 THEN IF schowek(i)=1 THEN PRINT "*";
410     IF przykrywka(i)=1 THEN IF schowek(i)=0 THEN PRINT " ";
420    NEXT i
430   PRINT
440    FOR i=1 TO 30
450     IF i=pozycja THEN PRINT "^";
460     IF i<>pozycja THEN PRINT " ";
470    NEXT i
480   PRINT
489   REM ******* cieplo czy goraco *******
490   IF schowek(pozycja)=1 THEN GOSUB 2000
500   IF (schowek(pozycja-1)=1 AND przykrywka(pozycja-1)=0) OR (schowek(pozycja+1)=1 AND przykrywka(pozycja+1)=0) THEN PRINT "Goraco"
510   IF (schowek(ABS(pozycja-2))=1 AND przykrywka(ABS(pozycja-2))=0) OR (schowek(pozycja+2)=1 AND przykrywka(pozycja+2)=0) THEN PRINT "Cieplo"
519   REM *********** komentarze **********
520   PRINT "Proba";p
530   PRINT "Znalazles";znaleziono;"prezentow."
540  NEXT p
999  REM ****** koniec po 10 probach ******
1000 PRINT "Nie znalazles";5-znaleziono;"prezentow."
1010 END
1999  REM ********** znalezione ***********
2000  PRINT "Jest!!!"
2010  LET znaleziono=znaleziono+1
2020  IF znaleziono=5 THEN GOTO 3000
2030  RETURN
2999  REM ************* sukces ************
3000  PRINT "Znalazles wszystko."
3010 END




Ostatnia aktualizacja: 31.08.2023 22:00:16 przez ZorrO
[#27] Re: znawca bejzika poszukiwany na gwałt

@ZorrO, post #26

łoooo, a tego to nawet nie zauważyłem, że jest jeszcze jeden na 30...
enyłej, w praniu okazało się, że jest jeszcze jeden zonk z "Polskimi znakami" na Atari. Na samym końcu, na str. 12 opisane jest, jak przygotować bootdisk ze zredefiniowanymi klawiszami: wczytać program z 2/87 oraz 1, 2 i 3 z 3/87, po czym RUN, wybrać nowe literki i zapisać na dyskietce podobnie jak w punkcie II. No i wszystko niby idzie gładko, tyle że po restarcie z tą dyskietką screen wygląda tak:



lub tak:



- ten pierwszy to wersja z paczki z neta, a drugi z listingami wklepywanymi przeze mnie... Co ciekawe - różnią się one jedynie tym, że w moich brakuje pierwszych kilku linijek z REM (porównywałem diffcheckerem). Ponadto polskich znaczków w tym przypadku brak... Ki czort?
[#28] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #27

jakis "syfek" zostaje wpisany do pamieci ekranu znakowego , stad te krzaczory.
[#29] Re: znawca bejzika poszukiwany na gwałt

@ZorrO, post #25

4 KOLEDY dla CPC z Bajtek 3/87 str.31.
W jednej z kolęd fałszuje jedną nutkę ale tak było w Bajtku nie jestem muzykiem by to poprawić.


żeby nie fałszowało, trzeba zamienić -1 na -2 w linii 530.
[#30] Re: znawca bejzika poszukiwany na gwałt

@snajper, post #29

...a najlepiej zamienić 500 i 530 na:

500 DATA 20,74
530 DATA 4,8,8,8,8,5,8,7,8,8,8,10,8,10,4,7,4,10,4,8,8,8,8,5,8,2,8,-2,8,3,8,3,4,7,4,10,4,8,8,8,8,5,8,7,8,8,8,10,8,10,4,7,4,10,4,8,8,8,8,5,8,7,8,8,8,10,8,2,4,5,4,3

bo w tej kolędzie się też rytm nie zgadza.
1
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem