ZGRYWUS+Zdawało się już, że pora odstawić Zgrywusa do lamusa. Ale życie płata nieraz figle... Otrzymaliśmy listy od rozżalonych czytelników, którym nie chciał działać program NameCopy wydrukowany w TA 2/91. Program ten inicjalizuje się w bardzo ciekawy sposób, co okazało się dla Zgrywusa barierą nie do pokonania. Dziś zatem nowa wersja Zgrywusa, która (miejmy nadzieje) potrafi już zgrywać wszystkie programy. Jego obsługa w zasadzie się nie zmieniła, działa tylko nieco szybciej. Przepisany starannie Zgrywus+ należy nagrać na kasecie rozkazem LIST "C:" lub na dyskietce za pomocą LIST "D:ZGRYWUSP.LST". Można (należy) go następnie dołączać do programów z DATAmi rozkazem ENTER "C:" z kasety lub ENTER "D:ZGRYWUSP.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 międzyblokowe 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 1/91), 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. Zgrywus+ nie zapisuje nazwy programu w formacie "Boot", lecz za to dołącza do oryginalnego programu tylko jeden dodatkowy rekord, a nie dwa, jak jego poprzednik. Pomyślnych zgrywów! 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*LVd":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 (jbw)
|