Otóż pisząc program obsługi tablicy reklamowej (na Atmega32 )zupełnie przypadkiem stwierdziłem, że na zmienną typu string np 10 znakową można
zapisać np 20 znaków instrukcją Restore i Read.
Co więcej to działa w normalnym programie tak jakby ta zmienna miała faktycznie 20 znaków !
Oto przykład sprawdzony na symulatorze:
Zastanawiam się gdzie bascom umieszcza tą dłuższą zmienną.
Mam zdefiniowane tak na wszelki wypadek:
Być może dlatego program działa prawidłowo.
zapisać np 20 znaków instrukcją Restore i Read.
Co więcej to działa w normalnym programie tak jakby ta zmienna miała faktycznie 20 znaków !
Oto przykład sprawdzony na symulatorze:
Dim Tekst As String * 10
Dim Dlugosc As Byte
Tekst = "AAAAAAAAAA" 'Jeżeli przypiszemy dłuższy 'tekst to wyrzuci błąd i słusznie
'Tekst = "AAAAAAAAAAbbb" 'tu wyrzuca błąd
Print Tekst
Dlugosc = Len(tekst)
Print Dlugosc
Restore Dlugi_tekst
Read Tekst 'ALE JAK WCZYTAMY Z TABLICY DŁUŻSZY TEKST TO WSZYSTKO JEST OK ?????????????
Print Tekst
Dlugosc = Len(tekst)
Print Dlugosc
End
Dlugi_tekst:
Data "OOTTUEYEYWHDDFGGOTREE"Zastanawiam się gdzie bascom umieszcza tą dłuższą zmienną.
Mam zdefiniowane tak na wszelki wypadek:
$hwstack = 150 'wartosc stosu
$swstack = 180 'wartosc stosu
$framesize = 180 'wartosc ramkiByć może dlatego program działa prawidłowo.