Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

JPI 1.17 compiler directives

2 views
Skip to first unread message

Martin Brown

unread,
Dec 30, 2008, 6:36:47 AM12/30/08
to
This is a real blast from the prehistoric past.

I wonder if anyone still has the compiler crib card for the TS 1.17
compiler?
If so any chance of a scanned copy? Mine has gone AWOL long since.

The inline compiler directives were along the lines of (*$A+*) where A
was some ASCII char.

The ones I that can remember are summarised below.
The ones with ??? I don't recall what they do. Ones ending ? are
guesses

A structure allignement + even, - any
C ff Register Save options (default F0)
F far calls ?
I index overflow test +on - off ?
J ???
N near calls ?
O ???
R range overflow test + on - off
S stack overflow test + on - off
T ???
V ???
W volatile variables + yes - no

I think "J" is something to do with non-reentrant RT code and I'd like
to think "I" was for INLINE, but I suspet it is Index range checking.
Can anyone remember any of the other options and what they mean?

Could that early compiler could support inlining for small functions.
I thought it could, but I can find no evidence. I know that 3.xx had
INLINE as a keyword (although various pragmas were needed around
inline code as well).

I know this compiler is long obsolete, but it still has some utility
for antique hardware.

Best wishes for 2009 and thanks for any enlightenment.

Regards,
Martin Brown

Chris Burrows

unread,
Dec 30, 2008, 7:00:09 PM12/30/08
to
"Martin Brown" <|||newspam|||@nezumi.demon.co.uk> wrote in message
news:8638ee30-72ce-4244...@35g2000pry.googlegroups.com...

> This is a real blast from the prehistoric past.
>
> I wonder if anyone still has the compiler crib card for the TS 1.17
> compiler?
> If so any chance of a scanned copy? Mine has gone AWOL long since.
>
> The inline compiler directives were along the lines of (*$A+*) where A
> was some ASCII char.
>
> Can anyone remember any of the other options and what they mean?
>

$A+/- Enable/disable aliased behaviour on global variables.

$B+/- Include/exclude a control-brak handler.

$C h Specify which registers will be preserved by procedures.

h is a hex number whose value is the sum of:

AX=1, CX=2, DX=4, BX=8, DS=10, ES=20, SI=40, DI=80.

BP is always preserved.

Default is (*$C F0*) i.e. DS+ES+SI+DI

$D n Specifies the name, n, of the data segment in which to put the global
variables.

$E+/- Enable /disable relaxed alias treatment of variant records.

$F Procedures will be called with FAR calls.

$G+/- Enable/disable module prefixes in external names.

$H+/- Enable treating constant aggregates as variables, thereby allowing
them to be modified.

$I+/- Enable/disable index checking.

$J+/- Enable/disable interrupt procedures, by generating IRET returns
instead of the usual RET instruction.

$K+/- Enable/disable the C language calling convention for procedures.

$M n Specifies the name, n, of the code segment in which to put code.

$N When this directive is used, procedures will be called with NEAR calls.

$O+/- Enable/disable overflow checking on whole number operations.

$P+/- Enable/disable generating external names for local procedures.

$Q+/- Enable/disable procedure tracing.

$R+/- Enable/disable subrange checking

$S h The hex number, h, specifies the amount of stack allocated for the
program.

$S+/- Enable/disable stack overflow checking.

$V+/- Enable/disable copying of open array value parameters.

$W+/- Enable/disable use of volatile parameters.

$X+/- Enable/disable 8087 stack spilling for procedures.

$Y+/- Enable/disable coinciding variant fields in a record.

$Z+/- Enable/disable checks for dereferencing of NIL pointers.


> Could that early compiler could support inlining for small functions.
> I thought it could, but I can find no evidence. I know that 3.xx had
> INLINE as a keyword (although various pragmas were needed around
> inline code as well).
>

I can't find any evidence either.

> Best wishes for 2009 and thanks for any enlightenment.
>

Wishing you and everybody else here a Happy New Year also,

--
Chris Burrows
CFB Software
Armaide: ARM Oberon-07 Development System for Windows
http://www.armaide.com
http://www.cfbsoftware.com/armaide

Martin Brown

unread,
Jan 15, 2009, 7:42:37 AM1/15/09
to
Hi Chris,

Thanks very much for this reply and the various alphabetic (*$
options.
A load there that I don't remember seeing before!

> > Could that early compiler could support inlining for small functions.
> > I thought it could, but I can find no evidence. I know that 3.xx had
> > INLINE as a keyword (although various pragmas were needed around
> > inline code as well).
>
> I can't find any evidence either.

I must have misremembered. Pity as I only have a working DOS 1.17 now
(I zapped the TS 3.20 DOS compiler a while ago beliving OS/2 was the
way ahead at that time).


>
> > Best wishes for 2009 and thanks for any enlightenment.
>
> Wishing you and everybody else here a Happy New Year also,

Thanks again for the reply Chris.

Cheers,
Martin Brown

0 new messages