Forum: PC-Programmierung Speicher für eine Grafik VGA320X200 256 Color. 8086


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Peter B. (funkheld)


Bewertung
-2 lesenswert
nicht lesenswert
Hallo guten Tag.

Ich möchte bitte eine Grafik VGA320X200 256 Color in einen Reservierten 
Speicherbereich legen , sind glaube ich so 64kb.
Ich möchte dann bei einer Spriteverschiebung dort ein Teil wieder nach 
VGA kopieren wo das Sprite war.

Wie mache ich das bitte in TC3?
Wie kann ich den TCC dazu bringen das ich es so Compiliere , das ich 
noch mehrere Segmente anlegen kann? SMALL wird wohl nicht reichen?

Danke.
GRuss

von Rene K. (xdraconix)


Bewertung
1 lesenswert
nicht lesenswert

: Bearbeitet durch User
von Peter B. (funkheld)


Bewertung
0 lesenswert
nicht lesenswert
Ich werds versuchen.

Es sind aber verschiedene Abteilungen in der Grafik usw.

Gruss

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
oder mal ein altes Data Becker Buch besorgen. Hier hat bestimmt noch 
einer sowas im Keller liegen, ich habe leider vor kurzem einen ganzen 
Umzugskarton mit dem historischen Zeug entsorgt.

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
http://www.c-jump.com/CIS77/ASM/Directives/D77_0030_models.htm

Compact könnte passen

dem dem Borland C++ 3.1 geht da so auf der Konsole oder einfach in
den Projekt-Settings in der IDE

bcc -ml pixel.c

könnte bei dir

tcc -ml pixel.c

sein

Vermutung
-ms - small?
-mh - huge?
-mc - compact?
-ml - large?

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert

von Nick M. (muellernick)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:
> Ich möchte bitte eine Grafik VGA320X200 256 Color in einen Reservierten
> Speicherbereich legen , sind glaube ich so 64kb.

malloc

> Ich möchte dann bei einer Spriteverschiebung dort ein Teil wieder nach
> VGA kopieren wo das Sprite war.

memcpy

von Peter B. (funkheld)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Hilfe.
Ich glaube ich falle euch bald auf dem Wecker.
Aber manche Sachen finde ich, die passen dann nicht zum TC3.

Das malloc zb habe ich gefunden:
int * array = malloc(2 * sizeof(int));
Funktioniert nicht.

Danke.
Gruss

von Rolf M. (rmagnus)


Bewertung
0 lesenswert
nicht lesenswert
Die Meldung passt, da dein Code als C++ übersetzt wird. Dort ist es 
nicht zulässig, ohne Cast von void* nach int* zu konvertieren. In C wäre 
das anders.

von Nick M. (muellernick)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:
> Funktioniert nicht.

Und was sagt die Meldung? Ja, ich hab sie gelesen. Jetzt musst Du 
sie noch lesen und verstehen.
Hint: casting

von Thomas Z. (usbman)


Bewertung
0 lesenswert
nicht lesenswert
nun viel einfacher wäre es die Datei in *.c umzubenennen, dann ist 
reines C. Ich sehe nirgens dass der TO in c++ programmiert.
Ich würde dir empfehlen die Borland Dokus zu beschaffen. So gut wie alle 
Bücher sind als PDF im Netz zu finden. (bitsavers).

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Kleiner Denkanstoß

Pseudo-Code kopiert ein Rechteck in einen (linearen) Speicher dest
int X1,X2,Y1,Y2

assert(X1 >= 0 && X1 < 320)
assert(X2 >= 0 && X2 < 320)
assert(Y1 >= 0 && Y1 < 200)
assert(Y2 >= 0 && Y2 < 200)
assert(X2 >= X1);
assert(Y2 >= Y1);

width = X2-X2;
height = Y2-Y1
start_offset = line*320 + X1;

byte* dest = (byte*)malloc(width*height);

for(int line = 0; line < height; ++line)
{
  memcpy(dest, (seg,start_offset), width);
  start_offset += 320;
  dest += width;
}

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
cppbert schrieb:
> width = X2-X2;
> start_offset = line*320 + X1;

> width = X2-X1;
> start_offset = Y1*320 + X1;

von georg (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Mods:

könntet ihr nicht ein neues Forum "PeterB" einrichten? Das würde die 
Übersichtlichkeit stark erhöhen.

Georg

von AntiFunkHeld (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Rene K. schrieb:
> Das alles unter den ersten Posts und fast ein und das selbe Thema.
> Kannst du das nicht bitte ein wenig zusammenfassen?!

Er ist doch schon zu blöd ganz offensichtliche Lösungen über Google zu 
suchen und zu finden.

von cppbert (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Nicht jeder ist das so versiert, manche können kein englisch usw. Nicht 
jeder der in kleine happen fragt ist faul sonder vielleicht nur 
untrainiert in der kommunikation

von Peter B. (funkheld)


Bewertung
-1 lesenswert
nicht lesenswert
-------------------------
Er ist doch schon zu blöd ....
-------------------------

Danke , aber so eine Sprache aus der Gosse wo du herkommst liegt mir 
nicht.
Viel Erfolg noch in deinem Leben. Du bist mir mit deiner Adresse bekannt 
und ich kenne auch dein Umfeld wo du herkommst.
Da kann man keine Höflicheit erwarten.

Viele Grüße von einem der noch Anstand hat.

: Bearbeitet durch User
von AntiFunkHeld (Gast)


Bewertung
-2 lesenswert
nicht lesenswert
Haha... nur getroffene Hunde bellen :-))))
Viel Glück in deiner IQ losen Gosse.

von cppbert (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Peter B. schrieb:
> Viel Erfolg noch in deinem Leben. Du bist mir mit deiner Adresse bekannt
> und ich kenne auch dein Umfeld wo du herkommst.

zum "guten" Ton im Internet gehört auch das weghören wenn Anonyme sich 
beschweren, don't feed the trolls

von Frank K. (fchk)


Bewertung
1 lesenswert
nicht lesenswert
Peter B. schrieb:
> -------------------------
> Er ist doch schon zu blöd ....
> -------------------------

Der Unmut, der hier hochkommt und den ich auch selber empfinde, liegt in 
einer falschen Erwartungshaltung an dieses Medium.

Ein Forum oder eine Newsgruppe o.ä. ist primär dafür gedacht und 
geeignet, konkrete Hilfestellungen bei eng umrissenen Fragestellungen zu 
geben. Dabei muss vorausgesetzt werden, dass der Fragesteller sein 
Handwerk prinzipiell versteht. In diesem Fall heißt das, dass der 
Fragesteller (a) die verwendeten Programmiersprachen sicher (!) 
beherrscht und (b) die verwendete Architektur hinreichend gut kennt. 
Ohne das erforderliche Basiswissen sind nämlich die erhaltenen 
Ratschläge nicht sinnvoll umsetzbar.

Foren sind ausdrücklich NICHT dafür geeignet, Grundlagenwissen zu 
vermitteln. Das überfordert dieses Medium und die Hilfswilligen und 
führt zu Unmut. Für die Vermittlung von Grundlagenwissen gibt es 
geeignetere Wege, beispielsweise die gebundenen Stapel von Totholz, auch 
Bücher genannt. Ja, systematisches Lernen ist anstrengend. Das war schon 
immer so und wird wahrscheinlich auch für die absehbare Zukunft so 
bleiben.

Und eines ist auch klar. Wer sich in diesem Fachgebiet, wo über 95% 
aller Publikationen auf English sind, bewegt, der muss halt diese 
Sprache auch können. Punkt. Zumindest lesenderweise. Auch das ist 
lernbar.

@Peter B.: Besorge Dir irgendwo her passendes Lesematerial (PC Intern 
2.0, Turbo C Bücher von Markt&Technik, Data Becker oder wasweißich und 
8086-Assembler), setze Dich auf Deinen allerwertesten, und ziehe Dir 
erstmal das Basiswissen rein, bevor Du hier noch mehr Leute nervst.

fchk

: Bearbeitet durch User
von cppbert (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Warum denn so förmlich: Peter stellt sich doch gar nicht so blöd an, ist 
nicht frech und spamt das Forum auch nicht total zu, wer kein Bock hat 
brauch einfach nicht helfen, reicht doch

von guest (Gast)


Bewertung
1 lesenswert
nicht lesenswert
cppbert schrieb:
> und spamt das Forum auch nicht total zu

Naja, schon auf der ersten Seite gleich mal 14(!) von Ihm eröffnete 
Threads ist schon recht heftig.

von Peter B. (funkheld)


Bewertung
0 lesenswert
nicht lesenswert
Danke für die , die mir geholfen haben.

Werde dieses Forum mit meinem allgemeinen Sachverstand nicht mehr 
belästigen.

Ich werde mich melden, wenn ich 99% der Sprache beherrsche und werde die 
1% minimal hier vom Forum anfordern und kurz fassen.

Das wird aber bei mir dauern.

Ich wünsche euch 99%tigen alles gute.

Gruss

: Bearbeitet durch User
von michael_ (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Warum bist du eingeschnappt?
Wenn du 99% von dem, was du wissen willst, bei Anderen erfragst.
Und zum Teil primitive Sachen.

Und zu einem Thema, was die Leute nur stumpf in Erinnerung haben bzw. 
die Mottenkiste wieder aufmachen müssen.
Manche sind schon weggestorben.

Mir hat mal ein Kollege gesagt, wenn du was fragst, dann weißt du schon 
90% davon.
Dann hab ich gesagt, ja, ich möchte nur noch die restlichen 10% wissen.

Halte es auch so.

von cppbert (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
@Peter

Bloss nicht eingeschnappt sein, interessiert keinen, Hilft dir nicht 
weiter, so ist das Internet eben, dickes Fell braucht man manchmal, 
Poste ruhig weiter deine Fragen, vielleicht ein wenig mehr verdichtet :) 
- viele Fragen die hier ueber die Woche rein gepurzelt sind hatten 
weniger Niveau

Und schön wäre es trotzdem etwas über deinen Hintergrund zu wissen:

Beruf, Alter, Englischkentnisse?
(vielleicht bist du ja in echt doch die suesse Germanistikstudentin die 
als Überraschung für ihren Opa sich so richtig ordentlich in die 
Untiefen der DOS Programmierung eintauchen will)

In viele Foren wird man gerne und schnell in die Jugentlicher der das 
neue Doom6000 mit null Wissen programmieren will oder fauler Student der 
keinen Bock hat Kiste gesteckt oder in die Kiste mit den technik affinen 
mittelalten Männer mit ordentlich Interneterfahrung, und gutem 
Informatikhintergrund, in jede der Kisten kannst du schnell fallen

Zieh dich nicht zurueck sondern sei ein Man, schluck die Kritik runter, 
bessere dich und poste weiter

von Peter B. (funkheld)


Bewertung
0 lesenswert
nicht lesenswert
Ich bin über die Wortwahl gestolpert , wenn einen die Fragen manchmal 
nicht passen. Mit 71 Jahren und Pensionär macht man sich Gedanken 
darüber.

Und meine Englischkenntnisse sind nicht so gut um die technischen 
Schriftstücke brauchbar umzusetzen.

Gruss

von Arne S. (arnes)


Bewertung
0 lesenswert
nicht lesenswert
Frank K. schrieb:
> Der Unmut, der hier hochkommt und den ich auch selber empfinde, liegt in
> einer falschen Erwartungshaltung an dieses Medium.

Guter Beitrag - treffend umschrieben!
Selbst in einem reinen (Turbo) C Forum würde sich der TO sicher keine 
Freunde aus den von Dir genannten Gründen machen.

Für Grundlagenwissen gibt es Tutorials. Soll es sogar dem Hörensagen 
nach auf deutsch geben. Nur eine Suchmaschine müsste man schon mal 
benutzen können.

Wenn das alles nix hilft: anderes Hobby suchen.

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Ich bin über die Wortwahl gestolpert , wenn einen die Fragen
> manchmal
> nicht passen. Mit 71 Jahren und Pensionär macht man sich Gedanken
> darüber.
>
> Und meine Englischkenntnisse sind nicht so gut um die technischen
> Schriftstücke brauchbar umzusetzen.

hattest du in einem anderen Post ja so schon geschrieben... mehr oder 
minder - aber danke für die Bestätigung

dafür das du...

-trotzdem noch Bock hast dich auf solche Details ein zu lassen
-nicht wie die meisten hier mit dem Internet groß geworden bist
-nicht unbedingt wie die meisten hier ordentliches Schulenglisch hattest

gebührt dir ein wenig Lob für deine Posts hier

weiter so!

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Arne S. schrieb:
> Wenn das alles nix hilft: anderes Hobby suchen.

Ein wenig zu streng - oder, lass ihn doch auch triviales Fragen, was 
schadet es? Bringt ihn schneller auf das Niveau das er weniger Fragen 
muss...

von Arne S. (arnes)


Bewertung
0 lesenswert
nicht lesenswert
cppbert schrieb:
> Ein wenig zu streng - oder,

NEIN, da:

> Für Grundlagenwissen gibt es Tutorials. Soll es sogar dem Hörensagen
> nach auf deutsch geben.

und - wie Frank es sehr treffend formulierte:

Frank K. schrieb:
> Foren sind ausdrücklich NICHT dafür geeignet, Grundlagenwissen zu
> vermitteln. Das überfordert dieses Medium und die Hilfswilligen und
> führt zu Unmut. Für die Vermittlung von Grundlagenwissen gibt es
> geeignetere Wege, beispielsweise die gebundenen Stapel von Totholz, auch
> Bücher genannt.

case ohne break: Entweder man WILL es absichtlich so oder man hat es mal 
(!) vergessen.
Aber bei sowas in einem Forum fragen, weil man einfach keine Lust hat 
sich im Selbststudium weiterzubilden? Damit ist er exakt auf den 
ich-hab-keinen-Bock-auf-meine-Hausaufgaben Threads. Die haben exakt 
genauso wenig Lust auf Eigeninitiative.

: Bearbeitet durch User
von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Arne S. schrieb:
> case ohne break: Entweder man WILL es absichtlich so oder man hat es mal
> (!) vergessen.
> Aber bei sowas in einem Forum fragen, weil man einfach keine Lust hat
> sich im Selbststudium weiterzubilden?

oder er hat noch nie programmiert und keine Erfahrung
oder nur in Pascal wo das Case kein Fallthrough ist...

Wie gesagt wir Informatik-Backgroundhaber denken immer all zu leicht wie 
einfach es doch ist die Fragen richtig zu formulieren oder sich etwas 
selbst bei zu bringen - deswegen geben wir hier auch so viele Antworten 
- weil wir eben in allem relativ gut sind, andere sind das nicht

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Arbeite dich da durch Peter und wir sind alle froh

https://www.cs.hs-rm.de/~panitz/c/skript.pdf

von Arne S. (arnes)


Bewertung
0 lesenswert
nicht lesenswert
cppbert schrieb:
> Wie gesagt wir Informatik-Backgroundhaber denken immer all zu leicht wie
> einfach es doch ist die Fragen richtig zu formulieren oder sich etwas
> selbst bei zu bringen - deswegen geben wir hier auch so viele Antworten
> - weil wir eben in allem relativ gut sind, andere sind das nicht

Ja und? Ich habe es auch gelernt. Und rate mal: damals ganz ohne WWW, da 
es das noch nicht gab. Klassisch mit totem-Holz aka Buch.
Gerade HEUTE hat er duch WWW kostenlose Möglichkeiten sich Tutorials zu 
beschaffen. Er muss nicht mal das Haus verlassen. Wie einfach muss es 
denn noch werden?

Gerade in seinem Alter sollte doch klar sein, dass Eigeninitiative gern 
gesehen wird. Mein Vater wird dieses Jahr 80 und hatte kein Englisch in 
der Schule. Trotzdem hat er es sich durch EIGENINITIATIVE beigebracht.

BTW: warum muss es ausgerechnet C sein? TurboPascal ist m.E. zum 
Programmiereinstieg geeigneter. Auf alle Fälle unter DOS. Viele Bücher 
aus der DOS Zeit geben Beispiele in TP an. Das VGA Buch in Deinem Thread 
z.B.

: Bearbeitet durch User
von Frank K. (fchk)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:

> Und meine Englischkenntnisse sind nicht so gut um die technischen
> Schriftstücke brauchbar umzusetzen.

Das ist keine Entschuldigung. Ich habe einen guten Freund, der mit 91 
Jahren immer noch regelmäßig zu seinen Japanisch-Stunden geht und Kanjis 
lernt, um sich geistig fit zu halten.

fchk

von cppbert (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ja es gibt immer jemanden der noch älter ist, 4 Arme wniger hat oder 
blind ist der 3 Hobbys mehr als der andere hat und sich intensiver damit 
beschäftig - welche relevanz hat das?, sind wir alle gleich? Wer sagt 
denn das Peter nicht nur mal zwei Woche intensiv spielen will und dann 
was ganz anderes macht

Btw: haette sich Peter als ein Mädchen verkauft wuerden sich hier die 
meisten ohne meckern die Finger wund tippen um triviales zu erklären

von S. R. (svenska)


Bewertung
0 lesenswert
nicht lesenswert
cppbert schrieb:
> Btw: haette sich Peter als ein Mädchen verkauft wuerden sich hier die
> meisten ohne meckern die Finger wund tippen um triviales zu erklären

Hier nicht. Zumindest nicht nach der dritten naiven Frage.

Ein Forum ist hauptsächlich dafür da, um konkrete Antworten auf konkrete 
Fragen zu bekommen. Das ist hier aber nicht das Problem.

Was Peter möchte, ist aber lernen. Und zwar nicht nur einen Fakt, 
sondern ein ganzes Fachgebiet. Da braucht man in der Regel keine 
Antworten, sondern einen Lehrer bzw. Tutor. Jemanden, mit dem man auch 
mal diskutieren und Grundlagenverständnis aufbauen kann.

Ich habe das zu meiner Zeit im IRC gefunden. In Chaträumen, wo man sich 
irgendwann kennt (teilweise auch persönlich trifft) und den anderen auch 
einschätzen kann. IRC gibt's nicht mehr, Usenet ist auch tot. Die 
Thematik auch - es bleibt die Dokumentation. Die gab es damals auch auf 
Deutsch in Büchern.

@Peter: Meine Empfehlung: Mache einfach einen Thread auf, den du 
unspezifisch "Peters 8086-Experimente mit Turbo C++ unter DOS" nennst 
und führst darin schlicht eine Diskussion mit denen, die helfen können 
und wollen. Das Forum zuspammen nervt nur.

Ich würde gerne helfen, aber die Thematik ist mir zu speziell, mit Turbo 
C++ kenne ich mich schlicht nicht aus. Und hinter mir steht zwar ein 
80186, aber für den habe ich nicht genug Zeit (außerdem ist das kein 
PC-kompatibler und kann kein VGA). Meine Rente, sofern ich jemals welche 
bekomme, ist noch ein paar Jahrzehnte weg.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.