Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo Thomas, > > > ich möchte in Assembler einen kurzen Text in das Display schreiben. Im dissasemblierten OS habe ich > > gefunden, wie man etwas auf das Display der CC2 schreiben kann. Mit dem folgenden kleinen ASM-Code > > kann ich jeden beliebigen String, der sich bereits im Speicher der CC2 befindet in das Display > > schreiben: > > ... > > CALLS 35284 ;Routine zum Schreiben > > Diese Routine, also <asm>089D4h</asm> ist nur zum schreiben von Festtexten auf > das interne LCD welche in Segment 0 stehen. Also für Statusmeldungen des OS. > Bis OSOPT V3.0 sind diese Routinen zwar noch zum Teil vorhanden, jedoch > werde ich diese ab OSOPT V3.1 entfernen, da ich den Speicherplatz für andere > Erweiterungen benötige. (z.B. für die Implementierung von sys0002.hex im OS) > Seit OSOPT V3.0 werden diese LCD-Routinen auch nirgends mehr aufgerufen. > > > ... > > Wo liegt der Bereich für section data? > gibt es hier nicht. > > > Oder werden Variablen generell anders definiert? > > Es gibt unter Assembler keine Variabeldefinitionen. > Die ist eine Erfindung der Hochsprachen. > Du kannst nur Labels definieren welche für bestimmte Zahlen stehen, > welchen man wieder z.B. als Speicheradressen benutzen kann. > Der Speicherzugriff erfolgt in ASM direkt. > Jedoch kannst Du hier nur Segment 8 für einen wahlfreien Zugriff benutzen. > Beachte aber, daß Du nicht beliebige Bereiche von Segment 8 benutzen darfst, > da hier auch die Variablen vom C2 Programm, sowie Daten des Betriebsystems > abgelegt werden. (z.B. Thread-Infos) > Daher solltest Du in C2 ein entsprechend großes Array definieren und die Startadresse > Deiner ASM-Routine übergeben, damit Du weißt, ab wo Du den RAM gefahrlos > benutzen kannst. > > Um wieder auf Deinen Wunsch zurückzukommen, Text auf dem Mini-LCD auszugeben, > solltest Du Dir im OS <code>.VM_LCD | (vmcodes.LCD_PRINT << 8)</code> > zu Gemüte führen. > > VM_LCD liegt an Offset 091DEh. > LCD_PRINT ist der Sub-Code 9 > Die Print-Routine liegt also an Offset 09274h. > (Sprungtabellen sind etwas feines :-) ) > Die eigentliche Print-Routiene liegt aber an Offset 08beeh und benötigt als zwei Parameter: > In R12 die Startadresse im RAM(Segment8) des Strings und in R13 die Anzahl der Zeichen. > > Allerdings habe ich dies noch nicht aus ASM direkt aufgerufen und getestet. > > MfG André H.
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB