.pl72
.op
                              - 1 -                             
                                                                
                             SCHALT7                            
                             =======                            
                                                                
                   Copyright 1986 by STEPSOFT                   
                    Written by Stephan Merker                   
                                                                
                                                                
 SCHALT7 ist ein Programm zum  Zeichnen  von  Schaltpl{nen.  Das
Programm ben|tigt einen Kempstonjoystickinterface, der nicht mit
einem Cursor- oder  Sinclairjoystick  gekoppelt  sein  darf.  Es
lassen sich vier Bildschirme  zugleich  bearbeiten.  Bauelemente
kann man mit einem Tastendruck aufrufen. Das Programm  ist  fast
vollst{ndig in PASCAL geschrieben und l{~t sich deshalb  relativ
leicht pers|nlichen W}nschen anpassen.                          
                                                                
Laden des Programms                                             
-------------------                                             
                                                                
SCHALT7 besteht aus folgenden Teilen:                           
                                                                
Name     Typ                           Funktion                 
----------------------------------------------------------------
schalt7  BASIC                         Initialisierung          
SCHALT7O }bersetztes PASCAL-Programm   eigentliches Programm    
schalt   MC                            Scrollroutinen+NMI-Save  
ELEMENT  ARRAY                         Bauelementebibliothek    
PICTURE  Screen                        Helpseite                
                                                                
 Das Programm wird einfach mit LOAD "" geladen. Nachdem  ELEMENT
geladen wurde, wird gefragt, ob  die  Helpseite  geladen  werden
soll.                                                           
                                                                
Funkionen                                                       
---------                                                       
                                                                
 Nach dem Laden erscheint in der Mitte des Bildes ein blinkendes
Pixel, der Cursor. Dieser kann mit dem Joystick in 8  Richtungen
bewegt werden: links, rechts, oben, unten  und  diagonal.  Durch
Dr}cken der Firetaste wird bei Bewegung des Cursors  eine  Linie
gezogen. Dr}ckt  man  au~erdem  ENTER  bewegt  sich  der  Cursor
schneller.                                                      
 Die Tastatur ist folgenderma~en belegt (auf Gro~-  oder  Klein-
schreibung achten!):                                            
                                                                
   Bauelemente                                                  
   ...........                                                  
                                                                
   r   Widerstand                                               
   c   Kondensator                                              
   e   Elektrolytkondensator                                    
   l   Spule                                                    
   d   Diode waagerecht oder senkrecht                          
   D   Diode schr{g                                             
   t   npn-Transistor                                           
   T   pnp-Transistor                                           
   f   n-Kanal SFET                                             
   F   p-Kanal SFET                                             
   v   p-Kanal MOSFET                                           
.pa
                              - 2 -                             
                                                                
   V   n-Kanal MOSFET                                           
   B   Batterie                                                 
   h   Diac                                                     
   a   Inverter                                                 
   g   Gatter mit zwei Eing{ngen                                
   m   Pfeil f}r Potentiometer                                  
   n   Pfeile f}r LED                                           
   b   Schalter                                                 
   q   Quarz                                                    
   z   Relais                                                   
   u   Masse                                                    
   w   OPV                                                      
   m   Pfeil f}r Einstellregler                                 
   y   digitaler Schaltkreis, danach ist eine Zahl von 1  bis  9
       f}r die Gr|~e einzugeben                                 
                                                                
   Zeichnen und L|schen                                         
   ....................                                         
                                                                
   p   umschalten auf Zeichnen, wird Fire  gedr}ckt,  dann  wird
       bei Bewegung des Cursors eine Linie gezeichnet           
                                                                
   o   umschalten auf L|schen, wird Fire gedr}ckt, dann wird bei
       Bewegung des Cursors gel|scht                            
                                                                
   Gittermuster                                                 
   ............                                                 
                                                                
   G   Gittermuster ein                                         
                                                                
   H   Gittermuster aus                                         
                                                                
   Kassette                                                     
   ........                                                     
                                                                
   k   Bild auf Kassette laden; Das angezeigte  Bild  wird  ohne
       'Start  tape  then  press  any  key'  unter  dem    Namen
       "PICTURE " gespeichert.                                  
                                                                
   j   Bild von Kassette laden; Es werden  nur  Bilder  mit  dem
       Namen "PICTURE " (Leerzeichen nach dem E!) geladen.      
                                                                
   Schrift                                                      
   .......                                                      
                                                                
   s   Schriftmodus einschalten; Mit SCHALT7 ist es  m|glich  64
       Zeichen pro Zeile in vier Richtungen zu  schreiben.  Nach
       dem Einschalten blinkt  der  Cursor  weiter.  Dr}ckt  man
       einen Buchstaben oder eine Zahl so erscheint das  Zeichen
       an der Stelle des Cursors. Dieser r}ckt um eine  Position
       weiter. Mit dem Joystick kann der Cursor  bewegt  werden.
       Es  wird  immer  in  der  Bewegungsrichtung  des  Cursors
       weitergeschrieben. Mit EDIT verl{~t man den Schriftmodus.
       Das Doppelkreuz erzeugt ein My und  der  Klammeraffe  das
       Ohmzeichen.                                              
                                                                
                                                                
.pa                                                                
                                 - 3 -                          
                                                                
   Verschieben                                                  
   ...........                                                  
                                                                
   i   Mit diesem Befehl kann man rechteckige Teile eines Bildes
       verschieben oder kopieren. Mit dem  Joystick  bewegt  man
       den Cursor zu einem Eckpunkt des zu  verschiebenden  oder
       zu kopierenden Rechtecks, dann dr}ckt man die Taste  'h'.
       Die  diagonal  gegen}berliegende  Ecke  ist  genauso   zu
       markieren.  VERSCHIEBEN:  Mit  dem  Joystick  kann    das
       Rechteck pixelweise in alle  vier  Richtungen  verschoben
       werden. KOPIEREN: 'c' dr}cken und den Cursor an die linke
       untere  Ecke  der  k}nftigen  Kopie  bewegen.  Nach   der
       Bet{tigung von 'h' wird  kopiert.  Danach  kann  mit  dem
       Joystick  die  Kopie  wieder  verschoben  werden.   Beide
       Funktionen werden mit EDIT abgeschlossen.                
                                                                
   I   Hier  wird  der  gesamte  Bildschirm  mit  dem   Joystick
       verschoben, um eventuell die 4 Bilder in  ]bereinstimmung
       zu  bringen.  Mit  EDIT  l{~t  sich  der   Verschiebemode
       beenden.                                                 
                                                                
   Positionsbefehle                                             
   .................                                            
                                                                
   R   Die Position, in der sich  der  Cursor  gerade  befindet,
       wird gemerkt.                                            
                                                                
   E   Der Cursor bewegt sich zur gemerkten Position.           
                                                                
   L                                                            
       Es wird eine Linie  vom  Cursor  zur  gemerkten  Position
       gezogen.                                                 
                                                                
   Bildwechseln                                                 
   ............                                                 
                                                                
   1   Dr}ckt man 1, so wird das Bild, da~ man gerade bearbeitet
   2   (Bild 0) mit Bild  1  vertauscht.  Analog  kann  mit  den
   3   Bildern 2 und 3 verfahren werden.                        
                                                                
   4   4 mischt Bild  1  mit  Bild  0.  Die  Pixel  werden  ODER
   5   verkn}pft und in Bild 0 eingetragen. 5 mischt Bild 2  und
   6   6 Bild 3 mit Bild 0.                                     
                                                                
   Andere Befehle                                               
   ..............                                               
                                                                
   K   zeichnet einen Kreis; Die Ziffern von 1 bis  9  nach  'K'
       geben die Gr|~e an.                                      
                                                                
   X   l|scht Bild 0                                            
                                                                
   P   f}llt eine durch eine geschlossene Linie begrenzte Fl{che
       aus; Vorsicht!!! Wenn die Linie  nicht  geschlossen  war,
       wird der gesamte Bildschirm ausgef}llt.                  
                                                                
                                                                
   .pa
                                                             
                                 - 4 -                          
                                                                
   A   Modusanzeige; Wird 'A'  gedr}ckt,  so  erscheint  in  der
       oberen rechten Ecke ein Buchstabe. Es bedeuten:          
           p   Zeichnen                                         
           o   L|schen                                          
           i   Teile verschieben                                
           I   Bild verschieben                                 
           s   Schrift                                          
                                                                
Quelltext und Compilieren                                       
-------------------------                                       
                                                                
Es gibt 3 verschiedene Quelltexte von SCHALT7:                  
                                                                
 SCHALT7S  gesamter Quelltext                                   
 SCHALT7F  Quelltext ohne Grafikbibliothek                      
 SCHALT7W  mit  Editorkommando  'W'  blockweise  ausgeschriebene
           Grafikbibliothek                                     
                                                                
SCHALT7F und SCHALT7W existieren, weil SCHALT7S so lang ist, da~
es  nicht  mehr  }bersetzt  werden  kann.  Die  beiden  k}rzeren
Programme erh{lt man wie folgt:                                 
                                                                
      -SCHALT7S laden                                           
      -Zeilen 230 bis 2230 l|schen                              
      -Proceduren INPUT und TAPEOUT l|schen                     
      -Compileroption  $L-  ersetzen  durch  $L-,O-,C-,A-   (Die
       Compileroption steht in der 1. Zeile hinter dem Programm-
       namen.)                                                  
      -Rest unter dem Namen SCHALT7F saven                      
      -SCHALT7S wieder laden                                    
      -mit W 230,2230,SCHALT7W blockweise saven                 
                                                                
Aufgrund der L{nge  und  der  Speichereinteilung  kann  man  das
Programm  nur  mit  T  (translate)  }bersetzen.  Dazu  geht  man
folgenderma~en vor:                                             
                                                                
      -PASCAL-Compiler HP4T1.6M laden                           
      -auf die Fragen antworten:                                
         Top of RAM ?  ENTER                                    
         Top of RAM for 'T' ?  65151 ENTER                      
         Table size ?  2000 ENTER                               
      -SCHALT7F laden                                           
      -SCHALT7W zurechtspulen                                   
      -T,,SCHALT7O eintippen (Befehl zum ]bersetzen)            
      -Recorder starten; SCHALT7W wird geladen und }bersetzt.   
      -wenn das Programm fertig compiliert ist,  auf  die  Frage
       OK? mit Y antworten und Objektcode saven                 
                                                                
Einf}gen neuer Bauelemente                                      
--------------------------                                      
                                                                
Die  Bauelemente  sind  in  dem  Array   ELEMENT    gespeichert.
Definition von ELEMENT:  ELEMENT:ARRAY  (.  1..130,1..30  .)  OF
CHAR;  Es  k|nnen  also  maximal  130    verschiedene    Zeichen
gespeichert werden. In der vorliegenden Version ist ELEMENT  bis
einschlie~lich 106 belegt. F}r jedes  Zeichen  ben|tigt  man  30
Byte. Diese 30 Byte sind wie folgt zu belegen:                  
.pa                                                                
                              - 5 -                             
                                                                
      -Byte 1: eine  Zahl,  unter  der  das  Zeichen  aufgerufen
               werden  soll.  Es  werden    die    Zahlen    bis
               einschlie~lich  24  und  der    ASCII-Zeichensatz
               benutzt.                                         
      -danach: maximal 28 Zeichenbefehle                        
      -danach: 0, damit  das  Programm  das  Ende  des  Zeichens
               erkennt                                          
                                                                
Die Zeichenbefehle bedeuten folgendes:                          
                                                                
      -  1  Drehung der Zeichenrichtung 45 Grad nach links      
      -  2  Drehung der Zeichenrichtung 90 Grad nach links      
      -  3  Drehung der Zeichenrichtung 135 Grad nach links     
      -  4  Drehung der Zeichenrichtung 45 Grad nach rechts     
      -  5  Drehung der Zeichenrichtung 90 Grad nach rechts     
      -  6  Drehung der Zeichenrichtung 135 Grad nach rechts    
      -255  PENDOWN                                             
      -254  PENUP                                               
      -253  INVERSE                                             
      -50+n n Pixel in Zeichenrichtung zeichnen                 
      -50-n n Pixel entgegen der Zeichenrichtung zeichnen       
                                                                
Beispiel: Der Widerstand ist folgenderma~en definiert.          
1,2,51,5,55,5,51,2,52,48,5,51,5,55,5,51,5,254,57,0              
                                                                
Eingeben der Daten:                                             
                                                                
      -SCHALT7S laden                                           
      -alles nach den  Proceduren  INPUT,  TAPEIN,  TAPEOUT  und
       BAUELEMENT  l|schen,  jedoch  das  Hauptprogramm  (letzte
       Zeilen,  beginnt  mit  BEGIN   am    Zeilenanfang    ohne
       einr}ckende Leerzeichen) lassen                          
      -vom Hauptprogramm folgende Zeilen l|schen:               
         REPEAT                                                 
          BEFEHL;JOY;                                           
         UNTIL FALSE                                            
        END.                                                    
      -daf}r einf}gen:                                          
         INPUT;                                                 
        END.                                                    
      -im  Variablenvereinbarungsteil  l|schen  (am  Anfang  des
       Programms):P1,P2,P3:ARRAY (. 1..6144 .) OF CHAR;         
      -Programm mit 'C' compilieren und starten                 
      -ELEMENT laden                                            
      -Es  erscheint  die  Meldung  'BEFEHL?'.  Die  Nummer  des
       n{chsten freien  Zeichenspeichers  (in  der  vorliegenden
       Version w{re das 107) eingeben.                          
      -Jetzt k|nnen die Zeichendaten eingetippt werden.         
      -Nachdem die 0 eingegeben  worden  ist,  erscheint  wieder
       'BEFEHL?'.                                               
      -Gibt man die Zahl 999 ein, so wird  das  n{chste  Element
       bereitgestellt. Eine  Zahl,  die  kleiner  als  130  ist,
       bewirkt die Bereitstellung des entsprechenden Zeichens.  
      -Wenn alle Zeichen  eingegeben  sind,  EDIT  dr}cken.  Man
       befindet sich wieder im Editor.                          
      -INPUT; durch TAPEOUT; ersetzen.                          
      -neu compilieren                                          
      -Programm starten und ELEMENT saven.                      
.pa
                              - 6 -                             
                                                                
 Das neue Schaltzeichen kann mit dem Befehl:                    
                       BAUELEMENT(CHR(n));                      
aufgerufen werden (n ist die Zahl des Bauelements z. B. 25).    
 Dieser Befehl ist in die Procedur BEFEHL einzutragen. Dazu  mu~
eine noch nicht benutzte Taste definiert werden. Wenn die  Taste
z.B. M ist, so wird folgendes eingegeben:                       
     'M':BAUELEMENT(CHR(25));                                   
Danach ist SCHALT7F neu zu erstellen und  das  Programm  neu  zu
}bersetzen.                                                     
                                                                
NMI-Save                                                        
--------                                                        
                                                                
Verf}gt man auf seinem Spectrum  }ber  einen  NMI,  der  zu  der
Adresse verzweigt, die in der Systemvariablen 23728 steht,  dann
kann man damit bei Programmabsturz oder versehentlichem  Dr}cken
von j (Bild laden) die 4 Bilder auf Band retten.  Dazu  ist  die
Kassette  zurechtzuspulen  und  den  Recorder  auf  Aufname   zu
schalten. Sobald der NMI-Taster gedr}ckt wurde, werden die  vier
Bilder jeweils einzeln mit Header gesavet.                      
 Es  ist  empfehlenswert,  eine  zurechtgespulte  Kassette    im
Recorder zu haben, damit z.B. bei versehentlichem Dr}cken von  P
(Fill) die Bilder noch gerettet werden k|nnen.                  
                                                                
Drucken der Schaltung                                           
---------------------                                           
                                                                
Zum Drucken existiert das Programm  SCOPY.  Hiermit  k|nnen  die
Bilder zusammenh{ngend ausgedruckt werden. Das Programm  erkl{rt
sich selbst.                                                    

.pa
