Aktuelle Zeit: 22.05.2013 12:32

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Bildschirm 40x192 simulieren...
BeitragVerfasst: 08.12.2011 18:39 
Offline

Registriert: 31.12.2009 11:58
Hallo, ich weiss nicht wie ich es anfangen soll...
Ich möchte einen Bildschirm 40 Byte breit und 192 Zeilen hoch simulieren.
Dann möchte ich darin Buchstaben schreiben die 1 Byte breit sind und 8 Byte hoch, bis die Zeile mit 40 Byte voll ist und dann in die nächste Zeile.

Ich weiss nicht , wei ich diesen Screen erstelle und dann am Anfang der Adresse ein Byte hinein Poke?
Wie bekomme ich die Anfangadresse vom Screen zum Poken?

Der Screen soll kein Textfenster sein sondern Grafik ähnlich.

danke.

gruss


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 08.12.2011 19:59 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
das klingt nach C64 , wo man in den Bildschirmspeicher poken musste ;)

Heutzutage läuft das ein bisschen anders.

Meinst Du jetzt mit 40 Byte Breite 8*40 Pixel ? und wenn dann sind die 192 Byte Höhe wohl etwas extrem oder ?

Du kannst einen WindowedScreen nehmen (wenn du Sprites nutzen möchtest) oder ein CanvasGadget.
Wenn gar keine Eingaben erforderlich sind reicht auch ein ImageGadget... und darauf zeichnen...

_________________
Schlagt mich nicht, wenn ich falsch liege...
________________________________________________________________________________________________________________________
PureBasic 5.11 x86/x64 | Windows7 x64 | AMD X2 5600 | NVidia GTS 450


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 08.12.2011 21:01 
Offline

Registriert: 31.12.2009 11:58
Ähm...192 Linien bzw 24 Byte...
Es sind Eingaben erforderlich.

Kann man also keine Byteadresse erfassen in einem Screen?

gruss


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 08.12.2011 21:08 
Offline
Benutzeravatar

Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg
2D Drawing Lib ... das suchst in die PB-Hilfe und suchst dort nach dem,
was du brauchst. Geht schneller als hier auf ne Antwort zu warten. :wink:

_________________
alte Projekte:
CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 10.12.2011 16:39 
Offline
-= Anfänger =-
Benutzeravatar

Registriert: 29.08.2004 03:07
Ich nix verstehen!

Wieviel Byte und Linien hoch und breit mal quer?

Ist dieser funkheld vielleicht eine google-Übersetzung von einem Chinesen
oder ein chinesischer google-Übersetzer? Oder einfach nur ein ver(w)irrter junger Mann? :D

_________________
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck


Zuletzt geändert von Danilo am 10.12.2011 16:44, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 10.12.2011 16:42 
Offline

Registriert: 13.11.2011 16:05
Danilo hat geschrieben:
Ich nix verstehen!

Naja du bist eh ein "-= Anfänger =-" vielleicht liegt es daran :mrgreen:


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 10.12.2011 16:45 
Offline
-= Anfänger =-
Benutzeravatar

Registriert: 29.08.2004 03:07
mirca hat geschrieben:
Naja du bist eh ein "-= Anfänger =-" vielleicht liegt es daran :mrgreen:

Hast echt recht alder!

_________________
cya,
...Danilo
"Ein Genie besteht zu 10% aus Inspiration und zu 90% aus Transpiration" - Max Planck


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 01.02.2012 03:03 
Offline

Registriert: 23.01.2008 13:13
Wohnort: Wien
Das klingt nach einem Atari XL Screen... Monochromes Bitmap also. Ganz einfach.
Also ich würde das so machen (bzw so habe ich es gemacht beim Retro-X):

Screendarstellung:
Memory Block erstellen mit 7680 Bytes für monochromes Bitmap
Memory Block erstellen mit 245760 Bytes für 32 Bit Bitmap
Tabellen-memblock erstellen wo für jedes Byte eines Monochrom-Bitmaps 64 Bytes des PC Bitmaps abgespeichert werden, mit 16384 Bytes, und die Daten da vorbereiten (also wie die 8 Pixeln von jeden Byte als 8 Pixeln mit 32 Bit aussehen würden an PC. 8 Monochrompixeln=64 Bytes am PC screen).
Mit loop die Daten des Monochrom-Bitmaps benutzen um den 32 Bit Bitmap offset zu finden und es ins PC Bitmap hineinkopieren mit COPYMEMORY von jeweils 64 Bytes für jeden Monochrom-Byte
Der PC Bitmap kann dann in ein Image kopiert werden. Es wurde mal eine Routine für CopyMemory2Bitmap publiziert. Ich erreiche so einige tausend redraws pro Sekunde.

Das schreiben ist auch einfach, wenn man schon das Monochrom-Bitmap hat und die Fontdaten in einem Memblock. Wenn man den Monochromspeicher wie beim C64 Charweise organisiert, braucht man nur jeweils 8 bytes aus dem Fontspeicher in den Monochromspeicher zu kopieren. Die nächste Zeile wird dann schon automatisch folgen.

_________________
PB 4.61Beta1 32/64Bit. AMD FX6100, 8 GB RAM, ATI Radeon 5750, Win7 64 (64 bit ist mist weil 16-Bit Programme wie MakeTZX nicht mehr darauf funktionieren).


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 01.02.2012 15:07 
Offline

Registriert: 31.12.2009 11:58
Ju, danke.
Das liesst sich schon mal gut. Es ist ein Screen für den Atari800 40x192.

Mit den Umsetzen kapier ich noch nicht.
Kannst du darüber noch einpaar Sätze schreiben ?

Retro-X ? was ist das. ?

Danke.
gruss


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Bildschirm 40x192 simulieren...
BeitragVerfasst: 14.02.2012 02:56 
Offline

Registriert: 23.01.2008 13:13
Wohnort: Wien
funkheld hat geschrieben:
Ju, danke.
Das liesst sich schon mal gut. Es ist ein Screen für den Atari800 40x192.

Das habe ich geahnt, die Auflösung der Atari800 ist ja ziemlich einzigartig...
funkheld hat geschrieben:
Mit den Umsetzen kapier ich noch nicht.
Kannst du darüber noch einpaar Sätze schreiben ?

Klar...
Wenn Farbe 0 weiß ist und Farbe 1 schwarz...
*Bytetable ist die der Speicherbereich wo die Tabelle abgelegt ist.
Schau mal, Bytetable erstelle ich so:
Code:
      dim Col(1)
      Col(0)=$FFFFFF
      Col(1)=0
      For b=0 To 255
        adr=b<<5
        *Buffer=*Bytetable+adr
        PokeL(*Buffer,Col(b>>7&1)):*Buffer+4
        PokeL(*Buffer,Col(b>>6&1)):*Buffer+4
        PokeL(*Buffer,Col(b>>5&1)):*Buffer+4
        PokeL(*Buffer,Col(b>>4&1)):*Buffer+4
        PokeL(*Buffer,Col(b>>3&1)):*Buffer+4
        PokeL(*Buffer,Col(b>>2&1)):*Buffer+4
        PokeL(*Buffer,Col(b>>1&1)):*Buffer+4
        PokeL(*Buffer,Col(b&1)):*Buffer+4
      Next b

Zum Zeichnen
Damit zeichne ich es dann nach *Drawbuffer:
Code:
      Col(0)=$FFFFFF
      Col(1)=0
      For y=0 To height<<3-1
        For x=0 To Width-1
          Byte=PeekB(*Buffer)&255
          *Buffer+1
          CopyMemory(*Bytetable+Byte<<5,*drawbuffer,32)
          *drawbuffer+32
        Next x
      Next y

Und vom Drawbuffer ins Image mit:
Code:
Procedure CopyMemToImage(mem.L,img.L)
  Protected bmi.BITMAPINFO
  Protected w.L,h.L,hBmp.L,hdc.L
  CompilerIf #PB_Compiler_OS=#PB_OS_Windows
    If IsImage(img)
      w=ImageWidth(img)
      h=ImageHeight(img)
      hBmp=ImageID(img)
      bmi\bmiHeader\biSize        =SizeOf(BITMAPINFOHEADER)
      bmi\bmiHeader\biWidth       = w
      bmi\bmiHeader\biHeight      =-h
      bmi\bmiHeader\biPlanes      = 1
      bmi\bmiHeader\biBitCount    =32
      bmi\bmiHeader\biCompression =#BI_RGB
      io=ImageOutput(img)
      hdc=StartDrawing(io)
        If SetDIBits_(hdc,hBmp,0,h,mem,bmi,#DIB_RGB_COLORS)
        StopDrawing()
        ProcedureReturn #True
      Else
      StopDrawing()
      ProcedureReturn #False
    EndIf
  EndIf
CompilerEndIf
EndProcedure

CopyMemToImage(*Drawbuffer,imagenr)



funkheld hat geschrieben:
Retro-X ? was ist das. ?

Danke.
gruss

Retro-X ist meim Programm mit dem man PC Bilder für diverse Retro-Systeme konvertieren kann. Momentan ist die Weiterentwicklung auf Es gelegt. Die letzte Version war Retro-X Alpha 8.0, und hat noch ein paar Bugs.

_________________
PB 4.61Beta1 32/64Bit. AMD FX6100, 8 GB RAM, ATI Radeon 5750, Win7 64 (64 bit ist mist weil 16-Bit Programme wie MakeTZX nicht mehr darauf funktionieren).


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 10 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye