'**************************************************************************** ' ' Konzept der MS-DOS Speicherverwaltung setzen in PowerBASIC 3.0/3.2 ' ' Hiermit knnen nun UMBs ber die Funktion 48h des DOS-Interrupts 21h ' angefordert werden. ' ' entwickelt von / developed by : Thomas Gohel ' ' Fido : Thomas Gohel@2:2410/330.1 ' InterNet: author@pbsound.snafu.de ' Homepage: http://www.snafu.de/~pbsound/ ' '**************************************************************************** SHARED UMBKonzept%, UMBAktiv%, UMBMem%, ErrorCode% CLS SetSpeicherVerwaltung GetSpeicherVerwaltung END FUNCTION SetSpeicherVerwaltung public 'Konzept der Speicherverwaltung lesen ! mov ax, &h5800 ! int &h21 ! mov UMBKonzept%, ax 'UMB Einbindung abfragen und in UMBAkiv% sichern ! mov ax, &h5802 ! int &h21 ! jnc SetKonzept ! mov ErrorCode%, ax ;'1 = kein Befehl DOS=UMB '7 = Speicherverw. zerstoert PRINT "Ups, geht nicht" EXIT FUNCTION SetKonzept: ! mov UMBAktiv%, al ;'0 = UMBs wurden nicht verwendet '1 = UMBs wurden einbezogen PRINT "altes UMB-Konzept: ";UMBAktiv% 'Konzept der Speicherverwaltung neu setzen' ! mov ax, 1 ;'eventuell auch der alte Wert ! mov cl, 7 ;'Bit 7 = 1, erst im UMB suchen ! shl ax, cl ! mov UMBMem%, ax ! mov ax, &h5801 ! mov bx, UMBMem% ! int &h21 'UMB Speicher aktivieren ! mov ax, &h5803 ! mov bx, 1 ;'mein Gott nochmal: Jaaaaa!!!! ! int &h21 ! jnc UMBOK ! mov ErrorCode%, ax PRINT "Ups, schon wieder ein Fehler :-(, siehe AX " EXIT FUNCTION UMBOK: PRINT "UMB's werden in die Speicherverwaltung einbezogen" END FUNCTION FUNCTION GetSpeicherVerwaltung public 'Konzept der Speicherverwaltung restaurieren ! mov ax, &h5801 ! mov bx, UMBKonzept% ! int &h21 'UMB Einbindung restaurieren ! mov ax, &h5803 ! mov bx, UMBAktiv% ! int &h21 ! jc SpeicherFehler PRINT "Speicherverwaltung erfolgreich restauriert" EXIT FUNCTION SpeicherFehler: 'falls Fehler in der Speicherverwaltung PRINT "Speicherverwaltung auf Default, da Fehler ..." ! mov ax, &h5801 ! mov bx, 0 ! int &h21 ! mov ax, &h5803 ! mov bx, 0 ! int &h21 END FUNCTION