AUSTRALIAN OS9
NE\^SLETTER
Volume 8
March 1994
Number 2
EDITOR:
SUB-EDITOR:
TREASURER:
LIBRARIAN:
CONSULTANT
SUPPORT:
Gordon Bentzen
Bob Devries
Jean-Pierre Jacquet
Fax Messages
Rod Holden
Don Berrie
Brisbane OS9 Users Group
CONTENTS
(07) 344-3881
(07) 278-7209
(07) 372-4675
(07) 372-8325
(07) 200-9870
(079) 75-3537
Editorial page 2
0S9 BBS Sysop Page 2
Bootsplit Page 5
Sound Piles page 5
Scientific Calculator Page 7
EditoritU Material:
Library Requests:
Gordon Bentzen
Rod Holden
8 Odin Street
53 Hai^ Road
SUNNYBA^K Qld ^109
LOGAN LEA QM 4131
AUSTRALIAN OS9 NEWSLETTER
Newsletter of the National OS9 User Group
Volume 8 Number 2
EDITOR : Gordon Bentzen
SUBEDITOR : Bob Devries
SUPPORT : Brisbane 0S9 Level 2 Users Group,
TREASURER : Jean-Pierre Jacquet
LIBRARIAN : Rod Holden
Hello! is an^xxly there? At the time of our last
subsciption renewal we asked members to again return
a Membership Application/Renewal form and we thank
you again for your continued support. Also, if I
recall correctly, we were pleased with the number of
responses which indicated they would be able to
contribute material for inclusion in the newsletter.
Hey this was really encouraging! but where have you
guys gone?
We are now half way through the current subscription
year and I would not like to see anybody miss out on
having their article published due to the rush in the
last half of the year. Hint - please send your
material as soon as possible :-) <grin>
Does anybody use the source code which is published
from time to time? Well I can report that I compiled
the 'C source for Bootsplit by Bob Devries from last
months newsletter. I used the 'C compiler from OS-
9000 after only a couple of changes to the source and
of course assistance from Bob. (see the details later
in this newsletter).
Anyway the programme does work just fine on the OS-
9000 Boot file and I also understand that Don Berrie
had similar success with OSK and the MM One. Thanks
Bob for this simple but very useful utility. I would
be interested to know if anybody compliled a CoCo
0S9/6809 version.
We do need to know what you think of the material we
present in each newsletter as we want to cater to
your needs and wants. This may make our job a little
more difficult but we are willing to give it a go.
I will have to leave now to go stand by the mailbox.
Until next time, Cheers Gordon.
_ A
/ W \
/ OZ - 0S9 \
\ RiBBs 2.1 /
^ W
The National 0S9 Usergroup
(07)-805-5980
300/1200/2400/9600/14400 baud.
20:00 to 21:30 HRS.(AEST)
(8N1)
New Phone number!
Co-ordinator: Bob Devries (07)-278-7209
Sysop: Rod Holden
This is (RiBBS).... A Tandy Coco Based BBS program.
This BBS is accessable to Usergroup Members ONLY!
Feel free to look around , and test out the options,
0S9 for Ever ! ! ! i
This is your Sysop
this lot;
giving you a directory listing of what type of software is available, feast your eyes on
Page 2
March 1994
AUSTRTUl^IAN OS9 NEWSLETTER
DNLD
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
D1^D/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9,
DNLD/0S9
DNLD/0S9,
DNLD/0S9
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DKLD/0S9.
DNLD/0S9.
DKLD/0S9^
DNLD/0S9.
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9^
DNLD/0S9.
DNLD/0S9.
DNLD/0S9,
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
APP
APP/ad9,ar
APP/areacode.ar
APP/astronl.ar
APP/cal2.ar
_APP/calcl3.pak
_APP/catlog.pak
^APP/cclock.arc
_APP/checks.pak
_APP/dbase.ar
_APP/dcraessag.arc
APP/dynafix.ar
,APP/dynapatc.ar
_APP/ed.ar
_APP/exfind.ar
_APP/filer.ar
_APP/hdline.ar
_APP/itdictl4.ar
_APP/label201.pak
_APP/ledger45.pak
_APP/loans.ar
_APP/[nail.ar
_APP/inan,ar
_APP/niiiiiber.ar
3PP/os9niail.pak
_APP/paynister,ar
_APP/quiz.pak
_APP/register.ar
_APP/sc.pak
_APP/sculptor.ar
_APP/sled.ar
_APP/swise.pak
APP/tax90.ar
APP/vi,ar
_APP/vull.pak
APP/wp31.ar
APP/xled22.pak
.GAM
_GAH/adventur.pak
.GAM/astroLar
.GAM/batlship.ar
.GAM /black] ac.pak
.GAM/cribge.ar
.GAM/dungeons.ar
GAM/games.ar
_GAM/gaiDeshow,pak
.GAM/geraquest,pak
.GAM/glife.ar
GAM/hordes.ar
GAM/kq3.pat
GAM/lander.ar
GAM/lotto.ar
GAM/lsl2sol.pak
GAM/mastmind.ar
DKLD/0S9
DKLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9,
DNLD/0S9
DNLD/0S9
DNLD/0S9
DIfLD/0S9,
DNLD/0S9,
DMLD/0S9
DNLD/0S9,
DtiLD/0S9
DMLD/0S9
DNLD/0S9,
DKLD/0S9.
DNLD/0S9^
DNLD/0S9.
DNLD/0S9
DNLD/0S9
DlfLD/0S9^
DNLD/0S9
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DHLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9.
DNLD/0S9,
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DliLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9^
DNLD/0S9.
DNLD/0S9.
DNLD/0S9,
DNLD/0S9^
DNLD/0S9.
DNLD/0S9.
DKLD/0S9.
DNLD/0S9^
DNLD/0S9.
DNLD/0S9.
DKLD/0S9.
_GAM/mixup.ar
_GAM/nflschd.ar
GAM/nim.ar
_GAM/pacos9.ar
_GAM/psychic.ar
_GAM/rescue.pak
_GAM/sokoban.ar
_GAM/spy.pak
GAM/stones.pak
_GAM/strandl.arc
_GAM/tetris.ar
_GAM/trek.ar
_GAM/ttt.ar
_GAM/valspeak.ar
_GAM/wrevenge.pak
_GAM/yahtzee.ar
GAM/zap.pak
_GRA
_GRA/altfont.bin
_GRA/ansishow.ar
_GRA/banner.pak
_GRA/block.ar
^GRA/bouncer.ar
_GRA/brot*ar
_GRA/cartog,ar
_GRA/cgp220.pak
_GRA/cgpduinp.ar
_GRA/coco.ar
_GRA/colordinp.pak
_GRA/cursive,ar
_GRA/cviewgf2*pak
_GRA/dragfont.ar
_GRA/fern.ar
_GRA/fonted.ar
_GRA/fonts.ar
_GRA/fstgrf.ar
GRA/gcofflp,ar
.GRA/gfx2.ar
^GRA/gfx2fix.ar
_GRA/gfxc[nds.pak
_GRA/grab,ar
_GRA/ibni.fnt
GRA/macview.ar
,GRA/max9.ar
^GRA/iDge2vef.ar
,GRA/(norewin,ar
_GRA/ncolor.pak
,GRA/orb.pak
.GRA/palette.ar
^GRA/pci.pak
_GRA/prf.ar
^GRA/rayboun2,arc
_GRA/rayboimc.ar
GRA/rgb.ar
GRA/rlepic.pak
March 1994
Page 3
AUSTRALIAN OS9 NEWSLETTER
DKLD/0S9
Dm.D/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DHLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9,
DNLD/0S9
DNLD/0S9.
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9
DKLD/0S9
DNLD/0S9,
DNLD/0S9,
DNLD/0S9.
DNLD/0S9
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9.
DNLD/0S9„
DNLD/0S9,
DtiLD/0S9_
DNLD/0S9_
DNLD/0S9,
DNLD/0S9^
DNLD/0S9.
DNLD/0S9_
DNLD/0S9_
DNLD/0S9_
DNLD/0S9^
DNLD/0S9
DNLD/0S9_
DNLD/0S9_
DNLD/0S9_
DNLD/0S9_
GM/s.ar
GRA/sea3d.pak
GRA/shapes.ar
GRA/show.ar
GRA/spiro.ar
GRA/vefprt.ar
_GRA./view44.ar
GRA/waterfal.ar
GRA/window.ar
GRA/wload.ar
_GRA/worins.ar
_GRA/wreath.ar
_GRA/sview.pak
_MUL
_HUL/aif_nigr.ar
_MUL/aifbnc.ar
_MUL/bonk.pak
_MUL/cardl7a.ar
_MUL/cannen,ar
„MUL/cubist.ar
_HUL/deadic*ar
.MUL/ed30,ar
_MUL/edcon.ar
^HUL/edfont,ar
_MUL/edpat30a.ar
_MLIL/edptr.ar
_MUL/envelope,pak
_HUL/fntflian,pak
_MUL/fs2ffiv,ar
^MUL/gfrraat.ar
_MlIL/glabel.ar
_MUL/gshelLar
.MUL/gshell2.ar
HUL/gshpat.ar
MUL/guib.ar
.MUL/guiblLpak
_MUL/icon.pak
MUL/iconedit.ar
_MUL/icons.ar
MUL/icons.pak
MUL/]budget.pak
_MUL/kq3.ar
_MUL/inanager2,pak
MUL/multedit.ar
_MUL/raultii.ipc
m/raultii.pak
MUL/n!v2pat.ar
^HUL/mvaifs.ar
MUL/ravskeLar
MUL/nivtest.ar
Hl]L/newdir,ar
MUL/pacaif.ar
MUL/phonbase,pak
MUL/pointers.pak
HUL/ratmaze.ar
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DKLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DKLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9
DKLD/0S9
DNLD/0S9
DNLD/0S9.
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DWLD/0S9.
DNLD/0S9,
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9,
DNLD/0S9.
DNLD/0S9.
DNLD/0S9,
DNLD/0S9.
DNLD/0S9,
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9_
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9,
DNLD/0S9.
DKLD/0S9_
DNLD/0S9_
DNLD/0S9_
DNLD/0S9_
_MUL/shGlicon.pak
_MUL/srtiate.ar
_HUL/snienu,ar
_MUL/solitarG.ar
_MUL/stereovu.ar
_MUL/submv.ar
_MUL/superike.ar
_MUL/vicon.pak
^HUL/windfix.ar
_HUL/yaicon.ar
_HUL/yatzee.ar
_MUS '
_MUS/digitize.ar
_MUS/mfcvpl.ar
_MUS/play.ar
^MUS/play3.ar
_HUS/play4.ar
_MUS/playmus,pak
_MUS/playutiLpak
MUS/sspak.ar
_MUS/ultibox,ar
_MUS/umuse.ar
'pro
_PRO/alib.pak
_PR0/b09utiLpak
_PRO/carray,ar
_PR0/cc2.pak
_PRO/clib,ar
_PRO/cpatch.ar
_PRO/devpakhp,ar
_PRO/devsys.pak
_PRO/disasni.ar
_PRO/header,ar
_PRO/os9p4.ar
_PRO/pilotLar
_PR0/pilot2.ar
_PR0/sorts_09.ar
_PRO/Secad.lha
.SYS
_SYS/cactie.ar
_SYS/cc3dis.ar
.SYS/cc3disk,ar
^SYS/cc3go.ar
,SYS/ctidisk,ar
_SYS/clockbb.ar
^SYS/copypatc.ar
SYS/cpprint.ar
.SYS/dirosk.ar
^SYS/distsasi.ar
.SYS/distscsi.ar
^SYS/eswllO.ar
SYS/floppy35.ar
SYS/kfutiLar
SYS/nubbclk.ar
SYS/os9p2.ar
Page 4
March 1994
AUSTRALIAN OS9 NEWSLETTER
DNLD/0S9
DNLD/0S9.
DNLD/0S9
DNLD/0S9
DNLD/0S9
DNLD/0S9.
DNLD/0S9.
DNLD/0S9.
DNLD/0S9^
DNLD/0S9^
DNLD/0S9
DNLD/0S9
SYS/os9p3,ar
_SYS/partqen.ar
SYS/pa tches.ar
^SYS/ran\_736k.asm
SYS/ramdisk.pak
_SYS/rbf30,ar'
^SYS/scfed2.ar
^SYS/spedupl2,ar
_SYS/vdgdesc.ar
_SYS/vrn,ar
_SYS/widedirs.ar
_SYS/wx.ar
DNLD/0S9^_SYS/xtbootfx.pak
DNLD/0S9„TEL
We are currently trying to obtain the rest of the
0S9 Coffiffiunity Network files which is approximately
600 files "froiB the States. As soon as we receive
them a directory listing will be published, and from
a list I have seen it looks real interesting. See
you in the bit stream; Happy CoCoing.
Sysop
Rod Holden
ooooooooooOOOOOOOOOOoooooooooo
BootSplit - 0S9000 changes
With the help of an 0S9000 user; I have been able to make the necessary modifications to my C programme
BootSplit. The changes necessary are:
1. Change the name of the structure from roodhcom to rah_com-
So struct modhcom module becomes struct mh_coin module.
2. Change the field names in the structure from _m to m_.
So module, msize becomes module. m size.
Regards ; Bob Devries
ooooooooooOO(X)OOOOOOoooooooooo
Playing back sound samples
Recently; I had the chance to check out a CD-ROM
which was filled with IBM files of all sorts. Of
course; most of these were of no use to me, but one
file; AUDI0FHT.2IP caught ray eye. After I unzipped
it; I found that it was a collection of text files
with details of quite a few different sampled sound
file formats. I feel that these could be useful to
the OS-9 world; so I am going to include them in the
newsletter a few at a time, as space permits. Most
of the files give the data break-down, so that a
programme can be written to decode the sound sample
file, and play it back on any computer. The file
types include 8SVX, VOC, WAV, and AIFF.
Bob Devries
AIFF Format (Audio IFF) and AIFC
This format was developed by Apple for storing high-
quality sampled sound and musical instrument info; it
is also used by SGI and several professional audio
packages (sorry, I know no names). An extension,
called AIFC or AIFF-C, supports compression (see the
last item below).
I've
spec
made a BinHex'ed HacWrite version of the AIFF
(no idea if it's the same text as mentioned
below) available by anonymous ftp from ftpxwi.nl
[192.16.184.180]; the file is
/pub/audio/AudioIFF1.2.hqx. But you may be better off
with the AIFF-C specs, see below,
Mike Brindley (brindleygece.orst.edu) writes:
"The complete AIFF spec by Steve Milne, Matt
Deatherage (Apple) is available in "AMIGA ROM Kernal
Reference Manual: Devices (3rd Edition)' 1991 by
Commodore -Amiga, Inc.; Addison-Wesley Publishing Co.;
ISBN 0-201-56775-X; starting on page 435 (this
edition has a charcoal grey cover). It is available
in most bookstores; and soon in many good
librairies."
According to Mark Callow (mscgsgi.cora):
A PostScript version of the AIFF-C specification is
available via anonymous ftp on FTP.SGI.COM
(192.48.153.1) as /sgi/aiff-c.9,26.91.ps.
March 1994
Page 5
AUSTRALIAN OS9 NEWSLETTER
RIFF WAVE (.WAV) file format
RIFF is a forinat by Microsoft and IBM which is
similar in spirit and functionality as EA-IFF-85; but
not coiTipaLible (and it's in little-endian byte order,
of course :-). WAVE is RIFF's equivalent of AIFF,
and its inclusion in Microsoft Windows 3.1 has
suddenly made it important to know about.
Rob Ryan was kind enough to send me a description of
the RIFF format. Unfortunately, it is too big to
include here (27 k), but I've made it available for
anonymous ftp as ftp,cwi.nl:/pu]3/audio/RIFF-forfflat.
And here's a [>3inter to the official description from
Matt Saettler, Microsoft Multimedia:
"The complete definition of the WAVE file format as
defined by IBM/Microsoft is available for anon, FTP
from ftp, uu, net in the vendor/microsoft/multimedia
directory,"
(Rob Ryan's version iiiay dcLudlly Ije an extract from
one of the files stored there.)
IFF/8SVX For mat
Newsgroups: alt. binaries. sounds, d, alt. sex. sounds
Subject: Format of the IFF header (Amiga sounds)
Message-ID: <2509@tardis, Tymnet. COM>
From: jnisPtardis. Tymnet. COM (Joe Smith)
Date: 23 Oct 91 23:54:38 GMT
FoUowup-To: alt. binaries. sounds. d
Organization: BT North America (Tymnet)
The first 12 bytes of an IFF file are used to
distinguish between an Amiga picture (FORM-ILBM), an
Amiga sound sample (F0RM-8SVX); or other file
conforming to the IFF specification. The middle 4
bytes is the count of bytes that follow the "FORM"
and byte count longwords. (Numbers are stored in
M68000 form, high order byte first.)
FutureSound audio file, 15000 samples at lO.OOOKHz, file is 15048 bytes long.
0000: 464F524D 00003AC0 38535658 56484452
FORM 15040 8 S V X V H D R
0010: 00000014 00003A98 00000000 00000000
20 15000
0020: 27100100 00010000 424F4459 00003A98
10000 10 1.0 BODY 15000
F0RM..:,8SVXVHDR
BODY,.
0000000.. 03 = "FORM", identifies this as an IFF format file.
FORM+00..03 (ULONG) = maraber of bytes that follow, (Unsigned long int.
F0RH+03.,07 = "8SVX", identifies this as an 8-bit sampled voice.
????+00..03 = "VHDR", Voice8Header, describes the parameters for the BODY.
VHDR+00.,03 (ULONG) = number of bytes to follow.
VHDR+04.,07 (ULONG)
VHDR+08..0B (ULONG)
VHDR+OC.OF (ULONG)
samples in the high octave 1-shot part,
samples in the high octave repeat part,
samples per cycle in high octave (if repeating), else 0.
VHDR+10..11 (UWORD) = samples per second, (Unsigned 16-bit quantity.)
VHDR+12 (UBYTE) = number of octaves of waveforms in sample,
VHDR+iS (UBYTE) = data compression (O=none, i=Fibonacci-delta encoding).
VHDR+14..17 (FIXED) - volume. (The number 65536 means 1.0 or full volume.)
????+00..03 = "BODY", identifies the start of the audio data.
BODY+00..03 (ULONG) = number of bytes to follow.
B0DY+04..NNNNN - Data, signed bytes, from -128 to +127.
0030: 04030201 02030303 04050605 05060605
0040: 06080806 07060505 04020202 OlFFOOOO
0050: 00000000 FFOOFFFF FFFEFDFD FDFEFFFF
0060: FDFDFFOO OOFFFFFF 00000000 OOFFFFOO
0070: 00000000 OOFFOOOO OOFFFEFF 00000000
Page 6
March 1994
AUSTRALIAN OS9 NEWSLETTER
0080: 00010000 OOOIOIFF FFOOOOFE FEFFFFFE
0090: FDFDFEFD FDFFFFFC FDFEFDFD FEFFFEFE
OOAO: FFFEFEFE FEFEFEFF FFFFFEFF OOFFFFOl
This small section of the audio sample shows the number ranging from -5 tOxFD) to +8 (0x08). Warning: Do not
assume that the BODY starts 48 bytes into the file. In addition to "VHDR", chunks labeled "NAME", "AUTH",
"ANNO", or "(c) " may be present, and may be in any order. You will have to check the byte count in each chunk
to determine how many bytes to skip,
ooooooooooOOOOOOOOOOoooooooooo
Scientific Calculator for 0S9
In among the large quantity of public domain software we have, I found a scientific calculator prograniHie for 0S9.
It is in the OCN library, and is called SCAR. It is in the 0S9_APP subdirectory. What follows is the comnients
from the front of the source code, which tells how it is used, and which functions are available. The source
code should compile on either 0S9/6809, or 0S9/68000, and probably on OS9000 as well.
/* sec
Scientific Calculator, Version 2.1 for 0S9 and 0S9/68000
Copyright 1989 John H Semler
NOTE: You must use good mathematical common sense when interpreting the
results returned by "sc".
t*i*******t**t**t*t*******************************+**++*++*****+i *********
Revision History -
11/03/89 Modified the source code so that it can be compiled under
0S9 and OS9/68000.
11/03/89 Corrected memory management bug involving variable storage.
************************ **********tt*±**t**t*+tttt +**+**+++******* ********
General Overview:
Input into "sc" consist of a series of statements of which there are
two types. Expression statements are mathematical strings that will
evaluate to a single result. Command statements are strings that
will perforin some action but return no results. All statements must
ierfflinate with the character ' ; ' .
Binary operators:
Operands can either be real numbers, real matrices, complex numbers,
complex matrices, named constants ("e", "i", and "pi"), variable
references, and or valid expressions unless otherwise restricted by
mathematical convention.
March 1994 Page 7
AUSTRALIAN OS9 NEWSLETTER
Precedence and associativity of the binary and unary operators:
Operator Precedence Associativity Comments
I 5 (high) right-to-left Unary plus
5 right-to-left Unary minus
4 right-to-left Power operator
/ 3 left-to-right Division
* 3 left-to-right Multiplication
2 left-to-right Subtraction
+ 2 left-to-right Addition
1 (low) right-to-left Assignment **
The evaluation order of expressions can be modified through the use
of parenthesis.
** Note: The assignment operator can appear anywhere in the expression.
However, the left operand must be a variable reference.
Built-in constants:
pi = 3.141592653589796
e = 2.718281828450945
i = <0;1> (The imaginary unit)
Complex numbers:
Two different forms are accepted: Angle bracket pairs, or expressions
involving the imaginary unit. For instance, the complex expression
X = 3 + 4i can be entered as:
0S9:sc
0S9:sc
0S9:sc
X-3+4*i;
or
X=<3,4>;
or
X=5*e^(. 927295218*1);
<3,4>
<3,4>
<3,4>
Matrices (n x m where n,m dictated by the size of the input buffer):
Matrices are entered using two levels of curly brackets. The inner-
most levels of curly brackets will group row elements together. For
instance, the complex matrix expression
-1
1-10 3 I I 3 I
I 7 1 -1 I M 2 I
I 2+i 3 I I 5 I
can be entered as:
0S9:sc
{{-1,0,3}, {7,1,-1), {2+i,3,0)r-lM{3), {2), {5)1;
or for more readability
0S9:sc
{{-1, 0, 3},
Page 8 March 1994
AUSTRALIAN 0S9 NEWSLETTER
I h 1, -IK
(2+i, 3, 0|r-l * \{3]. \2\, 151);
Display register reference:
You can access the display register through the variable name "disp"
Variable references:
Variables may consist of a single letter followed by zero or more
occurrences of letters and digits terminating with zero or more
occurrences of dinks. Names that are reserved by "sc" may not be
used as variable names. The list of reserve names are as follows:
"clear", "list", "eng", "fix", "polar", "rect", "pi", "e", "i",
"disp", and the built-in function names.
Built-in functions (all functions operate with scalar operands unless
otherwise noted):
sin(x) Returns the sine of x,
coslx) Returns the cosine of x,
tan(x) Returns the tangent of x,
asin(x) Returns the arc sine of x,
acos(x) Returns the arc cosine of x,
atan(x) Returns the arc tangent of x,
csc(x) Returns the cosecant of x,
sec(x) Returns the secant of x,
cot(x) Returns the cotangent of x,
acsc(x) Returns the arc cosecant of x,
asec(x) Returns the arc secant of x,
acot(x) Returns the arc cotangent of x,
sinh(x) Returns the hyperbolic sine of x,
cosh(x) Returns the hyperbolic cosine of x,
tanh(x) Returns the hyperbolic tangent of x,
asinh(x) Returns the arc hyperbolic sine of x,
acosh(x) Returns the arc hyperbolic cosine of x,
atanh(x) Returns the arc hyperbolic tangent of x,
csch(x) Returns the hyperbolic cosecant of x,
sech(x) Returns the hyperbolic secant of x,
coth(x) Returns the hyperbolic cotangent of x,
acsch(x) Returns the arc hyperbolic cosecant of x,
asech(x) Returns the arc hyperbolic secant of x,
acoth(x) Returns the arc hyperbolic cotangent of x,
log(x) Returns the logarithm base 10 of x,
ln(x) Returns the logarithm base E of x,
antilog(x) Returns the anti logarithm base 10 of x,
exp(x) Returns the anti logarithm base E of x,
sqrt(x) Returns the square root of x,
sqr(x) Returns the square of x,
abs(x) Returns the absolute value of x,
March 1994
Page 9
AUSTRALIAN OS9 NEWSLETTER
det(x) Returns the determinant of the matrix x.
coniix) Returns the conjugate of the scalar x (or matrix x).
trans(x) Returns the transpose of the matrix x.
canon(x) Returns the row canonical form of the matrix x.
Commands :
list - Lists out the memory locations (variable names, values),
clear - Clears out the memory locations,
eng - Changes the display mode to the engineering format,
fix - Changes the display mode to the fix point format,
polar - Changes the display mode to polar format "<r, theta>".
rect - Changes the display mode to rectangular format "<Re, Iffl>",
Notes concerning the display mode:
1) The polar display mode will display theta in the range from -PI/2
to 3*PI/2. If the magnitude of theta is less than LOe-U radians,
theta will not be printed out (no brackets). This guards against
small roundoff error causing real numbers to be printed in polar
form,
2) For the rectangular mode, if the real component is greater than
l.Oell times the imaginary component, the imaginary component will
not be printed out (no brackets). If the imaginary componet is
greater than LOell times the real component, the real component
will be zeroed out. This was done to help reduce the clutter.
To compile and link this program under 0S9 (6809 version) you will
need the math enhanced library "CLIBT.L" and the defines from the file
"HEADER. AR", both of which can be found in data library 3 of the 0S9
forum on CompuServe.
********************************************************************************
SAMPLE PROBLEMS IN LINEAR ALGEBRA:
Problem |1 (m equations in n unknowns, infinite number of solutions)
Solve for x, y, z, s, t given:
X + 2y - 3z - 2s + 4t = 1
2x + 5y - 8z - s + 6t - 4
X + 4y - 7z + 5s + 2t = 8
Enter the coefficient matrix and the constants as follows:
0S9:sc
canondl 1, 2,-3,-2, 4, 1),
{ 2, 5,-8,-1, 6, 4),
{ 1, 4,-7, 5, 2, 8)));
"sc" will respond with:
ill, 0,1, 0,24, 21), {0,1, -2, 0,-8, -7), {0,0,0, 1,2, 3)}
Page 10 March 1994
AUSTRALIAN OS9 NEWSLETTER
Rewrite as:
X + Oy + z + Os + 24t - 21 x - 21 - z - 24t
Ox + y - 22 + Os - 8t = -7 or y = -7 + 2z + 8t
Ox + Oy + Oz + Is + 2t = 3 s = 3 - 2t
The parametric solution vector is (let z=a and t=b)
(x=21-a-24b, y=-7+2a+8b, z=a; s=3-2b, t=b)
If a=l and b=2 does the solution vector (x=-28,y=ll;Z=l,s=-l,t=2)
satisfy the set of linear equations given above?
Yes! Work it out in the following manner:
0S9:sc
II 1, 2.-3,-2, 4},
1 2, 5,-8,-1, 6},
{ h 4,-7, 5, 2}} * {{-28},{11),{1),{-1),|2));
"sc" will respond with:
Ul},|4),|8})
which is the constants for the set of equations given above.
Problem 12 (m equations in n unknowns, no solution)
Solve for x, y, z, s, t given:
X + 2y - 3z - 2s + 4t - 1
2x + 5y - 8z - s + 6t = 4
4x +10y -162 - 2s +12t - 9
Enter the coefficient matrix and the constants as follows:
0S9:sc
canon({| 1, 2, -3, -2, 4, 1},
I 2, 5, -8, -1, 6, 4),
{ 4, 10,-16. -2. 12. 9)1);
"sc" will respond with:
111,0,1, -8, 8, 01,10,1,-2,3, -2,0}, (0,0,0, 0,0,1})
Rewrite as:
X + Oy + 2 + Os - 8t = 8 X = 8 - 2 + 8t
Ox + y - 22 + 3s - 2t = or y - 2z - 3s + 2t
Ox + Oy + Oz + Os + Ot = 1 = 1
There is no solution for this set of equations since is
not equal to 1!
Problem |3 (n equations in n unknowns solved using the inverse
March 1994 Page 11
AUSTRALIAN OS9 NEWSLETTER
operator)
Solve for x, y, z given:
X + 2y - z = -1
X - y + 2z = 8
2x - y - z - 5
Enter the coefficient matrix and the constants as follows:
0S9:sc
|{ 1, 2. -IK
I 1,-L 2),
{ 2,-l.-l)r-l * ||-1),{8}.{5}1;
"sc" will respond with:
n3},|-lK{2}}
Check the answer:
{{ 1, 2,-1),
{ 1,-1, 2),
(2,-1,-1)1 *disp;
"sc" will respond with:
|{-11,(81,|511
which is the constants for the set of equations given above*
******************************************************************************* /
ooooooooooOOOOOO(X)OOoooooooooo
Page 12 March 1994