This site is a member of WebRing.
To browse visit Here.

Modellbahn Schienen als Stromschienen für Halogen Beleuchtung
IC35 The Unifier
Siemens IC35 The Unifier
Software Download

Diese Programme können nach dem Download über den IC35 Manager installiert werden.
Für die Richtigkeit der Programme kann natürlich keinerlei Gewähr übernommen werden, insbesondere für den Schaden, den man mit der Dump-Utility anrichten kann!
16 KByte
Download mastermind.zip Das bekannte Mastermind Spiel
16 KByte
Download solitaire.zip Solitaire-Spiel (Spring)
Dokumentation (Stand: 11.11.2001) und Beispiel Applikation Irtrans
16 KByte Download Dump.zip IC35 Memory Dump + Disassembler
16 KByte Download Term.zip Terminal Programm, jetzt mit GPS Test
16 KByte Download Timer.zip Stoppuhr und Timer
16 KByte Geduldsspiel Schiebe-Puzzle < l'ane rouge >
16 KByte Lade-Programm Version 1.3 für MMC-ladbare Applikationen: Solitaire, Mastermind, Timer, Würfel, Terminal, l'ane rouge, 15er Spiel
Source Code für L35 Applikation, ISR's
16 KByte Geschicklichkeitsspiel, APP und L35
16 KByte Aufruf eines internen Testprogramms.
Achtung: Programm endet mit RESET !
neu 16 KByte Japanisches Denkspiel
Hardware Erweiterung One Wire Bus
Spezifikation für von MMC ladbaren Applikationen
Version 1.3, Stand 19.06.2003

Software Unterstützung von One Wire Bus Sensoren DS18S20, DS18B20 und DS2436
Zusätzlich zu "L35MANAG.APP" gibt es jetzt eine geänderte Version mit Namen "L35M_WAP.APP". Wenn man diese installiert, wird der Währungsrechner durch den L35-Manager ersetzt. Dieser kann dann direkt  aus der Standard-Oberfläche über FN-8 gestartet werden. Allerdings heißt der L35-Manager dann "W@P Browser".

Applikationen werden in RAM-Bank 7 geladen und dort ausgeführt, die benutzten Daten liegen entweder in den freien 4.5 KByte in RAM-Bank 0 oder mit in der RAM-Bank-7, dies geht dann natürlich von der möglichen Programmlänge ab.

Das ergibt folgende Einschränkungen für Applikationen:

  • maximale CODE Größe 16 KB, max. Datengröße 4,5 KB (sollte aber für kleine APPs reichen)
  • Daten werden nicht in RAM-Bank 7 gelegt, sondern in Bank 0 ab Adresse 0xd600, das wird erreicht durch Änderung des Linkfiles app.lnk (von 8000 auf d600).
  • Code wird nicht in ROM-Bank gelegt, sondern in RAM Bank 7, das wird erreicht durch Änderung der Files app.lnk (4000 -> 8000) und app.sep (4000 -> 8000 und 7fff -> bfff)
  • Alternativ kann man die Daten auch zusätzlich zum Code in RAM Bank 7 legen, wenn 16 KB für Code + Daten reichen.
Implementierung:
  • Die so erzeugten Applikationen bekommen die Extension .l35, die Binär-Datei appbnk00.bin wird umgetauft in <Name>.l35
  • Über einen Lader kann man dann .l35 Applikationen auswählen, ins RAM laden und dort ausführen
  • Nach Beendigung der Applikation kehrt sie in den Lader zurück und man kann eine andere auswählen
  • Lader wird zunächst bis zu 64 Applikationen verwalten können.
  • Lader legt seine Daten in RAM Bank-0 ab Adresse 0xc800 und in RAM Bank 3
  • Stackbedarf für Lader: 2 Byte
Erweiterung 25.02.2002 (Version 0.3):
  • Die L35 Applikationen können optional einen Header enthalten. In diesem kann der Applikations-Name (16 Zeichen), ein ICON zur Anzeige im L35 Lader (L35Manager), Größe 16 x 16 Bit  und eine Prüfsumme gespeichert werden, zusätzlich ein ID-Code des Programm-Authors, Datum und Revision-Code.
  • Der Header wird eingefügt über das Programm L35head.exe, das in die Visual-C Umgebung eingebunden werden kann.
  • Die Prüfsumme wird nach dem Laden ins RAM vom L35 Lader überprüft, bei Fehler wird die Applikation nicht gestartet.
  • Beim Start des L35 Laders werden alle Applikationen von MMC gelesen und auf einen gültigen Header hin überprüft.
  • Ist so ein Header vorhanden, wird im L35 Lader statt des Dateinamens das zugehörige ICON und der Applikationsname angezeigt.
  • Durch Anlegen einer Datei <L35.txt> im Verzeichnis \IC35\L35 kann das Verhalten des L35Managers durch Schlüsselwörter in der Datei beeinflusst werden:
    • NOBMP: Die Header der L35 Dateien werden nicht ausgewertet, dadurch ergibt sich ein schnellerer Start
    • SLOAD: Ein im L35Manager integrierter serieller Lader wird aktiviert. Damit kann man von einem PC aus L35-Dateien über die serielle Schnittstelle (RS232 Kabel) Laden, Ladezeit < 5 Sekunden. Dazu wird auf dem PC das Programm Sload.exe benötigt. Dieses kann in die Visual-C Umgebung eingebunden werden.
Parameter der zugehörigen PC-Programme:
  • L35head.exe
    • Aufruf : L35Head -f <infile> -o <outfile> -b <bmpfile> -n <namefile> -a <author> -r <rev>
    • -f <infile>: Ausgabefile des Linkers, i.a. appbnk00.bin
    • -o <outfile>: L35 Filename
    • -b <bmpfile>: 16 x 16 monochrom Windows Bitmap (optional)
    • -n <namefile>: Ascii File das den Applikationsnamen enthält, max. 16 Buchstaben (optional)
    • -a <author>: 2 Buchstaben als Programm-Author Identifier (optional)
    • -r <rev>: File Revision Code, 0..255 (optional)
  • Sload.exe
    • Aufruf: Sload -f <file> [-c <1|2|3|4>] [-clk]
    • -f <file>: L35 File, wahlweise mit oder ohne Header
    • -c <1|2|3|4>: Wahl der seriellen Schnittstelle (COM1: .. 4)
    • -clk: Wenn angegeben, wird die aktuelle PC-Uhrzeit auf den IC35 übertragen
Besonderheiten:
  • Applikationen können weiterhin mit der Emulation auf PC getestet werden
  • Durch Neukompilation können auch normale .app-Applikationen erzeugt werden (ohne Source Änderung)
  • Deutlich verkürzte Turn-around Zeiten beim Test von Applikationen (Deinstallation, Defragmentierung und Installation entfallen)
 Aktueller Stand:
  • Version 1.3 eines Laders existiert, L35Manag.app
  • folgende ladbare Applikationen stehen zum Test zur Verfügung:
    • Soli.l35 (Solitär-Spiel)
    • Wuerfel.l35 (1-6 Würfel)
    • Timer.l35 (Stoppuhr und 1 - 2 Timer)
    • Master.l35 (Mastermind Spiel)
    • Term.l35 (V24 Terminal)
    • Ane.l35 (l' âne rouge, Geduldsspiel)
    • 15er Spiel (Schiebepuzzle)
  • Source Code für Applikation Wuerfel.l35 kann zur Verfügung gestellt werden als Beispiel für die Einstellungen der Dateien app.lnk, app.sep und app.epp
Interrupt Service Routinen (ISR-Problem):
Die Verwendung von ISR's (Timer und serielle Schnittstelle) bei IC35 Applikationen bringt das folgende Problem mit sich:
  • Die RAM-Bank ist beim Aufruf der ISR nicht immer richtig gesetzt
  • Der Typ der Bank (ROM / RAM / LCD)  ist nicht immer richtig gesetzt
Dieses Problem kann man bei normalen Apps dadurch umgehen, dass man in ISR's nur auf Speicher in Bank 0 zugreift
Alternativ kann man beim Start der ISR die richtige Bank/Typ Einstellen und beim Verlassen wieder zurücksetzen
Bei L35 Applikationen führt das ISR Problem dazu, dass die ISR gar nicht erreicht wird, da die RAM Bank ja nicht erreichbar ist, der IC35 wird im allgemeinen abstürzen.

Lösung:

  • Der L35-Lader Code hält zwei Einsprung-Adressen für  ISR's bereit, die vor dem Aufruf der L35-Applikations-ISR die korrekten Bänke einstellen und nach Beendigung der ISR sie wieder restaurieren.
  • Außerdem sind zwei RAM Adressen reserviert, um dort die Adresse der USER ISR's zu hinterlegen
  • Die L35-Applikation schreibt nun ihre ISR Adresse an definierte Stelle ins RAM und gibt beim Aufruf von z.B. SetTimerIsr() die IC35-Lader ISR Adresse mit.
  • Dieses Verfahren bringt allerdings mit sich, dass der Stackbedarf um 8 Bytes ansteigt
Als Beispiel dienen die Dateien Isr.c und Isr.h, die hier herunter geladen werden können.
Der L35 Manager unterstützt jetzt dieses Verhalten.

Weiterentwicklungen:

  • Man könnte sich Verfahren überlegen, um die RAM Bank 4 nutzen zu können (spezielles Bank-Switching)
  • Im Lader könnte man noch andere Fonts unterbringen und für Applikationen nutzbar machen, das hat dann allerdings die Einschränkung, dass .L35 Applikationen nicht mehr zu .APP Applikationen kompatibel sein können
  • Man könnte aufgerufenen Programmen Parameter übergeben, z.B. im RAM Bereich ab 0xc800
Änderungsstand:
  • 0.3:        siehe oben
  • 0.4:        Header Checksumme wird jetzt beim Laden einer Applikation aktualisiert, da vorher geänderte Applikationen, die an gleicher Position  auf MMC standen, wegen Checksum-Fehler nicht gestartet wurden
  • 0.5:        Shortcuts bei L35 Oberfläche jetzt nach Applikations-Namen statt nach File-Namen
  • 1.0:        Erweiterte Oberfläche beim Start, zusätzliche Version als Ersatz des W@P Browsers bzw. Währungsrechners, um L35 Manager direkt     mit FN-8 starten zu können.
  • 1.1:        Hardware Erweiterung One Wire Bus an Smart Card Interface: DS18S20 Temperatur Sensor
  • 1.2:        Hardware Erweiterung DS18S20, DS18B20 oder DS2436 (zusätzlich Batteriespannungsanzeige)
  • 1.3:        Menu Anzeige korrigiert

 
 

Dank an

  • Michael Brünnert
  • Jagged
  • Silvio Iaccarino
für wertvolle Diskussionsbeiträge.



IC35 serieller Stecker  (JAE DA1P018M91)
 
 
IC35 Pin 
Nummer
Bezeichnung Eingang / Ausgang Level Erklärung PC Pin
Nummer
Signal
Name
1 VDD - - 3 Volt über Diode - -
2 ?? Eingang CMOS
verbunden  mit Pin 11 - -
3 DCD Eingang RS232 Bit 2 und 6 in MSR - -
4 TXD Ausgang RS232 Transmit Data, verbunden 
mit Pin 14
- -
5 VDD - - 3 Volt über Diode - -
6 RTS Ausgang RS232 verbunden mit Pin 13 - -
7 GND - -
- -
8 DTR Ausgang RS232 verbunden mit Pin 12 - -
9 IRQ Eingang CMOS Interrupt Eingang von SYNC-Station
active low, Pull up
Bit 3 / 7 in MSR
- -
10 GND - -
- -
11 ?? Eingang CMOS
siehe Pin 2 - -
12 DTR Ausgang RS232 verbunden mit Pin 8 6 DSR
13 RTS Ausgang RS232 verbunden mit Pin 6 8 CTS
14 TXD Ausgang RS232 verbunden mit Pin 4 2 RXD
15 RXD Eingang RS232 Receive Data 3 TXD
16 DSR Eingang RS232 Bit 1 und 5 in MSR 4 DTR
17 CTS Eingang RS232 Bit 0 und 4 in MSR 7 RTS
18 GND - -
5 GND