029 
            13.09.2025, 18:28 Uhr 
            Ordoban 
            
 
 
  | 
          Ja. DOS hat eine Grenze bei 640K. Die ist im DOS fest eingebaut. Deswegen das Gehampel mit dem UMB. Das ist eine Möglichkeit diese Grenze zu umgehen.
  Der Speichertest vom Mutos ist blöd. Der probiert von Adresse 00000 an, ob der etwas in der Adresse speichern kann, und hört erst auf wenn das nicht mehr klappt. Da ist dann auch A0000-BFFFF mit drin. Allerdings nicht der RAM der 1M-Karte, sondern der Grafikspeicher. Für Mutos macht das keinen Unterschied. Das kann man sehen, wenn man zu viele Programme gleichzeitig ausführt. Da wird der Bildschirm mit Grafiksalat gefüllt, und das Programm (oder auch das ganze System) crasht.
  Das ist zumindest beim Mutos im DCP-Modus so. Beim Grundmodus ist der Grafikspeicher der ABG nicht aktiv, da sollte das funktionieren.
  Edit: der code vom Mutos Speichertest.
 
 | Quellcode: |   /*  * Machine-dependent startup code  */ startup(p) {     register unsigned i;     register c;
      clknumb = 0xf000;     i = p;     while(i <= MAXPAGE)     { #ifdef MMU         c = mapwork(i);         *c = 0x4242;         if(*c != 0x4242)             break;         *c = 0x5244;         if(*c != 0x5244)             break; #else         c = memchk(i);         if(c < 0)             break; #endif MMU /*          clearseg(i); */         maxmem++;         i++;     }     mm_size = i;     while(--i >= p) #ifdef MMU           mmufree(i,1); #else         mfree(coremap, 1, i); #endif MMU     meminit();     dinit(); }
  |  
 
 
  Hinter dem memchk() verbirgt sich Assembler-Code:
 
 | Quellcode: |       .globl _memchk _memchk:     mov    bx,sp     mov    dx,#2(bx)     mov    cx,*7     shl    dx,cl     mov    es,dx     seg    es     mov    cx,0     mov    ax,#/4242     seg    es     mov    0,ax     seg    es     mov    bx,0     cmp    ax,bx     jnz    memfault     mov    ax,#/5244     seg    es     mov    0,ax     seg    es     mov    bx,0     cmp    ax,bx     jnz    memfault     sub    ax,ax     j    memret memfault:     mov    ax,#-1 memret:     seg    es     mov    0,cx     mov    cx, ds     mov    es, cx     ret
  |  
 
  -- Gruß Stefan Dieser Beitrag wurde am 13.09.2025 um 19:04 Uhr von Ordoban editiert. |