Category : Miscellaneous Language Source Code
Archive   : E!518.ZIP
Filename : LOADEXT.PAS

 
Output of file : LOADEXT.PAS contained in archive : E!518.ZIP
Program Loadext;
{$IFDEF DEBUG}
{$A-,B-,D+,F+,I-,N-,R-,S-,V-,L+,O-}
{$ELSE}
{$A-,B-,D-,F+,I-,N-,R-,S-,V-,L-,O-}
{$ENDIF}

{ Please see LOADEXT.DOC }
{ This source file is provided to show how easy it is to write a new }
{ function using the E! API }

Uses Dos, Crt, Api;

VAR

IntStr : string[3]; { Interrupt number used by E! }
IntNum : byte; { " " " " " }
valretcode : integer;
FileName : pathstr;
NamePtr : ^pathstr;
Ext : string[3];

Function Lastpos(needle,haystack:string;start:integer):integer;
{ -This function is extracted from the E! source code }
{ It returns the the last position of needle in haystack }

var
textbuffer,
needlebuffer : string;
limit,newpos,
len1,len2 : integer;
i : byte;

begin
len2:=Length(needle);
limit:=Length(haystack) - len2 + 1;
if start < 1 then begin
LastPos:=0;
Exit;
end
else if start > limit then
start:=limit;
Delete(haystack,start + len2, 255);
len1:=Length(haystack);
textbuffer[0]:=Char(len1);
needlebuffer[0]:=Char(len2);
for i:=1 to len1 do
textbuffer[Succ(len1) - i]:=haystack[i];
for i:=1 to len2 do
needlebuffer[Succ(len2) - i]:=needle[i];
newpos:=Pos(needlebuffer,textbuffer);
if newpos = 0 then
LastPos:=0
else
LastPos:=Succ(len1 - Pred(newpos) - len2);
end;


begin
{ Is E! present ? }
IntStr:=GetEnv('E!PRESENT');
{ Retrieve the number of the interrupt used by E! }
if IntStr = '' then
Halt;
Val(IntStr, IntNum, valretcode);
if valretcode <> 0 then
Halt
else
E_Vec:=IntNum;
{ Is E! busy ? }
if not Is_E_Idle then
Halt;
{ Get the name of the current file }
NamePtr:=Request_E_Address(NAME_REQUEST);
FileName:=NamePtr^;
{ ... and its extension }
Ext:=Copy(FileName, Succ(LastPos('.', FileName, Length(FileName))), 3);
if Ext = '' then
halt;
{ Load the relevant profile }
RegisterCommand('PRO '+ Ext);
END.


  3 Responses to “Category : Miscellaneous Language Source Code
Archive   : E!518.ZIP
Filename : LOADEXT.PAS

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/