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
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
Woher eigentlich das plötzliche Interesse am 8086... Vorbereitung auf eine Zeitreise?
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.
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)
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
------------------------------------ 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
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
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.
Ein Schneider CPC 6128 steht hier neben mir mit Grün und Farbmontior und einem kleinen Stapel Disketten:-) und KAsettenrekorder
----------------------------- 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.
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
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.
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.
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
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...
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.