|
|
DataMuseum.dkPresents historical artifacts from the history of: DANOSI |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DANOSI Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 8378 (0x20ba)
Types: TextFile
Names: »RC35SYS.RTP«
└─⟦289818552⟧ Bits:30010516 DVBS1.SW2114.src.2.7-3 SW2114 3/4 Real Time Pascal 2.7
└─⟦this⟧ »RTP\RC35SYS.RTP«
└─⟦783187a02⟧ Bits:30010525 DVBS1.SW2114.src.2.6-3 RTP compiler source SW2104+SW2114 Disk#3 30/1-92 HHA
└─⟦this⟧ »RTP\RC35SYS.RTP«
└─⟦ca921ce75⟧ Bits:30010528 DVBS1.SW2114.src.2.6-6 RTP Compiler Source SW2104+SW2114 Disk 3 92.02.03 HEJ HHA
└─⟦this⟧ »RTP\RC35SYS.RTP«
└─⟦d5707feda⟧ Bits:30010512 DVBS1.SW2114.src.2.14-3 SW2114 REAL #3/4 TIME PASCAL SOURCE REL 2.14 92.09.01
└─⟦this⟧ »RTP\RC35SYS.RTP«
rtp3502sys;\r
(* Routines used by the DOS-RTP Compiler *)\r
TYPE\r
stType = Array(1..255) OF Char;\r
StPtr = ^StType;\r
\r
ArType = Array(1..MaxInt) OF Byte;\r
ArPtr = ^ArType;\r
\r
IntegerPtr = ^Integer;\r
\r
Programrec = record\r
programref : IntegerPtr;\r
Firstparam :IntegerPtr;\r
paramsize : integer;\r
END;\r
\r
FuskProgramrec =\r
record\r
progrec : programrec;\r
filler : array(1..(typesize(program_Descriptor) -\r
typesize(programrec)) ) of byte;\r
end;\r
FUNCTION RCNew = _new______rc(bytes : Integer; wordallignment : Boolean):\r
IntegerPtr; EXTERNAL;\r
.\r
PROCEDURE RTP_ExcRec(a,b: ArPtr;Length : integer);\r
VAR help : byte;\r
BEGIN\r
FOR i := 1 to length do\r
BEGIN\r
help := b^(i);\r
b^(i) := a^(i);\r
a^(i) := help;\r
END;\r
END;\r
\r
PROCEDURE RTP_ExPack(a : IntegerPtr;FirstLastBit : Integer;\r
b : IntegerPtr;FirstLastBit1 : Integer);\r
var a1 : integer;\r
maske : integer;\r
firstbit,lastbit : integer;\r
b1 : integer;\r
maske1 : integer;\r
firstbit1, lastbit1 : integer;\r
BEGIN\r
with firstlastbit as x : record\r
high , low : byte;\r
end \r
do\r
begin\r
firstbit := x.high;\r
lastbit := x.low;\r
end;\r
maske := ((1 shift(lastbit - firstbit + 1)) - 1) shift (15 - lastbit);\r
with firstlastbit1 as x : record\r
high , low : byte;\r
end \r
do\r
begin\r
firstbit1 := x.high;\r
lastbit1 := x.low;\r
end;\r
maske1 := ((1 shift(lastbit1 - firstbit1 + 1)) - 1) shift (15 - lastbit1);\r
b1 := (b^ and maske1) shift (lastbit1 - 15);\r
a1 := (a^ and maske) shift (lastbit - 15);\r
a^ := (a^ and (not maske)) or (b1 shift (15 -lastbit));\r
b^ := (b^ and (not maske1)) or (a1 shift (15 -lastbit1));\r
END;\r
\r
PROCEDURE RTP_ExPackRec(a : IntegerPtr;FirstLastBit : Integer;\r
b : IntegerPtr);\r
var a1 : integer;\r
maske : integer;\r
firstbit,lastbit : integer;\r
BEGIN\r
with firstlastbit as x : record\r
high , low : byte;\r
end \r
do\r
begin\r
firstbit := x.high;\r
lastbit := x.low;\r
end;\r
maske := ((1 shift(lastbit - firstbit + 1)) - 1) shift (15 - lastbit);\r
a1 := (a^ and maske) shift (lastbit - 15);\r
if (lastbit - firstbit) > 7 then\r
begin\r
a^ := (a^ and (not maske)) or ( (b^ shift (15 -lastbit)) and maske);\r
b^ := a1; \r
end else\r
with b^ as b1 : byte do\r
begin\r
a^ := (a^ and (not maske)) or ( (b1 shift (15 -lastbit)) and maske);\r
b1 := a1; \r
end;\r
END;\r
\r
\r
PROCEDURE RTP_ExRecPack(a : IntegerPtr;\r
b : IntegerPtr;FirstLastBit1 : Integer);\r
PROCEDURE RTP_ExPackRec(a : IntegerPtr;FirstLastBit : Integer;\r
b : IntegerPtr);EXTERNAL;\r
BEGIN\r
RTP_ExPackRec(b, FirstLastBit1, a);\r
END;\r
\r
Function RTP_EqRec(a,b: ArPtr;Length : integer) : Boolean;\r
BEGIN\r
RTP_EqRec := True;\r
for i := 1 to length DO\r
IF a^(i) <> b^(i) THEN\r
BEGIN\r
RTP_EqRec := false;\r
Exit\r
END;\r
END;\r
PROCEDURE RTP_StStr(s1,s2: StPtr;LengthS1,LengthS2 : integer);\r
BEGIN\r
for i := 1 to LengthS1 DO\r
BEGIN\r
IF i <= LengthS2 THEN s1^(i) := s2^(i)\r
ELSE s1^(i) := ' ';\r
END;\r
END;\r
PROCEDURE RTP_ExStr(s1,s2: StPtr;LengthS1,LengthS2 : integer);\r
var maxleng,leng : integer;\r
s : StPtr;\r
help : char;\r
BEGIN\r
if lengthS1 > Lengths2 THEN\r
BEGIN\r
Leng := LengthS2;\r
MaxLeng := LengthS1;\r
s := s1;\r
END\r
ELSE\r
BEGIN\r
Leng := LengthS1;\r
MaxLeng := LengthS2;\r
s := s2;\r
END;\r
FOR i := 1 TO Leng DO\r
BEGIN\r
help := s2^(i);\r
s2^(i) := s1^(i);\r
s1^(i) := help;\r
END;\r
FOR i := leng + 1 to MaxLeng DO\r
s^(i) := ' ';\r
END;\r
\r
\r
FUNCTION RTP_GtStr(s1,s2: StPtr;LengthS1,LengthS2 : integer) : Boolean;\r
var i,leng : integer;\r
BEGIN\r
if lengthS1 > Lengths2 THEN\r
BEGIN\r
Leng := LengthS2;\r
END\r
ELSE\r
BEGIN\r
Leng := LengthS1;\r
END;\r
i := 1;\r
while i <= leng do \r
BEGIN\r
IF (s1^(i) <> s2^(i)) THEN ExitLoop;\r
i := i + 1;\r
END;\r
IF i <= Leng THEN RTP_GTStr := (s1^(i) > s2^(i))\r
ELSE\r
IF LengthS1 > LengthS2 THEN\r
BEGIN\r
RTP_GTStr := false; \r
for i := leng + 1 to LengthS1 DO\r
IF s1^(i) > ' ' THEN RTP_GtStr := true;\r
END\r
ELSE\r
BEGIN\r
RTP_GTStr := false;\r
END;\r
END;\r
\r
FUNCTION RTP_LtStr(s1,s2: StPtr;LengthS1,LengthS2 : integer) : Boolean;\r
var i,leng : integer;\r
BEGIN\r
if lengthS1 > Lengths2 THEN\r
BEGIN\r
Leng := LengthS2;\r
END\r
ELSE\r
BEGIN\r
Leng := LengthS1;\r
END;\r
i := 1;\r
while i <= leng do \r
BEGIN\r
IF (s1^(i) <> s2^(i)) THEN ExitLoop;\r
i := i + 1;\r
END;\r
IF i <= Leng THEN RTP_LTStr := (s1^(i) < s2^(i))\r
ELSE\r
IF LengthS1 < LengthS2 THEN\r
BEGIN\r
RTP_LTStr := false; \r
for i := leng + 1 to LengthS2 DO\r
IF s2^(i) > ' ' THEN RTP_LtStr := true;\r
END\r
ELSE\r
BEGIN\r
RTP_LTStr := false;\r
END;\r
END;\r
$code\r
FUNCTION RTP_EqStr(s1,s2: StPtr;LengthS1,LengthS2 : integer) : Boolean;\r
var maxleng,leng : integer;\r
bool : Boolean := true;\r
s : StPtr;\r
BEGIN\r
if lengthS1 > Lengths2 THEN\r
BEGIN\r
Leng := LengthS2;\r
MaxLeng := LengthS1;\r
s := s1;\r
END\r
ELSE\r
BEGIN\r
Leng := LengthS1;\r
MaxLeng := LengthS2;\r
s := s2;\r
END;\r
FOR i := 1 TO Leng DO\r
Bool := Bool AND (s1^(i) = s2^(i));\r
IF Bool then\r
FOR i := leng + 1 to MaxLeng DO\r
Bool := Bool AND (s^(i) = ' ');\r
RTP_EqStr := Bool; \r
END;\r
$nocode\r
\r
function create(inspect incname: string; var prog: Fuskprogramrec;\r
var pr: process; size: integer; prio: integer): create_result;\r
\r
\r
function oldcreate = create(Inspect pn : alfa; prog : programrec;\r
var p : process; bytes : integer;prio:priotype) : create_result;\r
EXTERNAL;\r
var a : alfa;\r
BEGIN\r
a := incname;\r
create := oldcreate(a,prog.ProgRec,pr,size,prio);\r
END;\r
\r
function link(inspect incname: string;var prog: program_descriptor):\r
link_result;\r
function oldlink = link(inspect incname: alfa;var prog: program_descriptor):\r
link_result; EXTERNAL;\r
var\r
a : alfa;\r
ll : link_result;\r
BEGIN\r
a := incname;\r
for i := 1 to 12 do\r
if ( (ord(a(i)) >= ord('A') ) AND (ord(a(i)) <= ord('Z'))) THEN\r
a(i) := chr(ord(a(i)) - ord('A') + ord('a'));\r
ll := oldlink(a,prog); \r
link := ll;\r
END;\r
\r
function allocmempool(var p: pool; no_of_bufs, bufsize: 0..maxint;\r
mem: mem_type): 0..maxint;\r
BEGIN\r
Allocmempool := AllocPool(p,No_Of_bufs,bufsize);\r
END;\r
\r
PROCEDURE new(VAR p : IntegerPtr; Size : Integer);\r
BEGIN\r
p := RCNew(size,true);\r
END;\r
\r
function deletemailbox(inspect mbx_name: string): integer;\r
function delmail = deletemailbox(inspect mbx_name: alfa): integer;\r
external;\r
VAR a : alfa;\r
BEGIN\r
a := mbx_name;\r
deletemailbox := delmail(a);\r
END;\r
\r
function namemailbox(var m: mailbox; inspect mbx_name: string): integer;\r
function namemail = namemailbox(var m: mailbox; inspect mbx_name: alfa): integer;\r
external;\r
VAR a : alfa;\r
BEGIN\r
a := mbx_name;\r
namemailbox := namemail(m,a);\r
END;\r
\r
function ownname(var name:string): byte;\r
function own = ownname(var name:alfa): byte;\r
external;\r
VAR a : alfa;\r
BEGIN\r
a := name;\r
ownname := own(a);\r
name := a;\r
END;\r
\r
function ownprogramname(var name:string): byte;\r
function own = ownprogramname(var name:alfa): byte;\r
external;\r
VAR a : alfa;\r
BEGIN\r
a := name;\r
ownprogramname := own(a);\r
name := a;\r
END;\r
\r
function searchmailbox(inspect mbx_name: string): ^mailbox;\r
function search = searchmailbox(inspect mbx_name: alfa): ^mailbox;\r
external;\r
VAR a : alfa;\r
BEGIN\r
a := mbx_name;\r
searchmailbox := search(a);\r
END;\r
\r
Procedure setownname(INSPECT name : string);\r
Procedure setownnamerc(INSPECT name : alfa); External;\r
VAR a : alfa;\r
BEGIN\r
a := name;\r
setownnamerc(a);\r
END;\r
\r
function callremote(VAR r : Reference; Inspect name: string) : Integer;\r
function oldcallremote = callremote(VAR r : Reference;\r
Inspect name: alfa) : Integer; EXTERNAL;\r
VAR\r
a : alfa;\r
BEGIN\r
a := name;\r
callremote := oldcallremote(r,a);\r
END.\r
\r
\r
«eof»