Ready/Run

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


Circle
  • Język programu: Locomotive Basic
  • Platforma: Amstrad
  • Kod zamieszczono w Bajtek 12/1986
  • Autor listingu: Sergiusz Wolicki
  • Listing nadesłał: Faust

Stan listingu:

1
Listing przepisany - zawiera błędy, nieuruchamia się na emulatorach lub realnej platformie

Zamieszczony poniżej program służy do rozszerzenia BASIC-a Amstrada o dodatkowa komendę CIRCLE.
Komendę tę wywołuje się przez pionową kreskę SHIFT + @ tak, jak np. instrukcje obsługi stacji dysków. Składnia instrukcji jest następująca:
CIRCLE,x,y,r x,y
- współrzędne środka okręgu
r - promień okręgu
Podobnie jak w Spectrum komenda ta rysuje okrąg o zadanych parametrach, nie zmienia jednak pozycji ostatniego narysowanego ounktu. Współrzędne środka okręgu podlegają tym samym prawom, co współrzędne instrukcji PLOT i DRAW (tzn. ten sam zakres, ORIGIN).
Algorytm tej komendy w BASIC-u podajemy obok. Loader w BASIC-u jest tak na pisany, że zapewnia relokowalność programu tzn. można umieścić kod maszynowy pod różnymi adresami w pamięci. Adres początkowy należy umieścić w linii 260 przypisując go zmiennej a. Spośród linii 370-390 należy wybrać tę, która odpowiada posiadanemu modelowi Amstrafa Schneidera. W liniach DATA ukryte są sumy kontrolne zapewniające kontrolę poprawności wpisywania programu. Jeżeli zdecydowaliśmy się na jeden adres początkowy, to po uruchomieniu loadera możemy podać komendę
SAVE "CIRCLE",b,a,495
i potem ładować komendę do pa mięci rozkazami
MEMORY adr-1:LOAD "CIRCLE"
CALL adr
gdzie adr oznacza ustalony adres początkowy - dawna wartość zmiennej a.
 

Circle