Tajemnice ATARI

6 STRONA


PROGRAM "PAMIĘTACZ"


   Po naciśnięciu klawisza RESET automatycznie przywraca wartości niektórych komórek systemowych zgodnie z ich wcześniejszym ustawieniem przez użytkownika. Odtwarzane są: marginesy, kolory ekranu, używany zestaw znaków, przełącznik dźwięku "klik" oraz zwłoka i prędkość powtarzania klawiatury. Oszczędza to wielokrotnego wpisywania POKE-ów. Dodatkowo program ten pozwala dokonywać za pomocą klawiszy 'konsoli" wyboru pomiędzy trzema różnymi zestawami znaków: standardowym (klawisz START), międzynarodowym (SELECT) i własnym zestawem (OPTION), którego starszy bajt adresu zapisuje się w komórce 757. Po uruchomieniu (zainstalowaniu) programu od adresu 1538, a także po każdym RESET, zgłasza się on komunikatem "Jestem!!". Można go jednak bardzo łatwo zdezaktywować (odinstalować), naciskając RESET z wciśniętym dodatkowo klawiszem START.

10 REM *--------------------------*
20 REM : Pamietacz                :
30 REM :     '    Maciej Czarnota :
40 REM : (c) 1991 Tajemnice ATARI :
50 REM *--------------------------*
60 A=1536:TRAP 80
70 READ B:POKE A,B:A=A+1:GOTO 70
80 A=USR(1536)
90 END
110 DATA 104,165,12,141,119,6,165,13
120 DATA 141,120,6,169,22,133,12,169
130 DATA 6,133,13,76,103,6,173,31,208
140 DATA 201,6,208,19,162,142,160,6
150 DATA 32,66,198,173,119,6,133,12
160 DATA 173,120,6,133,13,208,42,160
170 DATA 1,185,121,6,153,244,2,185
180 DATA 126,6,153,82,0,136,16,241
190 DATA 160,2,185,123,6,153,217,2
200 DATA 136,16,247,160,4,185,128,6
210 DATA 153,196,2,136,16,247,32,11,6
220 DATA 173,119,6,133,203,173,120,6
230 DATA 133,204,108,203,0,160,152
240 DATA 162,6,169,7,32,92,228,162
250 DATA 133,160,6,76,66,198,0,0,0,0
260 DATA 0,0,0,0,0,0,0,0,0,0,74,101
270 DATA 115,116,101,109,33,33,155,66
280 DATA 121,101,45,98,121,101,33,33
290 DATA 155,173,31,208,201,6,208,4
300 DATA 169,224,208,15,201,5,208,4
310 DATA 169,204,208,7,201,3,208,6
320 DATA 173,245,2,141,244,2,160,1
330 DATA 185,244,2,153,121,6,185,82,0
340 DATA 153,126,6,136,16,241,160,2
350 DATA 185,217,2,153,123,6,136,16
360 DATA 247,160,4,185,196,2,153,128
370 DATA 6,136,16,247,76,138,194,END
Maciej Czarnota

   Od redakcji: Program wplata swoją procedurę w sekwencję RESET DOS lub COS. Domniema się więc, że bit 0 komórki 9 (BOOT) jest ustawiony. Oznacza to, że Pamiętacz nie będzie działał poprawnie bez obecności takiego systemu.

RAMFILE


   Spośród wielu podobnych programów, jakie nawiedziły ostatnio naszą redakcję, prezentujemy najzgrabniejszy. Autorzy nazywają swe dzieła szumnie "ram-dyskami", lecz są to raczej "ram-pliki", gdyż operują na pamięci przykrytej ROM-em tak, jak na pojedynczym pliku o nazwie 'M:". Można w nim zapisać program BASIC-owy przez SAVE "M:" lub LIST 'M:", a potem go odczytać. Można go użyć dla biblioteki lub połączonych bibliotek w QA. Można nagrać obrazek spod KOALI... Zakres zastosowań jest nieograniczony. RamFile koliduje wszakże z programami, które same zagospodarowują wspomnianą pamięć, jak SpartaDOS, Turbo BASIC, XLFriend. RamFile należy przetworzyć programem Zgrywus +.

   RESET wyłącza plik "M:", lecz dane w nim nie giną. Można aktywizować RamFile przez X=USR(1538) w BASIC-u lub RUN 801 w DOS-ie (różnica adresów spowodowana jest przez rozkaz PLA). Należy zadbać, by RamFile nie był nigdy otwarty jednocześnie w dwóch kanałach we/wy.

1000 REM *--------------------------*
1002 REM :       Handler "M:"       :
1004 REM :    autor: L.Sztobryn     :
1006 REM : (c) 1991 Tajemnice ATARI :
1008 REM *--------------------------*
1010 DATA FFFF00068F0668A24DA00AA906
1020 DATA 4CBCEE18061506570631061506
1030 DATA 1506A00160AE8F06A000A90824
1040 DATA 2AF0068C3B068E3C068C6B068E
1050 DATA 6C06C860AE3C06F01B2082068D
1060 DATA 3A06EE01D358EE3B06D0D0E8E0
1070 DATA D0D002A2D88E3C06D0C4A0A260
1080 DATA A08860AD6B06CD3B06AD6C06AA
1090 DATA ED3C06B0EE208206AD6A06EE01
1100 DATA D358EE6B06D0A0E8E0D0D002A2
1110 DATA D88E6C06D0942C0BD430FB8D0A
1120 DATA D478CE01D360C0E002E1020106
L. Sztobryn

   Program w BASIC-u jest tylko krótką demonstracją działania procedury maszynowej umiejscowionej na szóstej stronie. Ta procedura pozwala przenieść w dowolne miejsce ekranu zaprojektowany wcześniej znak. Jej istotną cechą jest to, że pary bitów danych, przyjmujące kolor tła (00), nie zamazują dotychczasowej zawartości ekranu, dzięki czemu uzyskuje się efekt grafiki trójwymiarowej.

1 REM *-----------------------------*
2 REM :                             :
3 REM :  TRZY  WYMIARY              :
4 REM :                             :
5 REM :      autor  Aleksander Usik :
6 REM :                             :
7 REM *-----------------------------*
8 REM [Z] mala cegla, [X] duza cegla
9 REM joy(0) budowanie, [D] demo
10 ? CHR$(125):LIST 1,9:GOSUB 430
20 REM ---- Dane: mala cegla ----
30 RESTORE 40:FOR I=21000 TO 21000+31:
READ A:POKE I,A:NEXT I
40 DATA 0,0,0,0,15,10,42,255,170,170,1
70,170,170,170,170,170
50 DATA 0,0,0,0,255,175,187,235,235,23
5,235,235,235,236,240,192
60 REM ---- Dane: duza cegla ----
70 RESTORE 80:FOR I=21032 TO 21095:REA
D A:POKE I,A:NEXT I
80 DATA 0,0,0,0,3,14,58,255,170,170,17
0,170,170,170,170,170
90 DATA 3,14,58,234,170,170,170,255,17
0,170,170,170,170,170,170,170
100 DATA 255,170,170,170,171,174,186,2
34,234,234,234,234,235,236,240,192
110 DATA 255,175,187,235,171,171,171,1
71,171,172,176,192,0,0,0,0
120 REM ---- Program pokazowy ----
130 GRAPHICS 15+16:PM=PEEK(88)+PEEK(89
)*256:ADWZ=21000:KOL=1
140 POKE 708,4:POKE 709,8:POKE 710,14:
POKE 712,0
150 X=0:Y=0
160 ST=STICK(0)
170 X=X+(ST=7 AND X<39-KOL)-(ST=11 AND
 X>0):Y=Y+4*(ST=13 AND Y<176)-4*(ST=14
 AND Y>0)
180 PMM=PM+X+Y*40
190 GOSUB 250
200 IF STRIG(0)=0 THEN SOUND 0,50,12,1
5:A=USR(1536,ADWZ,PMM,16+KOL*256):SOUN
D 0,0,0,0
210 IF PEEK(764)=23 THEN ADWZ=21000:KO
L=1:POKE 764,255
220 IF PEEK(764)=22 THEN ADWZ=21032:KO
L=3:POKE 764,255
230 IF PEEK(764)=58 THEN ? #6;CHR$(125
):GOSUB 300:POKE 764,255
240 GOTO 160
250 REM ---- Celownik ----
260 KG=PEEK(PMM):KD=PEEK(PMM+640)
270 POKE PMM,255:POKE PMM+640,255:POKE
 PMM,0:POKE PMM+640,0
280 POKE PMM,KG:POKE PMM+640,KD
290 RETURN
300 REM ---- Demo ----
310 Q=0:FOR Y=0 TO 12 STEP 2+2*(KOL=3)
320 FOR X=0 TO 19 STEP 1+(KOL=3)
330 SLUP=INT(RND(0)*3+12-Y)
340 FOR SL=0 TO SLUP
350 PMM=PM+4495+X+Y*160-Q-SL*320
360 SOUND 0,50,12,15
370 A=USR(1536,ADWZ,PMM,16+KOL*256)
380 SOUND 0,0,0,0
390 NEXT SL
400 NEXT X:Q=Q+2+2*(KOL=3):NEXT Y
410 FOR I=0 TO 255:POKE 710,I:NEXT I:P
OKE 710,14
420 FOR I=0 TO 500:NEXT I:? #6;CHR$(12
5):RETURN
430 REM ---- szosta strona ----
440 RESTORE 470:I=0
450 READ A:IF A<0 THEN RETURN
460 POKE 1536+I,A:I=I+1:GOTO 450
470 DATA 104,104,133,204,104,133,203,1
04,133,206,141,254,6,104,133
480 DATA 205,141,253,6,104,133,208,104
,133,207,141,255,6,160,0
490 DATA 177,203,133,209,24,165,209,41
,192,208,8,177,205,41,192
500 DATA 101,209,133,209,165,209,41,48
,208,8,177,205,41,48,101
510 DATA 209,133,209,165,209,41,12,208
,8,177,205,41,12,101,209
520 DATA 133,209,165,209,41,3,208,8,17
7,205,41,3,101,209,133
530 DATA 209,165,209,145,205,169,40,24
,101,205,133,205,144,2,230
540 DATA 206,230,203,208,2,230,204,198
,207,208,168,165,208,240,27
550 DATA 238,253,6,208,3,238,254,6
560 DATA 173,254,6,133,206,173,253,6,1
33,205
570 DATA 173,255,6,133,207,198,208,16,
137,96,-1
Aleksander Usik




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

Pixel 2001