Find Dot Matrix Printer Head Values in VB6 Programming
Find Dot Matrix Printer Head Values in VB6 Programming
DOT MARTIX PRINTER HEAD VALUES
This is the Visual Basic 6.0 program to create a simple application that helps you to find out Dot Matrix
printer’s print head Hex values.
LSB Æ
MSB Æ
ÅColumn Number 1 to 5 (L to R)
Above 9X5 matrix with black dots represent a character A. Thus in a 9X5 dot matrix you need to activate
set of dots to print a particular character on paper. For that you have to do lot of paper work. Some times
you may have to discard the shape which you have created and may have to do it again, which will result
into lot of “NRE Paper cost”. It is not over if you have created a character on paper, you need to send the
Hexadecimal code of that matrix to printer ports to print that character.
1. Start with column number 1 and get the binary values of the dots.
2. In column number 1 starting from MSB, the binary value we get as 111111100
3. Same for other columns, we get 000010010, 000010001, 000010010 and 111111100 for columns
2, 3, 4 and 5 respectively.
4. Now get the hex values of these binary numbers, using scientific calculator provided in Windows.
5. And then you have to send that hex value to printer port to print A.
6. Hex value came as {0x1FC, 0x012, 0x011, 0x012, 0x1FC}.
Programmer: Kiran P
Dot Matrix Printer Head Values 2
It was really a head ache for me to do that much paper work and R&D on Printer Values. So I have
designed a GUI in Visual Basic which helped me to get the value easily and made my work simple. I
have provided the complete VB code here for your reference. Enjoy.
1. Button “Clear All” will clear all the check marks on check box.
2. Button “Preview” will show the character format you have designed on preview box.
3. Button “GET VALUE” will provide Binary, corresponding Decimal and Hex values on Text Box
provided for each column check marks on check boxes.
Programmer: Kiran P
Dot Matrix Printer Head Values 3
Programmer: Kiran P
Dot Matrix Printer Head Values 4
'************************************************
Option Explicit
Dim i As Integer
------------------------------------------------------------------------------------------
---------------------------------
For i = 0 To 8
chk_bx(i).Value = 0
chk_bx2(i).Value = 0
chk_bx3(i).Value = 0
Programmer: Kiran P
Dot Matrix Printer Head Values 5
chk_bx4(i).Value = 0
chk_bx5(i).Value = 0
Next
End Sub
------------------------------------------------------------------------------------------
------------------
Call funct1
Call funct2
Call funct3
Call funct4
Call funct5
End Sub
------------------------------------------------------------------------------------------
---------------------
Text1.Text = ""
For i = 0 To 8
If (chk_bx(i).Value = 1) Then
bit(i) = 1
Else
Programmer: Kiran P
Dot Matrix Printer Head Values 6
bit(i) = 0
End If
Next
Text1.Text = StrReverse(Text1.Text)
Text11.Text = temp1
Text6.Text = Hex$(temp1)
End Sub
------------------------------------------------------------------------------------------
-----------------------
Text2.Text = ""
For i = 0 To 8
If (chk_bx2(i).Value = 1) Then
bit(i) = 1
Else
bit(i) = 0
End If
Programmer: Kiran P
Dot Matrix Printer Head Values 7
Next
Text2.Text = StrReverse(Text2.Text)
Text12.Text = temp2
Text7.Text = Hex$(temp2)
End Sub
------------------------------------------------------------------------------------------
-------------------------------
Text3.Text = ""
For i = 0 To 8
If (chk_bx3(i).Value = 1) Then
bit(i) = 1
Else
bit(i) = 0
End If
Next
Text3.Text = StrReverse(Text3.Text)
Text13.Text = temp3
Text8.Text = Hex$(temp3)
End Sub
Programmer: Kiran P
Dot Matrix Printer Head Values 8
------------------------------------------------------------------------------------------
----------------------------
Text4.Text = ""
For i = 0 To 8
If (chk_bx4(i).Value = 1) Then
bit(i) = 1
Else
bit(i) = 0
End If
Next
Text4.Text = StrReverse(Text4.Text)
Text14.Text = temp4
Text9.Text = Hex$(temp4)
End Sub
------------------------------------------------------------------------------------------
---------------------------------
Text5.Text = ""
For i = 0 To 8
If (chk_bx5(i).Value = 1) Then
bit(i) = 1
Programmer: Kiran P
Dot Matrix Printer Head Values 9
Text5.Text = Text5.Text & bit(i)
Else
bit(i) = 0
End If
Next
Text5.Text = StrReverse(Text5.Text)
Text15.Text = temp5
Text10.Text = Hex$(temp5)
End Sub
------------------------------------------------------------------------------------------
--------------------------
Call disp1
Call disp2
Call disp3
Call disp4
Call disp5
End Sub
------------------------------------------------------------------------------------------
---------------------------
For i = 0 To 8
If (chk_bx(i).Value = 1) Then
Programmer: Kiran P
Dot Matrix Printer Head Values 10
lb1(i).BackColor = vbYellow
Else
lb1(i).BackColor = vbBlack
End If
Next
End Sub
------------------------------------------------------------------------------------------
-----------------------
For i = 0 To 8
If (chk_bx2(i).Value = 1) Then
lb2(i).BackColor = vbYellow
Else
lb2(i).BackColor = vbBlack
End If
Next
End Sub
------------------------------------------------------------------------------------------
-------------------------------
For i = 0 To 8
If (chk_bx3(i).Value = 1) Then
lb3(i).BackColor = vbYellow
Else
lb3(i).BackColor = vbBlack
End If
Programmer: Kiran P
Dot Matrix Printer Head Values 11
Next
End Sub
------------------------------------------------------------------------------------------
---------------------------------
For i = 0 To 8
If (chk_bx4(i).Value = 1) Then
lb4(i).BackColor = vbYellow
Else
lb4(i).BackColor = vbBlack
End If
Next
End Sub
------------------------------------------------------------------------------------------
-------------------------------------
For i = 0 To 8
If (chk_bx5(i).Value = 1) Then
lb5(i).BackColor = vbYellow
Else
lb5(i).BackColor = vbBlack
End If
Next
End Sub
------------------------------------------------------------------------------------
Programmer: Kiran P
Dot Matrix Printer Head Values 12
Hope you have understood the program. I have declared 5 Check Boxes each with array of 9 (0 to 8).
For preview option I have used 5 Labels each with array of 9. These each array of Labels and Check
Boxes resemble each column of the matrix. I did this because if I have declare a single check box of
arrays 45 then I need to declare 45 integers, named “bit”, to hold all the check box values. So to
reduce the variable I have declared them as array of 9 so that I can use “bit” variables for holding
values of each column of Check Box.
If you still have any doubt regarding this program, send me a mail to [email protected] with
your name and doubts.
Programmer: Kiran P
E-Mail: [email protected]
Below chart gives Hexadecimal values for 9X5 dot matrix printer.
//Hex Code To Use Symbol and Code
{0x000,0X000,0X000,0X000}, //” 0
{0x13F,0X000,0X000,0X000}, //! 1
{0X001,0X002,0X001,0X002}, //" 2
{0x028,0x1FF,0x028,0x1FF,0x028}, //# 3
{0X04C,0X092,0X1FF,0X064}, //$ 4
{0x048,0x020,0x010,0x048}, //% 5
{0X0E4,0X11A,0X142,0X140}, //& 6
{0X001,0X002,0X000,0X000}, //' 7
{0X07C,0X041,0X101,0X000}, //( 8
{0X000,0X101,0X041,0X07C}, //) 9
{0x030,0x018,0x030,0x000}, //* 10
{0x010,0x010,0x0FE,0x010,0x010}, //+ 11
Programmer: Kiran P
Dot Matrix Printer Head Values 13
{0x100,0x080,0x000,0x000}, //, 12
{0x010,0x010,0x010,0x010}, //- 13
{0x000,0x000,0x100,0x000}, //. 14
{0x080,0x070,0x01C,0x007}, /// 15
{0x0FE,0x101,0x101,0x0FE}, //0 16
{0x002,0x1FF,0x000,0x000}, //1 17
{0x0F2,0x111,0x111,0x10E}, //2 18
{0x082,0x111,0x111,0x0EE}, //3 19
{0x018,0x014,0x1FE,0x011}, //4 20
{0x09F,0x111,0x111,0x0E1}, //5 21
{0x0F8,0x114,0x112,0x0E1}, //6 22
{0x003,0x1C1,0x079,0x00F}, //7 23
{0x0EE,0x111,0x111,0x0EE}, //8 24
{0x10E,0x111,0x111,0x0FE}, //9 25
{0x001,0x000,0x101,0x000}, //: 26
{0X100,0X081,0X000,0X000}, //; 27
{0X010,0X028,0X044,0X082}, //< 28
{0x028,0x028,0x028,0x028}, //= 29
{0X082,0X044,0X028,0X010}, //> 30
{0X002,0X171,0X009,0X006}, //? 31
{0X0FE,0X119,0X125,0X0BE}, //@ 32
{0x1FE,0x011,0x011,0x1FE}, //A 33
{0x1FF,0x111,0x111,0x0EE}, //B 34
Programmer: Kiran P
Dot Matrix Printer Head Values 14
{0x0FE,0x101,0x101,0x0C6}, //C 35
{0x1FF,0x101,0x101,0x0FE}, //D 36
{0x1FF,0x111,0x111,0x183}, //E 37
{0x1FF,0x111,0x011,0x003}, //F 38
{0x0FE,0x101,0x111,0x0F1}, //G 39
{0x1FF,0x010,0x010,0x1FF}, //H 40
{0x101,0x1FF,0x101,0x000}, //I 41
{0x081,0x101,0x101,0x0FF}, //J 42
{0x1FF,0x028,0x044,0x183,0x101}, //K 43
{0x1FF,0x100,0x100,0x180}, //L 44
{0x1FF,0x002,0x006,0x002,0x1FF}, //M 45
{0x1FF,0x00C,0x018,0x060,0x1FF}, //N 46
{0x0FE,0x101,0x101,0x0FE}, //O 47
{0x1FF,0x011,0x011,0x00E}, //P 48
{0x07E,0x181,0x181,0x17E}, //Q 49
{0x1FF,0x011,0x031,0x1CE}, //R 50
{0x08E,0x111,0x111,0x0E2}, //S 51
{0x003,0x001,0x1FF,0x001,0x003}, //T 52
{0x0FF,0x100,0x100,0x0FF}, //U 53
{0x00F,0x078,0x1C0,0x078,0x00F}, //V 54
{0x1FF,0x080,0x040,0x080,0x1FF}, //W 55
{0x101,0x0C6,0x038,0x0C6,0x101}, //X 56
{0x001,0x006,0x1F8,0x006,0x001}, //Y 57
{0x181,0x161,0x119,0x10D,0x103}, //Z 58
{0X1FF,0X101,0X101,0X000}, //[ 59
Programmer: Kiran P
Dot Matrix Printer Head Values 15
{0X007,0X01C,0X070,0X080}, //\ 60
{0X000,0X101,0X101,0X1FF}, //] 61
{0X002,0X001,0X002,0X000}, //^ 62
{0x100,0x100,0x100,0x100}, //_ 63
{0x001,0x002,0x000,0x000}, //` 64
{0x0E8,0x114,0x114,0x0F8}, //a 65
{0x1FF,0x0A0,0x110,0x0E0}, //b 66
{0x0F8,0x104,0x104,0x104}, //c 67
{0x0E0,0x110,0x0A0,0x1FF}, //d 68
{0x0F8,0x114,0x114,0x118}, //e 69
{0x1FC,0x112,0x012,0x004}, //f 70
{0x138,0x144,0x144,0x1FE}, //g 71
{0x1FF,0x008,0x008,0x1F0}, //h 72
{0x104,0x1FD,0x100,0x000}, //i 73
{0x100,0x104,0x105,0x0FC}, //j 74
{0x1FF,0x028,0x044,0x082}, //k 75
{0x100,0x1FF,0x100,0x000}, //l 76
{0x1F8,0x004,0x1F8,0x004,0x1F8}, //m 77
{0x1F8,0x004,0x004,0x1F8}, //n 78
{0x0E0,0x110,0x110,0x0E0}, //o 79
{0x1FC,0x042,0x042,0x03C}, //p 80
{0x03C,0x042,0x042,0x1FC}, //q 81
{0x1FC,0x108,0x104,0x104}, //r 82
{0x098,0x124,0x124,0x0C8}, //s 83
{0x0FC,0x110,0x110,0x080}, //t 84
Programmer: Kiran P
Dot Matrix Printer Head Values 16
{0x0FC,0x100,0x100,0x0FC}, //u 85
{0x01C,0x0E0,0x100,0x0E0,0x01C}, //v 86
{0x0FC,0x100,0x0F0,0x100,0x0FC}, //w 87
{0x110,0x0A0,0x040,0x0A0,0x110}, //x 88
{0x01C,0x120,0x120,0x0FC}, //y 89
{0x110,0x190,0x150,0x130,0x110}, //z 90
{0x010,0x0EE,0x101,0x101}, //{ 91
{0x000,0x1FF,0x000,0x000}, //| 92
{0x101,0x101,0x0EE,0x010}, //} 93
{0x010,0x008,0x010,0x008}, //~ 94
In above chart, symbol represents the symbol which printer will going to print if send corresponding
Hex value to the port, and code represent the code value of look up table if you declare the above
chart in a 100X5 array of look up table. Some symbol uses only 4 columns in which case you can
send 0x000 for 5th column.
Programmer: Kiran P