VGA 640x480@60Hz 80x60(8X8) char Color16/16 für Spiele

Du hast ein Betriebssystem für den Hive geschrieben oder beschäftigst dich mit den grundlegenden Systemfunktionen, dann bist du hier richtig!
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von PIC18F2550 »

drohne235 hat geschrieben:Jetzt mach PIC nicht verrückt
das ist bei mir nicht weider schlimm es kann nur noch besser werden :mrgreen: :mrgreen: :mrgreen:
So das habt ihr jetzt davon.
VGA80x60.bel
(32 KiB) 525-mal heruntergeladen
Vielspaß beim testen.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von drohne235 »

Hey cool, funhktioniert ja fast schon alles unter TriOS! :)
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von PIC18F2550 »

Hey drohne235,

Ich hab ersteinmal die Maus integriert :mrgreen:Spiel doch mal mit dem scrollrad. :lol: :lol: :lol:
Zuletzt geändert von PIC18F2550 am Mi 17. Jul 2013, 17:14, insgesamt 1-mal geändert.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von drohne235 »

Das ist ja mal toll! Wie lang ist der Logbereich? Müsste noch automatisch nach oben scrollen oder du stellst den Cursor gleich in die letzte Zeile. :)
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von PIC18F2550 »

Das virtuelle Fenster ist 80x120 in dem Bereich können 10 Fenster (z.Z. nur Zeilen orientiert) eingerichtet und mit einem Zeiger umgeschaltet werden.
Jedes Fenster besitzt seinen eigenen Kursormerker für das keybord.
Ein Automatisches kursorscrollen ist noch nicht vorgesehen aber möglich.
Die Kursor sind vom VGA-Treiber und sind noch nicht bearbeitet.
Der kann nur die echten 80x60 vom Monitor.
Wenn ich das Bild nach oben scrolle wird vom Kursor y wert die nach oben gescrolten absoluten zeilen subtrahiert un ist er kleiner 0 dann wird er abgeschaltet.
Umgekehrt wenn er über die 60. Zeile kommt wird er auch abgeschaltet.

ich glaube KONG währe dafür gut geeignet. :mrgreen:

Ursprünglich wollte ich nur einen schnellen Bildwechsel.

Da in meiner version kein Keybord anschluss drann ist komme ich sogar auf 80x180.(ein schöner kleiner Editor)
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von PIC18F2550 »

So jetzt sind auf dem virtuellen screen z.Z. 80x120 10 Fensterbereiche einstellbar und ihre Keybord Kursordaten werden jetzt zwischengespeichert und beim wechsel ins nächste fenster wiederhergestellt. :mrgreen:

Code: Alles auswählen

    '------------------------------------------- CONTROLL
    long    plen                                ' länge datenblock loader
    byte    proghdr[16]                         ' puffer für objektkopf
    '------------------------------------------- VIDEOTREIBER
    long    cog[2]                              '
    long    sync                                ' sync long - written to -1 by VGA driver after each screen refresh
    long    screen_at                           ' Zeiger auf screenanfang für VGA Darstellung (in zeilen schritten)
    word    screen[cols * rows * SCREENS]       ' screen buffer - could be bytes, but longs allow more efficient scrolling
    byte    ckx, cky, ckm, cmx, cmy, cmm        ' cursor control bytes
    byte    cmz                                 ' cursor control bytes Scrollrad
    '------------------------------------------- KEYBORD
    long    keycode                             ' letzter tastencode
    '------------------------------------------- VIDEO
    byte    tab[TABANZ]                         ' tabulatorpositionen
    byte    Awindows                            ' Aktuelles Fenster
    long    lchar[WINDOWS]                      ' letztes ausgegebenes Zeichen
    word    fcolor[WINDOWS]                     ' Schriftfarbe
    word    hcolor[WINDOWS]                     ' Hintergrundfarbe
    byte    sline[WINDOWS]                      ' startzeile des scrollfensters (0 = 1. zeile)
    byte    eline[WINDOWS]                      ' endzeile des scrollfensters (0 = 1. zeile)
    byte    sspalte[WINDOWS]                    ' startspalte des scrollfensters (0 = 1. Spalte)
    byte    espalte[WINDOWS]                    ' endspalte des scrollfensters (0 = 1. Spalte)
    byte    spalte[WINDOWS]                     ' kursor X
    byte    zeile[WINDOWS]                      ' kursor Y
Zuletzt geändert von PIC18F2550 am Mi 17. Jul 2013, 17:15, insgesamt 1-mal geändert.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
drohne235
Administrator
Beiträge: 2284
Registriert: So 24. Mai 2009, 10:35
Wohnort: Lutherstadt Wittenberg
Kontaktdaten:

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von drohne235 »

So jetzt sind auf dem virtuellen screen z.Z. 80x120 10 Fensterbereiche einstellbar und ihre Keybord Kursordaten werden jetzt zwischengespeichert und beim wechsel ins nächste fenster wiederhergestellt. :mrgreen:
Ist das jetzt nutzbar wie die Multiscreens im normalen Treiber? Da gab es noch die Funktionen mgr_wscr und mgr_dscr um einzustellen, auf welchen Screen gerade geschrieben und welcher angezeigt wird und das wird auch verwendet um zwischen den ersten drei Forth-COGs mit ESC-1|2|3 umzuschalten.

Was mir dabei aufgefallen ist: Wenn ich im Forth zum Beispiel mit ESC-2 umschalte, so wird erst mgr_dsc und dann mgr_wscr gesendet. Der Bellatrix Code zeigt brav erst "BUS-COMMAND-ERROR>00 59< und folgend "BUS-COMMAND-ERROR>00 58< an (praktische Sache, werde ich in den Normalocode übernehmen! :) ). Allerdings wird die zweite Meldung am oberen Bidlschirmrand angezeigt und der Cursor steht bei Home in der linken oberen Ecke. Was mir noch aufgefallen ist: unser altes CR/NL-Problem schlägt wieder zu. Unter Forth werden immer doppelte Zeilenwechsel ausgeführt.
"Ob Sie denken, dass Sie es können, oder ob Sie denken, dass Sie es nicht können - in beiden Fällen haben Sie recht." Henry Ford
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von PIC18F2550 »

drohne235 hat geschrieben:Ist das jetzt nutzbar wie die Multiscreens im normalen Treiber
es sind fensterbereiche auf einem virtuellen Monitor von 80x120 von dem ein bereich von 80x1..60 bis 80x61..120 dargestellt wird(scrollrad).
drohne235 hat geschrieben:mgr_wscr und mgr_dscr um
noch nicht drinn.
drohne235 hat geschrieben:zwischen den ersten drei Forth-COGs mit ESC-1|2|3 umzuschalten
dafür deffiniert man 3 Fenster auf dem virtuellen Monitor.(Kursor zieht "fenster" in den Sichtbaren (teil noch nicht drinn)
Je mehr Fenster umso kleiner können diese ausfallen
1 Fenster 120
2 Fenster 2x60 oder 1x100 & 1x20 oder 1x119 & 1x1...
3 Fenster 3x40 oder ........

5 Fenster 5x24 das währe für 5 Forth COGs(äqivalent zum HIVE)

Dabei ist zu beachten das immer 80x60 angezeigt wird.
drohne235 hat geschrieben:Der Bellatrix Code zeigt brav erst "BUS-COMMAND-ERROR>00 59< und folgend "BUS-COMMAND-ERROR>00 58< an (praktische Sache, werde ich in den Normalocode übernehmen! :) ). Allerdings wird die zweite Meldung am oberen Bidlschirmrand angezeigt und der Cursor steht bei Home in der linken oberen Ecke.
Das ist das von mir in http://hive-project.de/board/viewtopic.php?f=7&t=671 angesprochene Problem wenn im treiber nicht alle möglichkeiten ausdekodiert werden können.
Die Fehleranzeige ist dafür schon ein wichtiger Hinweis das im System was nicht stimmt.
drohne235 hat geschrieben:Was mir noch aufgefallen ist: unser altes CR/NL-Problem schlägt wieder zu. Unter Forth werden immer doppelte Zeilenwechsel ausgeführt.
:shock: werd mal schaun. ;)
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von PIC18F2550 »

Code: Alles auswählen

        $0A, $0D:                                                 'new line
            if a == $0a and lchar[Awindows] == $0d
                a := 0
            lchar[Awindows] := a
            spalte[Awindows] := 0
            if (zeile[Awindows] < eline[Awindows])
                zeile[Awindows]++
            else
                zeile[Awindows] := eline[Awindows]
                xchr($06)
Ich habe eine böse idee das könnte am Foth liegen.
Forth = unix!! =Terminal orientierte Software

Bei Windows wird immer nur $0D ausgegebe =NL+POS1
Bei Linux wird immer nur $0A ausgegeben =NL+POS1
und Forth ist ganz vorbildlich da $0A = Zeilenvorschub und $0D = Wagenrücklauf ist.


und wenn die noch in einer anderen reihenfolge verwendet als die der treiber erkennt kommt so was raus. :lol:
Geiz ist nicht immer geil. :twisted:
Ich gehe mal was Stricken bis gleich.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Benutzeravatar
PIC18F2550
Beiträge: 2832
Registriert: Fr 30. Sep 2011, 13:08

Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16

Beitrag von PIC18F2550 »

Neues test Objekt :mrgreen:
Zuletzt geändert von PIC18F2550 am Mi 17. Jul 2013, 17:15, insgesamt 1-mal geändert.
Gruß
PIC18F2550

drone265/278
Barbarus hic ergo sum, quia non intellegor ulli.
Ein Barbar bin ich hier, da ich von keinem verstanden werde.
ʎɐqǝ ıǝq ɹnʇɐʇsɐʇ ǝuıǝ ɹǝpǝıʍ ǝıu ǝɟnɐʞ ɥɔı ´uuɐɯ ɥo
Antworten