Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
MalteF
Anmeldungsdatum: 04.12.2008 Beiträge: 44
|
Verfasst am: 17.07.2009, 09:36 Titel: Screen 7 / 13 mal wieder... |
|
|
Hallo.
Es gibt jede Menge Tutorials, die behandeln wie man durch POKE direkt in den Videospeicher schreiben kann. (Also quasi direkt, ja..)
Aber alle sind für SCREEN 13. Und obwohl (laut Internet) alle EGA und VGA Modi ihre Startadresse bei &HA000 haben, funktionieren diese Tutorials nur in Screen 13.
SCREEN 13 oder 7
def seg=&HA000
pset (0,0), 5
print peek (0)
def seg
Gibt in Mode 13 die richtige Farbe (5) wieder, in Screen 7 nicht.
Also, lange Rede kurzer Sinn : Wie kann ich im Mode 7 direkt in den Videospiecher, bzw dessen Spiegelung im konv. RAM schreiben/lesen ??? |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.07.2009, 10:02 Titel: |
|
|
ich weiß es jetzt nicht auswendig (und kann hier qb auch nicht ausführen, linux-terminal), aber SCREEN 13 ist ein 8-Bit-Modus, während SCREEN 7 4-Bit ist. Das heißt, du wirst mit dem Lesen eines Bytes zwei Pixel erhalten: Die unteren und oberen 4 Bit stellen verschiedene Werte dar. Mit "Farbe AND &H0F" bekommst du die unteren 4 Bit, mit "Farbe AND &HF0 \ &H0F" die oberen 4 Bit. _________________ » Die Mathematik wurde geschaffen, um Probleme zu lösen, die es nicht gäbe, wenn die Mathematik nicht erschaffen worden wäre.
 |
|
Nach oben |
|
 |
MalteF
Anmeldungsdatum: 04.12.2008 Beiträge: 44
|
Verfasst am: 17.07.2009, 10:35 Titel: |
|
|
Hmm, nee, funktioniert noch nicht.
Ich hab für "Farbe AND &H0F" "PEEK(0) AND &H0F" eingesetzt (was übrigens zu &HF wurde). Meintest du das so? |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
|
Nach oben |
|
 |
MalteF
Anmeldungsdatum: 04.12.2008 Beiträge: 44
|
Verfasst am: 17.07.2009, 12:24 Titel: |
|
|
Ach du liebes bisschen! Ja, danke erstmal! |
|
Nach oben |
|
 |
Jojo alter Rang

Anmeldungsdatum: 12.02.2005 Beiträge: 9736 Wohnort: Neben der Festplatte
|
Verfasst am: 17.07.2009, 14:33 Titel: |
|
|
MalteF hat Folgendes geschrieben: | Hmm, nee, funktioniert noch nicht.
Ich hab für "Farbe AND &H0F" "PEEK(0) AND &H0F" eingesetzt (was übrigens zu &HF wurde). Meintest du das so? |
jo, ich benutze normalerweise keine IDEs mit so einer stupiden autokorrektur (macht bitpopelei nur viel unübersichtlicher) _________________ » 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: 17.07.2009, 20:20 Titel: |
|
|
Bei SCREEN 7 kommt die ganze Geschichte mit den sog. Latchregister ins Spiel, d.h. nur eine einzelne Bitplane kann auf einmal adressiert werden. Vom Ganzen gibt es sonst unter
http://beilagen.dreael.ch/QB/VGAPROG/
einen aus einem Buch eingescannter Artikel. Ebenso sind die C-Beispiele in den VESA-Spezifikationen geeignet; in QB sind für die Portierung von InitPlanar() entsprechende OUT-Befehle nötig. _________________ Teste die PC-Sicherheit mit www.sec-check.net |
|
Nach oben |
|
 |
St_W

Anmeldungsdatum: 22.07.2007 Beiträge: 956 Wohnort: Austria
|
Verfasst am: 18.07.2009, 12:35 Titel: |
|
|
Code: | DEF SEG = &HA000
FOR i = 0 TO 3
OUT &H3CE, 4
OUT &H3CF, i 'Plane auswählen (0 bis 3)
BSAVE "logo.GR" + CHR$(49 + i%), 0, bytes
NEXT
DEF SEG
|
Der obige Code funktioniert z.B. in Screen 12 und demonstriert den direkten Zugriff auf den VGA-Speicher durch speichern als Speicherabbild des VGA-Speichers. Ob das auch in Screen 7 funktioniert weiß ich nicht. Vielleicht hilft es. _________________ Aktuelle FreeBasic Builds, Projekte, Code-Snippets unter http://users.freebasic-portal.de/stw/
http://www.mv-lacken.at Musikverein Lacken (MV Lacken) |
|
Nach oben |
|
 |
|