Skip to main content

Full text of "Sinc Link"

See other formats

MAY-JUN  9 1  VOL.  9  NO.3 


VOL.  9  NO.3 

MAY-vJUN  '91 

AS  PART  OF  THE  920.00  ANNUAL 
FOR  Si  2. 00. 





Attmnttam       SING-LINK  EDITOR 
CLUB,         14        RICHOME  COURT, 











(  Out-of-town  members  ) 

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

—  S  I 




I  really  must  thank  a  few  of  the  club  members  for  their  kind 
words  about  my  third  anniversary  as  newsletter  editor.  It's  very 
gratifying  to  hear  from  our  brothers  and  sisters  within  the  T/S 
community  and  I  can  assure  you  that  your  letters  and  cards  have 
certainly  bolstered  my  resolve  to  continue  to  try  to  put  out  a 
quality  product  for  you. 

So,  to  Joan  K.  ,  Les  C,  Donald  L.  ,  Larry  C.  and  all  the 
members  who  were  so  complimentary,  my  heartfelt  thanks. 

I  can't  take  all  the  praise  for  Sine-Link's  success,  though. 
While  I  do  the  assembling,  the  cover  and  occasionally  an 
article,  it  is  the  continual  high-quality  writing  of  you  active 
members  that  makes  this  newsletter  the  fine  publication  it  is 
today.  All  you  members  who  have  contributed  over  the  last  three 
years  and  all  you  writers  whose  work  we  have  culled  from  other 
newsletters  because  we  felt  it  was  worth  repeating,  take  a  bow. 
Alright,  enough  mushy  stuff. 

MSCRIPT  5.5  &  TASWORD  22M 

I  recently  received  the  MSCRIPT  update  from  Jack  Dohany  (no  E) 
and  a  TASWORD  2  variation  from  Larry  Crawford  and  am  now  trying 
to  learn  all  the  features  these  two  prolific  programmers  have 
built  into  their  versions.  This  editorial  is  a  combination  of 
both  programs.  Can  you  spot  where  they  start  and  stop? 

More  TPS  Info 

In  the  last  couple  of  issues  I'd  written  about  my  exploits  in 
repairing  one  of  our  TOS/ZEBRA/Engl ish  Micro  Disk  sytems  and  a 
request  for  information  on  this  disk  system.  Well,  I'd  like  to 
thank  Joan  Kealy  for  offering  to  send  me  her  backup  and  in 
particular  I'd  also  like  to  send  my  thanks  to  James  Wilson  who 
took  it  upon  himself  to  assemble  and  send  me  a  great  package  of 
material  on  this  subject.  If  more  material  comes  in  I'd  be  glad 
to  exchange  what  I've  received  with  interested  members.  Drop  me 
a  line  and  let's  keep  supporting  another  T/S  utility. 

ZX81/TS1000  Hi-Res 

Last  issue  I  wrote  about  the  newest  additions  to  the  ZX81 
library,  namely  two  tapes  full  of  hi-res  programs  courtesy  of 
Greg  Harder.  The  demand  for  these  tapes  has  been  quite 
surprising.  Members  that  we  didn't  even  know  had  ZX81s  have  been 
asking  for  copies.  Bear  with  us  and  we'll  get  those  tapes  and 
manuals  to  you.  It  just  takes  time  to  make  good  quality  copies. 

Digitised  Pictures 

In  last  issue  there  were  a    few    digitised    pictures    of  yours 
truly.  I  am  now  running  a  closed  circuit  tv  camera    through  my 
SMUG  digitiser  and  using  John    Mcmichael's    VIDEOTEX  software. 
Watch  for  a  review  of  his  updated  program    and    more  digitised 
pictures  next  issue. 
That ' s  all  for  now. . . 




BOB'S   NOTEBOOK-  Programing  Tips 

Here   is  an  example  of   how  to  use  a  rather  obscure  LKDOS  Extended 
BRSIC  Command.    It    concerns   that    pesky    line   of    dots   that  appear 
at   bottom  of   the  screen  whenever   the  NMI  push  button   is  pressed. 
Those  dots,    which  actually   represent   the  registers  and  stack 
pointers   involved,    clutter  any  graphics  copies  which  print  the 
bottom  two    lines.  However,     close   reading   of    the   LKDOS  Operating 
Manual    turns   up   an    interesting        item:    Advanced   machine  code 
programmers   can   add   an  extra   command   to   LKDOS   by   using   the  PRINT 
1*4:    DATA  a , b , c ...  command.    Moreover,    more  reading  reveals  another 
clue   from  the   manual:    LKDOS   address   8214     User ad  •    holds  the 
address  of   the  user  NMI   function  Oft   tf*&  <94*<**~&ss  &f  Os**r 
cr&mm&nei   (£WT/3>  . 

If   this  could  be  used  to  trigger   a  graphics-copy  machine-code 
routine  without    pressing   the   NMI   button   and   the   F   key,    then  it 
should  be   possible   to  make  an  uncluttered  copy  on  a  wide 
printer,    that    is,    without   those  dots.    Graphics  24   is  one  such 
routine  which  copies   all   24   lines  of   a   SCREEN*  and   is  found  in 
the  Omnibus  Collection  where   it    loads   into  the  LKDOS  at  address 
16100.    Thus,    it   ought    to  be  possible   to  substitute  the  LKDOS 
DATA  command  for  the  NMI  button.    On   investigation,    this  turned 
out    to   be   the   case.    The   following   lines,    which   appear   in  the 
Omnibus  program,    were   involved   in  making  the  DATA  command  work: 

1020  INPUT  AT  oo, oo; (uS' "drive?   <0-4>    ")jdrv:    PRINT   ttod:    GO  TO 
drvi  RETURN 

1050   PRINT   #od:    POKE   oz, 16100:    LET  b=USR   oy :  RETURN 
2578  PRINT   AT   00,00; "Standby ..." :    GO   SUB   1050:    IF   b<>205  THEN 
FOR    i  =24685   TO  24788:    PRINT   #od :    POKE    i-8505,PEEK    i:    NEXT  i 
258©   PRINT    Hod:    POKE  8214,16100 

2590   CLS :    PRINT   AT   00, 00; "CHECK   Printhead   at    left  each 
time.":    PAUSE  100 : RETURN 

538©   GO   SUB   5410:    ON   ERR   GO   TO   5390:    INPUT  AT   00,00;"  C0PV 
SCREENS      "'"    name?    (<=9>      '    LINE   s*:    GO  SUB   1020:    GO  SUB   5500 : 
PRINT   ttod:    LOAD   s$SCREEN$:    PRINT   ttod:    DATA  0 
5390  ON   ERR   RESET:    GO   TO  m3 

5410   CLS:    GO   SUB   1050:    IF   b<>205   THEN   GO   SUB   2570:  RETURN 
5420  RETURN 

Exp  Sanations : 

Line  1820   is   a  sub  routine   to  choose  the  drive.    <  u*   is  used 
throughout   the  program  to  hold   the  name   of   a  chosen  option) . 
Line  1050  does  a  double  poke   into  LKDOS  RAM  8200   (variable  oz) 
to   get   the  value   in  LKDOS  address  16100. 

Lines   2570   to   2590   check   that    value   and   if    it    is   not    205   then  it 
reloads  the  contents  of   system  variables  free  space   24605  to 
24788   into   the   LKDOS   RAM  at    address   16180   (24605   minus  8505>; 
2588  puts   the   value   16100    into   LKDOS   address   16180   and  finally 
2590  puts  a  reminder  on-screen  before  returning. 

Line  5380  checks  that    all    is  ready  via  5410;    if   there   is   an  ERR 
message   (see  below) ,    the  action  jumps  to   line  5398  and  thence 
back  to  the  menu. 
Don't    leave   out  5420. 

The  crux  of   all    this   is  the  part   at   the  end  of    line  5388:  PRINT 
ttod:    DATA  8.    Not   knowing  what   to  add  after   the   DATA   token,  I 
stuck   in  the  zero.    However,    no  matter  what   was  put    in  there,  an 
error  message  resulted  each   time  so  ON  ERR  commands  were  added 
to  overcome   the  error.    Result:    the  routine  worked  and  the  line 
of   dots  was  history.    By  the  way,    the  NMI  button   ♦  F  still  does 
its   job   when   these   changes   are   made,    so    it's   always   there   as  an 

One  postscript   to  this  story:    I   later  had  a  go  at   making  the 
autoboot   code,    stored  at    16308,    work    in   a  similar  fashion. 
During  a   lot   of   experimenting   a   funny   thing  came  to   light:  the 
command   line  had  to  be  <PRINT   H4 :    DATA  0 > ;    the  computer  crashed 
(locked  up)    if    < RANDOMIZE   USR   100:    DATA   0>   was   used.    (I  haven't 
the   foggiest    notion   why.    Can   anyone   help   explain   this?)    So  this 
means  that   to  quit   any  program  and  get   back  to  Omnibus,  the 
PRINT  #4  switch  has   to  be  operative   in  that  program. 

§®K1S  Dfl®(3@  PK®@l30!?flKlSK]©  IFSPS 


PROFILE:    When  altering  the  BASIC  program*   be  careful  not  to 
declare    any   variable   ahead   of    dS .    This   string   must    be   the  first 
variable   in   the  UARS   area  or   the  program  simply   will   not  work. 

PRINTER  CONTROL  CODES:   There  are  two  distinct  methods  of  sending 
these  to  your  printer.    The  FIRST  one  often  used   in  programming, 
uses  OUT  commands  to  do   the  job.    For  example,    to  switch  to  ELITE 
typeface  requires  OUT  127,27:    OUT  127,77.    BUT,    there  must   be  a 
check  on  printer  readiness  before  the  commands   and  this  can  vary 
from  printer   to  printer  and  even  from  one  TS2868  to  another. 
Thus   it    is  necessary  to  make   the   f  o  1 1  owi  ng :  <  GO  SUB   lme#>  prior 
to   each   OUT   command.    The      1 ine#     is   the    line   containing  a 
routine   such   as   <IF   IN   1270237  THEN  GO   TO   line#ft>;    line*  +1  must 
be   <  RETURN  > . 

The  SECOND  one,    perhaps  not   much  used,    is  really  more  straight 
forward:    This   assumes  you  are  using  the  LKDOS  printer  driver  and 
depends  on  first   switching  off   the  detokenizing  and  filtering 
Cby  POKING  PPAS  at   LKDOS  RAM  address  16693  to  32>   which  then 
causes  all   subsequent   characters  to  be   sent   directly  to  the 
printer.    PPflS   is  POKEd  with   a   zero  at   the  close  of   sending  these 
printer  commands  to  return  to  detokenizing  and  filtering. 
Thus   the  subroutine  to  turn  on  ELITE  typeface  becomes: 

RANDOMIZE   USR   188:    POKE  16893,32 

LPRINT   CHRS   27;    CHRS  77 

RANDOMIZE   USR   188:    POKE  16893,8   

RANDOMIZE   USR   188:    POKE   16894, marg:    LPRINT:  RETURN 
No  printer  ready  check   is  needed  but   note  that   the  margin 
setting  must   be  repoked  since   the  double  poke  to  16893  upsets 
it.    So   if   you  find  some  of   the  first   style  printer  commands 
cause  you  problems  with  your  printer  and/or   TS2868,    switch  to 
the  second  kind. 


I've  recently  added  the  following  to  both  my  Tasword  and  Mscript 
1 ists . 

First  trsuord :    This  assumes  you  have  Graphics  editing 
capabilities   in  your  copy  of   Tasword.    British  Font   ON     <27  82  2> 
OFF    (27   82   8):    these   could   be   different    for   your   printer;  check 
your   manual.    I   put    these   on   key  6   <137   and   134  respectively). 
The  main  use  for  this  font    is  to  get   the  pound  sign  to  print 
instead  of   a  #  sign.    But   the  application  has  other 

possibilities:    If   you  write   in  French  or  Spanish  and  these  fonts 
are   included   in  your  printer's  memory,    substitute  them  to  get 
the  necessary  accented  letters. 

Another  addition   <this  time  on  the  5  key  —   138  and  133>>   was  a 
quick   switch   from  standard   line  spacing   to  narrow   line  spacing 
and  vice  versa.    The  commands  will   vary  from  printer  to  printer 
but   for  the  Fastext   88  they  were  Narrow  ON   <27  65  8>   OFF    C27  58 
>.    This  allows  for  packing  more  text    into  a  page  or  part   of  a 
page . 

Now  MSCRIPT:    Vou  will   need   instructions   for  LCODES  provided  with 
Mscript   version  505  to  do  this.    The  codes   above  or  your 
equivalents  will   be  added  to  the  LCODE  text.    I  put   the  line 
spacing  against   capital   A  for  ON  and  small   a  for  OFF.  British 
font   ON  against   capital   B  and  OFF   against    small   b.    I  see  that 
the  French  font   could  go   into  capital   F  and  small   f.    Mscript  has 
lots  of   spare   letters  available  for  additional   commands  whereas 
Tasword   is  quite  limited. 


Using  INKEV*  for  keyboard   input   to  any  program  invites  some 
troubles  since  the  ROM  Debounce  and  Error  Detection  routines  are 
not   used.    Debouncing   is  the  conversion  of   mechanical  contact 
bounce   into  a  clean   transition  between  two   logic   states.  It 
involves  the  disabling  of   the  software's  ability  to  accept  a 
character  for  a  few  milliseconds  after  receiving  one.  This 
prevents  false   input   or  extra  signals  from  a  keyboard  due  the 
bouncing  of   the  keys.    Keys  sometimes  tend  to  bounce  due  to 
inherent   design  or   the  keyboard  being  old  or  heavily  used. 

If    you   have   trouble   with   INKEV*,    it    may   be   wise   to  substitute 
some  BASIC   lines  that    call   on  the  ROM  LAST  K  routine  which  does 



u..  the  ROM  flounce  and  error  deyction^outinjs.    These^i  1  lp# 
inline."  ike  ttlf  ol  iZviZV  <f  ound   in  0MHIBU8>  , 
3148  PAUSE  oo:    LET   lk=PEEK  23568 

3158  IF  lk=13  THEN  60  TO  3128  drv-lk-481 
rR!STI#4?kG04?0Rdr^kr5inTTS!H18!59frFLHlH  1{ 

Uri  !?  ?R<?!»25^b>ii?.ISEH  60  T0  3148 

3188  GO  TO  3188+< lk-96>*18 

T©  explain: 

ur.r<»s    IS^tiS:  SKiS;%f  tnesBEE?ber 

JCKSSftS.^?*1?!-  K  ou?,!a.#tn.  SaTues'for  k,SS  a  to  z.  then 

^If^he  input  f-rvlv..  -II  tJJJK  conditions,  then  go  to  the 
line  number   indicated  by  the  formula. 

There's  more  to  be  read  about  this  subject  in  Update  Apr  89  P . i: 
and  Apr  88  page  28. 

Bob  Mitchell   Willowdale  Ont 
Dated:  918223 

•000   118  1113  C0MP0TIIS 

i  in  30FTM8U  mua  in 

gjgK  :  ft  paarful  aceoatiag  progra  for  the  QL        $75.00  a  2  disks 

ajSOi  is  a  MCHITI  based  accounting  progra  for  «t  ad  11 
Sdaa  parable.  receivable,  ad  gaerai  ledger  adala  lateaxated  nth  a 
addrea  databae  progra.  DMddra.  gLIRR  ba  cheek  anting  andinwicing 
Milt  in.  It  aa  keep  Irak  of  year  IMU  Mister  Charge  or  other  charge 
Sds.  sank  balaciag  is  e«f  nth  QUlK's  help-Ia  am  display  ill  |«r 
checks  ad  deposits  ad  eoapare  tha  nth  jeer  oak  stataats.  I«  da  t 
ua  to  a  8  predefined  tccoat  ceding  system  Ton e»  a.  tha  one  yon m*. 
Iba  yea  rw  the  gaerai  ledger,  each  aeeeafc  is  indmdue  ly  tallied  alia 
ioeoM  U&  tia  i  aa.  It  ales  a  gaaral  ledger  eiport  file  for  IBK3S. 

I  baa  developed  QLBK  aer  tha  pat  3  jtus  arking  nth  several  baiaessa. 
I  baa  nr,»T  hadreds  of  boars  of  dwelopaat  ark  in  this  progra. 
baa  bea  careful  aot  to  releae  it  too  soa  bat  aa  fal  it  is  ready.  *t 
$71.86  QUBE  is  a  pretty  eipasite  piece  of  softnarn  bat  these  .ha  ant 
to  keep  track  of  their  fiaaca  it  has  a  eaal  a  tha  QL  and  .ill  gnckly 
ar  for  itself.  It  ba  any  fatara  that  are  eapeaire  PC  sweating 
«rft«a»  like  Peacbtra  and  OftC  lay  fail  to  inelade  like  adding  aa  fenders, 
ca  oars  accaaS .Tprodats  on  ch.  fly.  Tha  addraa  database  fatura  ar. 
^ZT\ [a  oaa  for  bung  able  to  target  subgroups  for  nailing  labels  or  other 
parpaa.  1  PC  Tenia  of  QLBa  using  PC  Main  is  also  ui  the  arks. 

0«'t  send  aaey  for  QLUK.  To  order  QLHW  first  send  a  revest  for  a  are 
detailed  dacriptioa  and  special  order  fora  that  nil   ask  for 
iafaratia.   Eaeh  purchaser  of  QLZRK  till  at   a  cata  copy  of  the  softeare 
1  .ith  their  boa  or  baiaess  eabedded  is  the  code. 

ft  Bill  Cable  :  113  Sos  !2  :  Cornish,  II  83745 

V  H3  67S  2218 


Q  L  I  P  S 

By  Hugh  H  Howie 


One  night  recently  I  had  a  phone  call 
from  a  QL'er,  and  during  the  process  of 
yakking,  he  mentioned  he  was  having  a 
small  problem  with  loading  some  programs 
with  long  names.  The  problem  was  not  so 
much  that  he  could  not  load  the  program, 
but  that  he  hated  having  to  type  in  all 
those  letters  in  front  of  the  File  Name, 

I  was  able  to  tell  him  there  was  a 
program  in  the  QL  Library  called 
DIRJEDIT_BAS,  by  Howard  Clase,  that 
would  do  an  excellent  job  for  him,  I  also 
said  I  could  remember  giving  him  that 
program  some  time  back.  Later  that  week 
my  friend  said  the  program  was  really 
wonderful,  and  had  saved  him  a  lot  of 
time  in  getting  rid  of  a  lot  of  garbage. 

I  had  a  couple  disks  given  to  me  some 
weeks  ago  but  had  never  done  much  with 
them,  as  each  and  every  title  started  off 
with  'Listl'  or  fList2'  so  that  every  time 
I  started  to  work  with  them  I  had  to  type 
in  those  extra  letters.  Too  much  work.  So 
last  night  I  thought  of  trying  this 
program  on  them,  but  the  thought  came  to 
me  that  perhaps  there  could  be  an  even 
easier  way  to  my  job.  There  is!  Most  of  us 
have  it  right  at  our  fingertips.  TK2. 

Section  5  of  TK2  tells  you  how  it  is  done. 
But  is  somewhat  obscured  as  it  is  tagged 
on  at  the  end  of  the  section,  tucked  into 
half-a-dozen  lines  at  the  very  end.  All  it 
says  is  that  "Renaming  is  a  process 
similar  to  COPYing  a  file"  So  I  went  after 
the  COPY.  And  those  extra  bits  tagged  on 
at  the  front  of  a  file  name,  can  be  swept 
away  in  the  blink  of  an  eye.  I  mean  that. 
Very  quickly.  Like  FAST  man! 

Say  you  have  a  disk  on  which  every  title 
starts  off  with  "LIST1".  It  will  look  like 
this:-  Listl_Garbage 



Put  the  disk  in  shall  we  say,  FLP1,  and 
type:-  WREN  FLPl.LISTl^FLPl 

(note  comma) 
Just  look  at  that  and  remember  it,  as  one 
day  you  are  going  to  use  it. 

Press  [ENTER],  and  watch  the  "LIST1"  go. 



I  keep  looking  for  little  things  for  you  to 
punch  in  for  yourselves,  to  give  you 
something  to  do,  and  also  give  an  insight 
into  the  various  aspects  of  programming. 

This  time  it  is  a  small  fancy  little  snippet 
of  a  Turtle  Graphic.  Not  quite  as  slow  as 
a  turtle,  but  it  sure  has  more  twists  aad 
turns  than  a  turtle.  A  bit  faster  too,  but 
the  patterns  are  interesting.  So  why  not 
sit  down  with  me  and  have  bit  of  a  rest 
from  all  that  hard  stuff. 

This  came  to  me  with  a  lot  of  other  stuff, 
some  good,  some  not  so  good.  Some  I  don't 
know  whether  it  is  good  or  bad  as  it  does 
not  work  for  me.  I  recently  got  Minerva, 
and  I  understand  that  some  of  the  earlier 
material  does  not  work  on  it.  I  still  am 
trying  to  learn  about  Minerva.  But  she 
sure  is  one  COOL  lady.  The  QL  really  is  a 
lot  cooler. 

Here  is  the  little  listing  for  you  to  type 
in.  I  can  send  it  to  you,  but  it  is  cheaper 
this  way. 

100  REMark  Turtle  graphics 

110  WINDOW  512,256,0,0 

120  PAPER  0:CLS 


140  RE  Peat  logo 

150      IF  RND>.68  THEN  CLS 

160  note=RND 

170  POINT  60,60 

180      INK  RND(1  TO  7) 

190     turtle=RND(3  TO  70) 

200     terrapin=RND(25  TO  340) 

210       FOR  k=l  TO  turtle 

220         MOVE  k/.7 

230         TURN  terrapin 

240         BEEP  3200,k/note 

250      END  FOR  k 

260  IF  INKEY$<>""  THEN  STOP 

270  END  REPeat  logo 

Now  was  that  not  fun?  Would  you  like 
another?  Well  space  is  getting  a  wee  bit 
short  so  we  will  leave  it  off  for  another 

In  the  meantime,  'night  all,  and  have 
pleasant  dreams  of  circles  flashing  round 
in  front  of  your  eyes.    'Bye  § 








It's  true  that  I'm  trying  to  get  away  from  the  retail  business 
side  of  things,   but  my  intention  is  to  make  things  EASIER  for 
folks,   not  harder!   When  it  comes  to  filling  orders,   I'm  often 
the  slowest  of  the  slow.    In  theory  at  least,   a  dealer  has 
nothing  to  do  except  fill  orders,  whereas  there  are  often  long 
periods  of  time  when  I  cannot  fill  orders  due  to  the  press  of 
other  things.  However,    if  a  person  is  unable  or  unwilling  to  get 
something  from  a  dealer,   that  person  is  welcome  to  try  me. 
Here's  what  I'd  like: 

1.  Please  state  clearly  what  it  is  that  you  want. 

2.  Please  describe  your  hardware  completely. 

3.  Please  include  SASE  with  your  order. 

4.  Please  write  concisely  and  don't  ask  a  lot  of  questions. 

5.  Send  no  money.   I  will  include  bill  with  shipment. 

6.  Be  prepared  to  wait;    I  am  sometimes  VERY  slow. 

I  will  use  your  SASE  to  acknowledge  your  order.    I'll  let  you 
know  if  your  order  will  take  longer  than  30  days,   or  if  I'm 
unable  to  fill  your  order.   If  you  don't  like  what  you  get,  or 
find  the  price  too  high,   you  can  return  it.   Returns  are  always 
welcome.   If  what  you  ordered  exceeds  your  budget  limits,   you  can 
pay  for  it  over  a  period  of  time  to  suit  your  budget. 

Here's  what  I'm  currently  working  on: 

1.  A  dealer  price  list...  very  complex,   trying  to  simplify. 

2.  A  CONFIG  program  which  will  enable  the  user  to  easily 
configure  WORD  MASTER  and  TYPELINER  for  just  about  any 
dot-matrix  printer.   Adaptable  to  other  software  which  is  fussy 
about  printers. 

3.  TECH  DRAW  V3   (now  completed)   for  any  disk  system.   For  mouse, 
trackball,   joystick  or  keyboard. 

4.  MOUSE  DRIVER  for  use  with  Zebra  A/D  +  Radio  Shack  Color 
Mouse.  Nearly  done.  Will  be  quite  nifty. 

5.  A  LOADME  program  which  will  enable  the  user  to  easily  load 
and  print  documentation  files  on  disk  in  Mscript  or  Word  Master 
format,   without  owning  or  knowing  either  word  processor.   Will  be 
provided  free  on  all  disks  containing  docs  in  MS/WM  format. 

6.  DEVPAC  documentation,   long  overdue. 

7.  An  improved  version  of  SPECTERM64  which  will  include  support 
for  the  AERCO  dual-channel  RS232  interface. 

8.  A  new  and  improved  version  of  the  AERCO  RS232  interface. 

Jack  Dohany 
390  Rutherford 

Redwood  City,  CA  94061  April  5,  1991 


SuperBasic  Tutorial  Part  2 
Printing  in  Columns 

In  the  first  episode  of  this  exciting 
serial  I  showed  you  how  to  structure  a 
simple  program  so  that  it  could  easily 
be  expanded  and  improved  without  loosing 
track  of  where  you  are.      All  we  have  to 
do  is  to  consider  a  statement,  think  how 
it  might  be  improved,  write  the 
improvement  as  a  FuNction  or  PROCedure 
and  call  it  by  name  from  the  original 
statement.      The  program  was  one  to 
print  the  directory  of  a  storage  device 
(disk  or  mdv  cartridge)  onto  paper  that 
had  appeared  in  an  earlier  issue  of 
Sine-Link.      The  first  modification  we 
made  was  to  give  the  user  the  option  of 
either  accepting  program's  suggestion 
for  the  source  of  the  directory  or 
putting  in  one  of  your  own  without 
having  to  stop  the  program  and  EDIT  a 

I  left  you  with  the  problem  of  altering 
the  program  so  that  the  default  offered 
doesn't  always  revert  to  the  one  built 
into  the  program  in  the  PROCedure 
"Set_up",  but  uses  whatever  device  you 
used  last  time.      There  are  two  ways  to 
do  this,  one  is  to  modify  line  220  (not 
210  -  my  mistake)  as  follows: 

220  dev$=Get_dev$(dev$) :DIR#3,dev$ 

The  first  statement  can  change  the  value 
of  the  global  variable  dev$,  which 
couldn't  happen  in  the  earlier  version. 
The  other  way  would  be  to  change  the  dv$ 
variable  to  df$  throughout  the  FuNction 
GetJDev$,  this  means  that  df$,  an  alias 
(formal  variable)  for  dev$  within  the 
function,  could  be  altered  and  dev$ 
along  with  it.      But  I  don't  favour  this 
way  of  doing  it,  it's  a  bit  too 

Another  point  struck  me  while  re-reading 
what  I  wrote  last  time:  some  beginners 
might  be  puzzled  about  the  use  of 
CHR$(10)  and  CHR(12)  in  the  program. 
These  are  ASCII  control  codes  which 
cannot  usually  be  typed  in  from  the 
keyboard;  CHR$(10)  is  an  exception,  it's 
the  <ENTER>  key,  also  known  as  line  feed 
(LF),  since  that's  what  it  does  both  on 
the  screen  and  on  the  printer.  (You 
can  also  generate  it  with  <CTRL  J>  -  try 
it!).      CHR$(12)  is  form  feed  (FF)  and 
does  nothing  on  the  QL  screen,  but  has  a 

noticeable  effect  on  the  printer  -  it 
moves  to  a  new  sheet  of  paper  at  the  end 
of  the  run.      (On  some  micros  it  clef 
the  screen  -  but  not  this  one!)  One 
other  code  worth  mentioning  here  is 
CHR$(13),  carriage  return  (CR) ,  which  on 
the  QL  screen  is  implied  in  the  LF,  and 
probably  on  your  printer  if  you  have  set 
the  DIP  switches  to  their  most  useful 

If  you  have  tried  our  program  as  it 
stands  you  will  probably  have  noticed 
that  it  only  prints  one  name  on  each 
line,  and  since  file  names  are  generally 
rather  short  this  is  a  shocking  waste  of 
trees.      Wouldn't  it  be  nice  to  print  it 
in  several  columns  across  the  page, 
like,  for  example,  Quill  does  on  the 
screen  when  you  ask  for  a  list  of  your 
_docs?     That  is  what  we  are  going  to 
look  at  in  this  episode.      The  first 
thing  we  have  to  do  is  to  identify  the 
line  that  we  need  to  alter,  i0e.  the  one 
that  actually  instructs  the  computer  to 
send  the  directory  from  the  mdv  tape  or 
floppy  to  the  printer.      We  have  to  look 
no  further  than  line  220;  it  is  the 
DIR#3  command  that  does  it.      We  have 
intercept  the  stream  of  file  names  tha . 
this  command  spews  straight  down  the 
serial  port.      This  is  where  the  QL's 
flexible  handling  of  channels  come  in 

Aside  on  channels. 

A  computer  would  be  useless  unless  you 
could  put  information  into  it  and  get 
something  back  out  -  it  needs  to  be  able 
to    communicate.      Information  can  be 
put  into  the  computer  from  the  keyboard, 
from  a  file  on  tape  or  disk,  via  the  net 
etc.    Output  can  be  obtained  on  the 
screen,  on  a  printer  or  it  can  be  put 
into  a  file.      Some  computers  have 
different  commands  for  dealing  with 
different  kinds  of  devices  (e.g.  PRINT 
to  the  screen,  but  LPRINT  to  a  printer) s 
but  to  the  QL  they  are  all  just  numbered 
channels.    The  commands  you  use  are  the 
same  irrespective  of  the  device  at  the 
other  end  of  the  channel.  (Although 
some  are  inappropriate  -  like  CLS  to  a 
printer  channel.)     When  you  open  a 
channel  you  have  to  tell  QDOS  what  kiri 
of  input/output  device  it  is,  and  it 



Super  Basic  Tutorial  Part  2 
Printing  in  Columns 

sets  up  the  appropriate  "driver"  to  look 
after  the  details  for  you. 

Back  to  our  columns. 

The  DIR  command  directs  the  list  of  file 
names  to  a  numbered  channel,  so  we  can 
intercept  it  if  we  make  the  channel  a 
file  rather  the  printer.      Then  we  can 
read  it  back  from  the  file  into  an 
array,  and  get  full  control  of  the  list 
of  file  names  as  we  print  them  out. 
Printing  them  out  at  regular  intervals 
across  the  page  is  easy,  but  proper 
printing  in  columns  involves  going  down 
each  columns  in  turn  from  left  to  right; 
and  that  is  what  we  shall  do  -  phone 
book  order  is  what  I  am  aiming  at. 

The  listing  contains  all  the  lines  you 
will  have  to  alter  or  add  to  Prt_dir2  to 
upgrade  it  to  Prt_dir3.      It  is  not  a 
complete  program  in  itself;  it  will  not 
run  by  itself.      Type  in  the  listing, 
and  save  it  under  some  temporary  name 
(e.g.  mdvl_Prt_dir_UG) .      Then  load 
Prt_dir2  and  MERGE  in  the  upgrade.  You 
must  do  it  in  this  order  since  lines 
with  the  same  line  number  are 
overwritten  during  a  MERGEr,  and  we  want 
the  later  versions  to  stand.  This 
assumes  you  have  the  same  line  numbers 
as  the  listing  published  in  part  one;  if 
you  have  RENUMbered,  then  you  will  have 
to  be  very  careful  and  make  the 
alterations  by  hand. 

Upgrade  Listing 

When  merged  with  Prt_dir2  these  lines 
convert  it  to  version  3,  do  not  try  to 
RUN  them  on  their  own! 

100  nm$  =  "Prt__dir3" 

110  REMark  hjc  1991.03.13    Ver  0.33 

162  temp$= '  raml_temp_dir ' 

164  chars%=80:       REMark  output  line 

166  cols%=4 

220  Col_dir  3,Get_Dev$(dev$) 

630  REMark * *****  

640  DEFine  PROCedure  Col_dir(ch£,dv$) 
650  LOCal  a$,nl%,i,n%,st$(2,30),rows% 
660  n%=0:  nl%=chars%  DIV  cols^-1 

670  Make_array  dv$ 

680  PRINT#ch&,st$ 

690  PRINT#ch2>:  FOR  i=l  TO  rows% 

700      FOR  j=0TO  cols^-1 

710  a$=ddir$(i+j*rows%) 

720         PRINT#ch%,  !Procrust$(a$,nl%) ; 

730  END  FOR  j:  PRINT#ch%:  END  FOR  i 

740  END  DEFine 

750  REMark *** 

760  DEFine  PROCedure  Make_array(dv$) 

770  LOCal  a$,c$,i:  c5fc=ch%+l 

780  REMark  Put  directory  into  file 

790  DELETE  temp$:  OPEN_NEW#c%, temp$ 

800  DIR#c%,dv$:  CLOSE#c% 

810  n%=Line__count(c%,temp$)-2 

820  rows%=nVcols%+.499 

830  n$=cols%*rows% 

840  DIM  ddir$(n%,nl%) 

850  OPEN_IN#c%,temp$ 

860  FOR  i  =l,2:INPUT#c*,st$(i) 

870  FOR  i=l  TO  n% 

880      IF  E0F(#c5fc):  EXIT  i 

890  INPUT#c5fc,ddir$(i) 

900  END  FOR  i 

910  CLOSE#c$:  DELETE  temp$ 

920  END  DEFine 

930  REMark  * 

940  DEFine  FuNction  Line_count(ch%,f $) 

950  LOCal  a$,ct,n&:n5fc=0 

960  REMark  Count  no.  of  lines  in  file 

970  OPEN_IN#ch%,f$ 

980  REPeat  ct 

990      IF  EOF(#ch%):  EXIT  ct 

1000    INPUT#ch&,a$:  i&-n%+l 

1010  END  REPeat  ct 

1020  CLOSE#ch% 

1030  RETurn  n%:  END  DEFine 

1040  REMark * ** 

1050  DEFine  FuNction  Procrust$(r$,p%) 

1060  LOCal  1%:  l$=LEN(r$) 

1070  IF  \%>p% 

1080      r$=r$(lTO  p%) 

1090  ELSE  r$=r$&FILL$("  " ,p%-l%) 

1100  END  IF 

1110  RETurn  r$:  END  DEFine 

(This  series  will  be  continued  in  the 

next  issue) 

(c)  1991  H.J.Clase 

Howard  Clase 

(709)  753-6415 

Box  9947,  Station  B, 

St  John's,  Nfld,  A1A  4L4 

email  (Note 



SuperBasic  Tutorial  Part  2  (Continued) 
Printing  in  Columns 

First  we  need  to  bring  the  version  info 
up  to  date  (100  &  110).    Before  we  get 
to  the  main  additions  it  is  necessary  to 
define  a  few  more  global  variables,  and 
the  best  place  to  put  these  is  into  the 
PROCedure  Set_up  (lines  162,  164  &  166) . 

Temp$  is  the  temporary  file  we  shall 
have  to  set  up  to  hold  the  directory* 
If  you  have  ramdisk  use  it  here,  if  not 
replace  raml_  with  any  device  (flp  or 
mdv)  that  will  have  a  bit  of  space  on 
it.      Using  a  variable  in  this  way  means 
that  you  only  have  to  alter  the  name 
once  to  change  it  thoughout  the  program. 

Chars%  is  the  number  of  characters  in 
the  line  of  the  output  device;  this  is 
normally  80,  but  to  save  paper  while  I 
am  testing  the  program  I  use  a  screen 
for  channel  #3  which  is  only  37 
characters  wide.      (This  is  an  example 
of  the  usefulness  of  the  QL's  channels; 
all  I  have  to  do  is  to  alter  the 
definition  of  channel  #3  in  line  160  to 
switch  from  screen  to  printer.)  ColsSS 
is  the  number  of  columns  required,  you 
can  set  it  to  whatever  suits  you. 
Later  we  might  add  a  procedure  to  enable 
the  user  to  chose  the  number  required 
while  the  program  is  running. 

I've  designed  my  new  PROCedure  to  look 
as  much  like  the  QDOS  PROCedure  it 
replaces  as  possible,  so  it  requires  the 
same  two  parameters,  a  channel  number 
and  a  device  name  (or,  in  this  case,  a 
function  that  returns  one).     (You  cannot 
use  the  #  notation  for  your  own 
superbasic  PROCedures;  it  has  to  be 
replaced  with  a  space.)      The  main 
change  to  the  original  listing  occurs  in 
line  220.      (You  can  use  either  version 
-see  above)      This  change  leads  into 
the  sequence  of  two  new  PROCedures  and 
two  new  FuNctions  that  follows. 

Col_dir  is  the  PROCedure  that  deals  with 
printing  in  columns,  but  there  are  a  few 
preliminaries  to  go  through  first. 
Make_array  puts  the  directory  into  an 
array,  ddir$.      Lines  790  &  800  OPEN  a 
new  file  as  channel  #c%,  and  puts  the 
directory  of  your  chosen  device  into  it. 
Not  surprisingly  QDOS  objects  if  you 
try  to  OPEN_NEW  a  file  with  a  name  that 
alredy  exists,  and  the  program  would 
stop  with  a  QDOS  error  message  if  it 
were  not  for  the  protective  DELETE 

statement  -  luckily  QDOS  does  not  object 
to  deleting  a  file  that  doesn't  exist! 
DIR  produces  a  series  of  ASCII  text 
'lines'  each  followed  by  a  LF  charactei 
(CHR$(10)),  so  that  is  what  the 
temporary  file  consists  of.    The  first 
two  lines  of  the  directory  of  a  formated 
device  are  always  the  device  name  and 
the  sector  statistics.      (Well  not  quite 
always,  I  have  a  version  (2.02)  of 
Toolkit  2  with  a  bug  in  it  so  that  it 
fails  to  produce  these  two  lines  from  an 
empty  mdv  tape,  and  the  program  as 
written  stops  here  if  there  are  no  files 
on  the  tape.      It  will,  of  course  always 
stop  if  the  tape  is  not  formatted.) 
The  rest  of  the  file  is  a  list  of  the 
names  of  the  files  on  the  tape  or  disk* 
Since  there  may  be  anything  from  0  to 
about  450  we  have  to  count  them.  This 
is  done    at  line  810,  n%  is  the  actual 
number  of  files  -  two  less  than  the 
number  of  lines  found  by  function 
Line__count,  which  I'll  explain  later . 

Then  follows  a  bit  of  fudging.      Since  I 
want  to  print  in  proper  columns  the 
array  has  to  be  exactly  the  product  of 
the  numbers  of  rows  and  columns. 
Suppose  there  were  98  files  and  we  ask..-, 
for  four  columns,  we  can  only  print 
rows,  so  the  first  line  would  have  to 
consist  of  files  number  1,26,51  and  76 
and  so  on,  but  when  we  get  to  the  last 
row  but  one  we  should  run  out  in  the 
last  column  if  we  had  only  dimensioned 
our  array  to  98,  generating  an  "out  of 
range"  error.      Line  820  calculates  the 
number  of  rows  -  the  .499  makes  sure  it 
rounds  up  not  down  -  830  adjusts  the 
value  of  n%,  and  840  dimensions  the 
array  ddir$()  to  n%  strings  of  maximum 
length  nl%.      This  length  was  calculated 
at  line  660  -  the  -1  ensuring  at  least 
one    space  between  the  columns. 

Dimensioning  Arrays 

Because  of  the  way  it  was  dimensioned 
ddir$  is  a  global  array.     I  should  have 
preferred  to  make  it  LOCal  to  Col_dir, 
but  this  couldn't  be  done  since  we  don't 
know  how  big  it  has  to  be  when  we  enter 
the  procedure.      Variable  arrays  have  to 
be  dimensioned  to  help  QDOS  organise  t 
memory.    Since  it  is  a  string  array  yd. 
have  to  tell  it  how  many  elements  (file 


SuperBasic  Tutorial  Part  2  (Continued) 
Printing  in  Columns 

names)  and  the  maximum  number  of 
characters  you  want  in  each  -  if  you  try 
to  assign  a  longer  name  then  only  the 
first  nl%  will  go  into  the  array.  A 
LOCal  array  is  declared  by  putting  the 
dimensions  in  brackets  after  the 
variable  name  in  the  LOCal  statement, 
which  must  be  the  first  line  in  the 
array  or  function.  The  variable  st$ 
declared  in  line  650  is  an  example  of  a 
LOCal  array,  this  is  to  hold  the  device 
name  and  the  sector  statistics.  Since 
we  know  in  advance  what  size  this  has  to 
be  there  is  no  problem,  but  we  cannot 
dimension  ddir$  until  we  know  how  many 
file  names  there  are,  and  it  has  to  be 
done  with  a  DIM  statement.  SuperBASIC 
is  more  flexible  than  most  BASICs  in 
that  you  can  re-dimension  an  array  to  be 
larger  than  it  was  before,  so  there  is 
no  problem  with  the  fact  that  it  will  be 
re-dimensioned  each  time  you  print  a 

Having  dimensioned  our  array  we  have  to 
fill  it  with  the  file  names.      Line  850 
re-OPENs  our  file  for  INPUT  to  the 
computer  as  channel  #c%  again.  (The  OPEN 
command  also  allows  you  to  alter  or  add 
to  the  file,  but  we  don't  need  to  do 
that.)    The  short  form  FOR  loop  at  line 
860  puts  the  drive  name  and  stats  into 
st$.      I  could  have  just  used  the  first 
two  elements  of  ddir$,  but  I  didn't  want 
them  to  be  truncated.      Note  that  the 
INPUT  command  -  with  the  appropriate 
channel  number  -  is  used,  the  same 
command  you  use  to  get  input  from  the 
keyboard.      Then  we  move  to  a  long  FOR, 
loop  which  reads  the  file  names  from  the 
temporary  file  and  puts  them  into  the 
array.      Because  we  may  have  increased 
the  value  of  n%  to  be  greater  than  the 
actual  number  of  names  we  have  to  allow 
for  getting  to  the  end  of  the  file 
before  we  get  to  the  end  of  the  loop; 
this  is  done  at  line  880.      The  last  few 
arrayelements  may  remain  empty.  Then 
we've  finished  with  the  file  and  can 
dispose  of  it  (910). 

We  now  return  to  line  680,  which 
demonstrates  a  useful  trick.      If  you 
want  to  print  a  whole  array  you  do  not 
have  to  write  your  own  loops,  PRINT 
array_name  will  print  out  the  whole 
thing.      If  you  follow  the  array_name 

with  one  of  the  formatting  "punctuation 
marks"  (,  ;  !)  it  is  printed  as  though 
each  printed  element  is  followed  by  the 
mark;  a  comma  will  tab  each  element  - 
try  the  effect  of  the  others  for 
yourself.      Since  there  is  nothing  in 
line  680  the  two  entries  are  printed  as 
separate  lines.      Then  we  move  to  the 
main  double  loop  (690  -  720).  The 
outer  (i)  loop  controls  the  rows  and  the 
inner  (j)  loop  picks  out  the  entry  for 
each  column  as  we  go  across  the  row. 
The  !  puts  a  space  before  each  column 
except  the  first,  and  the  procrustean 
FuNction  ensures  that  each  is  exactly 
the  right  length.     (The  formatting  mark 
!  is  not  used  often  enough  by  amateur 
programmers,  as  well  as  the  above  role 
it  will  not  print  at  the  end  of  a  line 
if  there  is  not  enough  room  for  the 
whole  string,  but  starts  a  new  line  -  no 
split  words.)      The  PRINT  statement 
between  the  two  END  FORs  makes  sure  that 
there  is  a  new  line  after  each  row,  it 
is  redundant  if  you  have  got  the 
characters  per  line  right  in  Set__up,  but 
helps  keep  things  tidy  if  you  haven't. 

There  are  still  two  FuNctions  left 
unexplained.      Line_count  just  returns 
the  number  of  lines  in  an  ASCII  text 
file,  you  can  use  it,  for  example  on  a 
basic  file  -  try: 

PRINT  Line_count  ( 4 ,  "mdv2_Pr t_di r 3 " ) 
(you  must  have  prt_dir3  loaded  at  the 
time  -  or  Line_count  at  least,  and 
don't  forget  the  quotes!.      It  won't 
work  on  a  Quill  file  they  are  not 
ASCII.)      Note  in  particular  line  990* 
Whenever  you  use  a  loop  to  run  through  a 
file,  since  you  do  not  usually  know  the 
length  in  advance  you  have  to  use  a 
REPeat  loop  rather  than  a  FOR  loop,  and 
you  must  test  for  end-of-file  right  at 
the  beginning  -  it  might  be  an  empty 
file.    Nothing  happens  to  a$  here,  it's 
just  somewhere  to  put  each  line  while 
you  count  it.      You  could  easily  adapt 
this  FuNction  to  find  the  length  of  the 
longest  file  name  in  the  list  as  well  as 
count  them  couldn't  you?    (This  month's 
assignment,  you  might  also  try  to  adapt 
it  to  find  the  length  of  a  file  in  bytes 
-  hint  use  INKEY$) .      The  other 
FuNction,  Procrust$,  either  truncates 
(1070/80)  or  pads  out  with  spaces  (1090) 



SuperBasic  Tutorial  Part  2  (Continued) 
Printing  in  Columns 

the  string  r$  to  make  its  length  exactly 

If  there  is  anything  I  have  not 
explained  in  enough  detail  please  write 
to  me.      Next  time  Afferbeck  Lauder. 

(c)  1991  H.J.Clase 

Howard  Clase 

(709)  753-6415 

Box  9947,  Station  B, 

St  John's,  Nfld,  A1A  4L4 

email  hclasei&  (Note 
change. ) 

Put  some  punch  in  your 
PRINT  FACTORY©  graphics!! 


Collection©  1  Colleetion#2 


Digitized  Misc. 



Over  i  SO  targm  &  small  graphic* 
in  maoH  ooltmotioix! 

Only  $1 2.93  pod.  each  or  both  collections 
for  $1  933  ppd.  [Chock  or  money  order,] 
Available  on  tape  or  S  1/4  DSDD  LAHKEN 
or  OLXGER  disk  -  please  specify. 
Send  order  tm 
John  McMlchael,  1710  Palmer  Dr, 
Laramie,  WY  82070 

513  E.  Main  Street 
Pera,  IN  46970 








Bug  Alerts 
&  Updates 

by  Richard  Hurd 



■  ami 


•  ami 

aiaaaaaaaaaaaaaaaaaaai  ■  ■  san  i  ■■■  •  ■ 





•  •■■■■■•■I  iiiiiii 

■  ■■■■•■••> 
■ •■•■■•• 



■  •■>■■■■< 





■  aim 

■  ■mi 
•  aim 

mi  ■■•ma 

■  an  mini/ 

Here  are  a  few  updates  and  corrections  to  some  of  my 
articles  and  programs, 

NEC  1035  Disk  Drive  Overview 

From  SINC-UNK  VoL7  No6  NEC  1035  3J5"  floppy  disk 
drive  overview. 

In  the  article  I  mentioned  having  problems  with 
formatting  disks  from  MEI/Micro  Center.  After  moving  the 
drives  power  supply  further  away  from  the  drive,  the 
problem  vanished.  The  no-name  disks  have  held  up  as  well 
as  the  name  brand  Maxell,  3M,  and  FUJI  disks  Pve  also 
tried,  The  price  of  the  no-name  disks  has  gone  down  to  $39 
ea.  in  lots  of  25.  See  their  ad  in  Computer  Shopper 

LARKEN  Disk  Utility  Updates. 

An  update  for  Copy  Machine  which  is  a  modified  version 
of  Larry  Kenny's  Move  utility.  It  allows  for  batch  copy, 
copy  all,  and  batch  erase.  The  improvement  simply  makes  it 
easier  to  reLOAD  Copy  Machine. 

A  bug  alert  for  LK2cpy.  Which  is  a  modified  version  of 
Larry  Kenny's  2  drive  copy  utility.  It  uses  a  search  routine 
to  look  for  the  highest  numbered  used  track  on  the  disk.  It 
then  copies  all  tracks  up  to  and  including  the  last  used 
track.  The  fix  was  suggested  by  Bob  Mitchell,  in  regards  to 
a  full  disk.  Thanks  Bob.  Note  that  for  a  full  disk  copy,  I 
suggest  using  Byte  Power's  COPY  3  utility  program, 
available  from  the  group's  disk  exchange.  Which  due  to  its' 
compacting  of  track  data,  gives  a  faster  copy.  This  is  the 
purpose  of  LK2cpy,  but  it  is  defeated  with  a  full  disk. 
LK2cpy  is  at  its  best  with  75%  or  less  of  used  disk  space. 

An  update  for  my  RDBKUP  [RAMDISK  backup)  utility. 
The  original  saved  all  tracks  of  the  RAMDISK  to  a  double 
sided  floppy.  The  improvement  now  saves  only  up  to  the 
last  used  track. 

These  changes  can  be  found  on  my  LARKEN  UTILITIES 
DISK  version  23.  Along  with  updates  on  Double  to  Quad 
(d2qj,  a  utiltity  for  525"  quad  density  drive  users.  It 
copies  S25"  double  density  disks  to  quad  density  disks 
using  just  the  quad  density  drive.  Fve  also  added  a  Quad 
to  Double  (q2d)  utility,  which  copies  tracks  from  a  quad 
density  disk  to  a  preformatted  double  density  disk.  For 
example  you  get  a  double  density  disk  from  a  friend,  use 
d2q  to  convert  to  the  quad  drive,  you  then  have  a 
Preformatted  double  density  disk  to  load  up  with 
something  using  q2d  to  return  to  your  friend. 

Copy  Machine 

Important  Notes  Do  not  CLEAR  or  RUN  while  making 
changes.  After  making  changes,  GO  TO  9999  to  SAVE. 

20  RANDOMIZE  USR  60016 
200  RANDOMIZE  USR  60016 
8095  IF  INKEY$="1"  THEN    GO  TO  8200 
8200  CLS  •  PRINT  """Insert  CopyMachine  Disk  In 
Drive""TAB  8?"Which  Drive?  (0-4)" 
8210  IF  INKEY$<>""  THEN    GO  TO  8210 
8220  IF  INKEY$=""  THEN    GO  TO  8220 
8230  LET  d=C0DE  INKEY$-48«  IF  d<0  OR  d>4  THEN  BEEP 
.1,0.  GO  TO  8210 


615  IF  sid=l  THEN  LET  c=(x/2)-l 
635  IF  a>blx  AND  sid=2  THEN  GO  TO  740 
2065  LET  blx=sid«numtrks 


660  REM  after  line  number,  eliminates  auto  verify, 
speeds  up  copy. 

RDBKUP  ve^siouN, 

210  GO  SUB  2000i  PRINT  "TAB  9,"Copy  Counts";stks 
2000  REM  Get  Last  Used  Track 
2010  LET  stks=PEEK  (mem+21) 
2020  LET  x=2 

2030  FOR  f=((mem+24)+(2*stks-l))  TO  (mem+24)  STEP 

2040  IF  PEEK  f=245  THEN    GO  TO  2060 
2050  NEXT  f 
2060  LET  x=f-(mem+23) 
2070  LET  stks=x 
2080  RETURN 

This  page  was  produced  with  Word  Master,  Typeliner  & 
Headliner.  Printed  with  a  Star  NX-100Q, 



1301  KibI inner  Place 
Auburn,    IN  46786 
Tele i    (£13)  925-1372 
01  £7  1391 

Dear  George, 

This  is  to  announce  that   I  am  the  official  SNUG  NEWSLETTER  EDITOR. 
Amongst  many  weeks  of  wait  this  has  been  accomplished.    Most  of  the  delay  was 
occassioned  by  a  sort  of  computer  type  glitch,,    Paul  Holgren  was  waiting  for 
material   from  me  and  I  was  waiting  for  material   from  him.    Now  that  that  has 
been  reconci led  we  have  also  reconciled  the  disk  compatibility  between  us 
since  I  now  have  an  Oliger  disk  interface  in  addition  to  my  Larken.  Paul 
will   not   go  to  another  disk   I.    F.    since  he  is  so  oieased  with  Oliger.    I  have 
not  had  my  Oliger  long  enough  to  really  learn  much  about   it   but   I  am 
beginning  to  feel   that  he  has  a  point.    I   plan  to  get   setup  so  that    I  will 
have  both  Larken  and  Oliger  operating  at  the  same  time,    which  system  gets 
used  will  depend  upon  the  disk  commands  used. 

That  was  one  reason  to  get  an  Oliger  so  that   I  was  compatible  to  Paul 
and  another  reason  is  that  there  are  approximately  1700  disk  interfaces  for 
the  T/S  2068  sold  and  of  that  there  are  300  plus  Larken  and  600  plus  Oliger 
so  if  I  can  handle  both  Oliger  and  Larken  1  am  compatible  with  59*  of  the 
known  disk  interfaces.    However,    there  is  the  matter  of  drive  size,    I  am 
using  5  1/4  both  40  track  and  80  track  so  that   should  take  care  of  at  least 
a  great  majority  of  the  Larken  or  Oliger  users. 

I   am  looking  for  Hen's  Teeth,    in  other  words  something  quite  rare.  That 
is  a  version  of  MSCRIPT  that  will   support   both  the  Larken  and  the  Oliger 
from  the  menu  and  hopefully  cassette  too.    I  would   like  to  have  version  V5» 0 
or  later  but  would  accept  an  earlier  version  if  available.    Right  now  on 
Oliger  I   am  using  Mscript  V5c  ®  and  when  I   use  Larken  I   use  V5. 5.  Presently 
when  I  transfer  files  from  one  the  the  other  I  have  to  SAVE  to  cassette  an; 
LOAD  back  to  whatever  disk  system  I   want   to  store  the  material   on.    V5.  ©  that, 
I  have  was  originally  cassette  but   I  have  managed  to  convert   it  to  disk. 

Also,    I  don't   know  how  many  know  that  TASWORD  II,    which  I  don't  like 
nor  does  Paul,    files  can  be  LOADed  into  MSCRIPT  but  the  format  will  not  be 
clean.    But  the  text   is  there  and  can,  be  cleaned  up  much  more  easily  than 
typing  in  the  whole  text   into  MSCRIPT.    There  is  a  program  to  clean  it  up 
that   I  will  have  to  try,    it  could  save  much  time. 

As  EDITOR  I  am  asking  for  input.    Anything  from  I  don't   like  this  to 
submission  of  material  to  be  publishedc    Hints,    shorscuts,    one  liners  to  long 
articles  on  anything  pertaining  to  the  T/S  computers  and  even  some  that 
aren't   if  the  articles  are  related.    Is  there  something  that  you  are  looking 
for,    write  and  space  permitting   it  will   be  published,    got  something  to  sell, 
again  send  it   in  and  it  will   get  published.    Looking  for  articles  on  specific 
topics,    write  in  or  call.    I  have  a  filing  cabinent   full  of  material,    I  can't 
afford  to  supply  free  copies  but  the  fee  will   be  quite  reasonable  as  long  as 
where  I  go  is  reasonable.    I  will  get  the  submitted  material   into  format  for 
publishing  and  send  it  to  Paul  on  a  Oliger  disk  and  he  will  make  it  ready 
for  the  copy  machine  after  picking  what  should  be  published.    The  newsletter 
will  be  five  sheets  of  paper  and  will  have  a  minimum  of  graphics  for  front 
page  to  increase  the  amount  of  text  presented.    The  outside  page  will   be  a 
mailer  so  actually  there  will   be  9  pages  of  text.    The  newsletter  will  only 
be  as  good  as  the  submissions* 

Remember  that   postage  cost  money,    and  it  has  gone  up,    if  you  expect  a 
reply  send  a  LSASE  please.   My  mail   box  almost  always  has  an  outgoing  letter 
waiting  for  the  post  man  so  I   know  postage  costs.    I  have  to  pay  for  my  hobby 
from  my  allowance  and  when  it   is  spent   I  have  to  wait  till  next  month  befo 
I  can  do  anything.    Luckily,    it  has  not  came  to  that  yet.    Also,    as  much  as  1 
like  to  make  phone  calls  that   is  one  area  that  my  wife  watches  like  an 
accountant.    So  I  have  to  limit  my  calls. 



Material  submitted  should  be  on  5  1/4  40  or  30  track  disk  to  ease  the 
typing  LOAD  and  should  be  either  Oliger  or  Larken,    perferrably  MSCRIPT  or  if 
not  that  TASWORD  II.    I  have  never  used  any  other  word processor  for  the  T/S 
2068.    No  SPECTRUM  versions  please  since  I   am  not   set   up  for  SPECTRUM.    If  you 
do  not  have  Oliger  or  Larken  disk  or  the  wrong  size  then  cassette  is 
acceptable.    Please  use  a  good  quality  tape  and  if  postage  is  sent  the 
material  will  be  returned.    If  you  do  not  have  a  disk  system  and  don't  want 
to  use  cassette  hardcopy  will   be  accepted,    preferrably  typed  but   long  hand 
will  be  accepted  as  a  last  resort.   Anything  I  type  may  have  errors  that  I 
have  introduced.   Don't  worry  about  misspellings  or  writing  errors,  the 
content   is  more  important  than  correct  English. 

Submissions  should  be  sent  to  me  at  the  following  address: 
AUBURN,    IN  46706 

Let's  see  how  far  we  can  take  our  wonderful  1   little  computers? 

Sinclairly  yours, 

Donald  S.  Lambert 

TS2068      SERIAL  CABLE 

Gallon  Bench 

Fellow  TS  2068  users.  I  have  found 
over  the  last  few  months  that.,  some 
of  the  information  needed  to 
complete  some  projects  is  not  always 
clear  with  the  instructions  you  may 
receive  with  the  project.  During  the 
last  couple  of  months  I  have  started 
two  such  projects,,  namely  the 
conversion  of  the  20SO  modem  to  a 
modified  serial  port,  and  the 
building  of  a  Z-SIO  port  card  for  my 

The  building  of  both  projects  was 
not  that  hard  to  do,  having  some 
prior  kit  building  experience, 
especially  soldering.  Let  me  say 
that  the  first  thing  anyone  must 
have  is  the  patience  to  keep  working 
at  it  to  get  it  right.  After 
completing  each  of  the  two  projects, 
I  ran  into  the  same  problem.  I 
needed  a  serial  port  cable  that 
would  work  with  each  of  the  two 
projects.  The  2050  converted  serial 
port  had  to  have  a  male  0B2S  to 
female  DBS  cable.  The  Z-SIO  serial 
port  card  had  to  have  a  male  DB25  to 
male  DB2S  cable  (DBS  and  DB2S  refers 
to  the  connector  types). 

The  instructions  for  each  project 
did  not  give  a  clear  pinout  for 
either  cable.  They  did  give  the 
signal  available  at  each  pin,  but 
how  these  should  be  configured  with 
the  signals  needed  for  the  external 
modem  was  not  given.  After  some 
study  and  Just  plain  trial  and 
error,  I  was  able  to  find  the 
correct  configuration  for  each 
cable.  The  information  was  there, 
but  for  a  novice,  it  took  a  little 
work  and  some  added  advice  from  some 
friends  to  put  it  together  right. 

Listed  below  is  the  serial  cable 
configuration  that  I  have  found  will 
work  on  the  Z-SIO  serial  port  card, 
and  the  modified  2050  serial  port. 
I  hope  this  information  is  helpful. 





























RTS  - 



i  5 


CTS  ' 







i  7 










I  hope  the  above  listing  of  how  I 
constructed  the  cables  for  either  of 
these  serial  ports  will  be 

From  The  PLOTTER  n/1 




The  accompanying  program  is  a 
demonstration  of  scrolling  text 
in  a  window.     Sy  adjusting  the 
values  o  r'  a   few  variables,  one 
can  make  the  window  any  size 
and   locate  it  anywhere  on  the 
screen.     it  is  usually  located 
near  the  bottom  or  along  the 
sides.     The  procedure  is  simple 
and  the  action  relatively  fast 
for  BRSXC.  Rs  a  matter  of  fact, 
there  is  a  PAUSE  5  in  line  7040 
to  slow  things  down. 

Uindow  scr 
er  way  of  p r 
eye-ca  t.chi  ng 
wi  th  discret 
up  many  an  0 
gram.  This 
arranged  to 
i f y  and  inco 
gram  of  your 

oils  are  Just  anoth 
oducing  a  flashy, 

e  f  fee  t .     But .  used 
ion.,   they  do  liven 
therwise  dull  pro- 
demonstration  is 
make  it  easy  to  mod- 
rporate  into  a  pro- 
own  - 

The  window  in  this  illustra- 
tion has  a  useable  width  of  24 
characters,  and  provides  for  3 
lines  of  print.     Hence  the  di- 
mensioning in   lines  1000  and 
100s,  and  the   frame  generated 
in   lines  8010  to  8030.     You  can 
use  other  ways  to   frame  and 
even  use  psp^r  color  alone  to 
set  it  off. 

The  message  to  be  scrolled  is 
in   lines  3010  to 3070 .  Notice 
that  the  message  is  divided  up 
into  strings  of  24  characters 
maximum,   to  conform  to  the  win- 
dow size.     Each  string  is  sent 
to  the  subroutine  that  scrolls 
the  window's  contents  and 
prints  the  new  message  segment, 
on  its  bottom  line,     fit  the  end 
of  the  message,   lines  3030  to 
3090  clear  out  the  window  and 
line  3100  prints  the  sign-off. 
In  a  wor Ki ng  program,  one  would 
go,  instead.,  to  the  next  step 
at  this  points 

The  action  of  the  printing  in 
the  window  is  such  that  the'mes- 
sage  segments  move  progressive- 
ly  from  c$  to  b$  to  a$  in  lines 
7010  and  7015  with  d$  just  pro- 
viding spaces,     fls  they  move  in 
this   fashion,   they  are  printed 
in  ascending  rows  by  line  7020. 
This  produces  the  scroll  effect. 
Line  7040  prints  the  message 
segments  one  character  at  a 
time  -  typewriter  style  -  on 
the  bottom  line  of  the  window. 
We  could  have  printed  the  line 
in  one   fell  blow,  but  then  the 
action  might  be  too   fast  and 
require  a   larger  PAUSE  value  to 
offset  this.     One  gains  but  tit- 
tle in  so  doing.,  and   loses  the 
SEEPing  which  adds  such  a  nice 

5  REM   **    "E-41" ,    9-24-88.  UP 
10  REM   **   SCROLL  TEXT  IN  fl 


1000  DIM  a$«24):    DIM  b* (24) 
1005  DIM    C$C24):    DIM  d$  (24) 
1010  PRINT  RT  3,0;"     The  screen 
itself  does  not        scroll.  Any 
other  action  can  goon  here,   a  I  te 
mating  with  the      display  in  th 
e  window.     It's  up  to  you," 
1020  GO  SUB  8000 

3000  REM   *#   UINDOU  MESSAGE 

3010  LET  m$  =  8!In  the  window  size 

sel-":    SO  SUB  7000 

3020  LET  m$="ected  we  are  limite 

d    to":    GO   SUB  7000 

3030  LET  m$  =  '!a  maximum  o  f  24  cha 

ract-1' :    GO  SUB  7000 

3040  LET  m$="ers  to  a   line.  Les 

S":    GO  SUB  7000 

3050  LET  m$="than   this   is  O.K« 

More":    GO  SUB  7000 

30S0  LET  m$  =  8,than  this  will  be  I 

opped":    GO  SUB  7000 

3070  LET  m$  =  "0  f  f  i . . . " :    GO  SUB  7© 


3080  FOR  ffi=l  TO  3:    LET  ffi$=d$ 

3090  GO  SUB   7000:    NEXT  m 

3100  LET  m$s"END  OF  DISPLAY^.." 

:    GO  SUB  7000 

3110  STOP 


7000  REM   **  PRINT  JN  UINDOU 
7010  LET  a$=b$:    LET  b*=e$ 
7015  LET  C$=m$ 

7020  PRINT  RT  16,4; a$;  RT  17,4; b$ 
;AT  18,4; d $ 

7030  FOR  n -1  TO  LEM  C$ 
7040  PRINT  RT   18 ,3+n ;  C*  (n )  :  IF 
$<n}<>"    "  THEN  BEEP    -005,20:  PR\> 
SE  5 

7050  NEXT  n:  RETURN 

8000  REM   **  DRRU  UINDOU  FRAME 
8010  PRINT  RT   15,3;  "^"^k 

8020  FOR  n=15  TO  13:    PRINT  RT  ttf 

3;  "1  "+d*+"  I"  :    NEXT  n 

8030  PRINT  RT  19  3; "1  


The  screen  itself  does  not 
scroll.     Rny  other  action  can  go 
on  here ,  alternating  wi  th  the 
display  in  the  window.     It's  up 
to  you. 


Uarren  Fricke 
WHY  User  Group 





w  ►»  o  u_  x  <o  j  -i  -i  a,  a  a,  h  u  o  to  u  o  r  u. 
£\ £  £  E  £  £  £  oi  of  at  <y  41  ai  E  £ 

£  U  U  N  II  II  »  II  II  II  II  H  II  II  II  tl  II  II  ||  || 

*>  o  u_  r  u>  _j  _j  _i  a  a.  a  t-  u  o  co  u  o  r  u. 


Q  L  I  P  S 

by  Hmgh  H .  How-ce 

TlQr&QjntJLy  mo,  madz,  cut  ^change.  04  oua,  QL  LLbnasLy  asJUth  th-z,  NESQLUG  tn 
Boston,  and  u/Jte/t  I  wa-6  gotng  thz^Ut  LtbiasLy ,  I  camo,  clcslo^a 
th^Lb  XJtojm  o4  <Lntosie^t>t ,  at  toja^t  I  u)cu>  <lntQSLe^t>to,d  am,  tt,  -6o  p<zsiha,p-6 
you,  aJ&>o  uiXJUL  ho.  abHo*  to  gSLaxun  a,  1<lw  gojn-h  ^tom  tt. 

It  wcl<6  ^iLbmAjttoM.  to  th<L  NESQLUG  LtbnjxsLy  by  Potest  HaJiz.;  wnJLttojn  by 
an  unknown  awtho*,.  ThtA  cluAKoi  aJLtKomgh,  unhnoutn  to  ula  ,  aIa  woxMiy  o4 
olul  *,e,&ognttton.. 

****************  QLHardw_doc  ***************** 

Author  unknown  Contributed    by  Peter  Hale 

The  QL  has  undergone  only  two  design  changes  during  its  varied  fortunes  from 
a  hardware  point  of  view  leading  to  the  conclusion  that  either  it  was  nearly 
right  from  the  word  go,  or  it  is  so  awful  that  very  little  can  be  done  with  it. 
Events  taking  place  susequent  to  its  launch  confirm  that  it  is  a  good  machine 
that  has  many  advanced  features  as  well  a  microdrives  which  are  OK  but  not 
everyones  cup  of  tea.  It  is  significant  that  a  fairly  major  design  change  took 
place  at  build  no.14  moving  from  Issue  5  to  Issue  6  boards.  Issue  0,1,2,3  &  4 
boards  have  not  been  encountered  leaving  one  to  assume  they  were  R&D 

Reference  will  simply  be  made  to  Issue  5  or  Issue  6  boards  as  build  numbers 
such  as  D05,  Dll,  D16  etc.  also  AH,JM,JS  ROM's  are  not  significant  from  the 
hardware  aspect.  The  only  certain  way  to  ascertain  what  is  inside  the  black  box 
is  to  open  it  up  and  examine  the  board.  This  is  achieved  by  turning  the  QL 
over  to  gain  access  to  eight  cross -head  screws.  There  being  four  short  ones 
under  the  front  lip  and  four  long  ones  in  line  with  the  legs.  Do  not  remove 
screws  from  under  the  microdrives  at  this  stage.  Use  a  new  screwdriver  with 
the  point  covered  in  cling  film  to  obviate  an  amateur  chewed  screw  look. 
Lift  the  keyboard  up  gently  noting  two  wide  flat  strips  which  are  the  membrane 
connector  tails.  Grasp  these  between  finger  and  thumb  pulling  gently  but  firmly 
vertically  upwards.  There  is  no  need  to  disconnect  anything  else  at  this  stage. 

Re-assembly  is  simple,  with  the  membrane  tails  being  carefully  inserted  by  a 
gentle  downward  movement  ensuring  that  they  are  not  creased  which  could 
break  the  internal  track.  Also  check  that  the  tails  are  not  folded  over  in  the 
socket  as  this  will  prevent  some  keys  from  functioning. 

The  issue  number  is  on  the  board  in  three  places,  but  the  two  different  boards 
are  easily  identified  by  looking  to  the  right  of  the  ROM  chips.  If  it  contains  a 
HAL  16L8  chip,  it  is  Issue  6c  Issue  5  boards  employed  a  74LS03  chip. 
The  various  ic's  (chips)  will  be  dealt  with  purely  from  a  servicing  aspect 
laying  particular  stress  on  practicality.  No  attempt  will  be  made  to  discuss  the 
technical  merits  of  a  particular  ic  or  to  propose  extensive  modification  to  the 
circuit  invloving  spaghetti  wiring. 

Purchase  of  the  QL  Service  Manual  is  strongly  advised  and  at  least  some 
practice  made  on  soldering  small  components  before  embarking  on  any  updates  or 
projects.  It  is  essential  that  correct  means  be  employed  in  extracting  ic's  as 
levering  with  screwdrivers  etc.  will  damage  the  board  as  well  as  the  ic.  Pcb's 
are  not  available  as  replacement  parts  consequently  damage  of  a  serious  nature 
will  scrap  the  machine.  As  always  it  is  advisable  to  work  on  baking  foil  but  most 
of  the  ic's  appear  to  be  fairly  robust. 

Two  ULA's  are  used  on  the  main  board  and  one  on  each  microdrive.  The 
microdrive  ULA  is  the  same  as  the  SPECTRUM  microdrive  ULA.  It  goes  off  pop 
occasionally  probably  due  to  it  being  fed  large  doses  of  heat  from  the  5  volt 
regulator  heatsink,  its  own  heat  and  heat  from  the  motor.  It  is  not  easy  to 



replace  on  mdvl  and  a  socket  cannot  be  used  as  the  ULA  is. jammed  up  to  an  ic 
on  the  board  with  a  insulated  screen  in  between.  Leaving  the  screen  off 
produces  more  heat,  smoke,  damage  and  anguish. 

The  microdrive  pcb  is  not  available  as  a  replacement  part  which  is  a  pity  as 
chip  failure  can  damage  the  board. 

Fastened  to  the  board  is  also  the  microdrive  READ/WRITE  head.  Not  unknown  to 
fail  but  expensive  to  replace.  It  is  only  available  as  a  'sub-assembly'  being  a 
bog  standard  stereo  tape  head  on  a  plastic  mounting.  Thus  two  parts  become  a 
sub-assembly  !!!. 

Microdrive  ULA's  arrive  with  adorned  with  a  variety  of  coloured  spots,  white 
ones,  pink  ones  etc.  They  must  mean  something  but  do  not  appear  to  have  any 
performance  significance. 

Rattles  heard  whilst  microdrive  are  spinning  indicate  the  rubber  drive  rollers 
are  not  perfectly  true  or  more  probably  the  roller  in  the  cartridge  is  not  true. 
Replacement  of  the  microdrive  rubber  roller  is  easy  with  a  bit  of  glue  to  make 
sure  they  stay  in  position. 

Microdrive  2  has  a  useful  space  under  it  which  will  be  later  utilised  when  the 
battery  back-up  is  explained. 

Turning  to  the  main  board,  one  of  the  most  frequent  replacements  is  the  ROM 
chips.  There  are  two  which  must  be  replaced  as  a  pair.  You  can't  get  away  with 
updating  the  one  chip.  Usually  owners  want  to  update  to  a  JS  ROM  which  is  easy 
even  if  you  have  an  AH.  Just  extract  the  two  chips  and  insert  the  new  ones  the 
correct  way  round.  Have  a  look  at  the  JS  ROM  chips  as  the  colour  spots  again 
appear  (blue  ones  usually)  and  a  leg  disappears  from  the  128k  chip.  It  is  one  of 
the  5  volt  supplies.  Don't  worry  it  works  OKc  Whilst  the  top  is  off 

the  QL  it  is  worth  considering  how  much  keyboard  bashing  you  do  and  the 
consequences  of  a  keyboard  failure  at  a  critical  time.  Murphy's  law  win  cause  it 
to  fail  on  something  important.  Replacement  of  the  switch  contacts  is  by  means  of 
fitting  a  new  keyboard  membrane  being  both  cheap  and  easy,  after  the 
aluminium  plate  has  been  removed.  A  bubble  mat  provides  the  'springs'  for  the 
keys  so  there  may  be  good  reason  for  fitting  a  new  one  of  these  at  the  same 
time=  The  ultimate  I  suppose  is  to  invest  in  a  proper  PC  type  serial  keyboard 
plugged  into  SER2.  Be  careful  when  refitting  the  upper  case  to  the  lower,  as  any 
poor  contact  on  the  six  LED  connections  stops  the  appropriate  microdrive. 
Back  to  the  main  board  to  have  a  look  at  the  ULA  which  controls  the  serial 
ports  and  the  microdrives.  It  is  a  ZX  8302  having  a  5  volt  supply  on  pin  40  & 
pin  11  with  pin  40  being  fed  through  a  link. 

Links  in  the  QL  are  zero  ohm  resistors.  That  is,  they  look  exactly  like  a 
resistor  making  it  easy  for  automatic  mechanical  insertion  but  with  a  single  black 
band  to  indicate  the  value.  Even  though  the  circuit  diagram  shows  a  link  for 
both  Issue  5  &  Issue  6  boards,  in  practice,  only  Issue  5  has  this  present  at  the 
side  of  SER1  port  marked  D22.  That's  right.  Issue  5  board  has  a  link  which  looks 
like  a  resistor,  in  a  position  marked  for  a  diode,  with  another  position  at  the 
side  for  another  diode  D23. 

For  some  reason  Sinclair  decided  to  redesign  this  area  on  Issue  6  boards. 
Part  of     the  ZX  8302  provides  the  clock     for  the  QL  with  all  the     hassle  of 
having  to  reset  it  frequently,  but  if  the  chip  can  be  permanently  powered  then 
the  date  and  time  would  remain  correct. 

To  implement  this  change,  replace  the  link  in  position  D22  with  a  small  diode 
together  with  a  further  diode  in  D23.  A  small  3.8  volt  rechargeable  battery 
connected  to  the  points  marked  BATTERY  (under  the  heatsink)  and  fastened  with 
sticky  pads  under  microdrive  2  does  the  trick.  For  purists,  something  like  a  270 
ohm  resistor  in  the  positive  lead  will  restrict  the  charging  current. 
On  Issue  6  boards  this  simple  approach  is  not  possible  due  to  changes  in  the 
track  layout.  The  only  practical  solutions  being  to  isolate  pin  40  either  by 
bending  it  out,  cutting  it  or  the  track,  after  which  the  same  type  of  battery  can 
be  connected  by  soldering.  POS  (+)  to  pin  40,  NEG  (-)  to  regulator  common. 
Staying  with  the  ZX  8302  provides  a  further  item  of  interest  in  that  colour  spots 
are  not  used  but  marking  codes  are. 



Example: - 

ZX  8392  NCR0371275  USA  F812119  P8416 
ZX  8302  MCR0371275  USA  P812877  P8431 

In  my  experience,  a  change  of  chip  significantly  improves  microdrive  handling, 
but  it  pure  conjecture  as  to  whether  the  ZX  8302  is  faulty  or  if  chips  of  later 
manufacture  are  of  an  improved  quality. 

Moving  on  to  the  next  ULA,  namely  the  ZX  8301,  a  similar  situation  arises  in  that 
different  markings  appear  to  coincide  with  differing  performance. 

ZX  8301  markings:- 

PS  P  02  CLA2310  78408B 

PS  P  B    CLA2345  8544C  ZX8301  Sinclair  1983 

Jittery  monitor  displays  usually  respond  to  the  replacement  of  the  ZX  8301  with 
a  loss  of  colour  requiring  a  new  MC  1377p.  Squirt  the  MC  1377p  with  freezer  to 
restore  your  QL  to  full  colour  until  it  warms  up  again.  This  trick  also  produces 
some  amazing  results  on  other  chips  as  does  running  the  machine  with  the  top 
off.  Indications  therefore  are  that  it  gets  a  bit  hot  inside  and  some  ventilation 
would  help  in  conditons  of  high  ambient  temperature. 

The  reported  machine  crashes  can  be  reduced  by  cooling  the  machine  but  for 
real  improvement  the  7805  5  volt  regulator  requires  attention  both  in  the  QL  and 
in  any  add-ons.  A  100  nf  capacitor  must  be  soldered  between  input  and  common 
on  the  chip  not  some  distance  away.  It  is  part  of  the  specification  and  is 
chearfully  ignored  by  some  manufacturers  of  computers  to  the  detriment  of  the 
performance.  The  knittng  of  three  platefuls  of  spaghetti  hanging  out  the  back  is 
asking  for  trouble.  Keep  wires  neat  and  well  away  from  each  other,  especially 
the  power  lead,  mains  lead  and  VDU  lead.  I  sugest  you  use  a  curly  VDU  lead  and 
run  the  power  lead  to  the  right  of  the  machine.  Running  the  TV  or  monitor  slap 
up  against  the  QL  is  bad  practice  not  only  for  the  QL  but  it  is  in  a  poor 
position  to  be  viewed  without  strain.  If  possible  the  interior  of  the  QL  casing 
should  be  sprayed  with  elecrically  conductive  paint  and  two  7805  regulators 
paralleled  up  with  the  use  of  liberal  doses  of  heat-sink  compound.  Any 
regulators  in  add-on  boards  must  be  checked  to  make  sure  they  are  contacting 
the  heat-sink  and  again  use  heat-sink  gung.  Do  not  forget  the  capacitor  across 
the  input  to  the  regs  to  remove  any  possibility  of  oscillation. 

The  two  remaining  large  chips  are  the  68008  CPU  and  the  MAB  8049  co-processor 
both  of  which  appear  to  be  reliable.  The  8049  receives  the  RS  232  interface 
signals,monitors  the  keyboard,  controls  the  loudspeaker  &  co  trols  the  joystick. 
A  simple  but  effective  test  is  to  plug  SER1  into  SER2  then  get  the  computer  to 
talk  to  itself  by  some  BASIC  software. 

A  joystick  test  can  also  be  incorporated  as  well  as  a  colour  and  sound  test. 
This  pretty- well  proves  the  system.  A  RAM  test  requires  a  m/c  routine  but  if 
there  is  a  RAM  failure  it  is  usually  visible  as  a  black  line  on  the  tweed  start-up 
screen  or  with  a  completely  green  or  white  screen. 


1.  The  work  involved  in  having  your  clock  running  continuously  is  quite  small 
and  fairly  easy.  If  possible  check  the  current  consumption  which  should  be  less 
than  2  microamp  with  the  mains  power  OFF.  If  the  consumption  is  much  greater 
then  examine  the  back  of  the  board  for  a  resistor  which  should  not  be  there. 

If  the  clock  does  not  work  from  a  battery,  check  for  continuity  between  the 
battery  and  the  chip.  It  is  not  unknown  for  tracks  having  been  cut. 

2.  Some  QLfs  have  33K  resistors  soldered  to  pin  21  &  19  of  the  8302  then 
connected  to  -12  volts.  Some  machines  don't  have  them  and  some  have  different 
value  resistors.  It  is  a  nifty  piece  of  soldering  but  the  manual  states  it  is 
mandatory.  It  looks  to  me  that  the  factory  have  never  read  the  manual. 

3.  Own  up  all  those  who  kept  the  dongle  !.  Now  is  the  time  to  put  it  to  good 
use  by  opening  it  up  to  reveal  a  16K  EPROM.  Have  the  EPROM  reprogrammed  with 
what  you  need  then  insert  it  in  the  socket  you  have  soldered  into  the  vacant 



location  at  the  side.  If  a  switch  is  used  to  pull  the  appropriate  chip  select  line 
low,  then  two  EPROMS  can  be  used  but  only  one  at  any  one  time*  




Issue  5   Issue  6 

2 -in  NAND  Gates 

74LS03  3-in  NAND  Gates* 

Bus-transceiver       *  * 
74LS257  Address  Multiplexer 

7805  5v  Regulator  *  * 
7812  12v+  Regulator  *  * 
7912  12v-  Regulator  *  * 
HAL  16L8  Hard  Array  Logic 
Peripheral  controler         *  * 




MC  1377P 
MC  68008 
SN  1488 
SN  1489A 
ZX  8301  ULA 
ZX  8302  ULA 

PAL/TV  Signal  Generator 

Central  processor 

RS  232  Buffer  * 

RS  232  Buffer  * 

Controls  display 

Controls  MDV's,  SER  &  clock 

Test  Program 

The  test  program  on  the  cartridge  SER1  and  SER2  to  be  linked  so  that  the 
QL  can  talk  to  itself  which  is  the  most  comprehensive  of  the  sytems  tests.  If  the 
ports  are  not  linked  then  type  GOTO  4480  to  carry  on. 

The  memory  test  is  very  detailed  running  as  a  job  but  it  takes  a  very  long 
time  to  complete,  A  QL  with  the  full  512K  of  extra  memory  will  take  about  two 
and  a  half  hours.  Watching  it  is  as  interesting  as  watching  paint  dry  but  it  is 
great  as  a  demonstration  for  non-computer  people.  If  you  put  a  tiny  bit  of 
something  in  memory  it  indicate  it  in  the  BAD  window. 

If  free_mem  from  Toolkit  II  or  better  still  Free_memory  from  Supercharge  or 
the  memory  test  indicate  faulty  chips  then  put  a  good  memory  chip  in  a  test  clip 
and  put  it  over  each  chip  in  turn.  Power  down  between  each  test  or  the  results 
will  not  be  meaningful. 

We  carry  ALL  hardware  and  software  lines  (of  the  Sinclair  QL. 
W«  also  carry  the  Z88. 


Sharp's,  Inc. 

Hi.  10.  Bos  459 
Mechankovlfla.  VA  23111 
(804)  746-1664  or  730-9697 

IT'*  HERE!! 

if  rou  uie  slue  m  trivia,  then  this  is  for  tdui 


13  ROOMS  -  13  1€AP0NS  -  13  SUSPECTS 

mi WAMr,m 

Also  included;  at  ne  ntrj  cost,  your  etolet  of 
(Specify  which  you  uculd  like  ufeea  you  order.) 

QUI  PRICE?  ONLY  *l?e9S  *«2ph 





■  ■  ■ 


zymase  , 










a  y 
<rz  3*-o 

Ul3  yi-A 





h  zjzx>z 

bJ  ZtaJ 



•>  res— -33 

£1     OtJ)-?     i.O  !«J  !«J  £  Q.  CS  J  >  >  ^ 

o  a  uj  <z  a.  h  a:  o  x  a:  r  a  cc  a 


***  INTERRUPT  MODE  2  *** 
***  by  Bob  Mitchell  *** 
***  910403  *** 


The  purpose  of  this  paper  is  to  bring  together  many  of  the  details  on  the 
Interrupt  Mode  2  (IM2)  that  I  have  gathered  over  the  past  several  years- 
References  are  included  in  brackets?  eg  I 1  3?  to  indicate  source  material 
detailed  at  the  end  of  the  text. 


An  interrupt  is  a  signal  sent  to  the  microprocessor  which  generally  suspends 
the  execution  of  the  current  program?  without  the  program  being  aware  of  it.  The 
processor  resumes  its  original  work  when  the  interrupt  service  routine  finishes. 
These  interrupts  take  place  at  the  rate  of  60  per  second  (50  per  second  for 
Spectrum) . 

Interrupts  are  used  for  two  main  purposes:  til 

1.  To  deal  with  hardware  events  such  as  a  key  being  pressed  or  a  character 
arriving  through  a  serial  port.  These  events  cannot  be  ignored;  the  incoming 
data  must  be  either  processed  immediately  or  stored  in  a  buffer. 

2.  To  call  subroutines  that  are  provided  by  the  hardware  or  operating  system. 

In  the  Sinclair  Spectrum  and  indeed  in  the  TS2Q68?  such  an  interrupt  forces  it 
to  jump  to  38  hex  or  56  decimal  where  it  increments  the  system  variable  FRAMES 
and  scans  the  keyboard  to  determine  what  is  being  keyed  in?  if  anything.  If  this 
interrupt  were  diverted  elsewhere  to  a  user  routine  it  would  provide  a  very 
powerful  facility  with  unlimited  potential  uses.  This  is  precisely  what  the  use 
of  IM2  is  all  about. 

There  are  actually  three  interrupt  modes  in  the  Z80  processor  but  only  two  of 
them  apply  here:  IM1  and  IM2.  When  the  Z80  receives  an  interrupt?  it  expects  the 
interrupting  device  to  place  one  byte  of  data  on  the  data  bus  which  acts  as  the 
low  order  of  an  address. 

The  interrupting  device  is  the  ULA  (Uncommitted  Logic  Array)  which  implements 
necessary  timing  and  hardware  control.  It  is  used  to  select  chips  and  decode 
addresses  for  RAM  and  ROM?  for  timing  and  control  of  the  Z80A  microprocessor ? 
for  keyboard  operation  sensing?  to  control  signal  conditioning  and  transfer  of 
input  and  output  information.  121 

The  high  order  of  the  address  comes  from  the  I  register.  The  Z80  looks  at  this 
address  which  gives  it  A  SECOND  ADDRESS  that  it  then  jumps  to.  In  the  Spectrum? 
no  such  low  order  byte  is  provided  and  by  default  the  Z80  thinks  it  sees  FFh  or 
255d„  Apparently  this  does  not  always  work  properly  ?  Toni  Baker  warns  against 
using  IM2  on  page  102  of  her  book  on  machine  code  in  that  after  some  time  a 
system  hangup  appears  to  occur.  In  any  case?  it  certainly  does  not  work  with  the 
TS2068,  at  all. 

Still?  it  is  worth  examining  the  Spectrum  method  more  closely?  the  better  to 
understand  what  has  to  be  done  with  the  TS2068o 

The  I  register  needs  to  be  changed  to  a  value  so  that  the  pair  of  addresses 
< 1*256+25 5 >  and  <I*256+256>  point  to  a  user  defined  routine.  But  be  warned:  the 
I  register  cannot  be  altered  to  hold  a  value  between  64  (40h)  and  127  (7Fh).  If 



the  I  register  is  loaded  with  addresses  within  the  forbidden  area,  there  will  be 
some  screen  interference.  131 

An  inspection  of  the  addresses  so  formed  is  made  and  a  jump  is  made  to  the 
address  that  it  holds?  the  latter  is  known  as  a  VECTORed  address.  Therefore  a 
vector  must  be  found  somewhere  in  RAM  and  above  32768  (8000h). 

A  search  of  the  Spectrum  ROM  turns  up  a  suitable  value  for  I  which  will  cause 
a  jump  to  65129.  This  value  is  09h.  Putting  this  into  the  address  formulae  in 
the  previous  paragraph  gives  the  pair  of  addresses  09FF  and  0A00  (2599  and  2600 
dec)?  examining  the  ROM  disassembly  for  Spectrum  shows  these  two  addresses 
contain  69FE  or  FE69  taking  the  bytes  in  the  proper  order  which  equates  to  65129 
dec.  This  is  the  start  address  of  the  user  routine  that  IM2  will  activate., 

Two  added  notes s    C  3  3 

1.  if  Interface  1  is  fitted  to  the  Spectrum?  the  vectored  address  may  be  taken 
from  the  Shadow  ROM  causing  a  crash. 

2.  Prior  to  using  IM2,  all  registers  should  be  saved  and  then  restored  on 
returning  to  the  normal  IM1  status. 


The  TS206S  does  not  supply  a  fixed  low  order  byte  but  rather  one  that  may  vary 
from  0  to  255.  This  could  be  a  problem  but  there  is  a  way  out.  One  technique  to 
overcome  this  problem  is  to  create  a  block  of  257  addresses  each  filled  with  the 
same  value.  The  I  register  is  altered  to  point  to  this  block  and  IM2  is  called. 
No  matter  what  the  lower  order  byte  turns  out  to  be?  the  block  will  produce  the 
same  address  which  will  vector  control  to  the  start  of  the  user-generated 
routine.  Why  257  addresses?  Remember  that  two  addresses  are  inspected  and  if  the 
low  order  byte  were  255  <ie,  the  last  of  256  bytes),  there  would  have  to  be  one 
more  address  with  the  same  value  as  all  the  rest. 

The  vectored  address  can  be  a  value  which  is  a  multiple  of  256;  or  it  can  be 
any  address,  if  a  specific  one  is  defined  in  the  set-up  routine.  If  the  vectored 
address  finds  an  instruction  to  jump  to  a  specific  address,  then  that  is  where 
it  will  go. 

Examine  listing  1  (a  MOTHER  PROGRAM  used  to  generate  the  block  of  bytes  and 
set  up  the  vectoring  to  a  specified  address). 






sSave  all 









s registers 









spoint  to  the  block  start. 





sset  reg  B  for  loop? becomes 

FF  when  loop  starts. 





:put  FC  into  HL 



(  INC 


spoint  to  next  byte. 





: repeat  until  B=00  again 





:put  FC  into  257th  address 





:put  C3  into  A  register 





:load  FCFC  with  C3  (JP) 




HL , FE69 

sload  HL  with  addr  65129 





spoke  this  into  next  two  addrs 




?load  A  register  with  FB 




I, A 

•load  I  register  with  FB 





i restore  all  registers 
















sturn  on  IM2  &  jump  to  65129 



FE25  C9  RET 


However,  this  complexity  is  not  needed  if  a  jump  is  to  an  address  which  is  an 
exact  multiple  of  256.  Listing  2  below  gives  an  example  of  this  version  [42 


r  tUU 



cert  i 
r  tUl 







pi  jqn 

r  won 




1  but 









Jul  1/ 


( HL ) i FD 





1  HFB 


L/KJ  Mi. 

r  cue. 


Our  U 









I, A 























sput  FE  into  A  register 

: load  I  register  with  FE  (65024) 

sturn  on  IM2 
s return 

In  this  version  the  value  loaded  into  the  A  register  at  address  FE10  determines 
where  the  user  defined  routine  should  start. 

Some  final  thoughts: 

When  this  technique  (the  257  byte  table)  was  installed  in  the  TOOLKIT  utility 
TS2068  version  (tstk.Cl  on  the  Omnibus  Disk),  it  of  course  made  all  the  options 
using  IM2  operational.  Later  when  the  TS2068  version  was  converted  back  to 
Spectrum,  the  technique  still  did  its  job,  at  least  with  the  Spectrum  Emulator. 
Whether  it  works  on  a  Spectrum  machine  has  not  been  confirmed. 

A  concerted  effort  has  been  made  here  to  collect  accurate  information  as  a 
ready  reference  next  time  use  of  IM2  is  to  be  attempted.  There  may  be  errors  and 
I  would  be  grateful  if  any 

reader  would  let  me  know  of  any  that  are  found. 

Bob  Mitchell  20  Wild  Briarway  Willowdale  Ont  M2J  212 


Footnotes  (References  used  in  the  text). 
[13  Barron's  Dictionary  of  Computer  Terms 
121  ZX  Spectrum  User's  Handbook;  by  Simpson  and  Terrell 
C33  Howard  Allen:  Popular  Computing  Weekly  850704 
C43  Floyd  Chrysler:  Time  Designs  Sep/Oct  87. 



O  L  I  P  S 

By  Hugh  H  Howie 

Doing  saw  reading  recently  and  it  cane  to  ne  that 
we  should  be  holding  sons  kind  of  t  big  birthday 
bash  for  soae  of  those  folks  who  have  done  so  such 
for  us,  or  should  I  say,  so  audi  to  us? 

It  is  not  so  long  ago  that  a  computer  was  soae  kind 
of  nut  who  computed  things  for  us.  He  hsd  to  be  for 
we  were  not  capable  of  doing  it  for  ourselves*  until 
t  guy  sailed  Sinclair  (snd  others)  cane  along  about 
ten  years  ago,  (or  so)  when  he  cane  out  with  his 
little  black  boxes  which  we  have  all  learned  to 
love.  (Did  soaeone  say  hate?) 

Anyway  we  have  cone  a  long  way  since  then,  perhaps 
too  far.  fe  have  all  kinds  of  little  black  boxes, 
and  white  ones  too.  Sons  a  bit  off-white,  sons  just 
plain  colored  according  to  the  type  of  language  we 
are  using  to  describe  then.  That  language  is  a  bit 
colored  at  tines! 

Anyway,  Sinclair  got  Knighted  by  the  Queen  of  ths 
British  Empire  for  what  he  did  to  us.  Just  inagine, 
hi  got  to  be  called  a  SIR,  and  allowed  to  ride 
around  on  a  White  Charger  just  like  a  fairy  tale 
Prince,  just  for  giving  us  a  black  box  to  play  with. 
Now  was  that  fair? 

He  did  not  do  this  all  on  his  own,  Sinclair  didn't, 
he  had  the  help  of  a  nan  called  Charles  Babbage  who 
with  the  help  of  the  aovemnent  tried  to  build  a 
meehartkal  machine  to  do  all  the  work  of  the 
eovemnent  so  that  they  could  collect  taxes  a  lot 
easier  in  the  future.  The  government  of  the  day  put 
up  a  handsome  £17111,  and  Babbage  hiaaelf  put  in 


That  was  way  back  about  1831  or  somewhere  about 
then.  Who  esres  about  the  exact  date?  they  did  not 
have  computers  to  do  the  work  for  then.  In  fact 
there  is  doubt  as  to  the  exact  date  of  his  birth. 
Sons  of  ay  sources  say  1791,  and  sons  1792.  But  I 
needed  something  to  write  about  so  ay  contention  is 
he  was  born  in  1791.  One  source  says  he  was  born  in 
Devon  in  1792,  where  his  father  was  a  banker.  The 
most  exact  date  I  can  get  he  was  born  on  December 
2§th  1791,  in  Walworth  in  London.  Just  a  quarter 
mile  from  the  Elephant  and  Castle  Pub.  A  couple 
hundred  miles  froa  Devon  and  a  year  earlier. 

I  guess  he  got  his  flair  for  figures  from  his 
banker/father,  also  how  he  got  his  idea  of  compiling 
a  table  of  logarithms.  (Cor  bless  '  in) 

He  at  one  tias  even  tried  ghost  hunting,  and  there 
are  aplenty  of  then  over  there,  and  ever  since  we 
have  been  blessed  with  our  own  versions  of  ghosts  on 
the  silver  (or  whatever)  screen.  Quite  a  guy  this, 
he,  hated  organ-grinders. 

hand  at  constructing  a  machine  to  do  his 
calculations.  He  got  so  far  as  to  ask  the  Qovernmsn*° 
of  the  day  for  a  grant,  but  the  Prine  Minister  i 
that  tine,  one  Robert  Peel,  dismissed  his  ideas  as 
"worthless  to  science"  Even  Disraeli  thought  the 
counting  machine's  only  use  might  be  how  to 
calculate  hoe  much  money  had  been  wasted  on  it. 

A  few  years  later  Sir  Robert  Peel  changed  his 
thoughts,  and  offered  Charles  Babbage  a  knighthood, 
which  our  Charles  of  course  turned  down.  Thereby 
losing  a  nice  little  stipend.  Ah  So!  I  guess  his 
computer  was  down  that  day! 

A  few  years  pass,  Kings  and  Courtiers  cone  and  go, 
but  the  works  of  Charles  Babbage  go  on  forever.  So 
much  so  that  without  his  pioneering  we  would  not 
have  so  many  of  the  things  we  have  to-day.  We  even 
used  his  ideas  to  get  to  the  Noon. 

Now,  to-day,  all  those  years  later,  Charles  Babbage 
is  being  honored.  In  Britain  a  Postage  Stamp  is 
being  brought  out  in  his  honour.  Not  only  that,  but 
they  are  going  to  build  a  full  sue  working  model  of 
his  "Second  Difference  Engine"  (It  was  later  th@^ 
called  it  a  computer.) 

This  contraption  which  he  wanted  to  build  way  back 
then,  is  going  to  be  built  this  year,  and  it  Y 
going  to  be  displayed  in  the  Museum  of  Science  an*. 
Industry.  Now  aint  that  something? 

The  nan  who  invented  the  computer  is  being  honoured 
TODAY.  All  those  years  after  he  could  not  get  money 

to  do  the  job. 

By  the  way,  the  model  being  built  this  year  is  going 
to  cost  the  Computer  Industry  about  £§ff,|ff.  thats 
half  a  million,  (pounds  that  is.)  On  top  of  that,  it 
is  going  to  weigh  in  at  about  three  ton,  and  stand 
about  six  feet  high.  Sot  a  spare  room  in  your  home? 

To  finalise  the  story.  Charles  Babbage  was  not 
buried  in  one  piece.  They  reckoned  he  was  such  a 
genuis,  his  brain  should  be  preserved  for  posterity. 
It  is  kept  in  the  Hunter ian  Museum,  at  the  Royal 
College  of  Surgeons.  His  body  was  buried  in  Kensal 
Green  Cemetery  in  1871. 

So  there  you  have  it.  When  you  are  alive,  and 
working  with  computers,  you  are  told  you  are  out  of 
your  mind.  When  you  die,  they  take  the  mind  out  @f 
you!  and  store  it  away  for  folks  to  gawk  at. 

Sometimes  you  just  can't  win.. 

Lets  have  a  BIG  BIRTHDAY  BASH  for 

CHARLES  BABBAGE,  the  father  of  all  Computer  Battles. 

He  went  to  Trinity  College,  and  about  1811  tried  his 

Happy  211  Years  Mr  Babbage. 



By:   Michael    J.   Di  Rienzo 


Here's  another  easy— to— use  command 
utility  which  quickly  PRINTs  a 
string  o-f  text  at  any  size  and  at 
any  pixel  coordinate  location.  You 
mill  be  able  to  use  this  utility  in 
your  own  programs.  The  syntax 
-follows:  PRINT         USR         large ;  AT 

X,Y;W,H;"txt"  The  text  at  the  end  o-f 
the  line  can  either  by  within  quotes 
or  use  a  string  variable  (A4...Z*). 
The  variables  "X"  &  "Y"  are  the 
column  (0-255)  and  line  (0-191) 
pixel  location  where  you  want  the 
text  to  commence  PR INT i  ng .  The 
coordinate  0,0  is  at  the  upper  left 
corner  o-f  the  screen.  The  "W" 
variable  is  the  letter  width  in 
terms  o-f  characters  (1-32),  and  "H" 
is  the  height  o-f  the  letter  (1-24). 
Be  sure  to  note  the  commas  and 
fmicolons  in  the  command  syntax,  l-f 
kxx  make  an  error,  you  will  get  a 
"Nonsense  in  Basic"  error.  Note  that 
the  PAPER  and  INK  command  can  be 
used  within  the  PRINT  statement  in 
their  usual  way.  FLASH  also  works. 
I-f  your  text  runs  off  the  screen,  it 
will  wrap  around  to  the  opposite 
side,  so  you*  I  I  have  to  plan  -for 
text  length  and  size.  Be  sure  to  RUN 
line  100  to  initialize  the  CODE 
be-fore  RUNning  -for  the  -first  time, 
then  use  RUN  thereafter.  The  CODE  is 
not  relocatable  and  is  350  bytes 
long.   Have  fun! 

Happy  TIMEXing. . . 


By  Michael   J.   Di  Rienzo 

10  BORDER  0:   PAPER  0:    INK  7:  C 
LS  :  OUT  254,1:   LET  large-60400 
20  LET  d*=*2068  LARGE  print" 
30  RAiwOi  ;rz£ 
40  LET  »=INT  (1+RND*2) 

50  LET  h= INT  (1+RND*12) 
60  LET  x=INT  (RND*(256-(w*8*16 
)  )  ) 

70  LET  y= I  NT  ( RND*( 192-< h*8 ) ) ) 
80  LET  i  = I  NT  ( 1+RND*6 ) 
90  PRINT   INK  i;USR  large; AT  x, 
y;*,h;dt :   PAUSE  100:   CLS  :   GO  TO 

100  CLEAR  59399:    LET  t=0 
110  FOR  n=60400  TO  60749 
120  READ  a:   POKE  n,a:   LET  t=t+a 
130  NEXT  n:    IF  t<>31728  THEN  PR 
INT  FLASH  l;*Data  Error!*:  PRINT 
"Recheck  DATA   lines":  STOP 
140  RUN 

150  DATA  17,117,33,225,167,237, 
3 1 , 254 , 172 , 32 , 35 , 205 , 220 , 27 , 205 , 
96,38,237,67, 10,91,223,254,59,32 
, 20 , 205 , 220 , 27 , 205 , 96 , 38 , 237 , 67 , 
12,91,62,8,50, 14,91,223,254,59,4 
0,2, 207  ,.  1 1 ,  23 1 ,  205 , 239  , 27  , 205 ,  17 
5,47,33, 15,91,235,237,176,62,255 

160  DATA  33,15,91,126,35,34,0,9 
1, 111,60,200,38,0,41,41,41,237,7 
5,54,92,9,62,8,50,4,91,58, 11,91, 
50,9,91,58, 10,91,50,8,91,62,9,50 
,5,91, 126,35,34,2,91,7,50,6,91,5 
,58, 14 

170  DATA  91,71,58,12,91,79,58,1 
0,91, 129,5,32,252,50, 10,91,42,0, 
91, 195,60,236,50,4,91,58, 13,91,7 
1,58,9,91, 128,50,9,91,42,2,91, 19 
5,89,236,50,5,91,58, 12,91,71,58, 
9,91,50,7,91,58, 13,91,79,197,205 
,221,236, 193,58,7 

180  DATA  91,60,50,7,91,13,32,24 
,6,91, 195, 105,236, 128,64,32, 16,8 
,4,2, 1,58, 142,92,238,255,71,58, 1 
43,92, 160,71,58,8,91,230,248, 111 
,58,7,91,254, 192,208,31,31,31,23 
0,31, 103 , 203 , 28 , 203 , 29 , 203 , 28 , 20 
3,29,203,28,203,29,62,88, 180 

190  DATA  103,58,142,92,166,176, 
119,58,7,91,71,230,7,246,64, 103, 
120,31,31,31,230,24, 180, 103, 120, 
31,31,230,31, 181, 111,235,33,213, 
236, 120,230,7,79,6,0,9,70,26,33, 
6,91,203,70,40,3, 176 , 18 , 201 , 47 ,  1 
76,47, 18,201 




by;  Real  Sapon,  3288  St-Hubert5  tontrtal  (Quebec)  H2U  2R4 


Frst  you  need  a  modem.  You  should  look  for  200  or  2400  bps.  The 
300  lips  modem  are  very  cheap  but  very,very  slow.  Then  you  need  a 
cable.  Since  the  QL  serial  port  is  not  standard,  you  cannot  buy  a 
modem  cable  of f  the  shelf .  it  s  easy  to  buid  to  right  cable,  you  need: 

1  DB25  male  connector  wM  casing 
1  DBS  male  connector  with  casing 
1  cable  with  at  least  3  wres 

Tht  connections  are: 

DBS  (QL) 




—  2 

—  3 

-  4 

-  5 

-  7 

side,  4-5  and  6-20  connections  are  optionak  But 
designed  this  way  your  cable  is  in  fact  a  double  cable.  To  connect  a 
modem,  youpbgtheD69hGL>sSER2andtheD625totht  modem. 
ButifwepbgtheDB9nSER1,wehavea  NULL-MODEM  cable 
that  can  be  used  to  transfert  from  aQLtoaPC{youwi  need  a 
GENDER  CHANGER  because  the  serial  port  on  the  PC  is  MALE  too, 
but  that's  another  story.}. 

Next,  you  have  to  find  a  communication  software.  We  wi  look  at 
QJJNK  and  QL52. 

(LLNK  is  a  canarfan  software  written  by  f*ETA  MEDIA  PRODUCTION 
from  B.CL  It  is  a  shareware  program,  so  it  can  copied  and 
distributed  freely.  You  try  it,  if  you  ike  it,  you  register  drectiy  to 
the  company  for  a  smal  price. 

QJJK  supports  XMODEM  protocol  which  is  essential  to  download 
programs  or  fies  from  a  BBS,  There  is  a  dafog  dreetory  and  an 
option  t@  redal  a  number  if  it  is  busy,  plus  macro  keys,  orHht  ed&or, 
ets=  There  is  no  terminal  emulation,  this  is  a  pure  ASCI  terminal 
With  the  shareware  version  you  get  no  documentation,  you  have  to 
register  to  get  a  manual 

QL52  is  from  the  QUANTA  irary.  It  is  a  pubic  domain  program  very 
easy  to  use  but  has  less  power  than  Q_LNK.  QL52  supports 
XMOOEM  too,  but  ody  the  checksum  version,  Q_LN<  has  the  CRC 

and  the  checksum  (XMODEM  CRC  is  more  reiaWe  than  the  checksum 
version}.  There  is  no  dafing  directory  you  have  to  send  the 
command  drectiy  to  your  modem  or  define  an  ALT  KEY  to  do  it. 
QL52  emulates  a  VT52  terminal  and  can  display  a  special  Hebrew 
character  set  if  you  want 

Ok,  you  have  your  modem,  cable,  software  and  some  BBS  telephone 
numbers.  Shoe  you  are  a  QL  user,  you  are  a  "distinct  computer 
user"  from  say  the  vast  majority  of  PC  users.  You  won't  fnd  any 
QL  programs  on  odd.  You  can  wnte/read  fetters  to/from  other 
users  on  the  BBS.,  join  international  conferences  on  any  subject, 
download  text  fies  or  graphics  OF  fies. 

fies  avaiable  for  download  are  PACKED  into  ZP  or  ARC 
fies.  This  is  done  to  combine  many  fies  into  one  and  reduce  the 
transmission  time.  Ore  the  download  is  made.  The  fie  is  not  ready 
to  be  read  or  used,  you  have  to  unARC  or  unZP  it  frst!  Hopeft% 
software  to  do  that  exists  for  the  QL 

For  ARC  fie,  UNARC  from  METAMEDIA  wi  do  the  job.  The  ZP  are 
hinded  by  QLU€Pf  written  by  Jan  Brddbesk   of  Hoiani 

GF  fies  are  picture  stored  in  a  format  so  that  a  screen  created  on 
a  AMKjA  can  be  viewed  on  a  QL  screen,  colors  included  wfth  no 
problem,  There  is  at  least  1000  GF  pictures  in  the  pubic  domain,  on 
any  subjects  from  astronomy  to  XXX-rated  picture.  To  view  those 
pictures  you  need  again  a  special  program  caied  SH0WQF 
{COMPUSERVE}.  Results  are  stunning,  you  wi  find  that  your  QL  can 
show  very  good  graphics  especialy  in  colors. 


META  mHA  PRODUCTIONS,  726  West  17th 
Vancouver  BC,  V5Z  1T9 


QUANTA  LBRAR1AN,  Paul  Hotooren 
5231  Witon  Wood  Court 
hdanapois  N  46251  USA 

SHAREWARE  &  PUBLJC  D0MAM  for  QL(i$  catalog  on  disk): 
HC  LOQQUE,  PO  Box  1393,  Place  du  Pare 
Montreal  (Quebec}  rEW  2R4 




Entering  and    Recalling  Tex  t 

in  Ma  chine  Cod 

By  Dennis  Jurries 

This  subroutine  will  allow  the 
user  to  enter  up  to  277  characters 
into  machine  code  and  recover  them 
at  will.  The  routine  consists  of 
four  parts.  The  first  part  is  the 
machine  code  loader  program. 

10   FOR   x  =55501  TO  55533 
20  PERD   z '    90? E   x  = Z 

30  NE'*T  s 

40  DfiTfl  52  ,  0  ;  205  .,  48  .  18  .  £25  ,  70  ., 
35,229,33, 153,215, 125, 35,254, 128 
, 55 , 250 , 16 ,248 ; 126 , 35 , 254 , 128 , 20 
0  ,215  =24  =248  ,  201 ..  205  ,  205  ,  2 16  ,1,2 

160  F 
170  P 
160  I 

1Q0  IF 

N   LET  J 

i =1  TO  LEN 
KE   j,CODE  a$ 


i  ) 

i =LEN  at 

55500  PNC 
55500  AND    i  =i_EN 
55500  THEN  LET 


"1  i_ 

230   isu    -.uc.  *k?y 
240   LET  z=2-l 
250  STOP 

300  PRINT   "TE.xT  «"  ,  z  ,    ::  ,2 
-LEN  as,  -   characters  remaining 
310  RETURN 
400  PRINT 

410  print  "Ho  re  text"    ( v  /n ) " 
420   PRU5E  0 

430   IF   INKEY*  =  My    OP  INKE,'**" 
THEN   CLS    .    GO  TO  110 
440  RETURN 

RUN  the  above  program  then 
DELETE  it.  The  second  part  consists 
of  six  lines  that  allow  the  text  you 
input  into  machine  code,  to  be  re- 

10  FOR  x=l  TO  Z 

20   POKE   5553  3,  ;< 

3  0   RANDOMIZE  U5P   555  30 

40  PRU5E  0 

50  NEXT  x 

60  STOP 

The  above  is  set  up  to  print 
on  the  24th  line.  Several  different 
messages  can  be  run  if  you  add  a  line 
45  CLS.  If  you  wish  to  print  text 
from  the  top  of  the  page,  then  POKE 
55502,2.  To  change  back  to  the  24th 
line,  POKE  55502,0. 

The  following  is  the  OP  CODE 
for  the  machine  code  routine,  that 
was  entered  in  part  one  above.  This 
is  the  fourth  part  of  the  subroutine. 

The  third  part  of  the  routine 
allows  the  user  to  put  text  into 
machine  code.  Once  the  user  puts 
the  text  in  and  tests  it,  then  this 
part  may  be  deleted. 

100  LET  z=l     LET   j  =55224-:    LET  3 


110  PRINT 
text  on  the 
ess  enter 

ext.  i: 


GO   SUB  300 
INPUT  3* 
IF  LEN  a$> 

0,0; "Tex  t 


text  .  " 
T   Z  =Z -1 


In  put  text  Hi  m  s  t  32 
if  yo  u  ui  an  t  to  p  r  i  n  t 
24th  line  on  m :>  .  Pr 
yjhen   finished  tui  th  t 

=55500 -.j  THEN  PR  I 
too    Lena  .      Inpu  X 

:  LET  j  =  J -LEN 
TO  110 

5$  LE 


55501  LD  R ,0 
5550  3   ChLl.  4656 
•55505  POP  HL 
55507  LD  5  ■  (HL  '■ 
55505   INC  HL 

55509  PUSH  HL 

55510  LD  HL , 5522  3 

55513  LD  R  =  j  HL> 

55514  INC  HL 

55515  CP  126 
55517  UP  0,55513 
55519  DJNZ  5; 55513 

55521  LD  R ,  i HL) 

55522  INC  HL 

55523  0=  126 

55525  RET  Z 

55526  R5T  16 
5552"?  55521 

55529  RET 

55530  CRLL  55501 
55533  01 

555  34.  RET 

To  save  the  machine  code  routine 
type  SAVE  "mssg"  CODE  55224,350. 


Would  I  be  out  of  order  if  I  were  to 
request  that  ALL  programmers  take  a 
thought  as  to  where  their  programs  might 
be  put  to  use? 

So  many  excellent  programs,  especially 
Data-Base/Address  style,  are  of  little  or 
no  value  to  the  Canadian  user.     Why  ? 

Because  our  Postal  Code  is  in  the  format 
ASA  5A5,  whereas  the  USA  Zip  Code  is  all 

Make  the  Address  Code  universally 
acceptable.     Please?  H.H.H. 


Recently  I  bought  MINERVA,  and  I  like  it, 
but  only  up  to  a  point.  I  find  that  when  I 
first  switch  on  the  QL  I  have  to  wait 
quite  a  few  minutes  to  give  it  time  to 
warm  up,  else  I  get  so  many  varieties  of 
the  tweed  pattern,  and  the  clock  crashes 
all  over  the  century,  I  cuss  Minerva  all 
over  the  place. 

Another  thing  I  do  not  like  about  it,  and 
that  is  the  fact  so  many  of  the  earlier 
programmes  are  no  good  any  more. 

it  does  have  some  good  points.  I  like 
the  Alt/Ctrl/Shift/Tab  reset.  Really  great. 

And  I  just  love  how  much  cooler  the 
machine  runs.  And  it  is  nice  to  have  one 
little  bit  less  sticking  out  the  back,  (TK2) 

My  version  is  1.66.  How  do  other  folks  get 
along  with  her? 

Would  I  marry  her  again?  Well- 


to  an/  other  portable  computer 
now  in  production. 

Dollar  for 


f  ea 

ture  for 

feature , 

it  can* 

t  he 

heat . 


MC-200  MC-400  MC~600 


tfiftft  m 

M  16 

bit  CMOS  **** 

Speed  (Mhz) 




BIOS  mfg 


Phoenix  Phoenix 

RAM  Standard 




RAM  Maximum 




Screen  diag 




type  (LCD) 

SupTwist  Retardation  Film 







640x400  640x400 

coi  x  line 

85  x  14 

35  x 

14  ??? 

No.  of  Keys 




Detach  keybd 




Slots  Stand 








Battery  type 


8xM  Ilk/Opt  Rtcn  IfiCad  Pik 
T%  hr      en  w     in  u 

repl ace 


yes  ' 


Ports  Ser/Par  1/1 



Video  Port 




ROM  size 





in  ROM 



MS-DOS  3.2 

Touch  pad 






Floppy  Ext. 



L44Mb  3.5" 

Hard  Disk 




RAM  Disk 



1  Mb  inters 


2  Mb 

2  Mb 

8  Mb 





Past  serial 



Height  (lbs) 

*****  External  Option  ***** 
*****  External  Option  ***** 
yes        yes  se 
yes        yes  yes 

0PL        OPL       a/ a 
***  12.4"  x  8.9"  x  1.9"  **« 
4.3        4.3  4.3 
ttttftttt  12  months  ******** 
$1199  $1699  $2999 

Call  for  current  quote  from 

EMSo  f  t 
Box  8763,  Boston,  MA  02114 
(617)  889-0830 



inAR/APR  1991 

Dear  Out-of-Town  Members, 

Marl3,  1991 

Before  I  go  any  further,  I'd  like 
you  to  take  a  look  at  the  newsletter. 
Isn't  it  great!  Seems  to  me  this  issue 
has  something  for  just  about  everybody. 
Now,  most  of  the  credit  goes  to  our 
members  who  have  contributed  all  this 
material.  But  I  was  looking  back  in  our 
old  n/l's,  and  find  that  Jeff  Taylor  has 
been  the  Editor  for  exactly  three  years 
now.  Seems  like  that  was  about  when  our 
newsletter  took  off.  I  wonder 

now  could  ail  of  you  who  appreciate 

the  n/1,  drop  a  line  to  Jeff  and  let  him 
know  personally  how  much  you  appreciate 
his  efforts.  You  can  imagine  that  a 
person  sometimes  has  need  of  such  a  lift 
after  three  years  of  effort!!  Please  do 
drop  him  a  line,  all  of  you. -Do  it  NOW! 
His  address  is: 

335  -  75  Lemonwood  Drive 
Islington,  Ontario 
CANADA'   M9A  4L3 

In  order  to  get  this  letter  out  I 
have  had  to  put  aside  some  interesting 
programming  exercises  I  was  doing. 

One  of  the  things  was  replacing  the 
"pico"  menu  screen  compression  routine 
in  my  Larken  "OMNIBUS"  program  with  the 
"cmpres.Bl"  picture  compression  routine 
that  you  will  see  in  this  issue  of  the 
newsletter.  More  about  that  later. 

Another  project  has  been  to  try  and 
help  a  member  having  difficulty  with 
managing  the  printer  on  the  2068. 

Then  I  have  been  experimenting  with  a 
disk  management  system  from  Bob  Swoger, 
called  Logicall. 

I  also  did  some  experimenting  with 
displaying  "screen?"  a  la  library  disk 
#15,  using  the  before-mentioned 
"cmpres.Bl"  routine.  And  while  I  was 
about  it  I  did  some  more  refining  of 
the  "cmpres.Bl"  program  itself,  to  suit 

my  fancy. 

So  there  has  been  a  lot  going  on. 

When  working  on  the  printer  problem 
I  had  to  re-learn  printer  drivers.  Since 
having  the  Larken  system  on  the  2068  I 
had  pretty  well  forgotten  all  about 
Tasman,  Aerco,  and  Hacksel  driver 
software,  and  had  to  get  back  into  it. 
I  have  always  felt  that  the  matter  of 
controlling  a  printer  on  the  2068  (and 
other  computers)  was  somewhat  akin  to  a 
"black  art",  more  than  an  understood 
thing.  I  am  still  of  that  feeling,  but 
I  think  it  is  about  time  we  shed  some 
light  on  the  topic  of  printer  control. 

The  material  I  have  on  hand  does  not 
seem  to  offer  much  understanding  into 
the  principles.  I  think  that  with  more 
members  getting  printers  now,  we  should 
try  to  get  some  articles  into  the 
newsletter  on  the  topic.  Anyone 
interested  in  producing  an  article,  or 
interested  enough  to  write  about  what 
you  know,  for  me  to  shape  into  articles? 
For  instance,  the  differences  between 
the  three, (or  four,  if  you  include  the 
Larken)  printer  drivers .  The  principles 
behind  the  need  to  "tokenize"  or  not  to 
"tokenize"  when  sending  out  printer 
control  characters.  Why  must  we  "point" 
(in  addresses  26703/4)  to  the  Aerco  and 
Hacksel  driver  code,  and  apparently  not 
need  to  with  Tasman.     Is  it  possible  to 
use  Tasman  code  with  a  Hacksel  I/F?  And 
lots  more  questions.  Any  responses? 
Enough  on  that  subject. 

I  mentioned  getting  a  copy  of 
Logicall,  earlier  in  this  letter. 
Logicall  is  Bob  Swoger ' s  effort  and  is 
designed  to  make  it  easier  to  manage  the 
Larken  disk  system.  It  is  not  fair  of  me 
to  critique  this  program  suite?  I  am  too 
biased  toward  Bob  Mitchell's  OMNIBUS  to 
make  a  fair  judgement.  My  comment  would 
be  that  Logicall  is  somewhat  elementary* 
Talk  about  damning  with  faint  praise! 
Bob  Swoger  is  trying  to  get  the  program 
out  to  all  Larken  users.  I  can  send  you 
a  copy  if  you'd  like. 

Bob  Mitchell  has  incorporated  Kris 
Boisvert's  (BYTEPOWER)   "HELLO"  program 
into  OMNIBUS.  I'm  afraid  we  also 
modified  it  somewhat  to  suit  the  OMNIBUS 
application  better.  It's  a  super  program 
idea,  and  I'd  recommend  every  Larken 
owner  borrow  the  Boisvert  disk  from  our 
library,  that  is,  disk  #32. 

There  is  also  a  new  version  of 
OMNIBUS,  in  the  disk  suite  #2,  a  version 

suited  for  those  users  who  do  not  have 
a  RAMdisk.  Ask  for  it. 

Jeff  Taylor  wished  to  thank  all  the 
members  who  wrote  and  phoned,  with 
suggestions  re  his  Portuguese  TOS  disk 
system.  About  6  members  who  were 
familiar  with  this  system  gave 
suggestions.  I  can  repor*  that  it  is  up 
and  running  now,  as  a  result  oT  these 

I  have  been  a  little  remiss  in 
answering  some  letters  from  members.  Too 
busy  getting  our  Neighbourhood  Watch 
organization  up  and  running,  I  guess.  I 
have  been  back  at  the  computer  for  a 
while,  and  am  getting  caught  up.  But  I 
would  like  any  member  who  is  waiting  for 
something  from  me,  to  drop  a  line  and 
ask  for  it  again.  I  might  nave 
overlooked  your  request.  I  should  have 
the  outstanding  letters  answered  by  the 
time  you  get  this  newsletter.  I  would 

like  any  member  who  is  still  waitng  for 
something  from  me  to  drop  me  another 
line;   I  might  have  overlooked  your 

Joan  Kealy  asks  whether  the  animal 
on  the  last  issue  was  a  cheetah,  or  was 
it  one  of  our  MLynxH !  She  goes  on  to 
apologise,  sayng,  MI  need  a  resistor  in 
my  pun  line".  We  forgive  her,  but  only 
because  of  the  kind  things  she  went  on 
to  say  about  our  newsletter! 

Ian  Robertson,  one  of  our  in-town 
members  (we  mentioned  him  in  the  last 
newsletter)  unpacked  a  Larken  RAMdisk 
that  had  been  sitting  idle  for  a  coule 
of  years.  Plugged  it  in  and  the  programs 
were  still  intact  on  it.  It  has  4  chips 
on  it,  so  that  might  give  other  owners 
an  idea  how  long  the  batteries  will  last 
on  their  RAMdisks.    My  own  RAMdisk,  with 
8  chips  on  it  has  the  same  set  of 
batteries  since  December  1988.  I  have 
three  cells  on  mine. 

Back  in  '88  I  was  having  problems 
with  improper  chips,  and  I  put  the  third 
cell  on  to  see  if  that  would  make  a 
difference  (It  didn't,  but  I  left  it 
there  anyway.  I  replaced  the  chips. 

I  read  in  past  issues  of  NITE  TIME 
NEWS,  the  Chicago  area  club  newsletter, 
that  some  people,  including  members  of 
our  club,  had  trouble  with  Larken  disk 
sytems.-  Seems  that  their  old,  really  old 
TEAC  drives  could  not  read  disks  that 
were  formatted  at  the  6  ms.  head  setting 

speed .  , 

I  cannot  go  into  it  in  this  letter,  but 

if  anyone  is  interested,  I'll  send  you 

the  clippings  from  newsletter  on  the 

nature  of  the  problem,  and  the 


Something  else  I  read  in  other  club 
newsletters.  There  was  a  little 
brou-ha-ha  over  Michael  De  Rienzo's 
articles.  Nothing  to  do  with  us.  Seems 
that  his  prefatory  statement  asking  'no 
copying  without  permission'  riled  some 

folks.  . 

We  are  publishing  them  with 
permission.  Well,  Michael  asked  that  we 
send  him  copies  of  our  newsletters  that 
carried  his  articles,  which    we  are 
doing.  I  felt  the  articljs  were  so 
interesting  that  we  had  to  carry  them. 
I  hope  you  agree.  There's  a  very 
interesting  one  in  this  issue, 
"cmpres.Bl".  Try  it,  it's  neat.  It  s  the 
one  I  mentioned  using  earlier. 

I  have  been  compressing  games 
screens  onto  a  single  Larken  track  using 
"cmpres.Bl".  I  then  have  been  working  on 
a  program  which  would  step  the  drive  one 
track  at  a  time,  and  load/display  the 
compressed  screen  from  each  track  m 
turn.  A  problem  though.  If  the  drive 

stops  spinning  before  I  request  the  next 
image,  the  drive  will  not  pick  up  that 
track.  Seems  the  drive  must  be  spinning 
a  moment  or  so  before  the  'track  read' 
takes  place.  I  solved  this  by  having  the 
Drive  take  two  steps.  This  gave  the 
drive  time  to  get  up  to  speed.  What 
happens  is  that  I  "read"  each  track 
successively  on  one  side  of  the  disk, 
then  go  back  and  read  each  track  on  the 
other  side  of  the  disk.  The  advantage  of 
the  whole  thing  is  that  the  drive  does 
not  have  to  go  back  to  track  0  every 
time  a  new  file  (screen)  is  to  be 
loaded.  I  shall  write  up  an  article  for 
the  next  n/1. 

Speaking  of  Michael  Di  Rienzo,  I  see 
in  the  current  issue  of  the  Seattle  Area 
T/S  UG  n/1  an  advert  of  his  offering  a 
lot  of  TS2068  equipment  for  sale.  Makes 
me  think  he  is  giving  up  on  Timex. 

One  of  our  members,  Larry  Crawford, 
has  been  working  on  Tasword,  making  it 
more  responsive  to  the  Larken 
environment.  Seems  to  have  completely 
reworked  the  Basic.  Looks  pretty  good. 
Anyone  interested,  ask  me  about  it.  I 
use  Tasword  a  lot  to  put  the  HELP 
sections  in  the  club  library. 

Some  time  ago  I  mentioned  that  the 
club  had  bought  Peter  Hacksel's  printe 
interface  remainders.  There  were  about* 
10  printer  interface  boards.  We  still 
have  three  boards  of  the  type  that  plug 
into  the  cartridge  dock.  Two  of  them  are 
populated.  They  are  not  as  useful  as  the 
boards  which  plug  into  the  rear  of  the 
computer,  since  if  you  have  a  Larken 
system  the  cartridge  dock  is  already 
occupied.  No  doubt  the  board  could  be 
adapted  to  rear  use,  though  I'm  not 
familiar  with  what's  required.  Anyway, 
you  can  have  one  of  these  boards  for 
$10.  You  would  need  to  make  up  your  own 
ribbon  cable  for  it. 

I've  run  dry.  Can't  think  of 
anything  more,  computer-wise.  Shall  have 
to  close  this  off  now.  But  one  last 
reminder.  Do  drop  a  line  to  Jeff.  And  if 
you  seem  to  have  been  overlooked  by  me 
in  some  request,  I  apologise,  and  do 
remind  me. 


George  Chambers