Tajemnice ATARI

ZGRYWUS+


    Kolejny już raz drukujemy "Zgrywusa+". Każdy czytelnik TA powinien posiadać ten program w swej kolekcji, wiele listingów drukowanych w TA składa się bowiem wyłącznie z wierszy REM i DATA. Są to programy maszynowe, które przed użyciem trzeba przekształcić do postaci pliku binarnego (kasetowego lub dyskowego).

    Przepisany starannie "Zgrywus+" należy nagrać na kasecie rozkazem LIST "C:" lub na dyskietce za pomocą LIST "D:ZGRYWUS.LST". Można (należy) go następnie dołączać do programów z DATAmi rozkazem ENTER "C:" z kasety lub ENTER "D:ZGRYWUS.LST" z dyskietki. Po uruchomieniu programu rozkazem RUN należy odczekać kilka sekund, aż "Zgrywus+" się rozgrzeje, a następnie wybrać z przedstawionego menu żądany format pliku lub zakończenie działania.

    "Zgrywus+" podczas nagrywania pliku na kasetę umieszcza wydłużone przerwy miedzyblokowe w miejscach, gdzie zapisywany program będzie się inicjalizował. Dla wielu programów jest to warunek przeżycia. Program zapisany jako plik kasetowy nadaje się do uruchomienia pod kontrolą systemu COS (TA 3/92), natomiast w wersji "Boot" uruchamia się sam, przez włączenie komputera z naciśniętym klawiszem START (oraz przeważnie OPTION). Program zapisany na dysku można załadować spod (prawie) każdego DOS-u podobnie jak inne programy maszynowe. W formacie "Boot" Zgrywus+ dołącza do oryginalnego pliku jeden dodatkowy rekord; zawarty w nim program steruje dalszym wczytywaniem pliku.

    Otrzymujemy sporadycznie listy, których autorzy uskarżają się na nieprawidłowe działanie Zgrywusa+. Ponieważ większość czytelników nie ma z nim żadnych problemów, więc sądzę, że przyczyna leży w nietypowych warunkach pracy. Jeśli np. przetwarzany listing jest długi, a używany DOS pozostawia niewiele wolnej pamięci dla BASIC-a, to może jej po prostu zabraknąć. Inną przyczyną może być obecność krwiożerczego systemu "turbo". Testujemy drukowane programy w obecności DOS-u 2.5 z CP i wszystkie działają bez kłopotów. Dlatego w listach z prośbą o pomoc należy opisać dokładnie kolejność wykonywanych czynności i rodzaj używanego systemu.

2 REM *-----------------------------*
4 REM : Zgrywus+ by J.B.Wi$niewski  :
6 REM :  (c) 1991 Tajemnice Atari   :
8 REM *-----------------------------*
10 ? CHR$(125);"Zgrywus+":? 
12 DIM M$(8192),V$(7),F$(120),L$(129)
14 REA=1536:SAV=1664:IOCB=832+16
16 CMD=IOCB+2:BUF=IOCB+4:SIZ=IOCB+8
18 V$="hhh    ":I=REA:TRAP 22
20 READ X:POKE I,X:I=I+1:GOTO 20
22 I=USR(REA,ADR(L$),280):L$(129)=""
24 I=USR(REA,SAV,390)
26 CNT=USR(REA,ADR(M$),1000)
28 M$(CNT+1)=""
30 ? :? "1. File (format plikowy)"
32 ? "2. Boot (samodzielny kasetowy)"
34 ? "0. Quit (wyjscie z programu)"
36 OPEN #1,4,0,"K:":GET #1,X:CLOSE #1
38 IF X<48 THEN 30
40 ON X-47 GOSUB 70,42,52:GOTO 30
42 GOSUB 56:IF C THEN 46
44 A=ADR(M$):L=CNT:GOSUB 62:GOTO 50
46 POKE SIZ,0:POKE SIZ+1,0
48 I=USR(SAV,ADR(M$),ADR(M$)+CNT)
50 CLOSE #1:SOUND 0,0,0,0:RETURN 
52 F$="C:":GOSUB 58
54 A=ADR(L$):L=128:GOSUB 62:GOTO 46
56 ? "Nazwa pliku ";:INPUT F$
58 C=(F$(1,1)="C")*255
60 OPEN #1,8,C,F$:POKE CMD,11:RETURN 
62 I=INT(A/256):J=INT(L/256)
64 POKE BUF,A-256*I:POKE BUF+1,I
66 POKE SIZ,L-256*J:POKE SIZ+1,J
68 I=USR(ADR(V$),16):RETURN 
70 END 
100 REM --- READER -----------------
110 DATA 162,4,104,149,224,202,16,250
120 DATA 232,134,212,134,213,165,136
130 DATA 133,230,165,137,133,231,76
140 DATA 35,6,56,165,230,101,232,133
150 DATA 230,144,2,230,231,160,2,177
160 DATA 230,133,232,198,232,160,0
170 DATA 177,230,197,224,200,177,230
180 DATA 48,54,229,225,144,222,160,4
190 DATA 177,230,201,1,208,36,160,5
200 DATA 196,232,176,208,32,109,6,10
210 DATA 10,10,10,133,228,32,109,6,5
220 DATA 228,129,226,230,226,208,2
230 DATA 230,227,230,212,208,226,230
240 DATA 213,208,222,165,212,5,213
250 DATA 240,172,96,177,230,200,41
260 DATA 223,201,65,144,2,233,7,41,15
270 DATA 96,END
280 REM --- LOADER -----------------
290 DATA 0001000750E4A2018609BD040795
300 DATA 0C9DE0028E4402863DCA10F08EE7
310 DATA 02206E073044852C206E07852D25
320 DATA 2CC9FFF0EE206E07852E206E0785
330 DATA 2FA97F8DE202A9078DE302A52EC5
340 DATA 2CA52FE52D9010206E07302D8891
350 DATA 2CE62CD0EAE62DD0E62063071890
360 DATA BA6CE202A93C8D02D36CE002A43D
370 DATA CC8A0290034C7AE4B90004E63DA0
380 DATA 0160
390 REM --- SAVER ------------------
400 DATA A2046895E0CA10FA20CF06306A85
410 DATA F885E420CF0685F985E525F8C9FF
420 DATA F0EA20CF0685FA20CF0685FB20CF
430 DATA 06304AE6E4D002E6E5A5FAC5E4A5
440 DATA FBE5E5B0EBA5FAC9E3D0C5A5FBC9
450 DATA 02D0BFA9BF853ED0B9A000A5E2C5
460 DATA E0A5E3E5E1B013B1E2E6E2D002E6
470 DATA E3A43D990004C83005843DC88860
480 DATA A210482056E46838263EC860




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

Pixel 2002