Ready/Run

Takie sobie archiwum listingów ze starych magazynów komputerowych


Wprowadzanie funkcji dla C-64
  • Język programu: Commodore Basic
  • Platforma: Commodore C64
  • Kod zamieszczono w Bajtek 1/1988
  • Autor listingu: Krystian Łojewski
  • Listing nadesłał: Faust

Stan listingu:

3
Listing skorygowany - prawdopodobnie zawiera błędy, uruchamia się na emulatorze lub realnej maszynie, wymaga jednak poprawek kosmetycznych

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.