Grafik in OS... nicht!
Hallo!
Ich bin neu hier aber kenn euer Forum schon seit längerem. Über das OS tutorial ich angefangen asm zu lernen. Und morgen kommt warscheinlich auch mein "PC Intern 5.0". Vielleicht kennts ja jemand. Also ich mal ne Frage zu meinem billigOS, Helix! Ich wollte mal über 10h einen pixel malen, also nicht in den grafikspeicher einimpfen-und dann kommt nur dieser Strich da: _ Bitte helft mir ! Ach übrigens: Dies hier ist nur der Kernel! Der Loader geht soweit...
; Kernel ist auf 0800:0000 geladen
ORG 0000h
JMP start
print_string:
lodsb ; lade das Byte auf ds:si in al
or al,al ; teste ob der character 0 ist(Ende)
jz done
mov ah,0eh ; put character
mov bx,0007 ; Attribut
int 0x10 ; rufe BIOS auf
jmp print_string
done:
ret
;==== data section =====================
; message:
msg DB 'Willkommen zu Helix!', 13, 10
;======================================
clear_screen:
MOV AH, 00h
MOV AL, 0Ch
INT 10h
ret
start:
; data segment:
PUSH CS
POP DS
; setzte auf: 640*480*16:
MOV AH, 00h
MOV AL, 0Ch
INT 10h
; clear screen:
CALL clear_screen
;die message
MOV SI, msg
CALL print_string
CALL getkey
MOV AH, 0Ch
MOV DX, 20
MOV CX, 30
MOV AL, 05h
INT 10h
HLT
CALL getkey
Call reboot
getkey:
mov ah, 0 ; Warte auf Tastendruck
int 016h
ret
reboot:
db 0EAh ; Maschinensprache um auf FFFF:0000
;(reboot) zu springen
dw 0000h
dw 0FFFFh
DANKE!
Hallo!
Ich bin neu hier aber kenn euer Forum schon seit längerem. Über das OS tutorial ich angefangen asm zu lernen. Und morgen kommt warscheinlich auch mein "PC Intern 5.0". Vielleicht kennts ja jemand. Also ich mal ne Frage zu meinem billigOS, Helix! Ich wollte mal über 10h einen pixel malen, also nicht in den grafikspeicher einimpfen-und dann kommt nur dieser Strich da: _ Bitte helft mir ! Ach übrigens: Dies hier ist nur der Kernel! Der Loader geht soweit...
; Kernel ist auf 0800:0000 geladen
ORG 0000h
JMP start
print_string:
lodsb ; lade das Byte auf ds:si in al
or al,al ; teste ob der character 0 ist(Ende)
jz done
mov ah,0eh ; put character
mov bx,0007 ; Attribut
int 0x10 ; rufe BIOS auf
jmp print_string
done:
ret
;==== data section =====================
; message:
msg DB 'Willkommen zu Helix!', 13, 10
;======================================
clear_screen:
MOV AH, 00h
MOV AL, 0Ch
INT 10h
ret
start:
; data segment:
PUSH CS
POP DS
; setzte auf: 640*480*16:
MOV AH, 00h
MOV AL, 0Ch
INT 10h
; clear screen:
CALL clear_screen
;die message
MOV SI, msg
CALL print_string
CALL getkey
MOV AH, 0Ch
MOV DX, 20
MOV CX, 30
MOV AL, 05h
INT 10h
HLT
CALL getkey
Call reboot
getkey:
mov ah, 0 ; Warte auf Tastendruck
int 016h
ret
reboot:
db 0EAh ; Maschinensprache um auf FFFF:0000
;(reboot) zu springen
dw 0000h
dw 0FFFFh
DANKE!
Zuletzt bearbeitet: