KC85/4 dual VGA

Alles was Du selbst gebaut hast, hier herein. Das Projekt muss allerdings mit einem oder mehreren Parallax Propeller µC realisiert worden sein.
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: KC85/4 dual VGA

Beitrag von PIC18F2550 »

So sieht die neue Platte aus.
Beide Seiten sind Daten mässig vollständig getrennt.
Jetzt heist es erst ein mal wieder Warten ....
Dateianhänge
TOP.png
BOTT.png
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: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: KC85/4 dual VGA

Beitrag von PIC18F2550 »

Eigentlich müssten die VGA Löcher durchsichtig sein. Sind sie aber nicht.

Wie müsste die Linie (Layer in Eagle) für die VGA-Buchse sein.

Ich habe "milling" und "outlinie" getestet beides beides keinen Erfolg mit dem Gerber Viewer.
Dateianhänge
FP.png
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: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: KC85/4 dual VGA

Beitrag von PIC18F2550 »

Antwort vom Schmied : Es ist alles OK der Gerberwiev erkennt keine Durchbrüche.

Also gleich den Autrag dem Schmied hinterher geworfen.
Nu solle er es auch machen. :)
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: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: KC85/4 dual VGA

Beitrag von PIC18F2550 »

So die VGA Platten sind da. :JUBELN

Die bestellung bei Reichelt hat es nicht geschafft. :oops:

Das heist noch eine Woche warten.
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: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: KC85/4 dual VGA

Beitrag von PIC18F2550 »

So beide Kanäle Arbeiten.:)
Dateianhänge
20190320_220338.jpg
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: KC85/4 dual VGA

Beitrag von kuroneko »

Congratulations!

Wie ist das dann eigentlich auf dem KC, muss man da "offiziell" mit 'ner Tastenkombination umschalten um den anderen screen zu sehen?
Benutzeravatar
digger
Administrator
Beiträge: 676
Registriert: Sa 23. Mai 2009, 22:44
Wohnort: Schorfheide
Kontaktdaten:

Re: KC85/4 dual VGA

Beitrag von digger »

ich finde das echt Hammer! aber genau, erzähl mal wie man die Eingabe aber auch die Ausgabe switcht? Kann man auch vom KC Basic aus steuern auf welchem Bildschirm man etwas ausgeben möchte?

P.S. auf jeden Fall wird das für die KC Jünger auf dem Treffen ein unglaubliches Highlight, die wollen das sicher alle haben :D
Benutzeravatar
PIC18F2550
Beiträge: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: KC85/4 dual VGA

Beitrag von PIC18F2550 »

Ich kenne zur Zeit nur die Variante mit der Funktionstasten definition. "ESC 1" und "ESC 2"

Aber das funktioniert genauso wie bei der internen Graphig.

Das ist mit Version 2.

Die Version 3 soll zwei verschiedene Graphigmodis haben.
einmal wie das original und einmal echten Textmodus.(128x64) zum Programmieren.
Aber da werde ich wohl wieder kuroneko nerven, wie ich die Treiber ohne umladen der COGs abwechselnd in den Ruhemodus schicken kann.
Ich nehme an das das weniger Störungen auf dem Bildschirm verursacht.
In wie weit das ein vorteil gegenüber das neuladen bringt weis ich noch nicht.
Bei meinen Texttreiber kann ich immer nur für eine Zeile die Farbe bestimmen ... :( das währe nicht so schön.
Für den Text und Farbattributen sind getrennte arrays vorhanden wie beim KC85/4 üblich.

Im Treiber ist auch eine Anzeige für einen Maus Kursor vorhanden nur müsste dieser dem KC zugänglich gemacht werden.

Mit dem haben wollen ist das so eine Sache.
Für das M100 (VGA für KC85/3 mit 1MB SRAM gepuffert) hielt sich das Interesse in grenzen Ich und +1. :(
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: 2831
Registriert: Fr 30. Sep 2011, 13:08

Re: KC85/4 dual VGA

Beitrag von PIC18F2550 »

So 128x64 läuft erst einmal.
Jetzt geht es noch um die Umschaltung.

Code: Alles auswählen

OBJ
  system: "core.con.system"

VAR
    long    cogv[2]

PUB start(ID, mailbox)
  long[mailbox][3] := 0
  cogv[0] := system.launch( ID, @driver, mailbox) & 7
  cogv[1] := system.launch(cogv[0], @driver, mailbox|$8000)
  cogv[0] := cogv[0] +1
  cogv[1] := cogv[1] +1
  repeat
  until long[mailbox][3] == $0000FFFF           ' OK (secondary/primary)
  long[mailbox][3] := 0                         ' release sync lock

PUB stop | i                                                       'io ' Stop VGA driver - frees two COGs
    repeat i from 0 to 1
        if cogv[i]
            cogstop(cogv[i]~ - 1)

Code: Alles auswählen

PUB start(ScreenPtr, CursorPtr, SyncPtr) : okay | i, j, a  'io '
{{
'' Start VGA driver - starts two COGs
'' returns false if two COGs not available
''
''      BasePin = VGA starting pin (0, 8, 16, 24, etc.)
''
''      ScreenPtr = Pointer to 80x30 words containing Latin-1 codes and colors for
''              each of the 80x30 screen characters. The lower byte of the word
''              contains the Latin-1 code to display. The upper byte contains
''              the foreground colour in bits 11..8 and the background colour in
''              bits 15..12.
''
''              screen word example: %00011111_01000001 = "A", white on blue
''
''      CursorPtr = Pointer to 6 bytes which control the cursors:
''
''              bytes 0,1,2: X, Y, and MODE of cursor 0
''              bytes 3,4,5: X, Y, and MODE of cursor 1
''
''              X and Y are in terms of screen characters
''              (left-to-right, top-to-bottom)
''
''              MODE uses three bottom bits:
''
''                      %x00 = cursor off
''                      %x01 = cursor on
''                      %x10 = cursor on, blink slow
''                      %x11 = cursor on, blink fast
''                      %0xx = cursor is solid block
''                      %1xx = cursor is underscore
''
''              cursor example: 127, 63, %010 = blinking block in lower-right
''
''      SyncPtr = Pointer to long which gets written with -1 upon each screen
''              refresh. May be used to time writes/scrolls, so that chopiness
''              can be avoided. You must clear it each time if you want to see
''              it re-trigger.
}}
    stop                                                               ' if driver is already running, stop it
    reg_vcfg := $200000FF + (BEL_VGABASE & %111000) << 6                ' implant pin settings
    i := $FF << (BEL_VGABASE & %011000)
    j := BEL_VGABASE & %100000 == 0
    reg_dira := i & j
    reg_dirb := i & !j
    sync_cnt := cnt + $10000                                            ' implant CNT value to sync COGs to
    longmove(@screen_base, @ScreenPtr, 2)                               ' implant pointers
    screen_at := 0
    screen_op := @screen_at
    font_base := @font
    vf_lines.byte := vf                                                 ' implant unique settings and launch first COG
    vb_lines.byte := vb
    font_part := 1
    cogv[1] := cognew(@entryv, SyncPtr) + 1
    waitcnt($2000 + cnt)                                                ' allow time for first COG to launch
    vf_lines.byte := vf+4                                               ' differentiate settings and launch second COG
    vb_lines.byte := vb-4                                               ' differentiate settings and launch second COG
    font_part := 0
    cogv[0] := cognew(@entryv, SyncPtr) + 1
    if cogv[0] and cogv[1]                                              ' if both COGs launched, return true
        return true
    stop                                                             ' else, stop any launched COG and return false

PUB stop | i                                                       'io ' Stop VGA driver - frees two COGs
    repeat i from 0 to 1
        if cogv[i]
            cogstop(cogv[i]~ - 1)

Die Umschaltung klappt einmal danach bleibt der Bildschirm Dunkel.
ich denke das ich das core.con.system anderst behandeln muss.
Oder müssen die beiden COGs logisch hintereinander liegen?

Wer kann mir den richtigen Tritt verpassen so das ich in die richtige Richtung fliege.
Danke.
Dateianhänge
20190321_183231.jpg
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
kuroneko
Beiträge: 202
Registriert: Sa 22. Okt 2011, 13:05
Wohnort: FN, Germany

Re: KC85/4 dual VGA

Beitrag von kuroneko »

system.launch hat das +1 schon mit drin.

Code: Alles auswählen

PUB launch(ID, code, data)
'' PASM quick launch using a specific or the next available ID.
''
'' parameters
''       ID: cog ID
''           0..7: coginit, otherwise cognew (may fail)
''     code: address of code fragment (4n)
''     data: cognew/coginit parameter (4n)
''
'' result
''     == 0: [ABORT] thread creation failed (cognew only)
''     <> 0: thread/cog ID + 1
Antworten