Eine serielle Schnittstelle per i2c am Atmega

    • Offizieller Beitrag

    Ich habe mir ja neulich mit Eurer netten Hilfe einen Z80 MBC2 aufgebaut. Z80 MBC 2 - Aufbau und Inbetriebnahme

    Der hat ja dank Atmega32 auch eine I2C Schnittstelle.


    Meint ihr, man könnte das System hierüber um eine 2. serielle Schnittstelle erweitern? 300 bps würde mir reichen.


    Zum Beispiel mit

    -SC16IS750 CJMCU-750 Single UART w/ I2C-Bus/SPI Interface (siehe https://www.ebay.de/itm/SC16IS…ksid=p2057872.m2749.l2649)

    - oder einem weiteren Atmega mit I2C und UART (z.B. ein kleiner Atmega48 als Sklave, oder Attiny481 mit sogar 2 UARTs)


    Damit ist es ja leider nicht getan.


    Man müsste ja dann noch das CP/M bzw das UCSD System entsprechend anpassen, daß es die Schnittstelle versteht.

    Und wahrscheinlich auch den Sketch des Atmega32, weil das ja die Verbindung zum eigentlichen Z80 System herstellt....


    Ich kenne mich da ja sehr wenig aus.

    Hat jemand vielleicht eine Einschätzung wie... könnte klappen, nettes Lernprojekt, oder nicht realisierbar, weil xyz?

    Mangels Erfahrung weiss ich auch gar nicht die Komplexität dieses Vorhabens einzuschätzen.

    Wenn ja, vielleicht eine Idee, wie man der Spur nach vorgehen / sich einarbeiten müsste um das hinzubekommen?


    Gruß
    Stephan

    • Offizieller Beitrag

    Eine Erweiterung des MBC2 ueber das I2C Interface scheint relativ einfach.

    GPIO und RTC sind genauso realisiert.

    Den Arduino Sketch kriegt man auch hin. Die aktuellen Sourcen sind gut gegliedert und dokumentiert.



    Aber du sprichst ja schon das CP/M und Pascal an.

    Gibt es hierzu die Sourcen? Bei CP/M mindestens zum BIOS?

    Wenn nicht, wrd die Angelegenheit deutlich komplizierter.

  • Hallo Stefan,


    vor 2-3 Jahren hatte ich mir dem AVR CP/M Stick gebaut (Platine kam damals von Peter Sieg) und dafür auch I2C Erweiterungen in das BIOS eingebaut. Im Einzelnen habe ich da den SC16IS750 für RDR:/PUN: und einen MCP23017 für GPIO als LPT: angeschlossen sowie eine RTC.

    Den Centronics-Port habe ich gerade ausführlich mit GSX Grafik auf einem Epson MX-80 verwendet.

    Damit das funktioniert, habe ich zuerst das damals noch fehlende IOBYTE implementiert. Damit kann man dann mit STAT die logischen mit physikalischen Geräten verbinden.

    Bei der BIOS Erweiterung und dem IOBYTE habe ich mich an dem Buch von Andy Johnson-Laird orientiert ("Programmers CPM Handbook"). Das Buch ist sehr empfehlenswert.


    Die Quellen des AVR-CP/M Systems sind frei verfügbar (https://www.mikrocontroller.net/articles/AVR_CP/M und es gibt dafür auch einen SVN Server, der ist aber etwas undurchsichtig. Deshalb hänge ich mal das BIOS an, dann kannst Du schon mal sehen wie dort das IOBYTE mit den physikalischen Geräten über Sprungtabellen verbunden ist. BIOS: bios.zip


    Du musst allerdings wissen, wie Du I2C in Deinem System in Assembler ansprichst - beim AVR-CP/M ist das über spezielle virtuelle Ports recht einfach.


    Martin


    [Edit: Das SVN auf Mikrocontroller.net ist veraltet, die aktuellen Quellen sind inzwischen auf https://github.com/Feinmechaniker/AVRCPM zu finden.]

    • Offizieller Beitrag

    I2C Erweiterungen in das BIOS eingebaut. Im Einzelnen habe ich da den SC16IS750 für RDR:/PUN: und einen MCP23017 für GPIO als LPT:

    Respekt! Hast Du Deine Arbeit dazu irgendwo weiter dokumentiert? Einen MCP23017 hat der MPC2 auch.

    Vielleicht wäre da eine Übernahme zum MBC2 relativ einfach möglich?

  • Bei der BIOS Erweiterung und dem IOBYTE habe ich mich an dem Buch von Andy Johnson-Laird orientiert ("Programmers CPM Handbook"). Das Buch ist sehr empfehlenswert.

    Gibt's das zufällig als PDF?


    Edit: Hab's schon. :)

    http://www.classiccmp.org/cini…0Andy%20Johnson-Laird.pdf

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Ja, war gleich der erste Google-Treffer. :)

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

    • Offizieller Beitrag

    vor 2-3 Jahren hatte ich mir dem AVR CP/M Stick gebaut (Platine kam damals von Peter Sieg) und dafür auch I2C Erweiterungen in das BIOS eingebaut. Im Einzelnen habe ich da den SC16IS750 für RDR:/PUN: und einen MCP23017 für GPIO als LPT: angeschlossen sowie eine RTC.

    Könntst Du da etwas mehr ins Detail gehen?

    Ich würde ebenfalls gerne einen AVR CP/M Stick mit serieller und paralleler Schnittstelle ausrüsten, und habe mir dafür bereits eben diese ICs besorgt.

  • vor 2-3 Jahren hatte ich mir dem AVR CP/M Stick gebaut (Platine kam damals von Peter Sieg) und dafür auch I2C Erweiterungen in das BIOS eingebaut. Im Einzelnen habe ich da den SC16IS750 für RDR:/PUN: und einen MCP23017 für GPIO als LPT: angeschlossen sowie eine RTC.

    Könntst Du da etwas mehr ins Detail gehen?

    Ich würde ebenfalls gerne einen AVR CP/M Stick mit serieller und paralleler Schnittstelle ausrüsten, und habe mir dafür bereits eben diese ICs besorgt.

    Ich denke Peter Sieg war einer der letzten, die sich vor kurzem so ein Ding nachgebaut haben.

    Er kann sicher seine aktuellen Erfahrungen ergänzen.

    Es gibt da auch eine Weiterentwicklung mit integriertem VT100 und VGA Ausgang, aber das ist mir schon zu neumodisch und groß (aber sicher auch sehr schön).


    Die Quellen auf GITHUB sollten komplett sein, der Hauptentwickler (siehe langen thread im Miikrocontroller Forum) hatte wohl kürzlich aus Versehen einen Fehler eingebaut, der aber wieder behoben sein sollte.

    Die Zusatzteile (GPIO, Seriell, verschiedene RTC, ...) sind über #defines zum Assemblieren wählbar, man muss nur auf die richtigen I2C Adressen achten bzw. die Chips einstellen.


    Das PDF zeigt meine Verschaltung schematisch AVR-CPM-Schema.pdf.


    Die Bilder, wie das Ganze bei mir aussieht:



    Die RTC habe ich dann später noch nachgerüstet:


    Das ganze ist natürlich ziemlich zusammengewurstelt aber mein Ehrgeiz war, alles möglichst kompakt zu halten. Weil ich keine Platinen machen wollte, habe ich virenfreie vom Chinesen meines Vertrauens gekauft. Die alte Originalplatine habe ich dazu geringfügig beschnitten und eine zusätzliche kleines 2,5 Zoll Festplattengehäuse mit einem 3,6 V LiPo und 3,3->5V Wandler dient als Energieversorgung die dann über 5,5/2,1 Buchse angesteckt wird.


    Damit habe ich ein sehr schönes kleines portables System, mit dem ich z.B. Terminals schnell mal testen kann. Alle Standardsoftware läuft.

    Das einzige worauf man achten muss, ist dass das System für 3,3 V ausgelegt ist (SD Karte) und ich daher z.B. für den GPIO/Centronics Spannungswandler eingefügt habe.


    Zum Flashen muss man die SD-Karte entfernen.


    Die Z80 Emulation funktioniert jedenfalls einwandfrei.


    Und was man damit (auch) machen kann. Leider versteht das MultiTel wohl nur einen sehr kleinen Satz an Escape-Sequenzen, aber für Zork reicht es.

    • Offizieller Beitrag

    Martin Hepperle : Interessant. Ich habe ein Multikom im gleichen Gehäuse, das kann aber nicht als serielles Terminal agieren.

    Wie schließt Du das an? Ob die Firmware vom Multitel auf dem Multikom läuft? Könntest Du mir vielleicht mal das Eprom auslesen, wenn die Chance auf Erfolg besteht?


    Btw, schönes PDF was Du erstellt hast. Darf ich fragen, welche Software Du dafür benutzt hast?



    Ich denke, das hier ist der richtige link zu Github https://github.com/Feinmechaniker/AVRCPMblob/b87ab4c38b254781aeab6245e1f1a67b92ea0b5a/Doku/Aeternum_Doku.pdf



    Hier sind auch die BIOS Sourcen zum AVRCPM https://github.com/Feinmechani…master/Build_CPM/BIOS.MAC


    mit den entsprechenden Einträgen für die I2C Geräte und IOBYTE.


    Ob man das für den Z80MBC2 umsetzen kann?

  • ... Software: mein Kopf und Corel Draw. Photos mit Photoshop vorher etwas aufgepeppt/freigestellt.

    So ein Bild sagt dem Laien (also mir) mehr als 10 normgerechte Schaltpläne.


    ... Multikom: ich stelle mein Telefon auf "Hauptmenu-Datenbankzugang" ein, dann kann man Baud Rate etc. einstellen. Vorher lege ich mit F9, F§5; SHIFT-F1 auf den"Datenbankzugang" und lege eine Verbindung zu einer "Datenbank" mit z.B. 9600 Baud an. Das gibt mir dann einen 80x24 Bildschirm.

    Hinten hat es einen DB-9 AUX Buchse für seriell.

    Irgendwo sollte ich noch ein PDF Dokument haben, in dem ich mir das dokumentiert habe (gerade nur den Papierausdruck zur Hand).

    Ich kann nochmal nachsehen, was ich an Photos von den Innereien gemacht habe, das EPROM hatte ich, glaube ich, damals auch ausgelesen. War ein ziemliches Gefummel mit den vielen Rundfunktauglichen Abschirmblechen.

    • Offizieller Beitrag

    EPROM hatte ich, glaube ich, damals auch ausgelesen.

    Den DB9 Connector habe ich. Ein Menü für den Datenbankzugriff habe ich leider nicht. Ich habe auch keinen Telephonhörer (aber das hängt bestimmt nicht zusammen). Falls Du das Eprom-Image in Deinem Archiv hast, würde ich das gern mal bei mir testen.

    • Offizieller Beitrag

    Btw, kennt sich hier jemand mit Arduino aus?


    Ich habe mir mal versucht, eine Beispiel-Library anszusehen zum 16sc750.

    https://github.com/ericoneill1…blob/master/SC16IS750.cpp


    Hat jemand sich schonmal damit versucht?


    Bei mir bricht es mit diesen Fehlermeldungen ab, bin ein wenig ratlos....


    Arduino: 1.8.12 (Linux), Board: "Arduino Uno"


    In file included from /home/stephan/Downloads/arduino/arduino-1.8.12/portable/sketchbook/libraries/SC16IS750-master/SC16IS750.h:11:0,

    from /home/stephan/Downloads/arduino/arduino-1.8.12/portable/sketchbook/uart_bridge/uart_bridge.ino:7:

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h: In member function 'byte SC16IS750::readRegister(byte)':

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:64:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int)

    uint8_t requestFrom(int, int);

    ^~~~~~~~~~~

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:61:13: note: candidate 2: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)

    uint8_t requestFrom(uint8_t, uint8_t);

    ^~~~~~~~~~~

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h: In member function 'int SC16IS750::readPin(int)':

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:64:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int)

    uint8_t requestFrom(int, int);

    ^~~~~~~~~~~

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:61:13: note: candidate 2: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)

    uint8_t requestFrom(uint8_t, uint8_t);

    ^~~~~~~~~~~

    In file included from /home/stephan/Downloads/arduino/arduino-1.8.12/portable/sketchbook/libraries/SC16IS750-master/SC16IS750.h:11:0,

    from /home/stephan/Downloads/arduino/arduino-1.8.12/portable/sketchbook/libraries/SC16IS750-master/SC16IS750.cpp:7:

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h: In member function 'byte SC16IS750::readRegister(byte)':

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:64:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int)

    uint8_t requestFrom(int, int);

    ^~~~~~~~~~~

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:61:13: note: candidate 2: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)

    uint8_t requestFrom(uint8_t, uint8_t);

    ^~~~~~~~~~~

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h: In member function 'int SC16IS750::readPin(int)':

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:64:13: note: candidate 1: uint8_t TwoWire::requestFrom(int, int)

    uint8_t requestFrom(int, int);

    ^~~~~~~~~~~

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/libraries/Wire/src/Wire.h:61:13: note: candidate 2: uint8_t TwoWire::requestFrom(uint8_t, uint8_t)

    uint8_t requestFrom(uint8_t, uint8_t);

    ^~~~~~~~~~~

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::SC16IS750(int)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::SC16IS750(int)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::writeRegister(unsigned char, unsigned char)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::configureUart()'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::configurePins(unsigned char)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::writePin(int, bool)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::readRegister(unsigned char)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::uartConnected()'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::available()'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::txBufferSize()'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::read()'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::write(unsigned char)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    libraries/SC16IS750-master/SC16IS750.cpp.o (symbol from plugin): In function `SC16IS750::SC16IS750(int)':

    (.text+0x0): multiple definition of `SC16IS750::readPin(int)'

    sketch/uart_bridge.ino.cpp.o (symbol from plugin):(.text+0x0): first defined here

    /tmp/ccvxfWk0.ltrans0.ltrans.o: In function `main':

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/cores/arduino/main.cpp:43: undefined reference to `setup'

    /home/stephan/Downloads/arduino/arduino-1.8.12/hardware/arduino/avr/cores/arduino/main.cpp:46: undefined reference to `loop'

    collect2: error: ld returned 1 exit status

    exit status 1

    Error compiling for board Arduino Uno.


    This report would have more information with

    "Show verbose output during compilation"

    option enabled in File -> Preferences.

    • Offizieller Beitrag

    Du hast offensichtlich vergessen, eine Headerdatei einzuziehen, die die Klasse "SC161S750" definiert (die wahrscheinlich "SC161570.h" heißt.)

    Leider nein. EInfach nur mal versucht, das Beispiel zu kompilieren aus Github:

  • Das ist kein Beispiel. Das ist die Library. Und augenscheinlich beschwert sich der Compiler, dass dieselbe Klasse in deinem Sketch und der Library drin ist ("multiple definition of `SC16IS750::SC16IS750(int)').


    Die Library gehört in den Library-Ordner der Arduino-IDE (da ist sie wohl schon drin). Dein Beispiel, das die Library verwendet, darf die Klasse dann nur noch instantiierein (z.B. als globale Varible wie in


    Code
    SC16IS750 mySc (10);
  • Ich habe zwar keinen solchen SBC, aber wenn ich deren WEB Seite lese, erfolgt dort wohl die I2C Anbindung über spezielle Opcodes des Z80 die in der Arduino Firmware ausgewertet werden. Beim AVR-CPM wird das über virtuelle Ports geregelt - über OUT Instruktionen der Z80 CPU , die dann in der Emulator-Firmware abgefangen und in die Register in dem zugeordneten I2C-Chip abgebildet werden.


    Du müsstest also zum einen lernen, wie Du ein neues I2C Gerät mit seiner eigenen I2C Adresse in der Firmware ansprechen kannst. Dann dies implementieren. Zunächst solltest Du sicherstellen, dass Du die Original-Firmware mit der Arduino IDE kompilieren kannst. Wenn schon eine I2C Kommunikation in der Standard-Firmware implementiert ist (z.B. für den GPIO Port über den MCP23017) könntest Du diese als Vorlage für andere I2C Geräte nehmen.


    Auf der anderen Seite der Macht steht das CP/M mit seinem Z80 Code. Dort müssten dann PUNCH und READER Routinen implementiert werden, welche die speziellen Opcodes an die Firmware senden.

    Dazu musst Du auf der Z80 Seite das BIOS assemblieren und auf die CP/M Diskette schreiben können. Auch dies muss erst mal ohne Modifikation klappen, d.h. das Grundsystem muss selbst generierbar sein.

    Erst dann würde ich daran gehen, die neuen Funktionalitäten zuzufügen.

    • Offizieller Beitrag

    Zunächst solltest Du sicherstellen, dass Du die Original-Firmware mit der Arduino IDE kompilieren kannst. Wenn schon eine I2C Kommunikation in der Standard-Firmware implementiert ist (z.B. für den GPIO Port über den MCP23017) könntest Du diese als Vorlage für andere I2C Geräte nehmen.


    Auf der anderen Seite der Macht steht das CP/M mit seinem Z80 Code. Dort müssten dann PUNCH und READER Routinen implementiert werden, welche die speziellen Opcodes an die Firmware senden.

    Dazu musst Du auf der Z80 Seite das BIOS assemblieren und auf die CP/M Diskette schreiben können. Auch dies muss erst mal ohne Modifikation klappen, d.h. das Grundsystem muss selbst generierbar sein.

    Danke für die Hinweise.

    Ich kann das Originalsystem kompilieren, und ja, es werden schon I2C Geräte angesprochen, und auch das CP/M Bios liegt als Source vor. Es ist noch ein weiter Weg für mich weil ich noch nie was in Z80 Assembler oder Arduino gemacht habe außer wenig drüber gelesen.

    Meine Idee war, zuerst mal an einem nackten Arduino - Uno Board den SC16I750 anzusprechen und zu schauen, ob ich Zeichen senden oder empfangen kann, dann zu versuchen, sobald das geht, den Code in den Arduino Code für den Z80MBC2 zu implementieren.


    Dann sollte ich schon von Z80-CP/M Seite die Opcodes senden und von Hand ein paar Zeichen senden können.


    Als letzten Schritt sehen ich die Anpassung des Z80 BIOS.

  • Das ist kein Beispiel. Das ist die Library.

    Oh, verdammt. Ich dachte, die .h Files seien die Library ! Also .h und .cpp sind die "Library"?

    Im Prinzip ja. Das ".h" ziehst du in deinem Sketch ein, und beide gehören in den Library-Ordner.

    In deinem Sketch wirst du das dann nur noch verwenden, also z.B. so:


  • C
    SC16IS750 mySc (1);

    Danke!

    Kannst Du mir noch sagen, was diese Zeile Code macht?

    Es deklariert eine Objekt "mySc" der Klasse SC16IS750 und ruft den Konstruktor der Klasse mit dem Argument 1 auf