Skip to main content

Full text of "Sinc Link"

See other formats

JAN-FEB  '91  VOL.9  NO.l 


VOL.  9  NO.l 

JAN-FEB  '91 

SINC-LINK  IS  *  «^™"JS 
CLUB  MO  IS     ISSUED     6     TIMES  A 

yJm  copies  of   the  newsletter 

lor  s  t  SO  EACH  FOR  NON-MEMBERS. 

AS  PART    OF     THE  *™-°°J?j£* 


FOR  SI 2. 00. 


0F        CHARGE,  „,,oe 




Atfntion:  SINC-LINK 
CLUB,        1*  RICHOME 


(  Out-of-town  members  ) 



(Area  Code  416) 
RENE  BRUNEAU  (  531-9749  ) 
BILL  LAWSON  (  444-8772  ) 
GEORGE  CHAMBERS  (  731-7539  ) 
RENE  BRUNEAU  (  531-9749  ) 
LYMAN  PAQUETTE  (  482-4479  ) 
RENATO  ZANNESE  (  635-6536  ) 
HUGH  HOWIE  (  634-4929  ) 
JEFF  TAYLOR  (  244-8583  ) 
JEFF  TAYLOR  (  244-8583  ) 
(  416-751-7559  ) 


I  R  U8BR5 

Kri  itorial 

Well  I  thought  it  was  time  to  change  the  cover  again.  What  do 
vou  think'  This  cover  was  done  on  one  sheet  of  paper  using  Byte 
Power's  "The Print  Factory  for  the  2068.  The  super-sized  screen 
is  from  their  -Companion"  series  of  screens  and  fonts.  Actually 
the  Cheetah  is  six  screens  butted  together.  You  load  the  first 
III  screens  into  the  "The  Press",  print  24  lines,  load  the  next 
+™  crrppns  orint  those  24  lines,  then  load  tne  last  two 
Greens  and 'print  the  last  21  lines.  Once  you  learn  how  to  do 
^rn^^ea^yluite  simple.  I  .ust  wish  the  ^cumentation  gave 
a  little  more  info  -  you  use  up  a  lot  of  printer  paper 
experimenting.  Are  you  listening.  Kris. 

Desktop  publishing  seems  to  be  the  latest  rage  around  the  club 
uesKt-op  puuij^ui  y  skills  on  -Pixel     Print  Professional" 

with  members  honing  their  sxms  on    rs*  f  th 

or  the  "Wordmaster"     suite     or      Print  Factory ;       all     for  the 

2068/Spectrum  or  »text87'  and  'W  *«f™r  J1  '°rother  d\? 
Have  vou  had  any  experience  with  these  or  any  otner  uih 
programs?  Let  us  know.  It  can  only  help  to  produce  a  more 
professional  looking  newsletter. 

Hello  Editors 

As  the  T/S  world  shrinks,  newsletter  editors  may  be  finding  it 
harler  and  harder  to  put  out  quality  products.  If  your  cub  or 
newsletter  is  in  danger  of  folding,  don't  give  up  the  ship!  Let 
stnc-Link  be  youV  platform.  We  will  publish  pertinent  stuff  on 
your  group  for  free  and  you  can  even  keep  using  your  newsletter 
name  within  our  paper.  How's  that  for  an  offer! 

Get  wel 1 .  Ian! 

As  this  issue  is  going  to  print ,  Ian  Robertson  ^  long  long 
time  member  is  in  hospital  undergoing  tests  and  treatment.  For 
those  of  you  who  are  familiar  with  Ian,  you'll  know  him  as  a 
launch  supporter  of  Sinclair.  From  the  early  to  late  eighties^ 
his     "Sincbits"     articles    were    a     constant    source      of  new 

information  on  both  publications  and  Pro^c^/^s°^dC°^^!r 
He  must  have  every  known  product  ever  made  for  T/S  and  Sinclair 

computers . 

Ian,  our  thoughts  are  with  you. 

That ' s  all  for  now. . . 


ODDS     Sc  ENDS 


.  •  i,  ^^-t-z-sv  look  at  the  Disk  Name  area  on 
t'rack^block)  zero  of "SnJ°3  your  disKsf  If  you  have  or  if  you 
do  you  might  notice  that  there  is  a  lot  of  nonsense  after  the 
proper  disk  name  that  ought  not  to  be  there. 

»     j  A^<rr.r  B1   from  the  club    omnibus    disk    or  other 
^yth^enLput  fdiskln  Appropriate  drive  and  -amine  track 

°  ^/i^i^^ero^Arier^nal  t^ere  should  IZltT. 
name  will  end  with  a  zero,  ftitei  "Crud"  that 

More  than  likely  there  will  be  a  lot  of  left    over  cr 

the  Larken  system  nev^/^°v"Av?na  up  ?Mngs  tr?  this:  BREAK 
routine!  If  you're  a  nut  for  tidy  ™?  uP^n g  "  ^05)  as  follows 
into  the  BASIC  and  putin      line  (I  numberea  it      i$.„N0T  ..j^ 

^/^VMO.^sSnS..  ^WB^i^SOO    TO  55119:POKE 
0    NEX?T  GO  TO  1650>.  Restart  "doctor"  and  get  to  the  point 
where  you're  looking  at  the  Disk  Name  area  which  starts  at  byte 
wnere  you  re  iuu ^    s  _  so.  these  bytes  being  added  to 

the°s?artgofSburfer  50000  make  the ^ddresses^SOO  to  55119  Now 

PresfSe  ?oken"ST  on  the  <s>  key    and    you'll    see  the  lower 

Screen  (menu)  disappear  and  ^  -Placed  by  standby.  ^  The 
^TNPlJT->  wiDes  out  the  lower  screen,  a=>  y 

re-enter  the  current  disk  name. 

original^  °d  Proved  w^rma?^,  llr^KeZ*  ft 
not  one  hundred  Percent  sure  of  this,  but  my  original  copy  on 
?h«  Larken-Drovided  disk  was  full  of  garbage  in  the  disk  name 
area  If  you  want  to  clear  Hcode.Cl.  you  will  have  to  examine  it 
rrom  about  4100U  to  41179  or  so;  do  a  similar  POKE  operation  to 
input  zeroes  and  re-save  the  code  (2000  bytes  long). 

It  would  be  possible  to  replace  the  FOR.  .  .NEXT  loop  with  a  code 
LDIR  routine  but  once  the  Hcode  is  corrected,  the  need  to  do 
any  more  clean  up  jobs  should  die  out. 


in  some  of  my  program  or    disk    documentation    and    in  previous 

with  the  particular  TS2068  machine  for  all  are  not  alike.  While 
most  apparently  give  the  237  result,  other  do  not. 


I  recently  ran  into  a  situation  where  I  needed  to  print  a  POUND 



sign  (that's  on  the  <x>  key)  on  the  wide  printer  because  that 
key  had  to  be  pressed  to  make  a  certain  program  run  properly.  I 
found  that  wherever  the  POUND  sign  was  to  appear  in  the  text.  I 
had  to  type  a  <#>  sign. 

Then  by  proper  commands  to  the  printer,  it  could  be  made  to 
switch  character  sets  to  the  British  one.  Each  time  it 
encountered  a  <#>  symbol,  it  printed  the  POUND  sign.  The  way  to 
do  it  probably  varies,  but  with  my  printer.  I  did  the 
f ol lowing : 

PRINT  #4:   POKE  16093.32: 
PRINT  #4:  POKE  16098.3 
LPRINT  CHR$27;"R";CHR$2: 
correct  commands  here 

REM  Larken  double  poke  command 
REM    check    your    printer    manual  for 

PRINT  #4 
PRINT  #4 
PRINT  #4 

POKE  16093.0 
POKE  16098.0 
POKE  16094.m: 

INT  *4:  POKJS  lou^.m:     REM    needed    because    POKE    16093  also 
changed  16094  (where  m  is  the  required  m^insett  ing)  ^ 
The  printer  will  now  be  conditioned  for    the    British  character 
set . 

BUG  ALERT!  LK2CPY.B1   (Richard  Hurd's  Program). 

This  is  a  very  useful  utility  for  making  a  duplicate  copy  of  a 
disk  between  two  drives  having  the  same  number  of  sides  and 
tracks.  But.  if  the  original  disk  is  FULL,  the  utility  will  give 
a  false  CRC  error  as  it  does  not  know  enough  to  STOP  when  all 
tracks  have  been  copied.  The  following  lines  will  correct  the 



LET  blx«sid*numtrks> 

IF  a-blx  THEN  GO  TO  740> 

I  have  only  confirmed  this  OK  using  two  DSDDs .  But  I    have  just 
installed  a  3.5  inch  720k  drive  and  will  eventually    check  this 
^  out  again . 


ADD  <102  RANDOMIZE  USR  100:  CLOSE  #3>  to  ensure  that  the  TS2040 
will  function  when  called  upon  by  the  disk  indexer  program. 

Bob  Mitchell  901209 



During  November     a  meeting  of  the  QL  wing     of  TTSUC  was  held  at  H.Howie 
residence  in  Burlington. 

A  number  of  most  interesting  demonstrations  were  held. 






Louis  Laferriere  gave  a  demonstration  of  CHAOS  BUSTER  which  can  be 
obtaTned'from'wood'and  wind  Computing  (Bill  Cable).  The  total  parage 
is  a  user  -Friendly  database  running  within  ARCHIVE  .  The  user  doesn  z 
need  to  know  ARCHIVE  language  to  get  the  most  benefit  from  this 
software  .     HIGHLY  RECOMMENDED 


HUGH  had  three  machines  on  a  network  with  the  following  equipment 

1  =  The  main  machine  with  a  colour  monitor  ,  expanded  memory  ,  TK2, 
Cumana  disk  interface  and  large  printer. 

2  i    The  second  machine  with  a  monochrome  monitor  ,   Trumpcard      896  K 
and  two  3.5  "  disk  drives. 

t  =    The  third  machine  was  using  a  TV  set  and  microdrives. 

The  demonstration    was    very       impressive     with     di.kdrives    under  the 

command     of  any  of  the  machines   <  OL  )    ,   the  monitor  screen  listing  the 

directory  of  a  disk  being  copied  etc.  .«_  ,  .,.  „x 

The    full       advantages     of    NETWORKING     and      the     flexibility     of  the 

peripherals  was  most  impressive. 


The  next  demonstration  was  the  use  of  IMPORT  and  EXPORT  commands  to 
modify  and  clean  up  ARCHIVE  files.  It  is  quite  a  different  experience 
?eading  about  this  process  in  the  manuals  or  from  deferent 


We  had  all  heard  about  the  great  advantages  of  textB7.  But  until  you 
see  it  in  actual  operation  it  is  difficult  to  imagine  the  complexity 
and  capabiltties  of  this  modern  word  processor.  Somebody  referred  to  it 
as  the  equivalent  to  LOTUS  123  . 


The  evening  was  then  completed  with  a  complete  demonstration  of  IMAGIX 
Iran  EmmanueT  Verbeeck  from  BELGIUM.  The  programmes  are  most 
impressives  and  educational. 

6      <-""•  Lmfrri**  SINC-LINK 

HELP     I?  AGE 

Dick  F.  Wagner 

Periodically  questions  come  up  on 
problems  with  using  the  Tasword  II 
word  processor.  These  have  been 
addressed  in  the  past  when  the 
program  was  "new".  A  recent  problem 
from  one  of  our  members  was  that  the 
Expanded  mode  didn't  work  on  the 
large  printer.  As  it  turned  out,  the 
codes  for  expanded  mode  were  14  for 
ON  and  15  for  OFF.  BUT,  these  codes 
are  for  1  line  printing  which  is  OK 
for  headings.  This  means  that  the 
code  must  be  on  the  line  to  be 
expanded  (double  width)  and  not  on 
the  line  above.  A  more  universal 
code  is  27,87,1  for  on  and  27,87,0 
for  off  but  the  OFF  code  must  be 
added  at  the  end  of  the  expanded 
1  ine. 

This  Tasword  II  program  had  been 
reworked  in  the  past  (a  used 
edition)  and  the  main  "HELP"  page 
had  been  revised  to  some  extent.  Now 
the  owner  would  like  to  put  the  page 
back  to  its  original  format,  but  how 
to  do  it?  Here  are  the  steps  for  the 
original   Tasword  II  program — 



page  is 
to  select 

form) . 

2.  After  the 
displayed,  use 

3.  Edit  line  15  by  adding  after  the 

LOAD"-  "CODE     the       address  and 

number  of  bytes,  54784,10751.  Check 
this  in  line  710  for  correctness. 

4.  Rewind  the  tape  if  cassette.  RUN 
the  program  with  this  revision.  Use 
STOP  for  the  menu  and  select  "load 
text  file"  (j).  On  "name",  input 
"tasword"  . 

5.  Edit  the  "HELP"  page  as  normal 
text,  moving  the  cursor  and  making 
the  changes  desired.  One  suggestion 
is  to  add  "CS"  (CAP  SHIFT)  above  the 
left  set  of  graphics.  Also  change 
the  printer  to  the  model  in  use, 
besides  any  mode  names.  Remember, 
the  modes  must  correspond  to  the 
codes  and  graphic  symbols  assigned 
on  the  printer  codes  screen.  If  you 
get  lost,  just  use  the  EDIT  key  to 
bring  up  the  main  "HELP"  page. 

6.  Use  a  fresh  tape/disk  and  use 
"STOP"  to  return  to  the  menu.  Now 
choose  "save  text  file"  (s).  Again 
name  it  "tasword". 

7.  This  time  go  into  BASIC  with  "b" 
and  GO  TO  15  and  reload  the  new  text 

8.  The  revised  "HELP"  page  should 
come  up  on  EDIT.  Check  it  out  to  see 
if  all  of  the  revisions  are  as  you 
want  them.  I f  OK  then  LIST  15  and 
delete  the  added  address  and  bytes. 
Now  make  a  final  save  for  the 
finished  copy. 

This  all  seems  rather  complicated 
but  it  falls  into  place  if  followed 

Readers  of  Time  Designs  will  find 
another  method  in  VOL.  3,  NO.  2, 
pages  26-29.  The  actual  program  is 
lines  4000-5080.  Bill  Ferrebee  has 
made  a  major  change  in  Tasword  II 
that  includes  this  subroutine.  I 
checked  his  program  against  the 
original  and  marked  each  line  that 
was  different.  Then  I  made  the 
necessary  revisions/additions.  His 
method  is  of  changing  the  "HELP" 
page  is  "self  contained"  but  is 
slow.  This  is  the  reason  for  the 
flashing  "WORKING"  sign,  just  wait 
check     CAT     for       until   it  stops.   After  all,   it  takes 

time  to  make  1537  loops.  Actually  it 
is  faster  than  the  method  given  at 
first . 

Note:  Thanks  to  Norm  Lehfeldt  in 
T I MEL INEZ  of  unknown  date  for  the 
procedure  for  revising  the  "HELP" 

from  The  Plotter  n/1  of  Clackamas  County 



DATA - RE AD - RE  STORE  ON  A  TS1000 
By  Sebastien  Boisvert 

This  is  a  DATA/READ/RESTORE  program  that  appeared  in  the 
February  '87  issue  of  ZX  Computing  that  was  written  by  David 
February     »     J"  modified  it  slightly  to  make  it  shorter 

rf     t     e 'easier  to  use*     It  will   let  you  make  DATA  statements 
and  READ  them  like  other  computers  do.   Therefore,   you  will  be 
aMe  to  adapt  those  programs  for  "bigger"  computers  on  the 
TS1000 . 

Th*  first  thing  you  got  to  do  is  make  a  1  REM  statement  with 
at  least  107  characters  in  it.  Then  enter  POKE  16510,0  to  change 
tine  1  to  0.  Then  enter  the  program  from  listing  1  and  enter  the 
code  from  listing  2.  When  you  are  done,   enter  the  program  from 
Usting  3  and  SAVE  it  to  tape;  that  is  your  master  copy. 

Using  the  program  is  very  simple.  When  a  RESTORE  instruction 
is  required,   replace  it  by  a  RAND  USR  REST.   DATA  statements  are 
stored  in  REM  lines  immediately  followed  by  the  gray  square  on 
the  A  key    For  strings  you  don't  need  to  put  quotes  before  and 
after  the'text.  You  must  make  sure  though  that  t he  computer 
READS  it  as  a  string.   This  is  done  by  using  the  form  of. LET 
fstrina  variable)=Z$   (   TO  USR  READ).   This  would  be  the 
equivalent"  of  :READ  (string  variable).   The  way  to  READ  numbers 
is : LET  (variable) =  VAL  Z$  (  TO  USR  READ) .    If  you  run  out  of  DATA 
in  your  program,   error  0/  will  occur. 

Beware  of  strings  that  contain  commas  in  your  DATA  statements. 
Suppose  that  you  want  to  store  the  sentence  "THE  TS1000  IS 
COMPUTER ,  THEREFORE  IT  COMPUTES".   Since  there  is  a  comma 'the 
computer  will  think  there  are  two  strings  and  will  READ  them  as . 


Also  beware  that  there  are  as  many  characters  m  the  DIM  ZS 
statement  as  there  are  in  the  longest  DATA  string    You  can  also 
use  variables  other  then  Z$  as  long  as  it  is  the  first  defined 
variable  in  the  program.   If  you  have  n on -DATA  REM  lines  that 
start  with  a  gray  square,   just  put  a  space  between  the  REM  and 
the  square  and  the  computer  won't  read  it  as  a  DATA  line. 



This  program  will  let  you  COPY  the  number  of  lines  you  wish 
be  copied: 

1  REM  12345 
10  POKE  16510,0 
20  POKE  16514,22 
30  POKE  16515 , NUMBER  OF  LINES 
40  POKE  16516,195 
50  POKE  16517,107 
60  POKE  16518,8 

Te  ^^VArio^l*:.  This  routine  is  fully  relocataM, 

This  program  will   let  you  COPY  a  specific  line  from  the 
screen : 

1  REM  ...19  spaces...  . 
10  INPUT  L      Line  to  be  copied  (1-24):   l=top  line 
20  LET  L=(L-1)*33 
30  POKE  16519, L-256*INT  (L/256) 
40  POKE  16520 , INT  (L/256) 
50  RAND  USR  16514 
100  FOR  F=16514  TO  16532 
110   INPUT  A 
120  POKE  F , A 
130  NEXT  F 

Enter  RUN  100  and  enter  the  following  values: 

Delete  lines  100-130...  This  routine  is  fully  relocatable. 


r=t  e:  j: 

by  Chuck  XeneJuck 


One  sentence  can    basically    sum  up 
this  program: 

I  haven't  had  this  much  fun    with  a 
piece  of  software  since  Pixel  Print! 

PIX-FX,  written  by  Michael  DiRienzo 
for  the  TS2068  computer,  thoroughly 
answers  the  question  of,  "Now  that  I 
have  some  graphics  on  file,  what  the 
heck  do  I  do  with  them?" 

Plenty!  Do  you  have  something  that 
would  look  better    smaller?  Larger? 

You  can  do  it!  How  about  just  a 
piece  of  a  graphic?  Want  to  enlarge 
Catherine  Deneuve's  eyes  to 
full-screen?    Or    just    one    of  them? 

You  can  do  that,  too!  How  about 
making  your  own  customized  set  of 
graphic  eyeballs  to    replace  Cathy's? 

Do  it!  Here's  a  neat  idea:  You  know 
that  digitized  group  picture  we  ran  of 
myself,    Robert,    Malcolm    and  Dave? 

Well,  with  PIX-FX,  you  can  "cut  out" 
each  face  and  wrap  it  around  a  sphere! 
That's  right:  Make  planets  out  of 
•em!  Then  choose  the  tilt  of  each 
planet  and  which  side  you  want  to  look 
at!  After  creating  this  new  "solar 
system",  you  can  pretend  they've 
suddenly  encountered  a  Black  Hole  and 
stretch  'era  out  in  3-D,  with  one  end 
much  smaller  that  the  other! 

In  fact,  just  about  the  only  thing 
that  will  limit  what  you  can  do  with 
PIX-FX  is  your  imagination. 

Sounds  like  a  tall  order  for  TS 
software?  Must  be  a  catch,  huh?  Like 
being  very  difficult  to  operate,  weird 
USR  calls  or  something  unfriendly  as 
that.  Nope.  Nothing  like  that.  Not 
only  is  it  easy,  it's  fun! 

However,    there    are  a 
things    the    user  needs 
beforehand    to  insure 
transition  into  easyness. 

One,    is    that    PIX-FX    works  by 
employing    two     different  screens. 
These  screens  are    displayed    to  you 

the    way,    or  you 

couple  of 
to  know 
a  smooth 

simultaneously,  by 

can  choose  to    view    them  separately. 

They  are  the  Working  Screen,  which 
you  initially  LOAD  your  graphic  into 
and  the  Final  Screen,  which  you 
usually  use  to  store  your  revised 
graphic.  Keeping  to  this  convention 
will    save    you    lots    of  confusion. 

Also,  there  is  a  Load/Move  Pic  screen 
that  is  always  displayed  right  after 
choosing  a  function  from  the  Main 
Menu.  This  screen  shows  both  the 
Working  and  Final  screens  and  what's 
in  which.  If  you  have  a  graphic 
LOADed  into  the  "WS",  it  will  show  it 
in  a  mini-version  of  your  regular  CRT 
screen.  If  something  is  in  the  "FS", 
it  will  show  that,  too,  in  the  same 
fashion.  Image  reproduction  in  these 
'mini-screens',  by  the  way,  is 
excel lent . 

Anyway,  here  is  where  you  make  sure 
that  your  original  picture  is  in  the 
Working  Screen.  If  a  complex  picture 
is  in  the  works,  requiring  several 
mods,  a  lot  of  screen-swapping  from  WS 
to  FS  will  be  done.  And  since  every 
main-menu-selectable  function  will 
step-stone  you  back  into  this  same 
Load/Move  screen,  you  must  never 
forget  what  it  was  you  were  doing  in 
the  first  place! 

One  item  I  thought  odd  was  the 
apparent  omission  of  a  way  to  clear 
any  screen.  This  seemed  to  be  a  real 
problem,  since  the  program  comes  with 
a  graphic  already  in  the  Final  Screen. 

Well,  you  could  just  copy  the 
already-blank  Working  Screen  into  the 
Final,  but  even  that  wasn't  necessary. 

It  turns  out  that  for  LOADing 
purposes,  it  can  be  done  anywhere  and 
if  there  is  something  taking  up  the 
space,  it  won't  be  for  long! 

Another  item  to  keep  in  mind  is  that 
when  executing  a  function  from  the 
Main  Menu,  PIX-FX  will  always  display 
the  Working  Screen  after  you  exit  from 
being  popped  into  the  Load/Move  Pic 
menu  screen  (The  WS,  is,  after  all, 
what  you're  working  from)  but  will 
always  display  the  Final  Screen 
immediately  after  executing  the 
function  or  after  exiting  the  chosen 
Load/Move  option  to  view  both  screens 
simultaneously.  You  can,  of  course, 
pick  the  VIEW  SCREENS  option  in  the 
SCREENS  STORAGE  menu  that  you  picked 
from  the  Main  Menu. 

So,        by       keeping       all  the 
aforementioned    tips    in    mind,  you 


will  greatly  ease  your  transition  into 
the    area    where    imagination  finally 
kicks  in  begins  some    serious  graphic 
work.    You'll  find  some  of    that  work 
elsewhere  in  this  issue. 

One  thing  noticable,  by  now,  is  a 
variety  of  menus!  There  are  four  of 
them:  one  Main  and  three  subs.  The 
only  sub-menu  not  mentioned,  yet,  is 
the"  HELP  Menu. 

The  HELP  Menu  directs  you  to 
everything  you  always  wanted  to  know 
about  PIX-FX.  Just  choose  the 
subject.  After  picking  one,  the  user 
may  expect  to  get  popped  into  another 
text  screen  or    something.        No  way. 

That  would  be  too  boring  and 
conventional.  Instead,  while  you're 
still  looking  at  your  Final  Screen, 
the  chosen  Help  text  begins  marching 
a  single  line  across  the  bottom  of  the 
screen,  from  right  to  left!  This  is 
real  fun  to  watch.  The  characters  are 
large  enough  to  read  from  across  the 
room,  so  you  don't  have  to  drag  out 
your  reading  glasses.  Pressing  ENTER 
will  terminate  the  Help  text  so  you 
can  continue  creating. 

I  don't  know  about  you,  but  I  happen 
to  like  menu-driven    softvare.  It's 
friendlier  and  keeps  you  from  digging 
into  that  documentation,  again.  Plus, 
the  menus  are  like  pants:      They  pull 
down!      The    selections    are    made  by 
pressing  a  'down'  or  'up'  key  (6  or  7) 
and    watch    a    hi-lighted    bar  roll 
through  the  choices.    When  it  stops  at 
something  you  want,  just  press  ENTER. 
What  could  be  simpler?? 
While  a  pull -down    menu    can  engage 
the  Help  files,  it's    often    handy  to 
have  the  hardcopy  available,  as  well. 

In  this  regard,  Mr.  Dixienzo  has  done 
a  very  good  job  of  documenting 
everything    with    clear  explanations. 

There  are  things  covered  here  that 
you  won't  find  in  the  Kelp  Menu,  such 
as  customization.  Since  PIX-FX  comes 
on  high-quality  cassette  tape,  general 
disk  converting  instructions  are 
given,  plus  address  areas  to  insert 
full -si zed  printer  dri\er  codes.  Very 

For  those  of  you,  like  a  lot  or 
people,  who  hate  instructions,  no 
matter  how  easy  they  are  to  read,  he 
has  supplied  a  PIX-FX  lour.  You  must, 
however,  read  1  page  of  Tour 
instructions.  For  the  rest  of  us,  we 
can    content    ourselves       with  the 

detail  supplied  in  just  ten  pages. 

One  of  the  most  fun  features  of 
PIX-FX  is  called  Planet  Maker.  This 
is  the  previously-mentioned  utility 
that  allows  you  to  wrap  a  SCREENS 
around  a  3-D  sphere.  Since #  the 
graphic  must  be  stretched  a  bit  to 
accomadate  the  globe's  surface, 
varying  results  occur  with  different 
graphics.  Digitized  photos  of 
people's  faces  are    most  interesting. 

Planet  quality  depends  mostly  upon, 
uh,  the  face  in  the  photo  I  See  the 
examples,  then  guess  who! 

A  real  nice  technical  feature 
Involves  the  SAVEing  of  a  graphic  file 
once  it's  created.  An  option  is  given 
to  SAVE  in  compressed  format!  This 
has  the  advantage  of  saving  up  to  50% 
of  space  compared  to  the  normal 
6912-byte  SCREENS .  This  can  be  a  real 
boon  to  disk  users.  You  can  store 
more    pictures    on    a    single  floppy. 

Tape  users  will  find  it  helpful, 
also,  since  they  don't  have  to  wait  so 
long.  There's  a  USR-accessible 
machine  code  routine  at  the  head  of 
each  compressed  SCREENS  to  pop  it  back 
to  normal  size  at  the  normal  address 

Unfortunately,  a  real  lemon  feature 
is  that  you  can't  LOAD  them  back  into 
PIX-FX  to  their  original  form!  Maybe 
an  updated  version  from  VectorWare 
will  fix  this?  In  the  meantime,  one 
may  wish  to  add  a  "RANDOMIZE  USR 
40246"  statement  in  the  BASIC  to 
expand  the  compressed  file  after 

Actually,  this  was  the  only  'minus' 
I  could  find  in  the  whole  program. 
Once  you  start  using  PIX-FX,  this 
becomes  negligible,  because  all  the 
'plusses'  more  than  eliminates  the 
single  'minus ' . 

If  you  are  at  all  interested  in 
graphics  and  own  a  TS2068,  I  strongly 
suggest  you  try  out  this  excellent 
program.  For  your  own  copy,  send  a 
mere  S20.00  to  VectorWare,  4128-1/2 
California  Ave.  SW,  Seattle,  WA  98116 
or  call  (206)935-9272. 

Tell  'em  you  read  about  it  in  SWYM! 



Putting  the  SOPKB  into  BASIC. 

I  m  one  of  those  P^le  ?bo  oennot 
see  a  bit  of  code,   in  SuperBASIC  at  any 
Hie*  without  wanting  to  jnjprove  t 
If  I  called 
n A    "  *5  11  night 

articles  on  now  i  !»  oroeram  as  it 

SuperBASIC  program-       The  P«*"^a  does 

nucleus  for  a  rean/ 

The  original  listing  was: 

10  0PEN#3,serl 

20  DIR#3,flpl_ 

30  PRINT33 

40  PRINTS0,  'More? 

50  more$=INKEY$(-l) 

60  IF  more$='y'  0R  "°Ie$-  Y 

THEN  GO  TO  20-  ELSE 
70  PRINT»3,CHR$(12); :  CL0SE»3 


There  were  three  things  that  I 

*  J.  Z~  sOt-*»r  ritfht  away,  since  while 
wanted  to  alter  rign-  f  om 

ltSell'.  The  condition  Bore$=="Y"  t«s*s 
both  cases  at  once,   and  is  more  efficient 

thaI>  5°"n  this  instance  it  isn't  really 
necessary  to  assign  the  value  of  INKEY$ 
5  an  intermediate  variable.  ^ 
it  just  as  it  comes,  so  the  two  lines  50 
and  60  can  be  replaced  by. 

Th£  wa!S$unUryou:press  a  Key  before 

are  quite  unnecessary  in  SuperBASIC,  and 
are  generally  considered    bad  f °» 
even  though  they  work!       In  this  ^stance 
?he  GOTO  is  creating  a  loop,  and  this  is 

I.e.  we  want  to  stay  m  the  loop  if  the 
answer  is  "Y" .  There  are  several  ways 
^rell'ith  this      we  could  change^ 

STllS  t°o  i;iDIn^?*i-i>=;H"  or  do  what 
I  Save  done  stick  a  MOT  in  front  of  the 
+  This  may  seem  the  most; 

5sS!  .-saa;  ss£» 

useful  when  there  is  no  alter native^ 
Note  that  it  gets  around  the  absence  oi  a 

oflnfll  test  that  covers  both  cases  at 
once    k$0  0"Y"  DOES  "NOT  WORK!  The 
Swr  is  the  floating  ELSE  at  the  end  of 
line  60;   it  serves  no  purpose  at  all. 

Incorporating  these  ideas  the 
program  becomes : 

10  0PEN#3,serl 
15  REPeat  loop 
20  DIR*3,flpl_ 
30  PRINT«3 

5  ^ofiNmJ-i)--='y':ExiTioop 

£  K3e?HRS(?I);:  CLOSED:  STOP 

Structured  Programming  -  Clase's  Rules 

But  I  am  still  unsatisfied;   it  is 
not  properly  structured.       Most  Programs 
can  be  divided  into  three  parts:  sejL-liE  - 
in  which  the  initial  conditions  a re  _ 
determined  (windows,  devices  etc),  main 
where  the  main  action  takes  place,  and 
finish  -  which  tidies  up  at  the  end  and 
restores  your  QL  to  its  normal  state. 

As  you  may  have  noticed  many  commercial 
programs  leave  out  the  finish  section!) 
Accordingly  my  own  programs  generally 
consist  of  a  single  line: 

100  Set  up:  Mam:  Finish.  STOP 
(tnfsTOP  is  optional.  )      The  rest  is  all 
ppnr«rfures  and  Functions.       In  tnese  i 
tfy  ^epTo  the  following  self  imposed 

rUleSl        Each  PROCedure  and  FuNction 
should' be  no  longer  than  one  screenjul 
tie    20  lines).      Anything  longer  than 
this' almost  certainly  involves  more  than 
cne  Proeedige^  ^  ^  &l 

capital  and  variable  names  are  all  l°w^ 
tile        This  distinguishes  them  from  each 
other  and  SuperBASIC  commands  and  machine 

code  extensions.  co 

3        Global  variables  -  those  few 
required  to  be  used  generally  throughout 
III  program  -  should  have  meaningful 

SESf ^ter^ince^ 
their  role  should  be  easy  to  discern^ 
As  well  as  variables  defined  as  LOCAL, 
^inctudes  formal  triable  names  from 

the  DEFinition  line.  5ac*  ?R°~n™ined 
should  be  as  general  and  self-contained 
as  possible  making  it  easy  to  reuse  m 

other  programs.  ciear 
4        I  also  like  to  have  a  clear 
demarcation  between  PROC/FNs,   and  put 
lleZ  names  in  a  prominent  place  to  make 
it  easy  to  find  them  in  the  listing. 

Although  I  have  largely  evolved 
these  rules  myself  they  are  similar  to 
the  way  'C  programmers  work  and  MiKe 
Lloyd  in  QL  World  recommends  something 

Rewriting  our  program  according  to 
Clase's  rules  we  have: 

100  nm$  =  "Prt_dirl" 

lli  REMark  hoc  1990.11.03    Ver  0.1 

120  Set.up:  Main:  Finish.  STOP 


130  REMark  Set  up 

140  DEFine  PROCedure  &e^_uP 
150  OPEN*3,serl 
160      dev$="f lpl-' 

170  END  DEFine   

180  REMark  ~~  '  Main 

190  DEFine  PROCedure 
200      LOCal  lp 
210      REPeat  lp 
220  DIR*3,dev$ 

230         PRINTS,  "More?"        m  f,._VTTlo 
240         IF  NOT  INKEY$(-D==  y  -EXIT  lp 
250  PRINT83 
260      END  REPeat  lp 

270  END  DEFine  

280  REMark  Finish 

290  DEFine  PROCedure 

500      PRINTS,  CHR$(  12):  CLOSED 

310  END  DEFine 

Great!  We  now  have  22  lines  where  we 
had  7  doing  exactly  the  same  oob!  But 
to  me  it  is  a  working  skeleton  ™*  u 
can  flesh  out  into  a  much  severs  ^ 

5°2S-.t.5£-rin  turn  -^cal'to 
can  be  improved  replace  it  with  a  can 

PROC/FNs  added. 

Actually  I  have  *lr«ady  *^ed  " 
slightly  by  introducing  the  Slo?*1 
variable  dev$.      This  is  assigned  the 
value  'flpl  '   in  Set.up,  and  it  is  the 
Arsl  statement  I  want  ^  expand^  There 
Is  also  a  programming  variable  Mj* ich 
contains  the  name  and  current  version  oi 
the  program  to  make  it  easy  to  save  tn 
various  versions  as  I  go  along .      i  » 
an  ALTKEY  definition  mailable  from 
toolkit  II.  but  if  you  ^on  t  have  i t  yo 
can  add  a  PROCedure  such  as  the  allowing 
(adapted  to  your  own  favorite  device) . 

SeUf'mdvl.'fcnmS:  SAVE  '-dvl_'taS 

Enter  sv  at  the  keyboard  to  save  the 
current  version.       This  can  °e  " 
from  the  final  version  of  the  program. 

2iJiult    but  gave  you  the  option  to 
change  it?      We  should  also  include  code 
foTh^only  «^£^Ti5SB'" 
SSSli-  TpROC^ure,   since  we  .want  it 
to  come  up  with  a  device  name  or  return 
a  string  value"  in  computerese. 

From  now  on  I  shall  not  reprint  the 
entire  program  each  time,  but  just  the 
tines  thafhave  to  be  altered  and  the 
aditional  PROC/FNs. 

For  obvious  reasons  I've  decided  to 
caU°theb?uSction  Get.DevS  (it  has  to  end 
in  $  since  it  returns  a  string.)  My 
original  idea  was  to  insert  a  call  to 
Get  dSv$  at  line  160,  but  this  fixes  the 
device  for  the  duration  of  the  Program 
pu£?ng  it  into  the  Main  loop  means  that 
you  can  get  directories  *~  *if£££5ore 
devices  in  the  same  run.       I  ^e.?l%\i°Te 
put  it  in  line  210,   as  part  of  the  DIB 
statement.       This  means  that  each  time 
this  line  is  reached  you  are  asked  the 
name  of  the  device.       This  works  because 
Get  Dev$  is  a  string  FuNction  and  can  be 
uled  anywhere  that  a  statement  expects 
string        Get_Dev$  expects  one  parameter, 
S  name  of  the  default  device,  which  is 
defined  in  line  160.       So  change  line  210 

210  DIR**3,Get_Dev$(dev$) 

and  add  these  two  FuNctions  to  the  end  of 
your  listing: 


320  REMark 
330  DEFine  FuNction 

340  LOCal  dv$,k$,  j$,lP  <?■■ 
350  CLS:  PRINT"Directory  of  ,df$, 
360  PRINT  "Enter,   or  type  new  name. 
370  REPeat  lp 
380  k$=INKEY$(-l) 
390      IF  k$=CHR$(10) 
400  dv$=df$ 

$20      ELPRINT  k$;:   INPUT  j$:  dv$=k$&j$ 
430      END  IF 

440      IF  True_dev(dv$) :  EXIT  lp 

450      BEEP  3000,25:      REMark  bad  name. 

460  END  REPeat  lp 

470  RETurn  dv$: ^ END ^DEFine  

500  REMark  _  a—ia*\ 

510  DEFine  FuNction  True_dev(d$) 

520  LOCal  l%,n$,P$,ok%:  ok%=0 

530  P$="mdv/flp/fdk/ram/hdk 

535  n$="12345678" 

540  l%=LEN(d$)  m 

550  IF  1%=4:  d$=d$&  _  :  l*-5 

560  IF  156=5 

570      IF  d$(l  TO  3)INSTR(P$)  ., 

580         IF  d$( 4 ) INSTR  n$  AND  d$(5>="_ 

590  ok%=l 

600  END  IF:  END  IF:  END  IF 

610  RETurn  ok%:  END  DEFine 

One  parameter,  dev$,   is  passed  to 
the  FuNction  Get_dev$.  M^™^1™*  m 
brackets  for  a  FuNction,  but  not  for  a 
PROCedure!    This  is  received  by  the 
FuNction  as  df$  (the  default) ,  df$  is 
used  as  an  alias  for  dev$  within  the 
function.       The  advantage  of  this  is  that 
you  could  use  the  same  FuNction  for 
programs  using  more  than  one  device  e.g. 
a  file  copying  program.      NOTE  any 
changes  made  to  df$  within  the  FuNction 
will  actually  happen  to  dev$  -  although 
nothing  can  happen  to  it  here. 

Get_Dev$  first  prints  the  default 
(350)  and  then  examines  the  next 
character  typea  <k$).      If  this  is 


<ENTER>  then  dv$  is  given  the  name  of  the 
default  (390,400)  otherwise  k$  becomes 
the  first  letter  of  the  name,  and  the 
rest  is  added  to  it  and  assigned  to  dv$ 
(420)        Either  way  you  can  only  get  out 
of  the  loop  UP)  if  dv*  is  .  Proper 
device  name  (440).       ir  1X/  1  ai  \ 
Ten  you  get  a  raspberry  and  another  go 
(450,460).       Finally  dv$    s  the  value 
RETurned  by  the  FuNction  (470). 

True  dev  is  another  FuNction  which 
checks  the  device  name  and  returns  the 
value  1  (=true)  or  0  <=false)  The 
condition  which  follows  an  IFf^se^ayS 
evaluated  by  QDOS  as  true  or  false  in 
i-hi«?  wav        (Try  PBINT  2+2=4  and  PKl"^ . 
2+2=5  Erectly  from  the  keyboard.  )  This 
function  first  adds  the  trailing 
underscore  if  only  four  characters  are 
present  (550).      Then,  only  if  the  name 
has  five  characters,   it  checks  that  the 
first  three  form  an  acceptable  dev ice 
name,   that  the  device  number  is  in  the 
range  1-8.  and  that  th%u^"s°^e  13 
present  by  a  sequence  of  long  IFs 
(570-610).       You  cannot  do  it  allin  one 
go.   linking  the  conditions  with 

because  of  a  bug  in  SuPerB^n  * Vf alse 
stop  checking  as  soon  as  it  fl*df*  *alse 
condition,  but  it  actually  goes  onto 
check  them  all.     So,  for  example,   if  dS 
had  only  two  characters  an  error  would  be 
found  when  it  tried  to  check  the 
characters  beyond  2.     Putting  them  in  a 
cascade  avoids  this  Problem,  each 
condition  is  only  evaluated  if  the 
previous  ones  are  true. 

That  is  more  than  I  intended  for  one 
episode       Next  time  we  will  look  at  how 
to  save  paper.      The  program  as  written 
Us^nhe  Sames  in  a  single  column  down 
the  left  side  of  the  paper,   it  would  be 
much  more  efficient  if  we  could  use  three 
or  four  columns.       It  would  also  be  nice 
to  have  the  option  of  Pitting  ^em  into 
alphabetical  order       You  might  like  to 
think  about  how  to  do  this  -  hint,  it 
involves  OPEN_NEWing  a  temporary  file. 

This  month's  assignment  is  to  see  if 
you  can  modify  line  210  so  that  the 
default  is  whatever  device  the  program 
use5  last,  rather  than  always  reverting 
to  the  original  one  from  line  160.  It 
only  requires  a  small  change. 

In  the  meantime  I'd  be  happy  to  hear 
from  anyone  with  comments,  suggestions  or 
requests  for  more  information. 

Howard  Clase,  Tel  (709)  753-6415 

Box  9947,  Station  B, 

St  John's,  Nfld 

Canada,  A1A  4L4  (£>  »w 

email:  hclasedkean. ucs.  mun. ca 



TtTi  TTnW1ES 

by  Hugh  H  Howie 

At  the  November  meeting  I  tried  to  give 
a  demo  and  it  was  a  total  flop. 

A  number  of  times  we  have  had 
with  QL  crashes  and  corrupted  HDV  s  at 
those  meetings,  so  this  time  I  took 
along  some  disks,  including  one  drive 
which  I  purchased  on  my  way  to  the 
meeting,  hoping  that  everything  would 
be  OK.  Boy,  was  I  ever  wrong. 

Set  up  the  units,  and  could  not  get  a 
DIE,  or  a  WSTAT.  One  disk  gave  a  DIR 
but  would  not  load,  just  'Not  Found  . 
Even  the  new  disk  drive  was  no  good. 
Eventually  gave  up  in  disgust. 

Got  home  and  spent  a  while  connecting 
everything  up  on  my  own  system,  and 
everything  was  in  good  order  except  for 
the  disks  which  were  corrupted  at  the 
meeting.  Even  the  new  drive  was  good. 

By  the  way,  these  drives  are  new  3  1/2 
NEC  (uncased)  and  sell  for  $39.95,  with 
a  30  warranty.  Lovely  little  jobs,  and 
quiet  as  can  be.  Sold  by  one  of  the 
surplus  stores.  So  take  a  look  at  those 
stores  in  your  own  area.  I  now  have 
two,  and  they  are  good.  Other  members 
also  have  purchased  them.  But  I  am  off 
the  topic. 

I  wrote  to  Dan  Elliott  to  see  what  he 
had  to  say,  and  his  reply  was  that 
there  was  possibly  a  power  dip  in  the 
supply.  Now  this  is  quite  possible  as 
our  meetings  are  held  in  a  Collegiate, 
where  the  custodians  are  using  large 
floor  polishers  in  the  evenings,  and  I 
wonder  if  this  is  the  source  of  our 

The  answer  was  to  install  a  Coleco  Adam 
Power  Supply.  This  would  cost  $50  plus 
P&P  from  Dan. 

So  there  you  are.  If  you  are  having 
strange  crashes  and  corruption,  then  it 
may  be  the  power  supply  and  not  the  QL. 
I  don't  know  if  I  will  have  the  job 
done  as  I  have  no  problems  at  home. 
Just  at  the  club.  888 

1  A  &  J  Micro  Drive  * 

w/15  cartr idges  in  original  box. 
1   TS2050  Modem     I  ike  new 

in  original  box 
1   TS20U0  Printer,    in  original  box  $25 

Assorted  software  for  2068  and  "00  **2  ea. 
New,    in  boxes  (send  for  list  of  titles) 

Willing  to  trade,   also.   Looking  for  Larken 
RAMdisk  or  a  51 2K  RAMpack  for  the  QL. 

write  to: 

Rick  Burt,  RR  #5  Gr.  Box  157 
Belleville,  Ont . ,   CANADA  K8N  J£5 


Command  cartridges  for  the  TS206B 
if  you  have  some,   drop  a  line  to: 
Frank  Capell,     5U28  west  Schubert 
Chicago,    JL  60639 
Or  phone  312  7U5  1817 

(no  collect  calls  please!) 


One  of  our  members,  Phillip  Joe,    is  looking 
for  a  couple  of  books.    If  anyone  can  give 
leads  on  where  to  locate  them,   he  "<>uld 
appreciate  it.  Maybe  someone  ' 
source   in  England  where  he  could  write,  for 

T SPECTRUM  IaVgAMING  by  Owen  Bishop  and  Audrey 

Mike  Rose,   Pub.  Interface 

Phillip  Joe,  800  Bowie  Lane,  Miss.  38930 

Or  you  can  drop  me  a  I  ine,  and  I  can  forward 
it  to  Phi  1 1 ip.GFC. 



tjTtlitY     TO     P-R  INT     OUT     THHZ  CATALOG 
OF     A     LARKEN  DISK! 

5  REM  This  program  is  based     on  ^rK  by  a  ano 
ther  Programmer.   This  version  is  by  Thorn as 

Skapinski  7  Atkinson  LN,   toram,    - f  .1/^7-3004  u 
S  A.  10/07/cK) 
10  CLS    :   RANDOMIZE  USR   100:   OPEN  *4,"DD":  REM 

opens  Larken  Disk  Drive 

15  OUT  127,15:   REM  SPACE  . 

20  RANDOMIZE  USR  100:  OPEN  #2,"lp":  REM  send  l 
nformation  to  printer  instead  of  screen 

25  OUT  127,27:  OUT  127,51:  OUT  127.15:  OUT  127 
,15:   OUT  127,27:   OUT   127,83:   OUT  127,48: 


30  INPUT  "DRIVE?  (0-3D   ";DRV:   RANDOMIZE  USR  10 

0:   GO  TO  DRV  ^,  ,„n 

35  INPUT  AT  1,0;  ("DRIVE  #  ";DRV;"  SELECTED"  "'D 
ISK  Nm/#     ");  LINE  A$ :    INPUT  "DATE  Cmm/dd/yy)  ? 
;  LINE  b$ 

40  RANDOMIZE  USR  100:   CAT  "", 

50  PRINT    '"DISK  " ; a$ , "DATE  " ; b$  "  " 

55  RANDOMIZE  USR  100:   CLOSE  #2 

60  INPUT  "1=  MORE  0=MENU  ";m 

65  IF  m  THEN    CLS   :   GO  TO  15 

70  RANDOMIZE  USR   100:    NEW   :  REM 

starts  a  program  called  Autostart  in  my  case 
a  LOader  program 

75  STOP 

100  RANDOMIZE  USR  100:    SAVE  "CATCP2.  BL "  LINE  1: 
REM  disk  save  self  start  at  LINE  i 


Ottk  Nin  : 

ratrnv  Si        OO 1   au t k I b  .  B 1  001    r»«a'«r.Bl  002 

hSiSSri  001    dtiw-S:".  001    AUTOSTART  002 

FORMAT  .88       010  Meo*..Cl  001  °° 

FORMAT. BL       001   My.d.r.BA  001  M.jd.r.CO  001 

FOUNT*. BL       001   CATCP2.BL  001  L18T.BL  OOl 

Track/814*  040/002 
Total   Files  OlS 
Frtt  Blocks  OS3 

01SK  UTILITY  OATE  10/07/90 

NOTE:  As  you  can  see  this  program  will  produce  a  miniature 
list  of  the  catalog. . .  This  mini  list  can  be  taped  on  to  the  Disk 
or  to  the  Jacket  of  included  with  the  disk  in  it  's  sleeve. 

I  hope  you  like  the  program.    You  may  wish  to  use  this  printer 
set  up  for  other  purposes  of  your  own  creation.   If  you  come  up 
with  anything  you  would  like  zo  share  with  others  please  do  so. 
And  send  me  a  copy  too. 

Keep  computing ! 



S  VrTNT  %T   ttWSV^lKis^hyVtV 'to  CONTINUE' 

I  Cts":  %*1NT  AT  S.Or        RETURN   to   MENU    ?    <YW  "  1 

■    **:-y    THEN     00    TO   9S  y  Atkinm0n  LA 

tO  REM  bv    rhoma ■  ****//'■*  i  11/11/90 

Coram  NY   11727-300*  U.S.A. 
20  REM  For  LARKEN  Diuk  ^J***  0N   te   romuma  normal  print 

ff»^^r»^»  Mtttf'i  —  • 

?r  PAUSE  3 SO:  CLS 
iO   S TOP 

35  RANDOMIZE  USR   100:   NEV  .t1UVb.   b2-   LINE  1 


I  IS  £  %W^S*™&*  CONTINUE" 

I  CLS'"  PRINT  AT  5,0;"      RETURN  to  MENU  ?  CT/NV:   INPUT  a* :  I 

F  a$="Y"  THEN    GO  TO  95  i  +  ,ire.on  LA 

10  REM  by  Thomas  Skapinski  7  Atkinson  LA 

Coram  NY  11727-3004  U.S.A. 
20  REM  For  LARKEN  Disk  System  t  size 

30  REM  Turn  P^terOFF  then  rem  opens  channel  for  larg 

40  RANDOMIZE  USR  100:   OPEN  #3,  lp   ■   KtM  opens* 

e  printer 

50  REM  _     97  0UT  127,15:   OUT  127,27: 

g70  CLS  :  PRINT  AT  18,  1: "Now  evrything  « 11  print  out  tiny 
VpRInT  fTa^"*** PRINT^?**  ?URNEDr0N*«":   FLASH  0 

72  PAUSE  350:  CLS 

90  STOP 

95  RANDOMIZE  USR  100:  NEW 
110  RANDOMIZE  USR  100:    SAVE  "TINYpr . B2     LINE  1 

Note  by  Geo  Chambers  #  m 

Tom  does  not  mention  which  printer 
he   is  using.  Printers  vary  in  the 
codes  they  require  to  perform  print 
functions.    You  may  need  to  check  you 
printer  manual,    if  Tom's  listing  does 
not  work  for  you. 

Also,   sometimes  the  computer  puts 
out  the  printer  codes  faster  than  the 
printer  can  act  upon  them.    The  GOSUB 
and  LOOP  at  line  1000  cause  the 
program  to  wait  until  the  printer 
indicates  it   is  ready.    You  may  need  to 
check  the  "printer  ready"  response  of 
your  printer.   Use  a  loop  such  as  "  10 
PRINT  OUT  127:  PAUSE  0:GOTO  10".  With 
you  printer  turned  on  and  ready  to  go, 
the  number  appearing  onscreen  is  the 
number  to  put   into  LINE  1000.    In  my 
case  it  was  108. 

50  REM 

60  OUT  127,15:  GO  SUB  1000:  0 
UT  127,27:  GO  SUB  1000:  OUT  127, 
65:  GO  SUB  1000:  OUT  127,8:  GO  S 
UB   1000:  REM 

This  worked  on  an  SCM  FASTEXT  80 
Printer        ****AERCO  COMPATIBLE 

WOO   IF  IN  127<>108  THEN     GO  TO 

1010  RETURN 



/  (LATEST) 


by  Hugh  Howie 

Whyizzit  that  the  mere  fact  of  writing 
about  something  clears  a  whole  lot  of 
cobwebs  away?  Whyizzit  when  you  talk  to 
a  friend  about  your  latest  problem  it 
never  seems  to  be  quite  the  same,  never 
as  bad  as  you  at  first  thought?  Even  if 
your  friend  had  nothing  to  say  to  help 
you,  he  at  least  listened  and  that  was 
all  that  was  needed  to  help  come  to 
terms  with  your  problem. 

In  the  Nov/Dec  issue  of  Sinkjiink  I  gave 
my  review  of  text"",  and  after  I  sent 
it  in,  I  realised  that  a  lot  of  my  mis- 
givings about  this  programme  had 
vanished.  I  progressed  so  much  faster 
after  writing  about  it. 

I  was  speaking  to  a  number  of  QL'ers 
recently,  nd  the  subject  of  text*"' 
came  up,  and  also  of  what  I  said  about 
it,  and  I  had  to  admit  in  retrospect 
that  my  review  was  somewhat  lacking  in 
enthusiasm.  At  the  time  when  these 
conversations  were  being  conversed, 
(hur-umph)  I  had  already  forgotten  most 
of  my  problems.  I  had  progressed  to 
greater  things  within  the  programme,  and 
had  improved  my  knowledge  considerably. 

Take  for  example  where  you  have  a  long 
document  to  print  out,  and  you  would 
like  to  do  it  on  both  sides  of  the  sheet 
of  paper.  tast"7  has  no  problem  with 
this,  a  coapie  of  key  presses  and  off 
you  go.  I  had  to  print  out  a  document 
about  50  pages  long,  so  all  I  did  was 
set  text07  to  do  the  odd  number  pages, 
flip  the  paper  over  when  they  were 
finished,  and  do  the  even  numbers.  Easy 
as  pie.  Had  a  coffee  while  I  watched  the 
magic  at  work. 

You  wish  to  print  out  a  given  page?  No 
problem.  You  don't  like  the  type  used  on 
the  printed  page,  OK  so  change  it,  just 
like  that. 

I  have  been  reading  a  lot  of  reviews  of 
this  program  as  they  appeared  in  various 

publications,  and  in  each  case  the 
learning  period  was  in  the  region  of  a 
couple  of  months  depending  on  the 
intellectual  powers  of  the  user,  I  guess 
that  is  why  my  own  learning  period  was  a 
bit  longer  than  norm.  But  then  text1"' 
is  so  much  more  powerful  than  many  other 
word  processors. 

Will  I  go  back  to  Quill?  I  don't  think 
so,  I  see  no  reason  why  I  should.  The 
versatility  is  so  great  I  could  not  hope 
to  cover  all  the  advantages  in  this 
short  note.  At  one  time  I  would,  and 
did,  say  it  was  only  for  someone  whp  did 
a  lot  of  writing,  but  after  taking  some 
documentation  from  the  larger  commercial 
programmes,  importing  it  to  text""7',  and 
finding  it  came  across  with  the  merest 
adjustment  to  the  ruler  I  was  using,  and 
getting  an  excellent  hard  copy,  I  have 
changed  my  opinion.  Quill  or  ASCII  files 
are  treated  the  same.  You  can  import 
just  about  anything  into  it,  and  it  will 
be  accepted;  and  you  do  NOT  have  to  make 
an  export  file  to  do  it. 

Oh!  Did  I  mention  that  CTRL-C  puts  you 
back  into  S/Basic,  and  the  same  command 
returns  you  to  text*9"7*? 

I  Love  It! 


After  I  wrote  the  above,   I  realised  I 
had  a  few  lines  left  on  the  page,  so  I 
wrote   this   under   another  title,  and 
merged  it  with  the  original.  So  handy. 

One  thing  I  failed  to  .mention,  I  think, 
was  that  in  text*"',  you  are  not 
restricted  to  eight  characters  in  a 
file.  And  what  is  more,  I  think  you  can 
use  just  about  anything  on  the  keyboard 
in  the  title.  Now  does  that  not  make  it 
easier  to  keep  track  of  your  documents? 

I  have  even  saved  a  file  by  the  title  of 
**/?_&%  and  loaded  it  back  in.  Now 
try  that  in  Quill! 

You  are  not  happy  how  it  looks  after  you 
change  the  format  or  type?  OR  to  just 
REFORMAT  the  document.  Hey  man  I'm  in  a 
rut,  I  just  like  to  use  it.  Gotta  go. 




Re:  Mult ipl /cation  programs  from  last  month 

One  of  our  members,  Steven  Gunhouse *  tlVTasT^Ul 
oart,    is  a  follow-up  to  two  ^r7^e  ret/pel   it  because  of  faint 

newsletter   issue.   Excuse  my  red  face.,    (i   nave  retyp 

pr int i  ng.   GFC.  ) 

^  t.^no  n  +  he>r  errors   in  your  "Multiplication 


785   IF  A(1)<>0  THEN  PRINT  A( 1 ) ; 

fhp  ftrst  diQit  of  something   like  99*99  won't  be  printed.  One 
Otherwise,   the  first  aigiz  u,^  »  f  f^ose 

h/7<?  in  £>e  auite  so  slow.   Since  you 

ss'SJrw:.:™  r-is.-ffirs.Er  riss  .... 

/f f icult. 

*  ■   ■        i  w;w  „r;te  suc/i  a  routine,    including  the  correct 
As  a  mathematician.    I  d  id  wr ite  such  a  ,  ^     Qftj  antf 

output,  «*out  2  y««  «    .    '"^a'nlut  precision.   The  computer  has  about  9 
formally,    it  is  not  real '/  afuracy    digits  of  accuracy  requires  knowing 

doesn't  have  that  luxury.) 

About  the  Russian  Peasant  Mul  tiplicat  *»  %  ^/ZTent' tl 

same  way  that  a  computer  would  lJn°0%  "«on  it  is  slow  is 

ZlalTiZT  fn°^^^^ 

i^S^^r^'^^TO  raring  VALs  and  the 
output  routine  make. 

nmri  to  see  all  of  the  charting  stuff  as  well.   Of  course,    if  you 
are  latin  'f  0^°'^°  screen,  ^or^t  ^o  ^"^Ym^. 
pattern.  With  the  examples  used,   this  would  not  be 

/  looked  oVer  Sob's  article  as  weU     'f^J  '"'/Semark' ' /onJernfng 
EPROM),    it  doesn't  matter  much.    I       surPr lsed  ab  °f  something  specific 

LPR1NT  CHR$  12,   as  1  don't  need  a, 1  extra  LPRINT. ■    '*  *         anything  like  that 

t0  V3',0r  VisidTFZtextaO    so    "tend  t'o  be,  i  eve  it   is  one  of  the  first 
back  when  I  used  a  Fastexr  aus ,  extra  pitches  - 

two.    I  also  note  that  my  curren *  nm  surprised  he  didn't  test  out 

semicondensed  and  sem ,  condensed  *^ngate^.     /  ^r//ne.    /  suppose  his  main 

5  REM  Mult i pi  icat ion  Precisio 
n   in  u  digit  blocks 

7  PRINT  AT  1 ,3; "Precis  ion  Mul 

t i pi  icat ion" ' ' 

8  PRINT  TAB  6; "by  Steven  Gunh 


7  0  INPUT  "First  Number?"  a$ 
7  5  LET  a$="  "+a$ 
76  REM  the  extra  spaces  are  ne 
cessary  in  case  there  would  be  < 
u  digits  in  the  first  block 
20  INPUT  "Second  Number? "' b$ 
25  LET  b$="       "  +  *>$ 
30  LET  a=  INT  ( LEN  a$/U) 
35  LET  b=  INT  (LEN  b$  /  U-  ) 
U0  DIM  a( a) 

a$  TO  U  STEP  -u 
(  i/U  )  )  =  VAL  a$(  i-3 

U5  DIM  b( b) 
50  FOR  i=LEN 
55  LET  a( INT 
TO  i) 
60  NEXT  i 

70  FOR    i=LEN  b$  TO  U  STEP  -U 
75  LET  b( INT  (  i/U))=VAL  b$( i-3 

TO  i) 

80  NEXT  i 

90  DIM  c( a+b ) 
7  00  FOR   i=a  TO  1   STEP  -1 
105  LET  t1=0 

110  FOR  j=b  TO  1   STEP  -1  , 
7/5  LET  c(  i+j)=t1+c( i+j)+a( ' )** 

(J120  LET  t1  =  INT  (c(i+j)/1e«) 
125  LET  c( i+j)=c( i*j)-t1*lBU 
130  NEXT  j 
7  40  LET  c(  i  )=t1 
150  NEXT  i 

200  PRINT  a$(U  TO  );"x»;b$(U 

205  LET   i=1  . 

210  IF  c(D=0  THEN     LET  1=2 

215  PRINT  c(  i ); 

220  FOR  T0  a+b 

225  LET  t$=STR$  c(  J ) 

230  PRINT  (»000"+t$)(LEN  t$  TO 

)!235  REM  Must  add  extra  zeros 

t$  is  too  smal  I  (<W00) 

2H-0  NEXT  j 

250  PRINT  '"Done." 

Q90  INPUT  "Another  Number? 
.  y$s«Y»  OR  y$="y"  THEN 

0  1 

9lll  RANDOMIZE  USR  100:  SAVE 
It.BU"  LINE  1 




GO  T 




An  Ex per imental  Project 
by  Wes  Brzozowsk  i 

Here's  a  nice  little  project  you  can 
JZZ  and  get  '"^J/J^S 
nours.  orj^;$^:Jlw«t«*  <<  to 
as  you  "^'"f^J  demands.      This  light 
suit  your  particular  Dort.   and  is 

pen  pluos  into  the  joystick  port 
so  simple  that  you'll  spend 
putting  tooether  the  joystick  connector 
than  you  will   wiring  things  up. 

Refore  describing  the  light  pen,  we 

screen,  drawing  ind, v/<W 
eventually  making  a  WP<i  •  {'  J"' 
Because  our  eyes  tend  to Jsee teen 
brightness  of  the  spot  after  it  has  oet 
m0ved  elsewhere,  we  perceive  ^nse?*// 
Bat   if  our  eyes  had  a  faster  re  P 
we'd  see  would  be  a  moving  dot,  and  iv 
displays  as  we  know  them  would  be 

s/)Ou/tf  read  Computer  inter ru ptus, 
part  7,  Sincus  news  Jul/Aug  1986). 

Finding  the  horizontal  position  is  a 
r/nu#ny   *  n'Ktromcs  light 

tit  -or.  Thd'Js  tnis  Py  putting 

pen  for  ,°  on  tne  tne  proper 

:Jrt?cV%s%?o"  7^  elapsing  it 

l^'lgaUn^^  hn\\™> 
Jungie-.fSinous  «.«.  ««y/^«  '»86'- 

;f  «u  .re  starting  to  suspect  ««* 

fades.  a;+nmr  of  the  two  light 

"!  °nyitTin  Figure send  a  low  signal 
pen  circuits  in  F'^re  „     •„  wnen 

to  the  joyst ,ck  'FIRE  tut  to  fP      ^  ( 

l.JLt ics  .ill  accomodate  tne  many 
Tr'erent  types  of  ppototrans , stars 
avai I  able. 

wnat's  a  phototransistor?  Basically, 
What  s  a  v"v  switches  on  when 

it,s  a  transistor  that  s"'xcn  f elm  leal 

"'ght  iSn  Transit  tors  essentially  start 
ITc's  phU^VsVstors.  Photons  of  the 


.roper  ^X'IS/JX'IZ.'m. 
tne  oase  region  from  tne  *<"•"",  sueBOrt 

n  matal  can  or  black  epoxy  hides  this 
fac\ \    Phototransistors  may  have  design 
tweaks  to  optimise  their  sensitivity,  but 
we  can  think  of  them  as  ordinary 
transistors  in  a  clear  epoxy  package. 

Because  we  often  only  turn  the 
transistor  on  with  light,   some  transistors 
only  have  two  wires,   the  collector  and  the 
emitter.  Others  have  the  third  ''base"  lead 
connected  so  that  the  transistor  can  also 
be  biased  into  it's  linear  region,  if 
desired.  But  you'll  find  no  biases  nere. 
Bucko!   if  you've  that  third  lead,  you  can 

tape  o*'r  it,   or  cut  it  off,  or  whatever, 

'cause  you  don't  need  it. 

For  ordinary  silicon,   the  energy 
difference  between  the  valence  and 
conduction  bands  is  egual  to  the  energy  of 
a  photon  in  the  infra-red  region  of  the 
spectrum,  so  phototransistors  are  usually 
m0st  sensitive  to  this,   as  t0° 
bad,   because  the  glass  m  your  picture 
tube  filters  most  of  the  stuff  out, 
letting  onlv  xne  visible  light  pass.  This 
is  why  there  are  two  light  pen 
schemat ics. 

The  Type  I  schematic  is  what  y°«'" 
probably  want  if  you're  lucky  enough  to 
scrounge  up  a  phototransist or  th at  s 
optimized  for  visible  light.  The  Type  z 
schematic  is  for  infra-red  ^ansiMtors.  It 
adds  a  transistor  to  increase  th&  tPZ  ,mOSt 
overall  sensitivity,  and  it  does  it  almost 
too  well.     With  this  type  circuit, 
aginary  room  ing  affects  my 

prototype  in  an  unusual  way.   The  m,n,scu,e 
nmnlnt  of  light  that  leaks  through  the 
'plastic  pen 'lase  causes  ^Isereadihgs.  I 
hnc,  to  cover  the  whole  pen  with  black 
electrical  tape  to  keep  the  thing  from 
going  bonkers. 

The  pen  should  be  wide  enough  that the 

I'JllUZ  i.V,re-r.a'eo^r 

l-loHro-tr  is"  r,, 
if  you  have  to  tape  over  the  pen  to  keep 
the  light  out,   the  Picture  tube, which 
seems  brighter,  really  isn't    Si  nee  we 
can't  see  in  the  infra-red  band,  this 
isn't  at  all  obvious  to  us. 

It'll  take  a  bit  of  work  to  make  the 
rnnnictor  to  plug  into  the  joystick  port. 
Tt  turns  out  the* connector  is  recessed  too 
far  into  the  2068  for  a  standard  9-pm  D 
connector  to  fit.   The  plastic  insert 
inside  the  D  connector  will  flt  f,ne*  buX 
it'll  go  in  so  far  that  there'll  be 
nnthino  left  to  grip  to  pull  it  out. 
"Vgure  2  show*  a9 reasonable  way  to  solve 
this  problem.  Make  sure  your  is 
correct  before  you  apply  the  epoxy, 
there'll  be  no  second  chance, 
incidentally,  you  can  eas  J  V^' 

for  the  epoxy  extension  out  of  ?*u°pna™. 
tape.  Just  wrap  it  around  an<* 
make  sure  it's  on  tight  with  no  holes 
before  you  pour  the  epoxy  m. 

When  the  pen  is  finished,  plug  it  into 
the  left  port  and  type  m  Listing  1.  When 


snouid  beep  I ike 
ight  pen   is  pointed 
You  may  get   it  to 
the  I  ight  pen 
,   out  BASIC   is  too 
rly;  and   it  seems  to 

synchron ize 
eo,  making  only  some 
screen  usable.   To  use 
screen,   use  Listing 

running,  the  computer 
crazy,  whenever  the  I 
at  a  lamp  or  the  sun. 
beep  a  bit  by  holding 
against  the  TV  screen 
slow  to  do  this  prope 
have  some  tenaency  to 
improper  I y  to  the  via 
small  portion  of  the 
the  I  ight  pen  on  the 

The  program  will  move  an  asterisk  in 
the  left  hano  column  to  whatever  vertical 
position  the  pen  is  at,   on  the  screen.  It 
will  also  plot  pixels  at  the  proper 
vertical  position,  and  print  the  pen  s 
distance  from  the  top  of  the  screen.  The 
small  machine  code  portion  uses  the  HALT 
instruct  ion  to  synchronize  us  to  the 
video,  and  then  updates  a  counter  until 
the  light  pen  sees  the  spot.   This  is  a 
measure  of  the  pen's  distance  from  the  top 
of  the  screen,   and  is  returned  to  the 
BASIC  program. 

Line  60  of  the  BASIC  program  converts 
this  to  a  pixel  distance;  by  subtracting 
180,   we  remove  the  approximate  number  of 
counts  that  occurred  in  the  top  border 
area  and  above,   before  the  spot  got  into 
the  active  part  of  the  screen.   By  div id ing 
by  5,   we  can  account  for  the  fact  that  the 
counter  is  updated  about  5  times  per  video 
line.  Neither  of  these  numbers  ,s 
immutable.    I  worked  them  out  >yjr'a'a.nd 
error,   so  feel  free  to  change  them  a  bit. 
By  the  way,   when  we  add  .5  and  take  the 
INT,  we  really  just  round  down  to  the 
nearest  integer.   This  part  should  not  be 

You  may  have  to  adjust  the  brightness 
and  contrast  on  your  set  to  get  <*ec«ft* 
results.  If  your  set  is  real  old  and  the 
picture  tube  is  shot,  you  may 
portions  of  the  tube  where  the  tight  pen 
will  -at  work  reliably.  There's  not  much 
we  can  do  about  this. 

By  the  way,    if  you  let  the  I ight  pen  go 
off  the  screen  border  area,  or  point  it 
away  from  the  screen  altogether,   you  n 
aet  a  false  reading  for  a  moment, 
"commercial   light  pens  usual  ly  '"''f'  " 
switch  to  tell  the  computer  the  pen  is  at 
1  valid  location.    You  may  wish  \o  'nclude 
something  like  this,  or  change  the  code  so 
that  you  press  a  key  when  you  want  a 

readino  taken.  .  

Vastly,  note  that  you'll  stay  looping 
in  the  machine  code  if  the  pen  never  sees 
any  Tioht,  so  if  you  want  to  BREAK  out  of 
the  program,  make  sure  the  pen  is  pointed 
at  the  screen  or  you'll  be  ignored. 

live  found  this  project  to  be  auite 
fun.    I'd  be  interested  in  hearing  of  your 
improvements  or  problems,   and  help  out #n 
whatever  way  I  can.  Radio  Shack  does  carry 
an  infra-red  phototrans istor;   , f  anyone 
tries  it,   let  us  know  how  it  does. 

The  simplicity  of  the  thing  should  make 
it  particularly  nice  for  club  Pr°J*Gt*' 
Once  we  show  the  software  guys 
nf  the  soldering  iron    to  hold,   they  '' 
oiad  to  go  out  and  whip  up  some  dandy  code 
Vc >  put  this  gadget  through  it's  paces 
until  then,   it's  a  nifty  project  for  all 

Listing  1.    To  debug  Light  Pen 

10  REM        Light  Pen  Tester 

20  BRIGHT  1:  CLS 

30   IF     STICK  (2,1  )=1    THEN  BEE 

P  .04,  1 

*0  GO  TO  30 

Listing  2-    Light  Pen  Demo_ 

2  BORDER  0 

5  BRIGHT  1:  CLS 

10  DATA  62,7,211 ,2*5,62,191,21 
1,2*6,62,  1*,  21  1,2*5 

20  DATA    1,0,0,  118 

30  DATA  62,255,219,2*6,3,25*,  1 
27 ,32,2*7 ,201 

*0  CLEAR  32767 

*5  LET  oldrow=0 

50  FOR  j=32768  TO  32793:  READ 
k:   POKE  j',k:   NEXT  j 

60  LET  line=lNT  (.5+(USR  32768 

-180)/5)  _   , . 

65  IF  Hne>l75  THEN     LET  Hne= 

1  66  IF  line<0  THEN    LET  I  ine~0 
70  LET  row-INT  (line/8) 
80  PRINT  AT  oidrow,0;"  ":  PR  IN 

T  AT  row,0;"*" 

82  PRINT  AT  10,10;  1  me;" 

83  OVER  1:  PLOT  50,  175- tine:  0 

VER  0 

85  LET  oldrow=row 

90  GO  TO  60 

Light  Pen  Schematics 


Retyped  by  G.  Chambers 


f«w«e*.  iU;s  is  »1>Cf,lS;i 

C-t  #f  f  *W€  o«t«*  •>»«U* 

Tl«f/if  "''It f? 

<W  k-tc*,  e*i 
crU«%  J  4  Wc  v«  **"* 

««%  )»if  H  *t 

W  k«]  ^| 

«e*«*4  y'+fk  #f  f. 

I— i 

UM«  .  i  S  A  1 520?  -  Thi  1520  is  a  HI-RES  four 
?o?o? printer/plotter  «*!*  Couodor.  coeputert  capable 
of  printino  rotatable  characters  in  4  differ*  « in  mJ 
able  to  plot  lines  (solid  or  dashed)  «thm  a  480  by  i9m 
step  <0.2  ea/step)  plotting  area.  R*Placetent  pens  J  paper 
areloe  priced  a  can  be  found  at  aost  RADIO  SHACK  stores. 

»nu   AFFORDABLE?  -  The  COWOOORE  serial 
port  eiulator  nardtare  i/r  for  the  TS206B  sells  for  $14.95 
(barebd),  120.95  (coepi.  kit),  I  «0.95  (asset. /tested). 
All  orders  are  shipped  postpaid. 

SOFTWARE?  -  Currently,  there  ire  utilities  for 
rnteractivrand  auto  transfer  of  SCREEN!  to  the  1520,  for 
eakino  banners  k  calendars,  plotting  J»  *r™2i 
I  i  patch  kit  allotinq  CHScript  V5/5.2  files  to  be  printed 
and/or  plotted  on  the  1520.  The  software  is  priced  I  $8.95 
(post  paid)  each  and  cotes  nith  cotplete  user  notes. 

USEB   FRIENDLY?   Y£S  !  !  -  All  P"nt/plot 
directives  are  sent  wi  **BK  -LPRIHT-  statetents.  PLOT  I 
DRAM  cottands  in  existing  BASIC  projrats  can  tt«ly  be 
replaced  nith  corresponding  •LPRIHT"  plotter  equivalents. 

.»*>  See  TIHE  DESIBHS  4/2  I  S.I.H.  5/4  for  reviews.  <==* 
Send  LSASE  for  tore  info./order  fort  and  a  staple  plot  to: 
tee      John  McMichaefl 
tee     1710  Paltiter  Drives 
♦        Laraeaie,  WY  82070 

TTl-i  @     Digit  izer 
A     prob  1  om  F^oT-ind. 
Notes  Fsrom 



By       now     there     are     several     of  yo 
Playing      around    with     the  digitize, 
board.   Some     of     you    have    had  great 
pictures     created  and  some  are  getting 
a  black  scan     after  3     to  7  passes, 
myself     was  getting  a     black  scan  just 
by     bringing  my     hand  NEAR    the  board 
All   is  not     lost.      I     have     found  the 
problem  on  the  board.   Somehow  when  the 
boards      were    made     a     foil     run  wat 
omitted  &  that's  causing  this  problem. 
Please     refer  to  the  schematic  diagrar 
and     note  that     pins  1    &  20    are  BOTI 
tied     to  the  5  volt   line.  On  the  boarc 
a  jumper  on     the     component     side  wat 
omitted.  This  can  easily  be  corrected 
Hold  the     board  in  your    hand  with  the 
component  side  away  from  you  and  refei 
to  the     layout  diagram.    IC6     is  the  IC 
in     the  lower  right  hand  corner  &  pinf 
1  &  20  are  the  pins  at  the  bottom.  Adc 
a     bridge     of     solder     from    the  oper 
bottom    pin  to  the  foil  run  connecting 
the  other     bottom  pin  and    you  are  all 
set.    If     you     have     any     doubts  about 
doing  this 

feel   free     to  return  the     board  to  nr 
«/©  SMUG ,     P.O.     Box     101.  Butler 
53007.   and  I  will   correct  it  for  you. 

I   still     do  not 
worked     at  all. 
in     space  the 
74HCT273  could 

know    why  these  boardi 
With  that  pin  floating 
6     flip-flops     in  th« 
Clear    whenever  the* 

felt  like  it.  Well  I  guess  I'll  set 
some  of  you  at  the  Expo.  Right  now  \ 
am'  going  to  aet  started  on  trying  out 
Jonn  McMichael's  "VIDEOTEX"  progran 
using  the  OKI MATE  20  color  printer  tc 
colorize  some  of  these  pictures  I've 
digitized.         Marty  Miller. 

P.O.  Box  1095 

Peru,  Indiana  46970 



The  C  Page 

By  Timothy  Swenson 

THi*  month's  program  is  a  simple  version  of  the  UNIX 
utility  wc^ord  coun?).  This  program  reads  in  a  text  fx le 
utility    wc    ««  lines,  words,  and  characters, 

and  counts  all  of  the  l^'rograB  is  si(nilar  t    last  ^nth-s 

Tte    section  that  gets    the  file  is    the  same.  The 
program.     The    section  y  whi le 

while  statement  is  the  same.  It  st  .  different.  c  has  a 
statement     that  has  changed  _  Qf  variables. 

May  of  assigning    ™e  :~It      aU  of    the  variables    to  zero. 

Jhl^ay    yoC'do^ot-^vrto    write  three  individual  lines  to 

SBt  e?,l,rrtnbsIngleZquo;es  are  not  taken  as  literals  but 
.  «?£md  to  ASCU  ?\n'  stands  for  newline  and  '\f  stands 
translated  to  about  b  mrE  of  these. 

^  ^oie  ""at  ^Seftne  statements  are  commented  out  In 
the  s?d!o_h  file,  YES  and  NO  are  already  defined.  In  other 
implementations  they  may  not  be;  ^  ^  _ 

Define    ^^nst-nt  defined    with  a  define  statement, 
anycime'ihe  ^ile-U  across  the  constant  it  is  replaced 

"ith  ?:  fheUPrincfbs^t  1  the  Xd  stands  for  a  decimal  C 

j.n     «-••=  h      .     •     ,     value    at     this     point.       The  first 
^iLl-^i",nd-*irth.  statement  goes  in  the  first 

I-.^^hi^.dtrrddte'-thr^-how    the  program 


/*  Program  6  %/ 
^include  <stdio_h> 

/%    tdefine  YES  1 

#d?he^°constants  are  defined  in  stdio.h  for  this 
implementation,   but  may  not  be  for  others 

tin  O  i 
int  c,  fd,  nl,  nw,   nc,  word; 
char  fileC203; 

printf ("Enter  File:  "); 
gets (file) ; 
fd  =  fopen(file,"r">; 
if  (fd        NULL)  i 

printf ("File  Open  Error"); 

abort ( 1 ) ; 


word  =  NO; 

nl  =  nw  ■  nc  =  0; 

while  ((  c  =  getc(fd))    !=  EOF)  i 

if  (  c  -=  '\n') 

if  7cX==  '   '         c  =  '\n'    !!  c  =  '\t') 
word  =  NO; 

else  if  (word  ==  NO)  C 
word  =  YES; 


prlntf^Lines:  Xd    Words:  Xd    Chars:  Xd" ,  nl ,  nw,  nc) ; 



R.  Bruneau 

Happy  New  Year,  everyone!  Was  Santa 
good  to  you  this  year? 

I  thought  that  I  would  start  off  this 
year  with  a  new  format.  What  I  propose 
to  do  on  this  sheet  is  to  print 
information  concerning  all  of  the 
computers  in  our  club  that  has  come  to 
my  attention,  through  other  club 
members  or  the  media.  Hardware  projects 
will  continue  to  be  presented, 
specifically  for  the  ZX81,  but 
compatible  for  the  2068  where  possible. 
When  available,  projects  for  the  QL 
will  also  be  printed. 

I  have  collected  many  articles  for  the 
ZX81  over  the  past  5  or  6  years  and  I 
am  now  collating  them  into  binders.  I 
hope  to  put  an  index  together  and  will 
give  it  to  anyone  who  is  interested. 
Many  of  the  articles  are  hardware 

Remember  Thomas  Woods?  He  used  to  be 
the  publisher  of  SyncWare  News,  an 
excellent  T/S  journal  that  ceased 
publication  a  couple  of  years  ago.  He 
has  written  an  article  in  The  January 
1990  edition  of  PC  HANDS  ON  called 
"Parallel  Printer  Interfaces".  It  is  an 
in-depth  review  of  how  parallel 
interfaces  work.  Programming  examples 
are  given  for  the  IBM  PC,  but  could 
easily  be  adapted  for  a  ZX81  or  2068 
with  a  parallel  port.  At  the  end  of  the 
article,  Woods  suggests  that  you  can 
control  a  variety  of  gadgets  in 
addition  to  a  printer,  and  indeed  that 
is  so,  as  illustrated  in  several  recent 
hardware  projects  to  be  found  in 

Incidently,  check  your  local  library 
for  back  issues  of  magazines  such  as 
(formerly  known  as  HANDS  ON 
These  are  all  published  in  the  States 
and  available  at  most  magazine  shops. 
International  magazines  are  ELECTRONICS 

ELECTRONICS,  and  ELEKTOR  and  these  can 
be  found  or  ordered  through  specialty 
magazine  shops.  Prices  range  from  $3.00 
for  local  magazines  to  $6.00-$10.00  for 
the  international  ones.  Many  of  the 
projects  can  be  adapted  or  used  as 
resource  material  for  ZX81  or  2068  use. 

AS  the  prices  of  PC  'AT's  drop,  more 
and  more  of  the  older,  slower  IBM  type 
» XT's  are  appearing  on  the  market  at 
greatly  reduced  prices.  This  means  that 
many  T/S  users  have  been  and  will  be 
shifting  over  to  that  machine.  For  the 
diehard  T/S  owner  this  is  considered 
blasphemous  and  has  generated  quite  an 
uproar  in  the  past.  Witness  the  letters 
and  calls  to  the  previously  mentioned 
SincWare  News  when  the  editors 
suggested  including  PC  information. 
Many  of  the  newsletters  received  by  our 
club  are  indicating  that  they  will  be 
folding  or  changing  over  to  PC  format. 

Now  that  it  is  winter  and  humidity  has 
dropped,  a  word  of  warning  about  STATIC 
ELECTRICITY.  If  you  notice  that  you  are 
getting  a  lot  of  shocks  from  static 
electricity,  you  should  ground  yourself 
before  turning  on  your  computer.  By 
simply  touching  an  object  that  you  know 
is  grounded  to  the  house  electrical 
system  you  discharge  the  static 
electricity  built  up  in  your  body  and 
avoid  zapping  your  equipment.  It  is 
possible  to  develop  several  thousand 
volts  in  your  body  which  is  quite 
capable  of  destroying  the  chips  in  your 
computer.  In  a  past  newsletter,  Hugh 
Howie,  our  QL  librarian,  described  how 
he  placed  a  metal ic  strip  along  the 
edge  of  his  desk  and  connected  it  to 
the  center  screw  of  a  wall  outlet.  A 
portable  mat  could  be  constructed  using 
cardboard  and  aluminum  foil  bonded  to 
it.  To  provide  a  safe  connection  to 
Ground,  use  a  1  meg  (brown,  black, 
green)  1/4  or  1/2  watt  resister  between 
the  pad  and  Ground. 




Bob  Swoger  and  Larry  Kenny 

The  May  1989  issue  of  Capital 
District  TVS  Computer  Club's 
newsletter  told  of  two  members 
using  TS2068's  with  LarKen  DOS 
having  trouble  reading  each 
other's  disks.  It  seemed  that 
Fred  Lewis  could  read  John 
Warrens  disks  but  John  could 
not  read  Fred's  disks.  This 
sounded  familiar  to  me  as  I 
once  had  trouble  reading  disks 
that  came  from  Rod  Gowen  and 
Larry  Kenny. 

The  problem  I  had  was  head 
stepping  rate.  The  drives  I  use 
have  a  30ms  stepping  rate.  This 
means  that  to  move  from  track  0 
(the  directory  track)  to  track 
40  requires  1.2  seconds.  A  6  ms 
stepping  rate  requires  only 
240ms.  What  the  controller  chip 
does  is  wait  a  period  of  time 
to  begin  reading  or  writing  the 
disk  to  give  the  head  time  to 
get  to  the  desired  track!  The 
information  for  the  stepping 
rate  is  placed  in  track  0  when 
the  disk  is  FORMATed. 

There  is  no  problem  reading  the 
directory  track  because  the 
head  starts  there,  but  the  head 
on  John's  drive  is  not  yet  over 
the  correct  track  when  the 
controller  tries  for  the  read. 
For  this  reason  John  Warren 
could  not  read  Fred  Lewis's 
disks.  Fred  either  has  a  newer 
controller  chip  or  has  drives 
with  a  6  ms  stepping  rate  and 
FORMATed  his  disks  accordingly. 

I  could  not  read  the  SYSTEM 
disk  that  Larry  Kenny  sent  me. 
Larry  had  not  run  into  the 
slower  drives  up  to  that  point. 
Mine  are  DEC  dual  drive  units 
using  TEAC  drives  purchased  in 
the  early  80 *s  as  a  group  buy 
and  are  so  reliable  I  just 
won't  give  them  up. 

Larry  was  sure  he  had  the 
answer  when  I  phoned  him  and  to 
aet  me  started  back  in  February 
of  1988,  he  sent  a  program  to 
the  club  BBS  at  2  AM  while  I 
slept  to  fix  his  disks  so  that 
I  might  read  them.  I  tried  it 
and  it  worked!  I  re-wrote  it 
and  called  it  STEPRT.B1  The 
stepping  rate  information  is  in 
track  Oand  his  program  fixes 
the  disk  to  the  30  ms  stepping 

from  the  Chicago  Area  Timex  UG  n/ I 

Now  about  controller  chips, 
Larry  stated  that  he  started 
using  the  new  Western  Digital 
chips  that  could  only  select 
6  ms  or  faster  head  stepping 
mechanisms.  I  told  him,  each 
time  I  ordered,  to  send  me  only 
the  old  WDC  WD1770  controller 
chip  in  units  he  built  for  me 
and  my  friends  as  over  200  of 
these  TEAC  units  are  in  the 
area  and  we  all  want  to  be 
compatible . 

When  passing  around  disks  for 
the  LarKen  disk  operating 
system  be  sure  they  are 
formatted  single  side  40  track 
with  a  30  ms  head  stepping  rate 
so  we  all  can  read  them. 

To  read  unreadable  disks,  just 
load  in  the  program  below,  it 
will  autorun.  After  removing 
the  write  protect  label  from 
the  faulty  disk,  place  it  into 
DRIVE  0  and  press  <ENTER>.  You 
will  be  able  to  read  it  from 
then  on.  I  have  tested  it  on 
LARKEN  and  RMG  disks. 


20  REM 

Further  modified  by 
G .  Chambers . 

25  CLS  :  PRINT  • • "     DisK  Head 
Stepping  Modifier" ' • • 

30  PRINT  "      A  common  head  ste 
p  rate  is      6  ms,  however  some  o 
lder  drives  need  a  slower  head  s 
tep  rate.       This  program  allows 
you  to  change  it  to  another 

value."''"  Remove  the  write-pro 
tect  label, select  the  drive  &  th 
e  desired    head  speed,  and  place 
the  dislc    to  be  modified  into  t 
he  drive.     Then  press  ENTER" 
35  PRINT  "TAB  8;  "and...""" 
Presto...  The  job  is  done." 
38  INPUT  "Select  drive (0/3)  "; 
dr:  IF  dr  0  OR  dr  3  THEN    GO  TO 

40  RANDOMIZE  USR  100:  GO  TO  dr 

50  INPUT  "Select  head  speed (6/ 
12/20/30) ">hs 

60  IF  hs»6  OR  hs=12  OR  hs=20  O 
R  hs=30  THEN     GO  TO  80 

70  GO  TO  50 

80  POKE  40015,(0  AND  hs»6)+(l 
AND  hs=12)+(2  AND  hs=20)+<3  AND 

90  RESTORE  150 
110  FOR  n«40000  TO  40030 
120  READ  b«  POKE  n,b:  NEXT  n 
150  DATA  243,205,98,0,175,50,29 

250  RANDOMIZE  USR  40000 
300  PRINT  ' ' "     Head  speed  chang 

ed  to  "jhsj"  ms." 
400  STOP 

9000  PRINT  USR  100:  SAVE  "rate.B 
1"  LINE  1 



By:   Hichael   J.    Di  Rienzo 


My  friends  often  encourage  me  to  put 
my  powerful   TS2068  ROM  to  work   for  a 
good  cause.    What  better  way  than  to 
win  the  state   lottery.   Now,      I  know 
that      lotto     number     generators  are 
ubiquitous  but  this  one  really  works 
(fast).    It  can  be  modified  for  your 
geographical    requirements.      Al 1  you 
need   to  know   is  the  range  of  numbers 
possible  and  the  maximum     number  of 
picks   per   game.      In     my     state,  the 
player     specifies     six      (6)  numbers 
ranging   from  i   to  44.    To  change  game 
parameters,    type     In     the  following 
program     and     make     the  following 
changes:   The  range  of   numbers    (1  to 
AA)   are  specified     in     lines  40,60, 
and  120:   The  number  of   picks   (6)  are 
found   in   lines  50  and   130.      Line  20 
asks  how  many   lines  you     would  like 
to  choose.    Just     follow     the  prompt 
and  you  will    be  presented     with  one 
to  ten  extremely   lucky  numbers.  GOOD 
LUCK! ! !    You  may  forward     me     10*  of 
all   your     earnings     and     be  assured 
that  you  are  contributing  to  a  good 

"LOTTO"  By  Michael   Di  Rienzo 

1  BORDER  4:  PAPER  0:  CLS  :  PA 
PER   1:    INK  6 

2  FOR   x=0  TO  31   STEP  2 

3  PRINT  FLASH  1 ; AT  0,x;CHR*  1 
43;CHR*  12B;AT  21,30-x;CHR*  128; 
CHR$  143 

4  IF  x<22  THEN  PRINT  FLASH  1 ; 
AT  x,0;CHR*  143;AT  x+l,0;CHR*  12 
8;AT  20-x,3i;CHR*  128;AT  20-x+l, 
31;CHR*  143 

5  NEXT  x 

10  RANDOMIZE   :   PAPER  0:    INK  7 
20   INPUT  "How  Many  Lines  (1-10 
)?   ";q:    IF  q>10  THEN  GO  TO  20 
30  FOR   g=l   TO  q 
40  DIM  s(44) 
50  FOR  n=i  TO  6 
60  LET  a=l+INT  (RND*44> 
70   IF  NOT  s(a)   THEN  LET  s(a)=a 
:   GO  TO  90 
80  GO  TO  60 
90  NEXT  n 

100  PRINT  AT  g*2,5; "(*;g;"> 

110  LET  c=0 

120  FOR  n=i  TO  44 

130  IF  s(n)  THEN  LET  c*c+l:  PR  I 
NT  s(n) n  AND  c<6; 

140  NEXT  n 

150  BEEP   .01,20:   PRINT  99 
160  NEXT  g:    PRINT  # 1 ; AT  1,10;"G 
ood  Luck! !" 
170  PAUSE  0:  STOP 



  That  you   can   cot  disk   cogg  time   xn  half  w  x  th   two  Jf.Jhe 

DID  ^??iim|->°i  thought  I  hSdalt  tKe  utility  Programs  I 
YOU        nJedSdrSntiill°t?iid   this  one-   Here   is  a    few  highlights. 

KNOW        A     copy  3  is  an   impressive     program     that  m"*KHS2m5i°.i? 
O  Compress   the  data   during   the   copy   cycle.    I  cop  e da  dxsfc 

'  fSu  of  small  programs    c  fonts  J    and  was  amazed   to   see  xt 

JSpi  §6  |T?£ks P     9the   first  Pass.  J^^SV^as^opTed  Jl 
SlS^!  ^seSSn^   lnLirSen*HS5r?lUiCi°mi^Si5  seconds.) 

^  i^bad'blSckTare  encountered*  Slsi  S^*  toot!  T  m!nu?e 
and  52  seconds. 

«  -  _  .      J:-*     S37     in     4-     minutes     36     seconds     to  an 

unfSSnXtfe"?^.   It^ormaTs  and   copies  at   the  same  time. 
0     COLORED  >>ISK  MRIIE  allows  Paper  and   in  J   to  be  used  in^he^isj 
name.   I  have   coded  a  1 .1  ?*-Sgl|t5Ysl  gives  a   rainbow   look  when  it 
?si2al?edfcVcfl?aioSW'<BeCsU?e'  ?„Smo«eVthe   cursor   to   the  bottom 
line   before  saving.) 

♦  NAME  THIEF  will  Pluck  the  disk  name  from  one  disk  and  install 
it  on  another  disk 

o  hei.i.0!  is  '„T!!  ^tl!!d,h!i.2ll51Srso?h^cr"!!ht,,"',15ni[l 

the  Programs  on  a  dxs»  and  tooafwi?ou,r  drives  and  repeat  the 
Sro!ess!'fh?s  hasl~come°°m*t0  faSSri  te  menu  Pro9raa.  You  may 
elect   to  see  on  19  the  basic  programs  or  all  files. 

7JNV.P?^if„f.Sh»^?£  ifolrams-inUcreln  ^^^iHV  it 

dfek5no^showiScode-?iTes!  ^nf^pJct^ompaUb^T  I  nZw"  use 
this  one    for  most  o f  my  Speccy  dxsks. 

O  FORHRT  DISK  checks  for  bad  blocks  during  formatting,  maps  out 
any   boad   blocks  and   reports   the  resuns. 

♦     OLPHflBETXZE  rfrewr„habeti"  l  "iist^nS"  or"CSour,,adist 

^SStents^ts^s^andrlor^Sse^w^h1  the*  *  US  menu"  programs 
mentioned  above. 

tnvStfS"  Vile^names^lt  "Sill*  ma^'out"^^^"^.^?? 
encounters • 

use?1-???  s^T^-Tess*  {o?5lbi.n5th?  |?el?  cental  S?  ttoct  used 
and   if   it   is   in  use. 

del^rin^d^iiis^of^mapout^barbl^     -     ^  ^ 

<u?orun*a-d?ess*'nu»Sber  and^st^-Hoci, "?n 

^e" remaining  files  are  either  self  explanatory  or  ones  I 
haven't  checked  out  yet: 

t      SSSSS   HERD  SPEED  S      M^QUt'bRD  BLOCKS 

£      S^HS^rrSfroD  ❖      BATCH  MOUE 

t      DFrnuFR^BHD  D ISK  ?      RECOUER  CRTRLOG 

£      Sl^Sure   ERflSED   FILE  <>      RENRHE  DISK 

t      5noni<    mod   FDTTDR  ❖      DISK  RNRLYZER 



Les  Co tt re  1 1  108  River  Heights  Drive         Cocoa,   FL     USR  32922 

This   column   was   prepared  in 
Tasword,    then   converted  to 
Pixel    Print    using  the 
conversion  pr ogra m   in  t he 
Professional.    The   font  here 
is   the    IBM. Cf   that    comes  with 
the  PPProfesional      The  font 
above    is    ! heyy   . Cf   from  Bob 
Mitchell's   club   disk  »37. 

The   Picture   at   the   right. is  . 
my   o?herhpbby-a    1968  triumph 

Spitfire   with   a   home -ma de 
fiberglass  body.    It    was  made 
with  programs  from   disk  1*22. 


MORE  MIDI  For  The  2068 

sequencer:  A  device  that  records 
the  parameters  of  a  performance 
(generally  tempo,  when  and  which 
notes  were  played,  Program  Change 
commands,  dynamics,  etc.)  but  not 
the  actual  sounds.  On  playback,  the 
sequencer  feeds  this  information 
into  an  instrument  capable  of 
translating  the  stored  data  into  a 
replica  of  the  original  performance. 
A  sequencer,  then,  is  very  much  like 
a  player  piano  except  that  data  is 
stored  in  computer  memory  rather 
than  paper  roll  memory, 
fromi  Craig  Anderton's  book?  The 
Electronic  Musician's  Dictonary. 

The  ideal  or  much  more  useful 
sequencer  would  allow  for  multiple 
patterns  of  variable  length  which 
are  linked  together  to  form  the 
song.  Going  this  way  has  many 
advantages.  This  is  what  I'm  working 

by  Richard  Hurd 

I  recently  sent  an  audio  tape 
to  George  Chambers  of  simple  i 
I  Christmas  song  arangements  I 
j  put    together    as    a    demo  of 
'  what  I've  been  up  to  with  Lou 
j  Champagne's         MIDI  I/F 
(SINC-LINK         Vol.7  No.4 
July-Aug  '89  issue).  The  tape 
gives  a  demo  also  of  the  sound 
of     the     Roland     MT-32,  a 
synthesiser  with  no  keyboard 
and     the     Casio     HT-700  a 
synthesiser   with  a  4  octave, 
mid    sized    keyboard.  George 
wrote  back  suggesting  that  I 
i  write   an   article  to  go  along 
with  the  cassette  demo. 

Most  of  the  songs  on  the 
demo  tape  are  one  verse,  one 
chorus  with  a  few  exceptions.  I 
think  most  will  be  familiar. 
Most  of  the  songs  are  on  each 
side,  one  side  with  the  MT-32 
voices  and  the  other  with  the 
Casio's  voices.  The  recording 
quality  is  nothing  great.  It'll 
get  better  in  time. 

I  did  not  play  an  instrument 
to  record  songs  on  the  demo 
tape,  I  went  to  the  library, 
checked  out  a  Christmas 
songbook  and  entered  the 
music  into  the  2068  via  a 
simple  program  I  wrote.  It 
played  the  synths  like  a  player 

MIDI  Interface 

I  wire  wrapped  my  MIDI  i/f 
with  help  from  Jim  Stephens 
It  has  good  intructions  on  wire 
wrapping,  soldering,  and  the 
tools  required.  Wire  wrapping 
is  time  consuming  but  not 
difficult  for  the  hardware 
hacking  novice.  I  was  hoping 
that  an  etched  pc  board  for 
the  MIDI  i/f  would  have  been 
available  by  now  but  I  haven't 

heard  of  one.  This  would  make 
i  it  more  accessible  to  those  who 
are  not  2068  hardware 
hackers,  I  wasn't  'till  just  the 
I  last  year  or  so.  Because  of  the 
simplicity  of  the  circuit,  the 
cost  for  an  assembled  and 
tested  MIDI  i/f  should  be 

MIDI  Recap 

MIDI  (Musical  Instrument 
Digital  Interface)  is  simply  a 
serial  communications 
interface,  similar  but  not 
compatible  with  RS-232.  Values 
from  0  to  255  are  sent  and 
received  over  it.  Music  can  be 
represented  in  numbers  such 
as  a  note  value,  its  velocity 
(how  hard  or  soft  a  note  is 
sounded),  pitch  bend,  and  much 
more.  MIDI  also  allows  up  to  16 
separate  channels  where  each 
can  be  the  sound  of  a  different 
instrument.  Or  even  multiple 
sounds  on  one  channel  like  a 
drum  kit  where  a  different 
sound  is  assigned  to  a 
particular  note. 


MIDI  is  probably  most 
popular  with  the  musician  who 
plays  a  MIDI  instrument  for  its 
ability  to  record  what  the 
musician  is  playing  in  real 
time,  with  a  tempo.  The  same 
MIDI  data  can  be  recorded,  tho' 
much  slower  in  step  time 
where  the  timing  advances 
after  a  note/chord  is  entered. 

Two  alternatives  are  music 
composition  and  entertainment. 
Neither  of  which  actually 
require  playing  a  MIDI 
instrument.  This  is  what 
interests  me  most  about  MIDI 
and  is  also  what  I'll  try  to 
focus  on. 


In  order  to  make  use  of  the 
MIDI  i/f  we  need  a  program  to 
record  and  play  back  the 
stored  MIDI  data  or  sequence. 
In  other  words,  a  sequencer 
(see  side  bar).  A  sequencer  can 
be  either  hardware,  a  single 
purpose  computer  in  a  box,  or 
a  software  program  for  a 
computer.  Since  we  already 
have  a  capable  computer,  all 
we  need  is  a  sequencing 

About  a  year  ago  I  wrote  a 
sequencer  program  so  I  could 
experiment  with  and  learn 
more  about  MIDI.  It  is  a  very 
simple  sequencer.  It  is  step 
time,  or  the  note  data  is 
entered  from  the  2068's 
keyboard.  I  call  it  mse.  The 
sequencer  has  one  track  the 
length  of  the  song.  It  allows 
for  only  one  set  tempo  and 
signature.  It  will  hold  between 
2000  and  2500  notes  which 
can  be  assigned  to  any  1  or  all 
16  MIDI  channels.  It  can  play 
or  send  out  all  MIDI  status 
bytes  but  the  only  user  i/f 
I've  written  for  it  is  for  note 
on/off  data  entry.  This 




leaves  much  to  be  desired.  I 
could  ,50  out  and  buy  a 
hardware  sequencer  but  that 
would  take  all  the  fun  out  of 
doing  it  with  the  2068.  If 
anyone  is  interested  in  mse, 
let  me  know  and  I'll  send  a 
copy  to  George  for  the  group's 
disk  exchange.  It  requires  the 
LarKen  DOS  cartridge. 

The  ideal  or  much  more 
useful  sequencer  would  allow 
for  multiple  patterns  of 
variable  length  which  are 
linked  together  to  form  the 
song.  Going  this  way  has  many 
advantages.  This  is  what  I'm 
working  towards. 

;  More  MIDI 


!  In  order  to  make  the  most 
of  MIDI  it  is  necessary  to  get  a 
good  grasp  of  the  definitions  of 
the  MIDI  status  bytes.  Here  are 
a  couple  of  good  books  that  will 
do  the  job.  You  do  not  need 
both,  if  you're  only  interested 
in  using  MIDI,  then  the  first 
will  do  fine.  If  you  do  program 
then  the  second  is  highly 
recommended.  They  are: 

For  the  MIDI  user:  MIDI  for 
Musicians  by  Craig  Anderton. 


For  the  programmer/user: 
HANDBOOK  by  Steve  De  Furia 
&  Joe  Scacciaferro.  Price 
$24.95  U.S. 


A  little  about  the  synths. 
The  Casio  HT-700  has  8  note 
polyphony    (sounded    at  one 

,  time).  The  8  notes  can  be 
{  assigned  to  one  sound  or  split 
I  up  into  4  notes  for  the  melody, 
3  notes  for  the  chord  and  1  for 
bass.  Plus  it  has  short  built  in 
rhythm/percusion  sequence.  It 
is  stereo.  It  comes  with  40 
melody  voices/patches.  The 
voices  and  the  rhythm 
sequences  are  programmable.  It 
is  not  velocity  sensitive.  It 
responds  to  MIDI  sync,  note 
on/off,  program  change.  It  can 
be  reassigned  from  channel  1 
to  13.  It  has  a  pitch  bender. 
There  is  no  system  exclusive 
communication,  any  voice  or 
sequence  modifications  can  be 
saved/loaded  to  an  optional 
RAM  card.  It  has  built  in 
speakers  and  line  outs  for 
external  amplification.  Discount 
price  new:  $169. 

The  Roland  MT-32  has  32 
note  polyphony,  in  a  way.  Up 
to  9  different  sounds  can  be 
heard  at  one  time,  8  of  which 
can  be  assigned  to  a  different 
voice.  The  9th  is  a  rhythm 
channel  with  some  pretty  good 
percussion  sounds.  The 
synthesis  type  is  Linear 
Arithmetic  or  L/A  Synthesis. 
The  voices  consist  of  1  to  4 

So  using  1  partial  voices 
would  allow  sounding  32  notes 
spread  out  over  the  9  different 
channels.  Using  4  partial 
sounds  allows  for  only  8  notes 
to  be  sounded  at  one  time, 
with  your  choice  of  channels. 
It  comes  with  128  sounds  quite 
a  few  are  orchestral 
instrument  sounds,  tho'  there 
are  some  good  synth  sounds 
also.  The  voices  are 
programmable  but  not  from 
the     MT-32     it     requires  a 

,  computer  and  editor  program.  I 
!  have  written  one  that  allows 
j  access  to  all  voice  parameters 
and  save/load  to  LarKen  disk.  I 
also  got  ahold  of  256  third 
party  sounds  for  it  in  four 
volumes  from  the  Digital 
Warrior.  They  came  on  an 
Atari  ST  disk  and  I  extracted 
the  data  in  order  to  use  it. 
Some  real  nice  sounds.  The 
MT-32  responds  to  the  full 
MIDI  note  range  (1  to  127] 
velocity  and  pitch  bend. 
Control  change  (14  bit) 
modulation,  volume,  panpot 
(stereo  left/right)  and 
expression.  Program  change 
0-127,  all  notes  off,  active 
sensing  and  system  exclusive. 
It  also  has  built  in  reverb.  It 
requires  an  external  amplifier. 
Discount  price  new:  $400,  used 

In  order  to  get  a  variety  of 
intrument  sounds  (at  the  same 
time)  requires  a  multitimbre 
type  synthesizer.  There  are 
many  to  choose  from  these 
days.  Maybe  you  have  one  you 
could  tell  us  about.  I  would  like 
to  hear  about  it. 

It  is  helpful  for  the  beginner 
to  go  to  the  local  music  store 
for  purchases  and  help,  but 
going  mail  order  for  the 
purchase  can  definitely  save 
you  big  bucks.  Look  for  a  copy 
of  Keyboard  magazine  in  your 
neighborhood  for  a  good 
selection  of  mail  order  sources. 
Also  watch  the  classifieds  in 
the  paper. 

I  hope  this  sparks  some 
interest  in  some  of  you.  I  know 
that  there  are  many  2068 
users  who  enjoy  making  music 
with  their  2068. 



Mel  Richardson 


Like  lots  of  people,  I  pai 
ticipate  in  a  regular  group 
lottery  purchase  at  my  work- 
place. I  recently  figured  that 
it  would  make  sense  to  let  the 
machine  check  the  ticket  so  here 
is  the  result  of  that  brilliant 
observat  ion. 

The  program  stores  lines  of 
numbers  regularly  played.  One 
only  need  enter  the  drawn 
numbers  each  week  and  the  screen 
will  show  matching  numbers  as 
inverse.  Don't  "RUN"  the  program 
after  entering  your  lines  and 
saving  the  data  filled  routine. 

Because  the  basic  algorithm  is 
•fairly  short,  there  was  room  to 
make  it  quite  friendly.  The 
•QUIT"  section  is  written  for  ZX 
81  and  Larken  DOS  and  you  should 
substitute  for  your  own  system. 
Good  luck! 


ON  1 T  RUN****** 


5  LOW 

CLS  _  _ 

PRINT  RT   Z..2,  :-   _    0   T        c  F 
V      6   4  9  *" 

UMBERS"    RT   12 . 5 ; "SRINT   OUT  TJCKE 
T" ; RT   14 , 5 . "DEW  TICKET  NUMBERS " 
17  PRINT  RT   16,5. "BUIT  OR  §RVE 

20   GOTO  20+ < :  INKEY* <>"" ' 
25   GOTO   20+1140  AND    IN  KEY  $  =  "£:" 
i+(360  AND   INKEY$s"C" )  +  1230  RND 
IN KEY $  =  " P " i +  i 30  RND   IN KEY $  = " N" )  * 
!  ?9S0   RND   INKEr'$="0"  i  + 7930  RND 
INKEY  $  =  "5"' 

100  CLS 

101  PRINT 

102  PRINT 

103  GOTO 


'2,4; "PRESS 

■S""  T 


103+  \  INKEY $  •;  >  "  "  '• 
IF   INKEY*    :"C"  THEN   GOTO  1 



110    INPUT  G 
114  DIM  fi$  (S  .  1"*  • 
116  PRINT  RT  O-0, "ENTER 
INES (WITH  SP^CEs) : " 
113  PRINT  RT  20,1:"**  *• 


FOR   1=1  TO  G 
PRINT  RT  1+1,0: A* (i: 

PRINT  RT  20, 1: "OK? 

153  LET  X=PI**PI  ,  . 

154  GOTO    154+ ( I N K E Y $  <  > 

156  IF  INKEY $="N"  THEN  GOTO  : 
160  CLS 

170  PRINT  " ENTER  WINNING  549 

D   BONUS : " , , , 

130   PRINT   hT   20.1."**    **    +  * 
**    **   BB " 

132    INPUT  E$ 

134  PRINT  RT   5  , 0;  S$ 

136   LET  BB=vAL   B$(19  TO  20) 

210  PRINT  RT   8.0; "ENTER  DRTE 

DRRW :  " 

220  PRINT  RT  20 , 1, "DDMMYY 
230   INPUT  D* 

240   PRINT   RT    10  ,0; D$  1 1  TO  2) 
"  ;  D$  (3  TO   4j  ;  "      ;  D$  (5  TO  5 
250   PRINT   RT   20,1.  "OK?   V  'N :  " 
GOTO   260+  i  INKEY $  <  >  "  " 
IF    INKEY $  =  " N"   THEN  GOTO 
GOTO  350 



PRINT   " C U R R E NT   N U M EER 5 

FOR    1=1  TO  G 
PRINT  h$  (I). 
GOTO  1000 


PRINT  "549 
2)  ;  ", D$  '  3 

0  6) 

TO  4.i 


D$  i 

LET  B$  '.19 
LET  B$  MS 
FOR   1=1  TO  G 
FOR  L=l  TO    15   STEP  2 
FOP  T=l  TO    15   STEP  3 
IF   B$(T  TO   T+l)=A$i.I.L  T 
+  1)    THEN  GOTO  4-60 
435  NEXT  T 

440  IF  NOT  B*'T  TO  T  +  1.'=A$i.I 
TO  L+l"    THEN   PRINT  A*iI.L  TO 

'0  20.1  =5TR$  i,SS) 

i  0  »   =  '00" 






GOTO  520 



M*=A$ ' I , L  J 
N$=A* (I .L  +  l< 
M=C0DE  M* 
N=C0DE  N* 
PRINT   CHR$    >M+123< , 
PRINT  CHR$    (N+123) ■ 
GOTO  1000 
PRINT  AT   21,0; "BOPY 



1010  GOTO   1010+ i  INKEY*  o'"" 
1020   IF   INKEY* ="C"   THEN  COPY 
1030   IF   INKEY $=:M"   THEN  GOTO 
1040   IF    INKEY*  =  ,!0"   THEN  GOTO 

1100  GOTO  1010 
7ggg  rem  — QUIT, 

3000  CLS 

3020  PRINT   "SWri  u 
3030  PAUSE  4E4 
3040  CLS 

3050  PRINT   USR  14335 
3060  REM 
3070  STOP 

CH  FOR  -^DOS* 


JSinclair  TRIUIhI  clftH„,r 
{'ou  think  that  you  are  a  bine  lair 
expert?  Ok,  try  to  answer  the  following 
questions . 

a.  Uho  was  the  manufacturer  of  the 
American  QL? 

b.  Tony  Tebby,  the  father  of  QDQS ,  uas 
hired  at  Sinclair  for  uhat  job? 

c.  Uhat  uas  the  Canadian  suggested 
retail  price  of  the  QL  uhen  it  uas 

d.  Uhat  is  the  minimum  length  of  the 
microdrive  magnetic  tape? 

e.  The  TS2868  has  an  unique  feature 
for  a  Sinclair  computer,  uhat  is  it. 

f .  Name  2  other  computers  that  can 
emulate  (by  softuare  or  hardware) 
the  QL.  .  . 

9.  Uhat  is  the  unformatted  capacity 
of  microdrive? 

h.  Hou  many  jobs  can  be  sunned 
simultanously  on  a  QL  uith  128K? 

i.  Hou  many  channels  car.  be  opened 
simultanously  on  a  QL  with  U8K/ 

Hies  and  Tricks  1 

here  is  a  collection  of  QL  tips  to  make 
our  life  easier.  If  you  are  already  a 
"QL  pouer  user",  those  t ips  are  old 
stuff*  but  maybe  you  uill  +md  l  or  l 
unknown  to  you.  Please  note  that  Tony 
Tebby 's  TOOLKIT  II  is  needed  tor  some  of 

A  classic  tip  

Take  a  simple  thing  like  printing  a 
directory  to  your  Printer.  The  classic 
solution    is  to  type  :  OPEN  #5,serl 

DIR  #5,f IPl. 

CLOSE  #3 

But  uith  Toolkit  II,  ue  do  the  same 
thing  uith  only  one  command  : 

DIR  Nserl ,f  Ipl. 

Extras  lines   .  ,. 

Ue  uant  to  put  the  maximum  information 
on  the  screen  so  ue  need  more  lines,  try 

this  :  CHAR.INC  #0,6,8 

it  will  do  the  trick  in  uindou  #0. 

Muster lous  CLS....««  .  . 

These  are  not  really  tips  but  only  weird 
effects  of  the  CLS  command  when  used 
with  si  Uy  parameters. 

CLS  198    will  create  a  green  border  in 
window  #1 

CLS  -28  will  create  a  different  border 
CLS     8    same  effect  as  PRPER  0 

by  i 

Real  Gagnon 
8286  St-Hubert 
Montreal  (Que) 

CLS      9    same  effect  as  INK  8 

CLS    11    same  effect  as  UNDER  1  

CLS  115    equivalent  to  CURSOR  LEFT 
ex.  PRINT  12345 

CLS  115:CLS  115:CLS  113 
PRINT  67890 
CLS  116  equivalent  to  CURSOR  RIGHT 

RBflCUS  and  my  printer......... 

It  is  easy  to  control  the  printing  of 
our  worksheet  from  ABACUS  with  the 
command  CHR  to  send  control  codes  to  the 
printer . 

If  in  ABACUS,  we  type  CHR<64>,  the 
character  "A"  will  appear.  The  trick  is 
to  put  first  CHR(0)  and  then  all  the 
control  codes  for  the  printing.  Those 
control  codes  uill  not  appear  on  the 
screen  but  uill  be  sent  to  the  printer. 

For  example   if  ue  uant  to  underline 
something,  ue  type,  say  in  cell  fill 
CHR(0)+CHR(27)+"-l"+"The  Quebec  Link 
and  in  cell  A2:  CHR<0)+CHR<27)+"-0 
to  cancel  the  underline  mode. 

That  feature  can  be  very  useful  to  print 
wide  worksheet.  On  most  printers,  it  is 
possible  to  obtain  127  characters  per 
\  me  when  the  printer  is  in  compressed 

In  the  first  cell,  ue  put  CHR<0)+CHR<15) 
to  switch  compressed  mode  on  and  in  the 
last  cell  we  put  CHR(0)+CHR(18)  to  turn 
off  the  compressed  mode.  However,  if  we 
want  to  print  a  worksheet  larger  than  80 
characters  we  must  notify  ABACUS  first 
by  selecting  the  option  DESIGN  and  set 
the  PRINTER  PAPER  UIDTH  to  the  correct 
value  a  Ike  127) . 

1  Hou  old  are  you,  little  udriJeTl 
Even  if  your  cartridge  refuse  to  give 
vou  an  answer,  it  is  possible  to  crack 
the  secret  by  examining  carefully  the 
cartridge.  On  each  udrive,  there  is  a 
4-number  code.  The  first  3  represents 
the  manufacturing  date  and  the  last 
number  is  the  last  digit  of  the  year. 
For  example,  the  code  "1446"  means  that 
the  cartridge  uas  made  the  144th  day  ot 

Solution  of  Sinctair  TRIUIA: 

a)  SAMSUNG    b>  satellite  dishes 

c>  8005  end  d>  minimum  5.1m  (about  15ft.; 

e)  ATARI  ST  (hardware)  S<  AMIGA  (software) 

f)  about  180Kb       g)  56  jobs  with  128Kb 
h)  168  channels  with  128Kb  




TWn      TDKAS  SO 

er*s     Don  ~ "t 

WANT     "to  do 

What  do  QL'ers  do  for  kicks? 

They  sit  around  and  ask  why  someone 
does  not  start  a  Hardware  Library.  They 
say  they  would  like  to  do  things  with 
their  machine  but  don't  know  how  to  go 
about  it,  or  what  can  be  done.  All  they 
ask  for  is  for  someone  to  do  something. 

So  someone  comes  along  and  writes  a 
letter  asking  for  submissions  to  start 
a  hardware  library,  and  what  happens? 
Zilch.  Not  a  word  of  encouragement  or  a 
single  submission.  Someone  said  to  me 
"Good  idea",  but  he  was  the  only  one 
who  thought  so.  No  one  else  could  be 

What  a  sorry  state  of  affairs  when  we 
cannot  even  be  bothered  to  write  a  note 
of  encouragement,  or  send  something  in. 
There  just  has  to  be  someone  who  has 
done  something  to  improve  their 
machine.  Ever  since  I  got  my  QL  I  have 
heard  about  the  limitations  of  the  QL. 
Yet,  when  asked  for  ideas  and  methods 
to  improve  it,  No  one  seems  to  know 
what  to  do. 

The  conclusion  is  that  the  QL  is  a 
computer  without  peer.  It  is  so  perfect 
there  is  nothing  to  be  done  to  improve 
it.  I  am  very  happy  indeed  that  in  my 
choice  of  computer  I  selected  such  an 
excellent  machine.  I  am  sorry  for  those 
folks  who  purchased  such  inferior  units 
they  have  to  be  constantly  trying  to 
improve  them.  Not  so  with  the  QL.  It 
was  perfect  to  start  with. 

When  I  requested  submissions  I  thought 
I  would  get  some,  not  many,  but  some.  I 
got  not  one.  That  is  correct,  not  one. 

So  next  time  you  wonder  what  to  do  to 
correct  something,  you  will  just  have 
to  do  what  you  do  right  now. 
Wonder  888 

SaBsrBaalc  instruction 

Last  month  I  asked  if  anyone  would  be 
interested  in  taking  part  in  a  type  of 
Correspondence  Course  in  SuperBasic, 
either  as  a  user  or  supplier  of  such  a 
course.  At  that  time  I  stated  I  would 
publish  the  results  in  this  NewsLetter. 
Here  is  the  result  of  that  request: - 

Applications  to  LEARN  NIL 
Applications  to  INSTRUCT  NIL 

Now  how  do  you  like  that?  Just  goes  to 
show  the  interest  taken  in  the  learning 

I  would  have  thought  there  would  be 
some  replies,  not  many,  but  some,  but 
not  even  one. 

The  same  goes  for  so  many  things  in 
this  world,  we  are  too  inclined  to  say 
"Why  don't  THEY  do  something  for  us?" 
The  answer  is  right  there,  it  is  always 
someone  else  who  has  to  do  something. 

Not  in  my  backyard  syndrome  at  work. 

The  same  goes  for  so  many  excellent 
magazines  discontinuing  publication, 
not  enough  interest. 

If  you  were  to  look  through  any 
magazine  you  would  perceive  that  the 
same  names  keep  recurring  in  the 

"Why  don't  sumbidy  do  sumpin?" 
The  answer  is  "Why  bother,  nobody  reads 
it,  and  if  they  do  read  it,  they  don't 
do  nuttin" 

Come  on  folks,  do  something,  write 
something.  If  you  are  mad  at  me,  at 
least  kick  me  in  the  teeth  so  that  I 
know  you  are  there.  §88 

7tes~^e"™~des~&ed  and  printed  from  tert?^  including  header 

t^-^um^fetup  tor  tart  in  the  middle.    ONE  PASS,    have  you  tried  this  in  toill? 




by  Chuck  h'er**Jvok- 






No,  you're  not  having    a    deja'  vu. 
We  didn't  do  this  review  last  month. 
This  is    a    whole    'nother  different 

In  fact,  the  only  thing  similar 
between  last  month's  review  object  and 
this  one  is  their  similar-sounding 
names  and  the  fact  that  both  are 
graphics  programs.  After  that, 
they're  worlds  apart.  Okay? 

We're  talking,  of  course,  about  PIX 
FIX,  written  by  John  T.  Nguyen  for  the 
2068  computer. 

While  PIX-FX  is  used  for 
manipulating  graphics,  PIX  FIX  is  used 
to  create  them.  It  does  an 
interesting  job  of  doing  that,  too. 

How  does  it  work?  To  create  art 
with  PIX  FIX,  said  artist  will  work  at 
the  pixel  level.  Basically,  it's  a 
fancy  Etch-A-Sketch.  What's 
interesting  is  the  fancy  stuff.  For 
example,  while  working  at  the  "pixel 
level",  PIX  FIX  will  display  ^  a 
full-screen  32-column  X  24-line  grid. 
The  grid  comes  up  in  "neutral M  mode, 
so  you  can  freely  place  the  "pixel 
cursor"  anywhere  you  choose.  There  is 
the  expected  "draw"  and  "erase"  modes, 
to  plot  and  unplot  to  your  heart's 
content.  The  screen  border  will 
change  color,  by  the  way,  when 
flipping  between  these  modes,  to  give 
a  visual  indicator. 

The  kicker  to  this  grid  approach  is 
that  in  the  upper- left  portion  of  the 
screen,  there  is  this    mini-screen,  4 

"pixels"  wide  by  3  "pixels"  high,  to 
show  you  what  you're  doing  in 
real-size.  It  even  "follows"  your  art 
as  it's  created!  Once  you  get  used  to 
this  convenience,  you  may  wonder  what 
other  devious  purpose  it  has.  A  mere 
press  of  the  »U»  key  will  pop  you  into 
Big  Pix  Mode,  where  you  discover  that 
little  design  square  you  were  working 
on  is  but  a  mere  building  block  to  a 
much  larger  picture!  Each  block  can 
be  moved  around  in  its  entirety,  to  be 
placed  wherever    it    looks    the  best. 

The  only  catch  is  that  you  first 
position  an  empty  block  and  then  draw 
into  it.  At  this  point,  PIX  FIX 
resembles  more  of  a  puzzle  that  has  to 
be  assembled  from  your  pre-designed 
pieces.  Once  the  puzzle-piece  is 
positioned  just  right,  press  'U'  again 
to  get  back  into  Screen  Mode,  where 
you    resume    drawing    and/or  erasing. 

The  feature  of  moving  an  empty  block 
around  offers  the  added  feature  of  it 
actually  becoming  a  window  to  your 
final  picture. 

empty-block/window  can  be  positioned 
partly  over  a  previous  "puzzle  piece" 
for  the  purpose  of  adding  more  detail 
to  a  section.  Do  this  and  press  *U» 
again  to  display  a  partial  graphic  on 
the  main  screen. 

This  goes  on  and  on  until  a  final 
masterpiece  emerges.  An  extra  pair  of 
features  add  just  a  smidgeon  to  the 
overall  flexibility  and  easiness. 
While  PIX  FIX  doesn't  have  many  of  the 
fancy  features  found  in  more  exotic 
2060  graphics  programs,  it  does  let 
you  display  your  entire  picture  in 
inverse  and  turn  on  row/column  count 
indicators  to  accurately  keep  track  of 
where  you  are,  if  you  feel  so 
inclined.  When  satisfied,  the  user 
will  return  to  the  main  menu  to  SAVE 
(my  copy  was  configured  for  Zebra  disk 
systems)    or   COPY   to     a  printer. 








■  Willi  ■ 


U  Iffi  «■ 

IB!  Ill  HI 


While  being  interesting  to  assemble 
a  drawing  in  puzzle-piece  format,  the 
program  does  exhibit  some  odd 
peculiarities.  One  is  the  method  in 
which  to  move  your  plotting  cursor  and 
your  mini-picture  puzzle-piece.  One 
would  expect  the  program  to  make  use 
of  the  arrow  keys  (5,6,7  &  8),  since 
this  would  be  logical.  Instead  PIX 
FIX  employs  the  ' I '  key  for  UP,  the 
'K'  key  for  DOWN,  'J'  for  LEFT  and  'L' 
for  RIGHT.       How    come?       Beats  mei 

Another  oddity  is  when  saving  a 
Screen  Mode  picture.  A  prompt  will 
come  up  asking  whether  you  want  to 
SAVE  as    a    SCREENS    or    from  memory. 

SAVEing  from  memory  will  SAVE  as  a 
SCREENS  anyway,  but  the  result  will  be 
from  the  Big  Pix  Mode;  in  other  words, 
as  a  small  block.  Using  the  SCREENS 
option  SAVEs  a  blank  screen!  To  get 
the  TS1O00  illustration  shown,  I  had 
to  BREAK  the  program  in  Screen  Mode 
and  SAVE  it  separately.  Another 
option,  of  course,  is  to  SAVE  it  from 
memory  (small)  and  use  PIX-FX  to 
expand  it  to  normal  size! 

The  print  option  shown  in  the  main 
menu  appears  to  be  designed  with  the 
Aerco  printer  interface  in  mind 
(characterized  by  the  "LPRINT  CHRS  1" 
command  in  line  836  of  the  program). 
Presumably,  one  can  freely  change 
this  for  a  2040  by  substituting  COPY. 

The  Help  Screens  and  Menu  can  be 
accessed  from  within  any  part  of  the 
program,  which  helps  when  forgetting 
the  I-K-J-L  keys.  A  mere  press  of 
ENTER  from  Help  returns  your  drawimg. 

While  being  quite  BASIC  in  nature 
(There  is  no  separate  CODE  when 
LOADing  the  program.),  the 
puzzle-piece  format  gives  PIX  FIX  its 
strongest  suit.  It's  worth  checking 

For  a  copy  of  PIX  FIX,  see  our  club 
librarian,  Dale  Fritz,  or  you  may  wish 
to  use  your  own  sources. 

It's  definitely  a  lot  different  than 


Taken  from  the  Sept   1990  issue 
of  SWYM,   the  n/l  of  the  Seattle 
Area  T/S  Users  Group. 


TS2068  Digitized  Pictures 




Bob  Mitchell  20  Wild  Briarway  Willowdale  Ont  M2J  2L2 . 

IntThtsCar?icle  derives  from  my  using  Pixel  Print  Professional 
to  make  keyboard  overlays  for  the  TS2068.  a  technique  covered  in 
Les  Cottrel Is  article  in  the  Nov-Dec  90  issue  page  25.  On  page 
26  there  was  a  sample  overlay:  Pixel  Print  Plus! 

This  is  truly  an  intriguing  application  of  PPP.  oank 
switching  and  the  old  workhorse  TS2068  and  in  the  Process  of 
making  several  overlays  to  suit  my  particular  whims  I  found  a 
nosri  for  a  variety  of  character  sets  (fonts)  that  were  turned 
sideways  (90  degrees  to  the  right  or  a  quarter  turn  clockwise) 
sideways         ucyi=  rT.»»te    sets    with    narrow  characters 

There  was  some  urgency  to  create    sets     wi^'  „,.„  on 

that  would  allow  words  to  be  crammed  into  the    small     spaces  on 

^Changing  any  one  character  set  manually  involved  an 
inordinate'amount  of  work  and  it  seemed  the  computer  ought  to  be 
able  to  do  that  for  me.  I  set  about  the  task  of  ""ting  a 
suitable  utility  that  would  enable  me  to  edit  a  set  if  need  be 
and  then  to  rotate  it  in  its  entirety  by  one  press  of  a  key . 

No  need  the  do  this  from  scratch  though!  I  put  an  old  program 
to  use?  this  one  was  called  "Character  Redefinition"  written  by 
D    Robinson  and  appeared  in  Personal  Software  Autumn  1985  p. 18 

Since  the  original  allowed  for  several  sets  to  a  stored  and 
worked  on.  I  stripped  out  much  of  the  material  in  the  BASIC  to 
I! low  only  one  set  to  be  processed  or  stored  at  any  one  time 

Rotat  ng  the  character  sets  has  been  accomplished  using  a 
shorts-byte  machine-code  routine  found  in  the  Supercede  3.5 
collection "y F  Vachha  BSC  &  V.B.  Rumsey.  Although  written  for 
!pe  trum!  it  is "compatible  with  the  TS2068  and  allows  a  complete 
set  to  be  rotated  a  quarter  turn  clockwise  in  about  3  seconds_ 
A  half  turn  will  produce  an  upside-down  set  while  a 
three-quarter  turn  will  result  in  a  set  that  is  rotated  .70 
Hem-ees  to  the  right  (ie.  90  degrees  to  the  left). 

machine-code  routine  is  contained  in  DATA    statements  a 
line  8500  and  is  loaded     into    memory    beginning    at     the  start 
address  at  63163. 

Instructions  FACILITY  MENU 

There  are  three  options  in  this  menu: 

1  -  DEFINE  set. 

2  =  SAVE/LOAD  set. 

k'rsT TitEishnecessary  to  load  a  character  set  for  editing  or 
rotation  This  is  done  by  selecting  option  2.  Any  character  set 
or  graphics  set  may  be     loaded.     The    Facility    Menu    will  then 

reaNexf 'it  is  wise  to  use  option  1  to  view  the  loaded  set  which 
will  appear  at  the  bottom  of  the  screen  in  three  lines  each  of 
which  lies  directly  beneath  the  standard  TS2068  character  set 
shown  n  INVERSE  VIDEO.  At  this  point  it  is  possible  to  select 
a  character  for  editing  or  to  opt  for  rotating  the  entire  set^ 

There  are  three  options  to  rotate  a  whole  96  character  set 
clockwise:  1)  1/4  turn.  2)  1/2  turn  or  3)  3/4  turn  Note  that 
each  turn  is  a  1/4  revolution  or  90  degrees  clockwise.  Thus.  if 



the  initial  font  has  already  been  turned  once,  using  option  2 
wm  So  two  more  turns  and  leave  the  set  3/4  of  a  turn  from  the 
straight  up  or  vertical  position.  Using  option  3  wi 1 1  take  about 
10  seconds  to  complete. 


As  soon  as  a  character  has  been  selected,  the  menu  appears. 
This  menu  is  located  at  the  right  of  the  screen  alongside  two  8 
x  8  arids  the  left  one  being  used  for  comparison  purposes,  the 
right  for  editing.  The  grid  cursor  flashes  and  makes  a  blipping 

sound.  . 

The  keys  to  be  pressed  are  as  follows: 
Cursor  keys  are  used  to  move  the  grid  cursor  about 
p  =    plot    or    fill     in    a    square;     ie.     one    pixel     in  the 

character  being  worked  on. 
e  =  erase  a  square .  , 

store  a  character  <chr>.    (You  can  use  a  character  set  to 
hold  any  graphics  of  your  choice,  not  just  letters  and  ■ 
numbers,   eg,  borders  can  be  created.) 
n  -  store  a  character  and  then  go  back  to  the  facility  menu, 
o  -  display  a  character  in  the  left  grid, 
q  -  overlay  the  current  make  up  of  a  character  in  the 

editing  grid, 
m  -  facility  menu. 

When  no  character  is  being  edited,  a  prompt  line  appears  at 
the  bottom  of  the  screen  for  entering  any  character  to  be 
redefined.  Before  editing  a  character  or  when  just  viewing  the 
whole  set,  you  can  return  to  the  facility  menu  by  selecting 
< space >  and  then  using  option  <m>  to  get  back. 

All  editing  on  a  set  should  be  completed  before  the  set  is 
rotated.  As  each  character  is  edited  its  new  appearance  shows  in 
the  lower  part  of  the  screen  under  the  pertinent  character  in 
inverse  video. 

Some  uniformity  in  file  names  to  identify  the  rotation  was 
needed;  I  chose  to  identify  fonts  rotated  to  the  right  by 
suffixing  their  file  names  with  a  >  character;  those  to  the  left 
with  a  <  character;  the  normal  straight-up  sets  with  a 
(underline  bar)  character.  The  first  character  must  be  a  !  to  be 
Pixel  Print  compatible.  For  the  Pixel  Print  Professional 
application  designing  keyboard  overlays,  only  1/4  turn 
right-rotated  fonts  will  normally  be  used. 

The  disk  containing  this  program  and  a  host  of  fonts  is 
available  from  the  library.  Len  Cottrell  has  done  several 
overlays;  I  have  completed  two  (HOT  Z  and  PRO/FILE)  as  well  as 
a  modified  MSCRIPT  overlay. 

The  Listing  for  User  Entry 
First,  some  notes: 

The  REM  statements  at  the  end  of  some  lines  are  for  the  user's 
information  when  entering  the  listing.  These  can  be  left  out. 

Line  4080  is  used  to  POKE  the  address  of  a  character  into  the 
rotate  code.  This  could  be  done  with  a  Larken  double  POKE  but  I 
left  this  in  as     it    can    be    compiled    while    the    Larken  POKE 


cannot . 

There  is  not  much  percentage  in  compiling  this  program  though. 
In  fact  I  tried  it  and  it  has  the  disadvantage  of  speeding  up 
rne  arid  cursor  auring  edit  which  I  found  difficult  to  slow 
down^to  my  satisfaction).  The  rotate  code  would  operate  faster 
tut  is  ten  or  twelve  seconds  for  three  rotations  too 
much  time? 


110  REM  By  Bob  Mitchell  1990 

0:  CLS  ,so  LET  J*-" 
 -  /0123456789:;<->?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]-_ 

:abcdefah  jklmnopqrstuvwxyzi   > " :  REM  there  is  only    one  space 
hetween^ne  fTrstquotation  mark  and  the  exclamation  point. 

160  LET  b-1 
170  LET  po-60 

111  Sg  ^^ix2^MF^n=2  TO  8:  ^5^'^^fctl  set 
200  BORDER  0=  PAPER^,,  INK  7:     CLS     :     PRgT^  Character  Set 

ifvE/[0AD  set f^ROTATE  wnoTe  set"  :  REM  MENU  in  INV  VIDEO 
210  LET  i$"INKEY$ :   IF  iS<"l»  OR  i$>"3"  THEN    GO  TO  210 
220  IF  i$-"l"  THEN    GO  TO  1000 
230  IF  i$-"2"  THEN    GO  TO  2000 

1000  pIpeT^O^O^DErT  INK  9:    CLS    :   PRINT  AT     0.0,.  > 

?010°F0R  f-1  TO  6:  POKE  USR  "a"+f.l29:  NEXT  f:  POKE  USR  "a". 255: 
□nvTT  iiQD    =  "4.7  255-  REM  araphic  A  is  an  open  square 
™Yo  POKE  23607  60 1  PRINT  AT  15.0;   INVERSE  l:j$Cl  TO  32)"J$C33 
TO  64) ' ' j$(65  TO  96) 

^040  PRINT  AT  16.0:j$(l  TO  32)"j$(33  TO 
64)  1  1  j$(65  TO  96) 

io60  POKE  2360^po:  INPUT  AT  0 . 0 :  "Character  to  be  edited  7  "; 
LINE  c$:   IF  CODE  c$ >127  OR  CODE  c$<32  OR  LEN     c$>l     THEN  BEEP 

10702PRIN?  It  \l60:   INVERSE  1:"  EDITING:     ";C$:REM  EDITING:  in 

lo80VFOR°f-l  TO  8:  PRINT  AT  f . 0 ; " AAAAAAAA  AAAAAAAA" :  NEXT  f:  REM 

^PRINT^O.^INK  2:  PAPER  7:  "COMPARE  87654321" 
1100  LET  X-l:  LET  y-9:  DIM  a(8) 

1110  DIM  b$(8.8):   LET  k-(CODE  c$-32)*8  i9."m0ve  "-AT 

1120    PRINT    AT    0.18: "Cursor    keys        to  :AT        1. 19    move.  ,Al 

9  i7."n-olot  ";AT  3.17;"e-erase.";AT  4.17;   c-store  cnr. 
U3o'  PRINT    AT    5.17;"n-store    chr . " ;  AT    6  18;"and 

7.  is;  "to       menu.  ";AT       « 47;  o-c^re  :  T  9    ?ty  menu" 

10  17;  "q-overlay  a";  AT  11,18;  cnr.    ,ai  it.i/,  / 

^0  0^1^5:^^  PRINT  AT 

x  y;"@_" :  REM  graphic  is  black  square  on  key  8 
1160  LET  i$-INKEY$ 


1170  IF  i$="8"  AND 
1180  IF  i$="5"  AND 
1190  IF  AND 
1200  IF  i$-"6"  AND 
1210  IF  i$-"p"  AND 
" :  LET  b$(x,y-8)-"@ 
black  sauares. 

1220  IF  i$-"e"  AND  b$ (x .y-8) =  "@_" 
0:"A":  LET  b$lx,y-8)="   " :   LET  a ( x ) 
are  black  square  and  graphic  A 

y< 16  THEN     LET  y=y+l 
y>9  THEN    LET  y-y-1 
x>l  THEN    LET  x-x-1 
x<8  THEN    LET  x=x+l 
b$(x.y-8)="  "  THEN 
:  LET  a(x)=a(x)+2~ 

PRINT  AT  x.y;  OVER  0;"@_ 
(16-y) :  REM  graphics  are 

•a(x)-2~ (16-y) :     REM  graphics 














CLS   :   BORDER  0:   PAPER  0:   OVER  0 :    INK  7 :  GO 

f-1  TO  8:  POKE  ch*256+256+k+f-l.a(f ) 



be  compared  ?  " 
g$>l  THEN     BEEP  .5 
PRINT  AT  f.0;  OVER 



-20 :   GO  TO  1300 
0 ; " AAAAAAAA" :  NEXT 


g$<32  OR 


REM  graphic 
NEXT  f 

LET  gr-PEEK  ( ch*256+256+ ( (CODE  g$-32)*8)+f) 

OVER  0;"@_: 

is  black 

AT  1+f.g-l; 


be  overlaid  ?  " ;  LINE  g$ :  IF  CODE 
a$>l  THEN  BEEP  .5,-20:  GO  TO  1370 
PRINT  AT  f,9;  OVER  0 ; "AAAAAAAA" :  NEXT 

g$<32  OR 


TO  200 

1280  GO  TO  1150 
1290  OVER  0:  FOR 

1300  INPUT  "Chr  to 
CODE  g$>127  OR  LEN 
1310  FOR  f-1  TO  8: 
graphics  A 
1320  FOR  f =0  TO  7: 
1330  FOR  g=l  TO  8 
1340  IF  gr>=h(g) 
gr-gr-h (g) : 
1350  NEXT  g 
1360  RETURN 
1370  INPUT  "Chr  to 
CODE  g$>127  OR  LEN 
1380  FOR  f-1  TO  8: 
graphic  A 
1390  DIM  a(8) 
1400  FOR  f-0  TO  7: 

1410  FOR  g-1  TO  8  n  tta 

1420  IF  gr>-h(g)  THEN        PRINT    AT     1+f .g+8;     OVER    0;  @_ 
gr-gr-h (g) :     LET    a ( f +1 ) -a ( f +1 ) +h(g) :     LET    b$ ( f +1 , g) -' @_ 
graphic  is  black  square 
1430  NEXT  g:  NEXT  f:  RETURN 

LET  k-CODE  c$-32:    IF  k<32  THEN     LET  xx-16:   GO  TO  1470 
IF  k<64  THEN     LET  xx-18:   LET  k-k-32 :   GO  TO  1470 
IF  k<96  THEN    LET  xx-20 :  LET  k-k-64  „mmxT 
POKE  23607, ch:   PRINT  AT  xx,k;C$:   POKE  23607, po :  RETURN 
INPUT  "1-SAVE     0-LOAD  ";sl 

IF  si  THEN    INPUT  ("  SAVE     file  name  <-6  ");  LINE  n$ :  REM 

IF  NOT  si  THEN     INPUT  ("  LOAD     file  name  <=6  ");  LINE  n$ : 

2030  INPUT  "drive?  ";drv:  RANDOMIZE  USR  100:  GO  TO  drv 

IF  si  THEN    RANDOMIZE  USR  100:   SAVE  n$+" . Cf "CODE  64512,768 
IF  NOT  si  THEN    RANDOMIZE  USR  100:   LOAD  n$+".Cf"CODE  64512 
BEEP  1,10:  GO  TO  200 
REM  rotate  font 
INPUT     ("     ROTATE    CLOCKWISE  1-1/4        Turn'  2=1/2 

•3=3/4  Turn  ");  LINE    r$ :     REM    ROTATE    CLOCKWISE     in  INV 

LET  gr-PEEK  ( ch*256+256+ ( (CODE  g$-32)*8)+f) 





4020  IF  r$<"l"  OR  r$>"3M 
4030  LET  rot=CODE  r$-48 
4040  INPUT  ;:  PRINT  #0;  "Stand 

THEN    BEEP  1,1:   GO  TO  4010 



INPUT  ::  PRINT  #0 ; "Rotation  finished. Press 
GO  TO  200 

4050  FOR  r-1  TO  rot 
4060  FOR  q-0  TO  95 

408S  RaSdOMZE^^POKE  63166, PEEK  23670:   POKE  63167. PEEK  23671 
4090  RANDOMIZE  USR  63163 
4100  NEXT  q 
4110  NEXT  r 
4120  BEEP  1.10 
key . " :  PAUSE  0 
4130  STOP 

8500  DATA 
8510  DATA  40  3 
8520  DATA  48  242 
8530  DATA 
8540  DATA  0.6.8,25.209,115.43.16 

Qnlln  ?SS^rr2»1qWF  PROGRAM    drive?   ";drv:   RANDOMIZE  USR  100:  GO 

^°SrJfl^^  10°:     REM  ^ 


1  S  5  0 

—FORTY      YERRS      RGO  —  1S90 


1  9  3  0  

Thii  was  the  view  to  greet  you  after  a  cruise  an  Lake  Ontario. 

IhS  lnrge  building  on  the  left  is  thi  ROfRL  ¥0RH  HOTEL. 
Juit  to  left  of  centre  is  the  Canad ion  Bank  of  Commerce  Tower. 

In  the  fore-ground  is  the  cruise_ship  'CBfUOR'. 

This  is  an  impression  of  a  photo  in  the  Archives  of  Ontario 
artwork  by  Hugh  Howie  on  QL,  useing  E¥E-q,  Image  Processor,  a 

Page  Designer  2. 



Ml  t»c 

01  O  * 

tjclww  l. 

OJ  O  O  C  MlL. 
QL.CLfl.-w  CO 

uj     flj  flj  01  _J 
_  (0(0  oo 

ui  uzz 





ll  ZK-CtCiZZ 



O  L._- 

u  01Z 

Ml  LCC 



CL  C  — 1 


CCOIO.  - 

3C  3  OClJ  Z 


.0  1* 

*~  0.$  « 


0J«J  L 
u  UCj  *0  0 
-»  \ul 

an?  "O oi 
in  tn«->  rot 



.  Ml 

01  0 

•h  itja 















j  c  z 











^       uJ  -hL.3 
01     f  CCZOD«0 
-0     _;UI  fiQOaO 
O     O-Ml    w        -*  >- 
ZOJtflO'  0Ji£O0i 

aOOTJO^Om     Oi  C 
UZ    T3«  CZ^  LL  OO^ 
<0>*J-    <IU»-    "DLOT1  L 

uJiuCiZ  ^O*D0wu.i.LV) 
_JZ\u10_»uI-jCQ  C    ►-«  t> 
CDuJrt?    HO  l  Cjl    «a.    V  J 

ztouiv   lxuW  .H^uia 

«U>.m  c5o  uG- Olfl.-- 01  01  o 
^pffQtftrninT^inu  tun  go 



Z  CC 

Ht-IO  ii  »  ..KCCOZZZ*. 











fate  f 

O  \  l_ 


TJw  0.TJ  01 
C  L  UI  <0  O  -j  -» 

ii  n  n  LiOA]L 

ui  u 
ZZ  01 




Ml  OSL 


bJbJ  w  *D 
OOHrt)  i 

A.  01 
jwO  01 


rtj  ww  \  Ul 


5        yj        0>a>UiCiH-  __0-0.| 

'       r-  ^      i  .    t-  rv  <v  <v  in  in  inl 

in  ami 


G  Q 




CO  (0 

U  UJ 




U)  if' 

^  "0 



UJ  H 







^  Oi 

oi  ru 








S  £ 


Ml  <5 

m  x-'Mia 


(T)  U*^f<  Ml  <- 



u  ai  11 

flj  mat 

X    ~+  IT> 
O  - 
in<*-  i> 

w  i-O  v 

X-*'  CO 
O  L  O 


(0  T.  U  CD  O 
rvj^_«  <T     «-<  Ci- 

to      n    ui  ujo_ 

<E  II  v  O  CO  21  W  3 




o  -« 

U.  O'i 

Ui  c 

o  «» 


c  e 


CD  + 


— «  CO 




W  X 




+  * 

*  ° 
i  a> 

01  -n 


~>  O 

01  o 


cl  ui  x  v  x 

<r  cluz z: 

h-io  <r  H-t-itt 

no.  u  <r  a:  a 

UJ  3 



Ui  <& 


+*>  -J 

oz  <r  o 

<=><_>  o 



C  3 
<0  O 





•ti  o  CO 

0.'  — •  J1  IB 
C  O  0) 

i.     t  O 
O  01  CO  O  ^  i_ 

in  r-i 

oi  ca«c 

v   01  UJ  i-  t= 

oo  c^ottir 

O  <4-X(UJ 

<— <  m  — «  0' 
«  ?'      £u_  OoS 

5  z:^ 



—  0)  y^. 

01  3> 
^  01  01 
w  3  ^ 

„  Ji.m       O  01 

r,         -r4  £    Cl  ~t  +■>  t—  i-O 

01  g  OI-*'  —  6       C  fl> 

bi  t  Mi  &.  l  ai  <v  o  p  w  ii  „,  ~  -  —  -  _ 

DgDOiia  KOUJC0  ^  3-^Ctu-0-3 

II    II  II  -J  II 


>  X  — • 
+  O  _J  (J-J  c 
CO  Q_  UI  <I  QQiUI-tH 
CO     _jQ£  h-ifiUJCOOCM 

c  oi    o  q 

v  i.  i-  oi 

CL  01  W  X 

ai    :>  o> 

UI  O  01  U 




:  L 
01  01 

Ui*-"  . 
3  Ci_ 


t—  i.  o 


.  O  i. 


W  01 
,    _  *C0 

m*iDfcTcui  01  nJ 
UI  17  O    *~  0 

_j  <r^  oxoj 
h-co  5  s-.*  won 


-75  01 
:  ■*+■»-> 

■  oai 

:  flJO! 



fljl— • 


L0»  ■> 

oc  w 
ai— ijz 

01  ii. 


73  -73  O 
Ui-^X  01 





Software  Review  -  C0L0R2GREY 

by  Jeff  Taylor 

Have  you  ever  saved  a  really 
colourful  screen  file,  then 
tried  to  print  it  and  been 
dismayed  to  see  that  the 
attributes    had    been  stripped 

off?  a  ^ 

Have  you  ever  wondered  how  you 

could    get    all     of    the  file 
pr i  nted? 

Well,  wonder  no  more.  John 
McMichael.  known  for  his 
innovative  interfacing  of  206BS 
to  a  variety  of  printers  and 
plotters,  has  created  a  program 
which  converts  the  file  to 
greyscales  for  printing. 

C0L0R2GREY  is  a  very 
user-friendly  program  which 
offers  you  the  choice  of  editing 
the  greyscale  palette  to  suit 
your  taste  and  to  best  set  off 
the  various  attributes.  Upon 
loading,  the  user  is  asked  to 
load  a  screen  file.  Once  this  is 
done,  the  conversion  process, 
based  on  the  current  greyscale 
settings,  conmmences.  You'll  be 
amazed  as  the  program  runs 
through  the  sequence  of  colours, 
stripping  off  the  attributes  and 
storing  them  in  a  greyscale 

After  the  conversion  is 
complete,  you  are  presented  with 
the  main  menu  which  allows  you 
to  view  the  new  greyscale 
screen,  save  it.  copy  it  to  the 
2040  printer,  go  into  the 
greyscale  editor,  etc. 

If  you  choose  to  enter  the 
editor,  you  are  shown  a  palette 
of  textures  which  correspond  to 
the  colours.  If  you  wish  to 
change  any  of  these  textures  you 
pick  the  appropriate  number  and 
are  then  allowed  to  alter  the 
pixel  density  by  adding  or 
deleting  dots  from  a  grid.  You 
continue  until  you  are  satisfied 
with  your  new  pallete  then 
return  to  the  main  menu  and  try 
the  conversion  process  again.  If 
you  are  not  pleased  with  the 
results  edit  the  palette  again. 

It's  that  easy. 

C0L0R2GREY  can  produce  some 
very  interesting  results  and  is 
is  a  great  tool  for  learning  how 
attributes  are  used.  At  any  time 
during  the  conversion  process 
you  can  break  in  to  view  a 
particular  attribute  then 
continue  to  the  end  of  the 
process.  An  excellent  tool  for 
anyone  interested  in  colour 
graphics . 

C0L0R2GREY  comes  on  cassette 
and  is  easily  converted  to  disk 
by  anyone  competent  in  BASIC. 

C0L0R2GREY  is  available 
exclusively  from  Ed  Grey 
Enterprises,  P.O.  Box  2186. 
Inglewood.  CA  90305.  $12.95  US  + 
shipping . 

Typical  Screen  Dump 
Crime  is  a  disease.  He's  the  cure. 


E  C  .J 

f'»  WW  \ 

prime  is  d  disease  HeV  the  care. 

f  K        •    _  

|9Bb  Wrfrtw-fcrn/.lnc  i-V.^^-.St.^*.".-.-:-  A\:  rtonfx  r<»ww*._ 

C0L0R26REY  With  Resident  Greyscale 



C0L0R2GREY  With  Modified  Greyscale 

CQL.QR2GREY    iv  i.<3) 


<£>  Uiew  greyscale  £uref.n*: 

(Hold   <ft>  tey   to  view.  J 

<!7>  'iieui  color  screen*. 

"  """"(Hold   <B>  *ey  to  view. J 

<g>  save  greyscale  screen*. 

<S>  Save  color  screens. 

<S>  5ave  greyscale  datd. 

<S>  Load  greyscale  data. 

<g>  Copy  greyscale  to  204-0. 

<d>  Greyscale  editor  . 

<gi>  E>o  another  conversion. 

<S>  Quit    to  BASIC. 

Nain  Menu 

copyrighr~S9-John  HCHicnael 

<S>dd  point 
<S>eiete  point 
<5>lear  grid 
<2>eep  g_scale 

<jL>eturn  to  main  menu 

BLK  BLU  RED  HflG  GRN TvN  VfclL  Jill 
8        1       2       3       4.       5  & 

A    New    Computer  Use 

To:   All  Employees 

POLICY  STATEMENT:  In  the  past,  you 
were  permitted  to  make  trips  to  the 
restroom  under  informal  guidelines. 
Effective  June  1,1990,  a  Restroom  Trip 
Policy  (RTP)  will  be  established  to 
provide  a  method  of  accounting  for 
each  employee's  restroom  time  and 
ensuring  equal  treatment  to  employees. 

PROCEDURE:     Under      this      policy,  a 

••Restroom  Trip  Bank"  (RTB)  will  be 
established  for  each  employee.  The  1st 

day    of  each  month,     employees  will  be 

given     a  Restroom  Trip  Credit  (RTC)  of 

20.  Restroom  trip  credits  can  be 
accumulated  from  month  to  month. 

Currently,  the  entrances  to  all 
restrooms  are  being  equipped  with 
personnel  Id.  stations  and  computer 
linked  voice  print  recognition.  During 
the  next  weeks,  each  employee  must 
provide  two  copies  of  voice  printsCone 
normal. one  under  stress)  to  Personnel. 
The  voice  print  recognition  stations 
will  be  operational,  but  -not 
restrictive,  for  the  month  of  June,- 
employees  should  acquaint  themselves 
with  the  stations  during  that  period. 

If  an  employee's  Restroom  Trip  Bank 
balance  reaches  zero,  the  doors  to  all 
restrooms  will  not  unlock  for  that 
employee's  voice  until  the  first  of 
the  next  month. 

In  addition,  all  restroom  stalls  are 
being  equipped  with  timed  paper  roll 
retactors.  If  the  stall  is  occupied 
for  more  than  three  minutes,  an  alarm 
will  sound.  Thirty  seconds  after  the 
alarm  sounds,  the  roll  of  paper  in  the 
stall  will  retract.  the  toilet  will 
flush  and  the  stall  door  will  open. 

from  SMUG 
Sinclair  Milwaukee  User  Group 

Greyscale  Menu 



ttt  ARCHIVE    FIELDS  *** 

How  to  RENAME  or  CHANGE  or  ADD 

by      Hugh  H.  Hoaie. 

One  of  the  probleas  anen  creatine  a  file  in  Archive,  is 
gettina  vour  fields  right  the  first  tin.  But  there  is  a 
little'trick  which  can  go  a  long  way  to  solving  this 

Say  you  have  created  a  file  and  entered  nany  records, 
then  decide  vou  aust  have  another  field,  or  you  do  not 
like  the  title  of  one  of  the  fields  you  do  have,  you  have 
fen  alternatives,  as  Archive  does  not  Bake  provision  tor 
changing  fields  after  the  'endcreate'  coaaand  has  been 
used,  and  you  have  started  the  entering  of  records.  This 
leans  that  vou  have  to  scrap  everything  you  have  done, 
and  start  all  over  again,  and  I  can  hear  the  wittering 
and  luiblino  froa  here.  I  knoa,  it  has  happened  to  ae, 
and  1  had  84  records  entered,  all  aith  7  to  16  fields.  * 
started  to  create  another  file  and  got  tired  of  it,  left 
it,  and  it  aas  a  long  tiae  before  1  got  back  to  it.  All  1 
wanted  to  do  aas  insert  a  couple  fields  in  the  aiddle  or 
the  file,  and  change  the  naae  of  soae. 

Hhen  I  finally  did  return  to  the  chore,  which  it  had  no* 
becoae,  I  had  a  better  idea  of  ahat  to  do,  as  I  had  been 
playing  aith  Abacus  quite  a  bit  and  exporting  soae  data 
to  Easel,  using  Taskaaster.  One  tiae  1  got  a  bit  careless 
and  without  thinking  1  laporteri  a  file  to  Archive  instead 
of  Easel.  Lo  and  behold,  the  file  caae  across,  and  then 
the  brain  started  to  aork,  (Hercule  Poirot  aould  have 
been  proud  of  ae) 

If  a  file  could  be  laported  to  Archive  froa  Abacus,  ahat 
happened  if  I  exported  a  file  FROH  Archive  to  Abacus?  I 
tried  it  and  it  caae  across  to  Abacus,  I  played  around 
soae  aore,  aade  soae  alterations  in  Abacus,  sent  it  back 
to  Archive,  and  ay  file  aas  just  ahat  1  aanted.  And  1  did 
not  have  to  re-do  the  ahole  thing.  Here  is  hoa  it  is 

Load  your  file  in  Archive,  oy  the  use  of  'LOOK',  and  then 
take  an  export  file  of  it, 

txport  'title'  leator) 

Load  in  Abacus,  type:- 
FJ       'F'iles    'I 'sport 
'C'oJums  (The  default  is  Robs) 

title  leaterJ 

The  reason  for  using  coluans  instead  of  roas  is  because 
the  fields  will  be  in  coluans  in  Abacus.  Your  file  should 
noa  be  in  Abacus  aith  the  labels  across  the  top  in  roa 
11,  and  all  the  info  doan  the  coluans. 

Hoa  to  put  in  a  couple  of  coluans,  ahich  is  ahat  is 
required  ,  there  are  tao  aays  to  do  it.  You  can  place  the 

cursor  on  the  cell  after  ahere  the  nea  coluan  has  to  go, 
or,  vou  can  change  the  default  as  it  is  presented  on 
screen.  He  aill  use  the  first  aethod,  and  place  the 
cursor  on  the  coluan  AFTER  ahere  the  nea  one  has  to  go. 
Just  aatch  the  proapts  and  defaults,  altering  as 
necessary,  and  you  aill  have  no  trouble,  the  prograa  is 
very  user  friendly.  Don't  be  afraid  of  it! 

FJ        '6 'rid 

0  Of  COlUSOS 

Tosert    'C'olusos  (default  is  Roas) 
(default  is  1  alter  to  suit) 

To  give  the  nea  coluan  a  naae  (field)  place  the  cursor  on 
the  cell  ahere  naae  has  to  go,  iype:_   'Hue  ieaterJ 

The  next  step  is  to  RENAME  soae  of  the  fields,  and  this 
is  done  by  placing  the  cursor  on  the  naae  to  be  changed 
and  tvpe  'Hiss  i enter).  Hake  any  changes  to  the  labels, 
(fields),  you  have  a  aind  to.  But  be  cautious  as  you  aay 
create  soae  trouble  for  yourself  later  ahen  you  are  back 
in  Archive,  as  if  the  position  of  a  label  is  changed,  the 
label  aay  not  have  the  correct  data.  (This  aill  aean 
extra  aork  in  Archive,  but  not  msuraountable.) 

Mhen  you  have  aade  your  corrections,  save  this  as  an 
aba  file  in  case  you  aant  to  coae  back  to  it.  You  aill 
also  have  to  Bake  an  _exp  file  of  the  nea  setup.  Once 
again  use  COLUHNS  not  roas.  CAUTION:-  A  nea  naae  Bust  be 
found  for  the  file  exported  froa  Abacus,  such  as  add  a 
1*  to  it,  Dtheraise  you  aould  have  tao  files  aith  the 
title.exp.  One  Archive,  the  other  Abacus.  (Mot  possible) 

At  this  point,  (presuaing  you  used  a  disk  in  12  aith  only 
the  File  you  aanted  to  alter)  it  aould  be  a  good  idea  to 
look  at  the  directory  of  the  disk,  it  should  look 
soaething  like  this:- 


6o  back  to  Archive, 

data  file  in  ARCHIVE 
data  file  exported 
aaended  file  in  ABACUS 
aaended  file  to  go  to  ARCHIVE 

■! 'sport 

'tWo'     'title'  IeaterJ 

That  should  be  it.  You  aill  soon  knoa  if  you  have  aade 
an  error.  Probably  the  aost  likely  error  is  if  you 
changed  the  position  of  a  Field  in  Abacus;  this  being  so, 
just  use  Alter  ano  change  the  data  around  in  Archive. 

Save  the  nea  dbf  file  under  the  nea  naae.  Of  course  if 
TK2  or  Truapcard  is  available,  then  the  REMADE  coaaand 
aill  set  everytng  straight.  Else  you  have  a  nea  naae. 

Nov  if  this  should  appear  to  be  a  lot  of  aork,  then 
think  about  the  labour  of  creating  a  coapletely  nea 
file,  and  typing  all  that  stuff  back  in.  I  think  this  is 
easier.  Sl* 


More  on  RESPRing  from  Nfld. 

There  is  a  problem  with  Real 
GagnoTnhrtwo  line  method  of  CALLing  upa 
machine  code  extension  (Sink  Link  Nov 
Dec  '90).       RESPR  is  a  bit  more 
complicated  than  he  implies     and  in  many 
^ases  his  method  will  result  in  a  CRASH 
=ince  it  may  CALL  the  wrong  address 
Try  the  following  on  your  QL- 

100  CLS 
110  a=RESPR(0) 
120  b=RESFR(193) 
130  c-RESFR(O) 

PRINT  a-b 
PRINT  a-c 


You  will  get  the  two  numbers  208  and 
512!       (Not  193  and  193  as  you  might 
expect.)      The  first,    (a-b).  ^sth« 
amount  of  space  reserved  ^°u^°de' 
208  bytes  not  the  193  you  "ked  for. 
This  is  all  right  since  ODOS  always 
RESPRs  an  exact  multiple  of     6  byte, 
giving  the  next  one  greater  than  your 
request;   there  is  always  enough  room. 

you  know  •^[J^r.^irSS  manages 
However  on  the  larger  s-*15  "*  - 
memory  in  blocks  of  512  bytes     so  if  your 
request  is  not  a  multiple  of  512  the  of  that  block  is  wasted,   and  tne 

^starts  at  the  next  whole  empty 
block;  hence  the  value  of  512  for  (a  c). 
Thus  RESPR(O)  will  only  be  the  «*«V 
address  to  CALL  if  the  amount  of  memory 
reserved  is  an  exact  multiple  of  512 
bytes . 

A  further  implication  of  this  is 
that  if  you  want  to  install  several 
extensions  there  could  be  juitj^t  J 
wasted  space  if  you  RESPR  <*rT^™0£th 
TKII)  each  one  separately.       It  xs  more 
ifricient  to  write  a  few  lines  in  your 
boot  to  RESPR  the  total  m  one  go  and 
then  LBYTE  and  CALL  each  routine  at  the 
^rooriate  place  within  this  area  of 
memory        ?he  following  PROCedure  would 

do  the  trick: 

500  REMark  "  "*  irv+n-fn* 
502  DEFine  PROCedure  Jft^V*  s -Q 

504  LOCal  a,c$.d$.i,n$(n,  10)  ,b(n)  ,s-  s-u 

506  RESTORE  528  ,         x         . , 

508  d^"mdvl_":  REMark  «<  Alter  to  suit 

5?0  c$=-_code-:  REMark  <<<  ^Ti) 

512  FOR  1=1  TO  n:  READ  nS(i).bCx) 

514  FOR  i=l  TO  n:  s  =  s+b(i) 

516  a=RESPR(s) 

518  FOR  i  -  1  TO  n 

520      LBYTES  d$&n$< i)*c$, a:  CALL  a 

522      PRINT  n$(i)=  a  =  a  +  b(x) 

524  END  FOR  i:   DATA 

526  REMark «  -  ck»  2738 

528  DATA  "replace ",168,  ramdisk  ,2738 
530  DATA  "edlines",350 

Insert  the  statement  Load.Extna < 3 ) 
in  the  main  part  of  your  boot  and  all 
will  be  looked  after.       You  have  to  tell 
it  how  many  extensions  there  are.   so  make 
sure  there  is  enough  DATA  unless  you  are 
interested  in  learning  a  few  more  error- 
messages.       Too  much  means  that  only  the 
first  n  will  be  loaded,  but  won  t 
generate  any  errors.       The  names  and 
lengths    of  the  files  containxng  the 
machine  code  are  given  as  DATA  statements 
after  the  PROCedure.       As  written  the 
procedure  assumes  that  there  are  the 
programs:   replace.code ,   ramdxsk  code  and 
edlines  code  on  mdvl_.       You  will  have  to 
adapt  these  to  suit  your  own  needs. 

LOCal  arrays  n$( )  and  b( )  are 
dimensioned  (504)  according  to  the  value 
of  the  parameter  n.  and  the  DATA  read 
into  them  (512).      The  total  number  of 
bvtes  required  is  determined  (514)  ana 
RK?Re5    and  the  files  LBYTEd  and  CALLed 
fn the  final  loop  (520-524).      The  name 
of  each  is  printed  on  the  screen  as  soon 
fa  !Hs  active.       If  you  need  more  than 
10  characters  per  name  then  increase  the 
second  parameter  for  n$  in  line  504. 

Howard  Clase, 
Box  9947,  Station  B, 
St.  John's,  Nfld, 
Canada  A1A  4L4. 

(709)  753-6415 

-mail  hclase® 


507  CI  if ton  Ave. , 
Find  I  ay,  OH  U58U0 

Dear  George,  something  new  for  you.    You  or  one  of  the  other  liters 

in  the  'last  issue  lent  ion  the  lack  of  any  sort  of  Tasword  compressor  ,  ,ke  a  II 
the  PC's  have  and  such.   Well,   that  is  easy  to  fix!  Here,   for  use  is 

that  I  could  only  call   TasPak,  a  Tasword  file  compressor  and  *^°^™r' 
Let  me  back  up  a  little  bit  first.  One  obvious  **Y  Jo  ll^ilmrlthas 
files   is  to  use  Tas>MS,   which  for  most  files  will  ma      "JJ.JJJ     a  fi  le  with 
two  problems,   though.  First,    it  doesn't  always  make  '  a  f,,e  wt*h 

no  spaces,    if  you  can  imagine  such  a  thing,   becomes  1 .5%  J'JJJf'   ^cond  it 
isn't  completely  reversible.     I  have  written  o  Program  Jo o    e      N    r  p t 
files  to  Tasword  files,   but   in  certian  cases  the  spacing  is  different   in  the 

reSUSt'ill     the  basic  idea  is  good.   If  there  are  spaces  at  the  end  of  a  line, 
take'VhlL^TaTrlpZi:  thel  with  some  special  ^.ctjr.  JJ//.  £~  at  it. 
why  not  convert  indents  and  tables  to  some  sort  of  ™B  Jh°rac ter?  Ac^aUy, 
there  are  2  different  ways  I  could  have  done  this.    1  chose  a  tab  like  on  a 
tvoewr iter  as  opposed  to  a  TAB(x)  like  in  Basic. 

Both  of  these  are  good,   but  they  only  apply  to  space.   What  about  something 
that   is  mostly  characters?  Well,    I  follow  what  happens  , n PC  ^ression 
programs  -  /  do  read  BYTE,   after  all.  So  I  can  tell  you  what  they  do.  They 
take  orouos  of  characters,   and  rep/ace  them  with  a  single  symbol.  But  they  do 
lo  in" a  fashion  that  depends  on  the  file.   That  way,   a  file  of  all  numbers  is 
compressed  efficiently,   while  a  file  with  no  numbers  l£ ,  a  I  so  compressed . 

Now,    I  don't  want  to  mess  around  with  variable  length  strings  and  al I  that 
stuff,   but  I  -do  have  one  advantage.    I  know  that  Tasword  uses  characters  f rom 
space  to  GRAPHICS  SHIFT  B,   whereas  a  PC    word  processor  might  f 
a  PC,   the  other  characters  are  things  I  ik-e  e  and  6  or  Greek  letters)  °*hJJ 
words,   Tasword  only  has  112  possible  characters,  and  I  can  use  the  other* t  for 
pairs  of  characters.  Since  I  use  one  for  a  tab,  and  one  for  an  end-of-IIne, 
that  means  I  have  1*2  characters  to  use  for  pairs  of  tettors. 

Now,   J  was  able  to  use  all  this  in  a  way  that  guarantees  the  result  can 
never  be  longer,  and  that   is  completely  reversible.    In  other  words,   the  result 
of  compressing  and  then  uncompressing  is  indistinguishable  from  the  original, 
regardless  of  what  the  original  might  have  been.  As  a  further  in*9rJstl"9. 
sidenote,   if  you  try  to  uncompress  a  file  which  was  not  compre sssed  noting 
will  change.  Note  that  trying  to  compress  a  compressed  file  will  produce  one 
which  couldn't  be  interpretted  by  the  un-compresser. 

I  should  menti0n  a  possibility  that  I  didn't  use.  Since  Tasword  only  uses 
112  characters,    it  would  be  possible  to  use  a  bit  compression  routine  '  make 
every  7  bytes  represent  8  characters.   This  would  always  compress  things  by 
12.5%.   That  isn't  bad,  but  it  could  be  better.   I  can  reasonably  *«X  J^**  ™  _ 
average  file  should  be  compressed  about  «0%  by  my  program.  Files  with  a  lot  of 
spaces  will  do  even  better.   The  bad  news  is  that  there  could  be  a  file  that 
achieves  no  compression  at  all.    I  can't   imagine  that  it  would  be  anything 

meaningful ,  but  who  knows?   

Of  course  this  routine  has  been  specifically  set  up  for  Tasword.  Not 
knowing  about  things  like  printer  control  codes  for  Mscript,   all   I  can  say  is, 

don't  use  it  for  that.  in 
There  is  one  problem  with  TasPak.   The  buffers  overlap  just  a  little  in 
memory.    That  means  that   if  you  have  a  file  that  starts  with  200  blank  lines, 
It  won't  uncompress  properly.  Under  presumption  that  it  will  only  be  used  on 
reasonable  files,    it  should  never  run  into  problems,  tut  just  ^o /ou  are  aware 
of  that  limitation.    I  already  said  that  TasPak  was  strictly  limited  to  Tasword 
files,   and  not  to  try  to  compress  something  twice.  Of  course,   you  can  always 
use  my  Mscript  to  Tasword  converter  and  then  compress  -  as  long  as  your 
Mscript  file  has  no  printer  control  characters. 

Steven  Gunhouse 


basic  FOR  "TasPak.Bz" 
100  CLS  :  PRINT  AT  3,8;"Tasvord 
Utility: AT  4, 8; "File  compress 
ion-; AT  6, 5; "by  Steven  v.  Gunhou 

S110  PLOT  60,132:  DRAW  0,23:  DRA 
W  159,0:  DRAW  0,-39:  DRAW  -183,0 
:  DRAW  0,39:  DRAW  159,0:  DRAW  0, 
-23:  DRAW  -135,0 

120  RANDOMIZE  USR  32768 

130  PRINT  AT  18,0; "File  to  Load 
•> "  •  •   ( ENTER  to  see  CAT)" 
*140  INPUT  "File?   ";   LINE  IS 

150  IF  1$  =  ""  THEN     CLS   :  PRINT 
#4:  CAT  ".CT",:  GO  TO  140 

160  FOR  1  =  1  TO  LEN  1$:  IF  l$(i> 
<>"."  THEN  NEXT  1:  LET  1$=1$+  • 

170  IF  LEN  l$Oi  +  2  THEN     GO  TO 

l175  IF  lS(i+l)<>HC"  THEN     GO  TO 

180  IF  LEN  1$>9  THEN     GO  TO  140 
200  PRINT  '"Loading  ";1$ 

210  POKE  23728,100 

211  PRINT  14:  LOAD  1SCODE  45056 

212  IF  PEEK  23728  =  101  THEN  PAU 
SE  30:  GO  TO  100  ^ 

220  CLS  :  PRINT  "File  ";1$;H  lo 
aded . " 

230  PRINT  AT  8 , 0 ; "Opt ions : 

240  PRINT  • "1.  compress  file. 
"2.  Uncompress  file." 

250  PRINT  '"Your  choice? 

260  PAUSE  0:  LET  a$«INKEY$:  IF 
a$<"l"  OR  a$>"2"  THEN     GO  TO  260 

270  PRINT  AT  13,13;aS 

300  IF  a$»"l"  THEN    LET  len»USR 


310  IF  a$«"2"  THEN  LET  len«USR 
32928  .t,  _„ 

350  PRINT  ""Save  nev  file  as? 

•      ENTER  for  same  name)" 
360  INPUT  "Name?  ";  LINE  s$ 
370  IF  s$=""  THEN     LET  S$  =  l$ 
380  FOR  1  =  1  TO  LEN  3$:   IF  3$  ( i ) 

<>"."  THEN     NEXT  1:   LET  3$«S$+". 


390  IF  1  +  20LEN  3$  OR  LEN  S$>9 
THEN    GO  TO  360 
400  IF  3$U+1K>"C"  THEN     GO  TO 

410  PRINT  '"Saving  ";s$;",  leng 
4 20 'pRINT  14:  SAVE  s$CODE  33280 
'430  INPUT  "Another  file?  (Y/N) 

"  *  3$ 

440  IF  a$  =  ""  THEN     GO  TO  100 
450  IF  a$U)=HY"  OR  a$(l)=My"  T 
HEN     GO  TO  100 
8990  STOP 

9800  RANDOMIZE  USR  100:  OPEN  #4, 

9810  CLEAR  32767  „- 
9820  PRINT  M:  LOAD  "TasPak.Cz  c 


9830  RUN  „_a-D.k  Bz« 

9900  PRINT  14:  SAVE  "TasPaK .Bz 

SSStt  14.  SAVE  .TaSP.*.Cz-c 
ODE  32768,410 

utn  mtnFR  FOR  "TasPak.Cz" 

2  CLEAR  32767:   LET  xl=32767 

3  CLS  :  PRINT  AT  10,5;"Loadin 

4  LET  x=l:  LET  cs=0:  LET  a=l0 
:  LET  b=ll:  LET  c=12:  LET  d=13: 
LET  e=14:   LET  f=15 

5  READ  a$:   IF  a$="END"  THEN 
GO  TO  10 

6  FOR  n=l  TO  LEN  a$  STEP  2:  L 
ET  v=16*VAL  a$(n)+VAL  a$(n+l):  P 
OKE  X+xl,v:  LET  x=x+l:  LET  CS=CS 
+w*x:  NEXT  n 

7  GO  TO  5 

10  IF  cs<>8896655  THEN  PRINT 
"Error  in  DATA!":  STOP 

15  RANDOMIZE  USR  100:  SAVE  "Ta 
sPak.Cz"CODE  x1,x+1 

9949  DATA  "2100B006000E4D3E" 

9950  DATA  " 20772310FCOD20F9" 

9951  DATA  "OE02067036002310" 

9952  DATA  "FB0D20F83E90068E" 

9953  DATA  "77233C10FB3680C9" 

9954  DATA  "CD7E81230600041A" 

9955  DATA  "13FE202023E52A00" 
99  56  DATA  "FFA7ED52E138587B" 
9957  DATA  "E63F200B3E1E2BBE,, 
99  58  DATA  "28FC23361F18DCCD" 

9959  DATA  "6C8138DA361E18D3" 

9960  DATA  "F505280F78362023" 

9961  DATA  "10FBFE0338057B3D" 

9962  DATA  "CD5081F1471AFE20" 

9963  DATA  "20037018B6E521FF,, 

9964  DATA  "FC0E8F0C237E23A7" 

9965  DATA  "280FB820F61ABE20" 

9966  DATA  "F2E17113CD378118" 

9967  DATA  "9AE1CD1A8118F511" 

9968  DATA  "0082A7ED52444DC9" 

9969  DATA  "CD7E81230600041A" 

9970  DATA  "13FE1E200B362023" 

9971  DATA  "7DCD6C8138F718EC" 

9972  DATA  "FE1F200A3620237D" 

9973  DATA  "E63F20F818DEFE20" 

9974  DATA  "200CE52AOOFFA7ED" 

9975  DATA  "52E138C318D0F505" 

9976  DATA  "280E7836202310FB" 

9977  DATA  "FE0338047DCD5081" 

9978  DATA  "F1FE1E3804FE9038" 

9979  DATA  "1B4FD690D5E52100" 

9980  DATA  "FD16005F1919EBE1" 

9981  DATA  "1A7713231A77D1CD" 

9982  DATA  "37811897471AFE21" 

9983  DATA  "300370188ECD1A81" 

9984  DATA  "18ED70231A7713D5" 

9985  DATA  "E52100FD3A70FE4F" 

9986  DATA  "D6905F16001919D1" 

9987  DATA  "70231A77EBD1C9D5" 

9988  DATA  "E52170FE545D7E23" 

9989  DATA  "B928FB1213FE8020" 

9990  DATA  "F5121B7912E1D1C9" 

9991  DATA  "E63F4FD5E50C2120" 

9992  DATA  "FE545D7E23B928FB" 

9993  DATA  H1213A720F60D1B79" 
<»Q94  DATA  "  12E1D1C9E63F4FD5" 
9?95  DATA  "1120FE1A13B92804" 
llll  "3  "A720F837D1C9210  J 
«)997  DATA  " FD3E2 0 2BBE2 8FCZ 2 
llll  SaTA  -OOFF1100B021FF81" 
9999  DATA  "C9",MEND" 


November  27, 1990 

14  Richome  Court, 
Scarborough,    Ont.   M1K  2Y1 

Les  Cottrell 

108  River  Heights  Drive 

Cocoa,    FL  32922 

Dear  Les, 

Bob  Mitchell   has  been  working  on  the  rotating  of  character  sets- 
He  has  produced  a  disk   for   the  library.    I  am  going  to  put   it   into  a 
collection  of   disks  under   the  library  disk  number  37.    I   enclose  a  copy 
in  this  package  since  I   think  you  would  be  interested. 

Re  the  computers.    I   have  one  left.    It   is  the  one  that  was  offered 
for  *50.    I   am  offering   it   for  *35,    if  you  are   interested.    I   think  I 
mentioned  that  while  the  keyboard  works  properly,   and  looks  in  perfect 
condition,    there  is  cutout  on  the  rear  of  the  upper  ase  in  V1<~in^ 
of   the  metal   RF  box.   The  cassette  door  seems  to  be  slightly  dodgey,  and 
maybe  more  importantly,    there  does  not  seem  to  be  any  Mom  tor  output . 
The  TV  output   is  OK,    though   I   don't   like  TV  colours,    never  did!   But  the 
colours  were  proper.    I'm  puzzled  by  the  lack  of  a  monitor  output  Both 
computers  seemed  to  suffer   from  that,   which  puzzles  me.    I   don  t  think  it 
was  my  monitor  out  of  adjustment. 

I   mention  all   this  so  that  there  won't  be  any  sense  of 
disappointment.    It   isn't  my  product,    I'm  only  someone  doing  a  good  turn, 
and  il  wouldn't  be  a  good  turn  to  you  if   I   did  not  mention  these  items. 
I   loaded  a  huge  program  into  the  computer  via  tape,   and  it  w°^ed 
properly.    I  could  find  nothing  wrong  with  the  memory.    I  hooked  up  a 
[arken  Disk  drive  to  it,   and  it  worked  properly.    It  also  saves  to  tape 
aT  well  as  loads  from  tape.   The  cartridge  door^works  properly,   but  the 
spring  tension  seems  weak?    I  mentioned  "dodgey". 
The  computer  has  a  "reset"   switch  installed. 
The  2040  printers  have  both  gone,    as  has  the  2050  modem. 

Bob  mentioned  that   the  keyboard  matrix  that  we  put   in  the  last 
newsletter  "was  "shrunk".    I  was  thinking  that  we  should  -  a  as 
them   in  our  newsletter.   Seemed  like  an   interesting   idea.   But   it   looks  as 
if  we  should  get  an  "enlarged"   copy  for  Jeff  to  use,   once  we  have 
determined  how  much  his  copier  shrinks  them.   Our   local   library  has 
aXer ox  copier  that  can  enlarge/reduce,   and  you  choose  the  degree  of 
change  in  percentage  points. 

The  character  rotator   that  Bob  used  came  from  the  program  SuperCode 
3  J  Are  you  familiar  with   it?   It  contains  152  rn/c  routines  to  do  a 

so     things.   Well,   many  of   them  are  fancy  scroll  routines,   but  there 
are  some  Pretty  clever  ones  besides  that.       have  used  one  of     hem,  and 
"ON  ERROR  GOTO"   routine   for   the  Spectrum,    that   I   use   in   the  club 
Spectrum  disks  to  return   to  the  menu  while  viewing  a  Help  file. 

I    have  received  two  exchange  club  newsletters  recently,   which  show 
signs  of   deter i or t ion.    The   Indiana  TSUG  newsletter  has   12  pages .  An 
TllCstrated  par**   list   of   the  QL  kit  that,    was   it  Sharps,    sent  out  with 
^^•r^offer   of   QL  kits  some  months  ^^f^^^^e 
pages  were  given   to  a   Z88  advert,    one  page  to  a  Bytepower  adver.. 

wasn't  much  left. 

The  Sinclair  Milwaukee  group's  newsletter  di d  not^.v. 
on   the  Time*  computers.    There  was  a  lengthy  article  by  Dr  Drege, 

Artificial    Intelligence.    And  there  were  adverts  for  Timex  stuff   by  , 
EMSOFT,    and  one  from  RMG  Enterprises,    and  a  half-page  humorous  story 
about  a  man   lowering  a  bucket  from  a  roof.   And  a  notice  that  they  were 
going   bi-monthly   because  of  a  dearth  of  news  and  member  contributions. 

Makes  one  wonder  what  we  are  doing  right,    doesn't  it? 

I'll   allow  that  The   Indiana  one  was  put  out   by  Frank  Davis,    and  I'm 
sure  that   he  has  had  his  hands  full  getting  outthe  first   issue  of 
I    UPDATE.      I   received  a  complimentary   copy  of  UPDATE,    with  a  note  asking 
j    if  maybe  I   had  overlooked  renewing  my  subscription.    I   hadn't,    because  I 
[    did  not  plan  on  renewing.    I   had  become  disenchanted  with   the  contents  of 
UPDATE.   UPDATE,    a  magazine  that  was  started  on   the  premise  of  serving 
disk  system  owners.    It  never   lived  up  to  that  promise,   as  far  as  I  am 
concerned.    In   the  beginning  only  Oliger's  system  seemed  to  rate.  Then, 
as  soon  as  Bill   Jones  discovered  the  QL,    that's  all   the  magazine  seemed 
to  have  after   that.   And  the  current   issue  does  not  seem  to  have  changed 
much.   Well,    there  was  a   lot   less  of  Bill's  extravagant  programming 
exercises  in   it,   what  a  relief! 

I  shouldn't  complain,    really.   Frank  Davis  gave  us  a  nice  report  in 
this  issue  of  UPDATE!    Really,   quite  flattering.    I shall  expect  a  few  new 
members  to  Join  after   that.    I   have  mixed  feelings  about  that.  Especially 
after  Just  getting  off  newsletters  to  75  OCT  members!   Enough,  really. 

Our  Larken   disk   library  continues  to  grow.   We  are  at  about  disk  #38, 
with  one  or  two  in  the  wings,    that   I   have  not  had  a  chance  to  polish  up 
yet . 

RMG  Enterprises  sent  our  club  a  copy  of  their  catalogue  the  other 
day.    It  has  50  pages  on   it?    full   of   interesting  stuff. 

One  of  my  Quad  drives  quit  on  me.    I   think   I  mentioned   it   in   the  last 
newsletter.   When   I    look  around  in  Computer  Shopper,    for  example,    I  see 
where  the  surplus  Tandon  Quad  5   1/4  inch  drives  have  all   been  taken  up? 
there's  no  more  being  offered  in  the  surplus  stores.    Interesting.  Now 
they  seem  to  have  a  surplus  of  3  1/2  inch  Quad  drives!! 

Well,    I   think   I   shall   close  this  off,   maybe  K'll   think  of 
something  else  by   the  time  this  has  printed  out. 

Sincerely , 

George  Chambers. 

Nov/Dec  1990 
November  12th,  1990 
Dear  Out  Of  town  Members, 

I  ran  off  the  labels  for  this  issue 
of  the  news  I etter ,   and  I  was  quite 
surpr  ised  to  see  that  there  are  75 
out-of-town  members.   Our  normal 
compl ement  has  been  55  or  so.     So  that's 
why  my  work  load  seems  to  have  increased 
in  past  months.    I  thought  I  was  losing 
my  grip  or  something.   Well,    I  think  that 
I  am  starting  to  lose  my  grip,   but  at 
least  I  know  why!! 

I'm  not  sure  just  what  the  reason  for 
tjte  increased  membersh  ip  is.  Maybe  it 
had  something  to  do  with  inactive 
membersh  ips  being  carried  along  with  the 
6-month  extens  ion  we  made.   On  the  other 
hand  maybe  we  are  becoming  popular. 

In  the  last   issue  there  was  an 
article  about  mul t  i  pi  i cat  i on  accuracy. 
Steven  Gunhouse,   a  member,   picked  up  a 
couple  of  errors  in  the  article  and  sent 
in  corrections.    I  prepared  an  article  on 
it  for  this  issue,   but  the  Editor  did 
not  get   it   in.   So  I  shall   quote  a  bit 
from  Steven's  letter,    to  put  you  out  of 
pain,   all  of  you  who  could  not  get   it  to 
work.  Editted  partly,    it  reads: 

"...I  note  several   typos  and  other 
errors   in  your  "Multiplication  Accuracy" 
program.   LINE  70  should  be  N  instead  of 
M;   LINE  90  should  be   "LET  B  =  VAL 
X$( M )" ;   LINE  110  should  read  "LET  I  = 
INT  (A(C)/10)".    Those  are  probaby  all 
typos,   but  there  should  be  an  extra  I  ine 
that  reads   "185  IF  A( 1 )       0  THEN  PRINT 
A(1);"  Otherwise  the  first  digit  of 
something   like  99*99  won't  be  printed." 

The  complete  article  will  appear  in 
the  next  issue. 

Another  correct  ion  which  holders  of 
the  PPProf  disk  might   like  to  be  aware 
of.   On  the   "B00T.B1"  program  LINE  9U-10, 
you  should  make  these  changes: 
"PRINT  UF:   GOTO  SGN  PI" ... .make  it 
"PRINT  UF:   GOTO  ddrv" 
"PRINT  #F:   GOTO  NOT  P I " ....  make  it 
"PRINT  UF:   GOTO  mdrv" 

This  ties   in  with     LINE  100   in  the 
program  where  the  user  can  change  the 
disk  to  suit  the  drive  ass ignments  of 
your  particular  system. 

Member  Ronald  Ginardi  points  out  the 
need  of  this  change,   saying  that  "Since 
there   is  an  ON  ERROR  involved,  you 
f  cannot  break  out  of  a  LOAD  from  a  disk 

v  drive  that  you  do  not  have." 

One  of  the  reasons  I  have  been  busy 
is  because  I  have  become  the  local 
Ne  i ghborhood  Watch  chairman.  The 

organisation  was   in  need  of  some 
rejuvenation,   so  I  have  been  busy 
contacting  Block  Captains,  calling 
meetings,   etc.    It  all   takes  some  time. 
My  officei?)   is  a  mess,    what  with 
computer  junk  all  around,   and  then  NW 
stuff  on  top  of  that. 

I  had  some  film  left  over,   and  I 
photographed  my  office(F).   My  thought 
was  that  I  might  put  a  copy  on  the  top 
of  this  letter.  But  when  I  got  the 
prints  back  I  found  so  much  junk  in  the 
background  (and  the  foreground )  that  I 
decided  to  cancel  that   idea.  So  many 
cables  and  bits  of  paper,  disks,  tapes, 
and  I  don't  know  what  all,   jumped  out  of 
the  picture!   I  understand  why  people, 
some  persons,   don't  like  thir  picture 
taken  without  primping  up!! 
Enough  of  that. 

A  couple  of  our  members  report  that 
they  have  not  seen  the  October  issue  of 
UPDATE.    Though   I  read  about  a  month  ago 
in  another  club's  news  I etter,   that  the 
issue  was  out.   Anybody  else  awaiting 
thier  copy? 

On  the  first  Wednesday  of  October, 
while  we  were  leaving  our  monthly  club 
meeting,   our  local  public  broadcasting 
station,    "TV  Ontario",   put  out  a  program 
called  "Anatomy  of  an  Inventor".  It 
featured  Clive  Sinclair.    It   is  one 
program  in  a  series  called  ODYSSEY.  My 
wife  saw  it.    I  wrote  TVO  to  see  if  it 
would  be  shown  again.    They  sci:    yes,  in 
about  6  n.onths.    So   I  shall   try  to  get  a 
copy  of   it  on  video  tape,    so  that  any 
members  can  borrow  it,    if  they  care.  I 
see  from  another  club's  news  I etter  that 
it  did  not  deal    in  much  depth  with  his 
computer  exper  iences.    It   is  a  BBC 
ser ies. 

Several  of  you  have  taken  me  up  on 
Spectrum  games.    I  see   in  the  newsletter 
that  Jeff,   our  editor  has  reviewed       pCtk.  7 

"King's  Keep",   and  seems  to  have 
enjoyed  it.    If  any  of  you  wish  to  know 
where  to  find  a  copy,    contact  me.  When 
Jeff  was  hung  up  on  it  and  askec  me  if 
I  had  any  clues,    I  said  yes,    but  you're 
only  going  to  get  one  or  two  of  them  at 
a  t  ime .' 

I  wrote  a  program  called  "bopeep" 
which  enables  me  to  PEEK  and  POKE 
changes  to  individual  addresses  in 
programs     which  are  on  disk.    Very  useful 
to  POKE  infinite  lives,    etc.,  into 
games.   But   I  found  that    if   it  was  made 
too  easy,    there  was  no  challenge,  and 
therefore  no  fun  left   in  the  game!! 

More  recently,   and  with  the  aid  of  S. 
Gunhouse,    I  have  written  a  program  which 
enables  me  to  save  an  NMl-type  program 
to  tape.    I  call    it   "nmisav"  and  there's 
a  companion  program  called  "nmi/od".  I 
have  made  up  a  disk  with  these  programs 
on   it,   along  with   instructions  on  their 
use.   Anyone   i nterested? 

In  my  last  missive  I  promised  an 
article  on  what   is  new  in  the  Larken 
library.   But,   as  I  mentioned  earlier,  I 
have  been  too  busy  to  get  this  done.  But 
I  see  where  we  are  up  to  disk  #38.  This 
disk  has  an  assort ment  of  programs 
assembled  by  Bob  Mitchell,   and  called 
MATH,   Science  &  Educat  ion.    There  are 
st i 1 1  some  spare  tracks,    and  I  think  we 
shall   find  some  other  interesting 
programs  to  add  to  it. 

Then  there's  disk  #37.    This  disk,  or 
suite  of  disks  will  hold  data  files  for 
the  PPP+  and  PPProf.   programs  That  are 
on  disks  #10  and  #28.   Disk  #37  will  have 
the  files  for  creating  TS2068  keyboard 
matrixes  using  Pixel  Print.   Was  there  an 
article  on  this   in  one  of  our 
newsletters,    or   is   it  still   to  come?  I 
can ' t  reca I  I . 

Disk  36   is  a  Shareware  disk,  it 
contains  a  variety  of  programmers 
utilities  by  McBrine. 

Disk  35   is  a  set  of  utilities  of 
interest  to  club  members  who  have 
acquired  a  2U-pin  printer.    The  disk  has 
been  prepared  by  Larry  Crawford . 

I  have  an   interesting  story  to  tell, 
about  our  Post  Office.    You  may  recall 
that   we  discontinued  our  P.O  Box  number, 
maybe   18-20  months  ago.    Well,    about  a 
month  ago  we  started  receiving  mail  from 
three  clubs,    and  from  two  individuals, 
who  had  only  recently  had  their  mail 
returned.   Guess  what,    it   was  things  they 
had  mailed  over  a  year  ago.   One  was  a 
series  of  about  6  news  I et  t  ers  from 
T IMEL INEZ .   Another  was  a  person  who  had 
sent  a  cheque  for  $20  to  join  the  club. 
It   would  seem  to  me  that   the  Post  Office 
kept   the  mail   from  discontinued  Box 
numbers   in  a  back  room  somewhere ,  and 
only  recently  discovered   it.   Or  else 
maybe  they  clean  out   their  bags  once  a 
year!!    I  suppose  we  should  be  grateful 
they  did  not  burn  it. 

I r.   tht    lest   '-,//    /    mentioned  that  I 
had  some  used  DSDD  drives  for  $20,  plus 
postage.   Several  members  took  up  the 
offer,    and  have  now  received  them. 
Everything  goes  well   with  them  except  a 
member,   Mac  Pace,    who  has  a  QL.    Well,  I 
had  to  send  him  another  drive  because 
the  first  one  would  not  read  Hugh 
Howie's  QL   library  disks,    and  vice 
versa.    It  would  write,    and  read   it's  own 
disks,    Out  no  others.   Anyway  we  are  on 

the  way  to  solving  that  problem.  I 
learned  somet h  i ng  though.    The  Larken  has 
a  better  set  of  features  re  checking  out 
disks.    The  Larken  has  a  VERIFY  command 
which  tests  each  track   in  turn  for  CRC 
errors.  Also,    the  directory  is;  on  a 
single  track,    and  one  can  access   it  and 
test   it  more  readily,    than  seems 
possible  with  the  QL  DOS'.  Thanks, 

Since  then  1  have  bought  one  or  two 
more  drives  (though  I  said  I  wouldn't!), 
so  if  any  one  wishes  to  add  to  thier 
system,   drop  me  a  fine.   Keep  in  mind 
that  you  need  to  add  a  connector  to  your 
ribbon  cable  to  add  another  drive,  as 
well  as  make  sure  your  power  supply  is 
up  to   it.    The  older  drives  take  more 
power  than  the  newer  design  of  drives. 

One  of  my  Quad  drives  stopped 
working.    I  have  not  been  able  to  figure 
it  out.    The  problem  lies   in  the  circuit 
board.    I  have  two  drives  and  was  able  to 
swap  boards.    The  problem  went  with  the 
board . 

So  I  wrote  to  JB  Technologies  to  see 
if  they  had  any  Tandon  TM101-U  drives 
for  sale.    They  are  not  advert  i s  i ng  them 
any  more,   but   I  thought  that  they  might 
still  have  a  few  kicking  around.    I  have 
not  heard  from  them.    I  also  wrote  to 
Doug  Hemming,    who  had  them  at  one  time. 
One  of  mine  came  from  him.     He  has  not 
answered  either.    I  may  have  to  buy  a 
used  drive  from  a   local   surplus  store. 
Though  they  want  $U5  for  one,  which 
seems  a  bit  much. 

I  find  myself  sort   of  crippled.  Maybe 
I'm  spoiled.    But   I've  hao  to  fall  bacK 
on  Richard  Hurd's  ODDBALL  prog  ran,  to 
copy  my  quad  disks.    ODDBALL,    if  you  are 
not  familiar  with   it,    uses  a  second 
drive  (of  any  type)  as  a  buffer,  when 
you  want   to  make  a  duplicate  disk.  This 
program   is  on  our   library  disk  #3,  along 
with  a  number  of  neat  Larken  ut  i I t  i y 
programs . 

I've  run  out  of  space. 
S  incere I y, 

P.S.   No,    I  still   have  a  bit  of  space. 
Just  a  note  to  members  who  may  ce 
waiting  fo  something  from  me.    If  you  do 
not  aet    it   within  a  week  after  this 
newsletter  gets  to  you,    better  croc  rre 
a  line.    I  may  have  overlooked  a  reouest. 
I  should  be  up  to  date  by  then.  There 
may  be  some  recuest  that   I  have 
overlooked  thougn,    so  don't  be  afraid  to 
remind  me. 

TS  Bulletin  Amateur  Publication 

#  News  S upplement#s- 7- 90^1^"j^??3* ^ 
by  Bill  J;  Harmer,97  RuskirijOttawa^Can.KlI  4B3 

 Sept., 1990  -   2  pages  

©  1990,     In  the  public  domain  (this  page/ side  only) 

News  of  a  Local  Nature  -    The  Ottawa-Hull  Timex-Sinclair  User  Group  continues  to 
get  together,  this  last  September,  5  members  meeting  at  a  members  home  down  by 
the  River  (in  what  was  at  one  time,  cottage  country).    As  one  member  remarked, 
whether  we  continue  to  use  Sinclair  computers  or  not,  we  still  get  together  to 
enjoy  talking  to  each  other.    Some  members  have  acquired  IBM  comaptibles,  but 
there  is  still  quite  a  bit  of  use  of  the  TS  computers  among  group  members, (incl- 
uding those  with  other  makes  like  the  IBM  compatible),    The  club  librarian,  Dave 
Solly,  1545  Alta  Vista  Urive,  Apt.  1402,  Ottawa,  Ont.,  Canada  K1G  3P4  reported 

ithatminy,  even  from  put  of  town  are  using  the  club  BBS  (613)  745-3338  (£/n/l, 
300  and  1200  baud).    Activity  in  programming  in  Pascal  both  on  the  TS2063  and 
the  IBM  PC  (using  Turbo  Pascal)  is  also  a  club   activity  that  Dave  participates 
in  and  the  BBS  has  had  on  it  a  Pascal  compiler  for  the  TS2063  that  has  been 
released  into  the  public  domain  for  non- commercial  purposes.    Coffeeand  goodies 
rounded  out  the  meeting  which  included  discussion  of  j;proposals  to  raise  rates 
on  phones  using  modems,  (in  the  USA),  copyright  notices/mentions  on  run-time 
modules  and  Mickey  Spillanel 

Larken  Electronics,  original  designers  and  makers  of  the  ZX-31/TS1000  LDOS  disk 
controller/ DOS  and  the  LKDOS  TS 2068/ Spectrum  ROM  compatible  disk  controller,  and 
DOS  seem  to  be  turning  their  attention  to  the  sales  of  their  modestly  priced 
computer  controlled  shaper/ router/ plotter  that  allows  the  working  of  plastic 
and  light  metal  by  robot  control  using  an  ordinary  IBM  PC  compatible  running 
a  program  originally  written  in  Pascal  on  the  TS2068.  Continued  support  of  the 
disk  systems,  at  least  in  terms  of  being  able  to  buy  new  boards  for  new  users 
is  now  being  considered,  dependent  on  demand,  as  probably  anyone  who  knows 
about  the  Larken  system  and  has  a  TS206£  has  got  one  if  they  are  going  to  now. 
No  matter  what  the  outcome,  conversion  of  the^Aerco,  Zebra  and  Oliger  controll- 
ers to  run  the  LKDOS  operating  system  and  thereby  read  and  write  to  LKDOS  format 
diskettes Cwhich  is  now  in  progress  all  over  the  US  judging  from  newsletters  that 
are  coming  from  those  user  groups  there),  will  guarantee  a  longer  market  and 
opportunity  for  those  who  wish  to  convert  to  the  LKDOS  system  over  time.  The 
software  support  of  the  LKDOS  system  will  be  handled  ably  by  the  Toronto  user 
group,  as  it  is  now,  and  possible  further  contributions  from  Larken  Electronics. 
The  long_in-preparation  book  on  the  LDOS  system  for  the  Z*-#l/TS1000  is  being 
releases  in  pre-publication  form  in  chapters  or  sections  by  the  author  instead 
of  going  the  formal,  publishing  route  (at  TS  Bulletin  amateur  publications  ad- 
dress above).    This  unofficial  manual  for  the  ZX-Sl/TSlOOO  single-density  cont- 
roller baord  that  Larken  produced  by  modifying  the  software  for  the  original 
TS2068  LDOS  controller  has  been  in  preparation  for  more  than  a  year  and  has 
abdut  110  pages  or  more.    Plans  to  publish  it  were  abandonned  due  to  the  cost 
°Chougl  £l?a?s^r{ck  5l?nisfie8ters  or  *'Ul1  copies  have  been  circulating  anyway  even 
Congratulations  to  the  Toronto  Timex-Sinclair  people  for  producing  another  mag- 
nificent issue  of  their  newsletter,  which  has  been,  the  last  couple  of  months, 
the  size  and  heft  of  a  magazine.    The  Club  there  is    doing  a  fine  job  of  sup- 
porting the  TS2068  and  LKDOS  disk  system  especially, .The  Hacker  from  Las  Vegas 
never  falls  to  show  up  with  a  fine  edition,  and  inspiration  to  other  newslet*- 
ters  in  both  appearance  and  amount  of  good  material. . . .In  Canada  a  postal  strike 
is  rumoured,  but  then  that  is  always  the  way  as  Christmas  approaches  so  it  is 
not  to  be  taken  seriously  yet.      More  than  a  rumour  is  the  new  G.S.T.,  a  feder- 
al retail  sales  tax  in  Canada  which  will  be  applied  even  to  the  postage  of  news- 
letters from  here.    The  publisher  of  this  newsletter  is  seriously  considering 
switching  the  publications  to  text  files  on  disk  (MS  DOS  ver.2.x,  360K,  5i  in) 
and  just  posting  them  to  a  BBS  in  order  to  avoid  attracting  too  much  in  the 
way  of  costs. in  the  future  when  the  G.S.T.  comes  in.  (My  TS1000  disk  format  is 
not  compatible  with  any  other  and  ill  suited  for  text  anyway:  LDOS  single-dens- 
ity/^ I  have  found  a  way  to  make  a  disk  LDOS/ZX-gl  one-side,  MS  DOS  the  other,) 

p. 4 

(Further  to  p.2)Useful    Sinclair  Programmer  Notes   (On  Telephone  Hog,) 

In  the  column  "Amateur  Programmers'  Line"  for  this  issue,  mention  was 
made  of  programming  with  primitives  and  simple  building  block  algorithms  made 
as  the  result   of  guch  work.    Below  is  a  short  listing  of  one  version  of  a 
ZX-81/TS1000  program  to  test  a  way  of  compressing  the  RAM  storage  space  that 
a  7-digit  telephone  number  requires  in  a  database. 

•  Comments 
1  Rm  (Here  is  where  we  will  POKE 

the  telephone  no*  into, 
starting  at  16514  in  the 

r  ™,  m  ,    .  fixed  position.) 

5  REM  Telephone  numbers  storage  prog.*<p 

In  SnS  pUt  last  3  digits  in  RAM 

In  pS  ifco^l  7  pUt  middle  3  digits  in  RAM 

5^  PRIN?  «?ELPNO°  K  tel*  n°#  int°  RAM 

52  ;rSHVPEEK(1652*~x) »  Print  on  screen  the  TEL.  No. 

qq   "gg  o^n    (fr°m  RAM) 

99  STOP  STOP  at  end  of  demo. 

<?7\i£23-:  TWv/  u         a  Ft^nr  Terr :  cu-^r  *J4gL<r  /n^^^^  yrr!>r^  mr.1) 
This  will  store  any  seven    digit  telephone  number  in  3  bytes  of  RAM.  except 
(can  you  see  the  exceptions. . .?.. .think I )    The  exceptions  would  be  for  example 
a  byte     with  leading  zeros,  including  322-1000,  800-1001.    The  program  also 
does  not  put  in  the         at  the  appropriate  place.    One  way  to  solve  the  leading 
zero  problem  would  be  to  assign  certain  reserved  codes  for  double  zeros  but 
t^\?i°vl6iriSsaJe  not  t0°  easy  to  surmount  without  variable  length  fields  (allow- 
ed RAM  bytes)  for  the  telephone  number.    Anyway,  theoretically  3  bytes  is  better 
than  7  for  using  the  standard  alphanumeric  code  (similar  to  ASCI  in  the  ZX-81)  — 
one  byte  for  each  digit-  even  if  you  have  to  add  another  byte  or  two  to  get  the 
case  of  leading  zeros  into  your  algorithm.    Another  number  that  would  not  fit 
in  3  bytes  but  would  require  only  4~bytes  to  finalize  would  be  826-6257  since 
it  would  normally  be  broken  down  into  8,  266  (too  high  a  number  for  the  255 
limit  of  one-byte),  and  257  (also  too  high  for  the  255  limit  of  one  byte).  It 
would  have  to  be  broken  up  into  8,  26,  62,  57  and  so  require  4  >bytes  of  RAM. 

That  leads  to  thought  of  other  ways  of  handling  it.    The  simplest  way  numeric- 
ally and  for  your  conversion  routines  would  be  to  allow  for  variable  length 
fields.    This  would  normally  create  big  problems  with  a  database.    It  also  might 
waste  an  extra  byte  or  two.    An  end-of-f ield  byte  marker  would  of  course  have  to 
be  a  different  number  (of  the  0  to  255  that  it  is  possible  to  store  in  one  oyte) 
than  would  ever  occur  as  a  code.  If  only  one  telephone  number  per  record  (for 
example,  a  person,  member  of  a  club  in  a  club  membership  database),  is  used  and 
there  are  other  variable  length  fields,  marked  in  ingenious  ways  for  endings,  or 
length,  placing  the  telephone  number  at  the  end  of  the  record  would  allow  its 
end  to  be  marked  by  the  record  end  marker.  So  we  may  have  to  reserve  -two  codes 
not  one  to  never  use  for  the  bytes,  end-of-no.  (253)  and  end-of-ree*  (254). 

#  This  is  starting  more  and  more  to  look  like  a  typical  coding  problem,  that 
ol  inventing  a  new  code  that  will  streamline  computer  operations,  reduce  even 
the  space  required  to  store  data  in  RAM,  and  of  course  cover* all  possibilities 
in  a  logically  consistent  manner.    The  zero  case  is  one  problem.    Perhaps  it 
could  be  handled  by  not  being  greedy  to  get  that  extra  digit  (under  255  rin  and 
settling  for  2  digits  per  byte,  with  0  coded  as  one  zero  and  200  coded  as  two 
zeros,  the  2  being  wiped  out  by  the  translation  or  display  algorithm.  100  could 
remain  as  three  digits,  1-00. 

+u    W^  H™h?re  *?  n?  phone  number  given  or  available?    How  about  a  code  other 
than  000-0000  for  that7.    In  other  words,  an  error  code,  non-exist  code  or  a  math- 
ematically conceived  empty  set, (null  set)member  code?    These  possbilities  for 
coding  "nothing"  are  often  overlooked  in  coding  design.    We  could  assign  252  as 
this  code  for  this  system,  where  legitimate  codes  beyond  200  (or  252  "to  push  it 

o  the  maximum  )  would  not  print  or  be  interpreted  as  phone  numbers.    Then  there 
ire  long  distance   numbers,,..  ^-3  ft  in  -  u,IKj.4-w^,2rf^ 

©  1990,  In  The  Public  Domain 
Newsletters  k  Clubs:    The  Vancouver  TSUG  (or  rather  VSUG)  is  having  a  little 

difficulty  in  getting  material  for  the  newsletter  (hint  for  those  who  would  like 
to  send  them  something,  including  a  program  on  cassette  for  listing).     It  will 
be  prepared  by  a  new  editor  as  of  the  next  issue.    It  has  been  a  good  source  of 
hardware  articles  and  machine  code  articles  for  the  ZX-81  in  particular  for  the 
last  couple  of  years.    Wilf  Rigtgr.  the  originator  of  a  system  of  high  resolution 
graphics  for  the  ZX-81  Has  written  articles  for  it  on  how  to  fiddle  with  the 
operating  system  parameters  to  get  specialized  graphics  and  multi-tasking  (the 
NOVA  1000  program)  with  the  ZX-81.    General  news  and  material  on  the  TS2068  have 
also  graced  its  pages,  as  well  as  the  schematics  for  many  projects,  especially 
those  for  the  ZX-81  which  most  folk  would  have  less  trepidation  in  taking  apart 
and  hacking.. ...  Larry  Kenny  of  Larken  Electronics  has  put  out  a  call  for  all 
who  wish  to  order  LKDOS  interfaces  to  speak  now  or  hold  their  peace  (forever?) , 
so  that  he  can  judge  by  orders  to  RMG  Enterprises  or  himself  whether  there  is 
enough  demand  to  get  another,  minumum  order  of  at  least  3  5  P#e.  boards  manufact- 
ured (by  an  outside  company  specializing  in  pc  board  etching) in  order  to  make 
up  more  LKDOS  controller  boards  for  the  TS2068/ Spectrum  ROM  TS2068.  Larken 
Electronics  is  at  RR#2,  Navan,  Ont.  Canada  K4B  1H9  and  R.M.G.  is  at  1419*  7th  St., 

Oregon  City,  OR,  USA  97045  (tel.  503-655-7484)  A  few  of  our  readers  may  have 

heard  of  the  excellent  newsletter  for  the  QL  put  out  in  French  by  Real  Gagnon. 
He  has  written  an  article  for  the  Toronto  TSUG  (or  rather  Club)  that 'helps  ex~ 
plain  his  suspension  of  publication  (temporarily?)  of  that  newsletter,  QLJD0C, 
due  to  job  problems    -  in  the  winter  when  his  employer  went  out  of  business.  We 
can  hope  that  time  and  finances  will  permit  its  re-establishment  soon. ... .The 
Johnson  City,  NY  (a  high  tech  centre)  TSUG,  SINCUS  has  moved  to  embrace  the  IBM 
PC  compatible  world  and  also  to  discontinue  publication  of  its  newsletter  as  of 
this  summer.    If  you  are  not  getting  any  more  newsletters  from  them,  that  is  the 
reason. . . . .Update  Magzine,  a  T/S  based  quarterly  supporting  aft ermarkst  disk  sys- 
tems, especially  those  for  the  TS2068  has  changed  hands.    The  previous  publisher,  : 
Mr,  Jones  is  taking  a  holiday  and  going  cruising  around  in  the  Florida  area  ocean 
and  Frank  Davi3  of  Indiana  TSUG  is  taking  it  over.    Expectations  ot  further  ex- 
cellent issues  coming  forth  have  been  expressed  by  people  who  know  Frank.  For 
subscriptions  contact  at  tel.  (317)473-6031  or  via  ISTUG,513  E .Main. .Peru, IN46970. 

 EMsoft,  the  QL  software  firm  at  P.O.  Box  8763,  Boston, MA, USA  02114-8763, 

t  el6l7- 889-0830  is  offering    a  free  catalogue  and  also  has  some  things  other  than 
QL  software  including  a  ZX-81/ TS 1000/  TS 1500/ TS 2068  expansion  bus  connector  and 
housing    (also  works  with  PC8300  but  with  TS2068  connects  only  to  a  subset  of  the. 
bus  connections,  like  the  TS  printers)  for  US$16  for  3  (or  two  for  the  same  price) 
and  a  collection  of  documentation  for  the  ZX/TS  computers,  Syntax,  etc.  for  $30. 
(from  an  advert  in  SMUG,  Sept. 1990) .... #If  you  are  wondering  about  how  old  your 
addresses  are  for  a  number  of  groups  etc.,  and  whether  thay  are  any  good,  look  at 
the  following  new  addresses;    Toronto  TSUG  ( changed *Yast  year),  c/o  Geo.  Chambers, 
14  Richome  Ct. , Scarborough,  Ont.,  Canada  M1K  211  (subscription  to  n/l  $12-m,oJ#»«« 
glNCUSy  Johnson  City-discontinued  N/L,  Harrisburg.  PA  gp.  folded,  Dallas  &  Ft. 
Worth  Gps.,  discontinued  n/l  but  last  heard  they  were  attempting  to  start  one  up 
aeain^QLJDOC,  Montreal,  suspended  publ.,  contact  Real  Gagnon  via  Toronto  TSUG,*-*. 
TyS  SIG  of  Boston  Computer  Soc.  folded  but  reincarnated  as  Naw  England  QT,  Users*  Gn. 
P.O.  Box  8763,  Boston, MA ,USA  02114-8763  Sum.  1990.;.. CRAOXST  n/l  renamed  and  now 
published  from  new  address  of  Donald  Lambert,  1301  Kiblinger  PI. , Auburn, IN, USA 
46706  (Sept. 1990  chg.  of  address),  CATS  (National  CapitalTSUG) .  new  address, (fall 
1990),  CATS,P0B  11017, Takoma  Park ,MD ,USA  20913 # . . . . QuantaTT^brary ,  c/o  Paul  Holmgren, 
5231  Wilton  Wood  Ct. , Indianapolis,  IN, USA  46254  -program  library/ source  code...* 
TS  Bulletin  Amateur  Publications  still,  going  strong  ( in  4th  year  of  publication), 
with  many  back  issues  still  avail^l^e  fpr  postage  V- 97  Ruskin  St. , Ottawa, Can. K3I4&3 
Suppliers ;  American  Micro  Systems, 2175  Aborn  Rd..#262,San  Jose,CA,USA95121  -QL,... 
John  McMichael . 1710  Palmer. Dr. .Laramie iWy,USA82070-TS 2068  printer  drivers-Oki. . • ♦ 

 Byte  Power- TSz068- software  &  raag.,1748  Keadowview, Pickering ,0nt„ 

Canada, L1V  3G8. ...Jndiv. Users  with  a  Spec^  Interesfr-TS2068/MS  DOS  Pascal, D .Solly, 
•£545  Alta  ?ista#1402fGttawa/K|^f^rS2068  music,  Joan  Kealy,P0B  lll8,Brackettsville/a: 
USA78832Ahardware/ic  tester  w.TS 2068  ,N.Pashtoon  c/o  CATS  ,&  Bob  Swoger,  DOS/OS  exten- 
sions for  TS2068/LKD0S-CATS,613  Parkside  Circle, Strea mwood,IL,USA  60107. . . .