Turbo Basic XL - materiały podesłane/napisane przez:
    1. Paweł "Sikor" Sikorski
    1. Sławomir "Bluki" Woźniak
    1. Arkadiusz "Larek" Lubaszka

Biblioteka procedur TB XL

Wszystkie poniższe procedury można kopiować i używać w swoich programach bez ograniczeń. Służą one jakodarmowa baza, mająca za cel pomoc przy pisaniu nowych programów.
Każdy przykład znajdujący się tutaj będzie podany jako tekst. Zasadniczowystarczy go skopiować i używać. Wszystkie przykładowe procedury będą numerowane od 999 linii (właściwie od 1000), po przekonwertowaniu tekstu i wczytaniu do edytora należy przenumerować sobie linie na takie, jakie są nam potrzebne w programie (służy do tego instrukcja RENUM).
Przypominam, że procudury w TB XL wywołujemy przez EXEC nazwa_procedury

Zerowanie danych przez MOVE

999 ------------------------------
1000 PROC ZEROWANIE_MOVE
1001   FOR I=%0 TO 39:POKE $6000+I,%0:NEXT I
1002   FOR I=%1 TO 24:MOVE $6000,$6000+I*40,40:NEXT I
1003 ENDPROC 
		

Pisząc programy często stajemy przed koniecznością wyczyszczenia (wyzerowania) serii danych w pamięci (względnie wypełnienia jej powtarzającymi się seriami danych). Pomocna jest w tym przypadku instrukcja POKE, jednak gdy jest bardzo dużo danych - problematyczne staje się jej wykorzystanie wprost. Przy bardzo dużej ilości powtórzeń pomocna bywa instrukcja MOVE skąd,dokąd,ile.
Opis procedury:

  • Linia 1001 - wypełnienie pamięci serią danych (tu - zerowanie, 40 bajtów, od adresu $6000)
  • Linia 1002 - powielenie danych 24 razy
Dzięki tej metodzie w szybki sposób udało się wyzerować 1000 bajtów. Oczywiście adres wypełnienia, wielkość serii, ilość powtórzeń można zmienić - proponuję zrobić test dla 10000 bajtów przez samo for-poke-next oraz przez move.


Zerowanie danych przez MOVE

999 ------------------------------
1000 PROC ZEROWANIE_MOVE
1001 FOR I=$6000 TO $63C0 STEP 40 : MOVE 
ADR("++++++++++++++++++++++++++++++++++++++++"),I,40:
NEXT I
1002 ENDPROC
	

Zamiast znaków "+" powinny być atarowskie serduszka o kodzie 0.
Jak pisze autor procedury: Nie twierdzę, że to najszybsza metoda wyzerowania obszaru pamięci, ale szybka to ona jest. Oczywiście, zamiast serduszek o kodzie 0 można wstawić inny znak (o innej wartości) i nim wypełnić dany obszar.