Ready/Run
Takie sobie archiwum listingów ze starych magazynów komputerowych
- Język programu: Commodore Basic
- Platforma: Commodore C64
- Kod zamieszczono w Bajtek 1/1988
- Autor listingu: Krystian Łojewski
- Listing nadesłał: Faust
Stan listingu:
Jedną z większych wad wersji BASIC V2.0 Commodore 64 jest niemożność wprowadzania za pomocą instrukcji INPUT własnych funkcji czy wyrażeń algebraicznych.
Jedną z większych wad wersji BASIC V2.0 Commodore 64 jest niemożność wprowadzania za pomocą instrukcji INPUT własnych funkcji czy wyrażeń algebraicznych. Jak wadę tę zlikwidować? Bardzo prosto. Wpisz poniżej przedstawiony program...
Powyższej wady pozbawiony jest np. komputer ZX Spectrum w którym ciąg instrukcji: INPUT AS: X = VAL A$ umożliwia obliczenie danego wyrażenia. Dla C-64 równoważnym ciągiem będzie: INPUT A$: £VAL,X,A$
Procedura ta, napisana w języku wewnętrznym zlokallizowana jest w obszarze 4 dodatkowych KB pamięci od adresu 49152 ($C000). Po uruchomieniu i wykonaniu program wczytujący kasuje się samoczynnie. Procedura ta jest włączona w istniejącą pętlę interpretera, tak więc posługiwanie się nią nie przeszkadza równoległemu korzystaniu z innych rozszerzeń takich jak np. TURBO, pod warunkiem, że obszary przez nie zajmowane nie kolidują ze sobą, oraz, że procedura tu omawiana będzie wczytana i uruchomiona jako ostatnia. Wynika to z faktu, że większość rozszerzeń wykorzystuje (i zmienia) wektor zawarty w komórkach 776 i 777, bez uwzględnienia wartości dotychczasowych. Wady tej pozbawiony jest omawiany tu program. Po wprowadzeniu wzoru danego wyrażenia (np. 2 + 2*5) za pomocą instrukcji INPUT, jego wartość jest obliczana poprzez £VAL,X,A$ a wynik jest przypisywany zmiennej oznaczonej w przykładzie jako X.