Index: Include/basic/function.sbp
===================================================================
--- Include/basic/function.sbp	(revision 127)
+++ Include/basic/function.sbp	(revision 132)
@@ -1137,3 +1137,24 @@
 End Function
 
+Function _System_StrCmp(s1 As PCSTR, s2 As PCSTR) As Long
+	Dim i = 0 As SIZE_T
+	While s1[i] = s2[i]
+		If s1[i] = 0 Then
+			Exit While
+		End If
+		i++
+	Wend
+	_System_StrCmp = s1[i] - s2[i]
+End Function
+
+Function _System_StrCmp(s1 As PCWSTR, s2 As PCWSTR) As Long
+	Dim i = 0 As SIZE_T
+	While s1[i] = s2[i]
+		If s1[i] = 0 Then
+			Exit While
+		End If
+		i++
+	Wend
+	_System_StrCmp = s1[i] - s2[i]
+End Function
 #endif '_INC_FUNCTION
Index: Include/basic/prompt.sbp
===================================================================
--- Include/basic/prompt.sbp	(revision 127)
+++ Include/basic/prompt.sbp	(revision 132)
@@ -136,5 +136,5 @@
 				.y++
 			Else
-				Dim currentLineCharInfo = _PromptSys_TextLine[.y].CharInfo As *_PromptSys_CharacterInformation
+				Dim currentLineCharInfo = _PromptSys_TextLine[.y].CharInfo
 				_PromptSys_TextLine[.y].Text[.x] = buf[i2]
 				currentLineCharInfo[.x].ForeColor = _PromptSys_NowTextColor
@@ -262,5 +262,7 @@
 
 		CreateCaret(hwnd, 0, 9, 6)
-		SetCaretPos(_PromptSys_CurPos.x * _PromptSys_FontSize.cx, (_PromptSys_CurPos.y + 1) * _PromptSys_FontSize.cy - 7)
+		With _PromptSys_CurPos
+			SetCaretPos(_PromptSys_TextLine[.y].CharInfo[.x].StartPos, (.y + 1) * _PromptSys_FontSize.cy - 7)
+		End With
 		ShowCaret(hwnd)
 	End If
@@ -353,5 +355,5 @@
 
 		memcpy(VarPtr(_PromptSys_InputStr[_PromptSys_InputLen]), str, size)
-		_PromptSys_InputLen += size
+		_PromptSys_InputLen += size \ SizeOf (Char)
 
 		Dim tempStr As String(str, size \ SizeOf (Char))
