Das Interface zum SHARP-PC1403H
===============================

(c) 1996 by Alex Raimond <araimondi@gmx.net>


Bemerkungen zu den Dateien im Verzeichnis
-----------------------------------------

- SHARP.GIF: Der Schaltplan.

   - Alle Widerstnde in SMD
   - IC1 und IC2 sind CMOS-Inverter 4069 (s. S. 887 im Conrad-Katalog 99. Best.Nr. 14 34 80-66)
   - L1 ist eine Steckleiste ( s. S. 1013. Best.Nr. 74 40 18-66)
   - S1 ist ein SMD-Schalter und zum Umschalten der Spannungsversorgung gedacht. (Umschalten zwischen
     externer Spannungsversorgung und Versorgung durch die SHARP-Batterien) (s. S. 879. Best.Nr. 70 47 17-66)

   Vergleiche auch SHARP.BLD

- SHARP.BLD: Das PCB-Layout im Format von Geddy-CAD (*).
  Geddy-CAD kann auf http://ourworld.compuserve.com/homepages/IngWMaier/GEDDWNLD.htm    bezogen werden.

- SharpPCB.*: Das Layout in anderen Formaten

- SMDSO8.BLD / SMD0805.BLD: Zwei Makros, die von Geddy-CAD bentigt werden.
        Sie mssen im Verzeichnis liegen, wo Geddy die Makros sucht.



Verzeichnis TVSHARP

- TVSHARP.EXE: Das Terminal-Programm. (DOS-Programm)

- kommprg.sbs: Das Installationsprogramm fr die Kommunikations-Routinen.
  Dieses Programm schreibt ein Assemblerprogramm in den Speicher.

  !!!! Achtung: Das Programm installiert die Routinen an die Adresse
  32820, wo sich im Normalfall das Basic-Programm befindet.

  Um das Kommunikationsprogramm zu installieren (Vorausetzung zur Verwen-
  dung des Interfaces) muss zuerst der Basic-Programm-Speicher nach hinten
  verschoben werden. Die Routinen bentigen ca. 210 Bytes. Wer Speicher
  sparen will soll exakt nachzhlen...

  [ Der Befehl POKE Adr, Data1, Data2, .....  schreibt an die Adresse Adr
    nacheinander die Bytes Data1 (Adr + 0), Data2 (Adr + 1) usw.
    Der Befehl PEEK Adr gibt den Wert des Bytes an der Adresse Adr aus.]

  An der Speicherstelle 65281 befindet sich ein Zeiger auf den Anfang des
  Basic-Speichers. Es handelt sich hier um ein Word (2 Bytes).
  D.h: Die Zahlen an Speicherstelle 65281 und 65282 bilden einen Zeiger.
  Der Wert an 65281 is das Lo-Byte und der Folgende das Hi-Byte.

  Hast du noch nie mit diesen Zeigern gespielt, versuche mal das folgende.
  1. PEEK 65281  =>  Ergibt im Normalfall 48
  2. PEEK 65282  =>  Ergibt im Normalfall 128

  Das bedeuted nun: Der Basic-Speicher beginnt an der Adresse 32816
  (=48 + 128 * 256)
  Nun Versuche PEEK 32816. Hier steht 255, was den Beginn des Speichers
  markiert.

  An Adresse 65283/84 (Ebenfalls ein Word in identischer Aufteilung)
  ist der sog. MERGE-Zeiger. Er zeigt an den Beginn des zuletzt mit
  MERGE hinzugeladenen Programmes. In den meisten Fllen ist er identisch
  mit dem Beginn-Zeiger.

  An Adresse 65285/86 ist der Programm-Ende-Zeiger. Er zeigt auf das Ende
  des Basic-Programmes im Speicher, wo genau wie am Beginn ein 255 steht.


  Nun muss der Anfang um ca. 250 Bytes nach hinten verschoben werden. Das
  geht wie folgt:

  Fall I - Kein Basic-Programm im Speicher. (Einfachster Fall)
  1. In den Beginn-Zeiger den neuen Beginn schreiben.
     Z.B. wenn du genug Platz schaffen willst, gilt folgende Rechung
     32820 + 220 = 33040; 33040 / 256 = 129 Rest 16.
     - POKE 65281, 16, 129.
     - NEW
   2. Das Installationsprogramm eingeben.
      Dabei peinlichst genau auf die Eingabe der richtigen Zahlen achten.

   Fall II - Basic-Programm im Speicher. ( Annahme: erste Zeile = 100 )
   1. Um Platz zu schaffen, vor der ersten Zeile einige Zeilen als Platz-
      halter einfgen:
      1 REM ************************* (soviele Sterne wie mglich ca. 70)
   2. Die Adresse der Zeile 100 (erste Zeile die uns wichtig ist) im Speicher
      suchen.

      Die BASIC-Zeilen sind wie folgt codiert.
      255       <- Beginn des Programm-Speichers
      hh        <- Hi-Byte der Zeilennummer (Bei Zeile 100 = 0)
      ll        <- Lo-Byte der Zeilennummer (Bei Zeile 100 = 100)
      n         <- Lnge der Zeile. Adresse von n + n = Adresse des Zeilenende
      zzzz      <- Die wirkliche Zeile etwas komprimiert
      13        <- Zeilenende immer = 13
      hh        <- Hi-Byte der nchsten Zeile
      usw.
      13        <- Zeilenende der letzten Programmzeile
      255       <- Ende des Programmspeichers

      Man kann sich nun, beginnend bei 32816 mit PEEK durch den Speicher
      hangeln, bis man die Zeile 100 gefunden hat.

  3. Schritt 1 und 2 solange wiederholen, bis die Zeile 100 gengend weit
     hinten ist (Adresse grsser als ca. 33040). Annahme: Das Hi-Byte der
     Zeilenummer 100 befindet sich an Adresse 33040
  4. Markierung Basic-Speicher-Beginn hierhin setzen. POKE 33039, 255.
  5. Den Zeiger auf den Beginn richten. POKE 65281, 16, 129
  6. Das Installationsprogramm eingeben.
     Dabei peinlichst genau auf die Eingabe der richtigen Zahlen achten.
     

  Das Kommunikationsprogramm besteht aus 3 Teilen.
  1. Empfangsteil: Diese Routine wie folgt schreiben:
     Im RUN-Mode 30 eingeben. mit <DEF> + <S> das Programm starten.
     Nach einiger Zeit meldet das Programm von wo bis wo es wieviele ge-
     schrieben hat. Kommt das nicht, weist das auf einen Fehler bei der
     Programmeingabe hin.
  2. Senderoutine: Diese Routine mit 70; <DEF> + <S> analog 1 schreiben.
  3. Verwaltungsroutine: 95; <DEF> + <S> analog 1 schreiben.

- *.SBS: Sind weitere Programme. Just for fun :-)

Das Verzeichnis ASM enthlt einen einfachen Assembler.

- SHARP.COD: Die Codetabelle. Wird vom Assembler dringend bentigt.

- SHARP.EXE: Der Assembler selbst.

- KOMM.9: Die Assemblerdatei des Kommunikationsprogrammes.


Das Interface
-------------

Das Interface ist komplett in SMD aufgebaut. Alle Bauteile knnen
bei Conrad Electronik bezogen werden.



Disclaimer
----------

Bei dem hier Beschriebenen handelt es sich um eine Entwicklung, welche ich
fr meine private Nutzung gettigt habe. Obwohl ausgetestet, kann ich keine
Garantie bernehmen und alle die nach meiner Anleitung basteln, tun dies auf
eigenes Risiko. Insebsondere kann ich auch nicht fr Schden an Hard- und
Software zur Rechenschaft gezogen werden.
Die hier aufgezeigten Informationen drfen nur fr nichtkommerzielle Zwecke
verwendet werden. Desweiteren bin ich auch bereit, den Sourcecode der
Programme herauszugeben. Interessierte wenden sich bitte direkt an mich.

Fr Anregung bin ich immer Dankbar.
<araimondi@gmx.net>

