Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Dos5.0

Anmeldungsdatum: 07.12.2008 Beiträge: 30
|
Verfasst am: 20.07.2009, 15:56 Titel: Gesuchtes Programm |
|
|
Hallo,
hat einer von euch dieses Programm, von dem in der MonsterFAQ die Rede ist?
Zitat: | Antwort 2
~~~~~~~~~~
[ von CEB ( JMate*t-online.de ) im QB-Forum 22.1.02]
Frage:-
Wie kann ich die Schrift in SCREEN 0 verändern?
Ich will meine eigenen Schriften, Mauszeiger und das Euro-Zeichen in SCREEN 0 darstellen.
Antwort:
Ich hab ein Program geproggt, das in Screen 0 Schriftarten laden kann. Aber das Besondere: Es hat eine Maus-Routine, die einen echten Cursor in Screen 0 darstellt!!! (Nicht dieses Viereck wie sonst!). Das geht über Verändern der Zeichen. Und nur unter DOS!
Schaut es euch mal an... Download auf meiner Seite unter
www.gimi.f2s.com/screen0.zip
|
Link
[/url] |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 20.07.2009, 20:03 Titel: |
|
|
@dreael: Na im Grafikmodus kann das ja wohl jeder.
Im Textmodus ist das schon eher eine Kunst, ich weiß aber nicht wie es geht, da ich mich nie mit sowas befasst habe. Dass es geht, steht aber fest:
Wie allerdings schon aus dem Screenshot ersichtlich wird, passt sich der Mauszeiger immer den Farben des aktuellen Textzeichens unter sich an - Es kann also durchaus ein mehrfarbiger Mauszeiger entstehen! _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 20.07.2009, 20:53 Titel: |
|
|
@Jojo: Ich weiss nun, welcher Effekt Du meinst: Das zu MSDOS 6.22 mitgelieferte MSBACKUP.EXE verwendet diesen genauso!
Sinnvollerweise ist INT 33h/AX=000Ah für diesen Fall natürlich nicht geeignet.
Zu diesem Fall würde ich folgende Anleitung geben (aus meiner Sicht mit reinem QB und CALL INTERRUPT durchaus umsetzbar!):
1.) Mauszeiger physikalisch ausgeblendet lassen, d.h. kein INT 33h/AX=0001h machen! Maus läuft intern nämlich weiter und man bekommt mit INT 33h/AX=0003h weiterhin die aktuellen Koordinaten, welche bei Bewegung nachgeführt werden.
2.) Bildschirmmaske soll einen kleinen Block von 6 ASCII-mässig zusammenhängender Zeichen des DOS-Zeichensatzen nicht verwenden -> diese dienen nun dazu, mit INT 10h, AX=1100h dynamisch geladen zu werden: Dazu mit der SCREEN()-Funktion sämtliche 6 Zeichen auslesen, über welchen sich der Mauszeiger befindet, danach mit INT 10h, AX=1130h die Basisadresse der VGA-ROM-Zeichensätze holen, damit mittels PEEK() eine Kopie in einen QB-Feldvariablenpufferspeicher "gezogen" werden kann. Nun muss man das Mauszeigershape genauso wie für INT 33h/AX=0009h strukturieren (AND- und OR-Maske) und diese geschickt überlagern, so dass man die damit neu generierten Zeichen in den Puffer laden und mit LOCATE/PRINT ausgeben kann.
Das Ganze müsste ich direkt einmal an einem verregneten Wochenende in einem Beispielcode umsetzen. ;-) _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 20.07.2009, 21:48 Titel: |
|
|
@Jojo,drael: Microsoft Backup (getestet aus MS-DOS 6.22) stellt den Mauscursor anders dar, als der ImpulseTracker 2.14.5 (der übrigens auch intensiv von benutzerdefinierten Zeichen gebrauch macht).
Deshalb denke ich, dass es von DOS direkt keine Funktion gibt, um den Mauszeiger im Text-Modus zu ändern. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
dreael Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 2529 Wohnort: Hofen SH (Schweiz)
|
Verfasst am: 20.07.2009, 23:26 Titel: Code-Beispiel gebaut :-) |
|
|
Soeben ein kleines Codebeispiel gebaut (ging also sogar schneller), welches meinem obigen Vorschlag entspricht
http://beilagen.dreael.ch/QB/SC0MAUSZ.BAS
Ist allerdings noch nicht 100% perfekt, da teils lustige Effekte auftreten (z.B. ROM liefer Codepage 437, aber Windows ist auf Codepage 850 eingestellt), das Grundlegende mit der Mauszeigerbild-Berechnung klappt jedoch soweit bereits einwandfrei und sollte sich somit hoffentlich als Grundlage für eigene QB-Projekt bereits eignen.
Am besten mit unterschiedlichen VGA-Grafikkarten (auch Emulatoren wie DOS-Box, Bochs, VMware, Virtual PC), einmal in der NTVDM sowie auch unter reinem MS-DOS 6.22 testen, Feedback ist willkommen. :-) _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
Dos5.0

Anmeldungsdatum: 07.12.2008 Beiträge: 30
|
Verfasst am: 21.07.2009, 13:34 Titel: |
|
|
Ich finds gut. Läuft unter Vist ein bisschen langsam, werds aber noch unter Dos testen. |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.07.2009, 18:07 Titel: |
|
|
Läuft in der DOSBox erst ab so 20.000-30.000 Cycles einigermaßen (aber nicht komplett) ruckelfrei, ist also nicht wirklich optimal. (20.000 Cycles sind für so ein Programm, das praktisch nichts tut, verdammt viel). _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
E-P-S

Anmeldungsdatum: 16.09.2004 Beiträge: 500 Wohnort: Neuruppin
|
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 21.07.2009, 19:33 Titel: |
|
|
ah, genau das hab ich gesucht.. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
Dos5.0

Anmeldungsdatum: 07.12.2008 Beiträge: 30
|
Verfasst am: 21.07.2009, 20:22 Titel: |
|
|
Habs unter Dos getestet. Funktioniert nicht so gut. |
|
Nach oben |
|
 |
|