ok. I used a bas to asm converter to convert this program:
COLOR 5, 1
LOCATE 3, 3
PRINT "Hello"
Then i used the converter and got this. It is lengthy and confusing, but it works. Why wont the other work?
; ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
;ÚÄÄÄÄÄÄÄ´ ASM Source created with BASM v3.0 (c) 1995 Kevin T. Diggins ÃÄÄÄÄÄÄ¿
;³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ ³
;³ File Name: C:\ASSEMBLY\BASTOA~1\N.ASM ³
;³ Creation Date: 06-14-2002 ³
;³ Creation Time: 14:59:54 ³
;ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
.286p
MaxString Equ 81
Code Segment Byte Public
Code Ends
Data Segment Word Public
Data Ends
Stak Segment Word Stack
DW 128 DUP (?)
Stak Ends
Dummy Segment Para Public
Dummy Ends
Code Segment
Assume CS:Code,DS

ata,ES:Nothing,SS:Stak
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; Release Unused Memory
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Mov BX,Seg Data
Mov DS,BX ;Set data segment
Mov BX,Seg Dummy ;End of pgm
Mov AX,CS ;Start of pgm
Sub BX,AX ;Calc pgm size
Add BX,16 ;Paragraphs in Stack + 1
Mov AH,4AH ;Shrink mem
Int 21h ;Thru Dos
Push DS
Pop AX
Mov ES,AX ;Set ES to DS
Mov DefSeg,AX ;Set DefSeg to DS
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Call GetCursor
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
; ;Translation begins
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;
;color 5 1
;
Mov FgColor,5
Mov BgColor,1
Call SetAttribute
;
;locate 3 3
;
Mov $Ycur,3
Mov $Xcur,3
;
;Print "Hello"
;
Mov SI,Offset $tring_01
Call PrintStr
Call SetCursor
Call DoCrLf
ExitToDos:
Mov AH,4Ch
Xor AL,AL
Int 21h
GetCursor Proc Near
Mov AH,3
Xor BH,BH
Int 10h
Xor AX,AX
Mov AL,DL
Inc AL
Mov $Xcur,AX
Mov AL,DH
Inc AL
Mov $Ycur,AX
Ret
GetCursor Endp
SetCursor Proc Near
Mov AX,$Xcur
Mov DL,AL
Dec DL
Mov AX,$Ycur
Mov DH,AL
Dec DH
Mov AH,2
Int 10h
Ret
SetCursor Endp
Len Proc Near
Push CX
Push SI
Push DI
Mov DI,SI
Xor AL,AL
Mov CX,0ffffh
Cld
Repnz Scasb
Not CX
Dec CX
Mov AX,CX
Pop DI
Pop SI
Pop CX
Ret
Len Endp
SetAttribute Proc Near
Push CX
Mov AX,BgColor
Mov BX,FgColor
Shl AX,4
Add AX,BX
Xor Ah,Ah
Cmp AX,128
Jl SkipXor
Xor AX,128
SkipXor:
Mov $Attr,AX
Pop CX
Ret
SetAttribute Endp
PrintStr Proc Near
Call Len
Push AX
Mov CX,AX
Cmp CX,0
Jle PS_3
Mov BX,$Attr
Mov AX,$Ycur
Mov DI,$Xcur
Push DS
Push ES
Dec AX
Dec DI
Cmp DI,0
Jg PS_1
Xor DI,DI
PS_1:
Mov DX,80
Mul DX
Add DI,AX
Shl DI,1
Mov AX,0B000H
Mov ES,AX
Mov AH,0FH
Int 10H
Cmp AL,07H
Je PS_2
Mov AX,0B800H
Mov ES,AX
PS_2:
Cld
Movsb
Mov ES:[DI],BL
Inc DI
Loop PS_2
Pop ES
Pop DS
PS_3:
Pop AX
Add $Xcur,AX
Ret
PrintStr Endp
DoCrLf Proc Near
Mov $Xcur,1
Inc $Ycur
Cmp $Ycur,26
Jne CrLf_1
Dec $Ycur
CrLf_1:
Mov DX,Offset $CrLf
Mov AH,9
Int 21h
Mov BX,$Xcur
Mov DL,BL
Dec DL
Mov BX,$Ycur
Mov DH,BL
Dec DH
Xor BX,BX
Mov AH,2
Int 10h
Ret
DoCrLf Endp
ShowHideCursor Proc Near
Cmp AX,0
Je Sh1
Mov CL,13
Mov CH,12
Mov AH,01
Int 10h
Jmp Sh2
Sh1:
Xor CL,CL
Mov CH,1
Mov AH,1
Int 10h
Sh2:
Ret
ShowHideCursor Endp
Code Ends
Data Segment
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ System Initialized Data ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
$Xcur DW 1
$Ycur DW 1
$Attr DW 7
$CrLf DB 13,10,'$'
FgColor DW 7
BgColor DW 0
Err DW 0
DefSeg DW 0
$Var0 DW 0
$Var1 DW 0
$Var2 DW 0
$Var3 DW 0
$Var4 DW 0
$Var5 DW 0
$Var6 DW 0
$Var7 DW 0
$Var8 DW 0
$Var9 DW 0
$Var10 DW 0
$Var11 DW 0
$Var12 DW 0
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Users Initialized Data ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
$tring_01 DB "Hello",0
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ System Un-Initialized Data ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Users Un-Initialized Data ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
;ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Data Ends
End