Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Bildschirmmodus SCREEN 7

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.01.2005, 22:05    Titel: Bildschirmmodus SCREEN 7 Antworten mit Zitat

Hallo!!

Ich bin ab heute neu hier im Forum!

Bin schon ganz aufgeregt...

Jetzt aber zur Sache:

Ich habe einen Space Shooter im Screen 7 programmiert, und würde gerne etwas über den Speicheraufbau, etc. des SCREEN 7 erfahren.
Es entstand nämlich ein Problem, als ich mit Hilfe von BSAVE den Bildschirminhalt speichern wollte. Bei SCREEN 13 muss man ja zuerst
DEF SEG = &HA000
schreiben.
Meine Frage: Was muss man da beim SCREEN 7 machen?
(Den ich übrigens mit SCREEN 7, , 0, 1 initialisiert habe)

Schon mal vielen Dank

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 14.01.2005, 22:38    Titel: Antworten mit Zitat

Dazu gibt es von Microsoft noch heute ein paar Knowledge Base Artikel dazu:

http://support.microsoft.com/default.aspx?scid=kb;en-us;45699

http://support.microsoft.com/default.aspx?scid=kb;en-us;36022

http://support.microsoft.com/default.aspx?scid=kb;en-us;69986

Aus meiner Sammlung indirekt auch ins Thema passend:

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/VESA-Schnittstelle.html

(alle 16-Farben-Videomodi sind so strukturiert!)

Ganz generell: 16 Farben-Videomodi werden immer ähnlich der Commodore Amiga-Grafikhardware von früher in Bitplanes organisiert, also aus Bitebenen zusammengesetzt. Mittels sog. Latch-Register kannst Du die Lese- und Schreib-Bitebene setzen.

Siehe dazu auch

http://beilagen.dreael.ch/QB/VGAPROG/

(online lesen) oder

http://beilagen.dreael.ch/QB/VGAPROG.ZIP

(auf lokale Festplatte downloaden und entpacken) - habe ich aus einem Buch eingescannt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.01.2005, 22:52    Titel: Screen 7 Antworten mit Zitat

Vielen Dank für diese vielen Infos.

Soo gut, dass ich das jetzt auf Anhieb verstehe, bin ich ja auch wieder nicht...
Werde ich aber auf jeden Fall mal durcharbeiten!

Was aber muss ich jetzt konkret schreiben?
Es geht mir jetzt um die mir Sternchen gekennzeichneten Zeilen.

Also, das Programm sieht ungefähr so aus:
Code:

SCREEN 7, , 0, 1

DO

  Graphik, etc...

  E$ = INKEY$

  IF E$ = CHR$(13) THEN
   Bildschirm speichern
   *DEF SEG = &H??
   *BSAVE...
   *DEF SEG
  END IF

  PCOPY 0, 1
  CLS

LOOP
 


Schon mal vielen Dank für die Geduld.....

jb


Nachtrag:

Sorry, schon okay, ich hatte den ersten Link nicht ausprobiert...

Vielen Dank, und schönen Abend noch!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 14.01.2005, 23:19    Titel: Antworten mit Zitat

http://support.microsoft.com/default.aspx?scid=kb;en-us;69986 hat Folgendes geschrieben:
SUB BSAVEImage
DEF SEG = VideoPageSegment
FOR i% = 0 TO 3
OUT &H3CE, 4 'Select Read Map Select Register.
OUT &H3CF, i% 'Select the bit plane to save.
f$ = FileName + CHR$(i% + 48) + ".GRA"
BSAVE f$, 0, BitPlaneSize
NEXT i%
DEF SEG
END SUB

d.h. Du musst die Latch-Register setzen und dann Bitplane um Bitplane als separate Datei speichern!
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 14.01.2005, 23:25    Titel: SCREEN 7 Antworten mit Zitat

Ja, vielen Dank!!

Ich hate mir eigentlich vorgestellt, das das in einer Datei geht, aber wenn's nun mal so ist...

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 14.01.2005, 23:29    Titel: Antworten mit Zitat

Statt BSAVE kannst Du natürlich auch mit PEEK() und POKE arbeiten und mit
Code:
OPEN "foobar.dat" FOR BINARY AS 1

Bitebene um Bitebene in ein File speichern. Mein Tipp: Jetzt ist es nur noch ein kleiner Schritt, um statt einem proprietären Format ein Standard-Bildformat zu verwenden. Siehe dazu

http://www.dreael.ch/Deutsch/BASIC-Knowhow-Ecke/BilderVerwenden.html

http://www.dreael.ch/Deutsch/Download/WindowsBitmapBibliothek.html

=> Damit kannst Du die Grafiken mit Windows-Standardprogrammen öffnen und erstellen.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz