hughes@math.Berkeley.EDU (eric hughes) (02/26/89)
In using the recently posted sendcode program, I ran across a bug. DOS function 2, which is used for output, is a "partially cooked" mode. In particular, it expands tabs to spaces (ick). DOS function 6 does not do anything to the output, but can't output character 255. This is all fixed in the diff file below. Eric Hughes hughes@math.berkeley.edu ucbvax!math!hughes =================== 32 32 |; This MASM version adds comments, jump labels, and a check for DOS 33 33 |; versions earlier than 2.0. + 34 |; + 35 |; February 25, 1989 Eric Hughes, Oakland, CA + 36 |; DOS function 2 modifies several characters, notably 09 = <tab>, + 37 |; which is expanded to spaces. + 38 |; DOS function 6 does not modify characters, but cannot output + 39 |; character 255. A test is made and the appropriate output + 40 |; service is chosen. 34 41 |; 35 42 |; Motivation for using this program: =================== 95 102 | cmp CL, 0 96 103 | jne setCL ; get lower nibble if CL == 4 + 104 | + 105 |; Assert: Character to be output is in DL + 106 |; Output it by function 6 unless it is 255, then by function 2 + 107 | cmp DL, 0FFh + 108 | mov AH, 06h + 109 | jne output + 110 | 97 111 | mov AH, 02h + 112 |output: int 21h ;INT 21h service 02h: Output Character to STDOUT - 98 | int 21h ;INT 21h service 02h: Output Character to STDOUT 99 113 | ; character byte is in DL, output to device if 100 114 | ; output has been redirected (Version 2.0+) =================== --