Image Map Image Map
No More Results
About neilobremski

Basic Information

About neilobremski
I started programming in GW-BASIC by copying and manipulating example listings given to me by a friend. I didn't have access to any books or other references so my initial education was trial and error alone. It was enough to hook me and now I find myself looking back fondly on those early days of struggle and excitement.
Seattle, USA
Walking, Writing, Reading, Music
Computer Programmer



Total Posts
Total Posts
Posts Per Day
General Information
Last Activity
Yesterday 03:39 PM
Join Date
October 9th, 2016
Home Page
View neilobremski's Blog

Recent Entries

There Is No Subtraction

by neilobremski on April 25th, 2017 at 04:01 PM
These wonderful digital processing units of ours are, at their heart, very fast binary adders. There may be a SUBtract instruction but this is the same as adding the two's compliment of a number. [1] Knowing this is important when I'm mixing signed and unsigned numbers; I must be discriminate.

In the current case, I'm storing texture coordinates as whole byte values which I will then interpret as fixed point. To clarify this a little, I'll explain the concepts with nibbles instead

Read More


The Great DIVide

by neilobremski on April 24th, 2017 at 09:53 AM
The DIV and IDIV instructions perform integer divisions simply and relatively quickly as opposed to creating a simple loop. Let me start by showing how one could divide an integer without these instructions. The following assembly function (CALL 110) will divide BX by CX and put the quotient in AX:

0110 31C0	XOR     AX,AX
0112 39CB	CMP     BX,CX
0114 7206	JB      011C
0116 40  	INC     AX
0117 29CB	SUB     BX,CX
0119 EBF7	JMP     0112

Read More


ASCII / BIOS Character Graphics

by neilobremski on April 18th, 2017 at 01:26 PM
Even back on the original IBM PC you could get read-only access to the glyph pixel data for the standard ASCII character set, extended ASCII, and control characters with codes less than 32 (0x20) [1].

Each character glyph is 8 bytes where every byte represents a row and every bit represents a column. The horizontal bits start in the most significant bit, so the font pixel for column 0, row 0 is bit 7 in byte 0 which follows the style for monochrome graphics modes.


Read More


DDA Texture Mapping [Part 1]

by neilobremski on April 17th, 2017 at 10:22 AM
I am learning and working on a quadrilateral DDA texture mapper for CGA that uses the 8x8 monochrome BIOS characters for texels, for use in an optimized version of Magenta's Maze. Reading Mats and Abrash's tutorials [1] have given me new insights and I have fought not to scrap my triangle/line routines just yet until I make this next step.

Stepping is really the name of the game: adding the deltas found by linear interpolation. It has been difficult to integrate the term interpolate

Read More

Updated April 17th, 2017 at 03:46 PM by neilobremski


2D Outline of 3D Shape

by neilobremski on April 10th, 2017 at 09:35 AM
The goal here is to draw lines around the outside of a 3D rendered shape. For my purposes, all 3D to 2D rendering is done via triangles. The reason triangles are so awesome for 3D is that every triangle is always co-planar (flat) and the three points can be rearranged in any order. The method I've created works on projected triangles only, those that have already been converted from 3D to 2D and thus have only two axes: X and Y.

First I need to explain how the shapes are represented

Read More