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

Joel Rees joel.rees at gmail.com
Sat Jan 29 22:31:19 EST 2022


Speaking of fixes, can someone who is a member of github contact
jmatzen or one of the others contributing to the project about this?

project page

https://github.com/jmatzen/leventhal-6809

(I've got too many login records on too many places to want to add one
on github just for this.)

On Sun, Jan 30, 2022 at 12:21 PM Joel Rees <joel.rees at gmail.com> wrote:
>
> On Sun, Jan 30, 2022 at 10:49 AM Joel Rees <joel.rees at gmail.com> wrote:
> >
> > On Sun, Jan 30, 2022 at 8:58 AM tim lindner <tlindner at macmess.org> wrote:
> > >
> > > On Fri, Jan 28, 2022 at 5:51 PM Don Barber <don at dgb3.net> wrote:
> > > > However, I've already run across two bugs:
> > >
> > > <snip>
> > >
> > > It should be noted all of the programs from that book have been typed in at:
> > >
> > > https://github.com/jmatzen/leventhal-6809
> >
> > Cool. Since I'm interested, I'll check whether the bugs in question
> > have been fixed.
>
> After sidetracking on jmatzen's repository for gcc6809 and attending
> some church meetings online, I finally checked, and the bugs mentioned
> above are not yet fixed.
>
> Here's the nitty-gritty:
>
> -------- lines 95, 96 of MPBMUL.s --------
>
> 94:DECCTR:
> 95:  LEAU    -1,U        ; DECREMENT BYTE COUNT
> 96:  BNE    MULLUP        ; LOOP UNTIL MULTIPLICATION DONE
>
> As Don noted, LEAU and LEAS do not set flags -- so that they can be
> used in adjusting the stack(s) without interfering with the algorithm
> flow.
>
> As a simple fix, add one line:
>
> 94:DECCTR:
> 95:  LEAU    -1,U        ; DECREMENT BYTE COUNT
>      CMPU #0
> 96:  BNE    MULLUP        ; LOOP UNTIL MULTIPLICATION DONE
>
> -------- end lines 95, 96 of MPBMUL.s --------
>
>
>
> -------- line 162 of MPBMUL.s --------
>
> 160:SETUP:
> 161:  LDX    ,S        ; GET SHIFT COUNT
> 162:  LEAX    -1,S        ; DECREMENT SHIFT COUNT BY 1
> 163:  STX    ,S
> 164:  BNE    SHFTST        ; CONTINUE UNLESS SHIFT COUNT EXHAUSTED
>
> As a simple fix, add one line:
>
> 160:SETUP:
> 161:  LDX    ,S        ; GET SHIFT COUNT
> 162:  LEAX    -1,X        ; DECREMENT SHIFT COUNT BY 1
> 163:  STX    ,S
> 164:  BNE    SHFTST        ; CONTINUE UNLESS SHIFT COUNT EXHAUSTED
>
> Note that both LEAX and STX set the Z flag, so that is not a problem here.
>
> -------- end line 162 of MPBMUL.s --------
>
>
>
>
> > > --
> > > tim lindner
> > >
> > > "Proper User Policy apparently means Simon Says."
> >
> > LOL

-- 
Joel Rees

http://reiisi.blogspot.jp/p/novels-i-am-writing.html


More information about the Coco mailing list