mikrocontroller.net

Forum: PC-Programmierung Wie gross kann ein Array sein beim 8086 mit TC 3.0


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.

Wie gross kann bitte ein Array sein beim 8086 mit dem TC 3.0

Das Programm wird ja in EXE abgespeichert und nicht mit COM.

Danke.
Gruss

von Fachlaie (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:
> ein Array

Geht's vielleicht a bisserl genauer?

von Frank K. (fchk)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:

> Wie gross kann bitte ein Array sein beim 8086 mit dem TC 3.0

Lies mal in Deiner DOku unter "Memory Model" nach.

Aus meiner Erinnerung:
small: alle Daten müssen in ein 64k-Segment passen
medium: (vergessen)
large: ein Array kann max 64k groß sein
huge: keine Grenze, dafür Code extrem ineffizient

fchk

von Programmierer (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Woher eigentlich das plötzliche Interesse am 8086... Vorbereitung auf 
eine Zeitreise?

von SchonWiederGast (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Programmierer schrieb:
> Woher eigentlich das plötzliche Interesse am 8086... Vorbereitung
> auf eine Zeitreise?
Er ist schon mitten drin. Und damals gab es noch kein Google, mit dem er 
selbständig nach Antworten suchen könnte.

von Dirk B. (dirkb2)


Bewertung
0 lesenswert
nicht lesenswert
Frank K. schrieb:
> small: alle Daten müssen in ein 64k-Segment passen
> medium: (vergessen)
> large: ein Array kann max 64k groß sein
> huge: keine Grenze, dafür Code extrem ineffizient

ich habe in ganz dunkeln Ecken das in Erinnerung:
tiny: max. 64k für Code und Daten in einem Segment. Also mehr .com
small: jeweils max. 64k für Daten und Code, können unterschiedliche 
Segmente sein.
medium: max. 64k Code, Daten mehr als 64k, allerdings einzelne 
Datenobjekte (Array, malloc,...) auf 64k begrenzt.
large: wie medium, aber auch Code über 64k
huge: keine Grenze (außer den berühmten 640k)

von Paul P. (kater_karlo)


Bewertung
0 lesenswert
nicht lesenswert
keine Ahnung in wieweit das vergleichbar ist, aber da damals überwiegend 
in Pascal programmiert wurde, frag doch mal im Freepascal/Lazraus Forum.
Da sind sicher eine Menge dabei, die noch das wissen von damlas haben 
und dir sagen können wir es zumindest bei Pascal war/ist.
Das sollte ja evtl. vergleichbar sein und die antworten fix und stellen 
keine dummen Fragen weil ihnen angeblich Details fehlen und s
https://forum.lazarus.freepascal.org/index.php?action=forum

von Peter B. (funkheld)


Bewertung
0 lesenswert
nicht lesenswert
------------------------------------
Woher eigentlich das plötzliche Interesse am 8086... Vorbereitung auf
eine Zeitreise?
------------------------------------

Ich hatte mal angefangen 1979. War mit den Disketten , nicht so 
Berauschent hat mich aber interessiert.
1984 bin ich umgesattelt auf den VIC20 und CPCSchneider.

Hatte mir jetzt den MiSTer angeschafft um den VIC20-Core wieder mal zu 
nutzen als VIC20. Tolle Sache jetzt damit zu spielen. Dann kam dort der 
Core für den 486 für den MisTer. Da natürlich habe ich mich mit jetzt 71 
Jahren mal wieder beschäftigt. Ich Suchte eine Form vom C-Compiler der 
dazu passt mit ASM-Code als Inline. Und jetzt habe ich den TC 3.0 
gefunden.

Habe viel gesucht hier, mehrere Compiler ausgesucht , es war nicht immer 
das was mir gefallen hat.

Und jetzt hänge ich da wieder drin bis zur Halskrause.

Ja, so ist es.

GRuss

von Peter B. (funkheld)


Bewertung
0 lesenswert
nicht lesenswert
Ja danke für die Antworten.

Ach sp, der MiSTer Core spielt mit einem Laufwerk und Festplatten als 
IMG die ich mit Windows10 erstelle und dann mit DOS6.22 auf der Dosebene 
im Core herstelle mit einstellen , formatieren usw.

GRuss

: Bearbeitet durch User
von Dirk B. (dirkb2)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:
> Und jetzt habe ich den TC 3.0
> gefunden.

Dank fehlendem Internet hatten die damaligen Compiler eigentlich immer 
recht brauchbare Hilfen dabei.

von Paul P. (kater_karlo)


Bewertung
0 lesenswert
nicht lesenswert
Ein Schneider CPC 6128 steht hier neben mir mit Grün und Farbmontior und 
einem kleinen Stapel Disketten:-) und KAsettenrekorder

von Peter B. (funkheld)


Bewertung
0 lesenswert
nicht lesenswert
-----------------------------
small: jeweils max. 64k für Daten und Code, können unterschiedliche
Segmente sein.
----------------------------

Kann man dann mehrere Segmente haben mit jeweils 64kb für Daten zb?

Danke.

von leo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:
> Kann man dann mehrere Segmente haben mit jeweils 64kb für Daten zb?

Ja, s. Segmentregister. Aber du willst das nicht selber verwalten, nimm 
ein passendes Speichermodell.

leo

von Dirk B. (dirkb2)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:
> Kann man dann mehrere Segmente haben mit jeweils 64kb für Daten zb?

Das wäre medium.
Bei small werden die Segmentregister am Anfang gesetzt und nicht wieder 
verändert.

von A. K. (prx)


Bewertung
0 lesenswert
nicht lesenswert
Ein Array kann nicht mehr Elemente erhalten, als mit ptrdiff_t 
darstellbar ist. Wie gross kann also ein char-Array höchstens sein, wenn 
ptrdiff_t 16-Bit "int" ist?

Ebenso kann ein Array nicht grösser sein, als mit size_t darstellbar 
ist.

von leo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Peter B. schrieb:
> Wie gross kann bitte ein Array sein beim 8086 mit dem TC 3.0

Wieso suchst du nix selber:
https://www.drdobbs.com/using-large-arrays-in-turbo-c/184402289

leo

von Jim M. (turboj)


Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:
> ptrdiff_t [...] size_t

Diese Typen gibts aber erst ~15 Jahre nach Einführung von Turbo C 3.0.

Hier müsste man mit sizeof(void *) o.ä. arbeiten...

von A. K. (prx)


Bewertung
1 lesenswert
nicht lesenswert
Jim M. schrieb:
> Diese Typen gibts aber erst ~15 Jahre nach Einführung von Turbo C 3.0.

Die Typen mag es erst später gegeben haben, aber das Problem gab es 
schon vorher.

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.