home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.barnyard.co.uk
/
2015.02.ftp.barnyard.co.uk.tar
/
ftp.barnyard.co.uk
/
cpm
/
DRI-archive
/
roche
/
SAL80.TXT
< prev
next >
Wrap
Internet Message Format
|
2009-12-11
|
7KB
From: "arobase, Salle multimΘdia" <arobase1.rochef...@wanadoo.fr>
Newsgroups: comp.os.cpm
Subject: Wanted: SAL/80 "Compiler"
Date: Tue, 24 Jul 2001 11:49:41 +0200
Organization: Wanadoo, l'internet avec France Telecom
Lines: 166
Message-ID: <9jjsav$dlj$1@wanadoo.fr>
NNTP-Posting-Host: apoitiers-102-2-1-54.abo.wanadoo.fr
X-Trace: wanadoo.fr 995980447 14003 193.253.213.54 (24 Jul 2001 13:14:07 GMT)
X-Complaints-To: abuse@wanadoo.fr
NNTP-Posting-Date: 24 Jul 2001 13:14:07 GMT
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 5.00.2314.1300
X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2314.1300
I would like to get the following 235 pages manual
of the SAL/80 "compiler".
(Steve, do you understand now why I am so much
interested in this "thing", and why I have been trying
to get it for the last 10 years?... Do your best to
find it!)
Yours Sincerely,
"French Luser"
SAL80.TXT
---------
(Retyped by Emmanuel Roche.)
"Letters to the Editor", page 118,
in "Microsystems", Vol.5, No.5, May 1984
Dear Mr.,
I'd like a chance to respond to Mike Barker's review of our SAL/80 package
(March 1984). First, I should say that we HAVE changed the license contract
to
state EXPLICITLY that no royalties are required on programs written with the
SAL/80 compiler package. We had assumed that such a statement would be
redundant, SINCE THERE IS NO RUNTIME PACKAGE TO CHARGE ROYALTIES ON! But the
fact that the question has arisen shows that assumption to have been in
error.
I really do not want to write one of those endless line-by-line rebuttals of
all those points upon which I take issue with the reviewer. On the other
hand,
since more than 800 readers of MICROSYSTEMS have requested information about
SAL/80 either by letter, phone or bingo card, here is some more information
about the package.
"SAL/80 is a package of macros that claims to be a compiler implementing a
new
language of the same name." A more accurate description would be that it
converts the DRI macro assemblers into STRUCTURED macro assemblers. It is
sometimes convenient to refer to this combination as a compiler.
What distinguishes SAL/80 from other structured assemblers is the size and
scope of the package. Where other structured assemblers are content to
provide
an IF-ELSE and one or two LOOP constructs, SAL/80 also provides a
SELECT/CASE,
five flavors of LOOP, a fairly complete set of console I/O primitives, and
OPTIMIZES the test/branch code emitted by the control-statements. This
optimization means a saving of two (Z-80) or three (8080) bytes in about a
third of the branches generated.
The manual is large (235 pages), and considerable effort has been expended
to
make the contents accessible as a reference. In addition to the 3-page table
of contents, there is a 5 1/2-page subject index. The compiler source (which
is given in Appendix A) has its own table of contents and index.
Chapter 1 (45 pages) covers the syntax and semantics of the various
constructs
of the "language", with flow-charts and hints on how to use each directive.
There are cross-references to other sections of the manual and to the DRI
MAC/RMAC manual.
Chapter 2 (31 pages) is a tutorial on SAL/80 in the design and coding of
well-structured modular programs. A "worked" example is given in the form of
an elaborate memory-test program, with "snapshots" of portions of the code
at
various stages of completion.
Chapter 3 (50 pages) consists of the complete listing of the "worked"
example
in its final form. There are about 1,150 lines of SAL/80 code set off by
enough white space and comments to expand it to about 2,000 lines in all.
The
code is very readable, and anyone undertaking to learn SAL/80 would be
well-advised to spend some time with this chapter.
Chapter 4 is seven pages of tips on how not to get mugged by the various
snares and pitfalls of the SAL/80 package and/or the DRI macro assemblers.
Appendix A is the compiler source (70 pages), and, quite aside from the
actual
utility value of the program it represents, is an interesting example of
what
can be done with the macro facilities of MAC and RMAC.
Appendix B covers the error messages (generated by SAL/80) by showing what
will actually appear on the screen, and explaining its significance.
Appendix C is a summary of the SAL/80 commands, with the formal syntax and
cross-references to both the pertinent text in Chapter 1 as well as to the
implementing source code in Appendix A.
programs in SAL/80 are written by starting with a template that outlines the
"generic" shape of the program, and may be altered to suit the taste of the
individual. This consists largely of commented-out pre-declarations and
MACLIB
statements. Almost all data structuring and manipulation is done as one is
accustomed to do in ordinary assembly-level programming, but all of the
CONTROL structuring (test/branch code) is accomplished by using the SAL/80
control statements.
These control statements work almost precisely as do the corresponding
statements in Pascal or C, with IF-ENDIF, IF-ELSE-ENDELSE and
SELECT-CASE-ENDSELECT providing most of the forward branching, and the
several
loop statements generating the backward branches. The loop structures
include
the NON-INDEXED loops WHILE-ENDWHILE (test/exit at the top),
REPEAT-ENDREPEAT
(test/exit at the bottom) and LOOP-UNTIL-ENDLOOP (test/exit in the middle),
as
well as the INDEXED loops FOR-UNTIL-STEP-ENDFOR (test/exit anywhere) and
DO-ENDDO (test/exit at the bottom).
The "utility" macros are primarily concerned with console I/O, although
there
are some string operations (search and compare) and some 8- by 16-bit
multiply
and divide routines. The console I/O primitives reduce by an order of
magnitude the number of keystrokes required, as compared with that of
"naked"
assembler.
A program of 100 lines (exclusive of comments or white space) will compile
in
about one minute on a 6 MHz machine using 8" disks. Although this is rather
slow, programmers experienced in the use of the package have found that the
overall reduction in development time is great enough to make this
acceptable.
We, at PROTOOLS, expect that the next version (3.0) will be a separate,
native
code preprocessor compatible with other assemblers, will support Zilog as
well
as Intel mnemonics, and should run two to four times faster. In the
meantime,
the price of $59 (which includes a free update to version 3.0 when
available,
later this year) is intended to compensate for the slowness of compilation.
A
SAL/86 for the IBM PC will be offered for $99 at the same time.
As to ease of use, the point can be argued either way: If you program in
assembler only on rare occasions, say, one 80-line device driver a year,
then
it's probably not worth the effort to learn to use the package. If you
program
in assembler on a continuing basis or write large programs, then any
structured assembler you use will repay the effort many times over. For a
review of SAL/80 written by a user, see the February 1984 issue of Dr Dobb's
Journal.
Steve Newberry
PROTOOLS
24225 Summerhill Avenue
Los Altos, CA 94022
EOF