PLUS/4 garbage collection

  • Follow


I think the PLUS/4 computer system has flakey garbage collection.  I
never owned one of these before Aug 5, yesterday.  I tried to bench
mark the +/4 using a pure BASIC SHELL string array sorting program.
The array dimension declaration is 500 but only elements 1 to 274
are used.  I print out the SHELL partition size and FRE(0) each time
the partition is halved.  FRE(0) reports less and less available
memory as the sort progresses.  Before the sort begins, I SCRATCHed
the output file containing the sorted data and report the disk
status using the DS$ variable.  When I replace the SCRATCH with a
command channel OPEN containing a file S0 command, INPUT# the disk
status into 4 string scalar variables, close the command channel and
print the disk status, the memory available remains constant and
adequate throughout the sort.  Anybody notice any other flakey +/4
behavior? Anybody know how to force +/4 garbage collection?

0
Reply r_u_sure (108) 8/6/2006 5:25:08 PM

Paul Rosenzweig schreef:

> behavior? Anybody know how to force +/4 garbage collection?

Try SYS44723, it might work (although not from within a program).

Attila

0
Reply A 8/6/2006 9:53:28 PM


A Grosz wrote:
> Paul Rosenzweig schreef:
>
> > behavior? Anybody know how to force +/4 garbage collection?
>
> Try SYS44723, it might work (although not from within a program).

You're right!  SYS44723 seems to execute a CLR command
rather than collect string garbage while a program is running.

I've investigated the problem further, and referring to
the systems variable DS$ while no diagnostic channel
is open wrecks PLUS/4 systems operations on strings.

0
Reply Paul 8/10/2006 10:25:38 AM

Paul Rosenzweig schreef:

> You're right!  SYS44723 seems to execute a CLR command
> rather than collect string garbage while a program is running.
>
> I've investigated the problem further, and referring to
> the systems variable DS$ while no diagnostic channel
> is open wrecks PLUS/4 systems operations on strings.

I see. In this case you could just as well use the old fashioned
way of reading out the error channel.

Attila

0
Reply A 8/10/2006 12:34:06 PM

A Grosz wrote:
> Paul Rosenzweig schreef:
> >
> > I've investigated the problem further, and referring to
> > the systems variable DS$ while no diagnostic channel
> > is open wrecks PLUS/4 systems operations on strings.
>
> I see. In this case you could just as well use the
> old fashioned way of reading out the error channel

The PLUS/4 tolerates references to DS$ while a diagnostic / command
channel is open.  My problem came about because my program executed
a BASIC SCRATCH command then referred to the DS$ variable.  This
sequence of BASIC statements works fine on a C128.  Because of the
intense string manipulation needed for sorting, flawed garbage
collection overwrote the BASIC program, or ran out of memory.

0
Reply Paul 8/10/2006 4:46:01 PM

On 6 Aug 2006 10:25:08 -0700, "Paul Rosenzweig"
<r_u_sure@mybluelight.com> wrote:

> Anybody know how to force +/4 garbage collection?

According to "The Complete COMMODORE 16 ROM Disassembly" by Peter
Gerrard and Kevin Bergin garbage collection starts at $A954. You might
try SYS 43348.
-- 
Arwin.
0
Reply Arwin 8/17/2006 4:54:56 PM

5 Replies
55 Views

(page loaded in 9.865 seconds)

Similiar Articles:













7/23/2012 2:52:14 AM


Reply: