Willkommen  zu  den  Utilities  der  Juli-Ausgabe  !
 Auf  die  Juliausgabe  haben  wir  für  Sie  diesmal 4 Superutilities  gepackt, die  es  auch  im  Sommermonat
 Juli  anzutesten  lohnt! Voila:
THE MAGIC WRITER Seite 03 - 06 DISK DATEI Seite 07 - 13
BASIC TEXTER Seite 14
THE MDG-PACKER/LINKER Seite 15 - 28
 Mit  dem  MAGIC  WRITER  können  Sie  in  Zukunft  auf  professionelle  Weise  mit  Ihren  Freunden  komunizieren.
" Mist, wo  war  noch  mal  TANK  ACTION  drauf?"- über
 Probleme  dieser  Art  werden  Sie  mit  der  DISK  DATEI
 nur  noch  lachen  . . .
 TippEx  ade; der  BASIC  TEXTER  hilft  Ihnen, Ihre  Mitteilungen  einfach, schnell  und  fehlerUNfreundlich  an- zufertigen  . . .
 THE  MDG-PACKER/ LINKER  packt  Ihre  Daten  in  besonders
" linker" und  platzsparender  Weise  . . .
 Soweit  die  Anwenderprogramme  der  Juli-Ausgabe. Wir
 wünschen  Ihnen  schönes  Wetter  und, falls  Sie  in  den
 Urlaub  fahren, viel  Erholung.
                                  Die Redaktion      
THE MAGIC WRITER
 Ein  wahrhaft " magischer  Schreiberling" liegt  Ihnen
 mit  diesem  Utility  vor, der  sich  durch  sehr  einfache
 Handhabung  und  Unkompliziertheit  auszeichnet.
 Kommen  wir  deshalb  auch ( unkompliziert  wie  wir  sind!) auch  sofort  zur  Bedienungsanleitung:
 a) DER  EDITIERMODUS 
 Formulieren  Sie, frei  von  der  Leber ( oder  auch  dem
 Herzen!) weg, die  Zeilen, die  Sie  Ihren  Lieben
 mitteilen  möchten  und  achten  Sie  auf  richtige  Kommasetzung! Um  wichtige  Textpassagen  herauszuarbeiten, besitzen  Sie  eine  Art  Textmarker, den  Sie  mit
 F5 oder  mit > SHIFT< aktivieren  können. Der  Text
 erscheint  dann  reversblinkend  auf  dem  Bildschirm.
 Bevor  Sie  nun  den  Editiermodus  dürfen  Sie  nicht
 vergessen, an  die  linke  obere  Bildschirmecke  auf
 der  letzten  Seite ( kompliziert, nicht? !) einen" Klammeraffen" zu  positionieren, da  der  Rechner
 sonst  nie  zum  Ende  kommt.
 Den  direkten  Editiermodus ( Schreibmodus) verlassen
 Sie  mit  F7 ; mit +/- blättern  Sie  vor/ zurück.
 b) SOUNDS 
 Damit  Ihre  geschriebenen  Zeilen  auch  die  richtige
 Wirkung  beim  Empfänger  erzielen ( bei  unseren  Briefen  an  LYNN, die  Schönheit  aus  dem  Nachbarhaus, wählen  wir  immer " Love  Me  Do" . . .), haben  Sie  natürlich  auch  bei  dem  MAGIC  WRITER  die  Möglichkeit, einen  passenden  Sound  auszuwählen. Die  Programmierer  des  Programms  haben  sich  natürlich
 nicht  lumpen  lassen  und  einige  Musikstücke  gleich
 mitgeliefert  . . .
 KOMMT  NOCH  WAS  . . . F1 DRÜCKEN!
 c) CHARSET 
 Beim  Zeichensatz  scheiden  sich  normalerweise  die
 Geister, also  geben  wir  Ihnen  die  Möglichkeit, Ihren  eigenen ( oder  auch  geklauten!) Zeichensatz
 zu  verwenden. Da  wir  Sie  nicht  zu  einem  gemeinen
 Dieb  abstempeln  wollen, befinden  sich  auf  dieser
 Diskette  gleich  mehrere  Zeichensätze.
 Achten  Sie  bitte  bei  der  Verwendung  von  eigenen
 Zeichensätzen  darauf, daß  dieser  im  Speicherbereich  von $2800 bis $2 a00 liegt.
 d) COLOUR 
 Dieses  Menü  gliedert  sich  so  problemlos, daß  auf
 eine  ellenlange  Anleitung  verzichtet  werden  kann.
 Nachdem  Sie  Ihren  Brief  fertiggeschrieben  und  abgespeichert  haben, empfiehlt  es  sich, diesen  zu  packen
( siehe  MDG-Packer/ Linker!) . Die  dazu  erforderlichen Werte  lauten:
              Hex $37; 0810                          
              Dez 55; SYS 2064                       
 Übrigens: Vergessen  Sie  auf  keinen  Fall, Ihren  fertig
 geschriebenen  Brief  ausreichend  zu  frankieren  . . .
                             Oliver Menne/Stefan Gnad
DISK DATEI
 Bei  Disk  Datei  handelt  es  sich, wie  es  der  Name  schon
 verrät, um  ein  Dateiprogramm. Hier  die  Funktionen:
 a) DISKETTE  EINLESEN 
 Die  sich  auf  der  Diskette  befindenden  Programmnamen  werden  in  den  Speicher  eingelesen.
- Alle  Files  einlesen:
 Der  Rechner  liest ( ohne  Kompromisse!) die  sich
 auf  der  Diskette  befindlichen  Files.
- Files  einzeln  einlesen:
 Der  Rechner  fragt  Sie, ob  Sie  ein  bestimmtes
 Programm  in  Ihre  Liste  aufnehmen  wollen, oder
 nicht ( wie  herzlos!) . Die  Auswahl  treffen  Sie mit  J/ N.
- Zurück  zum  Menü:
" Was  gibt  es  heute  als  Vorspeise?"
 b) DATEN  EDITIEREN 
- Daten  ändern:
 Sie  können  den  gewünschten  Datensatz  mit +/- aussuchen  und  mit >*< auswählen. Nun  erscheint
 ein  Pfeil  unter  eben  diesen  Datensatz, der  mit
> CRSRlinks< bewegt  werden  kann. Nachdem  Sie
 mit > RETURN< den  Datensatz  editiert  haben, gelangen  Sie  mit > M< wieder  zurück  ins  Editiermenü.
- Daten  erweitern:
 Sollten  Sie  einen  Datensatz  vergessen  haben, so
 ist  das  kein  Problem; mit  diesem  Menüpunkt  können  Sie  die  Liste  um  einen  Eintrag  erweitern.
- Einzeln  löschen:
 Der  zu  löschende  Datensatz  wird  wie  bei " Daten
 ändern" ausgewählt  und  mit >*< gelöscht. Mit  der
> M<- Taste  gelangen  Sie ( immer  noch) zurück  ins
 Menü.
- Block  löschen:
 Mit  diesem  Menüpunkt  sind  Sie  in  der  Lage, ganze
 Blöcke  zu  löschen. Es  müssen  Startund  Endpunkt
 eingegeben  werden.
- Zurück  zum  Menü:
" Was  gibt  es  heute  als  Hauptgericht?"
 c) DATEN  SORTIEREN 
- Nach  Namen:
 Der  Rechner  sortiert  die  Datensätze  nach  dem  gemeingültigen  und  aus  der  Grundschule  bekannten
 Alphabet.
- Nach  Blöcken:
 Der  Rechner  sortiert  die  Datensätze  nach  den, auf
 der  Diskette  benötigten  Blöcken.
- Nach  ID:
 Der  Rechner  sortiert  die  Datensätze  nach  der
 ID-Nummer  der  zum  Programm  gehörigen  Diskette.
- Zurück  ins  Menü 
" Sind  Sie  jetzt  schon  satt?"" Was, Sie  wollen  noch  was  zum  Essen? !""' Hungrig', ich  verstehe  immer ' Hungrig' !"" Bevor  ich  Ihnen  jetzt  noch  einen  Schweinebraten  bringe, drücken  Sie  bitte  F1 !"
 d) DATEN  AUFLISTEN 
- Ausgabe  auf  Drucker:
 Die  Datensätze  werden  in  drei  Spalten  pro
 Zeile  auf  dem  Drucker ( soweit  vorhanden!) ausgegeben. Die  dazugehörige  Titelzeile  kann
 sowohl  editiert  als  auch  abgespeichert  werden.
- Ausgabe  auf  Bildschirm:
 Die  Datensätze  werden  auf  dem  Monitor ( soweit  vorhanden!) ausgegeben. Mit +/- kann
 vorbzw. zurückgeblättert  werden; mit
> RETURN< gelangen  Sie  zurück  ins  Menü.
- Zurück  zum  Menü:
" So, der  zweite  Schweinebraten, Sie  Freßsack!"
 e) DATEN  ABSPEICHERN 
 Mit  diesem  Befehl  speichern  Sie  die  Datei  auf
 Diskette  ab.
 f) DATEN  LADEN 
- Liste  erweitern:
 Die  sich  bereits  im  Speicher  befindenden  Daten
 werden  um  eine  Datei  erweitert.
- Neue  Liste  laden:
 Die  sich  im  Speicher  befindenden  Daten  werden
 gelöscht, und  eine  neue  Datei  wird  geladen.
- Zurück  zum  Menü:
" Was  haben  Sie  denn  so  als  Nachspeise  anzubieten, Herr  Ober?"" Was, Nachspeise  auch  noch? ! BATSCH!"
 g) DIRECTORY 
- Der  Disketteninhalt ( und  damit  Ihr  Werk!) wird
 Ihnen  vor  Augen  geführt.
 So, Anleitung  fertig -" Herr  Ober, bitte  zwei  kühle  Bier  . . . !"
                            Oliver Menne/Stefan Gnad 
BASIC TEXTER
 Was  schrieb  Ludwig  der 16 . an  dem  Tag, als  das  Volk
 in  Paris  gerade  die  Bastille  erstürmt  hatte, noch
 in  sein  Tagebuch?" Rien"," nichts" . Damit  beschrieb
 das ( sich  zu  diesem  Zeitpunkt  noch  auf  dem  dazugehörenden  Hals  befindliche) gekrönte  Haupt  die  Ereignisse  des  vergangenen  Tages  aus  seiner  Sicht: Tote  Hose, die  Luft  raus, stinklangweilig!
 Wenn  wir  diese  Anleitung, ganz  in  französicher  Tradition, mit " Rien" beginnen  und  gleichzeitig  abschließen, so  heißt  das  natürlich  nicht, daß  BASIC
 TEXTER  nichts  bietet ( dann  wäre  es  ja  auch  nicht  auf
 der  Magic  Disk  . . . !), sondern  daß  das  Programm  mehr
 als  denkbar  einfach  zu  bedienen  ist. In  diesem  Sinne:
" RIEN"
                             Oliver Menne/Stefan Gnad
THE MDG PACKER/LINKER
 Der " MDG  Packer/ Linker" ist  ein  unverzichtbares  Werkzeug  für  das  Packen, Linken  und  Verlegen  von  Programmen. Der  Packer  arbeitet  mit  einem  einfachen
" Bytepress"- Algorithmus, d. h. mehr  als  drei  aufeinanderfolgende  gleiche  Bytes  werden  zu  einem
 drei-Byte  Code  zusammengefaßt. Der  Linker  ermöglicht
 das  Zusammenfassen  von  mehreren  Teilprogrammen, zu
 einer  einzigen  Datei  auf  Diskette. Beim  Starten
 dieser  Datei  werden  dann  die  einzelnen  Programmteile
 im  Speicher  genau  so  verschoben, als  hätte  man  die
 Einzeldateien  alle  nacheinander  von  Diskette  eingeladen. Die  Fähigkeit  des  Verlegens  von  Programmen
 äußert  sich  darin, daß  das  gepackte  und  gelinkte
 Programm  in  einen  beliebig  wählbaren  Speicherbereich  gelegt  werden  kann. Darüberhinaus  können
 Programme  mit  einer  einfachen  Schutzkodierung  versehen  werden. Auch " Levelcrunching", das  Packen  von
 Programmteilen, die  nachgeladen  werden, ist
 realisierbar. Der " MDG  Packer/ Linker" packt  alle
 Programme, die  im  gepackten  Zustand ( !) nicht  mehr als  ca.230 Blöcke  auf  Diskette  belegen. Nahezu
 alle  den  Packund  Linkvorgang  betreffende  Parameter
 können  eingestellt  werden, damit  das  Programm  flexibel  einsetzbar  ist. Dabei  wurde  Wert  darauf  gelegt, daß  stets  Defaultwerte  vorgegeben  sind, so  wird  der
 Benutzer  nicht  mit  einem  Parameterwust  alleingelassen. Die  bislang  existierenden  Packer  benutzen
 beim  Entpacken  zumeist  den  gesamten  Speicher  des
 C64, da  sie  das  zu  entpackende  Programm  zunächst  an
 das  Ende  des  Speichers  verschieben. Ihre  Entpackroutine  ist  oft  leider  nicht  Geschwindigkeitsoptimiert, wodurch  die  Programme  dann  langsamer  entpackt  werden, als  ein  schneller  Floppyspeeder  sie
 einladen  könnte. Der " MDG  Packer/ Linker" hingegen
 entpackt  selbst  das  längste  Programm  in  maximal  zwei
 bis  drei  Sekunden. Der  Speicher  wird  dabei  nicht
 weiter  verwüstet, als  unbedingt  notwendig.
 Anwendungsbereiche:
 Dies  klingt  für  jemanden  der  bislang  noch  nicht
 mit  einem  Packer  oder  Linker  gearbeitet  hat, alles  sehr  abstrakt. Betrachten  wir  daher  zunächst einige  mögliche  Anwendungen  für  den
" MDG  PACKER/ Linker" :
 Basicprogramme  enthalten  manchmal  Maschinenprogramme
 oder  Grafikdaten  in  Form  von  Datazeilen. Da  das  Lesen
 und  POKEn  der  Daten  qualvoll  lange  dauert, bietet  es
 sich  an, die  Speicherbereiche, die  in  den  Datazeilen
 abgelegt  sind, mit  einem  Monitor  abzuspeichern, und
 dann  mit  dem " MDG  Packer/ Linker" mit  dem  Basicprogramm  zu  verbinden.
 Der  Maschinenprogrammierer  hat  ein  Programm  oft  in
 Form  von  mehreren  Objektcodes  oder  Datenfiles  auf
 Diskette  abgelegt, die  beim  Starten  des  Programms
 von  einem  Ladeprogramm  eingelesen  werden. Während  der
 Programmentwicklung  ist  dies  sehr  hilfreich. Einmal
 fertiggestellt, ist  das  Programm  jedoch  einfacher  zu
 handhaben, wenn  es  nur  noch  als  eine  einzige  Datei
 auf  Diskette  gespeichert  ist. Folglich  bietet  es  sich
 an, die  Einzelfiles " aneinanderzuhängen", und  nach
 dem  Einladen - Einzelfile  für  Einzeilfile - an  ihren
 Zielspeicherbereich  zu  kopieren. Genau  diese  Aufgabe
 erledigt  der " MDG  Packer/ Linker" .
 Bei  Programmen, die  mit  SYS ( ADRESSE) gestartet  werden, wie  z. B. Monitore, vergißt  man  oft  die  Start- adresse. Mit  dem " MDG  Packer/ Linker" können  diese
 in  mit  RUN  startbare  Programme  verwandelt  werden.
 Nach  RUN  wird  das  Programm  dann  an  seine  ursprüngliche  Adresse  verschoben, und  automatisch  der  Befehl
 SYS ( ADRESSE) ausgeführt.
 Eine  Reihe  von  Programmen, die  sich  nacheinander  aufrufen, z. B. Teile  eines  Demos, die  aber  alle  im
 gleichen  Speicherbereich, z. B. ab $0801, laufen, sollen  in  einem  Programm  zusammengefaßt  werden. Dies
 ist  normalerweise  eine  aufwendige  Arbeit, da  viele
 Verschieberoutinen  programmiert  werden  müssen, wobei
 Fehler  unterlaufen  können. Mit  dem " MDG  Packer/ Linker" würde  man  zunächst  die  einzelnen  Teile  an
 freie  Speicherbereiche  verlegen. Beim  Aufruf  wird  der
 jeweilige  Demoteil  dann  nach $0801 kopiert  und  gestartet. Die  einzelnen  Files, die  nun  alle  an  verschiedenen  Adressen  liegen, müßten  Sie  nur  noch  zusammenlinken.
 Schließlich  können  auch  noch  Levels  gepackt  werden, damit  weniger  Diskettenspeicher  belegt  wird. Programmteile, die  nachgeladen  werden, werden  dabei
 zunächst  gepackt  eingeladen, und  dann  mit  einem  Befehl, der  in  das  Hauptprogramm  eingefügt  werden  muß,
 entpackt.
 Die  Bedienung  des  Packers/ Linkers:
 Das  Programm  wird  mit  LOAD" MDGPACKER/ LINKER",8 geladen, und  mit  RUN  gestartet. Die  Titelmeldung  des
 Programms  erscheint, gefolgt  von  der  Aufforderung, einen  Dateinamen  einzugeben:
 . . . ENTER  FILENAME:($ FOR  CATALOG  RETURN  TO  SAVE) Geben  Sie  nun  den  Namen  ein, unter  dem  das  Programm, das  bearbeitet  werden  soll, auf  Diskette  gespeichert
 ist. Die  Cursortasten  sowie  die  Tasten  INST, DEL, CLR  und  HOME  dürfen  dabei  benutzt  werden. Bei  Eingabe
 eines  Dollar-Zeichens  wird  das  Inhaltsverzeichnis  der
 Diskette  gelistet. Anschließend  gelangen  Sie  zur  Namenseingabe  zurück. Wenn  mehrere  Programme  zusammengefaßt  werden  sollen, muß  der  Name  des  ersten  Files
 eingegeben  werden. Die  anderen  Programmteile  werden
 später  abgefragt. Die  Reihenfolge  richtet  sich  nach
 den  Startadressen  der  Einzelprogramme ( das  File  mit
 der  niedrigsten  Startadresse  muß  zuerst  eingegeben
 werden) . Nach  der  Eingabe  des  Filenamens  gibt  der
 Packer  folgenden  Text  aus: WHILE  REPACKING $01 IS:$30 Hier  können  Sie  den  Inhalt  von  Speicherstelle 1
 während  des  Entpackens  des  Files  bestimmen. Der  hexadezimale  Wert $30 ist  als  Defaultwert  vorgegeben.
 Er  kann  in  der  Regel  übernommen  werden. Drücken  Sie
 hierzu  einfach  RETURN. Wenn  die  Entpackten  Daten  in
 den  I/ O-Bereich  ab $ D000 geschrieben  werden  sollen, muß  die  Vorgabe $30 durch  den  Wert $35 ersetzt  werden. Dies  ist  z. B. nötig, wenn  Sie  den  Inhalt  des
 Farbspeichers  direkt  einladen  wollen.
 Als  nächstes  erscheint  die  Frage:
 REPACK  CODE  TO  ADDRESS:$ XXXX  Anstelle  von $ XXXX  wird
 stets  die  Startadresse  des  jeweiligen  Files  auf  Diskette  ausgegeben. Die  hier  einzugebende  Adresse  bestimmt, ab  welcher  Speicherstelle  der  Entpacker  den
 Code  ablegen  wird. Durch  überschreiben  können  Sie
 eine  von  der  ursprünglichen  Adresse  abweichende
 Speicherstelle  wählen. Wenn  der  eingegebene  Wert
 nicht  angenommen  wird, wurde  zuvor  schon  ein  File  mit
 einer  höheren  Endadresse, als  die  aktuelle  Startadresse  eingelesen. Dies  kann  Probleme  beim  Entpacken
 verursachen  und  ist  nur  im  Bereich  oberhalb  von $ D000 gestattet, damit  sowohl  in  den  I/ O  Bereich, als  auch
 in  den  darunterliegenden  Rambereich  entpackt  werden
 kann. Wenn  Ihre  Adresse  nicht  angenommen  wird, start- en  Sie  den " MDG  Packer/ Linker" neu. Geben  Sie  die
 Files  nun  in  der  richtigen  Reihenfolge  ein. Der " MDG
 PACKER/ LINKER" gibt  nun  die  Endadresse  des  Codes  im
 Speicher  aus, und  beginnt  mit  der  Arbeit. Nach  kurzer
 Zeit  erscheint:
 FILE  LENGTH ( BYTES) :$ XXXX  PACKERCODE ( BYTES) :$ XXXX
 und  eventuell: RETRY  USING  BEST  CRUNCHBYTE ($ XX) ?
 Die  Hexzahl  nach " FILE  LENGTH" ist  die  ursprüngliche
 Länge  der  Datei." PACKERCODE" ist  die  neue  Länge  des
 aktuellen  Codes. Diese  entspricht  noch  nicht  der
 neuen  Filelänge, da  das  Programm  noch  um  ca.200 Bytes ( dezimal) für  die  Entpackroutine  wächst.
 Die  Frage " RETRY  USING  BEST  CRUNCHBYTE?" erscheint, wenn  der " MDG  PACKER/ LINKER" nachträglich  bemerkt, daß  ein  anderes  Kennbyte  zur  Markierung  von  Bytefolgen  günstiger  gewesen  wäre, als  der  vorgegebene
 Erfahrungswert $ CB. Wenn  Sie  hier " Y" eingeben, wird
 das  File  erneut  gepackt, wobei  dann  meist  noch  ein
 paar  Bytes  eingespart  werden  können. Nun  wird  wieder
 die  Ihnen  schon  bekannte  Frage  nach  dem  Filenamen
 ausgegeben. Es  können  noch  beliebig  viele  weitere
 Files  hinzugelinkt  werden. Nach  der  Eingabe  des
 letzten  Files  drücken  Sie  bei  der  Namenseingabe  ein- fach  nur  RETURN. Damit  wird  dem  Linker  mitgeteilt, daß  die  eingelesenen  Daten  nun  abgespeichert  werden
 sollen. Bevor  das  Zielfile  geschrieben  werden  kann
 müssen  Sie  noch  einige  Fragen  beantworten:
DESTINATION FILE'S ADRESS: $0801
 Hier  bestimmen  Sie  die  Startadresse  des  gepackten
 Programms. Mit  dieser  Eingabe  können  Sie  das  Programm  also  an  eine  beliebige  Adresse  verlegen.
 Als  Defaultwert  ist $0801, der  Start  des  Basicspeichers  vorgegeben. Falls  das  Entpacken  des
 Programms  später  mit  RUN  gestartet  werden  soll, drücken  Sie  RETURN. Falls  Levels  oder  generell
 Programmteile, die  nachgeladen  werden, gepackt
 werden  sollen, oder  das  gepackte  Programm, aus
 welchen  Gründen  auch  immer, an  einer  abweichenden
 Adresse  stehen  sollen, so  überschreiben  Sie  den
 alten  Wert. In  diesem  Fall  läßt  sich  das  Entpacken
 nicht  mehr  mit  RUN  starten. Der  Befehl  zum  Starten
 des  Entpackungsvorganges  lautet  dann  SYS ( ADRESSE) bzw. JSR  oder  JMP  STARTADRESSE, wenn  der  Aufruf
 in  einem  Maschinenprogramm  stattfindet.
 Das  Programm  kann  aber  auch  dann  mit  JSR/ JMP( STARTADRESSE) entpackt  werden, wenn  die  START-ADRESSE $0801 ist. In  diesem  Fall  darf  das  Programm  aber  nicht  von  Basic  aus  mit  LOAD  geladen  werden, das  das  anschließende  Neusetzen  der  Basic-Linkzeiger  den  Sprungbefehl  am  Anfang  des  Programms
 löschen  würde.
 Die  nächste  einzustellende  Adresse  betrifft  den
 Speicherbereich, der  für  die  Entpackroutine  gewählt
 werden  soll. Diese  Rountine  steht  zunächst  am  Anfang
 des  gepackten  Programms. Sie  kopiert  sich  dann  an  die
 hier  gewählte  Adresse: REPACKERS  MEMORY  ADRESS:$0100 Als  Defaultwert  ist $0100 vorgegeben. Sie  können  eine
 andere  Adresse  einstellen, falls  dieser  Speicherbereich  schon  genutzt  wird. Der  Entpacker  benutzt
 übrigens  die  Zeropage-Speicherstellen $2 d/$2 e  und
$ ae/$ af.$ ae/$ af  zeigt  nach  dem  Entpacken  auf  die
 Speicherstelle, die  auf  das  letzte  entpackte  Byte
 folgt.
 Nun  gibt  der  PACKER  die  höchste, während  des  Entpackens  benutzte  Speicherstelle  aus:
WHILE REPACKING MEMORY WILL BE USED UP TO $XXXX
 Anders  als  bei  vielen  anderen  Packern  wird  der  Code vor  dem  Entpacken  nicht  bis  an  das  Ende  des
 Sperichers  verschoben, sondern  nur  so  weit  nach  oben, wie  unbedingt  notwendig. Falls  keine  Verschiebung
 nötig  ist, weil  sich  Qellund  Zielbereich  beim  Entpacken  nicht  überlappen, wird  diese  Meldung  nicht
 ausgegeben. Die  nächsten  beiden  Fragen  betreffen  die
 Vorgehensweise  nach  dem  Entpacken:
JUMP-IN ADRESS: (RTS TO RETURN RUN TO START BASIC) ($)XXXX AFTER REPACKING $01 IS: $YY
 Bei  XXXX  geben  Sie  entweder  eine  Adresse  ein, zu  der
 nach  dem  Entpacken  gesprungen  werden  soll, oder  das
6502- Mnemnonic " RTS", um  die  Instruktion  RTS  auszuführen, oder " RUN", um  ein  Basicprogramm  zu  starten.
 Als  Defaultwert  ist  hier  entweder " RUN", oder  eine
 Adresse  vorgegeben, abhängig  von  den  zuvor  eingeladenen  Programmfiles.
 Falls  hier " RUN" gewählt  wird, springt  der  Entpacker
 vor  dem  Starten  des  Programms  noch  die  Betriebssystemsroutine $ a533 an, die  das  Neusetzen  der
 Basic-Links  bewirkt. Dies  wird  normalerweise  beim
 LOAD-Befehl  automatisch  gemacht, blieb  aber  beim  La- den  des  gepackten  Files  ohne  Einfluß  auf  den  gepackten  Basiccode.
$ YY  bestimmt  den  Zustand  von  Speicherstelle 1, bevor
 obige  Instuktion  ausgeführt  wird. Der  vorgegebene
 Wert  ist  von  der  eingegebenen  Einsprungadresse  abhängig  und  kann  in  der  Regel  übernommen  werden.
 Das  I-Flag  des  Prozessors  wird  übrigens  während  des
 Entpackens  gestetzt. Nachher  wird  es  gelöscht, wenn
$ YY  so  gewählt  wird, daß  Kernal-Rom  und  I/ O-Chips
 eingeblendet  sind.
 Die  Adresse  die  nun  eingegeben  werden  muß, ist  nur
 für  Basicprogramme  von  Bedeutung:
POINTER $2d/$2e IS: $XXXX
 Wenn  sich  ein  Basicprogramm  im  Speicher  befindet, muß
 der  Zeiger $2 d/$2 e  auf  den  Beginn  des  Variablenspeichers  zeigen. Als  Defaultwert  wird  hier  das  Ende
 eines  eingelinkten  Files  mit  der  Startadresse $0801 vorgegeben, falls  ein  solches  File  existiert.
 Der  vorgebene  Wert  muß  in  der  Regel  nur  verändert werden, wenn  ein  Basic-Hauptprgramm  den  PACKER  als
 Levelcruncher  benutzt. In  diesem  Fall  muß  die  Endadresse  des  Basicprogramms+1 eingeben  werden.
 Die  vorletzte  Einstellung  betrifft  eine  einfache  Kodierung  des  Zielprogramms, die  es  z. B. unmöglich
 macht, mit  einem  Diskmonitor  Texte  innerhalb  des  Programms  zu  finden  und  zu  verändern.
 SIMPLE  CODELOCK  ?
 Wenn  eine  solche  Kodierung  gewünscht  wird, muß  hier
" Y" für " YES" eingegeben  werden.
 Nun  fehlt  nur  noch  eines  der  neuer  Filename:
DESTINATION FILENAME: ($ FOR CATALOG)
 Die  Eingabe  eines  Dollar-Zeichens  listet  wieder  das
 Directory. Wenn  Sie  nun  einen  Dateinamen  eingeben, wird  das  gepackte  und  gelinkte  Programm  unter  diesem
 Namen  gespeichert.
 Wird  die  STOP-TASTE  gedrückt, während  das  Programm auf  eine  Eingabe  wartet, gelangt  man  wieder  in  die
 Dateinamen-Eingabezeile. Alle  schon  komplett  eingelinkten  Files  bleiben  dabei  erhalten. STOP-RESTORE
 beendet  das  Programm. ABER  VORSICHT: STOP-RESTORE
 sollte  nicht  gedrückt  werden, wenn  Diskzugriffe  ausgeführt  werden, sonst  könnte  der  Rechner  abstürzen.
 Bei  einem  Neustart  mit  RUN  sind  alle  zuvor  eingelesenen  Daten  wieder  gerlöscht.
 Falls  irgendwelche  Probleme  auftreten, hält  der
 PACKER  folgende  Fehlermeldungen  für  Sie  bereit:
- NO FILES TO LINK: Diese  Meldung  wird  ausgegeben,
                    wenn  noch  keine  Files  geladen
                    worden  sind,  und  abgespeichert
                    werden soll.                     
- DISK ERROR: Diskettenfehler - CAN' T REPACK: Der PACKER verarbeitet keine Programme die bis ganz an das Ende des Speichers entpackt werden sollen, falls sich Quellund Zielbereich
                überlagern.   Zwischen   Speicherende
                und Fileende müssen dann noch  einige
                Bytes freibleiben.                   
- OUT  OF  MEMORY: Ein  File  würde  beim  Entpacken  über
 das  Speicherende  hinausgeschrieben
 werden, oder  der  gesamte  gepackte
 CODE  ist  länger  als  ca.230 Blocks.
- EMPTY  FILE: Es  soll  ein  Fiel  eingelinkt  werden, das
 keine  Daten  enthält.
 Fröhliches  einund  wieder  auspacken  wünschen 
                            Oliver Menne/Stefan Gnad