Autor Thema: Bochs stimmt nicht mit meinem PC überein:(  (Gelesen 4405 mal)

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« am: 01. April 2005, 15:06 »
Hab mal das erste tut etwas abgeändert und mit Bochs ausprobiert. Dort stimmt alles. Doch auf dem PC ist ein totales durcheinander mit der Schrift. Hier mein Code vom Kernel. Die boot.asm ist gleich mit dem tut.


mov ax,1000h
mov ds,ax
mov es,ax

start:
mov si,msg
call putstr
mov si,msg_clear
call putstr
mov si,msg_os1
call putstr
mov si,msg_os2
call putstr
mov si,msg_os3
call putstr
mov si,msg_os4
call putstr
mov si,msg_os5
call putstr
mov si,msg_os6
call putstr
mov si,msg_os7
call putstr
mov si,msg_os8
call putstr
mov si,msg_os9
call putstr
mov si,msg_os0
call putstr
mov si,msg_clear
call putstr
mov si,msg_boot
call putstr
call getkey
jmp reboot

msg db "                           Jeremia B",132,"r pr",132,"sentiert:",13,10,0
msg_boot db "                    Diskette entnehmen und Taste dr",129,"cken....",10,0
msg_clear db "",10,0
msg_os1 db "                    00000                  0      000  00000",10,0
msg_os2 db "                    0                      0     00 00 0    ",10,0
msg_os3 db "                    0                      0     0   0 0    ",10,0
msg_os4 db "                    0                      0   0 0   0 0    ",10,0
msg_os5 db "                    0000                   0  00 0   0 00000",10,0
msg_os6 db "                    0    0 000 00000 0000  0 00  0   0     0",10,0
msg_os7 db "                    0    000 0 0   0 0  00 000   0   0     0",10,0
msg_os8 db "                    0    0     00000 0   0 0 00  0   0     0",10,0
msg_os9 db "                    0    0     0     0 000 0  00 00 00     0",10,0
msg_os0 db "                    0    0     00000 000 0 0   0  000  00000",10,0

putstr:
lodsb
or al,al
jz short putstrd
mov ah,0x0e
mov bx,0x0007
int 0x10
jmp putstr
putstrd:
retn

getkey:
mov ah,0
int 016h
ret

reboot:
db 0eah
dw 0000h
dw 0ffffh



PS: Wenn jetzt jemand fragt, woher ich das floppy hab, (wegen dem Paritionsthread), dass ist der PC meiner eltern und ich hab keine lust, immer win zu booten, das neue image zu schreiben und wieder neu zu booten. Zudem kann ich da nicht immer ran

urx_

  • Beiträge: 58
    • Profil anzeigen
    • http://tange.ta.funpic.de
Gespeichert
« Antwort #1 am: 01. April 2005, 15:11 »
Zitat von: jeb

[code]
...
msg db "                           Jeremia B",132,"r pr",132,"sentiert:",13,10,0
msg_boot db "                    Diskette entnehmen und Taste dr",129,"cken....",10,0
msg_clear db "",10,0
msg_os1 db "                    00000                  0      000  00000",10,0
msg_os2 db "                    0                      0     00 00 0    ",10,0
msg_os3 db "                    0                      0     0   0 0    ",10,0
msg_os4 db "                    0                      0   0 0   0 0    ",10,0
msg_os5 db "                    0000                   0  00 0   0 00000",10,0
msg_os6 db "                    0    0 000 00000 0000  0 00  0   0     0",10,0
msg_os7 db "                    0    000 0 0   0 0  00 000   0   0     0",10,0
msg_os8 db "                    0    0     00000 0   0 0 00  0   0     0",10,0
msg_os9 db "                    0    0     0     0 000 0  00 00 00     0",10,0
msg_os0 db "                    0    0     00000 000 0 0   0  000  00000",10,0
...


müsste das nicht ",13,10,0" sein??
Hip-Hop ist vielseitige, intelligente Musik, *Metal dagegen nur stupider Lärm. <-- Von wem das wohl kommt 8)

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #2 am: 01. April 2005, 15:13 »
für was steht denn 13 genau? Unter Bochs funktioniert alles einwandfrei

urx_

  • Beiträge: 58
    • Profil anzeigen
    • http://tange.ta.funpic.de
Gespeichert
« Antwort #3 am: 01. April 2005, 15:13 »
13 ist meiner meinung nach der asciicode für enter
Hip-Hop ist vielseitige, intelligente Musik, *Metal dagegen nur stupider Lärm. <-- Von wem das wohl kommt 8)

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #4 am: 01. April 2005, 15:14 »

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #5 am: 01. April 2005, 15:15 »
10 = eine Zeile runter (gerade runter und NICHT an der Anfang der Zeile)
13 = an den Anfang der Zeile (aber NICHT eine Zeile nach unten)
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #6 am: 01. April 2005, 15:16 »
boah, is das kompliziert :)
aber wieso stimmt denn alles unter bochs?

jeb

  • Beiträge: 341
    • Profil anzeigen
    • http://www.jebdev.net
Gespeichert
« Antwort #7 am: 01. April 2005, 15:23 »
kann man auch die Zeile wählen, resp. den ganzen screen löschen oder tabellen erstllen? Brauch ich dazu den Grafikmodus?

Roshl

  • Beiträge: 1 128
    • Profil anzeigen
    • http://www.lowlevel.net.tc
Gespeichert
« Antwort #8 am: 01. April 2005, 15:28 »
Liegt daran das die Bochs Interrupte 10 als zeilenvorschub UND Carriage Return ansehen und 13 einfach ignoriert wird, deshalb stimmt alles.
Ich umgehe sämtliche Probleme indem ich einfach alles dazu selbst schreibe auch im Realmode.
[schild=1]Wieder ein wertvoller(?) Beitrag von Roshl[/schild]

urx_

  • Beiträge: 58
    • Profil anzeigen
    • http://tange.ta.funpic.de
Gespeichert
« Antwort #9 am: 01. April 2005, 15:28 »
mit bios interrupts kann man die cursorposition wechseln und
an die cursorposition schreiben
Hip-Hop ist vielseitige, intelligente Musik, *Metal dagegen nur stupider Lärm. <-- Von wem das wohl kommt 8)

joachim_neu

  • Beiträge: 1 228
    • Profil anzeigen
    • http://www.joachim-neu.de
Gespeichert
« Antwort #10 am: 02. April 2005, 17:22 »
tipp: mach den ganzen string in einen bereich, dann brauchst du das hier nicht:

msg_os1 db "                    00000                  0      000  00000",10,0
msg_os2 db "                    0                      0     00 00 0    ",10,0
msg_os3 db "                    0                      0     0   0 0    ",10,0
msg_os4 db "                    0                      0   0 0   0 0    ",10,0
msg_os5 db "                    0000                   0  00 0   0 00000",10,0
msg_os6 db "                    0    0 000 00000 0000  0 00  0   0     0",10,0
msg_os7 db "                    0    000 0 0   0 0  00 000   0   0     0",10,0
msg_os8 db "                    0    0     00000 0   0 0 00  0   0     0",10,0
msg_os9 db "                    0    0     0     0 000 0  00 00 00     0",10,0
msg_os0 db "                    0    0     00000 000 0 0   0  000  00000",10,0

sondern nur

msg_os db "                    00000                  0      000  00000",10,13 db "                    0                      0     00 00 0    ",10,13
db "                    0                      0     0   0 0    ",10,13
db "                    0                      0   0 0   0 0    ",10,13
db "                    0000                   0  00 0   0 00000",10,13
db "                    0    0 000 00000 0000  0 00  0   0     0",10,13
db "                    0    000 0 0   0 0  00 000   0   0     0",10,13
db "                    0    0     00000 0   0 0 00  0   0     0",10,13
db "                    0    0     0     0 000 0  00 00 00     0",10,13
db "                    0    0     00000 000 0 0   0  000  00000",10,13,0


J!N

(nicht getestet, müsste aber gehen!)
http://www.joachim-neu.de | http://www.orbitalpirates.de | http://www.middleageworld.de

System: 256 RAM, GeForce 2 MX 400, AMD Athlon XP 1600+, Windows XP, 1x Diskette, 1x DVD-ROM, 1x CD-R(W) Brenner,...

 

Einloggen