Sei sulla pagina 1di 20

52.

DD
ACESSING THE NEW YEAR!
Directory of /dd/SYSOP/OSKer/I4 11:13:57
oer Last modified Attributes sector Btecout Nale
Levinsn 90/1/12 6709 ----r-n ! 8156 Basic09 Intra
StG 91/04/23 1104 ----r-If 4 8856 dlink.c
Mitor 91/04/21 2337 ----r-1 8 13196 Editor Rambles On
Fleaqle 91/12/7 1324 ----r-n !i 12780 o_say.can_You.c
Pollock 91/10/13 0210 ---- r-u 4 10640 Systel.Cal ls
Bditor 91/04/23 2313 ----r-lr t 707 tEnd
conSIDERATIONS FOR SUBMITORS
.login
There are a few thlngs ya'il can do to lake IY life easier. When
sending in subissions of any type (text, progml, please take sure of
a fel things first:
I) The file(s) are in ACII text, preferably without linefeeds.
c Do not justify the teXt, our processing lill align it for you.
3) Do NOT indent paragraphs, but do leave a blank line between thea.
4) Please don't leave any left largins or hyphenate any words.
51 Be sure to l ncl ude your nale and hal to contact you.
t ?-tt way to send It is via a network: Sysop@Root on stG-Net,
or 72427,335 on CIS.
7) If sending by lal l, use 089 CoCo Forlat, 5.25" or 3.5" (720k).
or ST fonat 3.5' (720k). or II foraat 3.5" (1.441)
8) If ynu fant to archive It, please use the 059 .A forlat.
the aSKer
'the OSKer' is printe lonthly by stG computers inc, P. O. Box 24285.
Speedway, Indiana, 46224. The president and editor is Scott
Griepentrog, V.P. Jil Hutchins, Secretary Chris Swinefurth, and
Treasurer Dave Renk.
Subscriptions to the aSKer are S12 within the U.S., SI5 for canada, and
m overseas.
Bditing and Layout for the OSKer is done cOlpletely under OSK, using a
prototype Kl. uacs is used for pre-editing of text, and a custOI
routine is used for foraatting and layout. A APS Allegro !II , flat
paper path, 24 pinl printer is used to prouce the initial cop for
duplication by offset, as well as printing the lailing addresses on the
back cover. The subscription list is also kept in a database under aSK.
To prevent a conflict of interest, stG COlputer inc., as bth publisher
of the OSKer and having ownership of software, will not directly
advertise in this aagazine, nor will the eitor In any way prolote said
software.
The Cover artwork is done by Alan Sheltra
sector "
the aSKer
Of icia stdad Sub stadad
Sublcnpaon Pogra
l PRINT "OUR NANE"
20 PRINT "YOUR ADDRES"
3 PRINT "YOUR CITY. STATE, ZI"
40 IF (IN USA) INCLUDE l&
0 IF h CANADA) INCLUDE D
b ELSE INCLUDE S20
70 MAIL TO:
te OSKer
P.O. Box 24285
SpeedylN 41224
Introduction to BIC09
by Eric Levinson 9/9/98
Many peple that have used the standard BAIC frol the Disk Extended
Color Basic believe that it is the best BASIC they have seen, or the
best in its tile. This is true, the Disk Extended Color Basic (DECB) is
a very pwerful. progralling language alloling certain features I ike
user-defined functions, direct buffer aanipulati on for graphics and fast
execution. In addition lany cOlpanies have wri tten compilers to further
cOlpress the BIC source code into an intmedlate pre-interpreted
executable code.
A fel tbings tbat DECB lacks, direct cOllunication litb the operating
systel, bigher structure (lore on this), and paraleter passing. In
addition 059 offers tbe user tbe ability to run lore than one progral at
a tile.
Why BICm
BAICeg was developed and structured after PASCA. BAICe9 is a highly
structured progralling language that affords speed, versatility, direct
access to the DOS, lodulari ty, paraleter passing and encapsulation.
BIC09 recognizes four data types. INTEGER, REA, STRING and BOOLEA.
In addition cOlplex data types can be defined lith the TYPE Calland (any
of the abve can be lixed into one type). Up until nOl, the DECS users
have only used the REL and STRING type. COlputers cannot directly
lanipulate real nUbers bcause an elelent of indescreteness occurs
between two real nuts. If I asked you, 'Koll lany nUlbers are between
the real nUibr e. and 1.1' you lould have to say that tbere are an
infinite nUibers betleen those nUlbers. You could have 0.5, 8.25, '.26,
or even usemeeeeeeeeSgel for that latter. A REAL tye variable is
considered 'indiscrete' because there is no logical step between
nUlbers. In DECB, a REA nutber consists of a 5 byte coded string. See
UN and C callands in your DBCB tanual for lore. When DECB does
arithletic, it has to lanipulate ailS bytes. This can take alot of
tile to do aany lui tipl ies, or exponentiation, especially if they are in
a GT lop and are repeated over and over again. This is lhat the
INGER tye is for in BAIC09. If you are doing silple ari thletic, the
INTEGER type consists of 2 bytes, but these btes are not coded. They
are the ral data in binary representation. The INGBR variable type
can go frol -32768 to e to +32767, lodulo, lI hicb leans tbat +32761 + 1 =
-32768. When you assign a variable to b ty INGBR in BIce9 it
gets acted on allost 8 tiaes faster than a R typ nUber in DECB. So
you ca see, for its purpse, INGBR can be a real tile saver. Te
INTBGER type is a 'discrete' data tye because each nUlber in the
sequence has one nuiber before it, and one after it. Tere are no
nUlbm between e and 1 in the INTEGBR data type. The STRING data type
is used so you can set up strings to hold data. If a S is use after a
variable nale, it autolatically gets 35 bytes of string space. Last but
not least is an "enulerated' data tye calle BOLEA. It is discrete,
and bas only tlO values, True and False. It is called 'enulerated'
because the values are not string results, not are they nUlerical
results. Ay tile tlO variables of the sale ty are cOlpared wi th =,
<, >, <>, <= or >=, the result Is said to b BOLB. The result is
either True, or False. Tere will be eXaiple progras to fol101.
Structured Languages
Par allost a decade COlputer Scientists arged tnat the GT statelent
was not required, and not needed, if the correct statelents to replace
theilere available. Tese looping statemts are as follows:
REPBAT/UIL, WKILB/BNDWKILB, LOOP/ENDLOOP and FOR/TO/NEXT. All of
these structured statelents allows the program not to consist of
"spaghetti" code as found family in old versions of BASIC, li ke DECB.
In addition, progms can be written WITIOU the use of l i ne nUlbers.
This also reduced the clutter that occured. if GSU l reqllred. then
a li ne nUlber can be entered on the I1ne to be the subroutine.
Te in the follOlg BAI C09 program. To start BASIC09. place your OS9
disk in your drive e. T DOS, and walt for the 059: prompt. Once In
059, insert your BAIC09 disk and type: BAIC09.
After a fel seconds of disk churning, the following lessage will appear:
BASIC09
as VERSION II.S0.ex
COPYRIGH 1980 BY MOTROL INC.
AD MICROWARB SYSTEMS CORP.
REPRODUCED UDER LICENSE
TO TADY CORP.
ALL RIGHTS RESERVED.
BasicS9
Ready
B:
You are now ready to learn the three lodes of BIC09.
The first lode is the conand lode (which is where you are right now.l
You lay type LA, SAV, RBN, LIST , S,
KILL, DIR, MEM and a few other Callands here. To start typi ng a program
in, choose a nale like TEST and type E TST at the B: prompt. The B
Calland tells BSIC89 to go frol the Calland state to the editor.
NO it lill shOl:
PROCEDURE test
B:
Te * leans that the editor pinter is at the top of the f i Ie. Te the
01101 ing lines, laking sure you enter a space before the line. The
space tells the editor you wish to insert a line. The B5ICS9 editor
lorks exactly like the standard EDIT command works in 059. Some basic
Callands lhile in the editor:
D Deletes the current line
s/text/ Searches for the first occurrence of text
St /text/ Searches for all occurrences of text
_t
Places the pinter back to the beginning of the BASIC09
buffer
+*
Ges to the end of the buffer
Te the followinq as it appears here:
DIM x,y:INTGR
DIM a:STING[8e]
DIM r:R
sector 1
DIM b:BOLEA
LOP
INPU 'Bnter a nutber 'jX
, INPU ' Bnter another nutber
'
jY
PRINT 'X : 'jx*y
INPUT ' Snter a deci 8al nUiber 'jr
PRINT 'X t R : 'jxtr
INPU 'Bnter a string' ja
PRINT 'You bave entered: [a
b (x " y)
PRIN ' D oes X = Y1 ' ib
INPUT 'Do you want to try agai n? 'ia
BXITIF a:'N' or a"' N' or a"' no' or a='n' THN BNOBXIT
BLOOP
R NO
After you have entered thIs code i n , type Q on the li ne by itself.
While at the B: prompt, you lay type LIST to see your progral. If any
errors were reported, you will see the lessage ERR before each suspected
line.
BAIC89 wi l l now at telpt to wri te i t i nto lelory so i t lay be executed.
If you get any errors, BAIC09 w i l l shol the hexi deci lal lelory l ocat i on
errors where the error occurred and you lay go back i nto the edi tor and
fi x It .
Noti ce , no line nurs? Tat i s because we put the LOOP i n the progral .
Wi thout the LOOP cOlland, we woul d need to use at l east one l i ne nutber
at the begi nning and have i t go back to the begi nni ng to start over .
Everyth i ng is pretty luch self explanatory, except the b :" ( x "y). We
are asking the BAIC09 i nterpreter to cOlpare X and Y . If they are
equal, store a True in B. If they are not , s tore a Fal se in B. Notice
after you entered that l i ne i f you went up a l i ne, the parentheses would
be gone, l i ke you never entered thel . That i s because BICS9 knows
where they are requi red, and reloves thel when they are not .
Si nce BAICS9 relelbers the nale of the procedure, i f you need to go
back, silpl y type B . 1 you lant to save the procedure 5i lpl y t ype SAVB
at the B: prolpt. To run the proceure, type RU.
The t hi rd lode of BIC89 is the DBBUG lode. You can enter thi s lode
two ways . One way i s by p l ac i ng the PAUSB cOlland i n your BICe9
progm. The other way i s by pressi ng CL C whi l e your progm i s
execut i nq. Whi l e In DBBUG you 1111 see a 0: prolpt. You can issue
BICS9 cOllands l i ke: PRIN a or CONT to cont i nue. Press Q to get out
of the DBBUG lode . whi le in the B: ad D: lodes, you tay tye $ to run
a shel l . Type ex in the shel l to return to where you lere in BIC89.
If you just .ant to get a di rectory of a di sk and don't wat to leave
BIC89, s i lpl y t ye $dir at the B: or D: prolpts.
When done, s ilpl y tye BYB. Ti s wi l l take you out of Blce9 ad back
to the 059: prolpt . MB SUR YO SAV YOUR FILB FIRST! wben you t ype
BYB, there i s no second cbance .
Ry next art i c l e wi l l be a seri es of features of BIC09.
I f you have quest i ons , feel free to wri te Ie di rectl y. My address is:
Color Galaxy Inc.
Bri C Levinson
24415 Marquis ct.
Laguna Hills, CA JZb7J
SFA0 D8
3EhT
Y0uI a0 10e!
R0as0na0u
aIu!
OaIl 31T)
416401
sector 2
StG Net &mJLgPVS.O
Lp MUn 0|
EOLU /C S ( Ve IOI
Ee Wl ... W

Nm a gM, mWtl-W BW WUout l_ U
u ofom mmgutoH Nm ug t 8 Uo .

Mook ug Wtb m towUom NWotk, tbo BtO Nt.

N4t Aoomt m Mwed for om sWm w Tu c
't' wt oUr BtO Btm Umtl.
Ot Ntwtk m tMcs mmW won.

Comgt BMaU and Nt-Mm Mo tom.
BiD ot T Dos c be nt as gtlvato m.

Wl Mnu gtm om ou to otoat gom O
mnw m 8l ot OB Owgmm. At A OB
gm@m c b n Dm a m0nU {BW1/O}. Bgle
Mcnw Uwd, w TU c @o Mt on-W

DW m Bnc@tlon BWdmd} W w om Wotctlon

QeWm uUU tnMwo: M. Nm, Cbat, Tmon,
L@, Hcg, NW, OUon, 8ttu ... d my mtc...

Molg UMlt m mwd, @Ws ou m O-W _u .
. m Mude gMntd UUon mmw.

Zodm/wm/BMt Wotoome fot D tW ft

tnwwos PRB ug@tad to Vmlon 4.0 {ComW w n}
v d gstm w wolve u@ds r tb ntl

DMws AI aJI'. Ome and UUtls P, md
gcU fot U BtO Not 8ste.
II {BtO Nt L@ W + CDl+ IQ F ............. 849.W
m Mw 8S.0 B&
STAU
A Pl Cmt VF Fort Pctue Ug UUt mr U RI0
Rw P1=r. W@= Vro Pctu. t&Cw=A.
A I4 Nw D mA Pm)...... ......... .. ... I0.05
Dlu &.0&
A I4M (mve 66.0) Dwoad gW@A mA 0C w #4
ouggUm A& m Y= O 8 Reudl) . ........ ........... 6 I4.06
Cco Tcoon - by AjU Puctions
Create a ... .. on oW Cc0S (OS0 L2 N=gJ
1 t 4 Wag=W Bv= gg @t1= Coo .. .
W]mtU= t&= UAA Gae ...
(AvaBabc IA=AgJ
!Pc
6
P
I P ......................................................................... 6J4.w
6.0%
{Tm= 63.0 oi mr OWA0 r M=m/ BM Iot Requdl)
I:.JI
r -

DG Checb or M--'6


V.L. X 1
=. -
M0m, L. U
THL b WW Wmk
or om Co 8, OBB Lvol 3 Qstm
A NvoluUom Nw W@m...'Ob" dms most of
Wbat MmM-Vw dms at m tme U sgdl
Tb w n mst gtgm wt on k@w ...d
wl 1 smm I AJ Bs. Dt, Cog, Rm=
B wtb on or Wo ko@rsl
M UUtle DMwd

WUT a I NOT Ngl
A 13 {InMwos Dke and Wtd Mm and accotlos}
mwe 8.08 ...................................... 8.
13M {B aV 818.0l) Dwoad gm@m Doct b tw
{m m BtO Nod, m fot mot mo} LnMwos ovQ
u abv. Manw W gt-mwttd docB tad fot Tu
pt. M Nl} .... ................................ ... 8B.W
CmngSon
DB9 -Te Bst Date for OS9!
[C or Wt= 0= mA aVmUQJ
MLL- The Disk Doctor
"N=W" A=I=14A D=o, D=o I1Wg mG mCtt
gWI=Wo W ggg A A1v=a.
(C Wt= A=1A A&A aVmUtgJ
Memtchl- CCO Cncentrton ...
(5I2k a O0Lvm U Reg.J
HWA
3 WM Bow - YM=Ct t yomNew M/I T9l
wU IIcmp tol)
o 3 Button Oto-lecbc 8H MW=
o Smooth. a . tetlcl y ag@m, 0t&IC d

Hh Pwon 20I0 DPI
"Y4CWI& "CDCB-B1=" Ut1W

MCw=o wr A=.
SI PC
m0wc6.0s .................................................. . 6W.w
MW YAA Qlm or Ot=gJ
m0 Wmw= 6I.M8 .................................... 6 b.w
''MW4 MW" - MW MIA=
MIo yom mou attcbea 1 CY M&1t
m5w= I.M8 ............ 6 S.M
Moue Kt - m0Iu=s:
3 ut1n MW=
Mow WA

"MW MW="
m06wc63.0w...................................................6S.05
@ Dve. (SCSI
Quntu MI H Dvcs (S I/2' h &1- w 0t UIG= oW M/1)
EATl IBm OWv=e
SKM=@ Cm= (C I WW UJ
Mll
#m0%8 M@@t SI H ...................................... 6 a% .
.
w
=m UwW= 6?.0 8 WI%=AC H A=tJ
[818[ Y81-418
[218) 480-2988
poice)
(Fm)

c & Bwe ou Ctog at ay of tese


MONSTEROUSLY GRT DE...
(At the prompt. type "almajU"
AT MORE TH HM PRCE".
(818) 761-4721 (MODEM
/


(818) 772-8890 (MODEM
(Eccs Bmct to Cbang wthout Notice)
.. (403) 329-638 (MODEM
(Ca. Hsldn gco acd 0% ce m) _
(904) 595-2184 (MODEM
Dlink.c
/
t
t dl i nk/love - uti l ities for 059 an OSK
t
PD 1991 by stG
,
t
"
t to cOlpile: cc dli nk . c
t then : 'cM I ddl clds
dl i nk dl i nk love
t Instructions: Basicall y , DLINK <frol> < to> -or- MOV <frol> <to> ,
t where <f rol> is a directory (read warning) or file
that al ready eXists , and <to> is a file that you want
to exist . Bth callands will create the <to> fil e
and l ink it t o be the sale as <frol> . The MOV cOlland
then deletes the <frol> f il e so that the original is
baSicall y love.
* Hal it works: 059 already supprts l i nked files , to a degree. There
is a l i nk count In the F ( fi l e descri ptor 1 sector for
each f i le. If lore than one di rectory entry are
t
t
*
poi nting to the sue F, bth .ill be able to access i t.
In thi s case , the link count loul d be tlO, i ndi cati ng to
the 059 de 1 ete conand that it shaul d not actually
relove the file when onl y one of the links has been
deleted. Instead
,
it subtracts one f rol the l in count.
t Problm: The 059 dcheck calland does not understand I i nks , and
,
therefore conslderes thel to be an error. Te OSK dcheck
,
conand Is ok.
*
t larning: Li nki ng to a di rectory li ll li kely cause it's ' . . ' pi nter to
t be incorrect . Th i s will cause prograls that use ' .. ' i n
laking a scan of the di rectory structures to IUSS up. One
good exalple of t hi s i s the pwd (aSK: pl calland. It wi ll
reprt the wrong di rectory (i f it doesn' t error out ) Ihen a
*
,
.. ' pi nter i s bad.
t Short Fori: Li nk to di rectories only at your oln r i sk !
,
NT: you can renale thi s to LIN iff you don't use OS9's l i nk conand
t
.define BRi (-1)
'incl ude < stdio . h>
extern i nt errno;
int f f , fd, tf, td;
i nt af;
l ong dir=e;
long fre=0j
cbar buf [2561;
cbar fo[ 256 Ii
struct
{
char nat [ 28] ;
long lsn;
} durj
" 059 error coe
*
'
'* frol/to fil e,dir *'
" device' file *'
" directory fl ag' Isn storage t,
'* free space in td *'
/* sbare buffer */
'* if arg[2! has to b fo'd ,ith *'
,t directory structure t/
/' f il e nale */
/* pi nter */
long lseekll;
It lake sure Ie Iol it is long il
It returns path to file t/
char t
path(s)
char ts;
I
char 'b=buf;
cbar tp=s;
't insure there is at least one 'I' *'
.hi l e ( ts)lf (ts++=="' ) break;
if I !ts)
(
/* return ' . ' for current di rectory tl
*bH='.' ;
tb=S;
returnlbuf) j
/t ski p to end and back up to last 'I' tl
Ihile (ts) SH;
Ihile (ts!='/'I s--;
/' copy into buf & return t /
'hile (p<s) *b++=tpHj
*b=l;
returnl buf) ;
,t returns just nale of file il
char t
fi l eI s )
char is;
(
char *b=bufj
char 'p=s;
1* i nsure there i s at l east one 'I' t/
,bile ( *s) i f (*s++==', ' ) break;
i f (!ts )
(
I' return .hol e nale *1
Ihile I*p) tbtt:*pt+;
*b=8;
return I buf ) ;
/t skip to end ad back up to last 'I' *1
Ihile (ts) SH;
,bil e ('s!='/') S--j
'* cop into buf , return t,
S
tt;
.hile (*sl *b++:ts++;
tb=B;
return ( buf ) ;
sector 4
,t quick case insensitive string cOlpare tl
saaelsl,s2)
char tS1, tS2;
(
lhile l*sl && *S2) if Itololerltsll!"tololerlts2)) return(0);
else
(
sl++;
s2++;
if ,tsl :: ts2) returnIS);
returnl!) :
/* set bit 7 on nm string for dir entry tf
set71s1
char ts;
(
lhile Itsl stt;
t--S:=128:
lainl argc,argv)
lnt argc;
char ttargv;
(
if large!=3)
(
printfl"use: \8 Ifrol) Ito)\n',*argv);
Dlink.c
/t open frol and to directories t I
fd=open(pathl argv[ III
,12a 3) :
if (fd==BRR I
{
printf["ls: can't open \s\n",targv,bufl;
exi t I mno);
td=openlpathl argyl 21) ,128+3);
if I td==ERR)
{
printf('\s: can't open lS\n",targv,buf/:
exit I errno) ;
/t both paths lust be on sle device! */
_gs_devlfd,buf/: /t get entry, */
strhcpy(buf,bufl; /t fix 1bit high on last char t/
_gsJevnltd,buf+32); /t sneak rool in bul t/
strhcPYlbuf+32,buf+32)i
if ( strclp( buf ,buf+32))
(
printfl"s: can't operate betleen different devices\n", targv):
exit(l);
prlntf(' \ss 'frol' dir or file to 'to' dir or file'\n',targv)i
exit!S1 ;
/t open path direct to device t/
tbuf=' I' ;
strcp!buf+l,bufm) ;
/t open frOI file t/
ff=pn( argvl 1],3) i
if I ff==BRR)
(
/t tr to open as dlr? t/
ff=penlargv[l], 1283);
if !ff==BRR)
{
}
pr intf ('U: can' t open \s\n', targy, t++argy) i
exi t (errno) ;
dir++i /t set flag - Ie are loving a directory! t/
/t eheck to path to see if a director t/
if (accesslargv[2],128l)!=8R)
(
/t Ie need to fudge arg! 2]
It user has suppl le director to link/love to but not file
/t tae file frol argll] and tack on argy[2]
t
l
strcplfoo,arg[2]) i
strcat(fo, I r);
strcat (fo,file! argy!1 J));
argv! 2] =foo;
strcat(buf, " ');
af=openl bu!, 3);
if (af==BRR)
(
printfl'ts: can't open to device s\n',targv,buf):
exit(l):
It smch to directory in case file is already there
It and for a free spt to put it in
t/
file(argv[2
11; It put nate of file in but t/
again:
fre=';
lseek( td,'L,SI;
It if we are link/loving a dir, gra the ' .' reference frol
It where it's going ... t/
if (dir)
(
read I td, kdur, 32) i
read(td,kdur,321;
dir=ur .1so;
while (readltd,&dur,32)==32)
{
strhcpy(dur.nal,dur.nall;
Sector 5
Dllnk.c
}
if (sale(duf.nal,bufll
{
printf('ts: file ts already exists in ',tarqv,bufl;
printf('\s\n', path(argv[21
11;
exit 111;
I .
if (ltdur.naa" !fre) fre=lseekltd,81,11-32; It free spt tf
if (tre) /t seek bck to elpty entry t/
{
lseekl td, fre ,I) i
readltd,&ur,32Ii /t lock it t/
if (tdur .na) goto again; ft oops, sOleby else qat there first t
I seekl td, fre ,el;
ft path td is nOl ready to receive new entry
It next go through fd to find Isn to link to
t I
filelargv[l]); /t put <frol> tilenaae in buf t/
lhile (readltd,&dur,32)==32)
{
I
strhcpy(dur.naa,dur. nal);
if (saleldur.nal,bufll break;
It check once lore in case loop at end! t/
if I !meldur.naa,bufl )
{
printf("ts: oops, can't find file ts in ',tarqv,buf);
pr int f ('ts\n' , pathl argvl 111 I ;
exit 11);
/t LSN Ie Iant is in dur.lsn, le can put nel nale in and
/t write to td. But, first set F far extra link count
It in case praqral gets blown alay. Better an extra link
/t than one shortl Exception: running as love
*/
if Itololerlttargv)=='I') goto nolink; It progral is naaed love t,
/t re-use fre var as a LSN pinter 'I
f re=dur.l sn;
tifdef OSK
/* OOPS! aSK V2.l nOl allows VAIALE SBCOR SIZB, which leans
It that we light nee to lOdify fre to get to the right sectorl
*/
It read lsn 8 into buf t/
if (lseeklaf,8L,')==BRRI exit(errno)i
If (readlaf,buf,256)==BRRI exitlermo);
/t the two bytes at offset ,x53 are the sector size t/
if I t(buf+BxS4)) eXitl-ll; /* should always be zero t/
if l!tlbuf+0x53)) goto skip; ,t whew, this disk doesn't do that */
/. lultiply by nutbr of lultiple of 256 of sector size t/
fret=tlbuf+lx53)i
skip:
fret=256;
tendif
It seek to F and read *1
if (lseek(af,fre,el==BRR) exit(errno);
if (read(af,buf,256)==BRR) eXlt(errnol;
/t increlent link count t/
if It (buf+8) <II
{
printf('ts: too lany links to ts\n",*argv,t++argvl;
exitll) ;
}
Itlbu{t8))H;
/t before writing F we lust close our path to file
jt we are done with it anyays, were only keeping It
/t open to prevent delete while in use
/t during close OS9 re-writes F (would wipe out change)
t/
closel ff);
/t write FD back */
if Ilseek(af,fre,0)==ERRI exitlerrno);
if I lrltelaf,buf,256)==ERR) exit(errno);
nol ink:
/t now we can write out the new directory entry tj
strcpl dur .nal, f i le( argyl 2]) );
set1(dur .naI);
if I write(td,'dur,32)==BRR) exitlerrno);
/* link has now been acco.pl isbed
/* tile to check out .. entry (if dirl and handle love
*
/
if Idir) /* original file to love las a dir? */
{
/* open new file and check .. pinter tf
tf=openl argv[2\, 128+ 3);
if I tf==BRR)
{
)
printfl'\s: UbOhl can't open \s\n",targv,argv[2]);
exi t (errno) i
read( tf ,&ur ,32) ;
if (dur.lsn!=ir) /t dot dot is wrong tf
{
if (toloerlttargv)=='I') /t we are lovel t/
{
)
printfl'Upating ts/ .. \n' ,argyl 21) ;
Iseekltf,8L,I);
dur .Isn=ir;
WIi tel tf ,&dur ,321;
else printfl'Varning: ts/ .. is wronql\n",argv[2!);
Sector 6
clase(tf);
/t if we are love, unlink (delete) the original file II
if (tolover( ttargv)=='I')
{
Dlink.c
/t note: fd still has original entry locked, back up & wipe out *1
Iseek(fd,-32L,11;
*dur .nal=0;
dur.lsn=0j
nite(fd,&dur,32I;
1* close our lyriad of files */
close(af) ;
close! tdl j
closer fdl;
tifndef OSK
/* tbis section included for 059 which doesn't have _gs_dev call *1
tinclude <os9.b>
_gsJev(pn,bufl
int p;
cbar tbufj
{
struct registers rj
r.rgypni
r,rg)=SSJEVI ;
r. rg_ x=buf;
return(_os9(I_GBTST,&rl
)
i
tendif
sector 7

A revolutinr cmpter system
desind by you.
I
M
M
I
Tw ye81 a, Ielt MWI design ws
- l ou S b t ltet avcs in
ONE
cpte _ ad b yor ne - t
MM1 i t mot alr, p systm yo cn
b . Th MM1 ue yrexln RGB-A moto. h
use youjsti yorfpdre, your pter. yur
mo. Dein an in str, yr
fUr ppr wlf ni i yo MWI sstm.
A the MMI aredy rns Amiga1
M graphics utilities. PC animation,
ONE
M1s,ld bl ipt
eet of f Cp 0lre1 std.
IMS ofer wordprocssing. databases, and
apis bt o h f DS a UNIX
WI. Sost D s lt t Ml's
67 pswub. DA 1.4 Mabe
fp dik Epa 1 f 1p, se hd
dik o t d. FI sl p, t prl p.
Re te c Jst p. Yo c ntl 128
MM1 s ete.
Cn 800/66-9084 f brure or vdo.
S
Inectiv
Meia Sytems
Ad on, and on, and on ...
In the previous issue, (supposedlyl dated Septelber of last year, I
started this regular coluln with the c0lpla i nt ' 'How did I ever convince
-Iyself this would be an easy job'. I was thinKing about how it seeled
to take two tonths to put together each lagazine. At the tile I was in
the liddle of several rush projects, and I had only with that issue
settle on a sllple process for editing, forlating, printing,
addressing, and lailing the aagazine. I have learned a lot about the
trials of publishing frol this, and I lust be a glutton for punishlent
because I not abut to qui t.
I have received lany calls frol concerened subscribers during the period
we have been 'off the air'. I apologize sincerely to all of those who
had faith in this project and whol I have disasppointed. But now that
stG inc. has cOlpleted it's love and is once again taking enough spare
loney to handle the nearly thousand dollars it taKes to put out an issue
(that's taftert subscriptions, advertiselents, and start-up costs! |, let
Ie assure you all that we will continue to put out. 'hen I started this
lagazine, I lade the subscription rates low on purpse - I hate to pay a
lot for lagazines Iyself. If I had wanted the OSKer actually laKe
loney, the rates would have to be at least double. I have considered
raising the rates even though, but 1 will put that off indefinately. If
we can bring in SOle addi tional regular advertising, it shouldn't be
necessar to charge any lore per issue. of course, I've shot a hole in
that plan already - advertisers .ant to have a reliable publication as
well as the readers do. A IY KOI & Dad love to relind Ie, it takes a
lot of hard work to lake it on your own. Yes, Mother, I have IY work
cut out for Ie.
of course 1'1 not the only one worKing on this (not that anyone else is
to blate though). My thanks go to Alan 5heltra for his wonderful
supprt (and wonderful art.ork - just wait till you see next lonth's
cover!!1 and IY friends (Hi Bug!1 for getting out of IY hair now and
then to 1 et Ie get it done. Ad speci al thanks go to those who have
written articles, suggeste ilprovelents, ad offere help!!!
OKay, now it's tile to get down and dirty. 1 don't have any letters to
the eitor for today, but I do have a fel personal opinions to vent.
'AING: the follomg is highly flauable - read only in a well
venti lated area!
It .ould seel that the whole 059 cO.lunity is having problels. Ve've
got lagazines failing {or at least slowl right a left, software houses
folding, and certain cOlputer cOlpanies that keep prolising the new
lacnines but (it would seel) never deliver on tile. 1 ask you, 0lM
IS GIN ON HRB? Why does it seel as though the OS9 cOllunity
(except the industrial pople) seel to be abndoning the long held
cOllitlent to the bst in Kulti-User Operating Systels1 Is this a real
problel, the bginning of the end, or just a phase? Just what is going
on, anyays?
Veil, I have a few aswers. But tile will only tell all for certain.
In the leantile let Ie tell you a story or t.o.
In the Indianaplis area there is a group of 059 enthusaists that grew
out of the local Color COlputer Cl u. Ve get together now and then and
help each other with euipent or softwm problels, discuss new things
le have di s`overed, and tJl k about Ihm things gOing. Up unti I
recently, we all had 059 or OSK lachi nes and never even considered much
else. But in the last few tonths, a Dl mber of our already fel have
'sold out' and bught Jb lachi nes,
NOl sale would say that they should be lynched for giving up the fight
for the Better Operating 5ystel. SOle others lould exculuni cate thel
frol the group for giving into the 'PC' world' s single tasKing
environlent. But I still accept thea. I even help thel with thei r
lachines. Because I agree with their decis i on .
Now before ya'il start get t i ng any ideas about tp'ing IY house, stop for
a second and hear Ie out. These fellows, who shall relain naleless las
the innocent shouldl, were waiting for the 'fabled' CoC04 lachi ne.
That right, the do-all 680xB lachine that would solve all our problels
and lilitations 059 on the CoCo. They waited faithfully for years for
it to cOle out. They were encouraged by the announcelents of two such
mhines, put off upgrade plans, and saved up thei r laney. They enjoyed
thelselves for a while arguing over which one was better . They warled
up their checloks as they anxiously counted the days unti I they CQuid
actually have one of their very own. SOle of thel even sent in their
loney in advance.
But that day cae and went. No lachine. And another day cale and went,
again with no hardare to put on their deSK. No fast lachine in a neat
case with a louse next to the keybard and lindols to peeK through. No
new muals to go through, no nel software to play wi th.
So they me to the conclusi on that i t just wasn' t going to be. That
these new lachines would never cOle out, or never have enough software
to run on thel. Or never be any bet ter than the PC fDri d with it's
super fast lachines ad hi-res windo.s. There were tired of being left
out in the cold with their por little 8-bit (busl mhines. That loney
in their pcket kept itching every tile they drove past a new store
selling PC's. So finally they could't stand it any longer. Tey
bught PC's.
Now they are busy playing with th ier nel toys , new software, nel lice,
new windows, and having a grand tile. Do they regret their deci si on?
Jell, not luch. Do they sti ll thi nK that 059 i s the best operating
systea? lell, It still Is best at lultipJe tasKs, but i t doesn't have as
my prograls for it. Do they liss being able to run lult i ple progrm?
Jell, not really. They have Microsoft Vindows versi on 3 that al lows
thel to at least flip bet.een lultiple prograls if not let thea process
at the sale tile very well.
You see, this is going on througout the 059 cOllunity. People are
leaving 059 for MSDS just bcause it's there. And also because MSD05
is finally catching up Windows-wise. And lost of all, because people
have prolise various Machines, SOftware, and Magazines and not
delivere on tile. 1 not tring to blale any particular individual.
As I have pinted out, I also to blae for not being on the ball.
oh sure, you thinK, these guys (and others) that we are lOOSing to PC' s
will cOle back once we get going right? Fat chance, considering what
they paid for their 386 lachines and the software to run thel . These
guys put lore laney into their new lachines than Ihat they would have
for a T1. or Ml (or sililar lachinel fully deCKed out. They did O
because the P's .ere available right then. I think these people laKing
sector 8
the 'CoCo4' lachines [you kow who you arel lade a big listake by not
getting thel out b Christaas. But then, lJde a big li s ake by not
getting an issue out by Chrism.
Ie need the mhines and the software NOV, not in a Ionth or two. Not
in a year or two. If we are going to keep the dwindl ing nUlbers of 059
enthusiasts frol near extiction we all need to get loving and start
cranking out top notch equiplent and lachines right away. Ie need the
me kind of ingenuity that has bloln the MSDOS world away before to
cOle up with new ideas that .111 grab people's attention. Show thel
what can be done if you do it right.
Ie need peple to get the job done, not prolise sOlething and apologize
when they can't lake due. I 've learne IY lesson - the aSKer wi 11 be
cOling out regularly frol now on. The question is, have the rest of us?
Tile for another story.
A friend of line was showing 059 on a CoCo to a PC prograMr the other
day. He was iuediately ilpressed, and marke how that was the kind
of systel he .anted to have. But could he get it for bis PC? I told hil
abut os-me, and how it requires a 386 [at least( and isn't as fast
and effiecient as plain 059 on a Motorola Processor. He said "Ohe in a
way that leant, 'Vell, if it doesn't work as lell on a PC than i t lust
not b w bot after all'. I explaine to hil sOle of the differences
between Motorola 68000 processors and the Intel 8fxB6 ones. In the end
I discovered that be did't really kow luch abut Motorola processors,
and had never heard of 059. Tis actually didn't suprise Ie, as less
than one person in ten that I talk to bas .
Tere is a bias in the overall cOlluni ty of cOlputer people out there -
but one not due to anytbi ng IB or Intel has done, but ratber due to
Ihat Motorola and Microsoft baven't. There has been little effort on
the part of Motorola (wbo's ,rocessots are used lore than Intel's in
Japanese products) and Micr01are (.ho has a large industrial larket in
Japan too) to educate us here in the states abut their products. The
Japanese love to find the Silplist, easiest to use tols to te their
products. Theyshould kOl what their doing, considering the alount of
robtics they use. Ad they are certainly taking enough loney at it -
tbey keep buying pieces of us at prices bigher than tbey light bave to.
If .e are to survive at all, .e lust grow . Ie lust attract people to
our 'cap' faster than we loose the.. I don't believe it is any secret
that tbis is not the case right nO. But .e are on the edge right nOli
either Ie fall off that edge into oblivion or le pull back in the nick
of tile. Ie have ben given a second chance with these new lachines.
One lore cbance to get it right.
Te 059 cOllunity has ben brusie over and over by well -intentioned
people Ibo really leant t:t
?
go on their prolised but for one
reason or other were nt able to. Of course, there have been those fel
.bo .ere just outright croks, to. But for the lost part we have had
decent pple cOle up litb new proucts and bring thel out to the
larket, if a l ittle late tha planne on, and end up bnefiting the
Ihole 059 cWlunity. And if Ie keep it up, there should be 089
entbusiasts still hacking on into the next century.
But hOI does this differ frol the so called 'real' larket - those
cOpanies who develop and larket P products? They have their share of
problels too. Big nm cOlpanies that take forever to get a new laChine
or software version out. Code that has eno1jgh holes in it D be
listJken for swiss cheese. The people who deallith PC lachines on a
regular basis lespecially when it C08B5 to newly de\clo|cd stuff) hm
becote accustoled to havi ng problm. Of long ago was it that OS/2 was
announced? It's only been ust recently that version l.3 has been
released - all the previous versions have been ful l of bugs, take gobs
of lelory, and are slol. Guess what! This nel versi on takes over 20
disks to install I that's 1.2 leg di sks! I and runs hal fIay decent on a
486 with at least four leg of ral. Ve're talking an lnvestlent of over
six thousand dollars for a halfway decent lui ti - tasking operating system
and the hardware to run it on. And OS/2 is not lui t1-user. Rven IBM
thelsel ves adai t that.
It's obvious that we can do better. Ve CA one up the PC world. Ie CA
bring products out on tile, we C cOle up with new software lithout it
crashing the custom's lachine, and yes, we CA bring the P#S and
views to you on a regular basis. If we get our act together, we can
beat the P world to the punch. Ve have the people with the brains -
tbey don't [or at least didn't). Ie just have to get our coll ectIVe
rear ends into gear and get the job done .
Ad 1 '1 not just saying all of this to lotivate you. I bel i eve it.
I've seen it with IY on eyes. The difference that good software design
can lake will beat fancy hardware lost every tile.
The btto. line is 51lple. Ve've got the better operating syste., and
tbe btter processor . Ie know it, and they'd kow it too if kB to I d
the.. But le have a choice. To get together and fight for a better
future in cOlputing, or do nothing and let the PC's take over.
Basically, it's a fight betleen effeciency or wastefulness.
But lOre than that, for us it is a fight between existance (to the rest
of the world) and extinction. I don't for one linute fool Iyself into
thinking we can take over tbe world. There are too lany PC's out there
right now. But we can certainly assure ourselves a place in it's
future, by doi ng the best job le can today.
AD, just to sbo. you that in fact there are people getting the ob done
out tbere, I have the following news to report to all of you.
11 The aSKer is back for good.
21 The I MS Ml lachine is going into a production run. Machines are
expecte to be available at or after the Rainbw Fest.
31 The F T78 is In production and have been sh ippi ng since January.
41 The F T9 is undergoing test production runs, sOle test units sold.
Ken-Ton Is to have a version of RG DOS for it.
51 F Is 10rking on a prtable version of the TC78.
61 F .ill be selling inexpensive 68k co-processor boards for TC9.
71 Te next aSKer .ill feature a cOlpl ete reviel of the !l.
81 Te issue after will feature a cOlplete revi ew of the TC70.
91 Subissions (progras, articles, hate tai l, suggestions ' -lc:t-!
See ya next lonth!
sector 9
Kyum-Gai: to b Ninja (OS-9 Verion) is the cul mi nation o a prjec stred al most a year
ago. Te tal ents of Glen R. Dhlgren (RS-DOS game wrter for Sundo Systems), Kevin
Daring (a l egend for his work i n OS-9), and EdKuns (author of KBom) have been
pooled to create a masterpiece of game softare under the OS-9 operati ng system. Fast
mari al ar acion with outstndi ng grphics, grat digitize sound efecs, and incrdi bl e
ani mati on are featured i n this arade game, al l i n the OS-9 envi ronment.
Always wanted to play the great CoCo 3 games but didn't want to scrfice your OS-9
features? Multtask while playing Kyum-Gai . Hae multpe Kyum-Gai' runni ng in
memor. Don't worr about switchi ng wi ndow, bcaus Kyum-Gai : OS-9 auto-pauses,
to wait for your return.
Put simply tis i s an unprceent piee o sr for te Coo; a landmrk game sur t b
a major part o the Color Copur histo Don' miso on ti gam! $29 9
Req. 51 2K CoCo I I I with OS-9 Level 2 and joysti ck.

VISA, Mastercard, Money Order, and
COD (USA only, peas) accpe. All
foreig orders must b sent in US cur
rency Money Orders. I nclude $2. 50 fo
shi ppi ng in USA and Canada, $5.00
Foreign. $3. 00 extra for COD oders.
VA residents pleas add 600 sles t.
Deaer inuirie welce. Autor: we1r
loki ng fo new sofware!
P.O. Box 766
Manassas, VA 221 1 1
(703) 330-8989
Inst a l l .ent .2
b l Fl eag l e
Wel l , i t s t i le for the next i nstai l lent o f O)aLCan)oU_C . I hope
everyone got thei r C cOlp i l ers up and runni ng wi th the f i rst
i nstai l lent . So l et s get busy.
Lets start .here a C progral shoul d start , wi th ' Iai n( ) ' . Thi s i s where
a C prograa begi ns execut i on . If there' s no ' Iai n ( ) ' the cOlpi l eI won ' t
kOI .here t o start . S o I f you want an error lel tdoln, try cOlpi l i ng a
C progral .i thout i t . d lore than one ' Iai n ( ) ' wi l l confuse thi ngs
to, al though I haven' t t ri ed i t . So l et ' s wr i te a very short C
prograa . Frol the 059 prolpt tye the fol l oli ng :
bui Id lai n . c
You wi I I see a ' ? ' a t the start of each l i ne . Type each response as
i ndi cated. Press the enter key whenever you see <enter> .
Prolpt Response
( Do not
type thi s ) ( Te thi s )
Type :
l i st ni n. c
You shoul d see :
ni n( )
(
)
ni n( ) <enter>
{ <enter>
} <enter>
< enter>
We kOl ' la i nO : is where the prograa start s , but what abut those ' { '
and ' I ' brackets? Those brackets lark the begi nni ng and end o f ' ui n( ) ' .
Te funct ion ' Iai n( ) ' contai ns Ihatever i s btleen the ' { ' and the ' l ' .
COlpi l e the prograa by typi ng:
eel ui n . c
After the cOlpi l er has f i ni she you should be abl e t o cal l up a
di rectory of /dd/CS and f i nd a prograa cal l ed ' lai n' . At the 059
prolpt , tye
lai n
and press enter. Te next thi ng you li l l see , surpri se, surpr i se, i s
the OS9 prolpt . Te prograa l oad and exeute. Only, i t di d
asol utely nthi ng, j ust as i t .as des iged to do . ( N, I haven' t l ost
al l IY larbl es , yet . )
N. l ets do a l i tt le expl orat i on . At the 059 prolpt type the fol loling:
Ident /dd/clds/aai n
You shoul d s e e the fol l owi ng:
Header for : lai n
Modul e si ze: SS 1A2 #41 8
Modul e CRe : S2B1DC4 ( Goodl
Hdr par i t y: $8B
Exec . of f : seSlS t27
Data S i ze : S93Dl .971
Edi t i on : sel t1
T ILa MIRv: $11 $81
Prog lod, 6889 obj , re-en, RIO
Take a cl ose l ook at Ihat thi s t e l l s you , Ma i n, wh i ch does absol utel y
nothi ng and I s the s i lpl est poss i bl e progm i n C, i s 41 8 bytes l ong and
requi res 977 bytes of data storage . That ' s over 1K of lelory j us t to
get the C co.pi l er to generate a progm, any progm. So C i s
obvi ous l y not a s eff i c i ent a s asselbl y l anguage . d i t s not as easy to
understand as Bas i ce9 . So Ihy bother li th i t ? Because C i s the lost
prtabl e l anguage for personal cOlputers today. exaapl e is a
recent l y rel eased lessage edi tor wr i t ten in C on a Radi o Shack Model I I I
'
and prted to the Color COlputer , NI, no of f ense intended, but there
aren ' t lany cOlputers as dead as the Model I I I . Maybe the TI - 99/4, i t s
deader ' n hel l
,
but mn o n a "dead" cOlput er C st i I I gi ves you t he
abi l i ty to be on the cut t i ng edge of sof tware devel op.ent .
I ' I no l onger goi ng to expl a i n step-by- step how t o use the ' bu i l d'
cOlland t o enter your source code . I f you have a word processor that
you l i ke ( l i ne is Dynastar) , use i t . Te i n the l is t i ngs exact l y as
pr i nted, save thel to di sk ! be sure to nale thel li th a ' . C ' at the end)
and cOlpi l e thel exact ly as le ' ve done ear l i er .
Let ' s start soaethi ng useful . S i nce al lost everyone i s fali l i ar wi t h
RS-Dos
,
le' l l lri te a prograa to c l ear the screen just l i ke ' CLS ' under
RS-Dos . We' l l cal l it ' c i s ' because tbe conventi on In 059 i s to
capi tal i ze onl y the nales of di rectori es . Te tbe fol l o.i ng soum
code i nto a f i l e naled ' c l s . c ' :
ti Dcl ude <stdio . h>
lain ( )
{
putcbar ! ' \81 4' ) i
}
Next , cOlpi l e the source code by typi ng :
ccl c l s . c
N type ' ident /dd/clds/c l s ' and tbi s i s Ihat you shoul d see :
Header for : cl s
Modul e s i ze : $8791 11943
Mul e CRC: SD91896 ( God I
Hd pari ty: SB8
Exec . off : SSSlA t26
Data S i ze: sew t1181
Edi ti on: $81 11
T/La At/Rv: Sll $81
sector 1 1
Prog lod, 6809 obj , re-en, RIO
That ' s 1943 byt es for the prograa and 1 187 bytes for data storage .
Pretty hef ty for a progral that onl y c l ears the screen . Just for
cOlpari son, l ook at an asselbl y l anguage versi on wri tten by Bddi e
Gi l lore .
Header for : CLS
Modul e s i ze: $1829 .41
Modul e CRC: $157096 ( Godl
Hd par i ty: sel
Exec . of f : SSe12 '18
Data S i ze: S0eDS .2ea
Edi t i on: $ 1 2 tl 8
T/La At/Rv: $ 1 1 S 81
Prog lod, 6809 obj , re-en , RIO
Only 41 bytes for the progral, that ' s over 1905 l ess than the C versi on.
Data storage onl y takes 208 bytes , al lost 18 l ess than the C versi on .
The total for the asselbl y l anguage versi on i s l ess than one-tenth the
s i ze of the C versi on. Why do I pi nt thi s out? To hel p expl ai n
sOlething i n our C source code . Lets l ok at t he source code agai n.
ti ncl ude <stdi o . h>
lai n( I
(
putchar l ' \01 4 ' I ;
I
That f i rst l i ne, ' .i ncl ude <stdio . h> ' , I haven' t expl ai ned that yet ,
have 11 Wel l , that i s kown as a preprocessor di recti ve . I t tel l s the
cOlpi l er to go f i nd a f i l e naled ' stdi o. h' and pt whatever is in that
f i l e into the source code . Insi de ' stdi o. h' i s i nforlat ion the cOlpi l er
needs for i nput and output . I f you want to take a l ok, type the
fol l owi ng :
l i st /dd/defs/stdi o. h
The nale ' stdi o . h ' i s shorthand f or ' standard i nput output headers ' and
contai ns i nfont i on to handl e a l l types of i nput and output rout i nes .
Si nce the cOlpi l er doesn' t know whi ch of those rout i nes i t ' l l need, i t
i nc l udes thel al l . Ad that i s where a l ot o f the overhead o r extra
byes cOle f rol. However, once i ncl uded, the rout i nes can be cal l ed as
lay t i les as necessary wi thout ay further i ncrease i n prograa s i ze .
So whi l e the overhead i s excessi ve on a sial l progral l i ke ' ci s ' , on a
l arger progra l i ke Dastar , the overhead bcoles i nSi gni f i cant . Base
of progralli ng and spe of devel oplent bcole luch lore i lprtant than
a coupl e of thousand bes . If you' re not goi ng to do ay i nput or
output , you' l l never need ' stdio . h' . But that pretty luch I i li t s us to
the ' Ialn . c ' progral we' ve al ready wri tten. A I don' t thi nk we nee
ay lore prograls that do absol utely nothi ng.
Lets l ook at the other l i ne of coe that .asn ' t incl uded In ' Iai n . c ' .
putchar l ' \81 4' ) i
Ti s i s .here the progral does the real work. Ti s l i ne cal l s a
functi on ' putchar ( I ' . ( Nte that ' putchar( I ' i s not the sale as
' Putchar l ) ' . C is case sens i t i ve , unl ike OS9 . 1 ' putchar l l ' is a
funct i on , just l i ke ' tai nl l ' . You can tel l t hey ar e bth func t i ons as
the i r naaes are f ol l owed by two parentheses , ' 1 ' and ' I ' . But you .i l l
not i ce that there i s sOlethi ng between these parentheses I n the
' putchar l ) ' functi on in our source code . Thi s is known as the arqulent .
The argUient i s the val ue that the funct i on ' putchar ! l ' i s to use . In
our case the argulent is ' \01 4' . ' putchar ( ) ' takes that arqulent ' \81 4 '
and PUs the CHRacter out to the terli nal . We wi l l di scuss the leani ng
of ' \814 ' short l y.
' putchar ( ) ' i s contai ned i n t he C l i brary as are lany other f unct i ons
whi ch we .i l l di scuss i n the future. Ri ght now i t i s i lportant on l y
that you know that C i s a l anguage of func t i ons , the lore funct i ons I n
your l i brary, t he eas i er i t w i l l be to perforl cOlpl ex tasks i n C.
Now l et ' s l ook at that argument ' \0 14 ' . C I nterpret s thi s to be an
octal nUlber . octal s i lpl y leans base ei ght . If you were count i ng In
base e i ght , it woul d go , 'Zero , one, two , three , four , f i ve, S I X, seven ,
one- zero . ' Even though that one- zero woul d b printed as ' 18 ' , i t i s not
ten. It Is one- zero, base ei ght , whi ch equal s e i ght in the deci mal
systel wi th whi ch we are al l faai l i ar . ( 1 ' 1 t al ki n' f i ngers and toes
nUlbers to the rest of you peopl e f rol Arkansas . I
So , what does tbi s ' \014 ' lean? To f i gure that out , count f rom the r i ght
end of the argulent toward the backs l ash ( \ ) star t i ng wi th zero . Zero ,
one , two di gi t s are shan . Take the f i rst number on the r i ght and
lul t i ply i t t i les ei ght to the zero poler . I Zero was i t s nUlber I n the
count frol r i ght to l ef t . ) So we have four t i les e i ght to the zero
pwer . Ay nUlber to the zero power i s one , so we have four t i le s one ,
or four . Next take the second nutber f ro! the r i ght and lul t i pl y I t
t i les e i ght t o the one pwer . l one was i t s number i n the count f ro!
r i ght to l eft . ) Bi ght to the one pm i s ei ght , so one t i m ei ght to
the one pwer is one t i les ei ght , or ei ght . Fi nal l y, t ake the t h i rd
nUlber f rol the ri ght and lul t i pl y it t i les e i ght to the pler of two .
( To las i t s nUibr in the count f rol r i ght to l ef t start i ng wi t h zero . )
We have zero t i le ei ght to the pwer of two, or zero t i m s i xty- four .
Zero t i les anythi ng i s zero , so we have zero . Now, add the val ues
together . Zero pl us ei ght pl us four . That equal s twel ve . So the
argulent passed to the ' putchar ( ) , funct i on i s equal to twel ve .
o < - -Count
8X8 8 <- - Powers of 8
4
64XI 8Xl 1X4
8 8 4
< - - Base 8 nUlber ( i ndi cated by ' \ ' 1
<- -Kul t i ply nUlher by powers o f 8
< - -Resul t s of lul t i pl i cat ion
t 8 + 4 : 12 <- - Deci lal equi val ent of ' \'14 '
Tel ve i s the ASCI I code to cl ear the screen on the Col or COlputer , so
when ' putchar ! ) ' Iri tes tbe val ue twel ve to the terl i nal , the screen i s
cl eare. Don' t ask Ie why t.el ve does the t r i ck and not thi rteen ,
sOlebdy sOlewhere j ust l i ke twel ve , I guess .
Tere are other ways to set the arguaent for ' putchar ( l ' equal to
twel ve . If you have the C COlpl l er laual handy, l ook at page 1 - 4 .
sector 12
Under the headi ng ' Control Character Escape Seuences" you wi l l f i nd the
fol l owi ng inforaat i on:
bi t patterns : \to
\dN
\xN
( octal constant )
( deci lal constant )
( hexi deci lal constant )
So the l i ne wi th twel ve expressed as U octal nUlber ,
putchar ( ' \814 ' I ;
can a l so be .r i t ten wi th twel ve expressed as a dec i lal nUlber :
put char ,' \de1 2 ' ) ;
or w i th twel ve expressed as a hexi dee i la l :t|-r .
put char ( ' \x0e ' I ;
Try subs t i tuti ng these l i nes and re-colpi l i ng the c l s . c source code.
One l ast thi ng to not i ce about the l i ne ,
putchar [ ' \e1 4' ) ;
There i s a se.i col on at the end of the l i ne . Thi s tel l s the C cOlpi l er
that here I s the end of a statelent . Those of us .ho are used to
progratli ng i n Bas i e09 or other basi c l anguages general l y end the l i ne
wi th just a car ri age return ( preSS i ng ER) . That doesn' t .ork for C.
You lUSt have the seli eol on to tel l .here one statelent ends and the
next begi ns . 1' 1 sure .e' l i forget a bunch of ' el before .e becole
prof i c i ent at C .
Now, l et s tdd sale couents to our source code .
'i ncl ude < stdi o . h>
lai n ( )
It Tel l s the cOlpi l er to i nc l ude t l
/ standrd I nput output headers t l
It Tel l s t he cOlpi l er here i s t/
It the start of the progral tl
j Here i s the start of tl
jthe funct ion lai n( ) tl
;1t:|tr ' \I!l' | , j P1t the val ue 1 2 tl
/t outt:t|t ttai tl l
j Here i s t|e end of tl
j the function lain( 1 l
u you can see, cOltents can b added throaghout the source coe. Tey
t1tt bgi n .it| ' j ' a end r| t| ' j ' . Te eOlpil er kos to ignore
anthi ng bt.een those syal s . Al thoug| I at the worst ahut
couent! ng IY source coe, do as I say, not as I do. Couents can save
you untol d headches . ,ake 4 break and go try to retd sOle uncollented
Basi c'9 coe you' ve written lonths ago or, even .orse, uncouente coe
sOene el se has writ ten. Reler , Basi c89 coe i s luch lore readabl e
t|uC. S i f yo |av trole .ith that , thin ho luch troubl e you' l l
have . i th uncouente C coe. D yoursel f a favor , COllent your coe.
Thi s i s a l l the further le wi l l go thi s t i le . knOl many 0f the
advanced C prograuers f i nd i 1 t t l e val ue i n thi s art i c l e . Komer , I
Ii l l ask for the i r hel p . There are lany di f ferent l i brar i e s , compl l rs ,
header f i l es, conf i gurat ions and ways to hol d your tongue . I Soleti les
i t .on ' t work unl ess you hol d your tongue j ust r i ght . I I woul d ask those
of you .ho progral in C on the Col or cOlputer to drop Ie a l i ne and tel l
Ie what you use, .hi ch l i brary, whose C cOlpi l er , do you cOlpi l e usi ng a
radi sk, etc . Here i s the chance to vo i ce your opinion . If you thi nk
you have the best syate. for cOlpi l i ng C progrm on the Co l or Comput er ,
l et Ie hear abut i t . Ad I need as lueh detai l as you care to gi ve tB .
I .i l l be attelpt i ng to deterli ne the ' de facto' standard for C
prograni ng on the Col or COlputer , and I i ntend to work to that
standard. So here' s your chance to vote that you do C l i ght .
Unt i l neKt t i le , keep sli l i n' . I t lakes peopl e wonder what you ' ve been
up to .
Al Fl eagl e
1 1 Alpi ne Court
Li ttl e Rock, A 72205
581/66 1 - 1063 ( voi c e)
501/661 -8527 ( sysop@VorkShop)
CIS 72521 , 1354
S LLI NG FAST.
W1 .R0Mv0|0I|0qm00I0|88t00
that 0v0r00Jwants.
I
mm
I
nlre WA Ssts deine the
= MMI WNN-a Wa Wr
O M
0us . Inus ad high euti
ae byng WMM. |boe ae bin 0
MMI. Sfenira multimeidp
a bin WMM1 .
NWjWc. W.
MCIpllit. WWlWI IM
MM a Ap . i g ol 0 \W
Oi y. P6mrI
Wmui CIptn mmae W
"1 \W M0WMM1 i din
Wf cn lw ytink abut Clptn.
Jn u th ml0WCmpta cmunit.
Mulimf CIpn. WM.Multkn. Familiar
orto. Hih ro grpi. bB|W sun.
1 6.7 milli pte. Nn. Th W!

W0mMyor h0Hc""r.
W W M 0uf8 or V0.

|00M
ND|BCySI0S
Sector 1 3
umq systel Cal l s
by Paul Pol l ock
I n al l thi ngs worthwh i l e , we often f i nd oursel ves w i th a probl el that
, cannot - be sol ved in a convent i onal fashi on . Progralli ng in Bas i c09 i s
no except i on ! Ayhow, t h i s art i c l e hopes t o hel p you begi nni ng Bas i c99
progralers , l earn a lethod to f i nd extra too l s frol wi thi n 059 i tsel f ,
t o sol ve di f f i cu l t i es .
To lake thi ngs eas i er, we' l l exali ne a coupl e of cOlon real - l i fe
probl els ( as exalpl es ) , and sol ve thel wi th pract i cal sol ut i ons; onl y
sol vabl e wi th a ' Systel Cal l ' . Tese sol ut i ons wi l l be delonstrated by
Bas i cS9 progrm wbi ch actua l l y use 059 to cure i tsel f .
Exalpl e l ! - Perforlance Ilprovelent
We' ve al l cOlpl ai ned abut i t . When we execute lore than one progral i n
lul t i task, qui t e often a Bas i c09 prograa s l ows down the systel for
another progral . Whi l e thi s happens wi th other types of prograls ,
Bas i cl9 prograls ( us i ng convent i onal too l s li tbi n t he l anguage ) t end t o
reduce a systels ' thruput luch lore severel y.
Wbi l e ASSEMBLY ( and other foris l sol ves thi s probl el i n c l ever waYS i the
quest i on i s , how do we appl y sucb sol ut i ons to our Basi cS9 prograls? For
a cl ue , l et ' s exali ne Basi cS9 i t s el f .
Firstly, l et's recognize a s i lpl e fac t i
The cOlputer wai t s f o r i nput , lost of t h e t i le .
Because of t h i s fact , Bas i cS9 has been wri tten t o t ake thi s i nto
account . I n al l the keybard entry pi nts; Systea Moe, Bdi t Mode and
Debug lode; Bas i cl9 i s wr i t ten to operate only long enough to scan the
keybard, and then return to the 089 pl l i ng t abl e as soon as it can.
You can test thi s yoursel f , by operat i ng another prograa after start i ng
Bas i cS9 . You' l l f i nd Bas i c09 bas l i tt l e effect on the rest of the
systel.
Bxcept when i t i s doi ng sOlethi ng other than keybard entrYi l i ke
' pack ' i ng a prograa. Thi s i s because Bsi cS9 was ui tten to generate
' pack' ed lodul es i n an e f f i c i ent lanner; and i t i s nemary to do thi s
l and sOle other tasks l , as fast as i t can . To get laxi lUI perforlance,
i t now uses i t ' s ent i re pl l i ng cl ock period, i nstead of del ayi ng i t s
operat i on. Al l of a sudden the cOlputer runs qui te sl ug i shl y, Ihi l e
packi ng a l arge progra.
N to lake use of one leth to get thi s techni qe i nto our own
prograls . Let ' s tae a lok at the fol l owi ng l i st i ng;
PRODU Ti ler
MI I
t Ti ler prograa to use the f $ s l eep Syst el Cal l
ll , Progralled b
lIl , Paul B . Pol l ock
885S , 8788 Partheni a Pl ace 15
lP | Sepul vea, C 91343
88S7 PA TIXBOU: BYTB
88SB TPB RBGISTRS=C, A, B, DP : BYT; X, Y , U: INGBR
ISB3 OIl RBS: RBGI8TRS
" S DIM PAT, CLCODB: BYTE
IK RGS . X=lMU
CALCODB=S9A
RUN 5YSCAL I CALLCODE , REGS )
END
Fi rst l y, l ook at how the progral i s wri t ten . The progral generats a
TPE statelent ( DI M' d as REGS ) to t el l Bas i cS9 what the 6S99 CPU l ooks
l i .ke . Then i t set s up the reg i sters of the CPU for a Systel Cal l .
Note the CALCODB. Thi s i s a landatory paraleter l i n th i s case $A,
used to i ndi cate the FSSl eep cal l , page 8- 35 of the Techni cal
Reference ) , whi ch lust be used to cal l the SYSCALL COl. and f rol Bas i cg9 .
SYSCAL ( i nc l uded i n your CMDS di rectory) , uses t he CALCODE to
i nterface to the Systel Cal l tabl e . The rest of the data Is sent via a
packet def i ned b the RBGS dat a packet . The onl y regi ster we are
lodi fyi ng , is the ' X' regi ster , whi ch the Techni cal Ref erences sec t i on
of the laual tel l s us i s used to t el l t he Systel Cal l how l ong t o
TIMBOU t he cal l i ng process . Al l the regi sters lust be sent , vi a the
TYPE packet , but any that are undef i ne, are assuled to be " don ' t care '
or ' l eave as i s ' i nfo.
Here' s the rul es for use of the F$5l eep Systel Cal l , as used by TIMER .
Call the progral v i a the f ol l owi ng l i ne ;
RU Ti ler I TIMEOU)
The paraleter TIMEOU i s an i nteger nUlber , whi ch det erli nes the nUlber
of systel ' t i cks ' you w i sh the FSS l eep per i od to be . F$Sl eep is NOT
repet i t i ve , so you have to repeat thi s cal l, every t I le you do J | +,+t
check.
The TIMOUT can be any nUlber betwBen ' 0 ' ad ' 255 ' .
I f ' S ' i s used, then the F$Sl eep cal l wi l l be forever . It has the
ef fect of usi ng LOOP wi thout an EXITI F. The onl y way to exi t is to
setup a software i nterrupt , through a systel i ntercept . Thi s i s very
cOlpl ex , and not wi t hi n the scope of thi s art i c l e .
I f ' 1 ' i s used, the ef f ect o f thi s cal l i s t o release any unused t l le
l eft i n the Bas i cS9 progral' s ( whi ch cal l s Ti ler ) pol l i ng i nt errupt i
back to the systel, for use by another progral .
Any other nUlber used I wi thi n range) , wi l l cause the F$51 eep to operate
for i ncreas i ngl y l onger peri ods . On a s tandard Coco Leve l - 2 systel,
these t i cks are actual l y lIe/second ( even though t he lanual states
6S/second) . Ti s leans you .oul d norlal ly use lllt i cks for a 1 second
TIMOUT.
Te abVe prograa mUles that your progral has a pl ace i n the progm
where i nput i s expected f rol the user . For i nstance, you coul d lake use
of thi s progral, r i ght after INKBY entry pi nt . Whi le the ef f ect of
thi s rout i ne li l l b not i cabl e wi th a TIMEOU of ' 1 ' , a keybard scan
coul d get away li th a TIMEOU as l arge a s 2- 3 wi thout not i cabl e eff ect
i n the prograa. Ad woul d provi de an even lore dralat i c sloothi ng of
systel perforlance. Ti s works wel l ' because' we are us i ng a Systel
Cal l . Ti s has DO ef f ect on the i nput dri vers and buf f er s , used to hol d
data i nputte. Characters wi l l b grabbed and stored unt i l cal l ed for
by the prograa . I f thi s kind of s toppage were t r i ed wi t h conventi onal
let hos , the progral loul d li ss characters , dur i ng TIMBOU per i ods .
sector 1 4
Or i t coul d be used by a BBS prograa, to suspend the lodu l e , used to
cbeck for a ' carri er detect ' , wbi cb woul d i ndi cate a user i s present .
li t b no user present , the cOlputer does not need to scan for thi s
condi tion on a cont i nuous bas i s , because tbe carri er f rol a cal l er i s a
' st eady- stat e ' condi t i on , and wi l l be there when you eventual ly qet
aroud to it grin> . Thi s leans that you coul d put the process to s l eep
for a rel ati vel y l ong peri o, wi thout affect i ng the lai n prograls '
abi I I ty to start the BSS . You coul d use a peri o up t o one! 1 ) second or
lore, wi thout the cal l er bei ng aware of a probl el . It coul d al so be
used at points i n a Menu Control rout i ne, whi Ie a user is onl ine. Thi s
woul d prevent l ong perios o f user i nact i vi ty f rol having an adverse
ef fect on your use of t he cOlput er . And can be handl ed as you woul d any
other i nput scan.
EKalpi e 12 * Creat i ng Sound
Tbose of us who' ve operated our Coc02' s and Coc03 ' s under BKtende Color
Bas i c , rember the pwerful and el egant letbos created by the pepl e
at Mi crosoft ; to lake not only noi ses , but sound and lusi c . COllands
l i ke SOUD and PLAY, are not only not part of Bas i c89; but are sorel y
l i s sed by lany progralers .
To a l l evi ate thi s luch l oved feature , a t l east t o sOle extent ; l et ' s
l ook at the fol l 01i ng prograaj
PROEDURB Tone
lm
lm
8m
l0
lF
8m
lM
1108
l| l\
ll ?
.165
8168
'172
8194
8191
Il
81DS
8284
8228
1231
8256
I25F
f26A
8279
8281
8287
8297
8291
.m
.2B7
'2C3
( t Tone Gnerator Progm
( t b Paul Pol l ock
(
t
DEI <PAUBBLL>
, t ;|tl ?| ?j ??: !?

t
| Ti s progra i s i ntended as a general purpse Tone
source.
I t Makes use of , ad deonstrates the use of I $setstt
Syste cal l .
I
t
I n thi s exaapl e, Syscal l i s used to cal l F$5etSta
( cal l coe $8E) .
( t Te actua l 55 . Tone i s opti on $98 .
( t te fi n detai l s are In your lanual .
( t
Usage:
I t RU Tone ( Va I uae , Tick, Freqency 1
( t
( t Paral ( al l are lanatorl
I t Volue= '-63 63 i s loud
I t Ti ck= '-255 255 i s l ong ( 1 ti cks/sec l
I
t
Preuency=t-4895 4895 i s highest pi tch
I
t
TPB regi sters=C, A, B, DP: BY; I, Y , U: IIR
DIM regs : regl sters
DIB path, cal l coe BY
PA Vol , Tl ck, Fre: INTGBR
DIM xdata: INR
pth=t
xdta=Voi t 256+Ti ck
cal l co=SSB
rel.A=th
rs . M98
rel.l=ta
re. Y=e
S 2CF RU syscal l ! cal l code , r eg s )
8 208 ED
ms
Li ke the previ ous empi e, thi s progm lodel s the 68a9 CPU , and set s
thi s up though the REGS data packet. Ad, l i ke the previ ous emp i e ,
thi s progral rec i eves several paraleters f rol s tandard i nput . These
paraleters are used to lodi fy the CPU regi sters as l i sted . The CALCODE
I S8E I , i s the key for the F$Set sta cal l . Thi s cal l i s the doorway for a
' sub-tabl e' of addi t ional systel too l s . These tool s becole ava i l abl e
vi a the ' B' regi ster of the CPU. Thi s regi ster conta i ns the t ag ! S98 )
for ' 55 . Tone' . The ' X ' regi ster contai ns a 2- byte code , whi ch contai ns
the vol ute and durati on data . The ' Y' regi ster conta i ns the Frequency
I nfonati on.
Al l that ' s l eft i s to send t hi s data to SY5CLL , and l et i t ri p! The
1 i ii ts are stated in the prograa, and deci aal integers are used for al l
pameters . Ti s progm can be used to generate tones up to 2 . 5
seconds l ong <gri n> . Ti s progral i s decept i vel y safe, a s screwi ng up
tbe pmeters wi l l have l i t t l e ef f ect on the systel . You lI ght not get
a tone, but the cOlputer wi l l cont i nue to operate norla l l y .
One other i lportant feature o f th I S progm i S i unl i Ke sOle programr ' s
other lethods for sound product i on , t hi s rout i ne wi l l NOT send randol
data to the pr i nter . For thi s reason, i t i s i deal for cases where ]O9
wi sh to lake sounds and st i l l use your pri nter .
The only bad part of thi s progral , i sn ' t real ly part of this progral ,
but a part of OS9 . Si nce 059 i s a lul t i taski ng operat i ng systel , the
systet wants to run i t s progrm wbi l e the progm wants to take a tone .
Thi s progral does not bai t the systel to run. So the effect of the
systel on thi s progra is that it lakes the sound seel ' grai ny' or
' buzzy' . Thi s ef fet i s li l dl y unpl easant , but i s otheri se qui te
ef fect i ve.
Wrappi ng Up The Loose Ends
I hop thi s art i c l e has been l ntomt i ve , and f un for you . The proqms
i ncl ued i n tbi s art i c l e are yours to use as you wi sh , as I ' ve rel eased
thel i nto the publ i c dOlai n.
Te Bas i c89 progms , ' Ti ler' and ' Tone ' , work on 089 Leve l l and !
Level - 2 systels wi thout loi fi cat i on ( aSK sstels , cont i rl the systel
cal l codes use, and any other paraaeters reqi red) . They pack i nto very
slal l proeures , a rei re very l i tt l e data, so they l end thelsel ves
to l arger projects where you li gbt l ike to i ncl ude thel i nto lerged
Basi c89 proceures . Te onl y ext ernal lodul e reqi red under Bas i cS9 i s
SYSCLL. Packe proceures wi l l al so requi re RUB, for proper
opration.
Go Luck, and keep progralli ng !
sector 1 5
That ' s al l for today' s I s sue f ol ks !
Look forward to our fol l oll ng i ssues revi eli ng the vari ous IaChi nes
ei ther nOl or son to b avai l al e . We start off 11 th a cOlpl ete
. top d revi el of the Kl frOi the i nsi de out . That ' s r i ght , everythi ng
you did' t want to knOl abut the Kl I
And releir , Pl ease lent i on the OSKer Ihen you contact our advert i sers .
It never hurts to l et thel knOl Ihl ch lagazi ne you found thel i n!
Does i t sound l i ke 1 ' 1 stal l i ng t o you? ( I needed j ust one lore page . .
not tlO or three or four . I .
Al so i n next lonths i ssue : the next i nsta i l lent of P l ayi ng chess i n C ,
and a l so Bug ' s Wi ndows , Bugs , and Patches art i c l e . That ' s r i ght , Ie
ca 1 1 the guy Bug .
See ya next lonth !
The Wi zrd of OSK
sector 16
Alan Sheltra
SYSTEM IV COM UER
PERFORMANCE - FLEXI BI LI TY - VERSATI L I TY
MC68000 Mi croprocessor - 1 6 Mz
1 MBytes of DR ( 0 wai t state )
4 M8ytes opt i onal
VGA Vi deo Card - 8 00 x 6 0 0 x 1 6
to 320 x 2 00 x 2 56
or - Hercul es Monochrome Ca rd
Seven I BM/XT Compat i bl e s l ot s
Fl oppy Di sk Cont rol l er ( 3 7C6 5 )
supports two 360K , 7 2 0K , 1 . 2M
or 1 . 4M Dr i ves
One 1 . 4 MByte , 3 1 / 2 Fl oppy Dr i ve
WD XTGEN Hard Di sk Cont rol l er ( MFM )
Four RS- 2 3 2 Seri al Ports
Paral lel Pri nter Port
4 0 MB Hard Dr i ve , 2 8 msec , opt i ona l
Cl ock wi th Battery
4 l ayer board
Meory Expans i on s l ot - adds
up to 8 M of DR.
AT styl e keyboard
200 Watt Swi tchi ng Power Suppl y
Professi onal OS9 / 68000
Dri vers and descr i ptors for the
devi ces and port s provided .
Baby AT Case - hol ds three 5 1 / 4 "
1 / 2 ht dri ves and one 3 1 / 2 1 1
dr i ve accessabl e f rom the
f ront and one 3 1 / 2 " i nternal
dri ve .
One year parts and l abor warran t y
Mfg by Peri pheral Technol ogy
Model K402-m wi th Hercul es Monochrome Vi deo Card
0
. $ 1 , 3 9 9 . 00
Model K402-v wi th VGA Vi deo Card . . . . . . . . . . . . S l , 4 9 9 . 0 0
Model K40 1 -m wi th 4 MB on-board DRA, 40 ME Hard Dri ve
'
( 2 8 msec ) and Hercul es Monochrome Card . . . . . . o , 8 9 9 . 0 0
Model K40 1 -v wi th 4 MB on-board DR, 40 MB Hard Dr i ve
( 2 8 msec ) and VGA Card . . . . . . . . . . . . . . . S A " 9 . 00
1 4 " VGA Moni tor , 0 . 3 1 m, Gol d Star 1 4 50 Pl us

wi th K4 01 -v or K402-v ( Regul ar $549 . 00 ) . $
4 _. 0. 1
0
1 4 " Monochrome TTL Moni tor , Aber , Gol d Star 1 40 1

wi th K40 1 -m or K4 02 -m ( Regul ar $ 1 99 . 9 5 ) . - - . . . . $ 1 4 9 0
VGA Monochrome Moni tor , whi te , Tady VGM- I OO
<
wi th K40 1 -v or K402 -v ( Regul ar $ 1 99 . 95 ) . . . . . $ 1 6 . 0 0
OS9/680xO SOFTWARE
SCULPTOR - Devel opment System ( 6 8000 ) from $2 , 500 . 00
Qui ck Ed - Edi tor and Text Formatter . . . . . . $ 275 . 0 0
Fl ex i L int - A must for C progrClers . . . . . $ 4 9 5 . 00
Cachi ng - Hi gh speed di sk cachi ng ( demo avai l ab:l e ) S 300 . 00
IMP - Intel l i gent Make Progra . . $ 2 50 . 00
Di sassembl er - 3 pass . . . . . . . . . _ . . $ 2 S0 . 00
Wi ndows - C source code & l ibrary . . . . S 2 50 . 00
Profi l e - Tue User State Progras . . . . $ 2 70 . 00
PA Ut i l i t i es - C source ad l i brary . . . . . . S 250 . 00
del mar co
P . O . BOX 7 S ' DDLETOWN SHOP P I NG CENTER MI DDLETOWN , DE 1 9 7 09 02 / 3 7 8 - 2 5 5 5

Potrebbero piacerti anche