home *** CD-ROM | disk | FTP | other *** search
/ Rape Rulz / Rape_Rulz_19xx___pl_Side_A_a.atr / basic.arc / KURS.DOC < prev    next >
Text File  |  1988-09-01  |  7KB  |  1 lines

  1.            Kurs Atari Basica/2/¢¢ Poprzednio zdobyte wiadomo③ci powinne¢wystarczy⇨ do napisania prostych "pro-¢gramik".¢¢ Wy③wietlenie napisu w trybie tekstowym¢0 z jednoczesnym czyszczeniem ekranu:¢¢10 GRAPHICS 0¢20 ? "}"¢30 POS.1,10:? "Piesek wali suczk❎ w..."¢¢ Analogicznie -wy③wietlenie napisu, ale¢w trybie 1 lub 2¢¢10 GRAPHICS 1(lub 2)¢20 ? #6; "Suczka dosta a orgazmu"¢¢¢ No dobra. Jeəeli kto③ nie kapejszyn¢powyəszych programikw, to niech wy ⇧-¢czy komput klawiszem RESET ...¢¢ Widz❎, əe tego nie zrobi e③, ③wiadczy¢to wi❎c o tym, əe powyəsze programiki¢s⇧ przez Ciebie rozumiane... Moəemy¢wi❎c przej③⇨ do w a③ciwej lekcji ...¢¢ Na pocz⇧tku wspomn❎ o bardzo cz❎sto¢wykorzystywanej instrukcji jak⇧ jest¢GOTO numer linii. Program po napotkaniu¢jej wykonuje skos do wskazanej linii,¢np. GOTO 30 oznacza skok do linii 30.¢¢ Cz❎sto, gdy na ekranie w trybie 0¢wy③wietli si❎ wcze③niej wprowadzony¢przez nas tekst instrukcj⇧ PRINT(skrt¢to ?) zaraz po wy③wietleniu wraca do¢stanu gotowo③ci Basica -napisu READY.¢A gdyby tak poczeka⇨, a dopiero p♪niej¢wyskoczy o to READY... Jak to zrobi⇨?¢Do tego celu pos uəymy si❎ najprostsz⇧¢tzw.p❎tl⇧ op♪niaj⇧c⇧. Jak z nazwy wy-¢nika ta p❎tla s uəy do robienia pauzy.¢Wzr takiej pauzy to:¢¢ FOR T=x TO y:NEXT T¢¢gdzie:¢za x wstawiamy dowoln⇧ liczb❎(na pocz⇧-¢tek niech to b❎dzie 1 lub 0), a za y¢dowoln⇧ inn⇧, wi❎ksz⇧ od zera. O co tu¢chodzi? Komputer napotykaj⇧c tak⇧ in-¢strukcj❎ liczy od warto③ci x do y.¢W zaleəno③ci jak d uga ma by⇨ pauza¢wpisuje si❎ wi❎ksz⇧ warto③⇨. Np. p❎tla:¢FOR T=1 TO 1000:NEXT T oznacza, əe kom-¢puter liczy od 1 do 1000 i po skocze-¢niu liczenia nast❎puje wykonanie nast❎-¢pnej linii. Jeəeli takowej nie ma, to¢oczywi③cie nast❎puje w ⇧czenie trybu¢0(jeəeli aktualnie byli③my w innym)¢i wy③wietleniu napisu READY...¢Pobawcie si❎ !¢¢ Czasami przydaje si❎ nast❎puj⇧ca rzecz¢wyskakuje napis wy③wietlony poprzez¢instrukcj❎ PRINT, po ktrej nast❎puje¢p❎tla op♪niaj⇧ca, a po niej czyszcze-¢nie ekranu i kolejny napis. I w a③nie¢podczas trwania p❎tli op♪niaj⇧cej¢do③⇨ "nie adnie" wygl⇧da widniej⇧cy¢kursor. Aby kursor nie by  widoczny,¢naleəy tak zmieni⇨ zawarto③⇨ komrki¢752, aəeby by a wi❎ksza od zera. Jeəeli¢zawiera ona warto③⇨ 0 wwczas kursor¢jest widoczna. Kaəda inna warto③⇨ powo-¢duje jego ukrycie. Wi❎c, aəeby w naszym¢programie nie by o wida⇨ kursora naleəy¢wprowadzi⇨ zaraz w pierwszej linii pro-¢gramu(ale za ew.instrukcj⇧ GRAPHICS)¢instrukcj❎: POKE 752,1 . . .¢¢¢¢ Czasami przydaje si❎ takowa rzecz:¢po wy③wietleniu napisu w trybie 0 in-¢strukcj⇧ PRINT(skrt to ?)przyda oby¢si❎, aəeby po naci③ni❎ciu dowolnego¢klawisza ukazywa  si❎ kolejny napis,¢ktrego instrukcja umoəliwiaj⇧ca jego¢wy③wietlenie znajduje si❎ w kolejnym¢wierszu. W takim celu naleəy skorzysta⇨¢z instrukcji GET umoəliwiaj⇧cej odczyt¢z dowolnego urz⇧dzenia(w naszym wypad-¢ku klwiatury) jednego bajtu danych.¢Tuə pod naszym pierwszym napisem pisze-¢my np.¢130 OPEN #1,4,0,"K:" -otwarcie kana u¢                      pierwszego dla¢                      klawiatury¢140 GET #1,A         -czekanie na naci-¢                     ③ni❎cie dowolnego¢                     klawisza¢¢ Po co to OPEN? Instrukcja GET musi¢by⇨ poprzedzona otwarciem pierwszego¢kana u IOCB. Numer kana u moəe by⇨ od¢1 do 7, ale najbezpieczniejszym jest¢zazwyczaj numer #1. W tym wypadku -ot-¢wierany jest pierwszy kana  dla klawia-¢tury. To tak jak ze ③ciekami w podzie-¢miach miast -jeəeli b❎d⇧ zatkane, nic¢przez nie nie przeleci, a jeəeli otwa-¢rte moəna "przes a⇨" ... Po instrukcji¢GET #1,A najlepiej jest zamkn⇧⇨ kana ,¢bo cholera jasna wie, co b❎dzie p♪niej¢w naszym programie, a zamkni❎cie kana u¢niczym nie przeszkadza -nawet jeəeli¢kana  b❎dzie zamkni❎ty i b❎dziemy pr-¢bowa⇨ go zamkn⇧⇨ nie spowoduje to b ❎-¢du. Tak wi❎c -zamkni❎cie kana u umoəli-¢wia funkcja CLOSE #numer kana u. Czyli:¢aəeby zamkn⇧⇨ kana  np. numer #1 trze-¢ba napisa⇨: CLOSE #1 ...¢Ca a funkcja czekania na dowolny kla-¢wisz winna wygl⇧da⇨ nast❎puj⇧co:¢130 OPEN #1,4,0,"K:"¢140 GET #1,A¢150 CLOSE #1¢i w linni 160 wprowadzamy dalsz⇧ cz❎③⇨¢programu ...¢¢ Czasami w programie przyda oby si❎¢zada⇨ pytanie "widzowi". Jest to wi❎c¢rwnoznaczne z wprowadzeniem danych¢przez "widza" do komputera. Pomy③lisz:¢tak⇧ operacj❎ wykonuje funkcja wcze③-¢niej opisana -GET. DObrze my③lisz, ale¢funkcja GET moəe pobra⇨ TYLKO JEDEN¢BAJT. A jeəeli zadane pytanie b❎dzie¢wymaga o odpowiedzi sk adaj⇧cej si❎¢z kilku liter to co? Do tego celu s u-¢əy instrukcja INPUT. Umoəliwia ona¢wprowadzenie tekstu do tzw.zmiennej.¢Zmienna, s uəy do przechowywania infor-¢macji. Dlatego teə funkcja INPUT sk ada¢si❎ : INPUT zmienna. Aby zmienn⇧ "otwo-¢rzy⇨" pos uəy⇨ si❎ trzeba instrukcj⇧¢DIM. S uəy ona w a③nie do deklaracji¢zmiennej. Na pocz⇧tku naszego programu¢napiszmy: DIM A$(40) -oznacza ona "za-¢j❎cie" przez zmienn⇧ A$ 40 wolnych¢bajtw(znakw). Tak wi❎c do zminnej¢A$ moəna wprowadzi⇨ do 40 znakw. Natu-¢ralnie d ugo③⇨ zmiennej moəe by⇨ dowol-¢na(ale nie wi❎ksza niə 32767 ...¢I teraz.. Napisanie w programie¢INPUT A$ spowoduje czekanie na wprowa-¢dzenie tekstu dla zmiennej A$. Proste?¢Ale. Przyda oby si❎ odczyta⇨ jako③ t❎¢nasz⇧ zmienn⇧. Np. jeəeli zadali③my¢rytanie czytelnikowi, ktrej odpowied♪¢mia a sk ada⇨ si❎ z odpowiedzi na TAK¢lub NIE, wwczas moəna waln⇧⇨ tak:¢¢10 DIM A$(3)¢20 ? "Czy seks jest fajny?"¢30 INPUT A$¢40 ? "Fajnie, ze";A$;" "¢ Powyəszy program spowoduje po wpisaniu¢odpowiedzi jako A$(INPUT A$) umieszcze-¢nie je w linii 40 po wyrazie "ze" .¢¢ Czasami niektrzy robi⇧ sobie jaja¢z naszym programem, powoduj⇧c jego b ⇧d¢Naturalnie -zajmiemy si❎ teraz zabez-¢pieczeniami programw.¢¢ Najcz❎stszym b ❎dem jest b ⇧d 136 wy-¢wo any przez Control+3. ⑧eby zapobiec¢takiemu syfowi musimy pos uəy⇨ si❎ in-¢strukcj⇧ TRAP, ktra umoəliwia przej❎-¢cie kontroli nad programem w przypadku¢wyst⇧pienia b ❎du. Wzr insrukcji to:¢TRAP linia -oznacza, əe w przypadku¢            wyst⇧pienia b ❎du program¢            musi skoczy⇨ do "linii".Np.¢TRAP 40¢¢ Konkretny przyk ad:¢¢10 DIM A$(3)¢20 ? "Ile masz lat?"¢30 TRAP 60¢40 INPUT A$¢50 END¢60 ? "Nie rb sobie jaj"   (Yo!Pigu a!)¢70 GOTO 20¢¢ Drugim do③⇨ m❎cz⇧cym problemem jest¢przerwanie dzia ania programu za pomoc⇧¢BREAKa. Na ten temat wiele by o wyla-¢nych s w w Bajtkach czy innych. Cz❎sto¢by o to zabezpieczenie w programie zaj-¢muj⇧cym po kilka wierszy. Ja proponuj❎¢bardzo prost⇧ instrukcj❎ zabezpieczaj⇧-¢c⇧ w stu procentach przed Breakiem.¢Jest to funkcja POKE 566,158, ktr⇧¢naleəy umie③ci⇨ w pierwszej linii na-¢szego programu.¢¢ Kolejnym problemem jest klawisz RESET.¢Aby po naci③ni❎ciu RESETu program wyko-¢nywa  zimny start, wystarczy wpisa⇨ na¢pocz⇧tku programu instrukcj❎ POKE 580,1¢¢ To tyle! Dzisiaj zdobyte wiadomo③ci¢winne wystarczy⇨ do umiej❎tno③ci napi-¢sania programu:¢¢10 DIM A$(3)¢20 POKE 566,158:POKE 580,1:POKE 752,1¢30 ? "}":? "Czy lubisz seks?"¢40 TRAP 100¢50 INPUT A$¢60 ? "Fajnie, ze ";A$;"."¢70 FOR T=1 TO 800:NEXT T¢80 END¢100 ? "Nie rb sobie jaj!"¢110 OPEN #1,4,0,"K:"¢120 GET #1,A¢130 CLOSE #1¢140 GOTO 30¢¢ To wszystko!¢¢                                Cubes¢