Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.1 6/24/83; site utah-cs.UUCP Path: utzoo!watmath!clyde!bonnie!akgua!sdcsvax!sdcrdcf!hplabs!utah-cs!e-smith From: e-smith@utah-cs.UUCP (Eric L. Smith) Newsgroups: net.micro.6809,net.micro.cbm Subject: roman numeral challenge Message-ID: <3128@utah-cs.UUCP> Date: Fri, 30-Nov-84 19:40:35 EST Article-I.D.: utah-cs.3128 Posted: Fri Nov 30 19:40:35 1984 Date-Received: Sun, 2-Dec-84 06:05:59 EST Organization: Univ of Utah CS Dept Lines: 82 Xref: sdcsvax net.micro.6809:37 net.micro.cbm:928 [Let's give the line-eater terminal indeigestion!] Here is my entry to the roman numeral contest (for the 6809, 48 bytes total): ******************************************************************************* VALTBL FCB 100,'C+$80 FCB 90,'X+$80,'C+$80 FCB 50,'L+$80 FCB 40,'X+$80,'L+$80 FCB 10,'X+$80 FCB 9,'I+$80,'X+$80 FCB 5,'V+$80 FCB 4,'I+$80,'V+$80 FCB 1,'I+$80 * The first byte after this table must have the MSB 0. In this case my * first instruction of the routine satisfies this. If you don't like * this type of trick, or want to put the code first, you'll have to add a * zero byte. * Enter with byte to be output as roman numerals in B register. Destroys * A, B, X, Y, and CCR ROMAN LEAXvalue) then after the characters are printed the same compare is performed again T (total clock cycles) = 15 + 24*M + 9*C + (22+p)*P I have also coded a 6502 version of the same algorithm (which I will provide on request), which is 60 bytes long, primarily due to the availability of only one accumulator, and the need for a four instruction sequence to transfer the X register to the Y register (PHA, TXA, TAY, PLA). If I remember correctly, the 65C02 has a TXY instruction which would save 6 bytes. If anyone can provide a routine shorter than 48 bytes (code and data) for any processor, I would very much like to see it. -- --------------------------------------------------------------------------- Reality (for those who can't face computers): Eric L. Smith UUCP/UseNet: ...decvax!utah-cs!e-smith ARPA: e-smith@utah-20 U.S.Snail: 230 S. 500 W. Suite 133, Salt Lake City, UT, 84101 AT&T and suchlike: (801) 581-8100 (work), (801) 582-3371 (home) --------------------------------------------------------------------------- The opinions expressed herein do not necessarily represent those of the University of Utah, my friends, enemies, computer, or even me. I make no warranty, express or implied, as to the accuracy of this information of its fitness for any particular purpose. I assume no liability for any damages, actual or alleged, directly or indirectly resulting from the use of or inability to use this information. So there!