Retro computing and gaming, sci-fi books, tv and movies and other geeky stuff.

Home » Archive » net.micro.atari » Re: Action! Brain damage
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Switch to threaded view of this topic Create a new topic Submit Reply
Re: Action! Brain damage [message #85918] Mon, 17 June 2013 17:20 Go to next message
parker is currently offline  parker
Messages: 11
Registered: May 2013
Karma: 0
Junior Member
Message-ID: <6192@rochester.UUCP>
Date: Tue, 5-Feb-85 17:22:43 EST
Article-I.D.: rocheste.6192
Posted: Tue Feb  5 17:22:43 1985
Date-Received: Fri, 8-Feb-85 03:27:07 EST
References: <345@snow.UUCP> <335@enmasse.UUCP>
Organization: U. of Rochester, CS Dept.
Lines: 109

[color=blue]>  [squelch][/color]
[color=blue]>  [/color]
[color=teal]>>   o  Discussions of programs and languages (e.g. the brain-damaged 'records'[/color]
[color=teal]>>      in Action.[/color]
[color=teal]>>  3. Let's whine about Action; I love the fact that it is in ROM, that it[/color]
[color=teal]>>     compiles fast, and *is* fast, but why can't you have pointers in records?[/color]
[color=teal]>>     I hate using CARDs. And why are all variables static? Just try writing[/color]
[color=teal]>>     recursive programs! (I know you can use arrays, but I want to be[/color]
[color=teal]>>     difficult)  >-{[/color]
[color=blue]>  [/color]
[color=blue]>  	Really the problem is that for fast code Action doesn't use[/color]
[color=blue]>  	a stack frame- on a 6502 you only get 256 bytes of stack so[/color]
[color=blue]>  	if you want truly recursive procedures you have to use the[/color]
[color=blue]>  	hardware stack to hold pointers to a software stack. C65[/color]
[color=blue]>  	does this, but as we all know, that language is truly brain[/color]
[color=blue]>  	damaged, and SLOOOOOOWWWW. [/color]

The real problem is that the 6502 doesn't really support a stack.  ACTION!
doesn't support recursion for just this reason.  Come on now, how often do
you really write recursive routines?  How many of them need to be?  Not too
many I'll bet.  I think most people would rather have the speed advantage.
If you don't, used Deap Blue C or C/65 (which are missing several other

[color=blue]>  	Not only won't Action! let you have pointers in records, but[/color]
[color=blue]>  	I ran into the following bug:[/color]

True, ACTION! on the Atari doesn't support pointers in records, but there
were some features that had to be left out to fit it in the 16K cartridge.

[color=blue]>  	;* excuse syntax errors, I can never switch from c to action too well[/color]
[color=blue]>  	[/color]
[color=blue]>  	CARD ARRAY dur(4)[/color]
[color=blue]>  	BYTE count[/color]
[color=blue]>  			init_dur();[/color]
[color=blue]>  			FOR i=0 to 3 DO[/color]
[color=blue]>  				dur(count) == -1;[/color]
[color=blue]>  				if (dur(count) = 0) then[/color]
[color=blue]>  				  do_something();[/color]
[color=blue]>  				fi;[/color]
[color=blue]>  			OD[/color]
[color=blue]>  	[/color]
[color=blue]>  	This code was supposed to decrement card values in the card array dur,[/color]
[color=blue]>  	except that the compiler got all confused... refused to byte reverse[/color]
[color=blue]>  	values in dur before decrementing. It didn't matter what I used to point[/color]
[color=blue]>  	into the array.... same results. I fixed it by calling a function to[/color]
[color=blue]>  	perform the decrement, i.e. decr(dur,count)!!!!![/color]
[color=blue]>  [/color]
[color=blue]>  	WORSE YET- this was entirely context sensative!!!!! Similar code[/color]
[color=blue]>  	worked fine in different situations.[/color]

I sure wish I knew what you did.  My guess is that the program was incorrect
(like this one is).  I tried the following and it works just fine:

  CARD ARRAY dur(4)
  BYTE count, i

  count = 1
  dur(count) = 3
  FOR i = 0 TO 3 DO
    dur(count) ==- 1
    IF  dur(count)=0 THEN

[color=blue]>  	Add this to the inability of the compiler to operate on cardinal[/color]
[color=blue]>  	values greater than 0x7fff, and you have a piece of software[/color]
[color=blue]>  	that should never be used by anyone.[/color]

I only know of one place where hex values do not work properly.  That is for
declaring the size of an array.  This is a known (and documented by OSS) bug
that has been fixed for the next revision of ACTION!.  If you would like to
provide an example (other than that mentioned above) where hex constants or
CARDinals don't work properly, I would like to see it.  Reported bugs in
ACTION! ARE FIXED!!!  But it is hard to fix a bug if you don't know that it

[color=blue]>  	What really bugs me is that OSS has no intention of fixing any of[/color]
[color=blue]>  	this sh*t. And if they do... you can bet that it won't be the free[/color]
[color=blue]>  	upgrade that it should be.[/color]

I normally don't post messages here, but I could not let this one go by
without a response.  First, OSS does support its product.  They have come
out with 4 revisions to ACTION! since its initial release.  The current
version is 3.6.  They also will give you a bug list if you request it and
many of these have been described (with fixes) in their newsletter.  If
you didn't get a news letter, then you probably didn't send in the
registration card (how are they going to send you a copy if they don't know
who you are).  They provide upgrades for old versions of the cartridge for
$30.00.  Now I know that isn't exactly cheap, but they do have to give you
a whole new cartridge when they do it.  (Let's face it, ACTION! isn't the
biggest selling program in the world and low volume items carry a lot of

      - Clinton Parker
        Action Computer Services

ps:  ACS really does like to here reports of bugs in ACTION!, but to be fair
many of the reported bugs are actually programmer errors.  I know this does
not make the programmer feel too good when he/she is told this, but you
should realize that it is very hard to fix something that isn't broken.
Many reported bugs (that aren't) also deal with misunderstandings of what
the user think ACTION! can do and what it really can do.  For these, I am
sorry, and again, would be willing to listen on how the manual could be
improved (yes I know it's not that great) to correct these misunderstandings
(specific examples would really help here).  Thanks.
Re: Re: Action! Brain damage [message #85920 is a reply to message #85918] Mon, 17 June 2013 17:20 Go to previous messageGo to next message
mroddy is currently offline  mroddy
Messages: 25
Registered: September 1985
Karma: 0
Junior Member
Message-ID: <339@enmasse.UUCP>
Date: Thu, 7-Feb-85 12:42:15 EST
Article-I.D.: enmasse.339
Posted: Thu Feb  7 12:42:15 1985
Date-Received: Sun, 10-Feb-85 04:36:14 EST
References: <345@snow.UUCP> <335@enmasse.UUCP> <6192@rochester.UUCP>
Organization: Enmasse Computer Corp., Acton, Mass.
Lines: 26

[color=blue]>  [/color]
[color=blue]>  I normally don't post messages here, but I could not let this one go by[/color]
[color=blue]>  without a response.  First, OSS does support its product.  They have come[/color]
[color=blue]>  out with 4 revisions to ACTION! since its initial release.  The current[/color]
[color=blue]>  version is 3.6.  [/color]
[color=blue]>  [/color]
	The version 3.6 has been out for about a year. It has numerous
	bugs. Given the state of the 800 series, I really doubt that
	a new version will be released. I don't think that asking
	$30.00 for a new cartridge to replace the previous bug infested
	version qualifies as support. Not when the stuff comes with the
	standard shrink wrap disclaimer "this product not guarenteed to

	Despite my non-recommendation of Action, it's still the best
	high level language available for home computers. I accept that
	most software has bugs, but companies that sell software tools,
	such as compilers, operating systems, word processors, etc.
	should be responsible enough to provide support. Presumably, thats
	why this kind of product demands a higher price than pac-man.

						Mark Roddy
[color=blue]>   [/color]
Re: RE: Action! Brain damage [message #85942 is a reply to message #85918] Mon, 17 June 2013 17:20 Go to previous message
ravi is currently offline  ravi
Messages: 85
Registered: March 2013
Karma: 0
Message-ID: <2611@mcnc.UUCP>
Date: Mon, 25-Feb-85 16:07:03 EST
Article-I.D.: mcnc.2611
Posted: Mon Feb 25 16:07:03 1985
Date-Received: Wed, 27-Feb-85 10:37:26 EST
References: <1522@ritcv.UUCP>
Organization: Microelectronics Ctr. of NC; RTP, NC
Lines: 20

I'm not sure why Scott Hessler's cartridge would tend to
  'disappear', but I've had my ACTION! cartridge for about 9 months
now, and it certainly has been inserted more than 100 times, but
the plating on the contacts is still very much there. I think
there may be a problem with that particular piece ( sure that spilled
tea didn't get just a little too close to the cart?? Tannic acid
does wonders for tinplate..), and OSS should  replace it
without complaining.

Re. the lack of features, I agree with Scott that what is present
is pretty good, considering BASIC is really the only alternative..
I guess I can always think of features I would like it to have, but
there is so much I can do with what there is now .. again, the 
bitwise operations and structures are such an improvement over Basic.
With ATARI apprently planning to keep the 800 series alive with the
new XE's, I hope OSS will keep ACTION! alive and bring out bug-freer
versions (you listening, Clint?)

  Switch to threaded view of this topic Create a new topic Submit Reply
Previous Topic: Where is Thorn EMI?
Next Topic: Atari ST relations with software developers are TERRIBLE
Goto Forum:

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Jul 03 13:58:03 EDT 2020

Total time taken to generate the page: 0.00337 seconds