 |
JLI Spieleprogrammierung
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
C++progging Senior JLI'ler

Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
Verfasst am: 14.10.2005, 15:43 Titel: |
|
|
Ich fände folgendes interessant:
ein self-made-OS mit :
1.Grafischer Benutzeroberfläche
2.Integriertem C++ compiler
3.inkl. Bildbearbeitungsprogramm wie Paint oder PaintShop Pro 7
4.Einem eigenen SDK
5.Aber auch kompatiblität zu DirectX(Win-Games auf RetrOS o.ä] |
|
Nach oben |
|
 |
Cyianor Super JLI'ler

Anmeldedatum: 23.12.2002 Beiträge: 452
Medaillen: Keine
|
Verfasst am: 14.10.2005, 16:15 Titel: |
|
|
C++progging hat Folgendes geschrieben: | Ich fände folgendes interessant:
ein self-made-OS mit :
1.Grafischer Benutzeroberfläche
2.Integriertem C++ compiler
3.inkl. Bildbearbeitungsprogramm wie Paint oder PaintShop Pro 7
4.Einem eigenen SDK
5.Aber auch kompatiblität zu DirectX(Win-Games auf RetrOS o.ä] |
Klar, ganz simpel, innerhalb von zwei Tagen machbar
 |
|
Nach oben |
|
 |
AFE-GmdG JLI MVP


Alter: 45 Anmeldedatum: 19.07.2002 Beiträge: 1374 Wohnort: Irgendwo im Universum... Medaillen: Keine
|
Verfasst am: 14.10.2005, 16:19 Titel: |
|
|
C++progging hat Folgendes geschrieben: | Ich fände folgendes interessant:
ein self-made-OS mit :
1.Grafischer Benutzeroberfläche
2.Integriertem C++ compiler
3.inkl. Bildbearbeitungsprogramm wie Paint oder PaintShop Pro 7
4.Einem eigenen SDK
5.Aber auch kompatiblität zu DirectX(Win-Games auf RetrOS o.ä] | Sonst noch Wünsche? - Also mein Betriebssystem müsste mir mindestens noch Kaffee kochen können.
Klartext:
- Ein Betriebssystem erstellt man nicht mal so einfach - was nicht heisst, dass es gar nicht geht.
- Um DirectX-Programme ausführen zu können, müsste Binärkompatiblität mit Windows bestehen und man müsste die komplette Win-API mit (emulieren OR verarbeiten)
- Sind Compiler und Programme nicht Teil des Betriebssystemes - sondern Anwendungssoftware, die extra programmiert werden müssen
- Benötigt man für sein eigenes Betriebssystem Treiber für die angeschlossenen Geräte - welche sicherlich nicht die Hersteller liefern. Also muss man das ebenfalls selbst übernehmen.
- Bekommst du vom Hersteller einer bestimmten Hardware nicht so ohne weiteres die Spezifikationen der Hardware, die du aber benötigst, um einen Treiber dafür zu entwickeln.
Also bleibt man mit seinen eigenen Betriebssystemen auf Console und Text beschränkt und ich bezweifle schon den Plattenzugriff.
Zumindest könnte man dieses Betriebssystem in einem Virtuellem PC ganz gut testen  _________________
CPP: | float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;} |
|
|
Nach oben |
|
 |
C++progging Senior JLI'ler

Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
Verfasst am: 14.10.2005, 16:46 Titel: |
|
|
Hab aber auch nur gepostet ,was ich toll fänd.
Mein Cousin hat ein OS Mit einfacher grafischer Oberfläche geproggt.
(Bestimmt net alleine)Es heißt LNX-BBC(LiNuX-Bootable Buissnes Card |
|
Nach oben |
|
 |
Fallen JLI MVP


Alter: 41 Anmeldedatum: 08.03.2003 Beiträge: 2860 Wohnort: Münster Medaillen: 1 (mehr...)
|
Verfasst am: 14.10.2005, 16:51 Titel: |
|
|
Soweit ich weiss ist dies eine stark abgespeckte Linux distribution.
http://www.lnx-bbc.org/ _________________ "I have a Core2Quad at 3.2GHz, 4GB of RAM at 1066 and an Nvidia 8800 GTS 512 on Vista64 and this game runs like ass whereas everything else I own runs like melted butter over a smokin' hot 18 year old catholic schoolgirl's arse." |
|
Nach oben |
|
 |
xardias JLI Master

Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 15.10.2005, 08:35 Titel: |
|
|
Zitat: | The LNX-BBC is a miniature Linux-based GNU distribution, small enough to fit on a CD-ROM that has been cut, pressed, or molded to the size and shape of a business card.
It provides a portable rescue system or temporary workstation OS for any system with a CD-ROM drive. |
Stimmt, das ist ein abgespecktes Linux system.
Das was ich gebastelt habe ist überhaupt kein vergleich zu solchen dingen.
Das einzige was dieses ChaOS kann ist momentan ein paar konsolenbefehle verarbeiten und GANZ spärliches memory managment. mehr habe ich bisher noch nicht hin bekommen, da mir die zeit dazu fehlt und ich den kram unheimlich schwierig finde habe ich daran nicht weiter gebastelt.
war aber unbedingt eine erfahrung wert
AFE:
Plattenzugriff... reden wir in 5 jahren nach meinem studium nochmal drüber *g*
das will ich mir momentan noch nicht antun  |
|
Nach oben |
|
 |
C++progging Senior JLI'ler

Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
|
Nach oben |
|
 |
xardias JLI Master

Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 27.10.2005, 09:19 Titel: |
|
|
ich hab noch eine version im netz. ich weiß nicht genau welche version es ist aber bittesehr
http://files.xardias.net/projects/chaos/
die version sollte man mit mingw kompilieren können (wenn nicht, dann muss man mit visual c++ 7.1 kompilierne und mit mingw linken). |
|
Nach oben |
|
 |
C++progging Senior JLI'ler

Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
|
Nach oben |
|
 |
xardias JLI Master

Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 30.10.2005, 14:04 Titel: |
|
|
du musst dazu bochs installieren. http://bochs.sf.net
bochs ist eine Virtual Machine, womit den den Kernel starten kannst ohne den PC zu booten. ansonsten kannst du auch mit einem geeigneten Tool (kann ich bei Gelegenheit raus suchen) den Kernel auf eine Diskette kopieren und damit den PC booten. |
|
Nach oben |
|
 |
C++progging Senior JLI'ler

Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
|
Nach oben |
|
 |
abc_d JLI Master Trainee

Alter: 35 Anmeldedatum: 27.01.2003 Beiträge: 615
Medaillen: Keine
|
Verfasst am: 31.10.2005, 17:31 Titel: |
|
|
Gute Problembeschreibung Infos bitte...
Übrigens: das mit der Signatur, muss das sein?  _________________ http://mitglied.lycos.de/sarti/linuxisevil.gif Linux is evil - get the fact.
Never touch a running System - der Systemling |
|
Nach oben |
|
 |
C++progging Senior JLI'ler

Alter: 31 Anmeldedatum: 03.10.2005 Beiträge: 244 Wohnort: Sauerland Medaillen: Keine
|
Verfasst am: 01.11.2005, 14:24 Titel: |
|
|
BlackLordOfDragons hat Folgendes geschrieben: | Gute Problembeschreibung Infos bitte...
|
Ok,ich hab das runtergeladen,dannach hab ich den ganzen bochs-ordnerinhalt in den Ordner "NostalgicOSsrc" kopiert und dann hab ich
"run" gestartet.
Da stand: das DOS hat Folgendes geschrieben: |
.../Eigene Dateien/nostalgicOSsrc/bin>bin cd bin
datei kann nicht geöffnet werden
.../Eigene Dateien/nostalgicOSsrc/bin>bochsrc.bin
xrc |
... _________________ http://gtsp.gt.funpic.de
NEU: http://gtspforum.gt.funpic.de - das dazugehörige board
ProjectX for PSP - Jetzt runterladen!!
unter http://www.pspsource.de/news.php?extend.4537 |
|
Nach oben |
|
 |
xardias JLI Master

Alter: 38 Anmeldedatum: 28.12.2003 Beiträge: 804 Wohnort: Palo Alto, CA Medaillen: Keine
|
Verfasst am: 01.11.2005, 15:27 Titel: |
|
|
normalerweise sollte bochs sich in windows für den dateityp .bxrc eintragen.. scheint er wohl nicht gemacht zu haben bei dir..
Also versuchen wir es nochmal ganz in ruhe:
- Lad dir http://files.xardias.net/projects/chaos/NostalgicOS.zip und entpacke es (NICHT die src zip. die musst du dir sebstverständlich noch selbst kompilieren.)
- Lad dir Bochs und installiere es
- Pack den pfad zur bochs.exe in deine PATH environment variable (Systemsteuerung->system->erweitert->umgebungsvariablen glaube ich. bin grad unter linux)
- ändern die run.bat wie folgt um:
Code: | cd bin
bochs bochsrc.bxrc |
dann die run.bat starten und du solltest nen schwarzes fenster mit dem bootenden os haben. |
|
Nach oben |
|
 |
LordHoto JLI'ler

Alter: 35 Anmeldedatum: 27.03.2003 Beiträge: 137 Wohnort: Gelnhausen Medaillen: Keine
|
Verfasst am: 03.11.2005, 23:33 Titel: |
|
|
hier mal nen FAT12 bootloader, falls er interesse hat, ist aber in ein paar minuten zusammengehackt also nix besonderes zu erwarten, hat hier einwandfrei funktioniert, fehler also selber fix0rn:
Code: |
;
; FAT12 bootloader
; (c) 2005 by Johannes Schickel
; use NASM to assemble
; nasm -f bin boot.asm
;
[bits 16]
[org 0]
jmp short start
nop
dOEMName db "mkdosfs",0
dBytesPerSec dw 512
dSecPerCluster db 1
dReservedSecs dw 1
dNumFats db 2
dMaxRootEntries dw 224
dTotalSectors dw 2880
dMDB db 0xF0
dFatSize dw 9
dSecPerTrack dw 18
dNumHeads dw 2
dHiddenSec dd 0
dUnk1 dd 0
dUnk2 db 0
dUnk3 db 0
dBootId db 0x29
dVolID dd 0x4367BF8E ; should be replaced
dVolumeName db 0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20
dFatType db "FAT12",0x20,0x20,0x20
;
; setups all segments for usage
;
start:
mov ax, 0x07C0 ; setup ds and es
mov ds, ax
mov es, ax
mov [dBootDrive], dl ; save the boot drive
jmp 0x07C0:go
data:
dBootDrive db 0
dSecsOfFileTable dw 14
dFirstFatSec dw 1
dFirstRootDirSec dw 19
dFirstDataSec dw 34
dMaxFatEntries dw 384
aBootloader db "Init",0
aLoading db "Loading",0
aDot db ".",0
aRebootMessage db " ERROR, press any key to reboot",0
aFilefound db "Ok",13,10,0
aBootUpFile db "_STARTUPBIN" ; this filename will be searched ("_STARTUP.BIN")
;
; prints out message at ds:si
; si value will be killed by this
;
print:
push ax
push bx
mov ah, 0x0E
mov bx, 7
print_loop:
lodsb
cmp al, 0
je print_end
int 0x10
jmp print_loop
print_end:
pop bx
pop ax
ret
;
; loads a sector to es:bx
; input:
; es:bx: destination
; cx: start sector
;
loadSec:
pusha
call logicSecToDriveSec
mov ax, 0x0201
mov dl, [dBootDrive]
int 0x13
jc reboot
mov si, aDot
call print
popa
ret
;
; logical sector to drive params
; input:
; cx: sector
; output:
; dh: head
; cl: sector
; ch: track
;
logicSecToDriveSec:
push ax
push bx
mov bx, cx
; sector
mov ax, bx
xor dx, dx
div word [dSecPerTrack]
inc dx ; modulo
mov cl, dl
; track
mov ax, bx
xor dx, dx
div word [dSecPerTrack]
div byte [dNumHeads]
mov ch, al
; head
mov ax, bx
xor dx, dx
div word [dSecPerTrack]
div byte [dNumHeads]
xor dx, dx
mov dh, ah
pop bx
pop ax
ret
;
; reboot computer
;
reboot:
mov si, aRebootMessage
call print
xor ax, ax
; wait for keypress
int 0x16
; try to reboot
int 0x19
;
; start boot process
;
go:
cli
mov ax, 0x9000
mov ss, ax
mov sp, 0xFFFF
sti
mov si, aBootloader
call print
; load fat at 0x2000:0x0000
mov ax, 0x2000
mov es, ax
xor bx, bx
xor si, si
mov cx, [dFirstFatSec]
loadFatLoop:
call loadSec
add bx, 512
inc cx
inc si
cmp si, word [dFatSize]
jb loadFatLoop
; load root at 0x3000:0x0000
mov ax, 0x3000
mov es, ax
xor bx, bx
xor si, si
mov cx, [dFirstRootDirSec]
loadRootLoop:
call loadSec
add bx, 512
inc cx
inc si
cmp si, word [dSecsOfFileTable]
jb loadRootLoop
xor di, di
xor dx, dx
searchForFile:
mov si, aBootUpFile
mov cx, 11
push di
repe cmpsb
je fileFound
pop di
add di, 32
inc dx
cmp dx, [dMaxRootEntries]
jb searchForFile
fileNotFound:
jmp reboot
fileFound:
; no we have our struct at es:di
mov si, aFilefound
call print
mov si, aLoading
call print
pop di
mov ax, [es:di+26]
push ax
cmp ax, 3 ; illegal entries
jl errorInFat
xor di, di
mov ax, 0x2000
mov ds, ax
mov ax, 0x1000
mov es, ax
xor bx, bx
;
; we will load the file to 0x1000:0x0000
;
goThroughFat:
pop dx
cmp dx, 0xFF8 ; end of file
jge execFile
mov cx, dx ; load the cluster
push ds
mov ax, cs ; restore the old data segment for string output
mov ds, ax
mov ax, [dFirstDataSec]
add cx, ax
sub cx, 3
call loadSec
add bx, 512
pop ds
push bx
mov bx, dx
mov si, bx
clc
rcr bx, 1
mov dx, [bx+si]
pop bx
jnc even
shr dx, 4
even:
and dh, 0x0F
push dx ; save cluster
inc di
push ds
mov ax, cs ; restore the old data segment for memory access
mov ds, ax
cmp di, [dMaxFatEntries]
pop ds
jb goThroughFat
errorInFat:
mov ax, cs
mov ds, ax
jmp reboot
execFile:
mov ax, cs
mov ds, ax
mov si, aFilefound
call print
jmp 0x1000:0x0000
;
; hangs up bootloader
;
hang:
jmp hang
times 510-($-$$) db 0
db 0x55
db 0xAA
|
Zitat: |
8086er waren auf 1 MB beschränkt, da haben also 2 bytes für dioe adressierung ausgereicht
|
noe mit 2 byte kann man gerade mal 64k addressieren...
4 byte waren schon noetig mit dem segment:offset system beim 8086er
(2 byte segment, 2 byte offset)
Zitat: |
320x240? Der gute alte ModeX
|
intererssant nur fast jedes spiel hat damals 320x200 benutzt....
MFG
Johannes
Zuletzt bearbeitet von LordHoto am 04.11.2005, 18:12, insgesamt einmal bearbeitet |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|