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 - FreakyPenguin

Seiten: 1 ... 12 13 [14] 15
261
Das Wiki / Startseite defekt?
« am: 25. April 2006, 18:26 »
Ich bin auch der Meinung, dass es kein neues Forum braucht.

Falls sich mastermesh nicht mehr melden sollte (was ich nicht annehme), findet sich sicher jemand der die Seite wieder auf trab bringt.

@hannibal:
könnte man die umlaute nicht mit einer Mysql-Query (replace) fixen ?


mfg Togi
262
Lowlevel-Coding / Problem mit Linken
« am: 09. April 2006, 18:59 »
Mich verwirrt noch das .text  0x200 im linker-file, wenn doch der Kernel an 0x1000 ist. Ist aber auch möglich, dass ich einen Denkfehler mache.
263
Lowlevel-Coding / Problem mit Linken
« am: 08. April 2006, 20:32 »
Funktioniert es denn, wenn du die ausgabe noch im asm-teil machst ?

z.B mit:

[Bits 32]
global start

start:
    mov BYTE [0xb8000], 'A'
    mov BYTE [0xb8001], 0x0f
jmp $
264
Lowlevel-Coding / Problem mit Linken
« am: 08. April 2006, 18:46 »
Wenn ich mich nicht irre ist der Video-Speicher An 0xb8000 und nicht an 0xa8000  !


Also sollte es nicht
char *VideoMem = (char*)0xA8000;

heissen, sondern

char *VideoMem = (char*)0xB8000;

mfG Toni Kaufmann
265
Lowlevel-Coding / Real Time Clock - Komische werte
« am: 01. November 2005, 12:52 »
Vielen Dank, jetzt hab ichs hingekriegt !!
266
Das Wiki / Ausgabe 8
« am: 01. November 2005, 08:08 »
Wie weit seid ihr ?

MfG Toni
267
Lowlevel-Coding / Real Time Clock - Komische werte
« am: 01. November 2005, 07:57 »
Hallo zusammen

Ich hab versucht in meinem OS die Zeit ausm CMOS auszulesen. Das auslesen klappt auch schon. Die werte werden alle 0,1 Sekunden ausgelesen. Nun, hab ich festgestellt, dass die Zahlen kömische sprünge machn. Da wir zum Beispiel bis 27 hochgezählt der nächste Wert ist dann 32. Und so weiter bis 90 (glaub ich). Ich vermute, das es dann aber mit all den schritten doch wieder 60 Sekunden sind  :?.

Hat jemand eine ahnung  was das sein könnte ?


Gruss Toni
268
Lowlevel-Coding / Problem mit Kernel (wieder einmal)
« am: 04. June 2005, 18:45 »
und wie weit komt er ? weisst du das ?
269
Lowlevel-Coding / Problem mit Kernel (wieder einmal)
« am: 04. June 2005, 18:37 »
vielleich könnten wior dir helfen wenn du deinen Code Postest
270
Lowlevel-Coding / Tastaturtreiber Problem
« am: 04. June 2005, 18:36 »
Hallo,

cih habs jetzt hingekriecht. doch nun habe ich ein anderes Problem, ich hab ne tabelle gemach um die Scancodes in keycodes umzuwandeln. Doch die umwandlung funkioniert nur bis zur Backspacetaste, danach bekomme ich einfach null, die Scancodes, jedoch werdenm korrekt ausgegeben.

Hier ist die Tabelle:

keycode:
db 0 ;0
db 110 ;1
db 2 ;2
db 3 ;3
db 4 ;4
db 5 ;5
db 6 ;6
db 7 ;7
db 8 ;8
db 9 ;9
db 10 ;0a
db 11 ;0b
db 12 ;0c
db 13 ;0d
db 15 ;0e
db 16 ;0f
db 17 ;10
db 18
db 19
db 20
db 21
db 22
db 23
db 24
db 25
db 26
db 27
db 28
db 43 ;1c
db 58
db 31
db 32
db 33
db 34
db 35
db 36
db 37
db 38
db 39
db 40
db 41
db 0
db 44
db 42
db 46
db 47
db 48
db 49
db 50 ;30
db 51
db 52
db 53
db 54
db 55
db 57
db 100 ;37
db 60
db 61
db 30 ;3a
db 112 ;3b
db 113 ;3c
db 114 ;3d
db 115 ;3e
db 116 ;3f
db 117 ;40
db 118 ;41
db 119 ;42
db 120 ;43
db 121 ;44
db 90 ;45
db 0 ;46
db 91 ;47
db 0 ;48
db 0 ;49
db 105 ;4a
db 92 ;4b
db 0 ;4c
db 0 ;4d
db 106 ;4e
db 93 ;4f
db 98 ;50
db 103 ;51
db 99 ;52
db 104 ;53
db 0 ;54
db 0 ;55
db 0 ;56
db 122 ;57
db 123 ;58




Und hier noch die KeyhandlerRoutine:


;De Keyhandler Routine, die in der Idt eingetragen ist
keyhandler:

xor eax,eax
in al,0x60
PushAll
call PutByte
PopAll
mov al, [keycode+eax]

call PutByte



.ende
 mov al, 0x20
 out 0x20,al

iretd


Wo könnte ich den Fehelr suche, ich hab echt keine Ahnung wo er ist.

Vielen Dank schon im Voraus.

LG Togi
271
Lowlevel-Coding / Tastaturtreiber Problem
« am: 02. June 2005, 19:43 »
hat jemand ne ahnung wo es lieien könnte ?
272
Lowlevel-Coding / Tastaturtreiber Problem
« am: 01. June 2005, 18:02 »
Hallo mal Wieder
Ich bin dabei meinen Tastaturtreiber zu schreiben. Nun, seit einiger zeit sagt boch nach ca. 40 Tastendrücken immer folgende meldung ausgibt.
nternal keyboard buffer full, ignoring scancode.

ich weiss nicht wo ich den fehler noch suchen könnte.


Hier ist der Code:


int0x21:

xor eax,eax
in al,0x60

push eax
call PutByte
pop eax

cmp al, 0xE0
je .ende
cmp al, 0x00
je .ende
cmp al, 0xff
je .ende


mov al,BYTE [Keycodetable + eax]

call PutByte


.ende



 mov al, 0x20
 out 0x20,al
 
iret


Sieht jemand den Fehler ?

Vielen dasnk im voraus

gruss Togi
273
Lowlevel-Coding / Problem Mit IDT
« am: 27. May 2005, 12:07 »
kann mir denn niemand helfen ??  ich hab immer noch keine Ahnung wo der fehler is !
274
Lowlevel-Coding / Problem Mit IDT
« am: 19. May 2005, 20:05 »
kann mir denn niemand helfen  :cry:  :?:
275
Lowlevel-Coding / Problem Mit IDT
« am: 18. May 2005, 19:36 »
ich hab jetzt alle Ints bis 32 eingebaut. Und es funktioiert immer noch nicht.
hier ist der neue Code:

; =================[ PIC ]===============================
mov al, 00010001b
out 0x20, al
out 0xA0, al

mov al, 0x20
out 0x21, al
mov al, 0x28
out 0xA1, al

mov al, 00000100b
out 0x21, al
mov al, 0x02
out 0xA1, al

mov al, 00000001b
out 0x21, al
out 0xA1, al

; =================[ Main ]==============================

call ClearScreen

mov esi, Msg_Welcome
call PutString



lidt [idt_pointer]
 
 mov ax,32
  mov bh,0
 div  bh

jmp $
; =================[ End ]===============================
cli ; disable interrupts.
hlt ; halt the cpu.
; =================[ Misc Data ]=========================
CursorPosition dd 0x00000000
Background db 0x0706
Msg_Welcome db ">>Welcome To Easy Operating System", 0
msga db  "AAA"; 0

delay:
   jmp .1
.1:
   jmp .2
.2:
   ret

ClearScreen:
mov ecx, 80 * 25
xor edx, edx
mov ax, 0x0018
mov es, ax
.1:
mov byte [es:edx], ' '
inc edx
push ax
mov al, [Background]
mov byte [es:edx], al
pop ax
inc edx
loop .1
mov word [CursorPosition], 0
mov ax, 0x0010
mov es, ax
retn

PutString:
mov edx, [CursorPosition]
mov ax, 0x0018
mov es, ax
.1:
lodsb
or al, al
jz short .2
mov byte [es:edx], al
inc edx
push ax
mov al, [Background]
mov byte [es:edx], al
pop ax
inc edx
jmp .1
.2:
mov [CursorPosition], dx
mov ax, 0x0010
mov es, ax
retn


retn

;Interrupt ServiceRoutines
int0t db "Division durch 0 !!!",0

Errorhandler:
mov esi, int0t
call PutString
;jmp $
ret


int0x00:
call Errorhandler
retn
int0x01:
call Errorhandler
retn
int0x02:
call Errorhandler
retn
int0x03:
call Errorhandler
retn
int0x04:
call Errorhandler
retn
int0x05:
call Errorhandler
retn
int0x06:
call Errorhandler
retn
int0x07:
call Errorhandler
retn
int0x08:
call Errorhandler
retn
int0x09:
call Errorhandler
retn
int0x0a:
call Errorhandler
retn
int0x0b:
call Errorhandler
retn
int0x0c:
call Errorhandler
retn
int0x0d:
call Errorhandler
retn
int0x0e:
call Errorhandler
retn
int0x0f:
call Errorhandler
retn
int0x10:
call Errorhandler
retn
int0x11:
call Errorhandler
retn
int0x12:
call Errorhandler
retn
int0x13:
call Errorhandler
retn
int0x14:
call Errorhandler
retn
int0x15:
call Errorhandler
retn
int0x16:
call Errorhandler
retn
int0x17:
call Errorhandler
retn
int0x18:
call Errorhandler
retn
int0x19:
call Errorhandler
retn
int0x1a:
call Errorhandler
retn
int0x1b:
call Errorhandler
retn
int0x1c:
call Errorhandler
retn
int0x1d:
call Errorhandler
retn
int0x1e:
call Errorhandler
retn
int0x1f:
call Errorhandler
retn
int0x20:
call Errorhandler
retn
idt_pointer:
   dw idt_end - idt - 1
   dd idt


idt:
;int 0x00
dw int0x00
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x01
dw int0x01
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x02
dw int0x02
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x03
dw int0x03
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x04
dw int0x04
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x05
dw int0x05
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x06
dw int0x06
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x07
dw int0x07
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x08
dw int0x08
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x09
dw int0x09
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x0a
dw int0x0a
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x0b
dw int0x0b
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x0c
dw int0x0c
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x0d
dw int0x0d
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x0e
dw int0x0e
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x0f
dw int0x0f
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x10
dw int0x10
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x11
dw int0x11
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x12
dw int0x13
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x14
dw int0x0f
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x15
dw int0x15
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x16
dw int0x16
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x17
dw int0x17
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x18
dw int0x18
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x19
dw int0x19
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x1a
dw int0x1a
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x1b
dw int0x1b
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x1c
dw int0x1c
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x1d
dw int0x1d
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x1e
dw int0x1e
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x1f
dw int0x1f
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x20
dw int0x20
dw 0x10
dw 0x8E00
dw 0x0000
idt_end:



Wo könnte der Fehler noch sein ?
276
Lowlevel-Coding / Problem Mit IDT
« am: 18. May 2005, 16:05 »
Hallo Mal wider,
Ich habe in meinem OS versucht ne IDT zu erstellen. Nun, zum testen hab ich ersteimal nur für den int0 einen Eintrag erstellt. Zum Testen des Eintrags wollte ich einfach eine Division durch Null machen. Doch bochs sgtartet immer neu mit dem fehler:
Exception():3rd <13> exception with no resolution, shutdown status is 00h, resetting


Und hier noch ein auschnitt aus meinem code:

; =================[ PIC ]===============================
mov al, 00010001b
out 0x20, al
out 0xA0, al

mov al, 0x20
out 0x21, al
mov al, 0x28
out 0xA1, al

mov al, 00000100b
out 0x21, al
mov al, 0x02
out 0xA1, al

mov al, 00000001b
out 0x21, al
out 0xA1, al

mov al,0x0
out 0x21, al
out 0xA1, al
; =================[ Main ]==============================

call ClearScreen

mov esi, Msg_Welcome
call PutString



lidt [idt_pointer]



 
mov ax,330
mov dh,0
div dh



jmp $
; =================[ End ]===============================
cli ; disable interrupts.
hlt ; halt the cpu.
; =================[ Misc Data ]=========================
CursorPosition dd 0x00000000
Background db 0x0706
Msg_Welcome db ">>Welcome To Easy Operating System", 0
msga db  "AAA"; 0

delay:
   jmp .1
.1:
   jmp .2
.2:
   ret

ClearScreen:
mov ecx, 80 * 25
xor edx, edx
mov ax, 0x0018
mov es, ax
.1:
mov byte [es:edx], ' '
inc edx
push ax
mov al, [Background]
mov byte [es:edx], al
pop ax
inc edx
loop .1
mov word [CursorPosition], 0
mov ax, 0x0010
mov es, ax
retn

PutString:
mov edx, [CursorPosition]
mov ax, 0x0018
mov es, ax
.1:
lodsb
or al, al
jz short .2
mov byte [es:edx], al
inc edx
push ax
mov al, [Background]
mov byte [es:edx], al
pop ax
inc edx
jmp .1
.2:
mov [CursorPosition], dx
mov ax, 0x0010
mov es, ax
retn


retn

;Interrupt ServiceRoutines
int0t db "Division durch 0 !!!",0

int0x00:
cli
mov esi, int0t
call PutString
retn
int0x01:
cli
mov esi, int0t
call PutString
retn
int0x02:
cli
mov esi, int0t
call PutString
retn
int0x03:
cli
mov esi, int0t
call PutString
retn
int0x04:
cli
mov esi, int0t
call PutString
retn
int0x05:
cli
mov esi, int0t
call PutString
retn
int0x06:
cli
mov esi, int0t
call PutString
retn
int0x07:
cli
mov esi, int0t
call PutString
retn
int0x08:
cli
mov esi, int0t
call PutString
retn
int0x09:
cli
mov esi, int0t
call PutString
retn
int0x0a:
cli
mov esi, int0t
call PutString
retn

idt_pointer:
   dw idt_end - idt - 1
   dd idt


idt:
;int 0x00
dw int0x00
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x01
dw int0x01
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x02
dw int0x02
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x03
dw int0x03
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x04
dw int0x04
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x05
dw int0x05
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x06
dw int0x06
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x07
dw int0x07
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x08
dw int0x08
dw 0x10
dw 0x8E00
dw 0x0000

;int 0x09
dw int0x09
dw 0x10
dw 0x8E00
dw 0x0000
idt_end:



Kann mir jemand sagen, was ich falsch mache ?

Vielen Dank,

Mit Freundlichen güssen Togi
277
Lowlevel-Coding / Komische Linkerfehlermeldung
« am: 17. May 2005, 20:48 »
Hallo zusammen
Ich hab begonnen meinen Kernel für grub abzuändern. Multibootheader, hab ich. Nun hab ich gehört(und gemerkt), dass grub nur mit dem ELF Format zurecht kommt. Also hab ich meinen kernel mit
nasmw -f elf -o kernel.elf kernel.asm
assembliert und wolltewin mit linken, mit demfolgenden aufruf:
ld kernel.elf -e  start --oformat elf32-i386 -Ttext 0x10000 -o kernel.bin
nun, gibt mir der linker die Folgende Fehlermeldung zurück:
ld: warning: cannot find entry symbol start; defaulting to 00010000
kernel.elf: In function `_start':
kernel.asm:(.text+0x1d): relocation truncated to fit: R_386_16 against `.text'
üld: warning: cannot find entry symbol start; defaulting to 00010000
kernel.elf: In function `_start':
kernel.asm:(.text+0x1d): relocation truncated to fit: R_386_16 against `.text'

Dier erste zeile sagt ja aus, das er das Label _Start  nicht finden kann, obwohl ich es mit _start erstellt habe. Was mache ich falsch ?

Und mit den 2 Nächsten Zeilen, kann ich überhaupt nichts anfangen.
ich habe auch nirgens das label .text definiert.

Kann mir jamand sagen wo der oderdie Fehler liegen könnten   ?


Vielenm Dank

Liebe Grüsse Togi[/code]
278
Lowlevel-Coding / Problem mit lodsb/esi/...
« am: 16. May 2005, 17:28 »
ich hab genau das selbe Problem. wo, hast du den Fehler gefunden ?
279
Offtopic / ASM-Editor
« am: 04. February 2005, 19:06 »
unter Linux bevorzuge ich Kate, der hat auch zeilennummerierung und Syntaxhighlighting
280
Lowlevel-Coding / Problem mit PM
« am: 10. November 2004, 20:58 »
Vielen dank ! hat genfunzt !

Hat mir jemand ein macro zum ausgeben ganzer zeichenketten ?
ich krieg das nicht hin.


Gruss Togi
Seiten: 1 ... 12 13 [14] 15

Einloggen