The legal tricks-Learn Your Self

Latest gadgets,softwares,hardware,reviews,programming and campuses, game cheats ext......

Checks the validity of an ISBN by verifying the checksum

Problem Statement : Checks the validity of an ISBN by verifying the checksum

Programming Language : Assembly Language/TASM/MASM

Program Code :


Code:
Checks the validity of an ISBN by verifying the checksum

This file contains a C-callable routine which calculates the
check digit (tenth digit) of an ISBN and returns the ASCII
representation of that digit.

This code was written for Borland's TASM
and may be assembled with the following command:

tasm /m2 isbnchek.asm

^
.MODEL small

public isbncheck

.CODE
;/********************************************************
;
; Name:
; isbncheck
;
; Purpose:
; Calculates the check digit for a ten digit ISBN, converts that
; digit to its ASCII representation and returns that answer.
;
; Algorithm:
; An ISBN consists of nine digits plus a validation digit.
; Number the digits from left to right as d1, d2, ... d9, with
; d10 being the validation digit. The calculation is then
;
; d10 = (1(d1) + 2(d2) + 3(d3) + ... + i(di) + ... + 9(d9))%11
;
; or the weighted sum of each digit mod eleven.
;
; In our assembly language implementation, we simulate the
; multiplications by looping through and summing as in the
; following psuedocode:
;
; sum = 0
; for i=1 to 9
; {
; for j=i to 9
; {
; sum = sum + isbn[j]
; }
; }
;
; Entry:
;
; isbn = a nine digit ASCII string containing the ISBN
; (with or without the check digit which is not used here)
;
; Register usage within the routine:
;
; AL = current ISBN digit
; AH = sum of digits so far
; BX = start pointer into ISBN for each outer loop
; CX = digit counter (inner loop)
; DX = start value for digit counter
; SI = points to current ISBN digit
;
; Exit:
;
; AX = ASCII representation of calculated check digit
;
; Trashed:
; none
;
;*************************************************************/
isbncheck proc C isbn:ptr byte
push bx
push cx
push dx
push si
mov bx,[isbn] ;
mov dx,9 ; number of digits in raw ISBN
xor ax,ax ; clear out our total
cld ; count up
@@bigloop: ;
mov si,bx ; point to a digit in the ISBN
mov cx,dx ; get digit count in CX
@@AddEmUp: ;
lodsb ; fetch digit into AL
and al,0fh ; convert from ASCII
add ah,al ; add it to our total in AH
loop @@AddEmUp ; do all digits
inc bx ; and advance the digit pointer
dec dx ; now decrement digit count
jnz @@bigloop ; keep going if digits left
mov al,ah ; move sum into al
xor ah,ah ; clear out high half
mov cl,11 ; we'll be doing a mod 11 operation
div cl ; ah = sum mod 11
mov al,ah ; move calculated check digit to AL
xor ah,ah ; clear out high half
or al,30h ; convert to ASCII digit
cmp al,3Ah ;
jnz NotTen ;
mov al,'X' ;
NotTen: ;
pop si
pop dx
pop cx
pop bx
ret ; return
isbncheck endp

END


Chips

Problem Statement : Chips

Programming Language : Assembly Language/TASM/MASM

Program Code :


Code:
Chips

; calling convention:
;
; int chips( void );
;
; returns:
;
; tucked away neatly in your AX....
;
; you get back 8x if an 8088/8086
; 18x if an 80186/80188
; 28x if an 80286
; 38x if an 80386
; 20x for a NEC V20/V30
; AND
; xx0 if NO NDP is found
; xx1 if an 8087
; xx2 if an 80287
; xx3 for an 80387
;
; OR.....
;
; >>> A return of 280 means you got an 80286 machine with no NDP, <<<
; >>> 383 means you have an 80386/80387 rig to work with, and a <<<
; >>> return of 81 sez that you have 8088/8086 CPU with an 8087. <<<
; >>> A 200 tells you that you got an NEC V20/V30 without an NDP. <<<
; >>> ETC., Etc., etc. <<<
;
; NOTE:
;
; There are lotsa ways of handling the way this function returns
; it's data. For my purposes, I have elected this one because
; it requires only int arithmetic on the caller's end to extract
; all the info I need from the return value. I think that I'm
; well enough 'commented' in the following code so that you will
; be able to tinker and Putz until you find the best return tech-
; nique for Ur purposes without having to reinvent the wheel.
;
; >>>> Please see TEST.C, enclosed in this .ARC. <<<<
;
; REFERENCES:
;
; _chips is made up of two PROC's, cpu_type and ndp_type.
;
; cpu_type is based on uncopyrighted, published logic by
; Clif (that's the way he spells it) Purkiser of Intel -
; Santa Clara.
;
; ndp_type is adopted from Ted Forgeron's article in PC
; Tech Journal, Aug '87 p43.
;
; In the event of subsequent republication of this function,
; please carry forward reference to these two gentlemen as
; original authors.
;
.MODEL SMALL
.CODE
PUBLIC _chips

_chips PROC

control dw 0 ; control word needed for the NDP test

push BP ; save where Ur at
mov BP,SP ; going in.....

push DI
push SI
push CX ; not really needed for MSC but kinda
; nice to do cuz someone else might
; want to use the function and we do
; use CX later on

call cpu_type ; find out what kinda CPU you got and
; and save it in DX for future reference
call ndp_type ; check for math coprocessor (NDP) type
; and hold that result in AX

add AX,DX ; add the two results together and hold
; 'em in AX for Ur return to the caller

pop CX ; put things back the way that you
pop SI ; found 'em when you started this
pop DI ; little drill off.....
pop BP
; AND
ret ; go back to where you came from....
; ( ===> the calling program )
; with Ur results sittin' in AX !!
_chips endp


cpu_type PROC

pushf ; pump Ur flags register onto the stack
xor DX,DX ; blow out Ur DX and AX to start off
xor AX,AX ; with a clean slate
push AX ; put AX on the stack
popf ; bring it back in Ur flags
pushf ; try to set bits 12 thru 15 to a zero
pop AX ; get back Ur flags word in AX
and AX, 0f000h ; if bits 12 thru 15 are set then you got
cmp AX, 0f000h ; an Intel 8018x or a 808x or maybe even
jz dig ; a NEC V20/V30 ??? - gotta look more...

; OTHERWISE....
; Here's the BIG one.... 'tells the difference between an 80286 and
; an 80386 !!

mov AX, 07000h ; try to set FLAG bits 12 thru 14
; - NT, IOPL
push AX ; put it onto the stack
popf ; and try to pump 07000H into Ur flags
pushf ; push Ur flags, again
pop AX ; and bring back AX for a compare
and AX,07000h ; if Ur bits 12 thru 14 are set
jnz got386 ; then Ur workin' with an 80386
mov DX, 0280 ; save 280 in DX cuz it's an 80286
jmp SHORT CPUbye ; and bail out

got386: mov DX, 0380 ; save 380 in DX cuz it's an Intel 80386
jmp SHORT CPUbye ; and bail out

; here's we try to figger out whether it's an 80188/80186, an 8088/8086
; or an NEC V20/V30 - 'couple of slick tricks from Clif Purkiser.....

dig: mov AX, 0ffffh ; load up AX
mov CL, 33 ; HERE's the FIRST TRICK.... this will
; shift everything 33 times if it's
; 8088/8086, or once for a 80188/80186!
shl AX, CL ; on a shift of 33, all bits get zeroed
jz digmor ; out so if anything is left ON it's
; gotta be an 80188/80186
mov DX,0180 ; save 180 in DX cuz it's an 80188/80186
jmp SHORT CPUbye ; and bail out

digmor: xor AL,AL ; clean out AL to set ZF
mov AL,40h ; ANOTHER TRICK.... mul on an NEC duz NOT
mul AL ; effect the zero flag BUT on an Intel
jz gotNEC ; 8088/8086, the zero flag gets thrown
mov DX,0080 ; 80 into DX cuz it's an Intel 8088/8086
jmp SHORT CPUbye ; and bail out

gotNEC: mov DX,0200 ; it's an NEC V20/V30 so save 200 in DX

CPUbye: popf ; putchur flags back to where they were
ret ; and go back to where you came from
; (i.e., ===> _chips) with the CPU type
; tucked away in DX for future reference
cpu_type endp

; Check for an NDP.
;
; >>>>NOTE: If you are using an MASM version < 5.0, don't forget to
; use the /R option or you will bomb cuz of the coprocessor instruc-
; tions. /R is not needed for version 5.0.<<<<<<<<<<<<<<<<<<<<<<<<<

ndp_type PROC

do_we: fninit ; try to initialize the NDP
mov byte ptr control+1,0 ; clear memory byte
fnstcw control ; put control word in memory
mov AH,byte ptr control+1 ; iff AH is 03h, you got
cmp AH,03h ; an NDP on board !!
je chk_87 ; found somethin', keep goin'
xor AX,AX ; clean out AX to show a zero
jmp SHORT NDPbye ; return (i.e., no NDP)

; 'got an 8087 ??

chk_87: and control,NOT 0080h ; turn ON interrupts (IEM = 0)
fldcw control ; load control word
fdisi ; turn OFF interrupts (IEM = 1)
fstcw control ; store control word
test control,0080h ; iff IEM=1, 8087
jz chk287 ; 'guess not! March on....
mov AX,0001 ; set up for a 1 return to
jmp SHORT NDPbye ; show an 8087 is on board

; if not.... would you believe an 80287 maybe ??

chk287: finit ; set default infinity mode
fld1 ; make infinity
fldz ; by dividing
fdiv ; 1 by zero !!
fld st ; now make a
fchs ; negative infinity
fcompp ; compare Ur two infinities
fstsw control ; iff, for 8087 or 80287
fwait ; sit tight 'til status word is put away
mov AX,control ; getchur control word
sahf ; putchur AH into flags
jnz got387 ; NO GOOD.... march on !!
mov AX,0002 ; gotta be a 80287 cuz we already tested
jmp SHORT NDPbye ; for an 8087

; We KNOW that there is an NDP on board otherwise we would have bailed
; out after 'do_we'. It isn't an 8087 or an 80287 or we wouldn't have
; gotten this far. It's gotta be an 80387 !!

got387: mov AX,0003 ; call it an 80387 and return 3

NDPbye: ret ; and go back where you came from
; (i.e., ===> _chips) carrying the NDP
; type in Ur AX register
ndp_type endp

_text ends
end

Circle

roblem Statement : Circle

Programming Language : Assembly Language/TASM/MASM

Program Code :


Code:
Circle

cseg segment
assume cs:cseg, ds:cseg, ss:cseg
org 100h
.386
start:

mov ax, 13h
int 10h

mov dx, 3c8h
xor al, al
out dx, al
inc dx
mov cx, 256
xor al, al
lopp: out dx, al
out dx, al
out dx, al
inc al
dec cx
jnz lopp

mov ax, 0a000h
mov es, ax


fild y_rad
fild x_rad

loopdr:
fild angle
fsincos

fmul st, st(2)
fistp x_co

fmul st, st(2)
fistp y_co

add x_co, 160
add y_co, 100

xor di, di
mov ax, y_co
shl ax, 6
add di, ax
shl ax, 2
add di, ax
add di, x_co

mov byte ptr es:[di], cl
inc cl

fadd yvel
fxch st(1)
fadd xvel
fxch st(1)

inc angle
jnz loopdr

xor ax, ax
int 16h

mov ax, 3
int 10h

int 20h

x_co dw 0
y_co dw 0

x_rad dw 10
y_rad dw 10

xvel dq 0.001
yvel dq 0.001

angle dw 0


cseg ends
end start

A DOS 2.0 filter for word processing document files

call put_char ; send an ASCII blank
pop cx
loop clean55
jmp clean3

clean6: call put_char ; write out the EOF mark,
ret ; and return to DOS.

clean endp


get_char proc near
mov bx,stdin ; get chars from std. input
mov cx,1 ; # of chars to get = 1
mov dx,offset input_buffer ; location = input_buffer
mov ah,3fh
int 21h ; do the function call
or ax,ax ; test # of chars returned
jz get_char1 ; if none, return EOF
mov al,input_buffer ; else, return the char in AL
ret
get_char1:
mov al,eof ; no chars read, return
ret ; an End-of-File (EOF) mark.
get_char endp

put_char proc near
mov output_buffer,al ; put char to write in buffer.
mov bx,stdout ; write to std. output
mov cx,1 ; # of chars = 1
mov dx,offset output_buffer ; location = output_buffer
mov ah,40h
int 21h ; do the function call
cmp ax,1 ; check to see it was really done.
jne put_char1
clc ; really done. return carry = 0
ret ; as success signal.
put_char1:
stc ; not really done. return carry = 1
ret ; as error signal (device is full).
put_char endp

input_buffer db 0
output_buffer db 0

column dw 0

err_msg db cr,lf
db 'clean: Disk is full.'
db cr,lf
err_msg_len equ (this byte)-(offset err_msg)

cseg ends

end clean

CLEAR Utility to clear display and set character attributes

mming Language : Assembly Language/TASM/MASM

Program Code :


Code:
CLEAR Utility to clear display and set character attributes
;
input equ 080h ;command line tail buffer
cr equ 0dh ;ASCII carriage return
;
cseg segment byte
assume cs:cseg,ds:cseg
;
org 0100h ;since this will be
; a COM file
;
clear: ;initialize display...
;call BIOS video driver to
mov ah,15 ;get current display mode:
int 10h ;returns AL = mode, and
;AH = no. of columns.
cmp al,7 ;if we are in graphics modes
je clear0 ;(modes 4,5,6) then exit
cmp al,3 ;but if we are in mode 0-3
ja clear9 ;or 7 then continue.
clear0: ;set up size of window to
;be initialized...
xor cx,cx ;set upper left corner of
;window to (X,Y)=(0,0)
mov dh,24 ;set Y to 24 for lower right
mov dl,ah ;corner, and X to the number
dec dl ;of columns returned by BIOS
;minus 1
mov bh,7 ;initialize attribute byte
;to "normal" video display,
;i.e. white on black.
;set SI=address of command
;tail's length byte
mov si,offset input
cld ;clear the Direction Flag
;for "LODS" string instruction.
lodsb ;check length byte to see if
or al,al ;there's any command tail.
jz clear8 ;no,go clear the screen
;with normal video attribute
;
clear1: lodsb ;check the next byte of
;the command tail,
cmp al,cr ;if carriage return
je clear8 ;we are done.
or al,20h ;fold the character to
;lower case.
cmp al,'a' ;make sure it's in range a-z
jb clear1 ;no, skip it
cmp al,'z'
ja clear1 ;no, skip it
cmp al,'i' ;I=Set intensity
jne clear2 ;jump if not I
or bh,08 ;set intensity bit
jmp short clear1
clear2: cmp al,'r' ;R=Reverse
jne clear3 ;jump if not R
and bh,088h ;mask off old foreground/
;background bits and
or bh,070h ;change to reverse video
jmp short clear1
clear3: cmp al,'u' ;U=Underline
jne clear4 ;jump if not U
and bh,088h ;mask off old foreground/
;background bits and
or bh,01h ;change to underline
jmp short clear1
clear4: cmp al,'b' ;B=Blink
jne clear5 ;jump if not B
or bh,080h ;set blink bit
jmp short clear1
clear5: cmp al,'s' ;S=Silent
jne clear1 ;if not S try next char.
mov bh,0 ;if S command, rig for
;silent running. Clear
;the foreground/background
;display control fields, and
;don't bother to look for
;any more command characters.
;
clear8: ;now we have decoded all
;the characters in the
;command tail, and are ready
;to initialize the display.
;BH= desired attribute
;CL,CH=(X,Y),upper left
; corner of window
;DL,DH=(X,Y),lower right
; corner of window
mov ax,0600h ;AH = function type 6,
;AL = lines to scroll (zero)
int 10h ;request initialization
;of window by BIOS
;
mov ah,2 ;now set the cursor to
mov bh,0 ;(X,Y)=(0,0), Page=0
xor dx,dx
int 10h
;
clear9: int 20h ;exit to PC-DOS
;
cseg ends
;
end clear


Subroutine called by a basic program to scroll a window


Programming Language : Assembly Language/TASM/MASM

Program Code :

Code:
Subroutine called by a basic program to scroll a window
;
;
DGROUP GROUP DATASEG
DATASEG SEGMENT PARA PUBLIC 'DATA'
FUNCT DW 0 ;function 1=6,0=7
FG_COLR DW 0 ;forground color
BG_COLR DW 0 ;backround color
LINES DW 0 ;number of lines to scroll or 0 for clear
ULROW DW 0 ;upper left row
ULCOL DW 0 ;upper left column
LRROW DW 0 ;lower right row
LRCOL DW 0 ;lower left column
ATTRIB DB 0 ;temp hold for attribute byte
CALNU DB 0 ;temp hold for call function 6 or 7
DATASEG ENDS
;
CSEG SEGMENT 'CODE'
ASSUME CS:CSEG
PUBLIC CLR
CLR PROC FAR
PUSH BP ;BP unknown (don't care)
MOV BP,SP ;set base for parm list
PUSH DS ;DS -> basic work area
PUSH ES ;ES -> basic work area
MOV AX,DATASEG ;establish data addressability
MOV DS,AX ;now DS -> my data
ASSUME DS:DATASEG
;
;
MOV SI,SS:[BP+6] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV FUNCT,AX
MOV SI,SS:[BP+8] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV BG_COLR,AX
MOV SI,SS:[BP+10] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV FG_COLR,AX
MOV SI,SS:[BP+12] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV LINES,AX
MOV SI,SS:[BP+14] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV ULROW,AX
MOV SI,SS:[BP+16] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV ULCOL,AX
MOV SI,SS:[BP+18] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV LRROW,AX
MOV SI,SS:[BP+20] ;get addr of parameter
MOV AX,ES:[SI] ;get value of parm
MOV LRCOL,AX
;
MOV AX,1
SUB LRROW,AX ;convert 1-80 cols
SUB LRCOL,AX ; and 1-25 rows into
SUB ULROW,AX ; 0-79 cols and
SUB ULCOL,AX ; 0-24 rows
;
; change forground & backround colors into single attribute byte
;
MOV BX,FG_COLR ;move foreground color to bx
MOV AL,BL ;move lower byte to al
MOV BX,BG_COLR ;move backround color to bx
MOV AH,BL ;move lower byte to ah
CMP AL,15 ;check for color > 15 ie blinking
JG BLNK ;if > 15 then set blink bit
AND AL,15 ;set normal fg color
JMP N_BLNK ;
BLNK: OR AL,128 ;set blink bit 7
AND AL,143 ;zero out bit 6,5,4 used for backround
N_BLNK: AND AH,7 ;zero out bit 7,6,5,4,3 used for forground
MOV CL,4 ;4 bit shift count
SHL AH,CL ;shift right 3 bits to pos 6,5,4
OR AL,AH ;combine for & back to form attribute byte
MOV ATTRIB,AL ;move it to STORAGE

;
; convert 1 and 0 to 6 and 7 for routine call
;
MOV BX,FUNCT ;move function into bx
CMP BL,0 ;compare to one
JG F6 ;if 1 then function is 6
MOV AH,7H ;set function 7
JMP OUT1 ;jump around
F6: MOV AH,6H ;set function 6
OUT1: MOV CALNU,AH ;move it to storage
;
;
; set up for bios rom call 10 function 6 (scroll up )
;
PUSH BX
MOV BX,LINES ;set # of lines to scroll or 0 to clear
MOV AL,BL ;put in pass register
MOV BX,ULROW ;set upper left row of block 0-24
MOV CH,BL ;put in pass register
MOV BX,ULCOL ;set upper left column of block 0-79
MOV CL,BL ;put in pass register
MOV BX,LRROW ;set lower right row of block 0-24
MOV DH,BL ;put in pass register
MOV BX,LRCOL ;set lower right column of block 0-79
MOV DL,BL ;put in pass register
MOV BL,CALNU ;set call number 6 to scroll up 7 down
MOV AH,BL ;put in pass register
MOV BL,ATTRIB ;set color attribute byte
MOV BH,BL ;put in pass register
INT 10H ; make bios call
POP BX
;
FINISH: POP ES
POP DS
POP BP
RET 16 ;return to basic
CLR ENDP
CSEG ENDS
END

HCL MiLeap MH04 Netbook

with newer Netbooks. These Netbooks predominantly had larger screens and Intel's Atom processor along with evolutionary hardware upgrades.
Thus it was time for HCL to keep up with the current generation. When their latest MiLeap MH04 model arrived at the Test labs, I had this weird sense of deja vu. I was pretty sure I had used a Netbook that was unmistakably similar to this one. And I was right! Read on to find out.
The bundle includes the Netbook, AC charger, instruction manual, Windows XP Home Edition CD, driver and application CD/DVDs and a protective cloth for the screen.
It was good to see the Windows CD along with the package, as most Netbooks I've seen till now have it simply pre-installed. This would prove to be useful should a need arise to install it at a later time.

Specifications Sheet
Image
Design and Construction
So, as I was said earlier, the physical appearance of the MiLeap MH04 was similar to a Netbook I had reviewed some time back. Here's a clue; it was, at that time, one of the best Netbooks around. Can't guess? Check out the comparative pic below.
Image
Yes my friends, the HCL MH04 is a repackaged MSI Wind. I'll just quickly reiterate the physical aspects of this device and point out some of the differences between the two. Looks wise, it isn't really a stunner but its appearance is rather decent in the black outfit. Since this model is fitted with a 3-cell battery (the Wind had a 6-cell), it feels pretty light for a 10-inch Netbook; definitely lighter than the 1.5 kg Eee PC 1000H. I had complained about the MSI Wind's lack of sturdiness.

After handling the HCL MiLeap MH04, I felt that the build quality had been slightly upped. But the screen hinge still needs a bit of reinforcement. The 10-inch screen offers good clarity, readability and is sufficiently bright as well. The webcam placed atop the screen delivers decent output in brightly lit environments but becomes pretty grainy under moderate lighting.
Image
The keyboard is pretty comfortable to type on, just like the MSI Wind. The touchpad also offers decent sensitivity and accuracy. The left/right click buttons were a little hard to click. But the big downer for me was that it did not support scrolling by swiping the finger at the corner of the touchpad. Despite my repeated attempts to get it working, it simply didn't happen.

I called their helpline to ask for a solution and was told that the MH04 does not support side scrolling. This is weird since the MSI Wind supported horizontal as well as vertical scrolling. Now that almost all the laptops available today support this feature, it was pretty irritating to get back to using the scrollbar or use the page up, page down buttons.
Image
Battery Life



Test 1: In this test, the screen brightness is set to 75 percent. Wi-fi and Bluetooth are switched off. Music is played via wired earphones. This is multitasked with reading a webpage offline and using a word processor. Here, I got just a little over 2 hours of battery life.

Test 2: Using the Battery Pro 05 application (which puts intensive work on the system resources) and with screen brightness turned to max, the machine belted out a run-time of around 1 hour and 40 minutes.

Under power saving mode and performing just basic functions like word processing, the maximum time that this Netbook can stretch up to is 2.5 hours. But heavy usage like watching videos or using Wi-fi extensively is going to hamper this run-time drastically.

Overall, I can say that the battery life was just about average. Netbooks are meant to give the user a longer uptime since they are meant to be carried around all the time. Thus a 2.5-plus hour battery life is pretty much expected from each one of them.

The Netbook ran pretty coolly. Operating noise and vibrations were barely noticeable.

Conclusion

The HCL MiLeap 04 sells for Rs. 25,990, which is cheaper than the Rs. 27,500 tag that we discovered on the MSI Wind recently (check last para of the MSI Wind review). We checked whether they have a 6-cell option but found that they don't.

This will prove to be a bummer for people who want a 4+ hour battery life from their Netbook. Comparatively speaking, the Eee PC 1000H's price has dropped to 25,500 bucks. At that price, with the kind of features the Eee has to offer, I have chosen to give the 'My favorite Netbook' crown to the Eee PC 1000H.

Although I prefer the Eee PC 1000H, I can say that the HCL MiLeap MH04 Netbook is a decent alternative. It can cater to people who want to do basic tasks like internet browsing, media playback and office productivity. But people who want a complete road warrior Netbook (i.e. with respect to build quality and battery life) would rather want to go for the Eee PC 1000H instead.

ATI Radeon HD 4550

ATI seem to be on a roll here, after witnessing the brutal match between the HD4670 and the 9500GT, the entry level segment was still untouched.
Till now we had the GeForce 9400GT, which was the only option for HTPC junkies and casual gamers, and naturally ATI could not resist but to cause some chaos. ATI then introduced the Radeon HD4550, its answer to the GeForce 9400GT.
This is a super low-budget card that will solely appeal to those looking to build a cheap but powerful HTPC or want a cheap fan-less solution below 5K.

Specification
Image
Let's dissect the specifications and compare it to the 9400GT. To start off, the HD4550 comes with 80 stream processors compared to the 16 on the 9400GT. The other main difference is the memory; while the 9400GT uses 512MB of DDR2 memory, ATI uses 512MB of GDDR3, which straight away provides more bandwidth. The best part about this card is that it is supposed to consume just 20W on full load, which is really impressive (9400GT consumes 50W on load).
From the specifications itself, you can get a rough idea that this little fellow is shaping up to be quite a beast for an entry level card.

The Card
Image
This card is a pre-evaluation sample and it's not the final retail piece so you could expect the design to change a bit.
The card is the same size as the HD4670 and instead of a copper heatsink, it sports black aluminum heat sink that spans across almost the entire PCB. There's nothing much on the front except a few capacitors.
Image
The front panel is really interesting, we have a single DVI- I port, an HDMI port and a DisplayPort connector. Now this is a complete set of connectors and very much future proof once DisplayPort becomes more common. Again this is just a sample board so when it actually hits the streets, manufacturers may choose different ports, so we can't say for sure if this will be standard.
Image
The back of the card is a little different with a small piece of the PCB missing; the heat sink covers that area to keep the shape of the card. Don't know what kind of a design choice is this, but it does stand out.
With the heat sink off, we can see the full layout of the RAM modules.
Image
That's the RV710 die that powers the card. It uses the same 55nm fabrication process and packs in 242 million transistors.

Testbench
CPU: Intel Core 2 Extreme X9770 @ 3.2 GHz (Yorkfield)
Motherboard: Gigabyte GA-EX38-DS3 RAM 2 x 1GB DDR2 1066 MHz (5-5-5-15)
HDD: Hitachi 250 GB SATA II (7200 rpm)
PSU: CoolerMaster 1000W PSU
Monitor: Viewsonic G90fB Monitor (19-inch, Max Res. 1920 x 1440)
Optical Drive: ASUS Blu-Ray Drive
OS: Windows Vista Ultimate
VGA Driver: CCC 8.9 (Graphics Driver v5.3)

Image
Image
HD Playback
Since this card is going to be used mostly by HTPC users, I decided
to test how much it really offloads the work from the CPU. Normally
when you play a HD movie with a 720p or 1080p resolution, the CPU has to do most of the work in decoding the movie in real time so that you get a smooth playback.
Now the CPU does not have any problems decoding a 720p movie (actual resolution would be around 1280x720) but when it comes to a full HD movie (1920 x 1080), there is a tremendous strain on the processor not only because of the high resolution but also the high bit rate video that has to be decoded.
This is where programs like PowerDVD and Nero Showtime support hardware acceleration come in. So instead of the processor doing the work, it's now handled by the graphics card, which does it more efficiently.
For this test I used Pirates of the Caribbean: At Worlds End 1080p
Blu-Ray to stress the card. This will give you a fair idea of whether these cards can handle full HD content. To measure the CPU usage, I used Windows Performance Monitor (just type 'perfmon' in run) to measure CPU utilization.
For the scene, I've chosen the final battle when the Black Pearl and the Flying Dutchman team up and blow Lord Beckett's ship to smithereens and logged it for 2 minutes. This scene has some really intense fireworks and close up shots of some of the characters, which will help us judge the video quality.
Image
With the HD4550 handling the job, the CPU usage is down to just
8.5%, which is what you get when using some small application like paint or a browser. The Nvidia 9400GT gives us slightly higher usage at 13.2% which is still good. Now when we play the same scene in some other player, the CPU usage shoots up to 40% and this is a Quad Core Extreme CPU so think about the ones you'll be using on your HTPC, there is no way it will be able to do it smooth enough.

HD HQV Benchmark
To test the video quality playback I've used HD HQV benchmark by SiliconOptix which is a powerful image quality testing tool that tests the strength of the Display as well as the video Processor. There are a couple of tests, each of which focuses on different aspects of picture quality.
HD Noise Reduction
Here we test for the amount of noise visible in the picture and is purely subjective. This is measured on a scale of 0-25 where 25 is the best picture without loss of detail.

Video Resolution Loss Test

Here we look for the Horizontal lines in the corner boxes. Score is either 0 or 25.

Jaggies Test
The three bars are constantly moving up and down and we have to observe the edges to make sure they are smooth at all times.
Film Resolution Loss Test
Once again we make sure that the horizontal lines are visible in the corner boxes while the screen moves from left to right.
Let's see how our two contenders fare;
Image
In the first test there was a very noticeable 'shivering' see with the corner boxes while the ATI card was able to render it properly. In the HD Noise test, there was quite a lot of noise noticeable when using the 9400GT even though the picture was quite sharp. In the other tests both the cards give same results.
Conclusion
The tentative pricing according to ATI for the HD4550 is around 3.5K-4K and the warranty will depend on the manufacturer (we can assume the standard 3-year warranty). If Palit, ASUS, MSI and the other AIB partners actually do price it at that level then this card is going to be a runaway success. On the temperature front, even under maximum load the card recorded a maximum temperature of just 55 degrees Celsius.

It is slightly better when it comes to gaming compared to the 9400GT and even in our HD playback and quality tests it comes ahead of Nvidia's offering. Couple that with the minimalist power consumption (just 20W) on full load, low operating temperatures and you've got yourself one kick-ass HTPC card.

HP OfficeJet J6488 All-in-One

HP printers and MFDs have successfully stood the test of time and today cover all usage segments from home to large enterprises. Their office-class of printers and MFDs are identifiable by the prefix "OfficeJet" and are known to be very sturdy.
We have in our test labs today, the HP OfficeJet J6488 All-in-One MFD, which is oriented towards small and medial enterprise as well as SOHO users. With all the features that are required of an office MFD, including a duplexer unit and standalone Fax, let us see how well this color inkjet MFD performs when put through our standard test process.

Image
In the box
Image
HP OfficeJet J6488 All-in-One
Black cartridge and tri-color cartridge
Duplex printing unit
ADF tray
Power adapter with cable
USB data cable
Software and drives disc
This printer came in a securely packaged with all the necessary steps taken to render all moving parts immovable, as this makes it less prone to damage while being transported. The removable parts are packaged separately inside the box. As is traditional with HP, the printer came with every bit of accessory that is required and a good manual.

Specifications:-
Image
Image
Software
HP Photosmart Essential
Image
HP has provided a HP Solution Center, which is like a central access point of sorts to monitor and control the printer settings as well as to let you access HP Photosmart Essential - an online image management software.
Readisis Pro
Image
It comes bundled with Readiris Pro for Windows as well as Mac and is a well-known and premium OCR software. You can convert your hardcopies to softcopies within seconds.
Drivers
Image
Printer drivers for Windows as well as Mac are provided with this MFD. The printer drivers support the HP PCL and HP postscript level 3 emulation to easily handle even the most demanding jobs.

The printer driver interface is good and lets you specify many details such as the paper type and size, job type (duplex or not), orientation, quality, etc. You can even apply effects like Red Eye reduction to photographs before they are printed.

Performance
We are tired of complaining, but we must still inform the reader that it takes a very long time to get the HP drivers installed. We chose to install everything that was on the disc and it took us around 40 minutes to get it done.

At some point of time, we even thought that the installation had stalled. This is a one-time process, and once you install the drivers, you will not have to go through this ordeal again unless you need to reinstall it. This MFD enters the ready state very quickly.

We put the MFD through a variety of tests to test its printer as well as scanner components.

Font size printing test: We printed a page containing all the letters in font sizes ranging from large to very small. The print quality at all font sizes was found to be sharp.

Text print speed: We printed a page of black text in draft and normal quality to find the speed as well as quality of the print. The first page took 15.2 seconds in draft mode and 20.5 seconds in normal, which is quite fast. The first minute printing speed in the draft mode is 10 ppm, and it later reaches a maximum of 12, which is not bad. In the normal mode, the ppm in the first minute was found to be 4.9 and reaches 5.8 later, which is again not bad when compared to most other printers.
The document we used as our Presentation Document
Presentation document speed: This consisted of a page of multi-colored graphs, text, charts, patterns, and photos. The first print took just 19.8 seconds in draft mode, while it took 45.7 seconds at normal quality. The printing speed in the draft mode was 6 ppm in the first minute and it reached 7.5 thereafter. In the normal mode, these were 1 and 2 ppm respectively.

These speeds are slower than the average inkjet printer.
A point to mention about the text and presentation document printing is that the quality of printing in the draft mode is quite good, and the lowest font size is easily readable. This quality becomes excellent when you print in the normal mode.
Image
The test photo we printed
Photo print: The A4-size photo took 3 minutes 34 seconds to print, which is an average speed. HP doesn't classify this as a photo printer, but the results are a lot closer to a photo printer. The image quality is excellent barring a few spots where there is some amount of graininess and even that is hardly visible at a glance. Fine details and color reproduction is brilliant as well making this viable enough to print photos.
The scanner test: The scanner performance was found to be good. It captures all the fine details and color very well. The preview scan took just 9.1 seconds for the first page and it took 8.5 seconds thereafter. Monochrome scan of an A4 page at 200 dpi took 21 seconds, while a color scan at 600 dpi took 2 minutes 11 seconds, making it faster than many other MFDs in the color scanning, while slower in the mono scanning.

The copier test: The copier test tries to find how well the printer and scanner components work in tandem. Black copies took 21.5 seconds for the first copy, while the PPM reached 5.4. For color copying, it took 41.3 seconds for the first copy and the maximum PPM was 1.8. This is therefore slower than other copiers. The copy quality is amazing and you can even read the finest print in the copy, something we have never seen happen before.

Paper handling is excellent with the printer as well as the ADF and we did not experience any paper jam during the test. The same holds true even during duplex printing, so full marks for that one.

Our Verdict
The HP OfficeJet J6488 All-in-One is very capable of taking care of all your office needs, both as a connected as well as a stand-alone device. Its print quality is amongst the best we have seen and this is true even when you opt to print in the draft mode.

The same is true of the copy as well as scanner. Features like ADF and duplex printing make it more productive and good for any office. The Wi-Fi 802.11b/g connectivity feature makes it ideal for today's wire-free office. The one and only gripe about this MFD is that it is noticeably slow in the normal mode but is average in the draft mode.

This MFD has a monthly print duty cycle of 5000, which means that it capable of printing at least 5000 sheets a month without breaking down. It consumes a maximum of 40W and will therefore not be the reason for high electricity bills.

There are two cartridge options available for this MFD - high volume and low volume for both black as well as color. The low volume black cartridge is priced at Rs.770 and can print 200 prints, with a cost per print of Rs.3.85, while high volume black cartridge will cost you Rs.1,511 and can print 750 pages, costing an economical Rs.2.01 per print.

The low volume color cartridge is priced at Rs.886 and can print 170 prints, while the high volume is priced at Rs.1676 and is capable of printing 520.

The HP OfficeJet J6488 All-in-One is priced at an MRP of Rs.13,399 (excluding taxes), which is reasonable for an office printer with all the necessary features and comes with a one-year on-site warranty.

It is also covered by HP's Dial-a-Cartridge service, which lets you have a cartridge delivered to your doorstep and backed by a large network of HP support throughout India. If you are a SMB or SOHO, then this printer does earn our recommendations for the sheer features and quality that it packs.

Microsoft And The Fight Against "Scareware"

Image
"Your PC is vulnerable to attack!"
"300 critical errors found! Click here to clean!"
If you've never seen these messages before, you've either never tried security shareware or you don't run Windows. What normally happens when a program shows you such (admittedly daunting) messages is that it tells you something like "This version only shows you the errors. Please buy the full version to clean," or something to that effect. If you scoff at the thought of purchasing software, you probably waste a lot of time searching for a cracked version. If you go the legal way, you could end up spending around $50 (Rs. 2,400) to secure your PC. In either case, however, you lose--most of these programs are spewing absolute tosh, and may even be trojans in disguise.
Dubbed "scareware" (for obvious reasons), such software has become a menace, and for all practical purposes, is right up there with the best of scams. Its hapless victims, however, needn't fret any more--they find a new rescuer in good ol' Microsoft. The software giant is suing the pants off Texas-based Branch Software and its owner, James McCreary. The company is the developer of Registry Cleaner XP (note how useful that sounds), which tells you that your PC is seriously corrupted, and you must cough up $39.95 to rescue it. Once you buy and run the software, it tells you that 43 critical errors have been fixed. Sounds legit so far, yes? Turns out that these "43 errors" are on every Windows machine, whether your install is an hour or a year old.
Normally, when we see the Big M pulling a philanthropic move, we are wont to probe further and see if there's a catch somewhere. However, when we couple this with Steve Ballmer cursing pre-installed crapware for slowing down Windows, we decide not to look this gift-horse in the mouth. If Microsoft wants to rid the world of crapware and scareware, more power to them.

Ipod/Mp3 Players

Image
i.Tech brings us the BlueCon 35 II, an apparent improvement over the previous BlueCon 35. This Bluetooth adaptor fits into any 3.5mm
audio jack and transmits the sound over Bluetooth.
We've seen Bluetooth adaptors before, but they've all been of the USB variety or the ones with custom ports for devices like an iPod. Let's see if we can find a use for this dongle.
Bundle
BlueCon 35 II
AC Charger
Manual

Specifications
Image
Design and features
Image
The BlueCon 35 II is simply designed with just a short plug coming out of the dongle. With dimensions of 63x23x12mm, it's not the smallest dongle, though at 13.5gm its weight is not really noticeable either.
On the front is the status LED. Towards the left side are the power jack and an on/off button. The hard plastic body seems sturdy and resistant to scratches.

Image
Performance

This device only supports Bluetooth 1.2 class 2, so its range is limited to 10 meters and you will hear crackling and dropped audio when close to that limit. An unfortunate thing about this is that there's a slight delay between the audio sent from the computer and the Bluetooth headset receiving it.
The delay is in the sub second range. While watching a video, the loss of synchronization between the two is noticeable and slightly disorienting. However, the BlueCon would be suitable in making your conventional headsets into Bluetooth ones, but only if you have an iTech headset to use with them.


Conclusion
The default passkey of the device is 8888, due to which many devices on which you can't enter a code cannot be paired with this.
The device was also undetectable on a number of phones tested, including two Sony Ericsson and a Nokia; it wasn't seen by a laptop with Bluetooth either.
It seems the device is made exclusively for i.Tech products that are made for stereo listening. Mono i.Tech products like the i.Voice Pro were also unable to pair due to the differing pass codes.
The BlueCon 35 II works well for its intended purpose which is streaming audio from an audio jack over Bluetooth to another iTech stereo headset.
This can be pretty useful if you're listening to music off your computer and don't want to be tethered to your PC, the slight delay in the signal won't make a difference there.
It's slightly annoying to use with digital media players since it cannot respond to commands from a headset and looks pretty odd hanging from it.
However, the battery life on it is much better than the previously reviewed BlueCon G5 and that in itself is an advantage. It's a decent product if you already have or are planning to buy an i.Tech stereo Bluetooth headset but if you expect this to be a generic Bluetooth adaptor you would be disappointed.