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
$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
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