Rev 616 | Rev 643 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 616 | Rev 619 | ||
---|---|---|---|
Line 112... | Line 112... | ||
112 | {£®â®¢ ª ®¡à ¡®âª¥ ᮡë⨩} |
112 | {£®â®¢ ª ®¡à ¡®âª¥ ᮡë⨩} |
113 | Console^.FOpened := True; |
113 | Console^.FOpened := True; |
114 | while not Console^.FTerminate do |
114 | while not Console^.FTerminate do |
115 | begin |
115 | begin |
116 | Event := kos_getevent(); |
116 | Event := kos_getevent(); |
117 | if Console^.FTerminate then |
117 | if not Console^.FTerminate then |
118 | {Console^.ProcessMessage('[CONSOLE] Terminate...'#13#10)} else |
- | |
119 | case Event of |
118 | case Event of |
120 | SE_PAINT: Console^.Paint(); |
119 | SE_PAINT: Console^.Paint(); |
121 | SE_KEYBOARD: Console^.ProcessKeyboard(kos_getkey()); |
120 | SE_KEYBOARD: Console^.ProcessKeyboard(kos_getkey()); |
122 | SE_IPC: while Console^.ReceiveMessage(Message) do Console^.ProcessMessage(Message); |
121 | SE_IPC: while Console^.ReceiveMessage(Message) do Console^.ProcessMessage(Message); |
123 | end; |
122 | end; |
Line 144... | Line 143... | ||
144 | FMaxLines := 150; |
143 | FMaxLines := 150; |
145 | FTerminate := False; |
144 | FTerminate := False; |
146 | FOpened := False; |
145 | FOpened := False; |
147 | FIPCBufferSize := SizeOf(TKosIPC) + IPC_SIZE; |
146 | FIPCBufferSize := SizeOf(TKosIPC) + IPC_SIZE; |
148 | FIPCBuffer := GetMem(FIPCBufferSize); |
147 | FIPCBuffer := GetMem(FIPCBufferSize); |
149 | {FIPCBufferSize := SizeOf(KonsoleIPCBuffer); |
- | |
150 | FIPCBuffer := @KonsoleIPCBuffer;} |
- | |
151 | FIPCBuffer^.Lock := False; |
148 | FIPCBuffer^.Lock := False; |
152 | FIPCBuffer^.Size := 0; |
149 | FIPCBuffer^.Size := 0; |
153 | FThreadSlot := -1; |
150 | FThreadSlot := -1; |
154 | FThreadID := BeginThread(TThreadFunc(@KonsoleThreadMain), @Self); |
151 | FThreadID := BeginThread(TThreadFunc(@KonsoleThreadMain), @Self); |
155 | if FThreadID <> 0 then |
152 | if FThreadID <> 0 then |
- | 153 | {XXX: ¬®¦¥â § ¢¨áãâì} |
|
156 | while not FOpened do kos_delay(1); |
154 | while not FOpened do ThreadSwitch; |
157 | end; |
155 | end; |
Line 158... | Line 156... | ||
158 | 156 | ||
159 | destructor TKonsole.Done(); |
157 | destructor TKonsole.Done(); |
160 | begin |
158 | begin |
161 | FTerminate := True; |
- | |
162 | Self.Write(#0); |
159 | FTerminate := True; |
163 | if FOpened then kos_delay(1); |
160 | if FOpened then begin Self.Write(#0); kos_delay(01); end; |
164 | if FOpened then kos_delay(10); |
161 | if FOpened then begin Self.Write(#0); kos_delay(10); end; |
165 | if FOpened then kos_delay(20); |
162 | if FOpened then begin Self.Write(#0); kos_delay(20); end; |
166 | if FOpened then |
163 | if FOpened then |
167 | begin |
164 | begin |
168 | FOpened := False; |
165 | FOpened := False; |
169 | KillThread(FThreadID); |
166 | KillThread(FThreadID); |
Line 343... | Line 340... | ||
343 | I: Integer; |
340 | I: Integer; |
344 | begin |
341 | begin |
345 | {XXX: ¢®§¬®¦ á¨âã æ¨ï ¯à¨ ª®â®à®© á®®¡é¥¨¥ ¥ ¡ã¤¥â ®â¯à ¢«¥®} |
342 | {XXX: ¢®§¬®¦ á¨âã æ¨ï ¯à¨ ª®â®à®© á®®¡é¥¨¥ ¥ ¡ã¤¥â ®â¯à ¢«¥®} |
346 | if FOpened then |
343 | if FOpened then |
347 | begin |
344 | begin |
348 | I := 20; |
345 | I := 100; |
349 | while (kos_sendmsg(FThreadID, @Message[1], Length(Message)) = 2) and (I > 0) do |
346 | while (kos_sendmsg(FThreadID, @Message[1], Length(Message)) = 2) and (I > 0) do |
350 | begin |
347 | begin |
351 | Dec(I); |
348 | Dec(I); |
352 | ThreadSwitch; |
349 | ThreadSwitch; |
353 | end; |
350 | end; |