Drawing Bitmaps Using Assembly Language
Here is some information and examples about drawing
bitmaps with pure assembly language.
LIBRARY :
GRAPHICS.ZIP
; /// MACRO AND PROCEDURE DEFINITIONS USED IN THE Graphics.Asm FILE ////
;;///////////////////////////////////////////////////////////////////////////////////////////////////////
SET320X400 PROC
*
;setmode calling sequence
; mode_data dw 16,0a7h,9
; dw 0011h,6b00h,5901h,5a02h,8e03h,5f04h,8d05h,8511h,2d13h
; dw 720,350
; mov si, offset mode_data
SETMODE PROC
; initilializes video graphic mode 13
GVID MACRO
GCLS MACRO COLOR
GOFFSET2RC MACRO POS
GRC2OFFSET MACRO ROW,COL
; puts a linefeed on the current screen position
; di will point to the next screen offset address
; pos is the current position
GCRLF MACRO POS,RELPOS
GBOX MACRO X1,Y1,X2,Y2,COLOR
GCUTBOX MACRO SEGMENT,X1,Y1,X2,Y2
GPASTEBOX MACRO FROMSEG,TOSEG,X1,Y1,X2,Y2
GFORM MACRO X1,Y1,WID,HEIGHT,COLOR
GCUTFORM MACRO SEGMENT,X1,Y1,WID,HEIGHT
GCOPYFORM MACRO SEGMENT,X1,Y1,WID,HEIGHT
GPASTEFORM MACRO FROMSEG,TOSEG,X1,Y1,WID,HEIGHT
GCREATEFORM MACRO XFORM,CAPTION
GCLOSEFORM MACRO FORMX
GMOVEFORM MACRO XFORM,X2,Y2
GCREATEFORM2 MACRO SEGMENT1,SEGMENT2,X1,Y1,
WID,HEIGHT,COLOR1,FORMNO1,CAPTION
GMOVEFORM2 MACRO FROMSEG,TOSEG,X1,Y1,WID,HEIGHT,X2,Y2
GCLOSEFORM2 MACRO SEGMENT1,X1,Y1,WID,HEIGHT
GRESTOREFORM MACRO FORMX
GACTIVATEFORM MACRO FORMX
GVERTLINE MACRO X1,Y1,HEIGHT,COLOR
GHORZLINE MACRO X1,Y1,WIDTH,COLOR
GRECT MACRO X1,Y1,WIDTH,HEIGHT,COLOR
GVERTLINEEX MACRO X1,Y1,X2,Y2,COLOR
GHORZLINEEX MACRO X1,Y1,X2,Y2,COLOR
GRECTEX MACRO X1,Y1,X2,Y2,COLOR
ENDM
; ///////////////////////////////////////////////////////////////////////////
; ///////////////////////////////////////////////////////////////////////////
CROSSLINE MACRO X1,Y1,WIDTH,COLOR
CROSSLINEEX MACRO X1,Y1,WIDTH,COLOR
LINE MACRO X1,Y1,X2,Y2,COLOR
CIRCLE MACRO X,Y,RAD,COLOR
PUTPIXEL MACRO ROW,COL,COLOR
DRAWCANVAS MACRO STARTBANK,STARTPOS,
WIDTH,HEIGHT,RR,GG,BB
; ////////////////////////////////////////////////////////////////////////////////////////////////
; ///////////////// scan bitmap macro ////////////////////////////////////////
GETBMPPARAMS MACRO BITMAP
GETFONTPARAMS MACRO FONTINDEX1
BMPSCAN1ROW MACRO BITMAP,ROW,BITMAPSIZE,
BMPWIDTH,BITMAPDD,BITMAPLASTBITS
BMPSCAN1COLUMN MACRO BITMAP,ROW,COL,
BITMAPSIZE,BITMAPWIDTH,FONTHEIGHT
BMPSCANROW MACRO BITMAP,FROMROW,TOROW,
BITMAPSIZE,BMPWIDTH,BITMAPDD,BITMAPLASTBITS
BMPSCANCOLUMN MACRO BITMAP,ROW1,FROMCOL,TOCOL,
BITMAPSIZE,BMPWIDTH,BITMAPDD,BITMAPLASTBITS
LOADFONT MACRO FONTINDEX
ENDM
; ////////////////////////////////////////////////////////////////////////////////////////////////////////
; //////////////// compare font ////////////////////////////////////////////////////////////////
COMPAREBITS MACRO BITMAP,BITMAPSIZE,BITMAPWIDTH,
FONTINDEX1,STARTROW1,STARTCOL1,FONTROW1
; /////////////////////////////////////////////////////////////////////////////////////////
; //////////////// graphics mouse macros /////////////////////////
DRAWMOUSE MACRO MPTR,X,Y
; resets mouse and checks if it is atteched
RESETMOUSE MACRO