So da bin ich wieder und habe mich wieder an mein OS gesetzt.
Es kann nun Starten, eine Eingabe öffnen und einen Text ausgeben, und auf Befehle reagieren.
Jedoch ist hier mein Problem:
http://www.mediafire.com/?h5cv19kaexxoobkWoher kommt denn bitte Schön die Help Nachricht im Copyright
Ich bin jetzt echt verplüfft wie das der PC hinbekommt O.o
Hier die Einleitung von Hintergrund und Überschrift
setup_bg:
mov dx,0
call move_cursor
mov ah,09h
mov al, ''
mov bh,0
mov bl,00000111b
mov cx,2400
int 10h
mov si,version ;Versionsanzeige
mov dx,1
call print
.message:
mov dx,0
call newline
mov si,copyright ;Copyright Anzeige
call print
Hier ein Teil der CMD
cmd:
call newline
mov si,promt
mov dx,2
call print
.keybuffer:
mov dx,0
mov di,input_buffer
mov al,0
mov cx,256
rep stosb
mov ax,input_buffer
mov di,input_buffer
.loop:
call keyboard
cmp al,13
je .Done
cmp al,8
je .backspace
jmp .character
.backspace:
mov ah,0Eh
mov al,8
int 10h
mov al,32
int 10h
mov al,8
int 10h
dec di
jmp .loop
.character:
mov ah,0Eh
int 10h
stosb
jmp .loop
.Done:
mov ax,0
stosb
call newline
mov si,input_buffer
cmp BYTE [si],0
je cmd
mov di,help_string
call compare
jc help
mov si,no_command
call print
jmp cmd
Und noch die Funktionen dazu:
move_cursor:
pusha
mov ah,02h
mov bh,0
int 10h
popa
ret
print:
lodsb
cmp al,0
je print_done
mov ah,0eh
int 10h
jmp print
print_done:
cmp dx,1
je setup_bg.message
cmp dx,2
je cmd.keybuffer
jmp cmd
newline:
pusha
mov ah,0Eh
mov al,13
int 10h
mov al,10
int 10h
popa
ret
compare:
pusha
.loop:
mov al,[si]
mov ah,[di]
cmp al,ah
jne .not_equal
cmp al,0
je .equal
inc si
inc di
jmp .loop
.not_equal:
popa
clc
ret
.equal:
popa
stc
ret
keyboard:
pusha
mov ax,0
mov ah,10h
int 16h
mov [.buffer],ax
popa
mov ax,[.buffer]
ret
.buffer dw 0
help:
mov si,help_message
call print
jmp cmd
Ich kann keinen Fehler finden, bin echt Ratlos ,
glaube schon fast der PC will mir eins Auswischen