home *** CD-ROM | disk | FTP | other *** search
-
- These files contain all known fixes as of 11/29/93.
- As prepared by CHUCK TODD 70531.1475
-
- This zip contains the following files:
-
- FCTL.ASM ; runtime FILE access Routines.
- TCTL.ASM ; runtime TEXT access routines.
- Os2F01.txt ; this file.
- OS216.pas ; Sample Unit to access OS2 16bit dll calls.
-
- You will need then "c'T" patch available from CIS:GERNET LIB 7 L11_1.zip.
- You will also need then BP 7.0 system (with TASM).
-
- Optionally you can download from CIS:OS2DF1 LIB1 PRCP.ZIP (411k) this is an
- .INF file that contains a reference for the OS2 1.3 compatible 16bit calls.
- Also you will want download CIS:OS2DF1 LIB 7 IMPLIS.zip (44k) this is a
- program to generate a listing of the INDEXes for the DOSCALLS.LIB file.
-
- Using the DOSCALLS.LIB, you cannot import the functions By NAME, only by
- INDEX.
-
- These are a patch to the BORLAND PASCAL 7.0 Runtime, These patches
- are to be installed ontop of the patches created by 'c'T' magazine.
-
- 1: Replace these FCTL,TCTL files with the ones in the 'c'T' patch.
- 2: Then install the fixes to the System.Pas, Dos.pas.
- 3: run cd os2rtl, run MAKE -B -fmakefile { this will recreate the OS2.TPL
- 4: copy the OS2.TPL file to you \bp\bin directory.
- 5: Recompile the DOS.pas and all Pascal files.
-
-
- Both of these ASM files have been modifed to allow FILEREC,TEXTREC
- variables to be on the HEAP.
- Also, I have change the DEFAULT value of FILEMODE to
- OPEN_ACCESS_DENYREADWRITE | READWRITE. {$0012}
- it was OPEN_ACCESS_DENYNONE | READONLY. {$0040}
-
- The problem with opening a read only file resulted because the FILE open
- procedures always specified READWRITE access during the attempt to open
- the file. This resulted in either a 12 invalid mode or a TRAP 'D' error.
-
- THIS is a list of the changes to SYSTEM.PAS.
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- FileMode : Word = $0012;{ OPEN_SHARE_DENYREADWRITE,
- OPEN_ACCESS_READWRITE}
-
- These Changes are to DOS.PAS
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- After Implementation directive.
-
- OS2DateTime = Record
- Hours,
- Minutes,
- Seconds,
- Hundredths,
- Day,
- Month : Byte;
- Year : Word;
- >>>>>> TimeZone : Integer; { Was Short Int}
- WeekDay : Byte;
- End;
-
- ****************************************
-
- Procedure FindFirst(Path : PathStr;Attr : Word;Var S : SearchRec);
- Var
- FF : OS2FileFindBuf;
- N : String;
- Count : Word;
- Type
- PWord = ^Word;
- Begin
- N := Path + #0;
- Count := 1;
- PWord(@S)^ := $FFFF; { HDIR_CREATE }
- DosError := DosFindFirst(@N[1],PWord(@S)^,Attr,FF,SizeOf(FF),Count,0);
- If DosError = 0 then
- Begin
- S.Attr := FF.AttrFile;
- S.Time := (LongInt(FF.fDateLastWrite) Shl 16) + FF.fTimeLastWrite;
- >>>> S.Size := FF.cbFile;
- Move(FF.cchName,S.Name,SizeOf(S.Name))
- End;
- End;
-
- Procedure FindNext(Var S : SearchRec);
- Var
- FF : OS2FileFindBuf;
- Count : Word;
- Type
- PWord = ^Word;
- Begin
- Count := 1;
- DosError := DosFindNext(PWord(@S)^,FF,SizeOf(FF),Count);
- If DosError = 0 then
- Begin
- S.Attr := FF.AttrFile;
- S.Time := (LongInt(FF.fDateLastWrite) Shl 16) + FF.fTimeLastWrite;
- >>>> S.Size := FF.cbFile;
- Move(FF.cchName,S.Name,SizeOf(S.Name))
- End
- else
- DosFindClose(PWord(@S)^);
- End;
-
- *******************
-
- Procedure Exec(Path : PathStr;ComLine : ComStr);
- Var
- b : Array[0..255] of Char;
- >> c : string;
- Begin
- >> if (length(comline)>0)and(comline[1] <> ' ') then
- >> c := path + #0 +' '+comline+#0+#0
- >> else c := path + #0+comline +#0+#0;
- {
- Path := Path + #0;
- ComLine := ComLine + #0#0;
- DosError := DosExecPgm(b,256,ExecFlags,@ComLine[1],Ptr(EnvironmentSeg,0),ExecResult,@Path[1]);
- }
- >> DosError := DosExecPgm(b,256,ExecFlags,@c[1],Ptr(EnvironmentSeg,0),ExecResult,@c[1]);
- End;
-
-
-