← Computer Kontakt 02 / 1986

Copy 5 fĂŒr Ed./Ass. Modul

TI99/4a

Dieses Programm fertigt eine 1:1 Kopie eines Programm-Files von Kassette auf Diskette an. Dieses Programmfile kann ein Basic-Programm oder ein Textadventure fĂŒr das Adventure-Modul sein (was wohl die interessantere Anwendung sein wird).

Ein besonderes Problem stellt dabei die LĂ€nge des Kassettenfiles dar, da dieses nicht ohne weiteres gelesen werden kann. Daher wird vor dem Einiesen von Kassette eine BlocklĂ€nge .(Hex) eingegeben (immer 4 Bytes). Hat man sich vertippt, so gibt man einfach die vier richtigen Bytes ein. Es werden immer nur die letzten 4 TastendrĂŒcke berĂŒcksichtigt, auch wenn nach 8 Bytes alles auf die letzte Stelle geschrieben wird.

Ist die BlocklĂ€nge zu kurz, so bricht die Kassetten-DSR sofort nach dem ersten Ton ab (ERROR DETECTED .IN DATA). Danach erscheint die Meldung zur Eingabe des File-namens. War. die BlocklĂ€nge zu kurz, wird nun einfach ENTER bedrĂŒckt und es kann eine andere 'BlocklĂ€nge eingegeben werden. War die BlocklĂ€nge OK, so wird nun der GerĂ€teund Dateiname (z. B. DSK1.ADVENTURE) eingegeben. Eingabefehler können mit ackspace (FCTN 'S') korrigi ert werden; weitere Editiermöglichkeiten sind nicht vorgesehen.

Nach Abschluß der Eingabe mit ENTER wird das File auf Diskette geschrieben. Dieses File ist ein Programm-File mit genau der LĂ€nge, wie sie .durch die BlocklĂ€nge spezifiziert wurde. Anschließend wird wieder die BlocklĂ€nge abgefragt. Wer nun kein neues File umkopieren möchte, gibt hier nichts oder Null ein, woraufhin zum Titelbild verzweigt wird.

Das Programm besitzt keine Fehlerbehandlung! Wird bei zu geringer BlocklĂ€nge trotz Fehlermeldung der Kassettenroutine ein Filename eingegeben, wird ein Programmfile mit ungĂŒltigen Daten erzeugt. Dem Benutzer dieses Programms wird also eine Beachtung der Kassettenkommandos ans Herz gelegt.

Auch eine schreibgeschĂŒtzte oder fast volle Diskette wird nicht erkannt. Das ist aber nur konsequent, denn das Denken sollte man beim Arbeiten mit dem Computer nicht abschalten.
Die BlocklĂ€nge kann auch grĂ¶ĂŸer als notwendig gewĂ€hlt werden, fĂŒr das Adventure-Modul ist das ohne Bedeutung. Allerdings wird dann die Diskette zu schnell voll. Pro 256 Byte (> 100) wird ein Sektor der Diskette belegt + 1 Directory-Sektor fĂŒr das gesamte File. Hieraus kann der notwendige freie Platz auf der Diskette ermittelt werden.

Die maximale BlocklĂ€nge betrĂ€gt >30F0. Diese Grenze ist durch die Verwaltung des VDP-RAMs bedingt. Reicht der Dateibereich bis >3FFF, so hat sich bei mir immer der Rechner "aufgehĂ€ngt". Sollten irgendwann einmal neue Adventure mit grĂ¶ĂŸeren BlocklĂ€ngen auftauchen, muß der Anfang des Puffers nach unten verlegt werden. Ein Vorverlegen bis auf >C00 fĂŒr den PAB und >C20 fĂŒr den Puffer wĂ€re vertretbar, da die Charakter-Definitionen von 0 bis 717 nur bis >BFF reichen. Die maximale BlocklĂ€nge wĂ€re dann >33D0. Hierzu mĂŒssen nur die Equates am Programmanfang geĂ€ndert werden.

Folgende BlocklÀngen wurden bisher von mir ermittelt:
Pirate Adventure >2890 Byte
Mission Impossible >2900 Byte
Strange Odyssey >2800 Byte
Pyramid of Doom >2800 Byte
Savage Island 1 >2800 Byte
Savage Island 2 >30F0 Byte
Ghost Town >2800 Byte
The Golden Voyage >2900 Byte
Mystery Fun House >2A00 Byte