VGA 640x480@60Hz 80x60(8X8) char Color16/16 für Spiele
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
-
Zuletzt geändert von PIC18F2550 am Mi 17. Jul 2013, 17:12, 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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Regime sendet &c8 als backspace anstelle von $08. 
in reg-ios.spin wird aber ein $08 ordnungsgemäß gesendet
Ursache ist warscheinlich unterschiedliche Tastaturtreiber
Da bau ich dort besser eine Convertierung ein. 

in reg-ios.spin wird aber ein $08 ordnungsgemäß gesendet
Ursache ist warscheinlich unterschiedliche Tastaturtreiber

Code: Alles auswählen
'' 1C0 Left Arrow
'' 1C1 Right Arrow
'' 1C2 Up Arrow
'' 1C3 Down Arrow
'' 1C4 Home
'' 1C5 End
'' 1C6 Page Up
'' 1C7 Page Down
'' 1C8 Backspace
'' 1C9 Delete
'' 1CA Insert
'' 1CB Esc
'' 1CC Apps
'' 1CD Power
'' 1CE Sleep
'' 1CF Wakeup
Code: Alles auswählen
CrsLt = $02E4 '←
CrsRt = $03E6 '→
CrsUp = $04E8 '↑
CrsDn = $05E2 '↓
CrsHm = $06E7 '◀
CrsEn = $07E1 '▶
PgUp = $A0E9 '
PgDn = $A2E3 '
Bksp = $00C8 'È
Del = $BAEA '
Ins = $BBE0 '
Esc = $001B '
Apps = $CC00 'Ì
Power = $CD00 'Í
Sleep = $CE00 'Î
WkUp = $CF00 'Ï

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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Aber erst bei Mutti kaffee trinken
.





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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Ich weis nicht wo das herkommt.
ich habe schon bel-keyb.spin verwendet das gleiche Problem. mal in ruhe darüber nachdenken.
Datenstrom auf dem BUS beim starten 1. Teil. Datenstrom auf dem BUS beim starten 2. Teil. Am Ende wird es wol darauf hinauslaufen, das ich einen kompletten Treiber, nur für Spiele mache, und so das Problem umgehen werde.
ich habe schon bel-keyb.spin verwendet das gleiche Problem. mal in ruhe darüber nachdenken.
Datenstrom auf dem BUS beim starten 1. Teil. Datenstrom auf dem BUS beim starten 2. Teil. Am Ende wird es wol darauf hinauslaufen, das ich einen kompletten Treiber, nur für Spiele mache, und so das Problem umgehen werde.

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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Also es kommt ein Komlettmodul mit VGA, Keybord und Maus.
Die Schnittstelle verwendet zwar die port's aber die Daten werden eine andere Bedeutung haben.
Administra bleibt so wie der EEPROM ist.
Für regnatix wird ein Grundmodell für Spiele erstellt das den neuen VGA-Treiber ansteuern kann.
Regime kann dann das Grundmodell starten und das Grundmodell kehrt am Ende zu regime zurück.
Auszug vom neuen Treiber
Die Schnittstelle verwendet zwar die port's aber die Daten werden eine andere Bedeutung haben.
Administra bleibt so wie der EEPROM ist.
Für regnatix wird ein Grundmodell für Spiele erstellt das den neuen VGA-Treiber ansteuern kann.
Regime kann dann das Grundmodell starten und das Grundmodell kehrt am Ende zu regime zurück.
Auszug vom neuen Treiber
Code: Alles auswählen
a := startm(bini#BEL_MOUSED, bini#BEL_MOUSEC)'mausport starten
a := startk(bini#BEL_KEYBD, bini#BEL_KEYBC, %0_000_000, %01_01000) 'tastaturport starten
a := startv(@screen, @ckx, @sync) 'start vga text driver
if (a)
xchr($FE)
xstr(string("(c)PIC18F2550 VGA 80x60, COLOR 16/16 RASTER 8x8 Treiber fuer HIVE r48/n"))
xstr(string("Z1013.A2 Zeichensatz/n"))
waitcnt(clkfreq * 2 + cnt)
case par_mpresent
0 : xstr(string("no mouse connected/n"))
1 : xstr(string("two-button or three-button mouse/n"))
2 : xstr(string("three-button scrollwheel mouse/n"))
3 : xstr(string("five-button scrollwheel mouse/n"))
case -par_kpresent
true : xstr(string("keybord connected/n"))
False: xstr(string("no keybord connected/n"))
waitcnt(clkfreq * 4 + cnt)
- Dateianhänge
-
- Steuerzeichen.pdf
- (95.89 KiB) 631-mal heruntergeladen
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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Also die datenströme sind i.O.
Woher das $C8 beim backspace stammt ist mir immer noch ein Rätzel.
Woher das $C8 beim backspace stammt ist mir immer noch ein Rätzel.
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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Stand des Treibers : ersteinmal die Textverwaltung, Maus, Config...
Die Fuktionen habe ich mal rausgenommen.
Code: Alles auswählen
cmd := gc
if cmd > 0 ' > 0
xchr(cmd) ' textzeichen $01..$FF
else
cmd := gc
case cmd
'----------------------------------------- KEYBOARD
$01: 'io ' Tastaturstatus senden
$02: 'io ' Tastaturzeichen senden
$03: ' ' Statustasten ($100..$1FF) abfragen
$04: ' ' Keybord Kursorstatus lesen
$05: ' ' Keybordkursorstatus setzen
$06: ' ' Kursor von Windows lesen
$07: ' ' Kursor von Windows setzen
'----------------------------------------- MAUS
$10: ' ' Maus Kursorstatus lesen
$11: ' ' Maus Kursorstatus setzen
$12: 'io ' Maus position lesen(x,y,z)
$13: 'io ' Maus position setzen(x,y,z)
$14: ' ' Maus letzte click position (x,y,z)
'----------------------------------------- VGA-Textausgabe
$20: 'io ' clear Fenster
$21: 'io ' Kursor home im fenster
$22: 'io ' Kursor pos1
$23: 'io ' scrollup scrollt das Fenster nach oben
$24: 'xxx' scrolldown scrollt das Fenster nach unten
$25: 'io ' Kursor im Fenster backspace
$26: ' ' Tabulatortabelle setzen
$27: 'io ' tab im fenster setzen
$60: ' ' aktuelle Fenster Nummer lesen
$61: ' ' aktuelle Fenster Nummer setzen
$70: ' ' Fenster Schriftfarbe setzen
$71: ' ' Fenster Hintergrundfarbe setzen
'----------------------------------------- VGA-Zeichensatz
$80: 'io*' hive-logo ausgeben
$81: ' ' Ein Zeichen im Zeichensatz ändern
'----------------------------------------- CHIP-MANAGMENT
$F0: ' ' Config abfragen
$F1: 'io ' screeninit
$FF: 'io ' bellatrix neu starten
other:
b := Awindows
Awindows := 9
xstr(string("BUS-COMMAND-ERROR>00 "))
xstr(integerToHexadecimal(cmd,2))
xstr(string("<\n"))
repeat 2
waitcnt(clkfreq + cnt)
!outa[HBEAT] 'led blinken
Awindows := b
else ' LED Error meldung
waitcnt(clkfreq + cnt)
!outa[HBEAT] 'led blinken
Code: Alles auswählen
'io ' Getestet
' ' ungetestet
'xxx' geht nicht
Code: Alles auswählen
PRI xchr(a) ' ' ein Zeichen ausgeben
if (a == "\") & !(lchar[Awindows] == "\") ' Zeichen "\" zwischenspeichern
lchar[Awindows] := a
else
if (a == "\") & (lchar[Awindows] == "\") ' doppeltes "\\"
lchar[Awindows] := 0
if !(a == "\") and (lchar[Awindows] == "\") ' doppeltes "\?" Steuerzeichen
lchar[Awindows] := 0
case a
"n" : '\n newline
lchar[Awindows] := a
spalte[Awindows] := 0
if (zeile[Awindows] < eline[Awindows])
zeile[Awindows]++
else
zeile[Awindows] := eline[Awindows]
wordmove(@screen[sline[Awindows]*cols], @screen[(sline[Awindows]+1)*cols],(eline[Awindows]-sline)*cols) 'wordmove(dest,src,cnt)
wordfill(@screen[eline[Awindows]*cols], fcolor[Awindows] + hcolor[Awindows] + " ", cols)
else ' Zeichen 0..255 Ausgeben
lchar[Awindows] := 0
screen[spalte[Awindows] + zeile[Awindows] * 80] := fcolor[Awindows] + hcolor[Awindows] + a
spalte[Awindows]++
if spalte[Awindows] >79
spalte[Awindows] := 0
zeile[Awindows]++
if (zeile[Awindows] > eline[Awindows])
zeile[Awindows]--
wordmove(@screen[sline[Awindows]*cols], @screen[(sline[Awindows]+1)*cols],(eline[Awindows]-sline)*cols) 'wordmove(dest,src,cnt)
wordfill(@screen[eline[Awindows]*cols], fcolor[Awindows] + hcolor[Awindows] + " ", cols)
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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Und er werde Farbe.
1. Versuch Text mit Farbattributen zu übertragen.

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
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
- PIC18F2550
- Beiträge: 2851
- Registriert: Fr 30. Sep 2011, 13:08
Re: VGA 640x480@60Hz 80x60(8X8) char Color16/16
Im speedtest ist diese version nicht der Hammer.
Daher Planänderung.
Es gibt keine Comandosignatur ($00) mehr. dammit verschwinden die texte in der Commandostruktur.
da die texte nicht die Masse sind ist das akzeptabel.
Objekte kommen direkt in Bellatrix und werden nur noch von Regnatix angewiesen wo und wie darzustellen.

Daher Planänderung.
Es gibt keine Comandosignatur ($00) mehr. dammit verschwinden die texte in der Commandostruktur.
da die texte nicht die Masse sind ist das akzeptabel.
Objekte kommen direkt in Bellatrix und werden nur noch von Regnatix angewiesen wo und wie darzustellen.
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
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
- 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 für Spiele
@PIC: Der Font ist doch 8x8 Pixel? Hast du mal einen Quelltext zum extrahieren, ich bräuchte mal so einen Font für den G1-Treiber. Mal schauen, ob das noch auf dem TV lesbar ist.
"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