ZGRYWUSDokładny opis możliwości przedstawiliśmy w marcowym numerze pisma. Teraz przypomnimy tylko najistotniejsze jego cechy. Zgrywus zapisuje gotowy program w postaci pliku (file), lub programu samodzielnie ładowalnego z magnetofonu (BOOT). Nagrywając dany program w postaci BOOT Zgrywus dodaje na początku tzw. "loader". Wydrukowany listing Zgrywusa należy wpisać do kornputera, a następnie nagrać go instrukcją LIST "C:", lub LIST"D:ZGRYWUS.LST". Służy on do zgrywania wszystkich drukowanych u nas programów w języku maszynowym, które przedstawiać będziemy jako same wiersze DATA o numerach od 1000 wzwyż. Tryb postępowania jest następujący: Po uruchomieniu Zgrywus spowoduje najpierw wyłączenie ekranu (przyśpiesza to działanie programu), a po chwili odmierzanej jednostajnym "pykaniem" wyświetli zapytanie o pożądany format zapisu. Odpowiadamy na ciskając odpowiedni klawisz i potwierdzamy RETURNem. Przy wyborze zapisu na plik pojawi się pytanie o jego nazwę. Odpowiedziami poprawnymi są D:XYZ.COM, D3:PROGRAM, C:, E: itp. Natomiast po wyborze drugiej możliwości program zapyta o nazwę, która ma pojawić się w czasie wczytywania programu z kasety. Nazwa ta może mieć maksymalnie 40 znaków. 1 REM ------------------------------- 2 REM : Zgrywus : 3 REM : autor: Miroslaw Liminowicz : 4 REM : (c) 1991 Tajemnice Atari : 5 REM ------------------------------- 10 DIM A$(39):DT=760:BS=1536:C=2 20 ? CHR$(125):POKE 559,0:GOSUB 700 30 DT=800:C=18:BS=39700:GOSUB 700 40 DT=1000:C=999:BS=30000:GOSUB 700 50 POKE 559,34:IF NOT FS THEN END 60 TRAP 60:? :? 70 ? "1. Format plikowy (file)" 80 ? "2. Samodzielny kasetowy (BOOT)" 90 ? "0. Wyjscie z programu" 100 INPUT W:ON W+1 GOTO 290,120,200 110 GOTO 60 120 ? :? "Na jaki plik ";: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,FS,BS) 160 CLOSE #1:SOUND 0,0,0,0 170 IF A=1 THEN 60 180 ? "Blad - ";A;CHR$(253):GOTO 60 190 A=PEEK(195):GOTO 160 200 ? :? "Podaj nazwe ":INPUT A$ 210 L=LEN(A$):NA=39914 220 FOR A=0 TO 39:POKE NA+A,32:NEXT A 230 L=LEN(A$):FOR A=1 TO L 240 POKE NA+A-1,ASC(A$(A,A)):NEXT A 250 TRAP 190:OPEN #1,8,128,"C:" 260 A=USR(1536,256,39700) 270 IF A<>1 THEN 160 280 GOTO 150 290 TRAP 50000:END 700 REM --- hex to data conv --- 710 FS=0:RESTORE DT:TRAP 750 720 FOR X=0 TO C:READ A$:POKE 53279,7 730 FOR I=1 TO 26 STEP 2 740 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 750 RETURN 760 REM --- saver --- 770 DATA 68688d5903688d5803688d5503 780 DATA 688d5403a90b8d5203a2102056 790 DATA e484d4a90085d560 800 REM --- file loader --- 810 DATA 00010007b507a27fbd00049d80 820 DATA 07ca10f7a027b9d607c9601006 830 DATA e91f1002696091588810eead1e 840 DATA 0348ad1f0348a9048d1e03a907 850 DATA 8d1f03a2038e5203e88e5a03a9 860 DATA d38d5403a9078d550320af0768 870 DATA 8d1f03688d1e03a980853e0a85 880 DATA 3d853f8d89028d8a02a9568de0 890 DATA 02a9f58de10220a207858020a2 900 DATA 0785812580c9fff0f020a20785 910 DATA 8220a207858320a207a0009180 920 DATA a580c582a581e583b0d5e680d0 930 DATA 02e6814c8807a9008d58038d59 940 DATA 03a9078d5203a2102056e43003 950 DATA a00160c088f0062056f54c71e4 960 DATA a90c8d5203a2102056e4a2ff9a 970 DATA 6ce002433a9b Mirosław Liminowicz
|