diff --git a/rtl/morphos/system.pp b/rtl/morphos/system.pp index 9619b27078..ce994d9a5c 100644 --- a/rtl/morphos/system.pp +++ b/rtl/morphos/system.pp @@ -291,8 +291,8 @@ var MOS_ambMsg : PMessage; MOS_ConName : PChar ='CON:10/30/620/100/FPC Console Output/AUTO/CLOSE/WAIT'; - MOS_argc: LongInt; - MOS_argv: PPChar; + argc: LongInt; + argv: PPChar; {***************************************************************************** @@ -356,7 +356,7 @@ function dos_SetFileSize(fileh: LongInt location 'd1'; function dos_Read(fileh: LongInt location 'd1'; buffer: Pointer location 'd2'; - length: LongInt location 'd3'): LongInt; SysCall MOS_DOSBase 40; + length: LongInt location 'd3'): LongInt; SysCall MOS_DOSBase 42; function dos_Write(fileh: LongInt location 'd1'; buffer: Pointer location 'd2'; length: LongInt location 'd3'): LongInt; SysCall MOS_DOSBase 48; @@ -695,12 +695,12 @@ var begin oldargvlen:=argvlen; argvlen:=(idx+8) and (not 7); - sysreallocmem(MOS_argv,argvlen*sizeof(pointer)); + sysreallocmem(argv,argvlen*sizeof(pointer)); for i:=oldargvlen to argvlen-1 do - MOS_argv[i]:=nil; + argv[i]:=nil; end; { use realloc to reuse already existing memory } - sysreallocmem(MOS_argv[idx],len+1); + sysreallocmem(argv[idx],len+1); end; var @@ -717,13 +717,13 @@ begin { Set argv[0] } temp:=paramstr(0); allocarg(0,length(temp)); - move(temp[1],MOS_argv[0]^,length(temp)); - MOS_argv[0][length(temp)]:=#0; + move(temp[1],argv[0]^,length(temp)); + argv[0][length(temp)]:=#0; { check if we're started from Ambient } if MOS_ambMsg<>nil then begin - MOS_argc:=0; + argc:=0; exit; end; @@ -739,12 +739,12 @@ begin if (count-start>0) then begin allocarg(localindex,count-start); - move(p[start],MOS_argv[localindex]^,count-start); - MOS_argv[localindex][count-start]:=#0; + move(p[start],argv[localindex]^,count-start); + argv[localindex][count-start]:=#0; inc(localindex); end; end; - MOS_argc:=localindex; + argc:=localindex; end; @@ -758,14 +758,14 @@ begin if MOS_ambMsg<>nil then paramcount:=0 else - paramcount:=MOS_argc-1; + paramcount:=argc-1; end; { argument number l } function paramstr(l : longint) : string; begin - if (l>=0) and (l+1<=MOS_argc) then - paramstr:=strpas(MOS_argv[l]) + if (l>=0) and (l+1<=argc) then + paramstr:=strpas(argv[l]) else paramstr:=''; end; @@ -970,7 +970,7 @@ begin do_read:=0; if len<=0 then exit; - dosResult:=dos_Write(h,addr,len); + dosResult:=dos_Read(h,addr,len); if dosResult<0 then begin dosError2InOut(dos_IoErr); end else begin @@ -1263,7 +1263,10 @@ End. { $Log$ - Revision 1.8 2004-05-12 20:26:04 karoly + Revision 1.9 2004-05-12 23:18:54 karoly + * fixed do_read and dos_Read from being nonsense + + Revision 1.8 2004/05/12 20:26:04 karoly + added syscalls and structures necessary for DOS unit Revision 1.7 2004/05/12 15:34:16 karoly