DATAGEN/CMD fr Disk-Jockeys    

Das Programm DATAGEN/CMD dient dazu, beliebige Speicherinhalte fr 
BASIC-Programme in DATA-Statements umzuwandeln. Auf diese Weise knnen z. B. 
Assembler-Programmierer ihre Maschinenroutinen einem BASIC-Programm mit der 
bekannten READ-POKE-Methode einverleiben. Ob eine Diskversion von DATAGEN 
existiert, wei ich nicht. Mir lag eine Level-2-Kopie vor, und das gab rger:
LMOFFSET bzw. VL setzen gewissen Programmen eine Aufforderung hin tenan, RESET 
und BREAK gleichzeitig zu drcken, um ins Level-2-BASIC zu gelangen. 
Um ein Maschinenprogramm mit dieser Aufforderung letztenendes doch noch unter 
Disk-BASIC fahren zu knnen, mte ich es zunchst dis assemblieren, relozieren 
und anschlieend wieder auf die Platte zurck schreiben. Da gibt es Amsanteres. 
Also schaute ich mir DATAGEN mit DDE (hnlich SUPERZAP) genauer an und merkte, 
da wegen der gengend hohen Ladeadresse die RESET-BREAK-Akrobatik vllig 
berflssig war. Dann flog sie eben raus.     
Das nchste rgernis war, da man immer artig alle geforderten Ein gaben machen 
mute, sonst wurden die erfragten Werte zu 0 gesetzt. Des halb wurden "Default"-
Werte (Normalwerte) gleich in das Programm einge zapt, und zwar 10 fr die erste
Zeilennummer und 10 fr den Zeilenabstand (Inkrement, s. LNBUF und INCBUF im 
Listing). Ums Disassemblieren usw. kam ich schlielich doch nicht herum, denn:
Nun sollte DATAGEN auch automatisch die nchste verfgbare Zeilen nummer bei 
bereits vorhandenem BASIC-Programm und gegebenem Inkrement (nach AUTO) ermitteln. 
Das erledigt der Programmteil vor NOBAS (Listing), wo zunchst geprft wird, ob 
ein Programm bereits im Speicher steht. In diesem Falle wird der Benutzer nur 
noch nach der Start-, der Endadresse und dem Inkrement gefragt, damit es mit den 
bereits vorhandenen Zeilen nummern keinen Kuddelmuddel gibt.     
Nachdem das Programm nun ohnehin hatte analysiert werden mssen, kam es auf eine 
weitere kleine nderung jetzt auch nicht mehr an: Bei der Hexeingabe sind nun 
auch Kleinbuchstaben zulssig. Mit AND DF wird dann kurzerhand das Bit 5 
wegmaskiert. Schlielich fgte ich noch nach jedem Datum ein zustzliches Blank 
ein, auf da die Sache zum Abtippen ber sichtlicher werde.     
Drei Schnheitsfehler hat das Programm in seiner neuen Form noch: 
1. Es darf zwar innerhalb eines Programms aufgerufen werden, erzeugt dann 
allerdings sehr phantasievolle Zeilennummern. 
2. Es kann sich nicht sel ber in DATA verwandeln, obgleich es sich dabei 
eigentlich nicht verndert. 
3. Mit CMD"S" kommt man nicht mehr nach DOS, sondern die Fehlermeldung 
"zuwenig Speicher" wird ausgegeben. Also mu man ber DEBUG oder mit CMD"BOOT" 
ins DOS zurckkehren. Daran ist wohl eine der gecallten ROM-Routinen schuld, die 
nur fr L2 passen. Vielleicht fllt jemandem von euch ein, wie man diese drei 
fr die Praxis belanglosen Fehler beseitigen kann. Mu aber nicht sein.     

Da DATAGEN in seiner ursprnglichen Form nur zwei Sektoren belegt (jetzt 
brigens auch), wobei die zu einer Einheit (Granule) fehlenden drei Sektoren fr 
alles Mgliche verfgbar gewesen wren, wre auch eine Erweiterung mit Zaps am 
Programmende mglich gewesen. Einfacher ist eine Disassembly mit DISASSEM oder 
DSMBLR, in die man die nderungen ein bringt. DATAGEN hat nmlich nur 
willkrliche Adressen und kann in jeder neuen Form wieder assembliert werden. 
Daher auch das neue ORG bei FE71 (Topmem fr 64 kB). 
Mit einem entsprechenden ORG kann das Programm fr jede Speichergre beliebig 
reloziert werden. Die Labels "M7xxx" stammen aus der alten Version fr 16 kB. 
Sie wurden von DSMBLR erzeugt.     Arnulf Sopp
