Tajemnice ATARI

Heartlight Saver


    Zapowiadaliśmy w poprzednim numerze wydrukowanie programu do zgrywania Heartlighta w postaci samodzielnej gry. Niniejszym to czynimy. Zamieszczamy dwa listingi: pierwszy dłuższy, ale i potrafiący nagrać gotową grę we wszystkich standardowo spotykanych formatach i krótszy, nagrywający tylko pliki w formacie DOS-u (COS-u).

Aby uzyskać samodzielną grę należy:

1. Przepisać którąś ze "zgrywaczek";
2. Nagrać ją na używaną pamięć zewnętrzną komendą SAVE"D:HLS.BAS" lub CSAVE;
3. Wczytać grę HEARTLIGHT i uruchomić ją;
4. Gdy ukaże się czołówka gry nacisnąć RESET;
5. Wczytać "zgrywaczkę" i ją uruchomić.

Przyjemnej zabawy życzy
redakcja


1 REM -------------------------------
2 REM :   short HEARTLIGHT saver    :
3 REM : autor:  Miroslaw Liminowicz :
4 REM :  (c) 1991  Tajemnice Atari  :
5 REM -------------------------------
10 DIM A$(26):GAM=36864:K=GAM-9
20 CAV=28672:? CHR$(125)
30 DT=2000:C=1:BS=GAM-21:GOSUB 900
40 DT=960:C=2:BS=1536:GOSUB 900
50 ? "Podaj kody kolorow w grze:"
60 ? " 004,006,014,010,000";CHR$(28)
70 TRAP 30:INPUT C1,C2,C3,C4,C5
80 POKE K,C1:POKE K+1,C2:POKE K+2,C3
90 POKE K+3,C4:POKE K+4,C5
100 CL=PEEK(CAV+2)*240+23
110 CND=CAV+CL-1:POKE CAV-1,INT(CND/25
6):POKE CAV-2,CND-256*INT(CND/256):POK
E CAV-3,112:POKE CAV-4,0
120 ? "Podaj nazwe pliku ";:INPUT A$
130 AUX=0:IF A$(1,1)="C" THEN AUX=128
140 TRAP 190:OPEN #1,8,AUX,A$
150 A=USR(1536,2325,GAM-21)
160 IF A=1 THEN A=USR(1536,CL+4,CAV-4)
170 IF A=1 THEN GOSUB 200:GOTO 120
180 GOSUB 200:? "Blad - ";A:GOTO 120
190 A=PEEK(195):GOTO 180
200 REM ---   close and silence   ---
210 CLOSE #1:SOUND 0,0,0,0:RETURN 
900 REM ---   hex to data conv    ---
910 FS=0:RESTORE DT:TRAP 950
920 FOR X=0 TO C:READ A$:POKE 53279,7
930 FOR I=1 TO 26 STEP 2
940 H=ASC(A$(I))-48:H=(H-39*(H>9))*16:
L=ASC(A$(I+1))-48:L=L-39*(L>9):POKE BS
+FS,H+L:FS=FS+1:NEXT I:NEXT X
950 RETURN 
960 REM ---         saver         ---
970 DATA 68688d5903688d5803688d5503
980 DATA 688d5403a90b8d5203a2102056
990 DATA e484d4a90085d560
2000 REM ---        header        ---
2010 DATA ffffe002e1026092c402c80200
2020 DATA 000000000090ff98

1 REM -------------------------------
2 REM :      HEARTLIGHT saver       :
3 REM : autor:  Miroslaw Liminowicz :
4 REM :  (c) 1991  Tajemnice Atari  :
5 REM -------------------------------
10 DIM A$(26):OPEN #2,4,0,"K:"
20 MOV=36815:CAV=28672:K=36859
30 ? CHR$(125):? "Podaj kody kolorow w
 gotowej grze:"
40 ? " 004,006,014,010,000";CHR$(28)
50 INPUT C1,C2,C3,C4,C5
60 POKE K,C1:POKE K+1,C2:POKE K+2,C3
70 POKE K+3,C4:POKE K+4,C5:POKE 559,0
80 DT=3000:C=0:BS=1780:GOSUB 900
90 DT=960:C=10:BS=1536:GOSUB 900
100 DT=2000:C=3:BS=MOV:GOSUB 900
110 ? CHR$(125):? ,"Formaty zapisu:"
120 POSITION 2,8:POKE 559,34
130 ? "1. Samodzielny kasetowy (boot)"
140 ? "2. Samodzielny dyskowy (boot)"
150 ? "3. Plikowy (DOS lub COS)"
160 POSITION 4,13:? "Co wolisz ";
170 TRAP 110:INPUT CHOICE
180 ON CHOICE GOSUB 200,300,400
190 GOTO 110
200 REM ---   tape boot writer    ---
210 GOSUB 700:GOSUB 750:GOSUB 550
220 ? "Ustaw magnetofon...":A$="C:"
230 GOSUB 500:A=USR(1536,PLEN+6,MOV-6)
240 IF A=1 THEN A=USR(1536,CLEN,CAV)
250 GOSUB 600:IF A=1 THEN RETURN 
260 GOSUB 550:? "Blad zapisu - ";A
270 GET #2,A:RETURN 
280 GOSUB 600:A=PEEK(195):GOTO 260
300 REM ---   disk boot writer    ---
310 GOSUB 700:GOSUB 750:GOSUB 550
320 ? "Zapodaj sformatowany dysk..."
330 GET #2,A:A=USR(1570,MOV-6)
340 GOTO 250
400 REM ---   CIO file writer     ---
410 GOSUB 700:GOSUB 800:GOSUB 550
420 ? "Podaj nazwe pliku ";:INPUT A$
430 GOSUB 500:A=USR(1536,12,1780)
440 IF A<>1 THEN 250
450 A=USR(1536,PLEN,MOV):GOTO 240
500 REM ---    CIO open file      ---
510 AUX=0:IF A$(1,1)="C" THEN AUX=128
520 TRAP 530:OPEN #1,8,AUX,A$:RETURN 
530 POP :GOTO 280
550 REM --- mesage line cur.pos.  ---
560 POSITION 2,17:? CHR$(156)
570 POSITION 2,18:? "nacisnij RETURN."
580 POSITION 2,17:RETURN 
600 REM ---   close and silence   ---
650 CLOSE #1:SOUND 0,0,0,0:RETURN 
700 REM ---   set some lengths    ---
710 CLEN=PEEK(CAV+2)*240+23:PLEN=2353
720 LGTH=PLEN+CLEN+6:SL=INT(LGTH/128)
730 IF SL*128<>LGTH THEN SL=SL+1
740 RETURN 
750 REM ---  create boot header   ---
760 POKE MOV-5,SL:POKE MOV-3,INT((MOV-
6)/256):POKE MOV-4,MOV-6-256*INT((MOV-
6)/256):RETURN 
800 REM ---  create file header   ---
810 HLE=MOV+LGTH-7:POKE 1791,INT(HLE/2
56):POKE 1790,HLE-256*INT(HLE/256):RET
URN 
900 REM ---   hex to data conv    ---
910 FS=0:RESTORE DT:TRAP 950
920 FOR X=0 TO C:READ A$:POKE 53279,7
930 FOR I=1 TO 26 STEP 2
940 H=ASC(A$(I))-48:H=(H-39*(H>9))*16:
L=ASC(A$(I+1))-48:L=L-39*(L>9):POKE BS
+FS,H+L:FS=FS+1:NEXT I:NEXT X
950 RETURN 
960 REM ---         saver         ---
970 DATA 68688d5903688d5803688d5503
980 DATA 688d5403a90b8d5203a2102056
990 DATA e484d4a90085d560686885cc68
1000 DATA 85cba0008c0b03c88c0a03b1cb
1010 DATA 8d7c068c0103a9508d0203a900
1020 DATA 8d0403a9048d0503a200a000b1
1030 DATA cb9d0004e6cbd002e6cca5cbc9
1040 DATA 00a5cce9999008a90085cba970
1050 DATA 85cce810e02053e410034c1b06
1060 DATA ee0a03ad0a03c90090caa0014c
1070 DATA 1b06
2000 REM ---        mover         ---
2010 DATA a90085828580a8a9998583a970
2020 DATA 8581a21fb1829180c005b006b9
2030 DATA fb8f99c402c8d0efe683e681ca
2040 DATA d0e84c6092
2050 DATA 8d7c068c0103a9508d0203a900
2060 DATA 8d0403a9048d0503a200a000b1
2070 DATA cb9d0004e6cbd002e6cca5cbc9
2080 DATA 00a5cce9999008a90085cba970
2090 DATA 85cce810e02053e410034c1b06
2100 DATA ee0a03ad0a03c90090caa0014c
2110 DATA 1b06
3000 REM ---        header        ---
3010 DATA ffffe002e102cf8fcf8f

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

Pixel 2001