Netzwerk

Diskussion zum Thema Programmierung unter DOS (Intel x86)
Antworten
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Netzwerk

Beitrag von TomCat »

Hi,

will grad eine Vernetzung zu einem Windowsrechner herstellen.
Benutze den MSClient.
Leider benötigt der ca 144k an konventionellem Speicher. Bleiben nur ca. 490k für ausführbares Programm übrig.
Gibt es ne Möglichkeit trotzdem mindestens 600.000 Byte rauszuleihern?
Ich benötige leider so viel konventionellen Speicher:-(

ThX
TomCat
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3745
Registriert: Mi 24. Mai 2006, 20:29

Re: Netzwerk

Beitrag von Dosenware »

Poste mal das Ergebnis von MEM /C, deine config.sys, sowie deine Autoexec.bat.

Bitte nutze dazu die Codetags - ist übersichlicher (und es verschiebt sich normalerweise nichts):

Code: Alles auswählen

[code]Hier könnte ihre Autoexec.bat stehen
[/code]

Siehe auch: http://www.dosforum.de/viewtopic.php?f=2&t=25
Und: http://www.dosforum.de/viewtopic.php?f= ... cher#p1727

PS. Das Thema wäre im Unterforum "Software" besser aufgehoben.
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Netzwerk

Beitrag von TomCat »

Also hier mal die Autoexec.bat:
Code:

Code: Alles auswählen


@echo off 
SET LANG=DE 
SET MTCPCFG=C:\FDOS\MTCP.CFG 
SET WATTCP.CFG=C:\FDOS 
SET PATH=C:\NET;%dosdir%\BIN

SET NLSPATH=%dosdir%\NLS 
SET HELPPATH=%dosdir%\HELP
SET TEMP=%dosdir%\TEMP
SET TMP=%TEMP%

SET DIRCMD=/P /OGN /4
SET COPYCMD=/-Y

rem SHSUCDX /QQ /D3
rem LH SHSUCDHD /QQ /F:FDBOOTCD.ISO

LH FDAPM APMDOS

LH C:\FDOS\BIN\RDISK /S32

LH SHARE


MEM /C /N


SET AUTOFILE=%0
SET CFGFILE=C:\FDCONFIG.SYS
LH KEYB GR,,keyboard.sys  
alias reboot=fdapm warmboot 
alias reset=fdisk /reboot
alias halt=fdapm poweroff 
alias shutdown=fdapm poweroff
alias cfg=edit %cfgfile%
alias auto=edit %0


echo Welcome to the FreeDOS 1.1 operating system (http://www.freedos.org)

C:\Nc_sys\net initialize
C:\Nc_sys\nwlink
C:\Nc_sys\netbind.com
C:\Nc_sys\umb.com
C:\Nc_sys\tcptsr.exe
C:\Nc_sys\tinyrfc.exe
C:\Nc_sys\nmtsr.exe
C:\Nc_sys\emsbfr.exe
C:\Nc_sys\net start

und hier die fdconfig.sys:

Code: Alles auswählen

!COUNTRY=001,858,C:\FDOS\BIN\COUNTRY.SYS 
!SET DOSDIR=C:\FDOS
!LASTDRIVE=Z
!BUFFERS=20     
!FILES=40
!MENUCOLOR=7,0

DOS=HIGH
DOS=UMB
DOSDATA=UMB


DEVICE=C:\FDOS\BIN\HIMEMX.EXE 
DEVICE=C:\FDOS\BIN\JEMM386.EXE X=TEST I=TEST I=B000-B7FF NOVME NOINVLPG
 
SHELLHIGH=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\AUTOEXEC.BAT 

rem DEVICE=C:\FDOS\BIN\FDXMS.SYS
rem DEVICE=C:\FDOS\BIN\UMBPCI.SYS
DEVICEHIGH=C:\NET\IFSHLP.SYS
rem DEVICEHIGH=C:\FDOS\BIN\KEYBGR.SYS

das ist alles FREEDOS wie man sieht. Bei MS-DOS habe ich den QEMM benutzt. Diesen habe ich aber bei neueren Mainboards nicht mehr zum Laufen gebracht. Stürzt immer sofort ab!! Keine Ahnung warum. Der JEMM von Freedos stürzt zwar nicht ab, aber ich habe nur max. ca. 500.000 Byte konventionellen Speicher frei, sobald ich das Netzwerk lade.
Das ist viel zu wenig! Benötige 600.000 Byte. Mit MS-DOS und Qemm bekomme ich ca. 610.000 Byte, aber funzt eben nicht bei neueren Boards. :-(
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3745
Registriert: Mi 24. Mai 2006, 20:29

Re: Netzwerk

Beitrag von Dosenware »

Hmm, bei Dos könnte ich weiterhelfen, mit Freedos kenne ich mich jedoch kaum aus.

Was hast du denn für Hardware?

(und das MEM /C fehlt noch)
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Netzwerk

Beitrag von TomCat »

Hi,

also es geht auch mit dem QEMM und MS DOS 6.22. Er ist nur wegen falscher Parameter abgestürzt.

Ich bekomme jetzt ca. 560.000 Byte bis 570.000 Bytes frei je nach Board. Immer noch zu wenig!
Beim booten schreibt der QEMM, dass er den EMS-Seitenrahmen in den konventionellen Speicher lädt, weil
im hohen Bereich kein Platz mehr ist.

Eigentlich benötige ich nicht unbedingt einen EMS.
Kann man nicht irgendwie angeben, dass man den Seitenrahmen nicht benötigt, also keine EMS und dann dieser Bereich für z.B. das Netzwerk zur Verfügung steht.

Das Ganze ist nur bei neueren Boards so ab 2005 ein Problem. Bei älteren ist wohl mehr Platz im high Memory.


CONFIG.SYS:

Code: Alles auswählen


DEVICE=c:\dos\qemm\dosdata.sys
DEVICE=c:\dos\qemm\qemm386.sys st:f r:1 ram
DEVICE=c:\dos\qemm\dos-up.sys @c:\dos\qemm\dos-up.dat
DEVICE=C:\DOS\QEMM\LOADHI.SYS /R:9 /SIZE=9376 C:\DOS\ansi.sys
DEVICE=C:\DOS\QEMM\LOADHI.SYS /R:3 /SIZE=16112 C:\DOS\DISPLAY.SYS CON=(,,1)

COUNTRY=044,850,C:\DOS\COUNTRY.SYS
DOS=HIGH,UMB
FCBS=4,0
FILES=30
BUFFERS=30,8
LASTDRIVE=F:
STACKS=9,256
SET PATH=C:\DOS;..;

DEVICE=C:\DOS\QEMM\LOADHI.SYS /R:8 /RES=3968 /SQT=F500-F5FF /SIZE=4944 C:\NC_SYS\ifshlp.sys
SHELL=C:\COMMAND.COM C:\ /P


AUTOEXEC.BAT:

Code: Alles auswählen

@ECHO OFF 

c:\dos\qemm\loadhi /r:4 /lo C:\NC_SYS\net initialize 

SET PATH=C:\NC_SYS;C:\DOS\QEMM;C:\dos
 
MODE CON RATE=32 DELAY=1  
MODE CON CP PREPARE=((850)C:\DOS\EGA.CPI)  
MODE CON CP SELECT=850  

C:\DOS\QEMM\LOADHI /R:3 KEYB GR,,C:\DOS\KEYBOARD.SYS  

C:\NC_SYS\netbind.com 

C:\dos\qemm\loadhi /r:6 /lo C:\NC_SYS\umb.com 
C:\NC_SYS\tcptsr.exe 
C:\dos\qemm\loadhi /r:2 /lo /res=2384 /sqt=c300-c3ff C:\NC_SYS\tinyrfc.exe 
C:\NC_SYS\nmtsr.exe 
C:\dos\qemm\loadhi /r:7 /lo C:\NC_SYS\emsbfr.exe 


CLS 
C:\NC_SYS\net logon NETZ im2k /YES /SAVEPW:NO 
IF NOT EXIST e:\drvmount.log copy c:\registry\drvmount.log e:\ /Y 
IF EXIST e:\drvmount.log GOTO DRIVE_MOUNTED 
IF NOT EXIST e:\c\drvmount.log copy c:\registry\drvmount.log e:\c /Y 
IF EXIST e:\c\drvmount.log GOTO DRIVE_MOUNTED 


CLS 
ECHO Binding drives... 
net use E: \\IMRDN\storage /YES /PERSISTENT:YES 
IF NOT EXIST e:\drvmount.log copy c:\registry\drvmount.log e:\ /Y 
IF EXIST e:\drvmount.log GOTO DRIVE_MOUNTED 
IF NOT EXIST e:\c\drvmount.log copy c:\registry\drvmount.log e:\c /Y 
IF EXIST e:\c\drvmount.log GOTO DRIVE_MOUNTED 
 
CLS 
ECHO Warte 100 Sekunden auf Antwort des Servers... 
c:\extra\wait 10 

net use E: \\IMRDN\storage /YES /PERSISTENT:YES 
IF EXIST e:\drvmount.log GOTO DRIVE_MOUNTED 
IF EXIST e:\c\drvmount.log GOTO DRIVE_MOUNTED 
ECHO. 
CLS 


:DRIVE_MOUNTED 
ECHO DRIVE MOUNTED  
c:\extra\wait 3 
 
IF EXIST c:\chksum.dbt GOTO FAIL  
copy c:\cache\*.dbt c:  
GOTO END 
 
:FAIL 
CLS 

:END 

c:\

THX
TomCat
drzeissler
DOS-Gott
Beiträge: 3336
Registriert: Mo 8. Feb 2010, 16:59

Re: Netzwerk

Beitrag von drzeissler »

"NOEMS" sollte helfen.

Ich starten an allen Maschinen das Netzwerk per Batch wenn ich es brauche.
Was willst Du denn ausführen wo Du dauerhaft eine Verbindung brauchst?
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Netzwerk

Beitrag von TomCat »

Hi,

ich will permanent Daten auf einen anderen Rechner übertragen, also während der Programmlaufzeit. Darum muss das Netzwerk aktiv sein.
Wo schreibe ich das hin mit dem NOEMS?


etwa hier?
DEVICE=c:\dos\qemm\qemm386.sys st:f r:1 ram NOEMS ????

THX TomCat
drzeissler
DOS-Gott
Beiträge: 3336
Registriert: Mo 8. Feb 2010, 16:59

Re: Netzwerk

Beitrag von drzeissler »

"ram" weg dafür "noems" hin.
CPU: 486 DX2/66 MOBO: SNI-D882 RAM: 3x16MB - FDD: 3,5" 1,44MB HDD: 6,4GB Seagate ISA(1): Audican32Plus PCI(1): 3com TX 905 OS: MsDos622 - Win95a - WinNT 3.51
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Netzwerk

Beitrag von TomCat »

drzeissler hat geschrieben:"ram" weg dafür "noems" hin.
Hi,

also mit "Noems" wird der verfügbare Speicherplatz gleich noch etwas weniger. Seltsam. Das eigentliche Problem dürfte sein dass in modernen Boards kein freier Bereich von 42 KB für das TCP/IP Protokol frei ist. darum kann man nie über 580.000 Byte free Memory kommen, weil das nicht hochgeladen werden kann.

Weiß jemand ne Software die das TCP/IP Protocol mit weniger als 42 KB hinbekommen hat?
Benutzeravatar
eltrash
DOS-Kenner
Beiträge: 489
Registriert: Fr 26. Sep 2014, 09:48

Re: Netzwerk

Beitrag von eltrash »

UMB.COM und EMSBFR.EXE kann man weglassen.

UMB ist nur ein Ersatz für den LH Befehl, der für das Hochladen der Netzwerktreiber in den oberen Speicher zuständig ist.

Du könntest statt QEMM auch mal 386MAX versuchen
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Netzwerk

Beitrag von TomCat »

hmm,

also ich bekomme nicht genügend Speicher hin.
kann man eigentlich die Netzwerktreiber wieder ausladen?

um dann für andere Programme wieder genügend Speicher zu haben?
Also ohne neu zu booten meine ich.

Thx
Benutzeravatar
eltrash
DOS-Kenner
Beiträge: 489
Registriert: Fr 26. Sep 2014, 09:48

Re: Netzwerk

Beitrag von eltrash »

Schau Dir mal die Programme MARKNET.EXE und RELNET.EXE an, welche Bestandteile der TSR-Utilities sind.
Damit kann man den MS-Client rückstandsfrei wieder aus dem Speicher entfernen.
Download-Mirrors: http://www.filewatcher.com/m/tsrcom35.zip.79761-0.html

Diese Zeilen muss man vor dem Laden der NET-Treiber setzen, um die verwendeten Speicherbereiche zu markieren

Code: Alles auswählen

REM Falls alte Markierung existiert, löschen.
IF EXIST C:\TSR\UNLOAD.MRK del C:\TSR\UNLOAD.MRK
C:\TSR\MARKNET.EXE C:\TSR\UNLOAD.MRK
und so könnte eine Entladung aussehen:
NETSTOP.BAT:

Code: Alles auswählen

echo Netzwerkverbindung wird getrennt...bitte warten.
c:\net\net stop /yes > nul 
REM *** MS-Client aus dem Speicher entfernen ***
C:\TSR\RELNET.EXE /H /R /Q C:\TSR\UNLOAD.MRK
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Netzwerk

Beitrag von TomCat »

danke erstmal.

den Befehl "RELNET.EXE gibt es aber:
den Befehl "UNLOAD.MRK" kann ich in den TSR-Utilities leider nicht finden. :-(
Wo bekommt man den her?

Und hat man dann wieder mehr konventionellen Speicher zur Verfügung, wenn der MS-Client zuvor im
konventionellen Bereich gelegen hat?

THX
TomCat
Benutzeravatar
eltrash
DOS-Kenner
Beiträge: 489
Registriert: Fr 26. Sep 2014, 09:48

Re: Netzwerk

Beitrag von eltrash »

Es gibt keinen Befehl: UNLOAD.MRK
Wo steht dieser denn?

Die UNLOAD.MRK ist lediglich eine Datei, die bei jedem Start neu erzeugt wird und alles aufzeichent, was in den Speicher geladen wird. (die kannst du auch nennen, wie du möchtest)

Mit diesem Befehl wird sie erzeugt
C:\TSR\MARKNET.EXE C:\TSR\UNLOAD.MRK
und ab da wird alles aufgeziechnet, was in den Speicher geladen wird

und mit diesem Befehl, wird der Speicher entladen
C:\TSR\RELNET.EXE /H /R /Q C:\TSR\UNLOAD.MRK

Und hat man dann wieder mehr konventionellen Speicher zur Verfügung, wenn der MS-Client zuvor im
konventionellen Bereich gelegen hat?
theoretisch ja
TomCat
MemMaker-Benutzer
Beiträge: 87
Registriert: Do 1. Dez 2011, 17:16

Re: Netzwerk

Beitrag von TomCat »

also der Treiber wird schon entladen aber der Speicher wird nicht mehr freigegeben. Sowohl mem.exe zeigt nicht mehr an und eine größere *.exe kann ich auch nicht laden...
Antworten