From: Greg King (gngking_at_erols.com)
Date: 2005-01-08 05:55:37
From: Marko Mäkelä; on Date: January 05, 2005, at 07:17 AM -0500
>
> > That macro can be shorter:
> >
> > #mac basicline
> > org {1}
> > word 0$ ; link to next line
> > word {2} ; line number
> > byte $9E ; SYS token
> > ; SYS digits
> > if (* + 8) / 10000
> > byte $30 + (* + 8) / 10000
> > endif
> > if (* + 7) / 1000
> > byte $30 + (* + 7) / 1000 % 10
> > endif
> > byte $30 + (* + 6) / 100 % 10
> > byte $30 + (* + 5) / 10 % 10
> > byte $30 + (* + 4) / 1 % 10
> > byte 0 ; end of BASIC line
> > 0$:
> > word 0 ; end of BASIC program
> > #endm
>
> That would lead to an unoptimal solution on the PET II series, a.k.a.
> CBM Model B, where the BASIC text starts at address 3.
I had forgotten about that. Anyway, leaving out some of the "if tests"
wasn't why I sent that message -- my making that "improvement" was an
after-thought.
I had wanted to show that the arithmetic expressions can be shortenned
slightly by re-arranging the operations
( byte $30 + (* + 7) / 1000 % 10
instead of
byte $30 + (* + 7) % 10000 / 1000
for example).
Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.