- //ENTER("pNode XOffset XLength pBuffer", Node, Offset, Length, Buffer);
- //LEAVE('i', 0);
+ int pos = 0;
+ tVTerm *term = &gVT_Terminals[ Node->Inode ];
+
+ // Check current mode
+ switch(term->Mode)
+ {
+ case VT_MODE_TEXT8:
+ while(pos < Length)
+ {
+ while(term->InputRead == term->InputWrite) Proc_Yield();
+ while(term->InputRead != term->InputWrite)
+ {
+ LOG("WriteUTF8(%p, 0x%x)", Buffer+pos, term->InputBuffer[term->InputRead]);
+ pos += WriteUTF8(Buffer+pos, term->InputBuffer[term->InputRead]);
+ term->InputRead ++;
+ }
+ }
+ break;
+
+ case VT_MODE_TEXT32:
+ while(pos < Length)
+ {
+ while(term->InputRead == term->InputWrite) Proc_Yield();
+ while(term->InputRead != term->InputWrite)
+ {
+ ((Uint32*)Buffer)[pos] = term->InputBuffer[term->InputRead];
+ pos ++;
+ term->InputRead ++;
+ }
+ }
+ break;
+ }