Beiträge anzeigen

Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.


Nachrichten - Gamepower

Seiten: [1] 2
1
Lowlevel-Coding / Re: make-Problem
« am: 20. February 2010, 16:42 »
Im Wiki-Artikel sehe ich die Tabs noch nicht, dauert es bis das aktualisiert wird?

In der Regel ist die jeweilige Wiki Änderung sofort Verfügbar. Du hast evtl. noch zu alte Daten im Browsercache. Drücke einfach STRG + F5, um die jeweilie Seite neu zu laden. Der Browsercache wird hierbei umgangen.

---

Hier der Code für das makefile:

SRCS = $(shell find -name '*.[cS]')
OBJS = $(addsuffix .o,$(basename $(SRCS)))

CC = gcc
LD = ld

ASFLAGS = -m32
CFLAGS = -m32 -Wall -g -fno-stack-protector -nostdinc
LDFLAGS = -melf_i386 -Ttext=0x100000

kernel: $(OBJS)
$(LD) $(LDFLAGS) -o $@ $^

%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $^

%.o: %.S
$(CC) $(ASFLAGS) -c -o $@ $^

clean:
rm $(OBJS)

.PHONY: clean
2
Lowlevel-Coding / Re: Keybord Maps
« am: 08. August 2009, 16:35 »
Ich wollte halt nicht die deutsche Tastatur als Standard verwenden, habe auch alle meldungen und Kommentare in Englisch. Inzwischen geht aber das individuelle "Eindeutschen" (Tastatur, Befehle, ...) los. Schrecklich.

du hast doch, im früheren teil deines os-dev tutorials, ein keyboard layout erstellt. erstelle einfach weitere solche maps und bastel ein keyboard treiber der diese dynamisch läd... ähnlich wie dos...
3
Lowlevel-Coding / Re: Sektoren von Floppy Disk laden
« am: 18. July 2009, 13:05 »
tritt das problem auch mit "rawrite", oder "rawritewin" auf...? vieleicht löst sich das problem ja von selbst, wenn du einfach das programm zum schreiben der diskette wechselst...
4
Du hast den vergleich mit cmd_help oben weg gelassen, vergleichst nur mit dem Fragezeichen. Schau mal etwas weiter unten im Tutorial
http://www.henkessoft.de/OS_Dev/OS_Dev1.htm#mozTocId146145

... da findest Du beide Befehle cmd_help und cmd_questionmark sowie die auch ansonsten optimierte Variante:

  mov si, buffer
  mov di, cmd_help  ; "help" command
  call strcmp
  jz .help

  mov si, buffer
  mov di, cmd_questionmark  ; "?" command
  call strcmp
  jz .help

huch... da hab ich doch echt was beim abtippen übersehen... danke dir :) nun klapps auch mit dem befehl.

ich nehm mir dann mal den c-kernel vor :)

---

[ot] mich würde, im späteren verlauf die api interissieren. ich hoffe, da kommt noch mehr. und, fat12/ fat15/ fat32 hätte ich auch gerne im tutrial :)

wenn das drinn ist, kann ich dann ein kleinen texteditor einbauen :)
5
hallöle :)

ich habe einige zeit nicht mehr an mein "MinOS" kernel gearbeitet... also hab ich mein projekt vorerst geworfen und verfolge das os-dev tutorial von herrn henkes. nun habe ich folgendes problem: ich habe diesen kernel abgetippt, der sich auch ohne fehlermeldungen kompilieren lässt. allerdings, wenn ich den befehl "help" eingebe, kommt dort die fehlermeldung, das der befehl nicht existiert.

hier ersteinmal meine adaption des kernels:

; MyOS Kernel Vers. 0.0.3 - 11 Juni 2009

;;;;;;;;;;;;;;;;;
; Realmode Code ;
;;;;;;;;;;;;;;;;;

org 0x8000 ; Kernel Startadresse
[BITS 16] ; 16 Bit Code

; RealMode Bereich des Kernels
RealMode:
xor ax, ax ; Segmente einrichten
mov es, ax
mov ds, ax
mov ss, ax
mov sp, ax

mov si, welcome
call print_string

add sp, -0x40 ; Input Buffer auf 64 Zeichen setzen

loop_start:
mov si, prompt ; Eingabeaufforderung Zeigen
call print_string

mov di, sp ; Hole Eingaben
call get_string
jcxz loop_start ; Leere Zeile? Wenn ja, ignorieren und zum Start zurück

mov si, sp
mov di, cmd_hi ; "hi" Kommando
call strcmp
je .helloworld

mov si, sp
mov di, cmd_questionmark ; "?" Kommando
call strcmp
je .help

mov si, sp
mov di, cmd_exit ; "exit" Kommando
call strcmp
je .exit

mov si, sp
mov di, cmd_pm ; "pm (protected mode)" Kommando
call strcmp
je .pm

mov si, badcommand
call print_string
jmp loop_start

.helloworld:
mov si, msg_helloworld
call print_string
jmp loop_start

.help:
    mov si, msg_help
    call print_string
    jmp loop_start

.exit:
mov si, msg_exit
call print_string
xor ax, ax
int 0x16 ; Warte auf Tastendruck
jmp 0xffff: 0x0000 ; Neustart

.pm:
call clrscr
mov si, msg_pm
call print_string
call Waitingloop

cli ; Interrups leeren
lgdt [gdtr] ; Lade die GDT per GDTR (Eingerichtet in der Datei "gdt.asm"

in al, 0x92 ; A20-Gate per schnellen A20 Port 92 einschalten
cmp al, 0xff ; Falls 0xFF zurück gegeben wird, ist der Port nicht Verfügbar...
je .no_fast_A20 ; ... in diesem fall, zu diesem Punkt springen...

; andernfalls geht es hier weiter:
or al, 2 ; A20-Gate Bit setzen (Bit 1)
and al, ~1 ; Init-Bit setzen
out 0x92, al
jmp .A20_done

; Steht kein schneller A20-Gate zur Verfügung...? Dann benutzt der Kernel den Weg über den KBC Chip
.no_fast_A20:
call empty_8042
mov al, 0xD1 ; KBC Kommando: Schreibe auf Output Port
call empty_8042

mov al, 0xDF ; Schreibe dies auf KBC Output Port zum einschalten des A20 Gate
out 0x60, al
call empty_8042

; Umschalten in den A20-Gate beenden
.A20_done:
mov eax, cr0
or eax, 1
mov cr0, eax
jmp 0x8:ProtectedMode


empty_8042:
call Waitingloop
in al, 0x64 ; Kein echter KBC...?
cmp al, 0xFF
je .done

test al, 1 ; something in Input Buffer
jz .no_output
call Waitingloop
in al, 0x60 ; Wenn ja, Buffer lesen...
jmp empty_8042 ; ... dann nocheinmal

.no_output:
test al, 2 ; Kommando Buffer leer?
jnz empty_8042 ; Wenn nein, dann Buffer als nicht leer markieren und zur "Leerungsroutine" springen

.done:
ret

print_string:
mov ah, 0x0E

.loop_start:
lodsb ; Hole ein Byte von SI
test al, al ; Alle Zeichen geholt? Wenn ja, dann...
jz .done ; Funktion verlassen
int 0x10 ; Wenn nein, dann Zeichen ausgeben...
jmp .loop_start ; ... Anschliessend nochmal von vorn

.done:
ret

get_string:
xor cx, cx
.loop_start:
xor ax, ax
int 0x16 ; Auf Tastendruck warten
cmp al, 8 ; Rücktaste gedrückt?
je .backspace ; Wenn ja, entsprechend behandeln
cmp al, 13 ; Entertaste gedrückt?
je .done ; Wenn ja, entsprechend behandeln
cmp cl, 63 ; 63 Zeichen eingegeben?
je .loop_start ; Wenn ja, nur noch Rücktaste und Enter erlauben
mov ah, 0x0E
int 0x10 ; Gebe Zeichen aus
stosb ; Speichere Zeichen in Puffer
inc cx
jmp .loop_start

.backspace:
jcxz .loop_start ; Leer (Keine Zeichen auf dem Bildschirm) ? Wenn ja, Rücktaste ignorieren
dec di
mov byte [di], 0 ; Lösche ein Zeichen
dec cx ; Reduziere Speicherplatz für Zeichenkette
mov ah, 0x0E
int 0x10 ; Rücktaste auf dem Bildschirm zeigen
mov al, ' '
int 0x10 ; Gebe "Rücktastenzeichen" (Leerzeichen) aus
mov al, 8
int 0x10 ; Zeige erneut die Rücktaste auf dem Bildschirm
jmp .loop_start

.done:
mov byte [di], 0 ; NULL terminator
mov ax, 0x0E0D
int 0x10
mov al, 0x0A
int 0x10 ; Neue Zeile
ret

strcmp:
.loop_start:
mov al, [si] ; Hole ein Zeichen von SI
cmp al, [di] ; Sind SI und DI identisch?
jne .done ; Nein? Wir sind fertig

test al, al ; Keine Zeichen mehr zu prüfen?
jz .done ; Wenn ja, sind wir fertig

inc di ; DI um 1 verringern
inc si ; SI um 1 verringern
jmp .loop_start

.done:
ret

clrscr:
; Funktion, um den Bildschirm zu "leeren"
mov ax, 0x0600
xor cx, cx
mov dx, 0x174F
mov bh, 0x07
int 0x10
ret

;;;;;;;;;;;;;;;;;;;;;;;
; Protected Mode Code ;
;;;;;;;;;;;;;;;;;;;;;;;

[Bits 32]

ProtectedMode:
mov ax, 0x10
mov ds, ax ;Daten Desciptor -> Daten, Stack und Extra Segment
mov ss, ax
mov es, ax
xor eax, eax ; NULL Descriptor -> FS und GS
mov fs, ax
mov gs, ax
mov esp, 0x200000 ; Setze Stack Limit auf 2MB

call clrscr_32
mov ah, 0x01

.endlessloop:
call Waitingloop
inc ah
and ah, 0x0f
mov esi, msg_pm2 ; Nachricht "Betriebssystem läuft im Protected Mode"
call PutStr_32
cmp dword [PutStr_Ptr], 25 * 80 * 2 + 0xB8000
jb .endlessloop
mov dword [PutStr_Ptr], 0xB8000 ; Text Zeiger Wrapper
jmp .endlessloop

Waitingloop:
mov ebx, 0x9FFFF
.loop_start:
dec ebx
jnz .loop_start
ret

PutStr_32:
; PM Mode Textausgabe
mov edi, [PutStr_Ptr]
.nextchar:
lodsb
test al, al
jz .end
stosw
jmp .nextchar
.end:
mov [PutStr_Ptr], edi
ret

clrscr_32:
mov edi, 0xb8000
mov [PutStr_Ptr], edi
mov ecx, 40 * 25
mov eax, 0x07200720 ; 2 Werte -> Weisser Text auf schwarzen Hintergrund | 0x20 -> Freier Platz
rep stosd
ret

PutStr_Ptr dd 0xb000

; Man läd die Adresse des Textes, den man haben möchte, über "[PutStr_Ptr]
; für die Textaugaben. Der Text muss NULL terminiert sein.
; you want to print in esi and the attributes in ah
; lodsb loads one byte from esi into al, then increments esi,
; then it checks for a NUL terminator,
; then it moves the char into the write position in video memory,
; then increments edi and writes the attributes,
; loops until it finds NUL pointer at which point it breaks ...

;;;;;;;;;;;;;;;;
; Textausgaben ;
;;;;;;;;;;;;;;;;

welcome db 'MinOS Vers. 0.03', 13, 10, 0
msg_helloworld db 'Hello World on MinOS Vers. 0.03', 13, 10, 0
badcommand db 'Unbekannter Befehl', 13, 10, 0
prompt db '> ', 0
cmd_hi db 'hi', 0
cmd_help db 'help', 0
cmd_questionmark db '?', 0
cmd_exit db 'exit', 0
cmd_pm db 'pm', 0
msg_help db 'Befehle: hi, help, ?, pm, exit', 13, 10, 0
msg_exit db 'Computer wurde herunter gefahren. Du kannst ihm nun ausschalten. Alternativ druecke eine Taste, um ihm neuzustarten.', 13, 10, 0
msg_pm db 'Schalte in den Protected Mode.', 13, 10, 0
msg_pm2 db 'MinOS arbeitet im Protected Mode.  ', 0

;;;;;;;;;;;;
; Includes ;
;;;;;;;;;;;;

%include "gdt.asm"

;;;;;;;;;;;;;;;
; Kernel Ende ;
;;;;;;;;;;;;;;;

times 1024-($-$$) hlt

hab ich mich da einfach nur irgendwo vertippt, was nasm nicht anmeckert, weil nasm alles sieht was es sehen muss...? ach ja, ich kompiliere mit nasm, nicht nasmw...

---

[ot]
herr henkes schreibt ein wirklich klasse tutorial. alles ist schön schrittweise strukturiert und erklärt.
6
[...] darin sind auch einige dinge, darunter auch malloc, beschrieben...
Darf ich ganz kurz fragen, ob du die konkrete Implementation (das bezweifle ich) oder wie man es benutzt meinst? Ich dachte bei deiner Frage oben nämlich eher an ersteres...

wenn du magst, stelle ich mal ein beispielcode, welche die malloc ermöglichen soll, hier rein. vieleich kannst du mir dann sagen, ob der code für mein projekt verwertbar ist...
7
ich denke, ich werde mir einige quelltexte der anderen hobby betriebssysteme ansehen und davon lernen. ich habe mir auch noch das buch "c für pc´s" gekauft. darin sind auch einige dinge, darunter auch malloc, beschrieben...
8
so, ich habe mir die tyndur sourcen näher angeschaut... das schaut, im vergleich zum spagetiecode bei asm, leichter zu programmieren aus.

daher mal diese fragen:

kann ich mit dem fat12 bootloader von teejay ein in c geschriebenen kernel (z.b. den aus dem c kernel tutorial) booten, oder muss ich zwingend mit grub arbeiten. grub erleichtert natürlich die programmierarbeit, in dem er verschiedenbe funktionen bereits mitliefert... aber, ich möchte gerne soviel wie möglich aus eigener hand einbringen.

wo finde ich tutorials für die folgenden sachen - also malloc; lesen,schreiben und ausführen von dateien/ programmen usw... also eigendlich so alles grundlegende, was ein kernel tun muss...
9
Wie gesagt, es wird mit wesentlich weniger Aufwand klappen, wenn du von Anfang an Protected Mode machst.

mag schon sein.... aber, im rl kann ich bios funktionen nutzen. im pm muss ich mir die funktionen selbst schreiben...

ich denke, ich sollte mal ein geh- versuch im pm machen und dann abwägen, was in meinen augen mehr aufwand erfordert...
10
Immerhin hat er zu den Versionsnummern kein Datum geschrieben.
das ist pure absicht, das es kein release datum gibt. ich bin noch am lernen, was os codung angeht. dazu kommt, das ich beruflich zeitlich etwas knapp bin, und noch andere projekte habe..

Mit ein paar Rewrites ist es zwar immer noch nicht sinnvoll, aber gehen könnte es schon irgendwie. ;)
das es kappen kann, denke ich auch.... mal sehen, wann ich etwas brauchbares zusammen habe, das man als os bezeichnen kann...
11
Offtopic / Re: Hosen runter! Zeigt eure OS ;)
« am: 23. March 2009, 18:16 »
ja :-)
http://sourceforge.net/projects/frostkernel
Aber wie gesagt, ich bin noch nicht sehr weit.

du bist deutlich weiter als ich... naja, ich code rohe asm spagetie ^^

ich hab noch kein fat12 datei handling und keine malloc...bin auch wieder etwas aus der übung, was asm angeht... hab so 4 monate nix mehr in asm gebastelt...
12
tyndur / Re: tyndur webseite down
« am: 23. March 2009, 06:22 »
Hat ja auch bald schon drei Jahre Entwicklungszeit hinter sich.

Aber obwohl es eigentlich das Communiy-OS von Lowlevel ist, beteiligt sich die Community nur mäßig. Sonst wäre es vielleicht noch etwas umfangreicher. ;)

dann mal so gefragt, was müsste noch eingebaut werden..?
13
tyndur / Re: tyndur webseite down
« am: 22. March 2009, 20:29 »
Quellcode und Images liegen aber (auch) auf einem anderen Server (http://nightlies.tyndur.org/) und das SVN sollte auch noch funktionieren

hab die images/ dateien von den server geholt. das projekt ist ja schon sehr umfangreich...
14
tyndur / tyndur webseite down
« am: 22. March 2009, 07:53 »
hallöle,

ich wollte mir gerade tyndur als diskettenimage und den quelltest laden. aber, anstatt der webseite, diskettenimages bzw. dem quelltext kommt nur so ein hässlicher  e404....

ist die seite umgezogen, oder ist das projekt tod...?
15
Zitat von: chris12
zu 2. mit der text-datei: du musst erstmal die sektoren in den speicher laden, dann erkennen, dass das überhaupt ne text-datei ist und nicht möglicherweise ein programm und danach einfach ausgeben
das währe der nächste punkt... aber erstmal wüsste ich gerne, ob ein...:

db "test     txt"
ausreicht, um den namen der quelldatei "vorhalten" zu können...

---

ich glaube man merkt schon, dass ich ne zeitlang kein kontakt zu asm usw. hatte...

---

Zitat von: taljeth
Und wie ist das mit den Langzeittests zu verstehen? Soll das System diese Zeit einfach nur rumstehen und hinterher noch leben oder willst du da irgendwelche Tests laufen lassen?

es soll schon reale tests stattfinden. um es kurz zu machen: ich will mit den, noch zu bauenden, apps den kernel fordern.. manche fehler findet man ja erst beim längeren tests einer software... oder, wenn bestimmte ereignise auftreten. also muss man halt etwas zeit investieren. die zeitlichen angaben sind so zu verstehen: XX stunden intensiver beschäftigung mit der software. absichtliches herbeiführen bestimmter zustände usw...

zu deinen anderen fragen:

die malloc() will ich paralel zu dem rest bauen... ums kurz zu machen: ich will die malloc() so bauen, das ein programm welches 8kb benötigt, auch 8kb in einem zu bekommt, anstatt 2x 4kb wie es im forum oft vorgeschlagen wird. aber, das ist nur eine idee. wie ich die fertige malloc() am ende stehen habe, muss ik erst testen...

was dem pm angeht, so wird es da eine paralele entwicklung geben.. aus dem MinOS wird, wohl gemerkt erst sehr viel später, ein os hervorgehen, welcher auf meinem guten alten 486er das dos ersetzen wird. das ganze soll auch eine gui beinhalten und mehr als 1mb ansprechen können (der kleine hat 16mb ram ). ich baue mir also soetwas, wie ein ersatz für dos und win3.11... und, ja man könnte etwas anderes nehmen. aber, das währe ja zu einfach ;)

16
Lowlevel-Coding / roadmap meines kernels - so realisierbar..?
« am: 21. March 2009, 07:30 »
hallöle :) erstmal die roadmap:

Bereits abgeschlossene Aufgaben:

Vers. 0.0.1
» Einfacher Bootloader (ohne real nutzbares Dateisystem)
» Hardcodet Textausgabe
» Funktion zum Neustart des Computers

Vers. 0.0.2
» Mini- IVT (nur Int 13h | Textausgabe läft nun über diesen Interupt)
» Makros für die Progammiererleichterung
» Erste Kernelmessages

Vers. 0.0.3
» Kleinerer Kernelbugfix (Kernelmessages wurden falsch ausgerichtet)
» Erster Versuch, eines Fat12 Bootloaders einzurichten

Vers. 0.1.0
» Fat12 Bootloader integriert
» Kerneloptimierung (Kernel ist nun ein wenig kleiner, als vorher)
» Vorbereitungen für das Fat12 Dateisystem und Speicherverwaltung

Geplante & kommende Funktionen:

Vers. 0.1.1
» Integration von Dateisystem Funktionen (lesen, schreiben & Ausführen von Dateien & Programmen) | Fat12 Dateisystem- Treiber
» Einrichtung der benötigten Software- Interupts
» Erster Teil der Speicherverwaltung

Vers. 0.1.2
» Ausgabe von Textdateien, bzw. vergleichbares mittels der Dateisystemfunktionen

Vers. 0.1.3
» Einfügen eines Speichermanagers - Vorbereitung(en) für den Protected Mode

» Vorbereitungen für die (erste kleine) Shell
» Teil 1 der API integriert

Vers. 0.2.0
» Erster Testrelease für die Öffentlichkeit
» 24h Langzeit- Test
» Ggf. Kernelbugfix

Vers. 0.2.1
» Falls Notwendig: Kernelbugfix
» Minimale Shell
» Ggf. Fat12 Dateisystem- Treiber Bugfix

Vers. 0.2.2
» Ausbau der minimalen Shell oder neue Shell
» Texteditor
» Ggf. Kernelbugfix

Vers. 0.3.0
» 2. 24h Langzeit- Test
» 2. Testrelease
» Teil 2 der API
» Ggf. Kernelbugfix

Vers. 0.3.1
» Ausbau des Texteditors, bzw. neuer Editor

Vers. 0.4.0
» (feste) Integration erster Anwendungen - darunter den Editor, Taschenrechner (bzw. ähnliches Programm), Datum- / Zeitanzeige & erste portierte Anwendungen
» 24h Langzeit- Test
» Teil 3 der API
» Ggf. Kernelbugfix

Vers. 0.5.0
» Erneuter Testrelease für die öffentlichkeit
» 24h Langzeit- Test
» Vorerst letzter Teil der API
» Ggf. Kernelbugfix

Vers. 0.6.0
» Ggf. weiter Programme » Ggf. Kernelbugfix

Vers. 0.7.0
» Phase 1 zum Umstieg in den Protected Mode
» Ggf. Kernelbugfix

Vers. 0.8.0
» A20 Gate fertig
» Weitere Treiber (Dateisystem usw.) für den Protected Mode umgeschrieben
» Tastaturtreiber fertig (für deutsche und englische Tastatur Layouts)
» IPC fertig
» Malloc fertig
» 24h Langzeit- Test
» Ggf. Kernelbugfix

Vers. 0.9.0
» Assembler Compiler portiert, bzw. einen eigenen geschrieben
» 24h Langzeit- Test
» Ggf. Kernelbugfix

Vers. 1.0.0
» Finaler Release
» 72h Langzeit- Test
» Ggf. Kernelbugfix

Das MinOS ist fertig! Hiernach finden nur noch Bugfixes statt, sofern in der Langzeitnutzung Fehler auftreten.

nun meine fragen:

1. kann man die roadmap so umsetzen?

2. ich stecke beim bauen der fat12 treiber fest. um genau zu sein, muss ich die funktionen zum auffinden, lesen, schreiben und erstellen von dateien einbauen. der beispielcode im tutorial 7 ist sehr umfangreich. aber, wie kann ich diesem so anpassen, das er eine textdatei liest und sie dann am bildschirm ausgiebt...

3. wie realisiere ich die speicherverwaltung im rm...? malloc hat dort sicher kein sinn, oder...?

thx in voraus
17
Offtopic / Re: Hosen runter! Zeigt eure OS ;)
« am: 20. March 2009, 18:04 »
Das besondere an meinem Kernel ist, das er nur in FreeBASIC geschrieben ist. (na gut, ich benutze den inline assembler ;) )

oha... ist dein kernel open source?

---

noch mache ich alles in asm, soll sich aber bald ändern :)
18
Das Wiki / Re: Neuauflage des Lowlevel Magazins
« am: 30. August 2008, 15:15 »
mmh... mein wissen zu lowlevel coding sind zu gering, als das ich beta lesen kann. aber, bewertungen, ob es sich verständliich mitverfolgend gelesen werden kann, würde ich auc gerne machen.

ich selbst hab ein eigenes eMag projekt. von daher kann ich davon lernen und auch helfen
19
OS-Design / Re: QBasic
« am: 30. August 2008, 15:13 »
also... ein kernel in basic zu bauen, empfinde ich als ziehlich brutal... aber, das beweist mal wieder, das basic mehr kann, als nur ein paar zeilen text zu schreiben ;)
20
Offtopic / Re: schönen tag; kleine vorstellung
« am: 11. August 2008, 16:38 »
ich hab ne gmx adresse und ich hab mir die aktivierungsmail bestimmt 20 mal oder so zuschicken lassen, auf 2 tage verteilt, und hab nichts bekommen dann hab ich mir das thema http://lowlevel.brainsware.org/forum/index.php?topic=1998.0 durch zufall durchgelesen und danke an TheThing, der mich darauf hingewiesen hat, dass gmx adressen nicht funzen. :-(
ich würd vorschlagen, dass ihr auf die hauptseite schreibt, dass zb gmx oder web.de adressen nicht funzen. :-)
das funktioniert auch nicht mit web.de, oder freenet.de mail adressen... aber mein account wurde, wie bei dir, von hand aktiviert.

nun zu mir:
ich bin 14 jahre alt
wohne in Stralsund an der Ostsee
und Proggrammieren ist mein hobby.



mfg bb


chris12


einen wunderschönen gruß von einem weiterem mecklemburger ;)
Seiten: [1] 2

Einloggen