[Coco] Demo Meeting

johnmarkmelanie at gmail.com johnmarkmelanie at gmail.com
Wed Jan 4 13:54:03 EST 2023


All,

The meeting is Thursday.

January 5th is the Glenside Color Computer Club, Inc. meetings. 
Thursday Night, January 5th, at 6:30 PM Central Standard Time (Chicago Time)
is the Demo Meeting Time.
The Demo Meeting is from 6:30 PM to 7:30 PM.
The Business Meeting is from 7:30 PM to about 9:30 PM.

If you have some hardware or software, you would like to demo then this is
the time.
If you could let me know what you plan to present ahead of time then, that
might help draw people into the meeting.

For the demo meeting we will likely just get together and talk about
whatever.
Subject I would like to talk about is:
Efficient 1-bit math on the 6809.
Using macros in an assembly language program. Note LWTOOLS is a macro
assembler.
How to reserve a bit in assembly. So, you can have packed bit in a byte.
Are you better off using a byte to hold just one bit. It might make the code
smaller and save on RAM. The data may take up more room, but the code may be
smaller. So, it might be more RAM efficient in the end.
How to make a bit pointer.
Using direct page to reserve one page of RAM for bit math. 256 bytes =
256*8=2048 bits.
9's complement or BcdCom
10's complement or BcdNeg
Complement carry or CMPC
Unsigned BCD Subtract.
Signed BCD Math.
Signed BCD Subtract. BcdCom the second number, CMPC to invert the carry in,
BCD ADD (ADC, DAA) , CMPC to invert the carry out, compute the sign, compute
the negative flag, compute the overflow flag, compute the carry flag.
BCD compare or BcdCmp.
Signed BCD overflow.
Following a BCD Math subroutines with signed and unsigned branch
instructions.
How to use a BCD add in place of an integer divide by 10 with remainder to
do a binary to decimal conversion.

In binary the neg command does not work to well on the number -128. I wonder
if you would have a similar problem with a BCD NEG command.
I think you would be ok if #$009999 goes to #$FF0001 or +9999 goes to -9999.
I think you would be ok if #$000000 goes to #$000000 or +0000 goes to +0000.
Or should I say 0000 goes to 0000.
I think you would be ok if #$000001 goes to #$FF9999 or +0001 goes to -0001.

10000 - 1234 = 8766 this is the 10's complement number.

9999 - 1234 = 8765 (9's complement) and 8765 + 1 = 8766 (10's complement).

So, it is possible to get a 10's complement number in one step instead of
two.

Taking the 9's complement of the second number, inventing the carry, doing
an adc and daa, is a clever way of doing a 10's complement on the second
number. Ex: 2 + -1 = 1. So, the add is made into a subtract Ex: 2 - 1 = 1.
 
I think a 9's complement number can be done using a normal binary sub and
sbc. I believe that no BCD math is needed to do a 9's complement. Of course,
all the numbers must be from 0 to 9.

Is there another way to represent BCD negative numbers. Could we represent
+9999 as #$009999 and -9999 as #$FF9999. Perhaps we could use 10's
complement to do the math but then convert it to a more normal form for
storage and display purposes.

If you are doing unsigned numbers, then you don't need the sign bits.

This is just an example of what we might talk about. What would you like to
talk about?

Then we go into the business meeting, and after the business meeting we can
talk some more.

The meeting may go from 7:30 PM to about 9:30 PM. But some of us continue
talking 10:00 PM or later.

John Mark Mobley




More information about the Coco mailing list