Index: /Include/basic/command.sbp
===================================================================
--- /Include/basic/command.sbp	(revision 109)
+++ /Include/basic/command.sbp	(revision 110)
@@ -149,5 +149,5 @@
 	Dim i As Long ,i2 As Long, i3 As Long
 	Dim buffer As String
-	Dim temp[1] As Byte
+	Dim temp[1] As Char
 	Dim dwAccessBytes As DWord
 	Dim IsStr As Long
@@ -251,5 +251,5 @@
 Function _System_GetUsingFormat(UsingStr As String) As String
 	Dim i2 As Long, i3 As Long, i4 As Long, i5 As Long, ParmNum As Long
-	Dim temporary[255] As Byte
+	Dim temporary[255] As Char
 	Dim buffer As String
 
@@ -271,5 +271,5 @@
 		If UsingStr[i2]=Asc("#") Then
 			Dim dec As Long, sign As Long
-			Dim temp2 As BytePtr
+			Dim temp2 As *Char
 
 			Dim length_num As Long, length_buf As Long
Index: /Include/basic/dos_console.sbp
===================================================================
--- /Include/basic/dos_console.sbp	(revision 109)
+++ /Include/basic/dos_console.sbp	(revision 110)
@@ -10,6 +10,6 @@
 
 Dim _System_hConsoleOut As HANDLE, _System_hConsoleIn As HANDLE
-_System_hConsoleOut=GetStdHandle(STD_OUTPUT_HANDLE)
-_System_hConsoleIn=GetStdHandle(STD_INPUT_HANDLE)
+_System_hConsoleOut = GetStdHandle(STD_OUTPUT_HANDLE)
+_System_hConsoleIn = GetStdHandle(STD_INPUT_HANDLE)
 
 '---------- command.sbp内で定義済み ----------
@@ -18,5 +18,5 @@
 '---------------------------------------------
 Sub INPUT_FromPrompt(ShowStr As String)
-	Dim i As Long ,i2 As Long, i3 As Long
+	Dim i As Long, i2 As Long, i3 As Long
 	Dim buf As String
 	Dim InputStr[1023] As Byte
@@ -28,6 +28,8 @@
 
 	'入力
-	ReadFile(_System_hConsoleIn,InputStr,1024,VarPtr(dwAccessBytes),ByVal 0)
-	InputStr[dwAccessBytes-2]=0
+	ReadConsole(_System_hConsoleIn, InputStr, Len(InputStr), dwAccessBytes, 0)
+	If InputStr[dwAccessBytes-2] = &h0d And InputStr[dwAccessBytes-1] = &h0a Then
+		InputStr[dwAccessBytes-2] = 0
+	End If
 
 	'データを変数に格納
@@ -35,6 +37,6 @@
 	i2=0
 	buf.ReSize(lstrlen(InputStr) + 1, 0)
-	Dim comma As Byte
-	comma = Asc(",")
+	Dim comma As Char
+	comma = &h2c 'Asc(",")
 	While 1
 		i3=0
@@ -73,5 +75,5 @@
 
 		i++
-		If _System_InputDataPtr[i]=0 and InputStr[i2]=comma Then
+		If _System_InputDataPtr[i]=0 And InputStr[i2]=comma Then
 			PRINT_ToPrompt("入力データの個数が多すぎます"+Chr$(10))
 			Goto *InputReStart
@@ -90,10 +92,10 @@
 
 Macro LOCATE(x As Long, y As Long)
-	SetConsoleCursorPosition(_System_hConsoleOut, MAKELONG(x ,y))
+	SetConsoleCursorPosition(_System_hConsoleOut, MAKELONG(x, y))
 End Macro
 
 Sub PRINT_ToPrompt(buf As String)
 	Dim dwAccessBytes As DWord
-	WriteFile(_System_hConsoleOut, buf.Chars, buf.Length, VarPtr(dwAccessBytes), ByVal 0)
+	WriteConsole(_System_hConsoleOut, buf.Chars, buf.Length, dwAccessBytes, 0)
 End Sub
 
Index: /Include/basic/function.sbp
===================================================================
--- /Include/basic/function.sbp	(revision 109)
+++ /Include/basic/function.sbp	(revision 110)
@@ -344,9 +344,9 @@
 '------------
 
-Function Asc(buf As String) As Byte
+Function Asc(buf As String) As Char
 	Asc = buf[0]
 End Function
 
-Function Chr$(code As Byte) As String
+Function Chr$(code As Char) As String
 	Chr$=ZeroString(1)
 	Chr$[0]=code
@@ -497,5 +497,5 @@
 End Function
 
-Dim _System_ecvt_buffer[16] As Byte
+Dim _System_ecvt_buffer[16] As Char
 Sub _ecvt_support(count As Long)
 	Dim i As Long
@@ -511,5 +511,5 @@
 		End If
 	Else
-		_System_ecvt_buffer[count]=_System_ecvt_buffer[count]+1 As Byte
+		_System_ecvt_buffer[count]=_System_ecvt_buffer[count]+1 As Char
 	End If
 End Sub
@@ -549,5 +549,5 @@
 
 	For i=0 To count-1
-		_System_ecvt_buffer[i]=Int(value) As Byte
+		_System_ecvt_buffer[i]=Int(value) As Char
 
 		value=(value-CDbl(Int(value)))*10
@@ -578,5 +578,5 @@
 	End If
 	Dim dec As Long, sign As Long
-	Dim buffer[32] As Byte, temp As BytePtr
+	Dim buffer[32] As Char, temp As *Char
 	Dim i As Long, i2 As Long, i3 As Long
 
@@ -664,5 +664,5 @@
 End Function
 Function Str$(value As LONG_PTR) As String
-	Dim temp[255] As Byte
+	Dim temp[255] As Char
 	wsprintf(temp,"%d",value)
 	Str$=MakeStr(temp)
@@ -739,5 +739,5 @@
 				If Not (0<=i3 And i3<=7) Then Exit While
 
-				TempPtr[i]=i3 As Byte
+				TempPtr[i]=i3 As Char
 				i++
 			Wend
@@ -762,5 +762,5 @@
 				End If
 
-				TempPtr[i]=i3 As Byte
+				TempPtr[i]=i3 As Char
 				i++
 			Wend
@@ -918,5 +918,5 @@
 Sub _splitpath(path As BytePtr, drive As BytePtr, dir As BytePtr, fname As BytePtr, ext As BytePtr)
 	Dim i As Long, i2 As Long, i3 As Long, length As Long
-	Dim buffer[MAX_PATH] As Byte
+	Dim buffer[MAX_PATH] As Char
 
 	'":\"をチェック
@@ -934,4 +934,7 @@
 	i2=0
 	Do
+#ifdef UNICODE
+' ToDo: サロゲートペアの認識
+#else
 		If IsDBCSLeadByte(path[i])=TRUE and path[i+1]<>0 Then
 			If dir Then
@@ -944,4 +947,5 @@
 			Continue
 		End If
+#endif
 
 		If path[i]=0 Then Exit Do
Index: /Include/basic/prompt.sbp
===================================================================
--- /Include/basic/prompt.sbp	(revision 109)
+++ /Include/basic/prompt.sbp	(revision 110)
@@ -16,9 +16,9 @@
 Dim _PromptSys_hFont As HFONT
 Dim _PromptSys_FontSize As SIZE
-Dim _PromptSys_InputStr[255] As Byte
+Dim _PromptSys_InputStr[255] As Char
 Dim _PromptSys_InputLen As Long
 Dim _PromptSys_KeyChar As Byte
 Dim _PromptSys_CurPos As POINTAPI
-Dim _PromptSys_Buffer[100] As BytePtr
+Dim _PromptSys_Buffer[100] As *Char
 Dim _PromptSys_TextColor[100] As DWordPtr
 Dim _PromptSys_BackColor[100] As DWordPtr
@@ -53,5 +53,5 @@
 	Dim hOldFont As HFONT
 	Dim sz As SIZE
-	Dim temporary[2] As Byte
+	Dim temporary[2] As Char
 
 	hOldFont=SelectObject(hDC,_PromptSys_hFont)
@@ -258,5 +258,5 @@
 				Else
 					_PromptSys_InputStr[_PromptSys_InputLen]=wParam As Byte
-					_PromptSys_InputLen=_PromptSys_InputLen+1
+					_PromptSys_InputLen++
 
 					temporary[0]=wParam As Byte
