Beiträge anzeigen

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.


Nachrichten - HustensaftOS

Seiten: [1]
1

hi,
[...]präzisieren[...]
ich weiß zwar nicht genau, was missverständlich formuliert ist, aber:
Ich schreibe ein Assemblerprogramm für den Bootsektor, das mithilfe eines BIOS-Interrupts (INT10/13h) einen einfachen ASCII-String ausgibt.
Der ASCII-String sollte an Adresse ES:BP liegen.
Der ASCII-String enthält nicht nur die ASSCI-Codes für die Zeichen, die ich ausgeben möchte, sondern auch die dazugehörigen Farbattribute - also ein String, wie er im Ausgabemodus 3 oder im Ausgabemodus 2 erwartet wird.
Ich habe den ASCII-String, den ich ausgeben möchte, in Moment als Textdatei gespeichert. Diese Textdatei enthält Buchstaben und Zahlen (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F) stellvertretend für die Bitfolgen 0000, 0001, 0010 ..., 1111 - also eine ganz normale .hex-Datei.
Ich möchte diesen String ohne größen Aufwand in mein Assemblerprogramm kopieren oder einbinden, sodass ich auf ihn als ES:BP referenzieren kann, wie dies für INT10/13h erforderlich ist.


Allerdings funktioniert die Ausgabe nicht einmal, wenn ich den String mit .byte-Direktiven Byte für Byte in ein freies Fleckchen der Assemblerdatei hineinschreibe. Das habe ich aber schon genauer in einem anderen Beitrag dieses Threads gepostet.


Hat jemand eine Idee, wie ich das Problem mit der Stringausgabe löse könnte?
lg hustensaft.
2

hi,
ich habe mal alles einfach mit der .byte-Direktive in ein freies Fleckchen im Bootsektor geschrieben, ist zwar für größere Daten nicht sonderlich geeignet...


Es funktioniert aber eh nicht, ich sitzt schon seit 6 Stunden an diesem dämlichen Stück Code und spiele mich herum... Ich kann nicht einmal genau sagen, was nicht funktioniert, da hier der Bochs-Debugger auch nicht weiterhilft. Es wird einfach kein Text am Bildschirm angezeigt und der BIOS-Code, der Dank INT 0x10 ausgeführt wird, läuft einfach ganz normal ab.


int_vid_str= 0x13
int_vid= 0x10


movb $0x07, %AH
movb $0xD0, %AL
movw %AX, %ES
movb $int_vid_str, %AH
movb $0x03, %AL
movb $0xA0, %DH
movb $0x00, %DL
movb $0x05, %CL
int $int_vid

end:
jmp end


.org 0x0100
strings:
.byte 0x51
.byte 0x05
.byte 0x49
.byte 0xE0
.byte 0x51
.byte 0x05
.byte 0x49
.byte 0xE0
.byte 0x51
.byte 0x05

.org 0x0200-0x02
.byte 0xAA
.byte 0x55


.end


Hat noch jemand eine Idee, woran das liegen könnte?
lg hustensaft.
3
Wenn du auf den Grafikspeicher Direktzugriff hast, kannst du[...] direkt in den Grafikspeicher kopieren.
So oder so müsste ich die ASCII-Strings hinterlegen und das ist mir in Moment mal das Wichtigste. Eins nach dem Anderen ;-)


Danke für deinen Vorschlag.
lg hustensaft.
4
hi,
also ich habe:
  • ASCII-Strings (1. Byte: 1. Zeichen, 2. Byte: Attribute des 1. Zeichens, 3. Byte: 2. Zeichen, 4. Byte: Attribute des 2. Zeichens, ...) in Hex-Schreibweise.
  • Ein GAS-Programm zur Ausgabe eines Strings mithilfe der Real-Funktion INT 10h/13h
Ich will:
  • ...ASCII-String-Daten ohne großen Aufwand (eigenes Linkerscript, ...) in das GAS-Programm einbinden oder hineinkopieren.
  • ...zur Laufzeit mit SP und BP auf die Daten zeigen können (benötigt für INT10/13h).

Wie hinterlege ich solche Daten am Besten?

thx&lg hustensaft.
5
hi,
[...]an das Ende [...]Endlosschleife[...]
thx, das haut jez hin:

int_video= 0x10
half_b= 0x04
assci_digits= 0x30
end_char= '-'




movb $0x32, %DL



movb %DL, %DH
shr $half_b, %DH

shl $half_b, %DL
shr $half_b, %DL


addb $assci_digits, %DH

addb $assci_digits, %DL


movb $0x0E, %AH
movb %DH, %AL
movb $0x00, %BH
int $int_video

movb %DL, %AL
int $int_video

movb $end_char, %AL
int $0x10


jmp end


end:
jmp end






.org 512-2
.byte 0xAA
.byte 0x55
.end




thx&lg hustensaft.
6
hi,
ich hab mich noch ein bisschen gespielt (beim Test des Erikcodes war der Signaturcheck on) und habe es jetzt zu einem ständigen endlosen "BOUND_GdMa: fails bounds test" auf der Kommandozeile geschafft. Ich werde mich morgen dazu genauer kundig machen, wollte nur einmal Statusupdate geben... Oder weiß wer von euch auf die Schnelle, woran das liegen könnte? Alle reden in den Threads über diese Meldung immer nur von fehlerhaften Stacks, wobei ich nicht einmal einen Stack habe...


lg hustensaft.
7

hi,
.org   512*8-2
[...]muss gegen ".org 512-2" [...] ersetzt werden.
danke für den Hinweis, allerdings bleibt der Erfolg (und der Bochs-Output) so oder so der gleiche...

Danke für deine Hilfe.
lg hustensaft.

8

hi,
ich will unter Bochs just for fun ein einfaches Bootsektorscript testen und Bochs will das Diskettenimage nicht booten.


Mein ASMx86-Bootsektorscript in AT&T-Syntax (für GAS):movb   $0x09, %AH
movb   $0x41, %AL
int      $0x10


.org   512*8-2
.byte   0xAA
.byte   0x55
.end



Das von GAS erzeugte Objekt wird dann im ein rawbin umgewandelt:
objcopy -O binary xx.out xx.img
Schaut dann so aus:
0000: b4 09 b0 41 cd 10 00 00 00 00 00 00 00 00 00 00
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[...]
0fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 aa 55

Das ganze wird als Image für ein Bochs-Laufwerk verwendet:
[...]

boot: floppy
floppy_bootsig_check: disabled=0
floppya: type=1_44, 1_44="C:\Ordner\xx.img", status=inserted, write_protected=0
# no floppyb
ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata1: enabled=1, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata2: enabled=0
ata3: enabled=0
[...]

Und Bochs meldet:
[...]

Press F12 for boot menu.


Booting from Floppy...
Boot failed: not a bootable disk


FATAL: No bootable device.
[...]

Ich häng hier schon seit gestern und habe alles mögliche durchprobiert, leider habe ich nicht sehr viel hilfreiches gefunden... Hilfebittteee...
lg hustensaft.


Edit: Code/Schrift falsch formatiert...
9
Softwareentwicklung / Re: Computersimulator: Gibt's sowas?
« am: 07. November 2011, 21:14 »
Was fehlt dir denn genau?
Mich hat's nur mal intressiert. Konkret war der Wunsch da, zum Spaß dem Bochs den Bios vom Rom zu flashen.

Wäre sowas mit "deinem" QEMU möglich?

lg hustensaft.#
10
Softwareentwicklung / Computersimulator: Gibt's sowas?
« am: 07. November 2011, 20:50 »
Hi,
es gibt es die Möglichkeit, sich mit einem speziellen Programm seien eigenen virtuellen Computer zu bauen?

Ich stelle mir das so vor:
So wie ich sonst verschiedene Hardwaremodule zusammenstecken würde, kann ich hier verschiedene virtuelle Module zusammenbauen.

lg, hustensaft.#
11
Offtopic / Re: Umstellung auf Winterzeit mit Se7en
« am: 26. October 2011, 19:07 »
PS: Für alle Linux-User: Die Sommerzeit endet um 3:00, am Sonntag, dem 30.  :arrow:
Linux nervt mich nicht mit einer Erinnerung, sondern macht einfach automatisch das richtige.
Windows ist da besser: Windows stellt die Zeit um UND nervt mich mit einer Erinnerung.  :cool:

lg hustensaft.
12
Offtopic / Umstellung auf Winterzeit mit Se7en
« am: 26. October 2011, 14:58 »
hi,
ich bin Ende letztes Jahres voneXPerience auf Se7en umgestiegen. Nach fast einem Jahr mit neuem Windows, wurde ich vor allem von einem Feature positiv überrascht  :shock: : Man hatte mich an die Umstellung von Sommer- auf Winterzeit erinnert, sogar mit genauem Datum, Uhrzeit und Kalender - ein Feature, das manchen eurer Betriebssysteme sicher noch abgeht  ;-) - nicht traurig sein  :lol: .

lg hustensaft.

PS: Für alle Linux-User: Die Sommerzeit endet um 3:00, am Sonntag, dem 30.  :arrow:
13
In der 1. Magazinausgabe habe ich gelesen, wie man so mit Bootsektoren umgeht. Als richtiger Gentleman wollte ich das natürlich auch versuchen, allerdings habe ich (bis auf ein 16bit-NASM-Programm für DOS) immer GAS/AT&T gearbeitet. Deshalb wollte ich ein GAS-Programm mit 10h-Aufruf just for fun für den Bootsektor schreiben.
Gudde Sache, blöd nur, dass GAS nicht wie die meisten anderen Assembler ein Image oder etwas anderes brauchbares erzeugen kann, nur so eine Objektdatei, die ich dann mit GLD zu einem Programm linken darf. Bis jetzt hab ich mich mit so etwas langweiligen zufriedengegeben. Aber wo bleibt da der Spaß? Ich möchte mit GLD oder einem anderen Programm aus den Tiefen der Binutils in eine dekorative Image-Datei schreiben, oder besser gesagt: Ich brauche mein 10h-Programm in einer Form, die mein Bochs mag.

lg hustensaftOS.

--
Hier folgt Wuschelkopf:  :mrgreen:
Seiten: [1]

Einloggen