[Coco] Errors in Leventhal's 6809 Subroutines book?

Robert Gault robert.gault at att.net
Sat Jan 29 11:20:39 EST 2022


You will find that many of the examples in the subroutine book are far from optimal and there are others that are bad. 
The obvious way to learn programming is not to assume the routines are good but to actually test them say with EDTASM and try to improve on them. You will quickly find that there are much better, simpler, and more direct ways to write many of the routines. 
Regards p78 if you want to decrease a 16 bit number, you could just 
  subd #1 
RegB could be loaded from memory or from the stack. The point is to see what assumptions were made starting on p74.
Sent from AT&T Yahoo Mail on Android 
 
    If anyone comes up with a definitive/tested answer, I would like to know so that I can correct my copy of the book (if necessary). One of my desires is to learn ASM for the CoCo. 

Cheers!
Michael


-----Original Message-----
From: Coco <coco-bounces at maltedmedia.com> On Behalf Of Robert Gault
Sent: 29 January 2022 00:11
To: CoCoList for Color Computer Enthusiasts <coco at maltedmedia.com>; robert.gault at att.net; lost <lost at l-w.ca>
Subject: Re: [Coco] Errors in Leventhal's 6809 Subroutines book?

Sorry about that. My cellphone trashed the line feeds. Maybe this will work. 
  ldx ,s    leax -1,s    stx ,s 
Bad code might be 
  ldx ,s    leax -1,x    stx ,s 
Or depending on what is in regS 
  leas -1,s 
The comments suggest that regS is a pointer to a 16bit value so the second sequence should be the correct one.

Sent from AT&T Yahoo Mail on Android 
 
  On Sat, Jan 29, 2022 at 1:02 AM, robert.gault at att.net<robert.gault at att.net> wrote:  Right, I just looked up what I think are the lines in question.      ldx ,s      leax -1,s      stx ,s The instruction is legitimate but the sequence makes no sense to me. The second instruction removes the result of the first. The comments with the code suggest that regS points to a value which is to be decreased. In that case the code should be      ldx ,s    leax -1,x    stx ,sIf regS held a value instead of a pointer, then one should just use      leas -1,s Sent from my LG Mobile

-- 
Coco mailing list
Coco at maltedmedia.com
https://pairlist5.pair.net/mailman/listinfo/coco
  



-- 
Coco mailing list
Coco at maltedmedia.com
https://pairlist5.pair.net/mailman/listinfo/coco
  


More information about the Coco mailing list