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

Seiten: 1 ... 8 9 [10] 11 12 13
181
Das Wiki / Re: Verrückter als wir...?
« am: 07. December 2006, 12:05 »
Ich habe vor demnächst mal ne CPU/Computer zu bauen, der in BrainFuck (oder eine an BF angelehnte sprache) programiert wird. Also wirklich nur die Fähigkeit hat, speicher zu adressieren und zu inkrementieren/Dekrementieren. Input wird dann über 8 Taster geregelt (binäre eingabe) ausgabe über ein LCD-Display

Habe mir allerdings noch nicht soo viele gedanken darum gemacht...
182
Offtopic / Problem mit OOP
« am: 07. December 2006, 11:55 »
Ich möchte meine Konsole gerne OO Programmieren, damit ich mehrere "Aktive" stellen habe, an denen ich etwas schreiben kann, und mithilfe eines backbuffers auch verschiedene Stellen überlagern kann.

Allerdings gibts schon beim erstellen einer einfachen Klasse ein Problem:

Das kommt beim Konpilieren: (
warning: cannot find entry symbol start; defaulting to 000010d0Der entsprechende aufruf des Kompilers:
gpp -Os -nostdlib -fno-builtin -fno-rtti -fno-exceptions -o x:\reos\_ckernel\gui\flowbox.obj x:\reos\_ckernel\gui\flowbox.cpp
Was ist falsch, wie mache ich es richtig??
ps.: Wie kann ich die Zeichenbegrenzung eines Befehls unter winXP umgehen??
183
Offtopic / Re: VMware nutzen, aber keine vmx-Datei!?
« am: 13. November 2006, 20:41 »
Ich weiß, das bochs nur nVidia-Karten (32Bit) simuliert, außerdem habe ich nur 1 BIOS, das ich auswählen kann...
Und wo kann ich einstellen, ob ich eine 32Bit Intel-CPU oder eine 46Bit AMD hab?? (es ist mir klar, das MS Virtual PC kein 64Bit drauf hat)
184
Offtopic / Re: VMware nutzen, aber keine vmx-Datei!?
« am: 13. November 2006, 16:50 »
m...
Also ich habe 512 MB Arbeitsspeicher, mein OS "soll" für 128MB Optimiert werden (liegt an der Architektur bzw den Besonderheiten) zusammen mit winXP und ner einfachen IDE/Texteditor sollte das passen...
Debuginformationen sind nicht alzu wichtig, da ich mithilfe des Systems selber an einige informationen drannkomme, (fehlerhafter OP-Code o.ä. währe natürlich trotzdem interessant)

Der grund warum ich mir überhaupt VMware installiert habe, ist der, das ich unter bochs nicht so "frei" bin (glaube ich zumindest), ich möchte verschiedene BIOSse testen (mit VESA2 / ohne VESA2) oder auch verschiedene Prozessoren (32-bit / 64-bit) am liebsten währe noch die graka (nVidia / ATI)...
185
Offtopic / VMware nutzen, aber keine vmx-Datei!?
« am: 12. November 2006, 11:16 »
Hi
Ich habe jetzt VMware auf meinem PC installiert. Wenn ich es starten möchte, muss ich eine "Virtual Machine Configuration File" auswählen. Es existiert allerdings keine solche Datei....
Wo bekomme ich sowas her??
186
Offtopic / Re: Der Editor "Context"!?
« am: 10. November 2006, 16:40 »
Wobei ich finde, das man ConText und Vim nicht so direkt vergelcihen kann.
vim hat ein noch umfangreicheres SyntaxHighlightign-System, zudem kann man vim problemlos ohne Maus steurnern (über Befehle) und da vim soooo verbreitet ist, gibst auch zahlreiche scripte / macros / plugins...

Aber als "normaler" Texteditor, ist ConText nicht schlecht, solange man keine exotische wünsche hat... 
:mrgreen:
187
Offtopic / Re: Der Editor "Context"!?
« am: 06. November 2006, 14:44 »
Habe mir mal ConTEXT angekuckt...
Erfüllt alle meine Wünsche... Super Editor, vorallem das Feature, eigene Syntaxschemen zu erstellen.
Wird mein neuer standard-editor ;)

ps.: Habt ihr auch die Probleme, das die Toolbar nicht richtig dargestellt wird?!?
188
Offtopic / Re: Der Editor "Context"!?
« am: 04. November 2006, 22:07 »
Ich nehme DEV-CPP 5.
Allerdings nur als Editor, die IDE-Funktionen nutze ich nicht.
Mir gefallen einfach die Features in der Text"verarbeitung" und das Syntaxhighlightig.
Bin aber auch Vim nicht abgeneigt...
189
OS-Design / Re: Schwieriges System^^
« am: 26. October 2006, 17:48 »
Es kommt halt auf die art, bzw aufgabe, des Systems an.
Ein System wie Linux/Windows, also ein universal-OS das einfach zu bedienen sein soll, braucht natürlich ein umfangreichen Dateisystem.

Aber wenn das OS nur dazu dient, z.B. eine Selbstentwickelte Hardware anzusteuern, oder der user überhaupt nicht mit Dateien in Kontakt kommen soll, währe ein Dateisystem überflüssig.

190
OS-Design / Re: Schwieriges System^^
« am: 26. October 2006, 14:36 »
@Coffee: [...] Ohne Dateisystem ist das OS schrott bzw. wird es schrott sein. Ein OS ohne Dateisystem ist in meinen Augen kein OS. Denn ein großes Merkmal eines OS ist das Dateisystem. [...]

bitmaster

1. Das ist völlig abhängig wofür das OS zuständig sein soll. FS oder kein FS ist für mich ne frage wie Multi- oder Single- Tasking.

2. Ich würde eher das lesen/schreiben von Dateinen als DAS Merkmal von OSs betrachten, weniger das besitzen eines Dateisystemes.

3. Allerdings ist "Dateisystem" recht dehnbar. Ist nooooooooos Vorschlag schon ein FS?? MUSS ein FS Verzeichnisse unterstützen?? Muss ein FS die mögloichkeit beieten, Dateien zu "Zerteilen"??. Muss ein FS den Dateien Namen zuweisen (bzw anderrum)??

Ich denke, das es teilweise reicht, zu sagen: "Hallo OS: Ich möchte die Daten von Sektor 1313 an die adresse 0xAFFE laden und ausführen."

Zur sprache:
Syntax:
Befehle:
BEFEHL <arg 1> <arg 2> ... <arg n> (BEFEHLENDE)

Sprünge
LABEL 'name'
in eine Struktur (Liste) den Namen speichern, und ihm die Zeilennummer zuweisen
GOTO 'name'

In der Liste nach dem Namen suchen, die entsprechede Zeilennummer nehmen und zu dieser Zeile Springen
!!Vor dem Interpretieren des 1. Befehls muss die Gesammte datei durchgelesen werden um alle Label zu erkennen!!

Achja!
Überleg dir auch, wie du das mit Konstanten-rechnungen machen willt.
z.B. 3+5*2-(2+4)
Soll das möglich sien, oder soll man im ASM-Style dafür funktionen nutzen (ADD, SUB, ...)

Das ist natürlich nur eine Möglichkeit von 1000.
191
Lowlevel-Coding / Re: "Applikation" ausführen?
« am: 24. October 2006, 17:32 »
Ich kann jetzt das Programm laden, und auch ausführen.

daraus ergeben sich folgende fragen:
 - was muss ich beachten??
 - Mit welchen Problemem muss ich rechnen??
 - Wie kann ich einen int-wert zurückgeben, bzw weiterleiten??

call _main
;Hier möchte ich den rückgabewert von main verarbeiten, bzw zurückgeben (an das OS)

int main()
{
 return irgendwas;
}
192
Lowlevel-Coding / "Applikation" ausführen?
« am: 21. October 2006, 13:27 »
Was ich möchte:
Eine *.bin-datei, die an einer belibigen adresse liegt (abhängig von link-script) soll ausgeführt werden. Dieser code soll/muss kernel-rechte haben.

Wie ich es in etwa machen möchte:
Ich habe im kernel eine Funktion "int exec(DWORD address);" an der ich die Addresse der *.bin übergebe. Unter dieser addresse ist der header, mit einprungadresse usw...
Jetzt möchte ich einem Funktionsprototyp "int (*funktion)(void)" diese adresse geben, und ausführen (int error = funktion();)

Wichtiges zum OS
- Singel-Tasking
- Anwendungen sollen kernel-rechte haben

Frage:
Wie realisiere ich das??
was muss ich beachten??
Mit welchen Problemem muss ich rechnen??

ps.: mein ansatz:
Aufruf:
int (*reosapp)(void);

int execute(DWORD address)
{
 reosapp = (int (*)())address;
 int retvalue = reosapp();
 return retvalue;
}

Die Applikation:
[Bits 32]
jmp start

;;HEADERDATEN
 headersize   db 14         ; 1 Byte
 minosversion db 00,00,03   ; 3 Byte (REOS 00.00.03)
 progversion  db 00,01,00   ; 3 Byte (major,minor,patch)
 progname     db "Test.app" ; 8 Byte
;;

start:

  ;;;DEBUG;;;
  mov edi, 0xB8000
  mov [edi], byte 0x0C
  inc edi
  mov [edi], byte '#'
 
  ret
193
Lowlevel-Coding / Problem beim Linken
« am: 03. September 2006, 07:59 »
** Bitte löschen **
194
Lowlevel-Coding / Problem beim laden einer FD im RM
« am: 06. August 2006, 17:10 »
Ich habe die Diekette jetzt formatiert, und dann gründlichst mit ScanDisk geprüft.
Es wurde zwar kein Fehlerhafter Sektor gefunden, aber jetzt läufts :)

Danke für den hinweis, an hardware-fehler habe ich überhaupt nicht gedacht...
195
Lowlevel-Coding / Problem beim laden einer FD im RM
« am: 05. August 2006, 16:18 »
Mit hilfe des BIOS geht das auch anders (mein MenuetOS wird die Diskette ja auch anfangs geladen.

Deshalb habe ich das ganze Daten am Anfang der Funktion.
Die brauche ich später um mit int 0x15 (Funktion 0x87 (Copy Extended memory)) den gelesenen Sektor an eine addresse > 1MB zu schreiben.

Es wird ein Sektor gelesen, der wird dann verschoben.
196
Lowlevel-Coding / Problem beim laden einer FD im RM
« am: 05. August 2006, 11:53 »
Hi
mit diesem code möchte ich den inhalt der gesamten Diskette (1.44MB) in den RAM laden (nach 0x100000)
In bochs läuft das auch wunderbar, allerding nicht auf einem echten PC.

Befor ein Sektor geladen wird, wird der LBA und CHS-Wert auf den Bildschirm ausgegeben. Daheir weiß ich, das es an folgender stelle probleme bei int 0x13 gibt:

LBA: 0x7E
C: 0x03
H: 0x01
S: 0x01

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; loaddisk
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ah -> RamDisk (1..8)
; al -> FloppyDisk
loaddisk:
  jmp ld.start

  var_movedesc:
  db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; used by BIOS
  db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; used by BIOS
;  db 0x02,0x00                               ; source segment length
;                                             ; (2*cx-1 or greater)
    db 0xFF,0xFF         ; MeOS
  db 0x00,0xA0,0x00    ; 00A000 24-bit linear source address                 ; E 130506
  db 0x93,             ; source segment access rights (93h)
  db 0x00,0x00         ;
;  db 0x02,0x00         ; destination segment length
;                       ; (2*cx-1 or greater)
    db 0xFF,0xFF         ; MeOS
  db 0x00,0x00,0x10    ; 100000 24-bit linear destination address
                       ; Von hier muss die RD später in ihre Richtige
                       ; Position kopiert werden (im C-Kernel)
  db 0x93              ; destination segment access rights (93h)
  db 0x00,0x00         ;
  db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; used by BIOS
  db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; used by BIOS

  db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; MeOS
  db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ; MeOS


  var_rd       db 0x00
  var_fd       db 0x00
  var_addrbx   dw 0xA000 ; Hier soll int 0x13 hinschreiben
  var_addres   dw 0x0000 ; (0x1:A000) (es:bx
  var_diskaddr dw 0x0000 ; Lineare Sectoraddresse (0x0000 .. 0x0B40)

  ld.start:
    ; Laufwerke sichern
    mov [var_rd+os], ah
    mov [var_fd+os], al

    ; FD Reseten (int 0x13>0)
  ld.reset:
    push ds             ; DS sichern
    xor  ax, ax
    mov  dl, [var_fd+os]; Floppydrive resetten
    int  0x13
    pop  ds
    or   ah, ah
    jnz  ld.reset       ; Bei fehler, widerholen

  ld.loadfd:
    mov  ax, [var_diskaddr+os] ; Lineare Sektoradresse
;cl=Sector
;dh=Head
;ch=Cylinder    
    call Lsn2Chs
call writeuserinfos    ; ES WIRD NIX GEÄNDERT, nur die Werte ausgegeben
    mov  dl, [var_fd+os]       ;Laufwerk
    ; Adresse im RAM
    mov  ax, [var_addres+os]
    mov  es, ax
    mov  bx, [var_addrbx+os]
    ; Sonstige einstellungen
    mov  ah, 0x02           ; Funktion 2 (lesen)
    mov  al, 0x01           ; nur einen Sektor lesen
    int  0x13
    or   ah, ah
    ;jnz   ld.loadfd          ; Fehler? Wiederholen
    jnz  ld.error           ; Fehlermeldung ausgeben
;;;; HIER WIRD ABGEBROCHEN !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;;;;
 
  ; Daten verschieben ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ld.move:
    mov  cx, 0x0100         ; [WORD] => 0x200 Byte => 1 Sektor
    mov  si, var_movedesc+os ; Offsetadresse
     mov  ax, 0x1000        ; Segmentadresse
     mov  es, ax
    xor  al, al
    mov  ah, 0x87           ; Copy Extended memory
    int  0x15               ; move
    or   ah, ah             ; ah == 0?
    jnz  ld.error
   
  ; Neue Werte für ld.loadfd und ld.move errechen ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ld.calc:
    mov  ax, [var_diskaddr+os]
    cmp  ax, 0x0B40-1
    jz   ld.ende            ; Ende erreicht??
    inc  ax
    mov  [var_diskaddr+os], ax
    ; desc bearbeiten (zieladresse) ;(+26)
    mov  al, [var_movedesc+os+27] ;Lower  part
    mov  ah, [var_movedesc+os+28] ;Higher part
    add  ax, 0x02                 ; Einen Sektor drauf-addieren
    mov  [var_movedesc+os+28], ah ;Higher part
    mov  [var_movedesc+os+27], al ;Lower  part

    jmp  ld.loadfd
   

  ; Fehler
  ld.error:
    mov  si, str_error+os
    call writestring
    call getkey
    jmp ld.ende

  ld.ende:
    mov  dx, 0x03F2         ; fd Adresse
    mov  al, 0
    out  dx, al             ; fd-motor aus

    retn


Wo ist der Fehler??
bzw wo muss ich ihn suchen??

ps.: Es wird immer 1(!) Sector geladen, und dieser dann in den höheren Speicherbereich kopiert.
197
Offtopic / Tool zum bearbeiten vom img-dateien
« am: 20. May 2006, 22:00 »
Hi
Kennt jemand ein gutes tool mit dem ich z.B. Dateien an eine *.img datei anhängen / einfügen kann??
z.B. ich habe eine 50 Sektoren große Datei, , möchte diese aber auf 200 Sektoren vergrößern, und in Sektor 100 & 101 eine Datei einfügen.

Gibts da was fertiges, oder muss man sich sowas selber schreiben :)
198
Hi
Wenn ich per Interrupt daten von einer Diskette lade, muss ich die Zieladresse in es:bx angeben.

Ich möchte jetzt eine Ganze Diskette in den Arbeitsspeicher laden (0x168000 Byte)
Wie mache ich das jetzt mit dem Errechnen der Neuen adresse in "bx" und "es"??

denn 0xFFFF (Offsetadresse) / 512 = 127,998 also kann ich 127 Sektoren laden, befor ich "es" erhöhen muss, allerdings bleiben dann 511 Byte pro Segment  über...


ps.: Wenn ich mich einlogge bekomme ich immer ein 404.
199
Lowlevel-Coding / Floppy Treiber: Was denn nun??
« am: 11. April 2006, 10:15 »
OK, Danke erstmal
200
Lowlevel-Coding / Floppy Treiber: Was denn nun??
« am: 10. April 2006, 13:32 »
Hi
Ich hab zZ das Problem einen Floppytreiber zu schreiben.
Dazu habe ich einige Fragen/Probleme.

1. DMA
Mein OS ist/soll NICHT Multitasking-fähig sein, darum möchte ich auf den DMA Controller verzichten.
Ich habe in einigen Beriträgen in diesem Forum gelesen, dass das nicht möglich sei, aber auch, das win98 auf den DMA verzichtet.
Geht das jetzt ohne, oder nicht?? Wenn ja, wie mache ich das?

2. Paging
Wenn man mit dem DMA Controller arbeitet, muss man die Page angeben. Was mach ich, wenn ich kein Paging verwende??

3. IRQ
Im DOR (bit 3) kann ich "DMA and IRQ channel" aktivieren/deaktivieren. Wenn ich jetzt DMA deaktiviere, wird doch auch automatisch IRQ6 deaktiviert, kann man das verhindern??

4. Bochs & PC
Ich kann den Motor des Laufwerks bereits unter Bochs steuern, aber nicht auf meinem echten PC. Ich habe gelesen, dass das "normal" sei. Aber woher weiß ich was falsch ist?? ich kann doch nicht jedes mal meinen PC neu satrten.
Seiten: 1 ... 8 9 [10] 11 12 13

Einloggen