From: George H. <geo...@us...> - 2007-10-31 18:51:43
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv19142/win32forth/src Modified Files: EXCEPTIO.F FLOAT.F PRIMHASH.F imageman.f Log Message: gah: Improved multi-tasing performance. Fixed bug in Index: EXCEPTIO.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/EXCEPTIO.F,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** EXCEPTIO.F 20 Oct 2007 20:58:56 -0000 1.8 --- EXCEPTIO.F 31 Oct 2007 18:51:39 -0000 1.9 *************** *** 211,215 **** &exrec @ EBP@SaveOffset ; \ save area for ebp@ ! 0 value ?exceptioning \ detect recursive call to handler 1 PROC SetUnhandledExceptionFilter --- 211,218 ---- &exrec @ EBP@SaveOffset ; \ save area for ebp@ ! cell NewUser (?exceptioning) ! ! : ?exceptioning ( -- f ) ! (?exceptioning) @ ; \ detect recursive call to handler 1 PROC SetUnhandledExceptionFilter *************** *** 217,225 **** EXTERNAL ! variable show-exception ! show-exception on \ show exception? ! variable recover-exception \ recover from exception? ! recover-exception on : .exception-code ( -- ) \ get the last exception --- 220,233 ---- EXTERNAL ! cell NewUser show-exception \ show exception? ! cell NewUser recover-exception \ recover from exception? ! ! : Init-Except-Users ( -- ) ! (?exceptioning) off show-exception on recover-exception on ; ! ! Init-Except-Users ! ! initialization-chain chain-add Init-Except-Users : .exception-code ( -- ) \ get the last exception *************** *** 290,294 **** : except-presskey ( -- ) ! cr ." Press any key to exit..." wait ; EXTERNAL --- 298,302 ---- : except-presskey ( -- ) ! TCB @ 0= if cr ." Press any key to exit..." wait then ; \ Only wait for main (console) task. EXTERNAL *************** *** 350,354 **** exit \ terminate exception then ! true to ?exceptioning dup @ dup>r @ \ get the exception code &except ! \ save exception for later --- 358,362 ---- exit \ terminate exception then ! (?exceptioning) on dup @ dup>r @ \ get the exception code &except ! \ save exception for later *************** *** 368,372 **** r>drop EXCEPTION_CONTINUE_SEARCH >r \ no recovery then ! false to ?exceptioning \ no longer exceptioning show-exception @ if except-presskey then \ wait if we're showing... r> \ recover? from recovery option --- 376,380 ---- r>drop EXCEPTION_CONTINUE_SEARCH >r \ no recovery then ! (?exceptioning) off \ no longer exceptioning show-exception @ if except-presskey then \ wait if we're showing... r> \ recover? from recovery option *************** *** 377,382 **** EXTERNAL : SET-EXCEPT ( -- ) \ set exception routine handler ! ExceptBufflen malloc &exrec ! \ get a buffer for the context &IN-EXCEPT call SetUnhandledExceptionFilter &exrec @ ExceptHandler ! \ save exception handler --- 385,396 ---- EXTERNAL + : Allocate-Except-Buffer ( -- ) + ExceptBufflen malloc &exrec ! ; \ get a buffer for the context + + : Release-Except-Buffer ( -- ) + &exrec @ release &exrec off ; + : SET-EXCEPT ( -- ) \ set exception routine handler ! Allocate-Except-Buffer &IN-EXCEPT call SetUnhandledExceptionFilter &exrec @ ExceptHandler ! \ save exception handler *************** *** 387,391 **** &exrec @ ExceptHandler @ \ get old exception handler call SetUnhandledExceptionFilter drop ! &exrec @ release &exrec off ; \ clear execution record address INTERNAL --- 401,405 ---- &exrec @ ExceptHandler @ \ get old exception handler call SetUnhandledExceptionFilter drop ! Release-Except-Buffer ; \ clear execution record address INTERNAL Index: FLOAT.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/FLOAT.F,v retrieving revision 1.48 retrieving revision 1.49 diff -C2 -d -r1.48 -r1.49 *** FLOAT.F 21 Feb 2007 10:13:17 -0000 1.48 --- FLOAT.F 31 Oct 2007 18:51:39 -0000 1.49 *************** *** 1879,1883 **** THEN ! drop 1- charcnt @ 1+ number? double? 0= and \ October 1st, 1996 - 10:51 tjz & am \ double exponent not allowed --- 1879,1883 ---- THEN ! drop 1- charcnt @ 1+ base @ >r decimal number? r> base ! \ modified to always convert exponent in decimal double? 0= and \ October 1st, 1996 - 10:51 tjz & am \ double exponent not allowed Index: PRIMHASH.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/PRIMHASH.F,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** PRIMHASH.F 18 Apr 2007 09:18:40 -0000 1.7 --- PRIMHASH.F 31 Oct 2007 18:51:39 -0000 1.8 *************** *** 308,311 **** --- 308,313 ---- [ 1 cells ] literal - @ unhash type space ; + also classes + : .M1NAME ( a1 a2 -- a3 ) [ 2 cells ] literal - @ unhash type *************** *** 314,318 **** if obj-save if obj-save cell - @ \ should use obj>CLASS, not yet there ! voc-pfa-size cell+ + \ should use IFA, not yet there begin @ 2dup 3 cells+ @ u< 0= start/stop --- 316,320 ---- if obj-save if obj-save cell - @ \ should use obj>CLASS, not yet there ! voc-pfa-size #mlists cells+ + \ should use IFA, not yet there begin @ 2dup 3 cells+ @ u< 0= start/stop *************** *** 321,329 **** else drop ." ???" then space ! else ." NULL " then else ." self " then ; IN-APPLICATION --- 323,333 ---- else drop ." ???" then space ! else drop ." NULL " then else ." self " then ; + previous + IN-APPLICATION Index: imageman.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/imageman.f,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** imageman.f 28 Sep 2006 10:16:48 -0000 1.11 --- imageman.f 31 Oct 2007 18:51:39 -0000 1.12 *************** *** 859,863 **** &CB-WINMSG , &CB-BYE , \ zero callback pointers ! &EXCEPT , \ zero last exception >IN , \ zero >in ' SOURCE-ID >BODY , \ and source-id --- 859,863 ---- &CB-WINMSG , &CB-BYE , \ zero callback pointers ! \ &EXCEPT , \ zero last exception >IN , \ zero >in ' SOURCE-ID >BODY , \ and source-id |