1
					OS-Design / Re: VertaOS Neuanfang
« am: 20. December 2006, 14:19 »
					Das währ auch ne möglichkeit  
					
				 
					31. October 2025, 19:29
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.
Protectedmode (GDT, TSS etc)
Interrupts (IDT, PIC etc)
Memorymanager
Video Treiber (Nur für Kernelmeldungen)/				Hauptverzeichnis
/bin				Programme (Nur Verzeichnis)
  |- /sys			Systemprogramme
  |- /programm		Programme installieren in separate Ordner
/boot				Bootloader
/doc				Dokumentationen (Nur Verzeichnis)
  |- /sys			Dokumentationen über das System
  |- /programm		Dokumentationen über ein Programm
/etc				Konfigurationen (Nur Verzeichnis)
  |- /sys			Systemkonfigurationsdateien
  |- /programm		Konfigurationen der einzelnen Programme
/home			      Heimatsverzeichnis (Nur Verzeichnis)
  |- /benutzer		Heimatsverzeichnis eines Benutzers
  |- /root			Heimatsverzeichnis des Administrators
/lib				Bibliotheken (Nur Verzeichnis)
  |- /lib-name		Bibliotheken liegen in separaten Ordnern
/sbin				Programme für Admin (Nur Verzeichnis)
  |- /programm		Programme die vom Administrator ausgeführt werden können
/tmp				Temporärer Ordner
 
					
pos = ((y*swidth)+x)*(bpp/8);
VideoMem[pos] = B;
VideoMem[pos] = G;
VideoMem[pos] = R; ??
??
					SetVesaMode:
	push	ax
	push	bx
	mov	ax, 4f00h
	mov	bx, 0x7e0
	mov	es, bx
	mov	di, 0x0
	int	0x10
	cmp	ax, 0x004f
	jne	.1
	mov	bx, 0x7e0
	mov	es, bx
	mov	di, 0x0
	mov	ax, [es:di+4]
	mov	ax, 0x4f01
	mov	di, 0x0
	mov	bx, 0x800		; VbeInfoBlock nach 0x8000
	mov	es, bx
	mov	cx, 0x0115		; Videomodus 800x600 mit lfb
	int	0x10
	mov	ax, 0x4f02
	mov	bx, 0x4115
	int	0x10
	cmp	ax, 0x004f
	je	.3
.1:
	mov	si, msg_VesaError
	call	PrintString
.2:
	jmp	.2
.3:
	pop	bx
	pop	ax
	retunsigned long	*Video;
unsigned short	sWidth, sHeight;
unsigned short 	VBEModeInfo	= 0x8000;
void InitVideo()
{
	unsigned long	*pLong		= (unsigned long *)(VBEModeInfo + 0x28);
	unsigned short	*pShort		= (unsigned short*)(VBEModeInfo + 0x12);
	Video	= (unsigned long*)(pLong[0]);
	sWidth	= pShort[0];
	sHeight	= pShort[1];	
}
void FillScreen(unsigned long color)
{
	unsigned long End = sWidth * sHeight, i;
	for (i=0;i<End;i++)
		Video[i] = color;
}
void PutPixel(short x, short y, unsigned long color)
{
	if (x>=0 && y>=0 && x<sWidth && y<sHeight)
		Video[y*sWidth+x] = color;
}
...