# All Blog Entries

1. #### Random Cubic Polynomial in Assembler

by , July 27th, 2017 at 09:17 AM (DOS / IBM PC Programming)
I finally reached back into some of my first assembler [1] to write a routine called cubicnom() that generates a random cubic polynomial as the title implies. This pulls together several recent bits of code to seed the random number generator using a string and sprintf the results to a location in memory.

First, here's a random() function which accepts range parameters BX to CX. Thus if I pass in 1 and 9, respectively, then I'll get back ...
Tags:
Categories
Asm
2. #### Seeding Randomness with a String

by , July 25th, 2017 at 09:38 AM (DOS / IBM PC Programming)
Random numbers are great but sometimes you want them to be consistently random (an oxymoron!) so that you can rely on their pattern being the same. For example, in Magenta's Maze everything is generated from random numbers that are seeded by the spell name. This is a string which is boiled down to an integer that is used to reset the pseudo-random number generator. Thus, the level generated for a certain string is always the same even across computers and time.

In the first version, ...
Tags:
Categories
Uncategorized
3. #### RAND() in Assembler

by , July 24th, 2017 at 03:50 PM (DOS / IBM PC Programming)
The puzzles of Magenta's Maze are generated using the barely sufficient rand() function supplied by MSC 5.1. There are some issues with this, most notably that the highest bit of the 16-bit word output is always zero. The way we C programmers were taught to use this function was to modulus the result by the maximum amount desired thus providing 0 to N - 1 (where N is the maximum). This is unfortunately how Magenta's Maze uses it to place objects within the map and rotate the magic circles.
...
Tags:
Categories
Asm
4. #### VINTAGE FLYERS from COMMODORE [1990] | It's a Pixel THING - Ep. 123

by , July 23rd, 2017 at 05:08 AM
This week I'll be showcasing some vintage flyers from the Amiga and Personal Computer families from Commodore that were being commercialized around 1990.
Enjoy!

VINTAGE FLYERS from COMMODORE [1990] | It's a Pixel THING - Ep. 123
Tags:
Categories
Uncategorized
5. #### C's itoa() in Assembler with mini-sprintf bonus

by , July 20th, 2017 at 02:14 PM (DOS / IBM PC Programming)
I've been poking around for a quick way to convert 16-bit words into digit characters a la the itoa() function in C. [1] I thought and searched a lot around dividing by constants and clever ways of converting numbers to strings. In the end, I chose the K&R method as the base for my algorithm [2] which goes like this:

1. Divide number by base (10).
2. Write remainder as next digit (converting to ASCII by adding 30h).
3. Use quotient as number and repeat loop if non-zero.
4. Reverse
...
Tags:
Categories
Asm