mc-test

DATA Generator

In manchen Fällen ist es vorteilhaft, ein Maschinenprogramm nicht getrennt, sondern zusammen mit dem Basic Programm zu laden, von dem es aufgerufen wird. Dann ist es am einfachsten, wenn dieses Maschinenprogramm als Folge von DATA Anweisungen vorliegt, die dann innerhalb des Basic Programms mit POKE Befehlen in den gewünschten Speicherbereich gebracht werden. Das Basic Hilfsprogramm im Bild gestattet es, auf einfache Weise ganze Serien solcher DATA Anweisungen aus einem im Speicher stehenden Maschinenprogramm zu generieren. Es ist unverändert auf allen Computern mit bildschirm   orientiertem Editor lauffähig (VC 20, C 64, CBM2/3/4/8000). Eine Besonderheit: Es errechnet nicht nur automatisch eine Prüfsumme aller DATA Zahlen, sondern generiert auch gleich das später erforderliche Programm zum Abspeichern der Maschinenroutine. Der Umgang mit dem Basic Hilfsprogramm ist denkbar einfach: Nach der Eingabe eines Programmnamens, der später als REM Zeile aufgenommen wird, muß man Anfangs  und Endadresse des Maschinenrogramms angeben, ebenso die erste Zeilennummer des zu generierenden Programms. Dann werden die DATA Anweisungen auf den Schirm geschrieben. Geht man nun mit dem Cursor zur ersten Zeile zurück (Home) und drückt so oft die Return Taste, bis man unter der letzten Zeile angekommen ist, so steht das erzeugte DATA Programm im Speicher. Man muß lediglich darauf achten, daß die erzeugten Zeilennummern höher als 90 sind, damit sie sich nicht mit denen des Generator Programms überschneiden.

10 INPUT"?PROGRAMMTITEL"; D$
15 INPUT"ADR VON (DEZ)";A:I=A
20 INPUT"ADR BIS (DEZ)";B
25 INPUT"ZEILEN NUMMER";C:N=C
30 PRINT "?"N" REM "D$"A"-"B
32 N=N+1:PRINT N;"DATA";:L=0
40 D=PEEK(I): D$=MID$(STR$(D),2)
45 PRINT D$;:S=S+D
50 L=L+LEN(D$)+1:I=I+1:IFI>BTHEN65
55 IF L<28 THEN PRINT",";:GOT040
60 PRINT:GOTO 35
75 PRINTN+1"S=0:FORI="A"TO"B" :READD"
80 PRINTN+2"POKE I,D:S=S+D:NEXT" 
85 PRINTN+3"IS<>"S$"THEN? "E$":STOP"
90 END

Listing des Generator Programms. Das inverse Herz ist das Steuerzeichen für "Bildschirm  löschen"

mc 6/1983 Seite 29 Autor Feichtinger
Folgeartikel mc 3/1984 Seite 68