Tajemnice ATARI

6 Strona

STRZAŁKA

    Strzałka Igora Kruka to kolejny przykład programu, który NIE powinien znajdować się na szóstej stronie pamięci. Jest to uniwersalny sterownik strzałki-wskaźnika, może więc być wykorzystywany przez wiele programów, podczas gdy szósta strona powinna być wolna dla lokalnego spożytkowania w konkretnym programie. Rozumiem motywy, które kierują autorami: wszak istnieje ten konkurs... Jednak dla "szarych" użytkowników znacznie wygodniejszy byłby program rezydentny (mógłby się mieścić np. powyżej RAMTOP, obok obszaru PM).
10 DIM A$(26):A=1536
20 TRAP 60:READ A$:I=1:H=0:TRAP 20
30 N=ASC(A$(I))-48:N=N-39*(N>9):I=I+1
40 X=16*X+N:H=1-H:IF H=1 THEN 30
50 POKE A,X:X=0:A=A+1:GOTO 30
60 POKE 106,PEEK(106)-16:GRAPHICS 0
70 ? "GOTOWE.":A=USR(1536,1,0,3):NEW 
1010 DATA 6868688ded06686829018def06
1020 DATA 686829078dee06a9788deb068d
1030 DATA ec06a56a8d07d41869048d3b06
1040 DATA 8d73068dd306a0008c3a068c72
1050 DATA 068cd2069899ffffc8d0faa93a
1060 DATA 8d2f02a9008d6f028d08d0a90a
1070 DATA 8dc002a9028d1dd0a060a206a9
1080 DATA 07205ce460aded06d005adea06
1090 DATA f07dacec06a210a90099ffffc8
1100 DATA cad0f98dea06aded06f0678dea
1110 DATA 06aeef06bd7802490f290faa29
1120 DATA 01f00a38adec06edee068dec06
1130 DATA 8a2902f00a18adec066dee068d
1140 DATA ec068a2904f00a38adeb06edee
1150 DATA 068deb068a2908f00a18adeb06
1160 DATA 6dee068deb06acec06a200bdf0
1170 DATA 0699ffffc8e8e00fd0f4adeb06
1180 DATA 8d00d085cbadec0685cc4c62e4
1190 DATA 003232010100f8f0f0f0980c06
1200 DATA 000000000000000000
    W wywołaniu procedury inicjującej

X=USR(1536,act,joy,spd)

act steruje obecnością strzałki na ekranie (0 - nie ma)
joy wybiera port joysticka, który steruje ruchem strzałki
spd ustala prędkość strzałki (w zakresie od 1 do 7)

   Podane parametry można też zmieniać POKE-ami (kolejno: 1773,1774,1775).

   W komórkach 203, 204 znajduje się aktualna pozycja strzałki (X, Y), lecz odczytane wartości nie są tożsame z parametrami stosowanymi w rozkazach POSITION, PLOT i DRAWTO. Trzeba je dodatkowo przeliczać (różnie dla różnych trybów). Najlepiej wypraktykować to samemu. Po każdym wykonaniu GRAPHICS strzałka wymaga ponownego uaktywnienia przez POKE 559,58. Po naciśnięciu RESET trzeba od nowa wykonać USR.

MINI-MONITOR PAMIĘCI

    Leszek Taratuta nadesłał program szczególnie przydatny dla tych, których ciekawi zawartość pamięci naszego komputera. Dużą atrakcję stanowi fakt, że wywołanie monitora nie przerywa działania programu aktualnie wykonywanego, można więc obserwować "żywy" program w akcji.
10 DIM A$(26):A=1536
20 TRAP 60:READ A$:I=1:H=0:TRAP 20
30 N=ASC(A$(I))-48:N=N-39*(N>9):I=I+1
40 X=16*X+N:H=1-H:IF H=1 THEN 30
50 POKE A,X:X=0:A=A+1:GOTO 30
60 A=USR(1536)
1010 DATA 68a9018df806a9078dfc06ad24
1020 DATA 028dfe06ad25028dff06a020a2
1030 DATA 06a9074c72c2addc02c91108ae
1040 DATA f806caf003caf02c28d0278edc
1050 DATA 02eef806ad2f028df906ad3002
1060 DATA 8dfa06ad31028dfb06a9218d2f
1070 DATA 02a9bd8d3002a9068d3102d05f
1080 DATA 28d01a8edc02adf9068d2f02ad
1090 DATA fa068d3002adfb068d3102cef8
1100 DATA 06d042cefc06d03dae1fd08a29
1110 DATA 01d003eec6068a2902d003cec6
1120 DATA 06adc6068dfd06a000a200adfd
1130 DATA 0638f9f50690068dfd06e8d0f4
1140 DATA 8a18691099e906c8c003d0e3a9
1150 DATA 078dfc066cfe06707070707070
1160 DATA 70420000020202020202021042
1170 DATA d50641bd060000000000000000
1180 DATA 7374726f6e61006e72001a0010
1190 DATA 1010000000000000000000640a
1200 DATA 010000000000000000
    Po uruchomieniu powyższego programu monitor zagnieżdża się na 6. stronie. Odtąd HELP powoduje pokazanie pojedynczej strony pamięci. Klawiszami START i SELECT można dokonać wyboru strony. Ponowne naciśnięcie HELP spowoduje uśpienie monitora.



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2001