Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site unc.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!mcnc!unc!ericksen
From: ericksen@unc.UUCP (James P. Ericksen)
Newsgroups: net.micro.cbm
Subject: Re: long pauses when running C64 basic
Message-ID: <85@unc.UUCP>
Date: Mon, 12-Nov-84 21:51:48 EST
Article-I.D.: unc.85
Posted: Mon Nov 12 21:51:48 1984
Date-Received: Wed, 14-Nov-84 05:34:20 EST
References: <2895@allegra.UUCP>
Organization: CS Dept., U. of N. Carolina at Chapel Hill
Lines: 18

.
	The reason you are getting garbage collects is that the BASIC
GET# instruction, which you are probably using to read the serial port,
allocates a new string buffer to put the character in every time the 
instruction is used.  The only way around that, though not too difficult,
is to avoid using the GET# instruction in your terminal emulator and
get the characters using a short machine language routine to call the
appropriate kernel routines.  Just poke the sequence

  162, 2, 32, 198, 255, 32, 228, 255, 133, 3, 162, 0, 32, 198, 255, 96

into your favorite unused memory area, SYS to it, and a character will
be magically left at location 3.  From that point, PEEK(3) will give
you what you would have gotten from GET#n.  And no more garbage collects!

Jim Ericksen
Dept of Comp Sci
UNC Chapel Hill