Grafik-Speicher Einblendung verhindern

Grafik-Speicher Einblendung verhindern

Beitragvon TomCat » Do 18. Aug 2016, 08:49

Hallo,

im konventionellem Arbeitsspeicher wird ab Adresse a0000h der Grafikspeicher eingeblendet. D.H. ein Anwenderprogramm kann nur maximal 655350 Byte abzüglich Interrupt-Vektortabellen etc. groß sein.
Da ich den Unreal-Mode verwende schreibe ich die Grafikdaten direkt in den hohen 32-Bit Adressbereich.

Ist es möglich dieses Einblenden in den konventionellen Speicher zu verhindern, um mehr Speicher für Anwendungen zu haben?

THX
TomCat
TomCat
MemMaker-Benutzer
 
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Grafik-Speicher Einblendung verhindern

Beitragvon wobo » Fr 19. Aug 2016, 23:08

Meines Wissens dürfte das nicht gehen. IBM hat halt damals entschieden, dass der RAM bei 640k aufhört und ab dem AT erst wieder als "Hoher Speicher" ab 1024k weitergeht. Dazwischen ist per definition kein Ram. Das BIOS zählt beim Booten daher auch nur maximal bis 640k und gibt dies so an DOS weiter.

Hast Du schon probiert, ob da bei eingeschaltetem LFB Daten nach $A0000 schreiben kannst und wieder korrekt lesen kannst? Falls ja müsstest Du noch prüfen, ob die Grafikkarten nicht die Daten aus $A0000 und den ersten 64kb des LFB identisch hat (hat meine Cirrus Logic so gemacht, wenn ich den LFB eingeschaltet hatte). Falls ja, könntest Du von Hand den Bereich ab $A0000 für Dein Anwendungsprogramm nutzen - allerdings wohl ohne Garantie, dass es auf anderen PCs oder andere Grafikkarten auch läuft.
wobo
DOS-Guru
 
Beiträge: 555
Registriert: So 17. Okt 2010, 13:40

Re: Grafik-Speicher Einblendung verhindern

Beitragvon DOSferatu » Sa 20. Aug 2016, 20:01

Ich könnte mich irren - aber liegt nicht "unterhalb" des BIOS-ROMs noch RAM?
Das müßte doch dieser EMS sein... - oder liege ich da falsch?
Also der EMS liegt quasi an derselben Adresse, man muß nur irgendwie speziell drauf zugreifen, weil man sonst den ROM erwischt. HIMEM.SYS hat dafür meines Wissens Funktionen.
Ich hab das noch nie ausprobiert - aber viele ältere Programme scheinen diesen Bereich als Sounddatenpuffer oder so zu nutzen. (Wenn man ohne EMS bootet, funktionieren manche Sachen nur ohne Sound.)
Wollte das sowieso schon lange mal klären...
DOSferatu
DOS-Übermensch
 
Beiträge: 1095
Registriert: Di 25. Sep 2007, 11:05

Re: Grafik-Speicher Einblendung verhindern

Beitragvon Dosenware » Sa 20. Aug 2016, 20:57

@Dosferatu

normalerweise ist der EMS Pageframe exklusiv - d.h. an der gleichen Adresse ist einfach nichts. (bzw. was dort ist, ist deaktiviert)
Was du mir "irgendwie speziell darauf zugreifen" meinst ist wohl das Bankswitchung, dass EMS betreibt (es blendet abwechselnd verschiedene Speicherbereiche auf der gleichen Adresse ein, um mehr Speicher bereitzustellen als der Realmode addressieren kann)...

Oder meinst du jetzt das Shadowram (der Speicher der durch Rom überdeckt ist - und häufig als eine Art Cache für die langsamen Rombausteine genutzt wird)? Da müsstest du dich mit den Chipsätzen auseinandersetzen...
Benutzeravatar
Dosenware
DOS-Gott
 
Beiträge: 3529
Registriert: Mi 24. Mai 2006, 19:29

Re: Grafik-Speicher Einblendung verhindern

Beitragvon TomCat » Mo 22. Aug 2016, 09:42

bloederweise kann ich nicht mal selber mein Programm ab 1MB laden, also ganz ohne DOS, da ich dann die Werte der Relocation-Tabelle, also die Segmentregister über 1 MB setzen muesste . Diese sind aber nur 20 Bit breit. Wären sie größer,
waere das ja kein Problem.
Scheint wohl nicht zu gehen...
oder?
TomCat
MemMaker-Benutzer
 
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16


Zurück zu Programmierung

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast