Robotrontechnik-Forum

Registrieren || Einloggen || Hilfe/FAQ || Suche || Mitglieder || Home || Statistik || Kalender || Admins Willkommen Gast! RSS

Robotrontechnik-Forum » Technische Diskussionen » EC1834 640x480 Grafikmode.. » Themenansicht

Autor Thread - Seiten: -1-
000
24.01.2018, 19:20 Uhr
holm

Avatar von holm

..ich mache mir hier ja mehrere häßliche Tage mit der Reparatur der COL Karten.. es geht zäh vorwärts.
Meine am wenigsten besten Freunde sind da derzeit K1533IR32 (74LS374) und U2164.

Da man das "diagn" Programm vom EC1834 getrost in der Pfeife rauchen kann (es erzählt mehr oder weniger das Etwas kaputt ist, aber nicht was und ein Loop Test ist damit auch nicht möglich, es sei denn man hat eine Fachkraft die immer "J" eingibt), muß ich mir selber was schreiben.

Nur im 640x480 Modus ist der gesamte Bildwiederholspeicher involviert, freundlicherweise befindet er sich genau in dem Modus nicht im direkten Zugriff der CPU, man muß die Daten durch den GDC wursteln.
Kennt Jemand eine Dokumentation in der das speziell für den 1834 beschrieben ist? Es sollte da einen DMA Mode für den GDC geben..aber wie ist der auf der COL implementiert? In den Büchern zum 1834 die ich bisher durchgeblättert habe wird offensichtlich nicht so konkret darauf eingegangen das man damit was programmieren könnte.. hab ich was übersehen?

Es gibt wohl die Möglichkeit über einen BIOS Interrupt einen Punkt zu setzen bzw. auch dessen Status abzufragen, ich vermute aber das ich damit adlig werden würde, der Overhead geht bald nicht größer.


BTW: bin ich der Einzige bei dem ECDIAG ständig einen KIF Adapter findet obwohl der nicht im EC steckt?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 24.01.2018 um 19:53 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
001
24.01.2018, 20:25 Uhr
RP



ECDIAG kenne ich nicht, ist das ein DCP - DOS Programm, sind die Driver für den COL Karte in der Config.sys geladen?

Rolf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
002
24.01.2018, 20:47 Uhr
holm

Avatar von holm

ja...und ja Rolf.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
003
26.01.2018, 15:45 Uhr
RP



Hast du den Checkit 3.0 für DOS ?, der kommt mit den EC1834 recht gut zu recht.

https://archive.org/details/checkit_30

Rolf
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
004
05.02.2018, 13:01 Uhr
_mie_



Gruß,

Da dies mein erster Beitrag in einem Forum ist, bin ich wohl noch etwas unbeholfen, aber ich suche noch Leute mit Erfahrung im Programmieren des 640x480-Modus des Color-Adapters.


Die Programmierung des GDC auf dem Color-Adapter ist etwas aufwendig, aber ich habe schon einen BGI-Treiber dafür geschrieben.

Zuerst muß man die Farbebenen auswählen, dabei kann man zwei Farbebenen auf einmal wählen. Danach kann man kann über mehrere GDC-Kommandos ein Byte (oder vielleicht auch ein Wort) setzen.

Danach wählt man die anderen beiden Farbebenen aus und setzt wieder das Byte oder Wort.

Auch ein Ändern der Farbpalette ist möglich.

Es gibt einen DMA-Read und DMA-Write-Befehl für den GDC, aber wie er anzuwenden ist, weiß ich nicht.


Vielleicht kann ich noch etwas Quelltext schicken.



Andreas
--
bvjsdjfuezftewefsdxvyxv
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
005
05.02.2018, 13:52 Uhr
holm

Avatar von holm

Na dann willkommen und erst einmal Dank fürs melden Andreas.

Ich habe gestern Abend etwas lustlos in der 7220 Doku herumgestochert das ist ...ätzend.
Mein Problem ist ja möglichst den gesamten Bildwiderholspeicher auf Fehler zu untersuchen,
was genau in dem Moment zu sehen ist, ist mehr oder weniger uninteressant.x
Auch dieses ECDIAG Programm scheint nur einen kleinen Bereich zu überprüfen (an der Stelle an der das weiße Quadrat gezeichnet wird).
Ich müßte also erst mal den Grafikmodus einschalten (ich nehme Tubo-C 2.x, da müßte BGI ja auch funktionieren, bin interessiert am Treiber) und dann wahrscheinlich ziemlich zu Fuß Worte in den Speicher schreiben und zurücklesen.
Wenn ich das richtig im Kopf behalten habe sind die CGA oder Text Modi 16bittig erreichbar, der "große" Grafikspeicher nur Byteweise. Es gibt BIOS befehle für das Seten eines Punktes oder ermitteln des Status eines Punktes, das ist höchst wahrscheinlich am einfachsten zu bewerkstelligen..aber riecht schon deutlich nach "das dauert"....

Ich habe mich schon so ziemlich damit abgefunden das der Auftrag die Karten zu reparieren wohl wie Hefe ist, das quillt..und die Anteilnahme hält sich sehr in Grenzen....
Ich muß wahrscheinlich die gesamte GDC Programmiererei samt Initialisierung durchkauen und dabei den (unvollständigen) Schaltplan des COL Adapters interpretieren.
Ich bin für jede Hilfe dankbar..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
006
05.02.2018, 15:03 Uhr
_mie_



Danke für meine erste Antwort in diesem Forum.


Den ganzen Bildschirmspeicher zu testen wird wohl etwas schwierig, weil der Grafikmodus 640x480 nicht den gesamten Bildschirmspeicher beansprucht. Man kann allerdings die Anfangsadresse des dargestellten Bereiches verschieben.

Das Lesen des Bildschirmspeichers hat bei mir noch nicht zu 100% zuverlässig geklappt, man muß wohl das Statusregister abfragen oder so. Das muß ich selber erst probieren.

Mal sehen, ich kann ja ein Testprogramm schreiben, brauche dazu etwas Zeit. Außerdem kann ich vielleicht eine Include-Datei für T-Pascal schicken.

Viele Grüße

Andreas
--
bvjsdjfuezftewefsdxvyxv
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
007
05.02.2018, 15:52 Uhr
wpwsaw
Default Group and Edit


Holm,

in Wiederholun zu Rolf, hast du CHECKIT? da werden alle MODI durchgefahren

wpw
--
RECORD, CRN1; CRN2; PicoDat; LC80; Poly880; KC85/2,3,4,5 ; KC87; Z1013; BIC; PC1715; K8915; K8924; A7100; A7150; EC1834; und P8000 ab jetzt ohne Tatra813-8x8 aber mit W50LA/Z/A; P3; ES175/2 und Multicar M25 3SK; Barkas B1000 HP
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
008
05.02.2018, 20:29 Uhr
holm

Avatar von holm

@Wolf-Peter: Ja, ich habe checkit und checkit weiß vom "hochauflösenden" 640x480 Modus des EC1834 leider gar nichts weil dieser Spezialfall von Robotron in der West Software keinerlei Berücksichtigung fand :-)

@_mie_: Ja gerne, schick mir die Datei an holm@freibergnet.de (ja, ich weiß was ich tue :-)) )
Mal sehen ob ich das irgendwie umwurschteln kann. Ich habe früher mal Turbopascal programmiert, bin dann auf Unix umgestiegen, mache seit dem C und weiß von Pascal nix mehr :-|

Nichts desto trotz habe ich die Tubo5.5 installdateien wohl schon auf dem 1834.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
009
09.02.2018, 13:42 Uhr
holm

Avatar von holm

_mie_ hat mir ein paar Turbopascal Progrämmchen zum ausprobieren geschickt, ich scheitere aber schon beim compilieren...


Quellcode:



type dmtyp = (MIXED,GRAPHIC,CHARACTER);
     modetyp = (REPLACE,COMPLEMENT,PRESET,PSET);
     figtyp = (CHARANDDOT,STRAIGHTLINE,GRAPHICSCHAR,CIRC,RECT,SLANTED);

const GDCCONST : array(.figtyp.) of byte = (0,8,$10,$20,$40,$80);
      xmp1 = 640; ymp1 = 480; (* Aufl”sung z.B. EC1834 *)
      xmax = 639; ymax = 479; (* Aufl”sung - 1 *)
      gdcparam : record (* Alle Parameter sollten nur ber ihre proceduren ge„ndert werden *)
      displaymode: dmtyp;
      drawwhiledisp, screenenable, displaycursor, blinkcursor : boolean;

      dispzoom, grzoom, blinkrate, curtop, curbot : byte;
      mode: modetyp;
      pattern: integer;

      dynamicram,interlaced,repeatfieldchar: boolean;
      linesperchar,pitchvalue,wordsperline,bytesperline : byte;
      activdispword,activlines : integer;
      horisyncwidth,vertsyncwidth,horfrontporch,horbackporch,
      verfrontporch,verbackporch : byte;
      vsyncmaster : boolean
   end = (displaymode      : GRAPHIC; (* Text & Grafik-modus *)
          drawwhiledisp    : FALSE;
          (* Nur bei ausgeschaltetem Kathodenstrahl malen *)
          screenenable     : TRUE; (* Anzeige an *)
          displaycursor    : TRUE; (* Cursor an *)
          blinkcursor      : TRUE; (* Cursor blinkt *)
          dispzoom       : 0;    (* Kein Text-Zoom Faktor *)
          grzoom           : 0;    (* Kein Grafik-Zoom *)
          blinkrate       : 1;    (* Blinkgeschwindigkeit *)
          curtop       : 0;    (* Obere Kannte/Cursor *)
          curbot       : 15;    (* Untere Kante/Cursor *)
          mode               : REPLACE; (* Replace-Modus *)
--->        pattern       : $FFFF; (* Pattern-Register *)

          (* Ab hier ist's Hardwareabhängig : *)



Das ist ein Stück Programm aus einem File NEC7220.PAS das Andreas aus der mc-soft vom November 1986 hat.
Der Turbo5.5 Compiler spuckt mich an: Error 76 "Constant out of range" ..nunja, pattern ist oben drüber als integer vereinbart, und prinzipiell kann ich verstehen das ich einer Variable deren Wertebereich von -32768 bis +32767 geht einen Wert von 65535 zuweisen möchte..andererseits ist +32767 eigentlich hexadezimal hier $FFFF. Ich habe lange vergessen was hier zu tun ist..range checking in den Compiler Optionen ist eigentlich "aus". In C löst das ein Type Cast ..und in Turbopascal??

Einer da der das noch weiß?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 09.02.2018 um 13:42 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
010
09.02.2018, 14:10 Uhr
Hobi



nur damit der Link nicht verloren geht:

High Resolution Graphics Using The NEC7220: http://www.bitsavers.org/pdf/microCornucopia/Micro_Cornucopia_%2327_Dec85.pdf

C-Quelltexte: https://retrobrewcomputers.org/n8vem-pbwiki-archive/0/35845334/48860720/35845601/D7220-1303-test-pgm.zip
--
-------------------------------------------
Corontäne
-------------------------------------------

Dieser Beitrag wurde am 09.02.2018 um 14:17 Uhr von Hobi editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
011
09.02.2018, 14:16 Uhr
Mobby5



-32767 ist nicht $FFFF sondern -1 ist $FFFF.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden

Dieser Beitrag wurde am 09.02.2018 um 14:17 Uhr von Mobby5 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
012
09.02.2018, 14:24 Uhr
holm

Avatar von holm

...anyway, das erklärt nicht warum ich die Source nicht übersetzen kann, die war schon mal in einer Zeitung...und bei andreas funktionierts wohl auch. Das muß irgend eine Compiler Option sein.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 09.02.2018 um 14:25 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
013
09.02.2018, 17:44 Uhr
Mobby5



Probier mal $Q- und/oder $R-
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
014
09.02.2018, 20:16 Uhr
holm

Avatar von holm

..werde ich machen.
Die Ursache ist mittlerweile durch Mailverkehr mit _mie_ klar: er benutzt TPascal 3, der compiler ist also anders.

Ich habe auch ein Turbo3 auf der Pladde, allerdings finde ich keine Bildschirminstallation in tinst die richtig funktioniert, Ansi geht fast, das vertikale scrollen funktioniert im editor aber nicht.
Hat da Jemand eine konsistente Version greifbar?

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
015
09.02.2018, 21:01 Uhr
Mobby5



Hab mal auf die schnelle das hier gefunden:

http://old-dos.ru/files/file_133.html
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
016
09.02.2018, 21:44 Uhr
holm

Avatar von holm

Ich habs mir mal gezerrt, ist glaube ich das Selbe was ich auch auf Rolfs Platte gefunden hatte (3.00B).
Mal gucken wie sich das die Bildschirmsteuerung verhält.

Man kann dassicher auch so anpassen wenn man sich die Mühe macht in tinst die Steuersequenzen zu Fuß einzuhebeln, dafür muß man aber erst mal ein paar Seiten toten Baum durchgrasen..

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
017
10.02.2018, 17:49 Uhr
Enrico
Default Group and Edit


Diese Plünderung hier, geht wohl in die Richtung.....

https://www.ebay.de/itm/Zwei-Keramik-CPU-mit-goldkontakten-aus-dem-alten-Grafikkarte/282843345241
--
MFG
Enrico
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
018
10.02.2018, 17:51 Uhr
holm

Avatar von holm

Ja..das war ne COL..allerdings sind seine CPUs für den Preis noch nicht rar genug.

Gruß,

Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
019
10.02.2018, 18:28 Uhr
Mobby5



Vor allem: "CPU's".

Trotzdem Schade um die Karte.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden

Dieser Beitrag wurde am 10.02.2018 um 18:28 Uhr von Mobby5 editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
020
10.02.2018, 20:11 Uhr
holm

Avatar von holm

Na dann schreibe doch den Spezi mal an ob er den Rest noch hat, 17 Euro komplett ist ja noch erträglich..
..ok, habe das gerade gemacht.

Gruß,
Holm
--
float R,y=1.5,x,r,A,P,B;int u,h=80,n=80,s;main(c,v)int c;char **v;
{s=(c>1?(h=atoi(v[1])):h)*h/2;for(R=6./h;s%h||(y-=R,x=-2),s;4<(P=B*B)+
(r=A*A)|++u==n&&putchar(*(((--s%h)?(u<n?--u%6:6):7)+"World! \n"))&&
(A=B=P=u=r=0,x+=R/2))A=B*2*A+y,B=P+x-r;}

Dieser Beitrag wurde am 10.02.2018 um 20:13 Uhr von holm editiert.
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
021
10.02.2018, 20:32 Uhr
Mobby5



Hab kein 1834. Lohnt daher (vorerst) für mich nicht.
--
und ausserdem muss in Zeile 20 der Doppelpunkt durch ein Semikolon ersetzt werden
Seitenanfang Seitenende
Profil || Private Nachricht || Suche Zitatantwort || Editieren || Löschen
Seiten: -1-     [ Technische Diskussionen ]  



Robotrontechnik-Forum

powered by ThWboard 3 Beta 2.84-php5
© by Paul Baecher & Felix Gonschorek