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.


Themen - mineorbit

Seiten: [1]
1
Offtopic / Hilfe bei Hardware problem
« am: 30. November 2013, 13:19 »
Hallo LowLevel Community,
Vor kurzem habe ich mir eine neu Nvidia geforce gtx 770 besorgt und wollte diese gegen meine gt 630 austauschen.
Dpi Kabel ist verbunnden, sie sitzt fest im sockel und alle kabel auf dem mainborad sind fixiert. Wenn ich meinen PC aber boote, wird auf dem
Bildschrim nur ein großes D und ein blinkender Cursor dargestellt, darauf folgt keine weiter meldung. Wisst ihr wie ich das Problem beheben kann?
Das Modell der grafikkarte:
http://www.palit.biz/palit/vgapro.php?id=2158
Über antworten würde ich mich sehr freuen,
Mineorbit
2
Softwareentwicklung / Komplexe idee für leistungsstream
« am: 15. October 2013, 18:45 »
Hallo LowLevel Community!,


Mein Freund und ich spielen zurzeit ein computerspiel. Allerdings ist sein laptop ziemlich schwach und er kann nur mit ganz niedrigen einstellungen mit 14 frames spielen. Für meinen high end pc ist das kein problem, also bin ich auf die idee gekommen, dass ich ihm per stream die leistung meines pc, keinen speicher zur verfügung stelle und er so auf seinem laptop flüssig, nur übers netz auf kosten der leistung meines Pcs zockt.
Wäre das möglich zu programmieren oder noch besser gibt es das bereits?
Ich wäre für eure Hilfe sehr dankbar!
Mit freundlichen Grüßen;
Mineorbit
3
Lowlevel-Coding / kbc hilfe
« am: 04. July 2013, 21:22 »
Hallo lowlevel community!
Hoffentlich störe ich euch nicht mit dem Thema,allerdings habe ich 3 Fragen zur kbc:
1:Zeichen ausgeben
Letztes mal habe ich euch gefragt wie man den Keycode die Zeichen umwandle, allerdings, kann es sein das irgendwas falsch mache.
Das ganze funktioniert doch so; scancode -> Keycode -> Zeichenkette ?
Wie trage ich die Zeichen richtig in den Array ein?
Das ist jetzt so bisher:
#include "console.h"
#include "keyboard.h"
#include "stdint.h"
char list[] = {
"01"
};
char getsym(int keycode)
{
if(keycode == 0x1c)
{
kexit();
}
  return list[keycode];
}
}
static uint8_t sc_to_kc[][128] = {
{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 84, 00, 00, 86, 87, 88, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 },  { 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 96, 97, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 99, 00, 00, 100, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 102, 103, 104, 00, 105, 00, 106, 00, 107, 108, 109, 110, 111, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00, 00 }, }; 
uint8_t translate_scancode(int set, uint16_t scancode)
{
uint8_t keycode = 0;
switch (set) { 
case 0:
 keycode = sc_to_kc[0][scancode];
 break;
case 1:
  keycode = sc_to_kc[1][scancode];
 break;
   switch (scancode) {
  case 0x451D: keycode = 119; break; default: keycode = 0x0; }; break; }
if (keycode == 0) {
 } return keycode;
}
 
void init_keyboard(void);
static void keyboard_command(uint8_t command);
void keyboard_interrupt(void);
void init_keyboard(void)
{
 
    while (inb(0x64) & 0x1) {
        inb(0x60);
    }   
 
 
    keyboard_command(0xF4);
}
 
static void keyboard_command(uint8_t command)
{
   
    while ((inb(0x64) & 0x2))
{
}
    outb(0x60, command);
}
void keyboard_interrupt(void){
     char text;
    uint8_t scancode;
    int keycode;
    uint8_t break_code = 0;
 
    // Status-Variablen fuer das Behandeln von e0- und e1-Scancodes
    static int     e0_code = 0;
    // Wird auf 1 gesetzt, sobald e1 gelesen wurde, und auf 2, sobald das erste
    // Datenbyte gelesen wurde
    static int      e1_code = 0;
    static uint16_t  e1_prev = 0;
 
    scancode = inb(0x60);
 
    if ((scancode & 0x80) &&
        (e1_code || (scancode != 0xE1)) &&
        (e0_code || (scancode != 0xE0)))
    {
        break_code = 1;
        scancode &= ~0x80;
    }
 
    if (e0_code) {
        if ((scancode == 0x2A) || (scancode == 0x36)) {
            e0_code = 0;
            return;
        }
 
        keycode = translate_scancode(1, scancode);
        e0_code = 0;
    } else if (e1_code == 2) {
     /*
        e1_prev |= ((uint16_t) scancode <<;
        keycode = translate_scancode(2, e1_prev);
        e1_code = 0;
*/
    } else if (e1_code == 1) {
       
        e1_prev = scancode;
        e1_code++;
    } else if (scancode == 0xE0) {
        // Anfang eines e0-Codes
        e0_code = 1;
    } else if (scancode == 0xE1) {
        // Anfang eines e1-Codes
        e1_code = 1;
    } else {
        // Normaler Scancode
        keycode = translate_scancode(0, scancode);
       
    }
      text = getsym(keycode);
        if(break_code == 0)
 {
 
        kprintf("%c",text);
  }
        else
 {
       
 }     
}
 

2:Speziell Zeichen abfragen
Im Code steht:
if(keycode == 0x1c)
{
kexit();
}
kexit habe ich als Funktion gemacht um den PC runter zu fahren
Damit möchte ich erreichen ,dass beim Tasten druck von Enter der Computer heruntergefahren wird, dies funktioniert aber nicht,wie würde ich das Problem lösen?
3:Lesechar
Ansonsten, hätte jemand von euch einen Denk anstoß um ein char namens kreadf() zu machen?Das wäre spitze  :grin:
Freundliche Grüße,
 Mineorbit!
EDIT:
3 ist gelöst,ich hatte nur einen syntaxfehler gemacht.
 
4
Lowlevel-Coding / kbc scancode translate
« am: 30. May 2013, 21:35 »
Hallo Low Level Community,
Wie im Betreff steht, würde ich gerne den scancode ,den ich erhalte ,translaten.
Dazu habe ich in eurem zu gehörigen Tutorial gleich hilfe gefunden,die aber irgendwie nicht funktioniert,
GCC sagt mir:
keyboard.c: In function ‘keyboard_interrupt’:
keyboard.c:31:9: warning: implicit declaration of function ‘translate_scancode’ [-Wimplicit-function-declaration]
keyboard.c: At top level:
keyboard.c:34:9: error: conflicting types for ‘translate_scancode’
keyboard.c:31:24: note: previous implicit declaration of ‘translate_scancode’ was here

Mein Code:
//Keyboard.c
#include "console.h"
#include "keyboard.h"
#include "stdint.h"

void init_keyboard(void);
static void keyboard_command(uint8_t command);
void keyboard_interrupt(void);
void init_keyboard(void)
{
 
    while (inb(0x64) & 0x1) {
        inb(0x60);
    }   
 
 
    keyboard_command(0xF4);
}
 
static void keyboard_command(uint8_t command)
{
   
    while ((inb(0x64) & 0x2))
{
}
    outb(0x60, command);
}
void keyboard_interrupt(void){
 int scancode = inb(0x60);
        char keycode = translate_scancode(1,scancode);
 kprintf("%c",keycode);
}
 
 
Falls euch das hilft ohne die Funktion translate, gibt er mir bei z.B als scancode aus:1c 9c
Mein Frage wäre:
-muss ich uint8 translate_scancode speziell programmieren, oder ist das eine fertige Funktion aus dem Compiler oder einer Header file?
-Hab ich irgendwas mit den scancodes falschgemacht?
 

 
Ich freue mich auf Antworten!
Mineorbit

 
5
Softwareentwicklung / String mit Syscall übergeben
« am: 17. May 2013, 21:58 »
Hallo Lowlevelcommunity!,
Inzwischen stelle ich hier viel zu viele Fragen(die zum größten teil sinnlos sind).
Aber diesmal habe ich eine Frage bei der ich nicht mehr weiter weiß:
Es gibt ja die Funktion syscall die durch Softwareinterrupt 0x30 auslgelößt wird.
Nur kann ich dadurch bissher nur Interger übergeben. Wie kann ich nun andere Typen übergeben?
Viele Grüße und Danke für die bissherigen Antworten,
Mineorbit
6
Softwareentwicklung / SoftwareInterrupt in idt eintragen
« am: 15. May 2013, 17:44 »
Hallo Low Level Community,
Im letzten Thread habe ich euch gefragt wie man einen Syscall einrichtet, was dann auch geklappt hat.
Nachdem ich vor einer halben Stunde meinen PC eingeschaltet habe ist er abgestürzt und ich musste meine Systemwiederherstellung anschmeißen.(Mein eigentliches Betriebssystem ist Windows 7 darin aber in meinem Emulator ubuntu).Jetzt sind fast alle meine Dateien weg,einschließlich meines ordner in dem ich das kernel und test.bin untergebracht habe.Jetzt habe ich mir alles nachgedownloadet habe, ist nun der Interrupt Softwareinterrupt 0x30 weg. Wo genau müsste ich den nochmal nachtragen? also in welcher Datei und in welcher zeile?
Mineorbit
 
7
Softwareentwicklung / Paging Error 14
« am: 09. May 2013, 11:18 »
Hallo LowLevel Community,
Nachdem ich jeden Schritt eures Tutorials befolgt habe, hat alles geklappt.
Nur ab dem Paging tritt immer Exception 14 auf die ja mit dem Paging zusammenhängt.
Wie kann ich diesen Fehler verhindern. Über eine Antwort freue ich mich sehr.
(Entschuldigung falls ihr dieses Thema schon hattet!)
Mineorbit
8
Softwareentwicklung / Kernel + Grub = ?
« am: 15. April 2013, 19:24 »
Hallo liebe LowLevel Community,

Ich habe momentan ein kleines Problem.
Ich habe mir ein image mit grub beladen und dann einen einfachen kernel mit nasm gemacht der mir eigentlich "Hallo Welt" ausgeben sollte.
Leider hatdas nicht geklappt.
Die Tutorials von eurer Seite wie C Kernel mit Grub hab ich mir durch gelesen,wollte das Kernel aber nur in assembler machen.
Wisst ihr wie ich das umsetzten kann?.
(P.S Eine Erklärung zum Kompilieren wäre nett da ich da noch blutiger Anfänger bin)

Mineorbit
Seiten: [1]

Einloggen