You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(70) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(38) |
Feb
(4) |
Mar
(11) |
Apr
(49) |
May
(81) |
Jun
(65) |
Jul
(36) |
Aug
(57) |
Sep
(63) |
Oct
(57) |
Nov
(49) |
Dec
(41) |
2006 |
Jan
(75) |
Feb
(80) |
Mar
(10) |
Apr
(13) |
May
(100) |
Jun
(100) |
Jul
(77) |
Aug
(87) |
Sep
(80) |
Oct
(124) |
Nov
(39) |
Dec
(41) |
2007 |
Jan
(20) |
Feb
(32) |
Mar
(32) |
Apr
(43) |
May
(146) |
Jun
(40) |
Jul
(49) |
Aug
(33) |
Sep
(25) |
Oct
(19) |
Nov
(11) |
Dec
(8) |
2008 |
Jan
(4) |
Feb
(11) |
Mar
(31) |
Apr
(40) |
May
(34) |
Jun
(24) |
Jul
(39) |
Aug
(104) |
Sep
(27) |
Oct
(35) |
Nov
(34) |
Dec
(97) |
2009 |
Jan
(75) |
Feb
(29) |
Mar
(45) |
Apr
(76) |
May
(121) |
Jun
(103) |
Jul
(67) |
Aug
(28) |
Sep
(22) |
Oct
(39) |
Nov
(9) |
Dec
(15) |
2010 |
Jan
(7) |
Feb
(39) |
Mar
(40) |
Apr
(57) |
May
(67) |
Jun
(69) |
Jul
(49) |
Aug
(68) |
Sep
(22) |
Oct
(7) |
Nov
(2) |
Dec
(10) |
2011 |
Jan
|
Feb
|
Mar
(10) |
Apr
(4) |
May
(6) |
Jun
(10) |
Jul
(16) |
Aug
(23) |
Sep
(9) |
Oct
|
Nov
(28) |
Dec
(3) |
2012 |
Jan
(11) |
Feb
(10) |
Mar
(1) |
Apr
|
May
(4) |
Jun
(3) |
Jul
(3) |
Aug
(4) |
Sep
(2) |
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
(7) |
Mar
(30) |
Apr
(4) |
May
(4) |
Jun
(8) |
Jul
(10) |
Aug
(4) |
Sep
|
Oct
(2) |
Nov
(24) |
Dec
(13) |
2014 |
Jan
(7) |
Feb
(2) |
Mar
|
Apr
(1) |
May
(9) |
Jun
|
Jul
(3) |
Aug
(9) |
Sep
|
Oct
(2) |
Nov
|
Dec
(3) |
2015 |
Jan
(4) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(5) |
Sep
(1) |
Oct
(4) |
Nov
(7) |
Dec
(39) |
2016 |
Jan
(17) |
Feb
(2) |
Mar
(2) |
Apr
|
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
(2) |
2017 |
Jan
|
Feb
(3) |
Mar
|
Apr
|
May
(1) |
Jun
(2) |
Jul
|
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
(2) |
2018 |
Jan
|
Feb
|
Mar
(2) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2019 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2022 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
(2) |
Nov
(1) |
Dec
(1) |
2023 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
|
Dec
|
2025 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: George H. <geo...@us...> - 2006-09-22 10:32:03
|
Update of /cvsroot/win32forth/win32forth-stc/src/kernel In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv8455/win32forth-stc/src/kernel Modified Files: gkernel.f Log Message: gah:Added &of and fixes for as and inline Index: gkernel.f =================================================================== RCS file: /cvsroot/win32forth/win32forth-stc/src/kernel/gkernel.f,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** gkernel.f 21 Sep 2006 16:26:33 -0000 1.1 --- gkernel.f 22 Sep 2006 10:31:57 -0000 1.2 *************** *** 4,22 **** WIN32FORTH EXPERIMENTAL KERNEL ! SKERNEL.F Version 0.1 15/08/2005 23:09:35 ! --------------------------- Change Block ------------------------------- ! arm 15/08/2005 22:56:45 First version 0.1 STC based kernel [...1051 lines suppressed...] : kwords ( -- "match-str" ) context @ (words) ! cr word-count . s" words in voc " type ; ! : +no-wrap ( a1 n1 -- a2 ) \ add n1 to a1, limit to address 0xffffffff \ don't allow wrap around to address zero *************** *** 5884,5888 **** repeat drop .olly-fileid close-file drop r> base ! ; ! [then] --- 5898,5902 ---- repeat drop .olly-fileid close-file drop r> base ! ; ! [then] |
From: Dirk B. <db...@us...> - 2006-09-21 16:26:38
|
Update of /cvsroot/win32forth/win32forth-stc/doc In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv2950/doc Added Files: readme.txt Log Message: win32forth-stc base comit --- NEW FILE: readme.txt --- W32F STC Version 0.2.03 10:42 19/09/2006 To meta-compile and build the system ------------------------------------ 1. Run gkernel.exe 2. Type fload stc\extend fsave w32f bye 3. Run w32f.exe 4. Type fload stc\extend fload stc\kernel\gmeta To test the benchmark --------------------- 1. Run w32f.exe 2. Type fload bench To see generated code; after loading the benchmark try see fib |
From: Dirk B. <db...@us...> - 2006-09-21 16:26:36
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv2950/src Added Files: 486asm.f asmmac.f asmwin32.f callback.f console.f dis486.f dotwords.f exception.f extend.f float.f forget.f imagehds.f imageman.f interpif.f lineedit.f module.f numconv.f primutil.f task.f Log Message: win32forth-stc base comit --- NEW FILE: exception.f --- \ $Id: exception.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ 0 [IF] --------------------------- Change Block ------------------------------- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ------------------------- End Change Block ----------------------------- Experimental: a fully optimising, STC based, ANS Forth compliant kernel Copyright [c] 2005 by Alex McDonald (alex at rivadpm dot com) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or <at your option> any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------------------------------------------------ [THEN] cr .( Loading exception handler...) sourcefilename type 0 [IF] Exception Handling ------------------ Exeption handling now uses a process wide exception handler to trap all OS generated errors in Win32Forth. The sequence of events is as follows: 1. Exception handler set by call to SET-EXCEPT SET-EXCEPT points to a callbnack IN-EXCEPT that does most of the work. 2. Code executes, hits some error IN-EXCEPT gets called with 1 parameter. This points to two words: DWORD Exception Record DWORD Context Record The first is a "machine independent" record of the error, the second a copy of the machine state on entry. 3. If the execption is GUARD_PAGE, then we just retry after incrementing a counter 4. If the exception is ACCESS_VIOLATION, and this is a write error (not read!) then an attempt is made to VirtualAllocate the page that is faulting. 5. If the attempt is succesful, retry at the point of failure. Otherwise, call HANDLE-EXCEPT 6. HANDLE-EXCEPT saves both the exception and context records in a dynamic buffer, and points to them. 7. Calls .EXCEPTION to print out the exception information 8. Calls RECOVER-EXCEPT to attempt a recovery. RECOVER-EXCEPT emulates an "9998 THROW". 9. Returns to OS to undertake the recovery. Trapping Memory Write Errors ---------------------------- This code supports RESERVEing memory using VirtualAlloc, without COMMITting it first. First, reserve a range of a process's virtual address space. Reserving address space does not allocate any physical storage, but it prevents other allocation operations from using the specified range. Reserving pages prevents needless consumption of physical storage, while allowing a process to reserve a range of its address space into which a dynamic data structure can grow. Reserved but uncommitted memory will cause ACCESS VIOLATIONS if it is addressed. Once the memory is then committed, it is backed by swap pages and is mapped into the virtual address space. Now it can be used (written and read). The support provided here allows storage be reserved only. If a block of storage is reserved, and it is then written to, the exception handler traps the error and automatically commits the memory and retries the failing instruction. For instance: PAGE_NOACCESS MEM_RESERVE 0x400000 0 CALL VirtualAlloc CONSTANT LARGEAREA This reserves but does not consume memory resources. 10 LARGEAREA 0x4000 + ! This causes an exception, the memory is COMMITed as PAGE_EXECUTE_READWRITE. Only the page (4K) at LARGEAREA 0x4000 + requires swap and memory resources. Catching Errors --------------- The use of THROW makes it easy to catch system errors in code. For instance: : x -4 @ ; \ will cause an access exception : y ['] x catch if ." Error" else ." OK" then ; If you don't do a CATCH, then the last CATCH executed will be run. Here's some sample output: 0 @ \ fetch from absolute zero EXCEPTION 0xC0000005 ACCESS_VIOLATION Version: 6.09.02 Registers: Eax: 0040147C Ebx: TOS 00000000 top of stack Ecx: 0013748A Edx: USER 00127FB0 user area Edi: 00000000 Esi: IP 0040F4C8 Forth ip Esp: SP@ 00126F80 stack ptr Ebp: RP@ 0012FF90 rstack ptr Eip: PC 00401480 machine ip Access addr: 00000000 READ violation Backtracking: CONSOLE-STATUSBAR-INTERPRET+0 QUERY-INTERPRET+2 CATCH+14 [UNKNOWN]+-1048578 Data stack: 0 0 0 0 Primitive @ loaded from: SRC\FKERNEL.F at line: 488 Invoking word CONSOLE-STATUSBAR-INTERPRET loaded from: ...SRC\CONSOLE\CONSOLESTATBAR.F at line: 92 fails at word _INTERPRET loaded from: SRC\FKERNEL.F at line: 4238 For TURNKEYed applications, only the registers are shown. User Words ---------- .EXCEPTION Show the results of the last exception executed .EXCEPTION-CODE Show just the exception code CLEAR-EXCEPTION Clear the exception UNSET-EXCEPTION Suspend exception processing, will return to OS on error SHOW-EXCEPTION ON | OFF Turn the output from an exception on or off (on is default) RECOVER-EXCEPTION ON | OFF Recover from exception. ON is default, OFF will return to OS EXCEPT-IO Defered word to redirect error io. [THEN] only forth also definitions IN-APPLICATION 1 CONSTANT EXCEPTION_EXECUTE_HANDLER \ no longer in wincon.dll, now macros in 0 CONSTANT EXCEPTION_CONTINUE_SEARCH \ windows -1 CONSTANT EXCEPTION_CONTINUE_EXECUTION : \IN-SYSTEM-OK ; immediate \ temporary 9998 CONSTANT THROW_WINEXCEPT \ " Windows exception trapped" THROW_MSGS LINK, THROW_WINEXCEPT , ," Windows exception trapped" defer except-io ' forth-io is except-io \ where print exception goes INTERNAL 0 nostack1 \ exception record cell field+ exc-code cell field+ exc-flags cell field+ exc-record cell field+ exc-address cell field+ exc-numparms cell field+ exc-parms 14 cells+ constant exc-reclen 0 nostack1 \ context record cell + \ field+ ContextFlags cell + \ field+ Dr0 cell + \ field+ Dr1 cell + \ field+ Dr2 cell + \ field+ Dr3 cell + \ field+ Dr6 cell + \ field+ Dr7 0 + \ field+ FloatSaveArea cell + \ field+ FloatControl cell + \ field+ FloatStatus cell + \ field+ FloatTag cell + \ field+ FloatErrorOffset cell + \ field+ FloatErrorSelector cell + \ field+ FloatDataOffset 80 + \ field+ FloatDataSelector cell + \ field+ FloatRegisterArea cell + \ field+ FloatCr0NpxState cell + \ field+ SegGs cell + \ field+ SegFs cell + \ field+ SegEs cell + \ field+ SegDs cell field+ edi cell field+ esi cell field+ ebx cell field+ edx cell field+ ecx cell field+ eax cell field+ ebp cell field+ eip cell + \ field+ SegCs cell + \ field+ EFlags cell field+ esp cell + \ field+ SegSs constant ContextRecLen 0 nostack1 \ our save area exc-RecLen field+ off-recexcept ContextRecLen field+ off-reccontext cell field+ off-up@save cell field+ off-ebp@save cell field+ off-handler 4 cells field+ off-rstack 4 cells field+ off-stack constant ExceptBufflen : except-buffer ( -- a1 ) \ return the address of the &exrec @ off-recexcept ; \ exception handler's exception buffer : context-buffer ( -- a1 ) \ return the address of the &exrec @ off-reccontext ; \ exception handler's context buffer : upsave-buffer ( -- a1 ) \ return the address of the &exrec @ off-up@save ; \ save area for up : ebp@save-buffer ( -- a1 ) \ return the address of the &exrec @ off-ebp@save ; \ save area for ebp@ 0 value ?exceptioning \ detect recursive call to handler : .exhex ( n -- ) space [char] $ emit h.8 space ; EXTERNAL variable show-exception show-exception on \ show exception? variable recover-exception \ recover from exception? recover-exception on : .exception-code ( n -- ) \ get the last exception cr ." Exception" dup .exhex case EXCEPTION_ACCESS_VIOLATION of ." ACCESS_VIOLATION" endof EXCEPTION_INT_DIVIDE_BY_ZERO of ." INT_DIVIDE_BY_ZERO" endof EXCEPTION_FLT_DIVIDE_BY_ZERO of ." FLT_DIVIDE_BY_ZERO" endof EXCEPTION_FLT_STACK_CHECK of ." FLT_STACK_CHECK" endof EXCEPTION_FLT_INEXACT_RESULT of ." FLT_INEXACT_RESULT" endof EXCEPTION_FLT_UNDERFLOW of ." FLT_UNDERFLOW" endof EXCEPTION_FLT_DENORMAL_OPERAND of ." FLT_DENORMAL_OPERAND" endof EXCEPTION_FLT_INVALID_OPERATION of ." FLT_INVALID_OPERATION" endof EXCEPTION_FLT_OVERFLOW of ." FLT_OVERFLOW" endof EXCEPTION_ILLEGAL_INSTRUCTION of ." ILLEGAL_INSTRUCTION" endof EXCEPTION_DATATYPE_MISALIGNMENT of ." DATATYPE_MISALIGNMENT" endof \ EXCEPTION_GUARD_PAGE of ." GUARD_PAGE" endof EXCEPTION_BREAKPOINT of ." BREAKPOINT (INT 3)" endof \ EXCEPTION_SINGLE_STEP of ." SINGLE_STEP" endof \ EXCEPTION_NONCONTINUABLE of ." NONCONTINUABLE" endof EXCEPTION_PRIV_INSTRUCTION of ." PRIV_INSTRUCTION" endof \ EXCEPTION_IN_PAGE_ERROR of ." IN_PAGE_ERROR" endof \ EXCEPTION_STACK_OVERFLOW of ." STACK_OVERFLOW" endof \ EXCEPTION_INVALID_DISPOSITION of ." INVALID_DISPOSITION" endof \ EXCEPTION_ARRAY_BOUNDS_EXCEEDED of ." ARRAY_BOUNDS_EXCEEDED" endof \ EXCEPTION_NONCONTINUABLE_EXCEPTION of ." NONCONTINUABLE_EXCEPTION" endof EXCEPTION_INT_OVERFLOW of ." INT_OVERFLOW" endof EXCEPTION_INVALID_HANDLE of ." INVALID_HANDLE" endof endcase ; : clear-exception ( -- ) \ clear any previous exception &except off ; INTERNAL IN-SYSTEM : .addr-info ( xt -- ) \ print off code info dup .exhex \ print the address dup code>name \ see if we can find the nfa dup if \ yes dup>r dup count type \ type the name name>xt - [char] + emit $. \ and the offset r> .viewinfo else 2drop then ; : except-stack ( a1 -- ) \ print off the stack dup 4 cells+ swap ?do i @ \ possibly addr of something in code cr 4 spaces .addr-info cell +loop ; IN-APPLICATION : except-presskey ( -- ) cr ." Press any key to exit..." wait ; EXTERNAL : .exreg ( n -- ) @ .addr-info ; : .exception ( -- ) \ print exception info &except @ 0= if cr ." * No exception has occurred *" else except-io cr .version cr &except @ dup .exception-code EXCEPTION_ACCESS_VIOLATION = if cr ." Access addr:" except-buffer exc-Parms cell+ @ .exhex except-buffer exc-Parms @ if ." WRITE" else ." READ" then ." violation" then context-buffer cr ." Registers:" cr dup eax ." eax" .exreg cr dup ebx ." ebx" .exreg cr dup ecx ." ecx" .exreg cr dup edx ." edx" .exreg cr dup edi ." edi" .exreg cr dup esi ." esi" .exreg cr dup ebp ." ebp" .exreg cr dup esp ." esp" .exreg cr ." Backtracking:" cr dup eip ." eip" .exreg \ TURNKEYED? IF DROP EXIT THEN \IN-SYSTEM-OK &exrec @ off-rstack except-stack &exrec @ off-stack cr ." Data stack:" except-stack then ; INTERNAL : recover-except ( con-ptr -- n ) \ recovery handler, modify registers for retry ['] throw over eip ! \ get address of throw throw_winexcept over eax ! \ exception to top of stack for throw upsave-buffer @ over ebx ! \ recover saved up, best we can do! drop EXCEPTION_CONTINUE_EXECUTION ; \ attempt recovery 1 callback: handle-except ( exception-ptr -- ropt ) \ error routine called by os, save & setup except-io ?exceptioning if \ catch errors on error routine cr ." Recursive exception" except-presskey EXCEPTION_CONTINUE_SEARCH exit \ terminate exception then true to ?exceptioning dup @ dup>r @ \ get the exception code &except ! \ save exception for later r> \ fetch exception record except-buffer exc-RecLen move \ save it dup cell+ @ dup>r \ fetch context record context-buffer ContextRecLen move \ save the context record context-buffer esp @ dup>r \ get esp from new context stack &exrec @ off-rstack 4 cells move \ move rstack context-buffer ebp @ \ get ebp from new context stack &exrec @ off-stack 4 cells move \ move stack r> @ EBP@Save-Buffer ! \ save what esp points at show-exception @ if .exception then \ call exception print recover-exception @ if r> recover-except >r \ attempt recovery else 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 ; EXTERNAL 1 proc SetUnhandledExceptionFilter : SET-EXCEPT ( -- ) \ set exception routine handler ExceptBufflen malloc &exrec ! \ get a buffer for the context ['] handle-except call SetUnhandledExceptionFilter &exrec @ off-handler ! \ save exception handler up@ &exrec @ off-up@save ! \ save UP for recovery ; : UNSET-EXCEPT ( prev-except-addr -- ) \ unset exception routine &exrec @ off-handler @ \ get old exception handler call SetUnhandledExceptionFilter drop &exrec @ release &exrec off ; \ clear execution record address INTERNAL set-except initialization-chain chain-add set-except \ unload-chain chain-add unset-except MODULE only forth also definitions --- NEW FILE: asmmac.f --- ( Miscellaneous macros for Win32FORTH 486ASM version 1.26 ) ( copyright [c] 1994 by Jim Schneider ) ( This file version 1.21 ) ( This program is free software; you can redistribute it and/or modify ) ( it under the terms of the GNU General Public License as published by ) ( the Free Software Foundation; either version 2 of the License, or ) ( <at your option> any later version. ) ( ) ( This program is distributed in the hope that it will be useful, ) ( but WITHOUT ANY WARRANTY; without even the implied warranty of ) ( MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ) ( GNU General Public License for more details. ) ( ) ( You should have received a copy of the GNU General Public License ) ( along with this program; if not, write to the Free Software ) ( Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ) macro: ;m postpone ;macro endm immediate macro: al, al , ;m macro: cl, cl , ;m macro: dl, dl , ;m macro: bl, bl , ;m macro: ah, ah , ;m macro: ch, ch , ;m macro: dh, dh , ;m macro: bh, bh , ;m macro: ax, ax , ;m macro: cx, cx , ;m macro: dx, dx , ;m macro: bx, bx , ;m macro: sp, sp , ;m macro: bp, bp , ;m macro: si, si , ;m macro: di, di , ;m macro: eax, eax , ;m macro: ecx, ecx , ;m macro: edx, edx , ;m macro: ebx, ebx , ;m macro: esp, esp , ;m macro: ebp, ebp , ;m macro: esi, esi , ;m macro: edi, edi , ;m macro: [bx+si], [bx+si] , ;m macro: [bx+di], [bx+di] , ;m macro: [bp+si], [bp+si] , ;m macro: [bp+di], [bp+di] , ;m macro: [si], [si] , ;m macro: [di], [di] , ;m macro: [bp], [bp] , ;m macro: [bx], [bx] , ;m macro: [eax], [eax] , ;m macro: [ecx], [ecx] , ;m macro: [edx], [edx] , ;m macro: [ebx], [ebx] , ;m macro: [esp], [esp] , ;m macro: [ebp], [ebp] , ;m macro: [esi], [esi] , ;m macro: [edi], [edi] , ;m macro: [eax*2], [eax*2] , ;m macro: [ecx*2], [ecx*2] , ;m macro: [edx*2], [edx*2] , ;m macro: [ebx*2], [ebx*2] , ;m macro: [ebp*2], [ebp*2] , ;m macro: [esi*2], [esi*2] , ;m macro: [edi*2], [edi*2] , ;m macro: [eax*4], [eax*4] , ;m macro: [ecx*4], [ecx*4] , ;m macro: [edx*4], [edx*4] , ;m macro: [ebx*4], [ebx*4] , ;m macro: [ebp*4], [ebp*4] , ;m macro: [esi*4], [esi*4] , ;m macro: [edi*4], [edi*4] , ;m macro: [eax*8], [eax*8] , ;m macro: [ecx*8], [ecx*8] , ;m macro: [edx*8], [edx*8] , ;m macro: [ebx*8], [ebx*8] , ;m macro: [ebp*8], [ebp*8] , ;m macro: [esi*8], [esi*8] , ;m macro: [edi*8], [edi*8] , ;m macro: es, es , ;m macro: cs, cs , ;m macro: ss, ss , ;m macro: ds, ds , ;m macro: fs, fs , ;m macro: gs, gs , ;m macro: cr0, cr0 , ;m macro: cr2, cr2 , ;m macro: cr3, cr3 , ;m macro: cr4, cr4 , ;m macro: dr0, dr0 , ;m macro: dr1, dr1 , ;m macro: dr2, dr2 , ;m macro: dr3, dr3 , ;m macro: dr6, dr6 , ;m macro: dr7, dr7 , ;m macro: tr3, tr3 , ;m macro: tr4, tr4 , ;m macro: tr5, tr5 , ;m macro: tr6, tr6 , ;m macro: tr7, tr7 , ;m macro: st, st , ;m macro: st(0), st(0) , ;m macro: st(1), st(1) , ;m macro: st(2), st(2) , ;m macro: st(3), st(3) , ;m macro: st(4), st(4) , ;m macro: st(5), st(5) , ;m macro: st(6), st(6) , ;m macro: st(7), st(7) , ;m --- NEW FILE: callback.f --- \ $Id: callback.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ \ CALLBACK.F Windows Callback support by Tom Zimmer \ arm 21/12/2004 21:21:09 Callback support -- moved out of kernel cr .( Loading Windows Callback...) \ --------------------------- Windows callback support ---------------------- \ Windows API externals interface words \ When Windows calls back into user code, the address passed as one of the \ parameters to the call to windows is the address of a routine to handle \ the callback. We must save the caller's registers, and set up the new data \ stack. \ n callback: <name> ... ; \ identifies a word as callable by Windows (and, by implication, \ not callable by Forth directly!). \ ' xt n export <ExternalName> \ marks the xt word as externally callable (primarily for DLLs \ and callbacks). The name is case sensitive. n represents the number \ of cells passed as parameters. Sets up the stacks to meet \ the internal requirements of Win32Forth. The word <ExternalName> \ is not callable directly from Forth, and is defined in a \ case-sensitive vocabulary; but call-proc can be used \ to test the word. See the example. \ Because of the way the callback restores registers on exit, the stack does \ not need to be clean on exit; the value on the top of the stack is taken as \ the return value. There is a limit of around 4K or 1024 parameters maximum \ on the stack (referenced by ebp), so be carefule that very deep nesting may \ well overrun the stack. \ See the .fonts example for standard use. To test a callback; \ \ : sum3 ( a b c -- d ) + + ; \ ' sum3 3 export Sum3 \ also exports \ 10 20 30 ' Sum3 call-proc . \ Callback entry and exit macros \ This could well be written as gcode and "move-code"d into place in the kernel. in-system : cb-entry { n -- } \ variable part of entry code macro[ push ebp \ caller's regs; push ebx \ save std regs push esi push edi mov ebx, fs: $14 \ get UP from TIB push sp0 [up] \ save sp0 push rp0 [up] \ save rp0 lea ebp, -4092 [esp] \ room for call mov sp0 [up], ebp \ new sp0 mov rp0 [up], esp \ new rp0 ]macro n if \ any params? n 0 ?do macro[ \ generate n fetches mov eax, n 6 + i - cells [esp] \ recover parm n ]macro i n <> if macro[ \ if not TOS in eax mov i 1+ cells negate [ebp], eax \ save on stack ]macro then loop macro[ lea ebp, n 1- cells negate [ebp] \ adjust stack ]macro then ; macro: cb-exit { n -- } \ exit code pop rp0 [up] \ restore rp0 pop sp0 [up] \ and sp0 pop edi \ restore regs pop esi pop ebx pop ebp \ original ebp ret n cells ;m : callback: { n -- } \ generate callback head : \ start definition macro[ n cb-entry call @@m1 \ call the code n cb-exit @@m1: \ code to be called here ]macro ; \ back to compiler : export { xt n -- } \ generate callback head also exports get-current >r definitions : \ start definition macro[ n cb-entry call xt \ call the code n cb-exit ]macro r> set-current previous \ original definitions postpone ; ; \ back to compiler in-application \ ---------------- allow Forth to handle windows messages ----------------- -1 value WM_WIN32FORTH 1 PROC TranslateMessage 1 PROC DispatchMessage 4 PROC DefWindowProc 1 callback: HandleMessages ( pMsg -- 0 ) TRUE msg-chain do-chain if dup Call TranslateMessage drop Call DispatchMessage then ; 4 callback: HandleWindowsMessages ( hwnd msg wparam lparam -- res ) over WM_WIN32FORTH <> if call DefWindowProc \ use default handler else 4dup forth-msg-chain do-chain 0 then ; 0 callback: byebye bye ; \ callback to terminate forth \ These messages are sent by the current console DLL. : HandleMessages-init ( -- ) ['] HandleMessages &CB-MSG ! ['] HandleWindowsMessages &CB-WINMSG ! ['] byebye &CB-BYE ! ; HandleMessages-init initialization-chain chain-add HandleMessages-init in-system : _DefaultWindowProc ( hwnd msg wparam lparam -- res ) call DefWindowProc ; defer DefaultWindowProc ' _DefaultWindowProc is DefaultWindowProc \ ----------------- An example of how to use a callback ------------------- \ this callback as specified by "EnumFonts" passes four (4) parameters to \ the callback procedure, so we must say "4 CallBack: FontFunc" to define \ a callback that accepts four parameters. \ in-application 4 PROC EnumFonts \ must be in-application for WinEd !!! \ in-system \ The "EnumFonts" windows call requires an application callback that will be \ called repeatedly to process each font in the system. We are just \ displaying the fonts, so we just look at the "dwType" to decide how to \ display each font. 4 callback: FontFunc1 { lpData dwType lptm lplf -- int } cr \ rls - many additions dwType dup TRUETYPE_FONTTYPE and IF ." " ELSE ." Non-" THEN ." TrueType " dup RASTER_FONTTYPE and IF ." Raster " ELSE ." Vector " THEN DEVICE_FONTTYPE and IF ." Device " ELSE ." GDI " THEN lplf 28 + LF_FACESIZE 2dup 0 scan nip - type cr 5 spaces lplf dup @ 4 .r \ height 4 + dup @ 4 .r \ width 4 + dup @ 6 .r.1 \ escapement angle 4 + dup @ 6 .r.1 \ orientation angle 4 + dup @ 4 .r \ weight 4 + dup c@ 1 and 2 .r \ italics 1 + dup c@ 1 and 2 .r \ underline 1 + dup c@ 1 and 2 .r \ strike-out 1 + dup c@ 4 .r \ character set 1 + dup c@ 2 .r \ output precision 1 + dup c@ 4 .r \ clip precision 1 + dup c@ 2 .r \ output quality 1 + c@ 4 h.r \ family and pitch 1 ; \ return "1=success" flag to windows : .fonts ( -- ) cr 5 spaces ." ht wide esc ornt wt I U S set p cp q fp" 0 ['] FontFunc1 \ the callback 0 conDC \ the Device Context of the DC call EnumFonts drop ; in-application --- NEW FILE: lineedit.f --- \ LEDIT.SEQ Line Editor Utility by Tom Zimmer cr .( Loading Line Editor...) \ 07-18-95 SMuB replaced getxy and gotoxy calls with _legetxy, _legotoxy. \ These routines use buffer coordinates instead of screen coordinates \ since screen coordinates are volatile. (( Here is a relatively simple editor for editing one line strings. Support is provided for strings up to 255 characters in length, with full word and character operations using keypad or WordStar keys as follows: Ctrl-A Left word Ctrl-S Left character Ctrl-D Right character Ctrl-F Right word Ctrl-G Forward delete Ctrl-T Word delete Ctrl-Y Line delete or clear Left arrow Left character Ctrl-Left arrow Left word Right arrow Right character Ctrl-Right arrow Right word Home Beginning of line End End of line ESC Discard changes and leave Return/Enter Save changes and leave The parameters needed by LINEEDIT are as follows: lineeditor ( x y a1 n1 --- ) x = char pos on row, zero = left edge y = row number, zero = top line a1 = counted string n1 = edit limit length, maximum value = 80 Here is an example of a command that would edit a line of text in SAMPLEBUFFER, with a maximum length of 12 characters, at location row 10 column 5 on the screen. 5 10 samplebuffer 12 lineedit Two auto resetting flags can be used to control the behavior of the line editor in special ways. The STRIPING_BL'S boolean "VALUE" determines whether the line editor will strip trailing blanks from an edited string at the completion of the edit. this VALUE defaults to TRUE, do strip trailing blanks. false to STRIPPING_BL'S will prevent line edit from stripping spaces. The AUTOCLEAR boolean "VALUE" determines whether the line edit buffer will be automatically cleared if the first character you enter on starting an edit is a normal text char. This is used to ease the users life in the situation where you want to give them the option of re-using a string or easily entering a new one without having to delete the old string first. This VALUE defaults to FALSE, no autoclear. true to AUTOCLEAR will cause line edit to automatically clear the edit string if a letter if the first thing entered. )) \ only forth also definitions \ anew -lineedit.f INTERNAL \ internal words start here EXTERNAL true value stripping_bl's \ are we stripping trailing blanks? false value autoclear \ automatically clear line if first true value insertmode \ insert/overwrite mode flag INTERNAL \ internal words start here variable saveflg \ are we saving the results 0 value ?ldone \ is line edit done? 0 value lchar \ recent line edit character 0 value ledit-x \ where we are editing X 0 value ledit-y \ where we are editing Y 0 value lenlimit \ line edit length limit defer ledbutton ' noop is ledbutton MAXCOUNTED constant maxedit create editbuf MAXSTRING allot \ our edit buffer, editbuf off \ 255 characters max 0 value editpos \ current edit position in buffer : _legetxy ( --- x ~y ) \ Negative y indicates buffer coordinates getxy getrowoff + invert ; : _legotoxy ( x y --- ) \ Goto screen or buffer coordinates dup 0< if \ if y is negative, go to buffer coordinates (x,~y) invert dup getrowoff dup rows + 1- between 0= if \ If the desired buffer y is not in the window, scroll it in dup rows - 1+ setrowoff then getrowoff - then gotoxy ; : lcalcx ( -- x ) \ calculate cursor x positon editpos COLS /mod drop ledit-x + ; : lcalcy ( -- y ) \ calculate cursor y positon editpos COLS / ledit-y - getrowoff 0= if 1- then ; \ rewritten for better line wraping \ Sonntag, Januar 16 2005 dbu : .lecursor ( --- ) \ show the cursor editpos to accept-cnt lcalcx lcalcy _legotoxy ; : .leline ( --- ) \ redisplay edit line ledit-x ledit-y _legotoxy editbuf count type lenlimit ledit-x + COLS 1- min SP>COL ; : __le-ldel ( -- ) \ Line delete 0 editbuf c! 0 to editpos ; : _lichar ( c1 -- ) autoclear \ should we clear the line on the if __le-ldel \ first character typed? false to autoclear then insertmode if editbuf 1+ editpos + dup 1+ maxedit editpos - move editbuf c@ 1+ lenlimit min editbuf c! then editbuf 1+ editpos + c! \ removed 'COLS 1- min' for better line wraping \ Sonntag, Januar 16 2005 dbu editpos 1+ lenlimit min ( COLS 1- min ) to editpos editpos editbuf c@ max editbuf c! ; : ?lechar ( --- ) \ handle normal keys, insert them lchar bl 0xFF between if lchar _lichar then ; : _le-home ( --- ) \ beginning of line 0 to editpos ; : _le-end ( --- ) \ End of line editbuf c@ to editpos ; : _le-right ( --- ) \ right a character \ removed 'COLS 1- min' for better line wraping \ Sonntag, Januar 16 2005 dbu editpos 1+ editbuf c@ min ( COLS 1- min ) to editpos ; : _le-left ( --- ) \ left a character editpos 1- 0MAX to editpos ; : _ledone ( --- ) \ flag edit is finished, save changes true to ?ldone saveflg on ; : _lequit ( false --- true ) \ flag edit is finished, discard chngs true to ?ldone mark-none saveflg off ; defer _le-ret ' _ledone is _le-ret defer _le-tab ' _ledone is _le-tab defer _le-quit ' _lequit is _le-quit defer _le-LF ' noop is _le-LF defer _le-pgup ' noop is _le-pgup defer _le-pgdn ' noop is _le-pgdn defer _le-up ' noop is _le-up defer _le-down ' noop is _le-down defer _le-ldel ' __le-ldel is _le-ldel : _le-fdel ( --- ) \ Forward delete editpos 1+ editbuf c@ max editbuf c! editbuf 1+ editpos + dup 1+ swap maxedit editpos - move -1 editbuf c+! ; : >to=bl ( --- ) \ forward to a blank editbuf 1+ dup maxedit + swap editpos + ?do i c@ bl = ?leave 1 +to editpos loop editbuf c@ editpos min to editpos ; : >to<>bl ( --- ) \ forward to a non blank editbuf 1+ dup maxedit + swap editpos + ?do i c@ bl <> ?leave 1 +to editpos loop editbuf c@ editpos min to editpos ; : _le-rword ( --- ) \ Forward to next word >to=bl >to<>bl ; : <to=bl+1 ( --- ) \ back to char following BL editpos 1- 0MAX to editpos editbuf 1+ dup editpos + 1- editbuf 1+ max ?do i c@ bl = ?leave -1 +to editpos -1 +loop ; : <to<>bl ( --- ) \ Back to non blank editpos 1- 0MAX to editpos editbuf 1+ dup editpos + 1- editbuf 1+ max ?do i c@ bl <> ?leave -1 +to editpos loop ; : _le-lword ( --- ) \ back a word <to<>bl <to=bl+1 ; : _le-bdel ( --- ) \ back delete editpos editbuf c@ max editbuf c! editpos ( --- f1 ) _le-left ( --- f1 ) if insertmode \ if we are in insertmode if _le-fdel \ then delete the character else bl editbuf 1+ editpos + c! \ else change char to blank then else beep then ; : _le-wdel ( --- ) \ word delete begin editpos editbuf c@ < editbuf 1+ editpos + c@ bl <> and while _le-fdel repeat begin editpos editbuf c@ < editbuf 1+ editpos + c@ bl = and while _le-fdel repeat ; : strip_bl's ( --- ) \ strip blanks from editbuf editpos >r _le-end begin _le-left editbuf 1+ editpos + c@ bl = editpos 0<> and while _le-fdel repeat editbuf c@ r> min 0MAX to editpos editbuf c@ 1 = \ count=1 & char=blank editbuf 1+ c@ bl = and if 0 editbuf c! \ then reset buffer to empty then ; : _le-ins ( --- ) \ toggle insert mode insertmode 0= dup to insertmode if big-cursor else norm-cursor then ; : _le-any ( --- ) \ handle any character entry ; : ?control ( --- ) \ handle control characters lchar bl < if false to autoclear \ no auto clear now lchar exec: \ 0 null 1 a 2 b 3 c 4 d 5 e 6 f noop _le-lword noop _le-pgdn _le-right _le-up _le-rword \ 7 g 8 h 9 i LF 11 k 12 l Enter _le-fdel _le-bdel _le-tab _le-LF noop noop _le-ret \ 14 n 15 o 16 p 17 q 18 r 19 s 20 t noop noop noop noop _le-pgup _le-left _le-wdel \ 21 u 22 v 23 w 24 x 25 y 26 z Esc noop _le-ins noop _le-down _le-ldel noop _le-quit \ 28 \ 29 ] 30 ^ 31 _ noop noop noop noop then ; : ?func ( --- ) \ handle function keys \ if function key bit is set lchar function_mask special_mask or and \ func or special lchar shift_mask and shift_mask = or \ or Shift mask lchar bl < or \ or control key if \ or other keypad key false to autoclear \ no auto clear now \ "ledit-chain" allows addingto or over-riding a function ckey at Forth commandline \ use CHAIN-ADD to add a function test, and CHAIN-ADD-BEFORE to over-ride an \ existing functionkey during commandline editing. lchar FALSE ledit-chain do-chain 0= if case k_home of _le-home endof \ Home k_up of _le-up endof \ Up arrow k_pgup of _le-PgUp endof \ PgDn k_left of _le-left endof \ Left arrow k_right of _le-right endof \ Right arrow k_end of _le-end endof \ End k_down of _le-down endof \ Down arrow k_pgdn of _le-PgDn endof \ PgDn k_insert of _le-ins endof \ Ins k_delete of _le-fdel endof \ Del k_left +k_control of _le-lword endof \ Ctrl Left arrow k_right +k_control of _le-rword endof \ Ctrl Right arrow endcase else drop \ already handled, discard key value 0 to lchar then then ; \ c1 = keyboard character \ f1 = true for done editing : _le-key ( c1 --- ) \ process a key to lchar ?lechar \ handle normal ascii ?func \ function characters ?control ; \ control chars \ x = char pos on row \ y = line number \ a1 = counted string \ n1 = edit limit length : <ledit> ( x y a1 n1 --- ) \ Edit line currently in EDITBUF. lenlimit >r get-cursor >r over c@ editpos min to editpos maxedit min to lenlimit \ save max edit length dup >r \ save source address editbuf over c@ lenlimit min 1+ move editbuf c@ lenlimit min editbuf c! dup 0< 0= \ SMuB if getrowoff + invert \ SMuB then \ SMuB to ledit-y to ledit-x \ save origin _le-ins _le-ins false to ?ldone begin .leline .lecursor key _le-key ?ldone until saveflg @ dup \ proper save exit if stripping_bl's \ do we want to strip blanks? if strip_bl's then true to stripping_bl's \ force it next time editbuf r@ over c@ lenlimit min 1+ move then r>drop r> set-cursor ( --- f1 ) r> to lenlimit false to autoclear ; \ no automatic line clear EXTERNAL \ externally available words start here \ x = char pos on row \ y = line number \ a1 = counted string \ n1 = edit limit length \ f1 = true for saved changes \ f1 = false for canceled with ESC : lineeditor ( x y a1 n1 --- f1 ) \ Edit line in a1 defer@ _le-quit >r ['] _lequit is _le-quit defer@ _le-LF >r ['] noop is _le-LF 0 to editpos <ledit> r> is _le-LF r> is _le-quit ; INTERNAL MAXSTRING constant b/accept \ each commandline is MAXSTRING bytes 31 constant n/accept \ save 31 previous command lines \ use 31 to make it fit in 8k bytes 0 value accept# 0 value accepted? b/accept n/accept * Pointer prev-accept-buf : accept-init ( -- ) 0 to accept# prev-accept-buf b/accept n/accept * erase ; initialization-chain chain-add accept-init \ add to init chain create laccept-buf b/accept allot laccept-buf off : +accept# ( n1 -- ) accept# + n/accept mod to accept# ; : prev-accept-buf" ( -- a1 n1 ) prev-accept-buf accept# b/accept * + count ; : accept-lup ( -- ) false to accepted? -1 +accept# prev-accept-buf" editbuf place editbuf c@ to editpos ; : accept-ldown ( -- ) accepted? 0= if 1 +accept# then false to accepted? prev-accept-buf" editbuf place editbuf c@ to editpos ; : __laccept ( a1 n1 -- ) 0 ED_READY editor-message \ notify editor we are ready ['] accept-lup is _le-up ['] accept-ldown is _le-down laccept-buf c@ \ backup current line if laccept-buf count prev-accept-buf accept# b/accept * + place 1 +accept# then true to accepted? swap >r >r _legetxy laccept-buf dup off r> lineeditor if laccept-buf count r@ swap move laccept-buf c@ _legetxy nip _legotoxy else editbuf off _legetxy nip 0 swap 2dup _legotoxy cols 1- sp>col _legotoxy 1 +accept# then r>drop laccept-buf c@ ; : _laccept ( a1 n1 -- n2 ) \ line editor version of accept defer@ _le-up >r defer@ _le-down >r ['] __laccept catch \ -- f1 r> is _le-down \ restore these functions r> is _le-up ( -- f1 ) throw ; ' _laccept is accept ' _laccept to defaultAccept \ make this the default handler MODULE \s variable samplebuffer 128 allot : sample ( --- ) s" Zimmer, Harold" samplebuffer place true to autoclear 10 04 samplebuffer 24 lineeditor drop cr samplebuffer count type ; --- NEW FILE: numconv.f --- \ $Id: numconv.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ 0 [IF] --------------------------- Change Block ------------------------------- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ------------------------- End Change Block ----------------------------- Experimental: a fully optimising, STC based, ANS Forth compliant kernel Copyright [c] 2005 by Alex McDonald (alex at rivadpm dot com) Tom Zimmer This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or <at your option> any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------------------------------------------------ [THEN] cr .( Loading number conversions... ) sourcefilename type \ Each number conversion routine on the "number?-chain" chain is sent a string \ ( addr len) and can attempt to convert the number. If the conversion fails \ the routine performs a -1 THROW to indicate that it can't convert the string; \ the next routine is then tried until success or the chain is exhausted. If \ the chain is exhausted, then a -13 THROW (undefined) is executed. \ If conversion succeeds, then a double number must be returned. If the number \ is truly a double, then set the DOUBLE? flag to true, otherwise the number will \ be considered a single, and the high order cell will be discarded. \ For numbers with a decimal point, the value DPL can be set to indicate \ where it's located in the input string. \ If desired, the flag -ve-num? can be set to true; the number will be negated \ before it is used. This is to avoid keeping flags to indicate that the sign \ has been detected in each routine separately. \ Floating point numbers are returned in the floating point stack; there is \ no return value, and the variable FLOAT? is set. See FLOAT.F for details; \ the code is in that file, not here. NOTE - even floating point routines must \ return a double value; it's ignored if FLOAT? is set. \ The chain number conversion technique allow number conversion to be easily \ extended to support additional forms of number conversion. This code is \ added very early, so you can normally only use words in the kernel here. \ [Historical note] Earlier versions of W32F used a similar chain technique, but \ carried a flag that was checked to see if the preceding routine had done the \ conversion. Performing a THROW on failure is much easier, hence the change. \ following defined in kernel; \ 0 VALUE DOUBLE? \ double value \ -1 VALUE DPL \ decimal point location \ 0 value -ve-num? \ negate value flag new-chain number?-chain : -ifzerothrow ( n -- n ) dup 0= throw \ -1 throw if zero length ; : -ve-test ( addr len -- addr' len' ) \ skip possible - sign, set -ve-num? -ifzerothrow \ stop if nothing to convert over c@ [char] - = \ check for sign if -ve-num? throw \ if already negative, throw true to -ve-num? 1 /string \ bump past -ifzerothrow \ nothing left is error then ; : run-numchain ( addr len -- d1 ) \ run number chain; \ d1 is number, or -13 throw (undefined) 2>r \ save string on rstack number?-chain \ run the number chain begin @ dup while num-init \ clear the flags dup 2r@ rot \ string xt cell+ @ catch \ do the xt 0= if \ leave if no error 2r> 2drop \ clean the rstack rot drop \ drop the address -ve-num? if dnegate then \ make negative if asked to exit then 2drop \ clear out failed conversion repeat -13 throw \ failed to convert ; \ ------------------------ dotted number -------------------------------------- : dotted-number? ( addr len -- d1 ) -ve-test 0 0 2SWAP >NUMBER \ convert number dup if OVER C@ [CHAR] . = \ next char is a '.' ? if dup 1- to DPL true to double? 1 /string >number \ convert the rest then dup 0<> throw \ check no string then 2drop \ otherwise, drop string ; \ ------------------------ based-number $&% ----------------------------------- \ Can be used to force number recognition in any base \ $ -- hex prefix \ & -- decimal \ % -- binary : base-tonum ( addr len base -- d1 ) base @ >r base ! \ save base, set base ['] dotted-number? catch \ convert r> base ! \ restore base throw \ throw if in error ; : xbase-convert ( addr len base -- d1 ) >r 1 /string r> \ past base char base-tonum ; : base-number? ( addr len -- d1 ) \ [-][$&%#][-]n[n*][.n*] -ve-test \ might start with - over c@ case [char] $ of 16 xbase-convert endof [char] & of 10 xbase-convert endof [char] # of 10 xbase-convert endof [char] % of 2 xbase-convert endof drop dotted-number? dup endcase ; : new-number ( str len -- d1 ) \ d1 is number, or -13 throw (undefined) localbuff >r r@ place r> ?uppercase count \ uppercase a copy run-numchain ; \ run the chain \ ------------------------ 0x[L] hex number ----------------------------------- : lastchar ( addr len -- addr len char ) 2dup 1- + c@ ; : 0x-number? ( addr len -- d1 ) -ve-test \ might start with - over 2 s" 0X" str= 0= throw \ start with 0X? 2 /string \ bump past 0x -ifzerothrow \ throw if too short lastchar [char] L = + \ end in L? trim off if so 16 base-tonum \ convert hex string ; \ -------------------------- xH hex number ------------------------------------ : hex-number? ( addr len -- d1 ) \ xxxxH type numbers -ifzerothrow \ throw if too short lastchar [char] H <> throw \ end in H? 1- 16 base-tonum \ trim off, convert ; \ --------------------------- '.' number -------------------------------------- : quoted-number? ( addr len -- d1 ) \ 'x' type numbers -ve-test \ might be negative 3 <> throw \ not 3 chars 'x' dup dup c@ swap 2 + c@ \ fetch first and third chars over = swap [char] ' = and invert throw \ equal and ', otherwise error 1+ c@ 0 \ fetch the character ; \ ------------------------ Windows Constant Server ---------------------------- library wincon.dll \ winlib-last @ constant WinConLib 3 proc wcFindWin32Constant \ winproc-last @ constant WinConPtr \ for **WORDS.F** 3 proc wsEnumWin32Constants \ winproc-last @ constant WinEnumPtr \ for **WORDS.F** : wincon-call ( a1 -- n f ) \ call to find constant >r 0 sp@ r> count swap \ point at result on stack call wcFindWin32Constant \ find it ; : wincon-number? ( a1 n1 -- d ) \ find constant; already uppercased maxstring localalloc dup>r \ allocate a buffer place r@ wincon-call 0= \ find constant if drop \ drop returned value s" A" r@ +place \ append an 'A' r@ wincon-call \ find it 0= throw \ can't find it then r>drop 0 \ make a double ; \ ------------------- Dotted IP notation (a.b.c.d) ------------------------------ : ip-seg ( addr len -- addr' len' n ) \ IP segment before . dup >r \ save length 0 0 2swap >number \ convert to number 2swap d>s \ save string & convert to single over r> <> \ check lengths differ before & after over 0 256 within \ and range check it and 0= throw \ flag; true=error ; : ip-number? ( addr len -- d ) \ convert ip address 8 24 do \ 3 dotted segments ip-seg \ convert up to dot i lshift \ shift the value, -rot \ addr string to top -ifzerothrow \ string too short? over c@ [char] . <> throw \ check for a dot, error if not 1 /string \ move past . -8 +loop \ next shift ip-seg \ convert what's left -rot throw \ should be nothing left drop or or or 0 \ ors to get result, make double ; number?-chain chain-add base-number? number?-chain chain-add quoted-number? number?-chain chain-add hex-number? number?-chain chain-add 0x-number? number?-chain chain-add wincon-number? \ windows constant server number?-chain chain-add ip-number? \ dotted IP notation ' new-number is number \ replace normal number conversion \ with the new chain scheme \ ------------------- Compatability layer -------------------------------------- defer discard-number ' 2drop is discard-number \ for doubles; see float.f for floats : number? ( addr len -- d f ) \ to support >float num-init ['] dotted-number? catch 0= double? 0= and \ october 1st, 1996 - 10:51 tjz & am ; \ double exponent not allowed : is-number? ( addr len -- f ) \ number check ['] run-numchain catch >r discard-number r> 0= ; \ ----------------------- Floating point --------------------------------------- \ defined in FLOAT.F \ ----------------------- Number display --------------------------------------- : (xud,.) ( ud commas -- a1 n1 ) >r <# \ every 'commas' digits from right r@ 0 do # 2dup d0= ?leave loop begin 2dup d0= 0= \ while not a double zero while [char] , hold r@ 0 do # 2dup d0= ?leave loop repeat #> r> drop ; : (ud,.) ( ud -- a1 n1 ) base @ \ get the base dup 10 = \ if decimal use comma every 3 digits swap 8 = or \ or octal use comma every 3 digits 4 + (xud,.) ; \ display commas every 3 or 4 digits : ud,.r ( ud l -- ) \ right justified, with ',' >r (ud,.) r> over - spaces type ; : u,.r ( n1 n2 -- ) \ display double unsigned, justified in field 0 swap ud,.r ; : ud. ( ud -- ) \ display double unsigned 0 ud,.r ; : ud.r ( ud l -- ) \ right justified, without ',' >r 16 (xud,.) r> over - spaces type ; : (d.#) ( d1 n1 -- a1 n1 ) \ display d1 with n1 places behind dp >r <# \ n1=negative will display'.' but no digits r> ?dup \ if not zero, then display places if 0 max 0 ?do # loop [char] . hold then #s #> ; : d.r.# ( d1 n1 n2 -- ) \ print d1 in a field of n1 characters, \ displ... [truncated message content] |
From: Dirk B. <db...@us...> - 2006-09-21 16:26:36
|
Update of /cvsroot/win32forth/win32forth-stc/demos In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv2950/demos Added Files: bench.f Log Message: win32forth-stc base comit --- NEW FILE: bench.f --- \ IN-SYSTEM create TIME-BUF here 0 w, \ +0 year 0 w, \ +2 month 0 w, \ +4 day of week 0 w, \ +6 day of month 0 w, \ +8 hour 0 w, \ +10 minute 0 w, \ +12 second 0 w, \ +14 milliseconds here swap - constant TIME-LEN create date$ 32 allot create time$ 32 allot : get-local-time ( -- ) \ get the local computer date and time [...1054 lines suppressed...] cr cr .ann ." This system's application performance" .specifics CR .header [$ $SIEVE$ $FIB$ $SORT$ $RAND$ $CODE77$ $DHRY$ \ [ ANSSYSTEM ] [IF] $DHRY$ [THEN] CR ." Total:" 1 $] ; decimal cr cr .( Benchmark code size = ) code-here start-here - . .( bytes.) cr BENCHMARK CR CR .( To run the benchmark program again, type BENCHMARK ) |
Update of /cvsroot/win32forth/win32forth-stc/src/kernel In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv2950/src/kernel Added Files: gMeta.f gkernel.f gkernext.f gmeta-compiler.f gmeta-fkernel.f gmetadlg.f gversion.f Log Message: win32forth-stc base comit --- NEW FILE: gmeta-compiler.f --- \ $Id: gmeta-compiler.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ 0 [IF] WIN32FORTH EXPERIMENTAL KERNEL GMETA-COMPILER.F Version 0.1 Started 15/08/2005 23:09:35 Completed 29/09/2005 20:29:10 --------------------------- Change Block ------------------------------- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ------------------------- End Change Block ----------------------------- [...1441 lines suppressed...] t: 1- ( n -- n-1 ) macro[ dec eax ]macro ; t: 1+ ( n -- n-1 ) macro[ inc eax ]macro ; t: c@ ( n -- n-1 ) macro[ movzx eax, byte [eax] ]macro ; (( *** NOTE From this point on, everything is meta compiled! )) --- NEW FILE: gkernext.f --- \ $Id: gkernext.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ 0 [IF] WIN32FORTH EXPERIMENTAL KERNEL GKERNEXT.F Version 0.1 15/08/2005 23:09:35 --------------------------- Change Block ------------------------------- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ------------------------- End Change Block ----------------------------- Experimental: a fully optimising, STC based, ANS Forth compliant kernel This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or <at your option> any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------------------------------------------------ [THEN] cr .( Loading NEXT ASM Support) get-current also forth definitions variable stk-i -1 stk-i ! \ # of input cells, -ve is unknown variable stk-o -1 stk-o ! \ # of output cells, -ve is unknown : stk-reset ( -- ) \ reset stack effects -1 stk-i ! -1 stk-o ! ; : stk-adjust ( -- ) \ generate adjustment offset stk-i @ stk-o @ 2dup or 0< not -rot - cells and \ zero if either -ve dup if >r macro[ lea ebp, r@ [ebp] \ !! use lea not add/sub to preserve cc ]macro r> then drop stk-reset \ reset ; : stk-calc ( in out -- ) \ calculate stack effects 2dup or stk-i @ or stk-o @ or 0< \ if any -ve if 2drop stk-i on stk-o on \ set both -ve else over stk-o @ - dup 0> \ get in stk value if dup stk-i +! stk-o +! \ adjust else drop then swap - stk-o +! then ; previous set-current macro: next ( -- ) \ assemble the code to do a next a; ofa-calc \ resolve the optimizer field address ret ret \ double ret to stop decompiler ;macro macro: next; ( -- ) \ terminate code word stk-adjust \ adjust stack next c; \ and return stk-reset ;macro --- NEW FILE: gkernel.f --- \ $Id: gkernel.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ 0 [IF] WIN32FORTH EXPERIMENTAL KERNEL SKERNEL.F Version 0.1 15/08/2005 23:09:35 --------------------------- Change Block ------------------------------- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ------------------------- End Change Block ----------------------------- Experimental: a fully optimising, STC based, ANS Forth compliant kernel [...5890 lines suppressed...] \ \ --------------------------------------------------------------------- \ --------------------------------------------------------------------- \ ------------------- The End ----------------------------------------- \ Forward reference resolutions ' header resolves header ' res-loadproc resolves res-loadproc ' defined resolves defined ' move-code resolves move-code ' throw resolves throw ' ?throw resolves ?throw ' start/stop resolves start/stop ' load-dll resolves load-dll ' nabort! resolves nabort! ' warnmsg resolves warnmsg ' find resolves find --- NEW FILE: gmeta-fkernel.f --- \ $Id: gmeta-fkernel.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ 0 [IF] WIN32FORTH EXPERIMENTAL KERNEL GMETA-FKERNEL.F --------------------------- Change Block ------------------------------- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ------------------------- End Change Block ----------------------------- Experimental: a fully optimising, STC based, ANS Forth compliant kernel This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or <at your option> any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------------------------------------------------ [THEN] cr .( Loading META GKERNEL Wrapper) \ SYS-WARNING-OFF \ don't warn about use of system words ONLY FORTH ALSO DEFINITIONS ALSO VIMAGE WARNING OFF SYS-WARNING-OFF : SETSIZE ; \ must be findable, but doesn't do anything KERN-VER $FLOAD \ GET KERNEL VERSION 512000 0x1000 naligned constant MINAPPMEM \ minimum size of kernel application dictionary 512000 0x1000 naligned constant MINCODEMEM \ minimum size of kernel code dictionary 512000 0x1000 naligned constant MINSYSMEM \ minimum size of kernel system dictionary 1024 0x1000 naligned constant MINKODEMEM \ minimum size of kernel kode dictionary 512000 0x1000 naligned TO IMAGE-ASIZE \ size of kernel application dictionary 512000 0x1000 naligned TO IMAGE-CSIZE \ size of kernel data dictionary 512000 0x1000 naligned TO IMAGE-SSIZE \ size of kernel system dictionary 1024 0x1000 naligned TO IMAGE-KSIZE \ size of kernel kode dictionary 0 STD-HEADLEN + TO IMAGE-CSEP \ separations IMAGE-CSIZE STD-HEADLEN + TO IMAGE-ASEP IMAGE-ASIZE IMAGE-CSIZE + STD-HEADLEN + TO IMAGE-SSEP IMAGE-SSIZE IMAGE-ASIZE IMAGE-CSIZE + + STD-HEADLEN + TO IMAGE-KSEP 0x10000 DUP MALLOC TO IMAGE-CODEPTR IMAGE-CODEPTR SWAP 0x90 FILL \ where code IMAGE-APPPTR is built 0x10000 DUP MALLOC TO IMAGE-APPPTR IMAGE-APPPTR SWAP ERASE \ where target IMAGE-APPPTR is built 0x10000 DUP MALLOC TO IMAGE-SYSPTR IMAGE-SYSPTR SWAP ERASE \ where target heads are built 0x10000 DUP MALLOC TO IMAGE-KODEPTR IMAGE-KODEPTR SWAP 0x90 FILL \ where kode IMAGE-APPPTR is built 331 constant #threads \ # of threads in forth-wordlist 17 constant #ithreads \ # of threads in procs lexicon 7 constant #ethreads \ # of threads in exports lexicon 7 constant #fthreads \ # of threads in files lexicon 31 constant #hthreads \ # of threads in hidden lexicon 1 constant #rthreads \ # of threads in root lexicon CR CR .( Build information ) \ .month,day,year .( ) .time CR .( Directory: ) CURRENT-DIR$ COUNT TYPE CR .( Source: ) KERN-SRC COUNT TYPE CR .( NEXT macros: ) KERN-NEXT COUNT TYPE CR .( Version from: ) KERN-VER COUNT TYPE CR .( Version: ) #version# ((version)) type .( Build: ) #build# . CR .( Build Image: ) KERN-NAME COUNT TYPE .( Type: ) Z" GUI CUI DLL " EXETYPE 1- CELLS+ 4 TYPE [debug] [if] cr .( [DEBUG] generating basic debug) [then] [tail-call] [if] cr .( [TAIL-CALL] optimising tail calls) [then] CR CR .( Compiling... ) \ time-reset \ =================================================================== \ ** NOTE From this point on, everything is meta compilation \ ======================= LOAD COMPILER ============================= defer ofa-calc KERN-NEXT $FLOAD \ load kernel extension for NEXT, EXEC code KERN-CMP $FLOAD \ load the compiler \ ======================= COMPILED CODE ============================= KERN-SRC $FLOAD \ load & compile the kernel source \ ===================== END COMPILED CODE =========================== \ NOTE: We're still in compile mode, only runtime after this ct-resolve \ resolve the compile tokens na-resolve \ resolve the compile tokens \ Initialize list head ptr variables proc-list-t @ winproc-link t-! libs-list-t @ winlib-link t-! voc-link-t @ voc-link t-! \ Copy over the threads in the vocabularies voc-ptr exports \ correct the vocabs exports-threads swap tsys-there #ethreads cells move \ move the threads voc-ptr imports \ correct the vocabs imports-threads swap tsys-there #ithreads cells move \ move the threads voc-ptr files \ correct the vocabs files-threads swap tsys-there #fthreads cells move \ move the threads voc-ptr hidden \ correct the vocabs hidden-threads swap tsys-there #hthreads cells move \ move the threads voc-ptr root \ correct the vocabs root-threads swap tsys-there #rthreads cells move \ move the threads voc-ptr forth \ correct the vocabs forth-threads swap tsys-there #threads cells move \ move the threads \ Calculate lengths of sections to write tapp-HERE IMAGE-ORIGIN IMAGE-ASEP + - TO IMAGE-AACTUAL tsys-HERE IMAGE-ORIGIN IMAGE-SSEP + - TO IMAGE-SACTUAL tcode-HERE IMAGE-ORIGIN IMAGE-CSEP + - TO IMAGE-CACTUAL tkode-HERE IMAGE-ORIGIN IMAGE-KSEP + - TO IMAGE-KACTUAL \ Initialise the data pointers \ CELL OFFSET FUNCTION \ ---- ------ -------- \ 0 0 Current pointer to area \ 1 4 Address of the area (origin) \ 2 8 Highest address of area (origin + length) tapp-HERE ADP t-! \ init the data pointers tsys-HERE SDP t-! tcode-HERE CDP t-! tkode-HERE KDP t-! IMAGE-ORIGIN IMAGE-CSEP + CDP CELL+ t-! IMAGE-ORIGIN IMAGE-ASEP + ADP CELL+ t-! IMAGE-ORIGIN IMAGE-KSEP + KDP CELL+ t-! IMAGE-ORIGIN IMAGE-SSEP + SDP CELL+ t-! IMAGE-ORIGIN IMAGE-CSEP + IMAGE-CSIZE + CDP 2 CELLS+ t-! IMAGE-ORIGIN IMAGE-ASEP + IMAGE-ASIZE + ADP 2 CELLS+ t-! IMAGE-ORIGIN IMAGE-SSEP + IMAGE-SSIZE + SDP 2 CELLS+ t-! IMAGE-ORIGIN IMAGE-KSEP + IMAGE-KSIZE + KDP 2 CELLS+ t-! ' EXEM IMAGE-ORIGIN - TO IMAGE-ENTRY \ entry point \ Make sure words all resolved .UNRESOLVED [IF] CR C" *** Errors in compile" ABORT! [ELSE] cr .( Compilation complete) cr IMAGE-STATS IMAGE-SAVE [IF] KERN-NAME COUNT STD-IMG2EXE [THEN] cr \ .elapsed cr [THEN] --- NEW FILE: gMeta.f --- \ $Id: gMeta.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ 0 [IF] WIN32FORTH EXPERIMENTAL KERNEL GMETA-FKERNEL.F Convenience loader for meta compiler. --------------------------- Change Block ------------------------------- arm 15/08/2005 22:56:45 First version 0.1 STC based kernel ------------------------- End Change Block ----------------------------- Experimental: a fully optimising, STC based, ANS Forth compliant kernel This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or <at your option> any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ------------------------------------------------------------------------ [THEN] only forth also definitions also vimage \ default files for meta-compile create kern-name ," gkernel.exe" create kern-src ," stc\kernel\gkernel.f" create kern-next ," stc\kernel\gkernext.f" create kern-ver ," stc\kernel\gversion.f" create kern-cmp ," stc\kernel\gmeta-compiler.f" true value [debug] \ basic debug flag true value [tail-call] \ generate tail-calls 0x400000 to image-origin \ where target image will run image-origin to std-exeload \ needed but needs checked in imageman why so gui to exetype \ default is a gui true value image-save \ we want to save the image \ fpath+ stc\kernel fload stc\kernel\gmeta-fkernel \ compile the kernel --- NEW FILE: gmetadlg.f --- \ $Id: gmetadlg.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ cr .( Loading META FKERNEL Dialog) load-dialog METADLG \ load the dialogs for meta \ -------------------- Meta Dialog -------------------- :Object META-DIALOG <SUPER dialog IDD_META METADLG find-dialog-id constant template int sysmem int appmem int codemem int defsysmem int defappmem int defcodemem :M GetRegistryValue: ( a1 n1 -- n2 flag ) \ read a value from registry s" MetaDlg" RegGetString dup if number? >r d>s r> else 2drop 0 false then ;M :M SetRegistryValue: ( n1 a1 n2 -- ) \ write a value to registry rot s>d (d.) 2swap s" MetaDlg" RegSetString ;M :M ClassInit: ( -- ) ClassInit: super 0 to appmem 0 to sysmem 0 to codemem 0 to defappmem 0 to defsysmem 0 to defcodemem ;M :M SetEdit: ( -- ) appmem 0 <# #s #> IDC_EDTAPPMEM SetDlgItemText: self sysmem 0 <# #s #> IDC_EDTSYSMEM SetDlgItemText: self codemem 0 <# #s #> IDC_EDTCODEMEM SetDlgItemText: self ;M :M On_Init: ( hWnd-focus -- f ) SetEdit: self 1 ;M :M GetAppMem: ( -- appmemory ) appmem ;M :M SetAppMem: ( appmemory -- ) TO appmem ;M :M SetDefAppMem: ( appmemory -- ) TO defappmem ;M :M GetSysMem: ( -- sysmemory ) sysmem ;M :M SetSysMem: ( sysmemory -- ) TO sysmem ;M :M SetDefSysMem: ( sysmemory -- ) TO defsysmem ;M :M GetCodeMem: ( -- codememory ) codemem ;M :M SetCodeMem: ( codememory -- ) TO codemem ;M :M SetDefCodeMem: ( codememory -- ) TO defcodemem ;M :M SetDefault: ( -- ) \ restore default values defappmem SetAppMem: self defsysmem SetSysMem: self defcodemem SetCodeMem: self SetEdit: self ;M :M Start: ( -- n1 ) \ return size of image conhndl template run-dialog ;M :M On_Command: { hCtrl code ID \ memory$ flag -- f1 } 64 localAlloc: memory$ 0 to flag ID case IDOK of memory$ 31 IDC_EDTAPPMEM GetDlgItemText: self memory$ swap number? abs +to flag drop to appmem memory$ 31 IDC_EDTSYSMEM GetDlgItemText: self memory$ swap number? abs +to flag drop to sysmem memory$ 31 IDC_EDTCODEMEM GetDlgItemText: self memory$ swap number? abs +to flag drop to codemem flag 3 = \ if all are ok, then we are done if 1 end-dialog else beep then endof IDCANCEL of 0 end-dialog endof 3 of SetDefault: self endof false swap ( default result ) endcase ;M ;Object --- NEW FILE: gversion.f --- \ $Id: gversion.f,v 1.1 2006/09/21 16:26:33 dbu_de Exp $ cr .( Loading META version info) 00203 VALUE #VERSION# \ Change only the version number above; the build number is automatically assigned. \ After changeing the version number you must rebuild your complete Win32Forth \ system (including WinEd and SciEdit). Because this Version number is used in \ wm_win32for-init to create a unique message name. VERSION# #VERSION# = [IF] build# 1+ VALUE #BUILD# [ELSE] 1 VALUE #BUILD# [THEN] \s <--- remember, this is code -- needed to stop! Version numbers: v.ww.rr v Major version ww Minor version rr Release |
From: Dirk B. <db...@us...> - 2006-09-21 16:25:25
|
Update of /cvsroot/win32forth/win32forth-stc/src/kernel In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv2484/kernel Log Message: Directory /cvsroot/win32forth/win32forth-stc/src/kernel added to the repository |
From: Dirk B. <db...@us...> - 2006-09-21 16:24:15
|
Update of /cvsroot/win32forth/win32forth-stc In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv1624 Added Files: Wincon.dll w32fConsole.dll Log Message: win32forth-stc base comit --- NEW FILE: Wincon.dll --- (This appears to be a binary file; contents omitted.) --- NEW FILE: w32fConsole.dll --- (This appears to be a binary file; contents omitted.) |
From: Dirk B. <db...@us...> - 2006-09-21 16:23:08
|
Update of /cvsroot/win32forth/win32forth-stc/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv1192/src Log Message: Directory /cvsroot/win32forth/win32forth-stc/src added to the repository |
From: Dirk B. <db...@us...> - 2006-09-21 16:23:01
|
Update of /cvsroot/win32forth/win32forth-stc/doc In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv1192/doc Log Message: Directory /cvsroot/win32forth/win32forth-stc/doc added to the repository |
From: Dirk B. <db...@us...> - 2006-09-21 16:23:00
|
Update of /cvsroot/win32forth/win32forth-stc/demos In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv1192/demos Log Message: Directory /cvsroot/win32forth/win32forth-stc/demos added to the repository |
From: Dirk B. <db...@us...> - 2006-09-21 16:20:55
|
Update of /cvsroot/win32forth/win32forth-stc In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv358 Added Files: gkernel.exe Log Message: --- NEW FILE: gkernel.exe --- (This appears to be a binary file; contents omitted.) |
From: George H. <geo...@us...> - 2006-09-21 13:12:45
|
Update of /cvsroot/win32forth/win32forth/doc In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv22397/win32forth/doc Modified Files: p-imageman.htm p-index.htm Log Message: gah:Added No console to the advanced topics menu and a link from imageman. Index: p-index.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-index.htm,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** p-index.htm 30 Aug 2006 08:30:22 -0000 1.16 --- p-index.htm 21 Sep 2006 13:12:41 -0000 1.17 *************** *** 149,152 **** --- 149,153 ---- <li><a href="p-486asm.htm">Documentation for 486ASM.F</a> (the assembler)</li> <li><a href="p-imageman.htm">Building and saving an application</a></li> + <li><a href="p-noconsole.htm">Building a turnkeyed application that runs without the console dll</a></li> <li><a href="p-arch1.htm">The Internal Architecture of Win32Forth</a></li> <li><a href="p-using-if.htm">Using -IF</a></li> Index: p-imageman.htm =================================================================== RCS file: /cvsroot/win32forth/win32forth/doc/p-imageman.htm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** p-imageman.htm 21 Dec 2004 00:18:56 -0000 1.1 --- p-imageman.htm 21 Sep 2006 13:12:41 -0000 1.2 *************** *** 436,439 **** --- 436,441 ---- </li> </ul> + <h3>Building a turnkeyed application that runs without the console dll</h3> + <p> See <a href="p-noconsole.htm">NoConsole</a></p> <hr> <p>Document $Id$</p> |
From: Jos v.d.V. <jo...@us...> - 2006-09-21 12:50:24
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv13686/src Modified Files: ANSFILE.F Log Message: Jos: Added the ForAllFileNames feature and changed DIR so that it uses ForAllFileNames. Also dexed the changes. Index: ANSFILE.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/ANSFILE.F,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** ANSFILE.F 13 Sep 2006 09:34:57 -0000 1.6 --- ANSFILE.F 21 Sep 2006 12:50:17 -0000 1.7 *************** *** 162,165 **** --- 162,171 ---- _win32-find-data 11 cells+ ; + : dir-attribute? ( - flag ) + \ *G Returns true when a file is a directory. \n + \ ** Need to call find-first-file or find-next-file word before using this word. \n + \ ** Can be used in combination with ForAllFileNames + _win32-find-data @ FILE_ATTRIBUTE_DIRECTORY and ; + 2 cells newuser file-time-buf \ *G 2Variable to hold the FILETIME structure, which is a little endian (i.e. reversed order) *************** *** 195,212 **** ' zcount alias asciiz->asc-len ( adrz -- sadr slen ) IN-SYSTEM : .dir->file-name ( -- ;print file name in the dir ) _win32-find-data 11 cells+ \ adrz zcount \ adrz scan-len slen dup>r type \ adrz len ;print file name ! 12 r> - 0max spaces ; ! : .dir->file-size ( -- ;print file size ) ! _win32-find-data @ FILE_ATTRIBUTE_DIRECTORY and if ." dir " ! else _win32-find-data 8 cells+ @ dup 12 u,.r space \ print nFileSizeLow ! total-file-bytes +! then ; --- 201,255 ---- ' zcount alias asciiz->asc-len ( adrz -- sadr slen ) + : dir->file-name ( -- adr count ) + \ *G Returns the adres and count of a file in a directory. \n + \ ** Need to call find-first-file or find-next-file word before using this word. \n + \ ** Can be used in combination with ForAllFileNames + get-file-name zcount ; + + : ForAllFileNames { cfa } ( adr slen cfa -- ) + \ *G Executes the CFA for each found file in a directory. \n + \ ** A file specification adr slen may contain wildcards \n + \ ** NOTE: Directory names are also considered to be a file-name. \n + \ ** Directory names can be detected by dir-attribute? + 0 #files ! \ reset # of files in dir + find-first-file nip \ adrd ior - find first file + 0 <> if exit then \ if file is not found, exit + dir->file-name get-file-name 0> + if cfa execute 1 #files +! + else 2drop + then + + begin find-next-file nip 0= \ ior - find next file + while get-file-name 0> + if 1 #files +! dir->file-name cfa execute + then + repeat + find-close drop ; + + : ForAllFiles ( cfa -- ) + \ *G Executes the CFA on ALL found files in a directory. \n + \ ** NOTE: Directory names are also considered to be a file-name. \n + \ ** Directory names can be detected by dir-attribute? \n + s" *.*" rot ForAllFileNames ; + + IN-SYSTEM + : .dir->file-name ( -- ;print file name in the dir ) _win32-find-data 11 cells+ \ adrz zcount \ adrz scan-len slen dup>r type \ adrz len ;print file name ! 12 r> - 0max spaces ; deprecated ! : .dir->file-size ( -- ) ! \ *G Print the size or directory indication of a file \n ! \ ** Need to call find-first-file or find-next-file word before using this word. \n ! \ ** Can be used in combination with ForAllFileNames ! dir-attribute? if ." dir " ! else get-file-size dup 12 u,.r space \ print nFileSizeLow ! total-file-bytes +! then ; *************** *** 222,240 **** WHILE 1 #files +! \ update file number 25 ?cr ! .dir->file-size \ print the size of file ! .dir->file-name \ and the name of file start/stop ! REPEAT ; : print-dir-files ( adr slen -- ) \ W32F Files Extra \ *G Print all the files and sub-directories in a directory that match a specific \ ** pattern. ! cr ." Directory of: " 2dup type ! ['] _print-dir-files catch ! IF 2drop \ discard abort results THEN ! find-close drop ! cr #files @ . ." Files displayed, using " ! total-file-bytes @ 1 u,.r ." bytes of disk." ; : dir ( "name" -- ) \ W32F Files Extra --- 265,294 ---- WHILE 1 #files +! \ update file number 25 ?cr ! .dir->file-size \ print the size of file ! .dir->file-name \ and the name of file start/stop ! REPEAT ; deprecated ! ! : .file-size-name ( adr len - ) ! \ *G Print the size or directory indication and the name of file. ! \ ** It also formats the line. \n ! \ ** Need to call find-first-file or find-next-file word before using this word. \n ! \ ** Can be used in combination with ForAllFileNames ! 25 ?cr .dir->file-size ! dup>r type 12 r> - 0max spaces ! start/stop ; ! : print-dir-files ( adr slen -- ) \ W32F Files Extra \ *G Print all the files and sub-directories in a directory that match a specific \ ** pattern. ! cr ." Directory of: " 2dup type cr ! 0 total-file-bytes ! \ reset total-file-bytes ! 0 #files ! \ reset # of files in dir ! ['] .file-size-name ['] ForAllFileNames catch ! IF 3drop \ discard abort results THEN ! cr #files @ . ." Files displayed, using " ! total-file-bytes @ 1 u,.r ." bytes of disk." ; : dir ( "name" -- ) \ W32F Files Extra *************** *** 245,249 **** \ ** If "name" ends in : assume a drive use "name"\*.* for the search pattern. \n \ *P The pattern can contain the standard Windows wildcards. ! /parse-word dup c@ 0= \ if not spec given, use *.* IF s" *.*" pocket place THEN dup count + 1- c@ ':' = \ if just a drive, add \ --- 299,303 ---- \ ** If "name" ends in : assume a drive use "name"\*.* for the search pattern. \n \ *P The pattern can contain the standard Windows wildcards. ! /parse-word dup c@ 0= \ if not spec given, use *.* IF s" *.*" pocket place THEN dup count + 1- c@ ':' = \ if just a drive, add \ |
From: Jos v.d.V. <jo...@us...> - 2006-09-21 12:46:18
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv12120/src Modified Files: Debug.f Log Message: Jos: Removed some typo's Index: Debug.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Debug.f,v retrieving revision 1.13 retrieving revision 1.14 diff -C2 -d -r1.13 -r1.14 *** Debug.f 18 Sep 2006 10:33:25 -0000 1.13 --- Debug.f 21 Sep 2006 12:46:08 -0000 1.14 *************** *** 430,434 **** ' .s-base is debug-.s ! : f.s-debug ( -- ) \ display the floating point stack whiile debuging fdepth IF fdepth ." {" 1 .r ." } " --- 430,434 ---- ' .s-base is debug-.s ! : f.s-debug ( -- ) \ display the floating point stack while debugging fdepth IF fdepth ." {" 1 .r ." } " |
From: Jos v.d.V. <jo...@us...> - 2006-09-18 10:33:30
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv26327/src Modified Files: Debug.f Log Message: Jos: Extended the debugger so that it can be used to show what is going on in the floating point stack. It is also possible to switch between the normal stack and the floating point stack. Index: Debug.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Debug.f,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** Debug.f 3 Aug 2006 13:08:22 -0000 1.12 --- Debug.f 18 Sep 2006 10:33:25 -0000 1.13 *************** *** 430,433 **** --- 430,444 ---- ' .s-base is debug-.s + : f.s-debug ( -- ) \ display the floating point stack whiile debuging + fdepth + IF fdepth ." {" 1 .r ." } " + show-fp-depth fdepth umin dup 1- swap 0 + DO 10 ?cr + dup i - fpick g. + LOOP + drop + ELSE ." Empty fp stack " + THEN ; + : base-toggle ( -- ) debug-base 0x10 = *************** *** 694,699 **** until tracing ; ! : debug ( -<name>- ) ! ' adebug ; synonym bp debug --- 705,722 ---- until tracing ; ! : ndbg ( - ) \ Switch to the normal stack ! ['] .s-base is debug-.s ; ! ! : debug ( -<name>- ) \ Shows the normal stack while debugging ! ndbg ' adebug ; ! ! : fdbg ( - ) \ Switch to the floating point stack ! ['] f.s-debug is debug-.s ; ! ! : fdebug ( -<name>- ) \ Shows the floating point stack while debugging ! fdbg ' adebug ; ! ! \ fdbg and ndbg can be used after the F command while debugging. ! \ So you can switch between the stacks while debugging synonym bp debug |
From: George H. <geo...@us...> - 2006-09-18 10:14:22
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv18829/win32forth/src Modified Files: Class.f Log Message: gah:Added **and [self] for late-binding (for MOPS compatatibility) plus tidied up vocabulary switching somewhat. Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Class.f,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** Class.f 16 Sep 2006 10:44:46 -0000 1.22 --- Class.f 18 Sep 2006 10:14:19 -0000 1.23 *************** *** 11,16 **** cr .( Loading Primitive Object Class...) - only forth also definitions - -4105 constant warn_clash --- 11,14 ---- *************** *** 30,34 **** @word count method-hash ; ! classes also definitions \ -------------------- Selectors -------------------- --- 28,48 ---- @word count method-hash ; ! : [[ ( "code to evaluate< ]]>" -- ) \ W32F Class In-System Forth ! \ *G \b Interpretation: \d When preceeded by a selector, parses the input stream up to a ! \ ** terminating ]] evaluates the code and then executes the method for the object ! \ ** address on the stack. An error will occur if "code to evaluate" does not produce ! \ ** a valid object address. \n ! \ ** An error also occurs if [[ isn't preceeded by a selector. ! \ *P \b Compilation: \d When preceeded by a selector, compiles the input stream up to a ! \ ** terminating ]] and then compiles a late-bound call to the method selector ! \ ** address on the stack. A run-time error will occur if "code to evaluate" does not ! \ ** a valid object address. \n ! \ ** An compile-time error also occurs if [[ isn't preceeded by a selector. ! true abort" [[ must be preceeded by a selector " ; IMMEDIATE ! ! : ** ( -- ) ! true abort" ** must be preceeded by a selector " ; immediate ! ! private classes internal \ -------------------- Selectors -------------------- *************** *** 49,53 **** \ references are from class pfa ! IN-APPLICATION voc-pfa-size nostack1 --- 63,67 ---- \ references are from class pfa ! in-previous voc-pfa-size nostack1 *************** *** 104,108 **** \ code ((findm)) ( SelID addr -- 0cfa t OR f ) ! in-application named-new$ tempmsg$ --- 118,122 ---- \ code ((findm)) ( SelID addr -- 0cfa t OR f ) ! in-previous named-new$ tempmsg$ *************** *** 143,146 **** --- 157,163 ---- LOADED? debug.f [if] \ debug support + + also bug + : dbg-next-cell-class ( ip cfa -- ip' cfa ) dup ['] (Defer) = *************** *** 155,159 **** if 2drop cr .s \ !!! USES A COPY OF THE ADDRESS ON TOP OF THE STACK TO LOCATE THE METHOD !!! ! [ bug ] ip @ cell+ @ over Find-Method nip 3 cells+ ip ! 2 nesting +! true --- 172,176 ---- if 2drop cr .s \ !!! USES A COPY OF THE ADDRESS ON TOP OF THE STACK TO LOCATE THE METHOD !!! ! ip @ cell+ @ over Find-Method nip 3 cells+ ip ! 2 nesting +! true *************** *** 161,167 **** dbg-nest-chain chain-add dbg-nest-class - [then] ! classes LOADED? see.f [if] \ decompiler support --- 178,185 ---- dbg-nest-chain chain-add dbg-nest-class ! previous ! ! [then] LOADED? see.f [if] \ decompiler support *************** *** 189,193 **** [then] ! in-application 0 Value ^Self --- 207,211 ---- [then] ! in-previous 0 Value ^Self *************** *** 196,208 **** in-system ! : ?isObj ( cfa -- f ) @ doObj = ; ! : ?isValue ( cfa -- f ) @ doValue = ; ! : ?isLocal ( cfa -- f ) @ doLocal = ; ! : ?isVect ( cfa -- f ) @ dup doValue = ! over doDefer = or ! swap (iv@) = or ; : ?isParen ( cfa -- f ) ! >name nfa-count drop c@ [char] [ = ; \ ERROR if not compiling a new class definition --- 214,241 ---- in-system ! ! : [self] ( -- ) ! true abort" Use only for self-reference to object" ; immediate ! ! : ?isObj ( cfa -- f ) ! @ doObj = ; ! : ?isValue ( cfa -- f ) ! @ doValue = ; ! : ?isLocal ( cfa -- f ) ! @ doLocal = ; ! : ?isVect ( cfa -- f ) ! @ dup doValue = ! over doDefer = or ! swap (iv@) = or ; : ?isParen ( cfa -- f ) ! \ >name nfa-count drop c@ [char] [ = ; ! dup ['] [ = swap ['] [[ = or ; ! ! : ?is** ( cfa -- f ) ! ['] ** = ; ! ! : ?is[self] ( cfa -- f ) ! ['] [self] = ; \ ERROR if not compiling a new class definition *************** *** 249,253 **** )) ! in-application 2 cells offset iclass ( ivar -- 'class ) --- 282,286 ---- )) ! in-previous 2 cells offset iclass ( ivar -- 'class ) *************** *** 302,305 **** --- 335,339 ---- defer ivar-name + ' noop is ivar-name \ Compile an instance variable dictionary entry *************** *** 364,370 **** \ gets heap, and returns ptr. ! in-application ! forth definitions \ ( <number_of_elements> theClass -- ) --- 398,404 ---- \ gets heap, and returns ptr. ! in-previous ! external \ ( <number_of_elements> theClass -- ) *************** *** 412,416 **** \ See " Dispose " later for releasing dynamic objects ! classes definitions \ --------------- Build SUPER and SELF pseudo ivars --------------- --- 446,450 ---- \ See " Dispose " later for releasing dynamic objects ! internal \ --------------- Build SUPER and SELF pseudo ivars --------------- *************** *** 441,449 **** 0 value oldcurrent ! also forth definitions 0 value Obj-CLASS ! previous definitions \ Build a class header with its superclass pointer --- 475,483 ---- 0 value oldcurrent ! external 0 value Obj-CLASS ! internal \ Build a class header with its superclass pointer *************** *** 462,466 **** obj-class 0= if reveal then ; ! forth definitions 0 value Obj-LOADLINE --- 496,500 ---- obj-class 0= if reveal then ; ! external 0 value Obj-LOADLINE *************** *** 562,570 **** sys-warning? sys-warning-off Build|Class to sys-warning? ; ! ! classes definitions variable new-method internal --- 596,607 ---- sys-warning? sys-warning-off Build|Class to sys-warning? ; ! internal variable new-method + module + + classes also definitions + internal *************** *** 673,681 **** \ by str. parmfind ?missing ! dup ?IsObj if 1 exit then ! dup ?IsClass if 2 exit then ! dup ?IsLocal if 4 exit then ! dup ?IsParen if 5 exit then \ needs to preceed next line, ! dup ?IsVect if 3 exit then \ because [ is a deferred word 1 abort" Invalid object type" ; --- 710,720 ---- \ by str. parmfind ?missing ! dup ?IsObj if 1 exit then ! dup ?IsClass if 2 exit then ! dup ?IsLocal if 4 exit then ! dup ?IsParen if 5 exit then \ needs to preceed next line, ! dup ?IsVect if 3 exit then \ because [ is a deferred word ! dup ?Is** if 6 exit then ! dup ?Is[self] if 7 exit then 1 abort" Invalid object type" ; *************** *** 793,802 **** : objRef ( selID $str -- ) \ Build a reference to an object or vector Case refToken ! 0 ( ? ) of abort endof ! 1 ( object ) of Obj.Var, endof ! 2 ( class ) of >Class (findm) , endof ! 3 ( vector ) of compile, POSTPONE (defer) , endof ! 4 ( parm ) of compile, POSTPONE (defer) , endof ! 5 ( paren ) of drop LateBound endof Endcase ; --- 832,843 ---- : objRef ( selID $str -- ) \ Build a reference to an object or vector Case refToken ! 0 ( ? ) of abort endof ! 1 ( object ) of Obj.Var, endof ! 2 ( class ) of >Class (findm) , endof ! 3 ( vector ) of compile, POSTPONE (defer) , endof ! 4 ( parm ) of compile, POSTPONE (defer) , endof ! 5 ( paren ) of drop LateBound endof ! 6 ( ** ) of drop postpone (defer) , endof ! 7 ( [self] ) of drop postpone ^base postpone (defer) , endof Endcase ; *************** *** 804,813 **** 0 to varCfa Case refToken ! 0 ( ? ) of abort endof ! 1 ( object ) of RunObj.Var endof ! 2 ( class ) of >Class (findm) endof ! 3 ( vector ) of execute Find-Method endof ! 4 ( parm ) of abort endof ! 5 ( paren ) of 2drop ['] noop endof Endcase ; --- 845,856 ---- 0 to varCfa Case refToken ! 0 ( ? ) of abort endof ! 1 ( object ) of RunObj.Var endof ! 2 ( class ) of >Class (findm) endof ! 3 ( vector ) of execute Find-Method endof ! 4 ( parm ) of abort endof ! 5 ( paren ) of drop LateBound ['] noop endof ! 6 ( ** ) of drop swap Find-Method endof ! 7 ( [self] ) of abort endof Endcase ; *************** *** 943,947 **** \in-system-ok ' msgfind is find ! in-application \ The following definition is used to initialize dynamic classes ( those created with NEW> or --- 986,990 ---- \in-system-ok ' msgfind is find ! in-previous \ The following definition is used to initialize dynamic classes ( those created with NEW> or *************** *** 955,960 **** in-system - : [[ true abort" [[ must be preceeded by a selector " ; IMMEDIATE - : <noClassPointer ( -- ) \ *G Set a class to suppress the class pointer when used for IVARs. --- 998,1001 ---- *************** *** 995,1000 **** \ *G End a group of data fields that need to be contiguous and create a name with the \ ** size of the record. ! 0 to contiguous-data? ! ^Class DFA @ BeginningOfRecordAddress - CONSTANT ; \ -------------------- Instance Variables -------------------- --- 1036,1040 ---- \ *G End a group of data fields that need to be contiguous and create a name with the \ ** size of the record. ! ;Record ^Class DFA @ BeginningOfRecordAddress - CONSTANT ; \ -------------------- Instance Variables -------------------- *************** *** 1022,1026 **** 1 class-allot ; ! in-application cfa-func (ivb@) ( pfa -- bitfield_contents ) --- 1062,1066 ---- 1 class-allot ; ! in-previous cfa-func (ivb@) ( pfa -- bitfield_contents ) |
From: George H. <geo...@us...> - 2006-09-18 10:08:16
|
Update of /cvsroot/win32forth/win32forth/src/kernel In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv16330/win32forth/src/kernel Modified Files: fkernel.f Log Message: gah:Some dexing added Index: fkernel.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/kernel/fkernel.f,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** fkernel.f 13 Sep 2006 09:34:57 -0000 1.37 --- fkernel.f 18 Sep 2006 10:08:09 -0000 1.38 *************** *** 701,705 **** next c; ! NCODE ERASE ( addr len -- ) \ fill addr for len bytes with zero push ebx xor eax, eax --- 701,707 ---- next c; ! NCODE ERASE ( addr u -- ) \ ANSI Core Ext ! \ *G If u is greater than zero, clear all bits in each of u consecutive address ! \ ** units of memory beginning at addr . push ebx xor eax, eax *************** *** 707,711 **** c; ! NCODE BLANK ( addr len -- ) \ fill addr for len bytes with blanks push ebx mov eax, # 0x20202020 \ all blanks --- 709,716 ---- c; ! NCODE BLANK ( c-addr u -- ) \ ANSI String ! \ *G If u is greater than zero, store the character value for space in u consecutive ! \ ** character positions beginning at c-addr. ! push ebx mov eax, # 0x20202020 \ all blanks *************** *** 1625,1632 **** \ -------------------- Strings ---------------------------------------------- ! : "CLIP" ( a1 n1 -- a1 n1 ) \ clip a string to between 0 and MAXCOUNTED MAXCSTRING MIN 0MAX ; ! CODE PLACE ( addr len dest -- ) \ place string at counted str dest pop ecx \ get length pop eax \ source in eax --- 1630,1640 ---- \ -------------------- Strings ---------------------------------------------- ! : "CLIP" ( c-addr1 len1 -- c-addr2 len2 ) \ W32F String Extra ! \ *G Clip string c-addr1,len1 to c-addr2,len2 where c-addr2=c-addr1 and ! \ ** len2 is between 0 and MAXCOUNTED. MAXCSTRING MIN 0MAX ; ! CODE PLACE ( c-addr1 len1 c-addr2 -- ) \ W32F String Extra ! \ *G Place string c-addr1,len1 at c-addr2 as a counted string. pop ecx \ get length pop eax \ source in eax *************** *** 1648,1653 **** next c; ! CODE +PLACE ( addr len addr2 -- ) \ W32F String Extra ! \ *G Append string addr,len to counted string at addr2. pop ecx \ get length pop eax \ source in eax --- 1656,1661 ---- next c; ! CODE +PLACE ( c-addr1 len1 c-addr2 -- ) \ W32F String Extra ! \ *G Append string addr1,len1 to the counted string at addr2. pop ecx \ get length pop eax \ source in eax *************** *** 1676,1681 **** next c; ! CODE +NULL ( addr -- ) \ W32F String Extra ! \ *G Append a NULL to string. movzx ecx, byte [ebx] \ length lea ebx, 1 [ebx] [ecx] \ point at char --- 1684,1689 ---- next c; ! CODE +NULL ( c-addr -- ) \ W32F String Extra ! \ *G Append a NULL to the counted string. movzx ecx, byte [ebx] \ length lea ebx, 1 [ebx] [ecx] \ point at char *************** *** 1684,1688 **** next c; ! CODE -TRAILCHARS ( addr n1 c1 -- addr n2 ) \ remove trailing c1's from addr,n1 mov eax, ebx pop ecx --- 1692,1699 ---- next c; ! CODE -TRAILCHARS ( c-addr u1 char -- c-addr u2 ) \ W32F String Extra ! \ *G If u1 is greater than zero, u2 is equal to u1 less the number of chars at ! \ ** the end of the character string specified by c-addr u1. If u1 is zero or the ! \ ** entire string consists of chars, u2 is zero. mov eax, ebx pop ecx *************** *** 1698,1723 **** next c; ! : -TRAILING ( addr n1 -- addr n2 ) \ remove trailing blanks from addr,n1 BL -TRAILCHARS ; ! : -NULLS ( addr n1 -- addr n2 ) \ remove trailing nulls from addr,n1 0 -TRAILCHARS ; ! \ remove n1 characters from the beginning of string addr1,len1 ! \ if n1 greater than len1, then returned len2 will be zero. ! ! \ ** November 27th, 2000 - 12:00 tjz ! \ ** the following statment is no longer true ** ! \ if n1 lessthan zero, then returned len2 will be zero. ! ! CODE /STRING ( addr1 len1 n1 -- addr2 len2 ) pop eax ! // November 27th, 2000 - 11:58 tjz ! // Added the following two lines to allow a negative argument to be passed ! // to /STRING, such that the string will be expanded. Dangerous, but legal. ! test ebx, ebx ! jle short @@1 ! cmp ebx, eax ! jbe short @@1 mov ebx, eax @@1: add 0 [esp], ebx --- 1709,1739 ---- next c; ! : -TRAILING ( c-addr u1 -- c-addr u2 ) \ ANSI String ! \ *G If u1 is greater than zero, u2 is equal to u1 less the number of spaces at ! \ ** the end of the character string specified by c-addr u1. If u1 is zero or the ! \ ** entire string consists of spaces, u2 is zero. BL -TRAILCHARS ; ! : -NULLS ( c-addr u1 -- c-addr u2 ) \ W32F String Extra ! \ *G If u1 is greater than zero, u2 is equal to u1 less the number of nulls at ! \ ** the end of the character string specified by c-addr u1. If u1 is zero or the ! \ ** entire string consists of nulls, u2 is zero. 0 -TRAILCHARS ; ! CODE /STRING ( c-addr1 u1 n -- c-addr2 u2 ) \ ANSI String ! \ *G Adjust the character string at c-addr1 by n characters. The resulting character ! \ ** string, specified by c-addr2 u2, begins at c-addr1 plus n characters and is u1 ! \ ** minus n characters long. \n ! \ ** If n1 greater than len1, then returned len2 will be zero. \n ! \ ** For early (pre Nov 2000) versions of W32F, if n1 less than zero, ! \ ** then returned length u2 was zero. ! \ *P /STRING is used to remove or add characters relative to the left end of the ! \ ** character string. Positive values of n will exclude characters from the string ! \ ** while negative values of n will include characters to the left of the string. pop eax ! test ebx, ebx \ November 27th, 2000 - 11:58 tjz. Added two ! jle short @@1 \ lines to allow a negative argument to be ! cmp ebx, eax \ passed to /STRING, such that the string will ! jbe short @@1 \ be expanded. mov ebx, eax @@1: add 0 [esp], ebx *************** *** 3251,3261 **** \ -------------------- Link Operations (Single Linked) -------------------- - \ usage: [parms] ' x link do-link - \ follows link, for each link executes x - \ x must have stack ( [parms ...] link -- [parms ...] ) - \ safe to use even if x destroys next link - \ and can be used recursively ! : DO-LINK ( [parms ...] cfa-to-do link-address -- [parms] ) swap >r @ >r \ save cfa, next link address begin r> ?dup \ check the address --- 3267,3283 ---- \ -------------------- Link Operations (Single Linked) -------------------- ! ! \ *P Single linked lists have a cell which points to the first element (or contains 0 for ! \ ** an empty list. The cell can be a variable or element of an array. Do not use VALUES ! \ ** for this as they don't work correctly. ! ! : DO-LINK ( i*x xt list -- j*x ) \ W32F List ! \ *G Apply input function, xt to each element of the list in turn. i*x and j*x are the ! \ ** input(s) to and output(s) of xt (normally the number of inputs=number of outputs). ! \ *P Usage: [parms] ' x link do-link \n ! \ ** Follows link, for each link executes x. x must have a stack picture ! \ ** ( [parms ...] link -- [parms ...] ). ! \ ** Safe to use even if x destroys next link and can be used recursively. swap >r @ >r \ save cfa, next link address begin r> ?dup \ check the address *************** *** 3264,3268 **** repeat r>drop ; \ drop saved cfa ! CODE ADD-LINK ( addr list -- ) \ add a link to the front of a list pop eax \ fetch addr mov ecx , 0 [ebx] \ fetch address pointed to by link --- 3286,3291 ---- repeat r>drop ; \ drop saved cfa ! CODE ADD-LINK ( addr list -- ) \ W32F List ! \ *G Add a link to the head of a list. pop eax \ fetch addr mov ecx , 0 [ebx] \ fetch address pointed to by link *************** *** 3272,3276 **** next c; ! CODE APPEND-LINK ( addr list -- ) \ add a link to the end of a list @@1: mov ecx, 0 [ebx] \ get next link test ecx, ecx \ is next link zero? --- 3295,3300 ---- next c; ! CODE APPEND-LINK ( addr list -- ) \ W32F List ! \ *G Appendd a link to the end of a list. @@1: mov ecx, 0 [ebx] \ get next link test ecx, ecx \ is next link zero? *************** *** 3284,3288 **** next c; ! CODE UN-LINK ( addr link -- f1 ) \ unlink from list link pop eax \ ebx=link, eax=addr @@1: mov ecx, 0 [ebx] \ link @ --- 3308,3314 ---- next c; ! CODE UN-LINK ( addr link -- f1 ) \ W32F List ! \ *G Unlink addr from list. f1 is 0 if addr was removed from list or non-zero if addr ! \ ** wasn't in the list. pop eax \ ebx=link, eax=addr @@1: mov ecx, 0 [ebx] \ link @ *************** *** 3302,3306 **** @@9: next c; ! : LINK, ( addr -- ) \ build link from list head at addr HERE OVER @ , SWAP ! ; --- 3328,3333 ---- @@9: next c; ! : LINK, ( list -- ) \ W32F List ! \ *G Add a link in the dictionary (i.e. at here) to the head of the list. HERE OVER @ , SWAP ! ; |
From: Dirk B. <db...@us...> - 2006-09-17 09:35:19
|
Update of /cvsroot/win32forth/win32forth/src/gdi In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv3346/src/gdi Modified Files: gdiMetafileDc.f Log Message: - Fixed a bug in StartRecording: Index: gdiMetafileDc.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/gdi/gdiMetafileDc.f,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** gdiMetafileDc.f 8 Jan 2006 09:28:08 -0000 1.3 --- gdiMetafileDc.f 17 Sep 2006 09:35:13 -0000 1.4 *************** *** 21,25 **** RECTANGLE MetaRect - create MetaName maxstring allot gdiMetafile Metafile --- 21,24 ---- *************** *** 31,35 **** :M ClassInit: ( -- ) ClassInit: super - 0 MetaName ! 0 0 10000 10000 SetRect: self ;M --- 30,33 ---- *************** *** 64,80 **** \ *G Start recording of a Metafile GetGdiObjectHandle >r - >r - \ build description string - \ s" Win32Forth" pad place - \ pad count + dup 0 c! char + dup - \ MetaName count dup >r place r> - \ + char + 0 c! ! \ pad 1+ ! 0 \ lpDescription ! Addrof: MetaRect ! 0 \ lpstrFileName ! r> call CreateEnhMetaFile dup to hObject ! hObject 0<> ;M --- 62,71 ---- \ *G Start recording of a Metafile GetGdiObjectHandle >r ! 0 \ lpDescription ! Addrof: MetaRect \ bounding rectangle ! 0 \ lpstrFileName ! r> \ hRefDC ! call CreateEnhMetaFile dup SetHandle: self 0<> ;M *************** *** 83,87 **** hObject ?dup if call CloseEnhMetaFile dup SetHandle: Metafile 0<> ! 0 to hObject else false then ;M --- 74,78 ---- hObject ?dup if call CloseEnhMetaFile dup SetHandle: Metafile 0<> ! 0 SetHandle: self else false then ;M |
From: George H. <geo...@us...> - 2006-09-16 10:52:11
|
Update of /cvsroot/win32forth/win32forth/src/lib/Ext_classes In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv23259/win32forth/src/lib/Ext_classes Added Files: $X.F 2ARRAY.F 2ARRAYGEN.F ARRAY11.F ORDERED-COL.F VAR11.F Log Message: gah:Added extension classes ported from A McKewen/D Hoffmans ANSI compatible Neon Object system for easier porting of code written using them. --- NEW FILE: 2ARRAYGEN.F --- \ $Id: 2ARRAYGEN.F,v 1.1 2006/09/16 10:52:04 georgeahubert Exp $ \ 2ARRAYGEN.F for Win32Forth V6.11.09 or higher \ G.Hubert Sunday, July 23 2006 \ Based on the ANSI Neon Model Class of Doug Hoffman \ *P A 2arraygen is a dynamically-allocated 2-dimensional array, intended to be \ ** used for keeping text strings. The strings are not objects. Each string \ ** has a maximum length that it will accept. \ *P Note that after instantiation we must first send maxsize new: because memory \ ** from the heap is allocated. Maxsize is the maximum number of chars we can \ ** have in each element. We specify for each array. Limited to 255. anew -2arraygen.f needs var11 :class 2arrayGen <super object var #ofRows var #ofCols var elemSize var stride ptr arrayData :m classinit: colDim @ put: #ofCols rowDim @ put: #ofRows ;m :m maxsize: ( -- n ) \ maximum number of characters for a cell get: elemSize 1- ;m :m init: ( maxSize -- ) 1+ put: elemSize \ must allow room for count byte ;m :m release: release: arrayData ;m :m check: ( row# col# -- ) get: #ofCols 1 - > swap get: #ofRows 1 - > or abort" 2arrayGen indices out of bounds." ;m :m elemAddr: { row# col# -- addr } \ locals| col# row# | row# col# check: self get: arrayData get: stride row# * + get: elemSize col# * + ;m :m to: { addr len row# col# | dest -- } \ 0 locals| dest col# row# len addr | len maxSize: self min to len row# col# elemAddr: self to dest addr ( src) dest 1+ len cmove len dest c! ;m :m at: ( row# col# -- addr len ) elemAddr: self dup 1+ swap c@ ;m :m clearall: get: #ofRows 0 ?DO get: #ofCols 0 ?DO 0 j i elemAddr: self c! LOOP LOOP ;m :m new: ( maxSize -- ) \ establish max element size and allot memory init: self get: #ofCols get: elemSize * put: stride get: #ofCols get: #ofRows * get: elemSize * new: arrayData clearall: self ;m :m print: cr get: #ofRows 0 ?DO get: #ofCols 0 ?DO j i at: self type 2 spaces LOOP cr LOOP ;m ;class 0 [if] *** EXAMPLE USE 2arrayGen gg 6 new: gg s" teststring" 0 0 to: gg s" test2" 0 1 to: gg s" test3" 1 0 to: gg print: gg release: gg [then] --- NEW FILE: $X.F --- \ $Id: \044X.F,v 1.1 2006/09/16 10:52:04 georgeahubert Exp $ \ G.Hubert Friday, September 15 2006 for Win32Forth V6.11.11 or above \ Based on the class by Doug Hoffman \ *P Class $x is a dictionary-based simple string class whose length may vary, \ ** up to a maximum of 255, but the maximum length is defined at instantiation. \ ** We cheat a bit here and the INDEXED class definition abilities and \ ** indexed ivar data area in a way that was not really intended. \ *P $x's are nice for use as string ivars, or if you want a persistent string \ ** object in the dictionary (no handles here so we don't need to do a new: \ ** and restore the data at each runtime). anew -$x.f needs array11 :class $x ( chars -- ) <super IndexedObj 1 <indexed \ Each character is one byte. \ At instantiation we simply declare the maximum number of characters \ desired as if for a byte array. :m limit: ( -- lim ) limit 1- ;m :m get$: \ ( -- c-addr ) \ counted string format idxbase ;m :m size: \ ( -- len) get$: self c@ ;m :m setsize: \ ( len --) dup limit: self > abort" No more room in $x." get$: self c! ;m :m clear: ( -- ) 0 setsize: self ;m :m classinit: ( -- ) clear: self ;m :m Addr: ( -- addr) \ redefine to give us the indexed data area+1 \ which will be the address of the first character of text idxbase 1+ ;m :m put: { addr len -- } len setsize: self addr Addr: self len cmove ;m :m get: ( -- addr len ) Addr: self size: self ;m :m print: get: self type ;m :m put$: ( c-addr -- ) count put: self ;m :m add: { addr len | $len -- } size: self to $len len $len + setsize: self addr Addr: self $len + len cmove ;m :m add$: ( c-addr -- ) count add: self ;m : makeUpper ( addr len -- ) over + swap ?DO i c@ dup [char] a >= swap [char] z <= and IF i c@ 32 xor i c! THEN LOOP ; :m uc: \ ( -- ) converts to upper case get: self makeUpper ;m :m +: ( c -- ) \ appends a char to the end of the string pad c! pad 1 add: self ;m :m clip: ( n -- ) \ remove n characters from end of string \ if n is too large, string is just cleared with no error size: self over - 0 max setsize: self ;m ;class --- NEW FILE: VAR11.F --- \ $Id: VAR11.F,v 1.1 2006/09/16 10:52:04 georgeahubert Exp $ \ Basic object variables \ Ported to W32F Wednesday, June 14 2006 George Hubert for V6.11.09 or later \ Based on Version 1.1, 6 Jan 2006 Doug Hoffman \ Andrew McKewan \ mc...@au... \ ====================================================================== \ Define the basic cell-sized variable class. This is a generic superclass \ that defines the basic access operators. anew -var11.f :Class CellObj <Super Object <NoClassPointer CELL bytes Data [undefined] M@ [if] : M@ ( -- n ) Data @ ; : M! ( n -- ) Data ! ; [then] :M Get: ( -- n ) M@ ;M \ just for testing :M Put: ( n -- ) M! ;M \ ditto :M Clear: 0 M! ;M :M Print: M@ . ;M \ ( ^obj -- ) copies data from another CellObj :M ->: @ M! ;M ;Class \ ====================================================================== \ Var is for integer data :Class Var <Super CellObj <NoClassPointer :M +: ( n -- ) ^base +! ;M :M -: ( n -- ) NEGATE ^base +! ;M :M *: ( n -- ) M@ * M! ;M :M /: ( n -- ) M@ SWAP / M! ;M :M Negate: M@ NEGATE M! ;M ;Class \ ====================================================================== \ Bool is for storing booleans. It always returns TRUE or FALSE. :Class Bool <Super CellObj <NoClassPointer :M Put: ( f -- ) 0= 0= M! ;M :M Get: get: super ;M :M Set: TRUE M! ;M :M Invert: M@ 0= M! ;M :M Print: M@ IF ." true " ELSE ." false " THEN ;M ;Class \ ====================================================================== \ ExecVec stores an execution token. :Class ExecVec <Super CellObj <NoClassPointer \ Execute xt stored in variable :M Exec: ( -- ) M@ EXECUTE ;M \ Initialize to do nothing :M Clear: ['] NOOP M! ;M :M ClassInit: Clear: self ;M ;Class \ ====================================================================== \ Ptr stores a pointer to dynamically-allocated memory. We also keep track \ of the current size of the memory block. :Class Ptr <Super CellObj <NoClassPointer Var size \ current size : ?MEMERR ( ior -- ) abort" Memory error !" ; :M Size: ( -- n ) \ get current size Get: size ;M :M Release: ( -- ) \ release current memory M@ IF M@ FREE ?MEMERR 0 M! THEN Clear: size ;M :M New: ( len -- ) \ create a new memory block Release: self DUP ALLOCATE ?MEMERR M! Put: size ;M :M Resize: ( len -- ) \ resize memory block M@ OVER RESIZE ?MEMERR M! Put: size ;M :M Nil?: ( -- f ) \ true if no memory has been allocated M@ 0= ;M ;Class --- NEW FILE: ORDERED-COL.F --- \ $Id: ORDERED-COL.F,v 1.1 2006/09/16 10:52:04 georgeahubert Exp $ \ Win32Forth version, 3 July 2006 G.Hubert for V6.11.10 or later \ based on Doug Hoffman's version for the ANSI Neon Model OOF Forth Definitions decimal anew -ordered-col.f needs var11.f needs array11.f \ 06/19/05 dbh code lifted from Mops :class ORDERED-COL <super array \ cell <indexed var SIZE \ # elements in list :m SIZE: \ ( -- cursize ) Returns #elements currently in list get: size ;m :m CLEAR: clear: size ;m :m ADD: \ ( val -- ) add value to end of list get: size limit >= abort" Ordered-col full" get: size to: [ self ] 1 +: size ;m :m LAST: \ ( -- val ) Returns contents of end of list get: size dup 0= abort" Empty ordered-col" 1- at: self ;m \ Removes the element at index :m REMOVE: ( indx -- ) { | cnt wid addr } >r \ indx to r get: size r@ - 1- to cnt dup 0< abort" Can't remove: ordered-col" width: self to wid r> ^elem: self to addr \ locals| addr wid cnt | 1 -: size cnt 0= IF exitm THEN addr wid + addr cnt wid * move ;m \ Finds a value in a collection. :m INDEXOF: { val | wid addr -- indx T | -- F } width: self to wid idxbase to addr \ locals| addr wid val | false get: size 0 ?DO addr @ \ getelem: super val = IF drop i true LEAVE THEN wid addr + to addr LOOP ;m :m PRINT: get: size 0 ?do i at: self cr . loop ;m ;class --- NEW FILE: ARRAY11.F --- \ $Id: ARRAY11.F,v 1.1 2006/09/16 10:52:04 georgeahubert Exp $ \ Classes for indexed objects \ Version 1.0, 4 Feb 1997 \ Andrew McKewan \ mc...@au... \ Win32Forth version, 3 July 2006 G.Hubert (Requires V6.11.10 or later) anew -array11.f \ ================================================================== \ This is the base class for all indexed objects. It provides the \ primitives that are common to all indexed objects. :Class IndexedObj <Super Object CELL <Indexed \ ( -- addr ) Leave addr of 0th indexed element :M IxAddr: idxBase ;M \ ( -- limit ) Leave max #elements for array :M Limit: limit ;M \ ( -- len ) leave width of indexed elements :M Width: #width ;M \ ( index -- addr ) return then address of an indexed element :M ^Elem: ?idx ^elem ;M \ ( -- ) Indexed Clear: erases indexed area :M Clear: idxBase #width limit * ERASE ;M ;Class \ ================================================================== \ Basic cell array :Class Array <Super IndexedObj \ CELL <Indexed :M At: ?idx At4 ;M ( index -- val ) :M To: ?idx To4 ;M ( val Index -- ) :M +To: ?idx ++4 ;M ( incVal index -- ) \ Fill the array with a value :M Fill: ( val -- ) limit 0 DO DUP I To4 LOOP DROP ;M ;Class \ ================================================================== \ X-Array can execute its elements. :Class X-Array <Super Array \ cell <indexed \ ( ind -- ) execute the cfa at Ind :M Exec: ?idx At4 DUP 0= ABORT" Null xt" EXECUTE ;M :M ClassInit: ['] NOOP Fill: self ;M ;Class \ ================================================================== \ Basic byte array. :Class ByteArray <Super IndexedObj 1 <Indexed :M At: ?idx At1 ;M ( index -- val ) :M To: ?idx To1 ;M ( val Index -- ) :M +To: ?idx ++1 ;M ( incVal index -- ) \ Fill the array with a value :M Fill: ( val -- ) idxBase limit ROT FILL ;M ;Class --- NEW FILE: 2ARRAY.F --- \ $Id: 2ARRAY.F,v 1.1 2006/09/16 10:52:04 georgeahubert Exp $ \ G.Hubert Friday, September 15 2006 \ Based on the code in Doug Hoffman's Class11 anew -2array.f needs var11.f :class 2array ( size -- ) <super object 4 <indexed var #ofRows var #ofCols var elemSize var stride :m classinit: 4 put: elemSize \ a 32 bit integer colDim @ put: #ofCols rowDim @ put: #ofRows get: #ofCols get: elemSize * put: stride ;m :m check: ( row# col# -- ) get: #ofCols 1 - > swap get: #ofRows 1 - > or abort" 2array indice(s) out of bounds." ;m :m elemAddr: { row# col# -- addr } \ locals| col# row# | row# col# check: self idxbase get: stride row# * + get: elemSize col# * + ;m :m to: ( n row# col# -- ) elemAddr: self ! ;m :m at: ( row# col# -- n ) elemAddr: self @ ;m :m clearall: ( -- ) get: #ofRows 0 ?DO get: #ofCols 0 ?DO 0 j i elemAddr: self ! LOOP LOOP ;m :m print: ( -- ) get: #ofRows 0 ?DO get: #ofCols 0 ?DO cr j . i . j i at: self . LOOP LOOP ;m ;class 0 [if] *** EXAMPLE USE 5 5 dimension 2array a 33 0 6 to: a \ should error 12 0 0 to: a 33 0 1 to: a 12345678 1 0 to: a 0 0 at: a . 12 0 1 at: a . 33 1 0 at: a . 12345678 print: a [then] |
From: George H. <geo...@us...> - 2006-09-16 10:46:08
|
Update of /cvsroot/win32forth/win32forth/src/lib/Ext_classes In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv20792/Ext_classes Log Message: Directory /cvsroot/win32forth/win32forth/src/lib/Ext_classes added to the repository |
From: George H. <geo...@us...> - 2006-09-16 10:44:54
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv20289/win32forth/src Modified Files: Class.f Log Message: gah:Added code to handle 2 dimensional arrays Index: Class.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Class.f,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** Class.f 3 Aug 2006 13:08:22 -0000 1.21 --- Class.f 16 Sep 2006 10:44:46 -0000 1.22 *************** *** 523,527 **** synonym <Object <Super ! \ *G See <Super synonym <Class <Super \ *G See <Super. --- 523,527 ---- synonym <Object <Super ! \ *G See <Super. synonym <Class <Super \ *G See <Super. *************** *** 1119,1127 **** : M@ ( -- n ) ! \ *G Fetch the contents of the first cell of the object. Designed for use with VAR POSTPONE ^base POSTPONE @ ; IMMEDIATE : M! ( n -- ) ! \ *G Store the TOS into the first cell of the object. Designed for use with VAR POSTPONE ^base POSTPONE ! ; IMMEDIATE --- 1119,1127 ---- : M@ ( -- n ) ! \ *G Fetch the contents of the first cell of the object. Designed for use with VAR. POSTPONE ^base POSTPONE @ ; IMMEDIATE : M! ( n -- ) ! \ *G Store the TOS into the first cell of the object. Designed for use with VAR. POSTPONE ^base POSTPONE ! ; IMMEDIATE *************** *** 1163,1166 **** --- 1163,1172 ---- IF idxBase 2 - w@ ( #elems ) * + CELL+ THEN ; + \ ==================================================================== + \ Support for 2 dimensional arrays + + cell newuser ColDim + cell newuser RowDim + \ ===================================================================== \ Runtime indexed range checking. Use +range and -range to turn range *************** *** 1192,1195 **** --- 1198,1208 ---- initialization-chain chain-add +range + classes + + : Dimension ( Rows Cols -- Size ) + \ *G Set the dimensions for the next 2 dimensional array to be created (either at compile + \ ** time, or at run-time using NEW>) and return the size (Rows*Cols). \n + \ ** For dynamic object DIMENSION applies to the next 2 dimensional array in the same task. + ColDim ! RowDim ! ColDim RowDim * ; previous |
From: George H. <geo...@us...> - 2006-09-13 09:35:01
|
Update of /cvsroot/win32forth/win32forth/src/lib In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv28933/win32forth/src/lib Modified Files: FCOM.F toolbar.f Log Message: gah:More dexing and minor optimisations Index: toolbar.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/toolbar.f,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** toolbar.f 29 Jun 2006 04:09:43 -0000 1.4 --- toolbar.f 13 Sep 2006 09:34:57 -0000 1.5 *************** *** 21,24 **** --- 21,28 ---- Change log: + + September 12th, 2006 - 20:47 - gah + Added \in-system-ok to account for ?pairs being moved to system space + September 25th, 2005 - 18:59 - Rod Changed to use Control rather than Child-Window *************** *** 97,101 **** ; : ;ToolBarTable ( addr1 addr2 12 -- ) ! 12 ?pairs here rot ! \ Resolve address of cust. table here 0 , \ no of buttons in cust. table --- 101,105 ---- ; : ;ToolBarTable ( addr1 addr2 12 -- ) ! \in-system-ok 12 ?pairs here rot ! \ Resolve address of cust. table here 0 , \ no of buttons in cust. table *************** *** 115,119 **** ; : ToolBarTableExtraButtons: ( addr 12 -- addr 12 ) ! dup 12 ?pairs over dup @ swap cell- ! ; --- 119,123 ---- ; : ToolBarTableExtraButtons: ( addr 12 -- addr 12 ) ! \in-system-ok dup 12 ?pairs over dup @ swap cell- ! ; *************** *** 121,125 **** 2>r rot ( bidx) , swap ( id) , ( state) c, 2r> swap ( style) c, 0 w, 0 , ( txtno) , ! dup 12 ?pairs over 1 swap +! ; : SeparatorButton, ( addr 12 -- addr 12 ) --- 125,129 ---- 2>r rot ( bidx) , swap ( id) , ( state) c, 2r> swap ( style) c, 0 w, 0 , ( txtno) , ! \in-system-ok dup 12 ?pairs over 1 swap +! ; : SeparatorButton, ( addr 12 -- addr 12 ) *************** *** 160,164 **** ; : ;ToolStrings ( addr 13 -- ) ! 13 ?pairs 0 , align here over ! \ Resolve address of address table --- 164,168 ---- ; : ;ToolStrings ( addr 13 -- ) ! \in-system-ok 13 ?pairs 0 , align here over ! \ Resolve address of address table *************** *** 174,178 **** ; : ts," ( 13 -<string">- 13 ) ! dup 13 ?pairs state @ if true abort" Illegal use of tool string compiler" --- 178,182 ---- ; : ts," ( 13 -<string">- 13 ) ! \in-system-ok dup 13 ?pairs state @ if true abort" Illegal use of tool string compiler" *************** *** 375,379 **** else to Parent ! z" ToolbarWindow32" Create-Control register-struct-size --- 379,383 ---- else to Parent ! z" ToolbarWindow32" Create-Control register-struct-size *************** *** 632,636 **** else 0 then ;M ! ;Class --- 636,640 ---- else 0 then ;M ! ;Class Index: FCOM.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/lib/FCOM.F,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** FCOM.F 19 Aug 2006 01:50:52 -0000 1.4 --- FCOM.F 13 Sep 2006 09:34:57 -0000 1.5 *************** *** 797,801 **** : cguid ( tinfo -- ) \ compiles a guid >r rp@ tattr-allot dup UseStruct TYPEATTR guid ! state @ if 16 POSTPONE SLITERAL POSTPONE DROP else 16 new$ dup >r place r> 1+ then rp@ swap tattr-free rp@ UCOM ITypeInfo IReleaseref drop r> drop ; --- 797,801 ---- : cguid ( tinfo -- ) \ compiles a guid >r rp@ tattr-allot dup UseStruct TYPEATTR guid ! \in-system-ok state @ if 16 POSTPONE SLITERAL POSTPONE DROP else 16 new$ dup >r place r> 1+ then rp@ swap tattr-free rp@ UCOM ITypeInfo IReleaseref drop r> drop ; |
From: George H. <geo...@us...> - 2006-09-13 09:35:01
|
Update of /cvsroot/win32forth/win32forth/src/kernel In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv28933/win32forth/src/kernel Modified Files: fkernel.f Log Message: gah:More dexing and minor optimisations Index: fkernel.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/kernel/fkernel.f,v retrieving revision 1.36 retrieving revision 1.37 diff -C2 -d -r1.36 -r1.37 *** fkernel.f 25 Aug 2006 12:54:02 -0000 1.36 --- fkernel.f 13 Sep 2006 09:34:57 -0000 1.37 *************** *** 1463,1467 **** \ EDX = pointer for compare ! CODE SEARCH ( adr1 len1 adr2 len2 -- adr3 len3 flag ) test ebx, ebx jne short @@1 --- 1463,1470 ---- \ EDX = pointer for compare ! CODE SEARCH ( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) ! \ *G Search the string specified by c-addr1 u1 for the string specified by c-addr2 u2. ! \ ** If flag is true, a match was found at c-addr3 with u3 characters remaining. ! \ ** If flag is false there was no match and c-addr3 is c-addr1 and u3 is u1. test ebx, ebx jne short @@1 *************** *** 1645,1649 **** next c; ! CODE +PLACE ( addr len dest -- ) \ append string addr,len to counted dest pop ecx \ get length pop eax \ source in eax --- 1648,1653 ---- next c; ! CODE +PLACE ( addr len addr2 -- ) \ W32F String Extra ! \ *G Append string addr,len to counted string at addr2. pop ecx \ get length pop eax \ source in eax *************** *** 1672,1675 **** --- 1676,1687 ---- next c; + CODE +NULL ( addr -- ) \ W32F String Extra + \ *G Append a NULL to string. + movzx ecx, byte [ebx] \ length + lea ebx, 1 [ebx] [ecx] \ point at char + mov byte [ebx], # 0 \ zero the char + pop ebx + next c; + CODE -TRAILCHARS ( addr n1 c1 -- addr n2 ) \ remove trailing c1's from addr,n1 mov eax, ebx *************** *** 3309,3315 **** ; ! : Z", ( a1 n1 -- ) \ compile a1,n1 at here ! HERE OVER ALLOT SWAP CMOVE ! ; : Z," ( -<string">- ) \ compile string" at here --- 3321,3327 ---- ; ! : Z", ( addr len -- ) \ W32F String Extra ! \ *G Compile the string, addr len at here. ! HERE OVER ALLOT place ; : Z," ( -<string">- ) \ compile string" at here *************** *** 3317,3321 **** ; ! DEFER NEW$ ' TEMP$ IS NEW$ ( a1 -- a2 ) |: ((P")) ( -- addr len buff buff ) \ internal for ((x")) words --- 3329,3333 ---- ; ! DEFER NEW$ ' TEMP$ IS NEW$ ( -- addr ) |: ((P")) ( -- addr len buff buff ) \ internal for ((x")) words *************** *** 3337,3346 **** exec c; \ go do it - : C" ( -<string">- ) - STATE @ - IF COMPILE (C") ," - ELSE ((C")) - THEN ; IMMEDIATE - NCODE (S") ( -- addr len ) \ for s" type strings push ebx --- 3349,3352 ---- *************** *** 3353,3365 **** exec c; \ go do it - : S" ( -<string">- ) - \ *G Compiletime: s" parses the input stream until it finds the next " and - \ ** compiles it into the current definition. Runtime: s" leaves the address - \ ** and the length of the compiled string on the stack. - STATE @ - IF COMPILE (S") ," \ see also ." and .( - ELSE ((S")) - THEN ; IMMEDIATE - NCODE (Z") ( -- addr ) \ for z" type strings push ebx --- 3359,3362 ---- *************** *** 3371,3380 **** exec c; \ go do it - : Z" ( -<string">- ) \ If compiling puts string in the dictionary - STATE @ \ or else it puts the address and length n the stack - IF COMPILE (Z") ," - ELSE ((C")) dup dup c@ + 1+ 0 swap c! 1+ - THEN ; IMMEDIATE - NCODE (.") ( -- addr len ) \ for ." push ebx --- 3368,3371 ---- *************** *** 3387,3390 **** --- 3378,3404 ---- exec c; \ go do it + in-system + + : C" ( -<string">- ) + STATE @ + IF COMPILE (C") ," + ELSE ((C")) + THEN ; IMMEDIATE + + : S" ( -<string">- ) + \ *G Compiletime: s" parses the input stream until it finds the next " and + \ ** compiles it into the current definition. Runtime: s" leaves the address + \ ** and the length of the compiled string on the stack. + STATE @ + IF COMPILE (S") ," \ see also ." and .( + ELSE ((S")) + THEN ; IMMEDIATE + + : Z" ( -<string">- ) \ If compiling puts string in the dictionary + STATE @ \ or else it puts the address and length n the stack + IF COMPILE (Z") ," + ELSE ((C")) dup dup c@ + 1+ 0 swap c! 1+ + THEN ; IMMEDIATE + : ." ( -<string">- ) \ See also s" and .( \ *G Compiletime: Parses the input stream until it finds the next " and *************** *** 3393,3407 **** COMPILE (.") ," ; IMMEDIATE - CODE +NULL ( a1 -- ) \ append a NULL just beyond the counted chars - movzx ecx, byte [ebx] \ length - lea ebx, 1 [ebx] [ecx] \ point at char - mov byte [ebx], # 0 \ zero the char - pop ebx - next c; - : SLITERAL ( a1 n1 -- ) \ compile string as literal COMPILE (S") HERE >R ", 0 C, ALIGN R> COUNT \N->CRLF ; IMMEDIATE \ tjz, as posted from Bernd Paysan Thu, 05 Jul 2001 Thanks Bernd --- 3407,3416 ---- COMPILE (.") ," ; IMMEDIATE : SLITERAL ( a1 n1 -- ) \ compile string as literal COMPILE (S") HERE >R ", 0 C, ALIGN R> COUNT \N->CRLF ; IMMEDIATE + in-application + \ tjz, as posted from Bernd Paysan Thu, 05 Jul 2001 Thanks Bernd *************** *** 3902,3907 **** r/o w/o + constant r/w \ READ/WRITE ! : ascii-z ( addr len buff -- buff-z ) \ make an ascii string ! dup>r place r> count over + 0 swap c! ; : open-file ( adr slen fmode -- fileid ior ) --- 3911,3918 ---- r/o w/o + constant r/w \ READ/WRITE ! : ascii-z ( addr len buff -- buff-z ) \ W32F String Extra ! \ *G Make a null-terminated copy of string addr len in buff and return the address of the ! \ ** first character. ! dup>r place r> dup +null 1+ ; : open-file ( adr slen fmode -- fileid ior ) *************** *** 4155,4158 **** --- 4166,4171 ---- THEN DROP ; + in-system + : ABORT" ( -- ) COMPILE (ABORT") ," ; IMMEDIATE *************** *** 4162,4166 **** : ?PAIRS ( n1 n2 -- ) XOR THROW_MISMATCH ?THROW ; ! in-system : ?EXEC STATE @ THROW_INTERPONLY ?THROW ; --- 4175,4179 ---- : ?PAIRS ( n1 n2 -- ) XOR THROW_MISMATCH ?THROW ; ! \ in-system : ?EXEC STATE @ THROW_INTERPONLY ?THROW ; |
From: George H. <geo...@us...> - 2006-09-13 09:35:01
|
Update of /cvsroot/win32forth/win32forth/src In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv28933/win32forth/src Modified Files: ANSFILE.F Primutil.f Log Message: gah:More dexing and minor optimisations Index: Primutil.f =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/Primutil.f,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** Primutil.f 11 Aug 2006 10:09:45 -0000 1.17 --- Primutil.f 13 Sep 2006 09:34:57 -0000 1.18 *************** *** 325,334 **** in-system ! : \- ( -<word>- ) \ load line if word IS NOT defined defined nip if POSTPONE \ then ; immediate ! : \+ ( -<word>- ) \ load line if word IS defined defined nip 0= if POSTPONE \ --- 325,336 ---- in-system ! : \- ( "word" -- ) ! \ *G Interpret the rest of the line if "word" isn't defined. defined nip if POSTPONE \ then ; immediate ! : \+ ( "word" -- ) ! \ *G Interpret the rest of the line if "word" is defined. defined nip 0= if POSTPONE \ *************** *** 336,339 **** --- 338,343 ---- : \IN-SYSTEM-OK ( -<line_to_interpret>- ) + \ *G Suppress in-system warnings for the rest of the current line, restoring the previous + \ ** state of the sys-warning? flag afterwards, even if an error occurs. sys-warning? >r sys-warning-off *************** *** 381,388 **** ; ! : CONVERT ( ud1 a1 -- ud2 a2 ) char+ 64 >number drop ; ! VARIABLE SPAN : EXPECT ( a1 n1 -- ) \ accept the text --- 385,404 ---- ; ! : CONVERT ( ud1 c-addr1 -- ud2 c-addr2 ) \ ANSI Core Ext ! \ *G ud2 is the result of converting the characters within the text beginning at the ! \ ** first character after c-addr1 into digits, using the number in BASE, and adding ! \ ** each digit to ud1 after multiplying ud1 by the number in BASE. Conversion continues ! \ ** until a character that is not convertible is encountered. c-addr2 is the location ! \ ** of the first unconverted character. An ambiguous condition exists if ud2 overflows. ! \ *P \b Note: \d This word is obsolescent and is included as a concession to existing ! \ ** implementations. Its function is superseded by >NUMBER. char+ 64 >number drop ; ! VARIABLE SPAN ( -- a-addr ) \ ANSI Core Ext ! \ *G a-addr is the address of a cell containing the count of characters stored by the ! \ ** last execution of EXPECT. ! \ *P \b Note: \d This word is obsolescent and is included as a concession to existing ! \ ** implementations. ! : EXPECT ( a1 n1 -- ) \ accept the text *************** *** 794,798 **** \ enhanced caps-search for source string > 255 bytes \ search for t-adr,t-len within string s-adr,s-len. f1=true if string was found ! : CAPS-SEARCH { s-adr s-len t-adr t-len \ t-buf t-str -- adr len flag } MAXSTRING localalloc: t-str s-len cell+ ALLOCATE 0= --- 810,819 ---- \ enhanced caps-search for source string > 255 bytes \ search for t-adr,t-len within string s-adr,s-len. f1=true if string was found ! : CAPS-SEARCH ( c-addr1 u1 c-addr2 u2 -- c-addr3 u3 flag ) ! \ *G Search the string specified by c-addr1 u1 for the string specified by c-addr2 u2, ! \ ** using a case-insensitive search. \n ! \ ** If flag is true, a match was found at c-addr3 with u3 characters remaining. \n ! \ ** If flag is false there was no match and c-addr3 is c-addr1 and u3 is u1. ! { s-adr s-len t-adr t-len \ t-buf t-str -- adr len flag } MAXSTRING localalloc: t-str s-len cell+ ALLOCATE 0= Index: ANSFILE.F =================================================================== RCS file: /cvsroot/win32forth/win32forth/src/ANSFILE.F,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ANSFILE.F 11 Aug 2006 10:09:45 -0000 1.5 --- ANSFILE.F 13 Sep 2006 09:34:57 -0000 1.6 *************** *** 84,90 **** : find-first-file ( addr1 len1 -- addr2 ior ) ! \ *G Name(addr1) - null-terminated valid directory or path and filename ! \ ** len1 - length of ascii name in bytes ! \ ** addr2 - address of _win32-find-data struc max-path malloc dup>r ascii-z \ adrz - --- 84,100 ---- : find-first-file ( addr1 len1 -- addr2 ior ) ! \ *G addr1 len1 is a string that specifies a valid directory or path ! \ ** and filename, which can contain wildcard characters (* and ?). ! \ ** This string must not exceed MAX_PATH characters. ! \ ** addr2 is the address of the _win32-find-data structure. ! \ ** ior is 0 for success in which case _hdl-search contains a valid handle. ! \ *P Find-First-File searches a directory for a file whose name matches the ! \ ** specified filename. Find-First-File examines subdirectory names as well as filenames. ! \ *P Find-First-File opens a search handle and returns information about the first ! \ ** file whose name matches the specified pattern. Once the search handle is established, you ! \ ** can use Find-Next-File to search for other files that match the same pattern. ! \ ** When the search handle is no longer needed, close it by using Find-Close. ! \ ** Find-First-File searches for files by name only; it cannot be used for attribute-based ! \ ** searches. max-path malloc dup>r ascii-z \ adrz - *************** *** 101,105 **** : find-next-file ( -- addr ior ) \ *G Find-first-file word must be called ! \ ** before this word can be called due to that _hdl-search is needed _win32-find-data \ lpffd - _WIN32_FIND_DATA _hdl-search @ \ hFindFile --- 111,115 ---- : find-next-file ( -- addr ior ) \ *G Find-first-file word must be called ! \ ** before this word can be called due to the fact that _hdl-search is needed _win32-find-data \ lpffd - _WIN32_FIND_DATA _hdl-search @ \ hFindFile *************** *** 217,221 **** REPEAT ; ! : print-dir-files ( adr slen -- ) cr ." Directory of: " 2dup type ['] _print-dir-files catch --- 227,233 ---- REPEAT ; ! : print-dir-files ( adr slen -- ) \ W32F Files Extra ! \ *G Print all the files and sub-directories in a directory that match a specific ! \ ** pattern. cr ." Directory of: " 2dup type ['] _print-dir-files catch *************** *** 226,230 **** total-file-bytes @ 1 u,.r ." bytes of disk." ; ! : dir ( -<name>- ) \ name = f.e where f or e can be ascii's, * , or ? /parse-word dup c@ 0= \ if not spec given, use *.* IF s" *.*" pocket place --- 238,248 ---- total-file-bytes @ 1 u,.r ." bytes of disk." ; ! : dir ( "name" -- ) \ W32F Files Extra ! \ *G Print all the files and sub-directories in a directory that match a specific ! \ ** pattern. \n ! \ ** If "name" is missing or ends in \ search for all files that match *.* \n ! \ ** If "name" contains a relative path then it's relative to the current directory. \n ! \ ** If "name" ends in : assume a drive use "name"\*.* for the search pattern. \n ! \ *P The pattern can contain the standard Windows wildcards. /parse-word dup c@ 0= \ if not spec given, use *.* IF s" *.*" pocket place |
From: Dirk B. <db...@us...> - 2006-09-01 07:25:57
|
Update of /cvsroot/win32forth/win32forth-extsrc/extsrc/installer In directory sc8-pr-cvs9.sourceforge.net:/tmp/cvs-serv12984/extsrc/installer Modified Files: ExtFiles.nsi Files.nsi Registry.nsi Uninstall.nsi Win32Forth.nsi Log Message: - Smal changes to match the 6.11.10 release on www.win32forth.org Index: Registry.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/Registry.nsi,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** Registry.nsi 22 Dec 2004 20:25:25 -0000 1.1 --- Registry.nsi 1 Sep 2006 07:25:53 -0000 1.2 *************** *** 98,100 **** --- 98,154 ---- WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\SciEdit\Settings" "WindowHeight" "500" + ; Win32Forth IDE + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE" "" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File1" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File2" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File3" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File4" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File5" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File6" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File7" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Files" "File8" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File1" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File2" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File3" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File4" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File5" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File6" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File7" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Recent Project Files" "File8" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "Backup" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "EOL" "0" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ViewEOL" "0" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "WhiteSpace" "0" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "CaseSensitive" "0" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "SubDirectories" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "AllOccurances" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "Colorize" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ViewLineNumbers" "0" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "TabSize" "8" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "UseTabs" "0" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ShowToolbar" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ShowStatusbar" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "HandleW32FMsg" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "FinalNewLine" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "SaveAllBeforeCompile" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "StripTrailingSpaces" "-1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "WindowTop" "60" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "WindowLeft" "56" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "WindowWidth" "982" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "WindowHeight" "692" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "SearchMask" "*.f" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "SearchText" "" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "LeftWidth" "277" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "CompileProject" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "SearchPath" "$INSTDIR" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "EditToobarBand" "1" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "EditToobarWidth" "460" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ProjToobarBand" "2" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ProjToobarWidth" "263" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ProjStatusBand" "3" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ProjStatusWidth" "85" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ProjFileBand" "0" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ProjFileWidth" "169" + WriteRegStr HKEY_CURRENT_USER "Software\${APPNAMEANDVERSION}\Win32ForthIDE\Settings" "ProjectSearchPath" "" + ############################### reg2nsis end ################################# Index: ExtFiles.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/ExtFiles.nsi,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ExtFiles.nsi 12 Nov 2005 10:50:09 -0000 1.1 --- ExtFiles.nsi 1 Sep 2006 07:25:53 -0000 1.2 *************** *** 1,8 **** SetOutPath "$INSTDIR\extsrc\installer\" - File "Uninstall.nsi" - File "Files.nsi" File "ExtFiles.nsi" File "Registry.nsi" File "Win32Forth.nsi" SetOutPath "$INSTDIR\extsrc\w32fConsole\" File "..\w32fConsole\Console.cpp" --- 1,19 ---- SetOutPath "$INSTDIR\extsrc\installer\" File "ExtFiles.nsi" + File "Files.nsi" + File "ForthForm.exe" + File "help.ndx" + File "Hyper.ndx" + File "Licence.rtf" + File "Project.exe" File "Registry.nsi" + File "SciEdit.exe" + File "SciEditMDI.exe" + File "Uninstall.nsi" + File "Win32For.dbg" + File "Win32For.exe" File "Win32Forth.nsi" + File "WinEd.exe" + File "WinEd.ndx" SetOutPath "$INSTDIR\extsrc\w32fConsole\" File "..\w32fConsole\Console.cpp" *************** *** 22,25 **** --- 33,44 ---- File "..\w32fConsole\Term.cpp" File "..\w32fConsole\Term.h" + SetOutPath "$INSTDIR\extsrc\w32fHtmlDisplay\" + File "..\w32fHtmlDisplay\resource.h" + File "..\w32fHtmlDisplay\w32fHtmlDisplay.c" + File "..\w32fHtmlDisplay\w32fHtmlDisplay.def" + File "..\w32fHtmlDisplay\w32fHtmlDisplay.dsp" + File "..\w32fHtmlDisplay\w32fHtmlDisplay.dsw" + File "..\w32fHtmlDisplay\w32fHtmlDisplay.h" + File "..\w32fHtmlDisplay\w32fHtmlDisplay.rc" SetOutPath "$INSTDIR\extsrc\w32fScintilla\" File "..\w32fScintilla\delbin.bat" *************** *** 209,211 **** File "..\wincon\winconcpp\TOKENS.C" File "..\wincon\winconcpp\UNIX.C" - \ No newline at end of file --- 228,229 ---- Index: Uninstall.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/Uninstall.nsi,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Uninstall.nsi 27 May 2006 09:00:27 -0000 1.3 --- Uninstall.nsi 1 Sep 2006 07:25:53 -0000 1.4 *************** *** 1,14 **** ! ; Clean up w32f ! ; Clean up w32f Delete "$INSTDIR\fkernel.exe" Delete "$INSTDIR\FORTHFORM.CFG" Delete "$INSTDIR\Help.cfg" Delete "$INSTDIR\Hyper.cfg" Delete "$INSTDIR\setup.exe" Delete "$INSTDIR\w32fConsole.dll" Delete "$INSTDIR\w32fScintilla.dll" Delete "$INSTDIR\Win32for.cfg" Delete "$INSTDIR\Win32forUser.cfg" Delete "$INSTDIR\Wincon.dll" Delete "$INSTDIR\WinEdColorize.f" Delete "$INSTDIR\WinEdColorize1.COL" --- 1,21 ---- ! ; Clean up Win32Forth Delete "$INSTDIR\fkernel.exe" Delete "$INSTDIR\FORTHFORM.CFG" + Delete "$INSTDIR\FreeImage.dll" Delete "$INSTDIR\Help.cfg" Delete "$INSTDIR\Hyper.cfg" + Delete "$INSTDIR\Player4.exe.manifest" + Delete "$INSTDIR\PlayVirginRadio.exe.manifest" + Delete "$INSTDIR\Project.exe.manifest" Delete "$INSTDIR\setup.exe" + Delete "$INSTDIR\solipion.exe.manifest" Delete "$INSTDIR\w32fConsole.dll" Delete "$INSTDIR\w32fScintilla.dll" Delete "$INSTDIR\Win32for.cfg" + Delete "$INSTDIR\Win32for.exe.manifest" + Delete "$INSTDIR\Win32ForthIde.exe.manifest" Delete "$INSTDIR\Win32forUser.cfg" Delete "$INSTDIR\Wincon.dll" + Delete "$INSTDIR\WinEd.exe.manifest" Delete "$INSTDIR\WinEdColorize.f" Delete "$INSTDIR\WinEdColorize1.COL" *************** *** 47,51 **** Delete "$INSTDIR\apps\ForthForm\EXAMPLE.ff" Delete "$INSTDIR\apps\ForthForm\EXAMPLE.frm" - Delete "$INSTDIR\apps\ForthForm\FileLister.f" Delete "$INSTDIR\apps\ForthForm\FORMCONTROLS.F" Delete "$INSTDIR\apps\ForthForm\FormHelp.f" --- 54,57 ---- *************** *** 61,67 **** Delete "$INSTDIR\apps\ForthForm\GroupAction.f" Delete "$INSTDIR\apps\ForthForm\GroupAction.ff" - Delete "$INSTDIR\apps\ForthForm\IMAGEWINDOW.F" Delete "$INSTDIR\apps\ForthForm\POINT.F" Delete "$INSTDIR\apps\ForthForm\PREFERENCES.ff" Delete "$INSTDIR\apps\ForthForm\RECT.F" Delete "$INSTDIR\apps\ForthForm\SplitterWindow.f" --- 67,73 ---- Delete "$INSTDIR\apps\ForthForm\GroupAction.f" Delete "$INSTDIR\apps\ForthForm\GroupAction.ff" Delete "$INSTDIR\apps\ForthForm\POINT.F" Delete "$INSTDIR\apps\ForthForm\PREFERENCES.ff" + Delete "$INSTDIR\apps\ForthForm\quiksort.f" Delete "$INSTDIR\apps\ForthForm\RECT.F" Delete "$INSTDIR\apps\ForthForm\SplitterWindow.f" *************** *** 71,74 **** --- 77,81 ---- Delete "$INSTDIR\apps\ForthForm\TESTEXAMPLE.F" Delete "$INSTDIR\apps\ForthForm\res\FFBITMAPS.BMP" + Delete "$INSTDIR\apps\ForthForm\res\folder.bmp" Delete "$INSTDIR\apps\ForthForm\res\PICTURE.BMP" Delete "$INSTDIR\apps\ForthForm\res\save1.bmp" *************** *** 87,90 **** --- 94,134 ---- Delete "$INSTDIR\apps\ForthForm\res\stop1.BMP" Delete "$INSTDIR\apps\ForthForm\res\stop2.BMP" + Delete "$INSTDIR\apps\PictureViewer\AddPVResourcesToWin32for.f" + Delete "$INSTDIR\apps\PictureViewer\ChangesPV6.2.txt" + Delete "$INSTDIR\apps\PictureViewer\PictureViewer.exe.manifest" + Delete "$INSTDIR\apps\PictureViewer\PictureViewer.f" + Delete "$INSTDIR\apps\PictureViewer\PVDialogs.f" + Delete "$INSTDIR\apps\PictureViewer\PVFileAssociations.f" + Delete "$INSTDIR\apps\PictureViewer\PVMenu.f" + Delete "$INSTDIR\apps\PictureViewer\PVPrinting.f" + Delete "$INSTDIR\apps\PictureViewer\PVResources.f" + Delete "$INSTDIR\apps\PictureViewer\PVStatusBar.f" + Delete "$INSTDIR\apps\PictureViewer\PVToolbar.f" + Delete "$INSTDIR\apps\PictureViewer\RotateBits.f" + Delete "$INSTDIR\apps\PictureViewer\Res\Blank.cur" + Delete "$INSTDIR\apps\PictureViewer\Res\HandClosed.cur" + Delete "$INSTDIR\apps\PictureViewer\Res\HandOpen.cur" + Delete "$INSTDIR\apps\PictureViewer\Res\ICO100.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-BMP.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-GIF.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-IFF.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-JPG.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-PCD.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-PCX.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-PIC.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-PNG.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-PSD.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-TGA.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-TIF.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\ICON-WMF.ICO" + Delete "$INSTDIR\apps\PictureViewer\Res\IDD_ABOUTBOX.dlg" + Delete "$INSTDIR\apps\PictureViewer\Res\IDD_KEY_HELP.dlg" + Delete "$INSTDIR\apps\PictureViewer\Res\IDD_OPTIONS_DIALOG.dlg" + Delete "$INSTDIR\apps\PictureViewer\Res\Picture.ico" + Delete "$INSTDIR\apps\PictureViewer\Res\PV.h" + Delete "$INSTDIR\apps\PictureViewer\Res\PV.rc" + Delete "$INSTDIR\apps\PictureViewer\Res\PV.res" + Delete "$INSTDIR\apps\PictureViewer\Res\PVres.BAT" + Delete "$INSTDIR\apps\PictureViewer\Res\Toolbar.bmp" Delete "$INSTDIR\apps\Player4\Catalog.f" Delete "$INSTDIR\apps\Player4\CommandID.f" *************** *** 106,109 **** --- 150,155 ---- Delete "$INSTDIR\apps\Player4\Pl_Version.f" Delete "$INSTDIR\apps\Player4\PopupWindow.f" + Delete "$INSTDIR\apps\Player4\SearchPath.f" + Delete "$INSTDIR\apps\Player4\SearchPath.ff" Delete "$INSTDIR\apps\Player4\View.f" Delete "$INSTDIR\apps\Player4\view.ff" *************** *** 187,192 **** Delete "$INSTDIR\apps\Sudoku\Applause7.wav" Delete "$INSTDIR\apps\Sudoku\Readme.rtf" Delete "$INSTDIR\apps\Sudoku\Sudoku.f" - Delete "$INSTDIR\apps\Sudoku\Sudoku.fpj" Delete "$INSTDIR\apps\Sudoku\SudokuDialogs.f" Delete "$INSTDIR\apps\Sudoku\SudokuMenu.f" --- 233,238 ---- Delete "$INSTDIR\apps\Sudoku\Applause7.wav" Delete "$INSTDIR\apps\Sudoku\Readme.rtf" + Delete "$INSTDIR\apps\Sudoku\Sudoku.exe.manifest" Delete "$INSTDIR\apps\Sudoku\Sudoku.f" Delete "$INSTDIR\apps\Sudoku\SudokuDialogs.f" Delete "$INSTDIR\apps\Sudoku\SudokuMenu.f" *************** *** 259,262 **** --- 305,338 ---- Delete "$INSTDIR\apps\Sudoku\Res\SudokuDialog.RES" Delete "$INSTDIR\apps\Sudoku\Res\Toolbar.bmp" + Delete "$INSTDIR\apps\Win32ForthIDE\AnsLink.f" + Delete "$INSTDIR\apps\Win32ForthIDE\ClassBrowser.f" + Delete "$INSTDIR\apps\Win32ForthIDE\CommandID.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdAbout.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdCommand.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdCompile.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdDebug.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdFilePane.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdFindInFiles.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdHexViewer.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdHtmlPreview.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdImageWindow.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdMenu.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdRemote.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdStatusbar.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdTabControl.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdToolbar.f" + Delete "$INSTDIR\apps\Win32ForthIDE\EdVersion.f" + Delete "$INSTDIR\apps\Win32ForthIDE\FileWindow.frm" + Delete "$INSTDIR\apps\Win32ForthIDE\Main.f" + Delete "$INSTDIR\apps\Win32ForthIDE\ProjectTree.f" + Delete "$INSTDIR\apps\Win32ForthIDE\ScintillaHyperMDI.f" + Delete "$INSTDIR\apps\Win32ForthIDE\ScintillaMDI.f" + Delete "$INSTDIR\apps\Win32ForthIDE\X_SEARCH.F" + Delete "$INSTDIR\apps\Win32ForthIDE\res\copy.bmp" + Delete "$INSTDIR\apps\Win32ForthIDE\res\delete.bmp" + Delete "$INSTDIR\apps\Win32ForthIDE\res\drive.bmp" + Delete "$INSTDIR\apps\Win32ForthIDE\res\dupe.bmp" + Delete "$INSTDIR\apps\Win32ForthIDE\res\specs.bmp" + Delete "$INSTDIR\apps\Win32ForthIDE\res\Toolbar.bmp" Delete "$INSTDIR\apps\WinEd\Ed_About.F" Delete "$INSTDIR\apps\WinEd\Ed_Clipboard.F" *************** *** 315,319 **** --- 391,397 ---- Delete "$INSTDIR\demos\PdfControlDemo.f" Delete "$INSTDIR\demos\pentom.f" + Delete "$INSTDIR\demos\RebarControlDemo.f" Delete "$INSTDIR\demos\ROMCALC.F" + Delete "$INSTDIR\demos\TabControlDemo.f" Delete "$INSTDIR\demos\taskdemo.f" Delete "$INSTDIR\demos\WINBROWS.BMP" *************** *** 330,333 **** --- 408,417 ---- Delete "$INSTDIR\demos\AccelDemo\AccelDemo.bmp" Delete "$INSTDIR\demos\AccelDemo\AccelDemo.f" + Delete "$INSTDIR\demos\ADO\ADOreadme.txt" + Delete "$INSTDIR\demos\ADO\EX_Connstr.f" + Delete "$INSTDIR\demos\ADO\EX_Create.f" + Delete "$INSTDIR\demos\ADO\EX_Dump.f" + Delete "$INSTDIR\demos\ADO\EX_Ins.f" + Delete "$INSTDIR\demos\ADO\EX_InsSQL.f" Delete "$INSTDIR\demos\COM\D3Dtest.f" Delete "$INSTDIR\demos\COM\EX_ADO.F" *************** *** 349,352 **** --- 433,437 ---- Delete "$INSTDIR\doc\FORTHPRO.gif" Delete "$INSTDIR\doc\Forth_Primer.pdf" + Delete "$INSTDIR\doc\FreeImagePublicLicense.txt" Delete "$INSTDIR\doc\LEFT.GIF" Delete "$INSTDIR\doc\ONWEB.gif" *************** *** 391,394 **** --- 476,480 ---- Delete "$INSTDIR\doc\p-using-if.htm" Delete "$INSTDIR\doc\p-windlls.htm" + Delete "$INSTDIR\doc\Paths.htm" Delete "$INSTDIR\doc\RIGHT.GIF" Delete "$INSTDIR\doc\SELF-EXT.gif" *************** *** 399,402 **** --- 485,489 ---- Delete "$INSTDIR\doc\Setup05.jpg" Delete "$INSTDIR\doc\TELLUS.gif" + Delete "$INSTDIR\doc\Unicode.htm" Delete "$INSTDIR\doc\UP.GIF" Delete "$INSTDIR\doc\UTILDOC.TXT" *************** *** 404,407 **** --- 491,495 ---- Delete "$INSTDIR\doc\WIN32FOR.jpg" Delete "$INSTDIR\doc\WINED1.jpg" + Delete "$INSTDIR\doc\classes\ADO.htm" Delete "$INSTDIR\doc\classes\AXControl.htm" Delete "$INSTDIR\doc\classes\Childwnd.htm" *************** *** 548,554 **** --- 636,649 ---- Delete "$INSTDIR\doc\ProMgr\ProjectManager.htm" Delete "$INSTDIR\doc\SciEdit\SciEdit.htm" + Delete "$INSTDIR\proj\Chess.fpj" Delete "$INSTDIR\proj\ForthForm.fpj" + Delete "$INSTDIR\proj\PictureViewer.fpj" + Delete "$INSTDIR\proj\Player4th.fpj" + Delete "$INSTDIR\proj\PlayVirginRadio.fpj" Delete "$INSTDIR\proj\ProMgr.fpj" Delete "$INSTDIR\proj\SciEdit.fpj" + Delete "$INSTDIR\proj\Solipon.fpj" + Delete "$INSTDIR\proj\Sudoku.fpj" + Delete "$INSTDIR\proj\Win32ForthIDE.fpj" Delete "$INSTDIR\proj\WinEd.fpj" Delete "$INSTDIR\src\486ASM.F" *************** *** 610,613 **** --- 705,710 ---- Delete "$INSTDIR\src\WORDS.F" Delete "$INSTDIR\src\xfiledlg.f" + Delete "$INSTDIR\src\Compat\KernelFiles42.f" + Delete "$INSTDIR\src\Compat\OldPaths.f" Delete "$INSTDIR\src\console\BasicWin.f" Delete "$INSTDIR\src\console\CONSOLE.F" *************** *** 640,643 **** --- 737,741 ---- Delete "$INSTDIR\src\kernel\version.f" Delete "$INSTDIR\src\lib\AcceleratorTables.f" + Delete "$INSTDIR\src\lib\ADO.f" Delete "$INSTDIR\src\lib\array.f" Delete "$INSTDIR\src\lib\AXControl.F" *************** *** 646,649 **** --- 744,750 ---- Delete "$INSTDIR\src\lib\BLOCK.F" Delete "$INSTDIR\src\lib\BROWSEFLD.F" + Delete "$INSTDIR\src\lib\ButtonBar.f" + Delete "$INSTDIR\src\lib\Buttons.f" + Delete "$INSTDIR\src\lib\Calendar.f" Delete "$INSTDIR\src\lib\CTYPE.F" Delete "$INSTDIR\src\lib\DIALOGRC.F" *************** *** 657,660 **** --- 758,762 ---- Delete "$INSTDIR\src\lib\file.f" Delete "$INSTDIR\src\lib\FileAssociations.f" + Delete "$INSTDIR\src\lib\FileLister.f" Delete "$INSTDIR\src\lib\FlashControl.F" Delete "$INSTDIR\src\lib\GetWindowPlacment.f" *************** *** 663,667 **** --- 765,773 ---- Delete "$INSTDIR\src\lib\HtmlDisplayWindow.f" Delete "$INSTDIR\src\lib\HyperLink.f" + Delete "$INSTDIR\src\lib\IMAGEWINDOW.F" + Delete "$INSTDIR\src\lib\Joystick.f" + Delete "$INSTDIR\src\lib\Label.f" Delete "$INSTDIR\src\lib\linklist.f" + Delete "$INSTDIR\src\lib\ListBox.f" Delete "$INSTDIR\src\lib\Listview.f" Delete "$INSTDIR\src\lib\MDI.F" *************** *** 671,674 **** --- 777,781 ---- Delete "$INSTDIR\src\lib\multithr.f" Delete "$INSTDIR\src\lib\PDFControl.F" + Delete "$INSTDIR\src\lib\ProgressBar.f" Delete "$INSTDIR\src\lib\RebarControl.f" Delete "$INSTDIR\src\lib\RecentFiles.f" *************** *** 680,683 **** --- 787,792 ---- Delete "$INSTDIR\src\lib\ScintillaHyperEdit.f" Delete "$INSTDIR\src\lib\ScintillaLexer.f" + Delete "$INSTDIR\src\lib\ScrollBar.f" + Delete "$INSTDIR\src\lib\Security.f" Delete "$INSTDIR\src\lib\sendmessage.f" Delete "$INSTDIR\src\lib\SoundVolume.f" *************** *** 686,693 **** --- 795,807 ---- Delete "$INSTDIR\src\lib\SUB_DIRS.F" Delete "$INSTDIR\src\lib\switch.f" + Delete "$INSTDIR\src\lib\TabControl.f" Delete "$INSTDIR\src\lib\task.f" + Delete "$INSTDIR\src\lib\TextBox.f" Delete "$INSTDIR\src\lib\toolbar.f" + Delete "$INSTDIR\src\lib\TrackBar.f" Delete "$INSTDIR\src\lib\TrayWindow.f" Delete "$INSTDIR\src\lib\treeview.f" + Delete "$INSTDIR\src\lib\Unicode.F" + Delete "$INSTDIR\src\lib\UpDownControl.f" Delete "$INSTDIR\src\lib\Volinfo.f" Delete "$INSTDIR\src\lib\Win32Help.f" *************** *** 736,739 **** --- 850,854 ---- Delete "$INSTDIR\src\tools\dfc.F" Delete "$INSTDIR\src\tools\dump.f" + Delete "$INSTDIR\src\tools\DumpWindows.f" Delete "$INSTDIR\src\tools\HelpSystem.f" Delete "$INSTDIR\src\tools\MsdnHelp.f" *************** *** 748,757 **** Delete "$INSTDIR\Templates\TreeViewInSplitWindow.f" ! ; remove ExtSrc Delete "$INSTDIR\extsrc\installer\ExtFiles.nsi" Delete "$INSTDIR\extsrc\installer\Files.nsi" ! Delete "$INSTDIR\extsrc\installer\Uninstall.nsi" Delete "$INSTDIR\extsrc\installer\Registry.nsi" Delete "$INSTDIR\extsrc\installer\Win32Forth.nsi" Delete "$INSTDIR\extsrc\w32fConsole\Console.cpp" Delete "$INSTDIR\extsrc\w32fConsole\Console.def" --- 863,883 ---- Delete "$INSTDIR\Templates\TreeViewInSplitWindow.f" ! ; Clean up ExtSource Delete "$INSTDIR\extsrc\installer\ExtFiles.nsi" Delete "$INSTDIR\extsrc\installer\Files.nsi" ! Delete "$INSTDIR\extsrc\installer\ForthForm.exe" ! Delete "$INSTDIR\extsrc\installer\help.ndx" ! Delete "$INSTDIR\extsrc\installer\Hyper.ndx" ! Delete "$INSTDIR\extsrc\installer\Licence.rtf" ! Delete "$INSTDIR\extsrc\installer\Project.exe" Delete "$INSTDIR\extsrc\installer\Registry.nsi" + Delete "$INSTDIR\extsrc\installer\SciEdit.exe" + Delete "$INSTDIR\extsrc\installer\SciEditMDI.exe" + Delete "$INSTDIR\extsrc\installer\Uninstall.nsi" + Delete "$INSTDIR\extsrc\installer\Win32For.dbg" + Delete "$INSTDIR\extsrc\installer\Win32For.exe" Delete "$INSTDIR\extsrc\installer\Win32Forth.nsi" + Delete "$INSTDIR\extsrc\installer\WinEd.exe" + Delete "$INSTDIR\extsrc\installer\WinEd.ndx" Delete "$INSTDIR\extsrc\w32fConsole\Console.cpp" Delete "$INSTDIR\extsrc\w32fConsole\Console.def" *************** *** 770,773 **** --- 896,906 ---- Delete "$INSTDIR\extsrc\w32fConsole\Term.cpp" Delete "$INSTDIR\extsrc\w32fConsole\Term.h" + Delete "$INSTDIR\extsrc\w32fHtmlDisplay\resource.h" + Delete "$INSTDIR\extsrc\w32fHtmlDisplay\w32fHtmlDisplay.c" + Delete "$INSTDIR\extsrc\w32fHtmlDisplay\w32fHtmlDisplay.def" + Delete "$INSTDIR\extsrc\w32fHtmlDisplay\w32fHtmlDisplay.dsp" + Delete "$INSTDIR\extsrc\w32fHtmlDisplay\w32fHtmlDisplay.dsw" + Delete "$INSTDIR\extsrc\w32fHtmlDisplay\w32fHtmlDisplay.h" + Delete "$INSTDIR\extsrc\w32fHtmlDisplay\w32fHtmlDisplay.rc" Delete "$INSTDIR\extsrc\w32fScintilla\delbin.bat" Delete "$INSTDIR\extsrc\w32fScintilla\delcvs.bat" *************** *** 949,956 **** Delete "$INSTDIR\extsrc\wincon\winconcpp\UNIX.C" ! ; Remove remaining directories ! RMDir "$SMPROGRAMS\w32f" ! ! RMDir "$INSTDIR\extsrc\wincon\winconcpp\" RMDir "$INSTDIR\extsrc\wincon\" RMDir "$INSTDIR\extsrc\w32fScintilla\win32\" --- 1082,1087 ---- Delete "$INSTDIR\extsrc\wincon\winconcpp\UNIX.C" ! ; Remove remaining directories ! RMDir "$INSTDIR\extsrc\wincon\winconcpp\" RMDir "$INSTDIR\extsrc\wincon\" RMDir "$INSTDIR\extsrc\w32fScintilla\win32\" *************** *** 961,968 **** RMDir "$INSTDIR\extsrc\w32fScintilla\doc\" RMDir "$INSTDIR\extsrc\w32fScintilla\" RMDir "$INSTDIR\extsrc\w32fConsole\" RMDir "$INSTDIR\extsrc\installer\" ! RMDir "$INSTDIR\extsrc\" ! RMDir "$INSTDIR\src\tools\" RMDir "$INSTDIR\src\res\" --- 1092,1099 ---- RMDir "$INSTDIR\extsrc\w32fScintilla\doc\" RMDir "$INSTDIR\extsrc\w32fScintilla\" + RMDir "$INSTDIR\extsrc\w32fHtmlDisplay\" RMDir "$INSTDIR\extsrc\w32fConsole\" RMDir "$INSTDIR\extsrc\installer\" ! RMDir "$INSTDIR\Templates\" RMDir "$INSTDIR\src\tools\" RMDir "$INSTDIR\src\res\" *************** *** 973,979 **** RMDir "$INSTDIR\src\gdi\" RMDir "$INSTDIR\src\console\" RMDir "$INSTDIR\src\" RMDir "$INSTDIR\proj\" - RMDir "$INSTDIR\Templates\" RMDir "$INSTDIR\doc\SciEdit\" RMDir "$INSTDIR\doc\ProMgr\" --- 1104,1110 ---- RMDir "$INSTDIR\src\gdi\" RMDir "$INSTDIR\src\console\" + RMDir "$INSTDIR\src\Compat\" RMDir "$INSTDIR\src\" RMDir "$INSTDIR\proj\" RMDir "$INSTDIR\doc\SciEdit\" RMDir "$INSTDIR\doc\ProMgr\" *************** *** 985,992 **** --- 1116,1126 ---- RMDir "$INSTDIR\demos\GdiDemo\" RMDir "$INSTDIR\demos\COM\" + RMDir "$INSTDIR\demos\ADO\" RMDir "$INSTDIR\demos\AccelDemo\" RMDir "$INSTDIR\demos\" RMDir "$INSTDIR\apps\WinEd\res\" RMDir "$INSTDIR\apps\WinEd\" + RMDir "$INSTDIR\apps\Win32ForthIDE\res\" + RMDir "$INSTDIR\apps\Win32ForthIDE\" RMDir "$INSTDIR\apps\Sudoku\Res\" RMDir "$INSTDIR\apps\Sudoku\Games\" *************** *** 1000,1006 **** --- 1134,1143 ---- RMDir "$INSTDIR\apps\PlayVirginRadio\" RMDir "$INSTDIR\apps\Player4\" + RMDir "$INSTDIR\apps\PictureViewer\Res\" + RMDir "$INSTDIR\apps\PictureViewer\" RMDir "$INSTDIR\apps\ForthForm\res\" RMDir "$INSTDIR\apps\ForthForm\" RMDir "$INSTDIR\apps\Chess\" RMDir "$INSTDIR\apps\" + RMDir "$INSTDIR\extsrc\" RMDir "$INSTDIR\" Index: Win32Forth.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/Win32Forth.nsi,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Win32Forth.nsi 27 May 2006 09:00:27 -0000 1.7 --- Win32Forth.nsi 1 Sep 2006 07:25:53 -0000 1.8 *************** *** 8,14 **** !define VER_MAJOR 6 !define VER_MINOR 11 ! !define VER_REVISION 9 ! !define VER_DISPLAY "6.11.09" ! !define VER_FILE "61109" ; Define your application name --- 8,14 ---- !define VER_MAJOR 6 !define VER_MINOR 11 ! !define VER_REVISION 10 ! !define VER_DISPLAY "6.11.10" ! !define VER_FILE "61110" ; Define your application name *************** *** 36,61 **** MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .F be associated with 'WinEd'?" IDNO AFE1 WriteRegStr HKCR ".f" "" "f_auto_file" ! WriteRegStr HKCR "f_auto_file" "" "${APPNAME}" WriteRegStr HKCR "f_auto_file\shell" "" "open" WriteRegStr HKCR "f_auto_file\shell\open\command" "" '"$INSTDIR\WinEd.exe" "%1"' AFE1: ! MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .FF be associated with 'ForthForm'?" IDNO AFE2 WriteRegStr HKCR ".ff" "" "ff_auto_file" ! WriteRegStr HKCR "ff_auto_file" "" "ForthForm" WriteRegStr HKCR "ff_auto_file\shell" "" "open" WriteRegStr HKCR "ff_auto_file\shell\open\command" "" '"$INSTDIR\ForthForm.exe" "%1"' ! AFE2: ! MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .FPJ be associated with 'ProjectManager'?" IDNO AFE3 WriteRegStr HKCR ".fpj" "" "fpj_auto_file" ! WriteRegStr HKCR "fpj_auto_file" "" "ForthProjectManager" WriteRegStr HKCR "fpj_auto_file\shell" "" "open" WriteRegStr HKCR "fpj_auto_file\shell\open\command" "" '"$INSTDIR\Project.exe" "%1"' ! AFE3: ! MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .F be associated with 'SciEdit'?" IDNO AFE4 ! WriteRegStr HKCR ".f" "" "f_auto_file" ! WriteRegStr HKCR "f_auto_file" "" "${APPNAME}" ! WriteRegStr HKCR "f_auto_file\shell" "" "open" ! WriteRegStr HKCR "f_auto_file\shell\open\command" "" '"$INSTDIR\SciEditMdi.EXE" "%1"' ! AFE4: FunctionEnd --- 36,73 ---- MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .F be associated with 'WinEd'?" IDNO AFE1 WriteRegStr HKCR ".f" "" "f_auto_file" ! WriteRegStr HKCR "f_auto_file" "" "${APPNAME} Sourcefile" WriteRegStr HKCR "f_auto_file\shell" "" "open" WriteRegStr HKCR "f_auto_file\shell\open\command" "" '"$INSTDIR\WinEd.exe" "%1"' AFE1: ! ; MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .F be associated with 'SciEdit'?" IDNO AFE2 ! ; WriteRegStr HKCR ".f" "" "f_auto_file" ! ; WriteRegStr HKCR "f_auto_file" "" "${APPNAME} Sourcefile" ! ; WriteRegStr HKCR "f_auto_file\shell" "" "open" ! ; WriteRegStr HKCR "f_auto_file\shell\open\command" "" '"$INSTDIR\SciEditMdi.EXE" "%1"' ! ;AFE2: ! MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .F be associated with the 'Win32Forth IDE'?" IDNO AFE3 ! WriteRegStr HKCR ".f" "" "f_auto_file" ! WriteRegStr HKCR "f_auto_file" "" "${APPNAME} Sourcefile" ! WriteRegStr HKCR "f_auto_file\shell" "" "open" ! WriteRegStr HKCR "f_auto_file\shell\open\command" "" '"$INSTDIR\Win32ForthIDE.EXE" "%1"' ! AFE3: ! MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .FF be associated with 'ForthForm'?" IDNO AFE4 WriteRegStr HKCR ".ff" "" "ff_auto_file" ! WriteRegStr HKCR "ff_auto_file" "" "${APPNAME} Form" WriteRegStr HKCR "ff_auto_file\shell" "" "open" WriteRegStr HKCR "ff_auto_file\shell\open\command" "" '"$INSTDIR\ForthForm.exe" "%1"' ! AFE4: ! MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .FPJ be associated with 'ProjectManager'?" IDNO AFE5 WriteRegStr HKCR ".fpj" "" "fpj_auto_file" ! WriteRegStr HKCR "fpj_auto_file" "" "${APPNAME} Projectfile" WriteRegStr HKCR "fpj_auto_file\shell" "" "open" WriteRegStr HKCR "fpj_auto_file\shell\open\command" "" '"$INSTDIR\Project.exe" "%1"' ! AFE5: ! MessageBox MB_YESNO|MB_ICONQUESTION "Should the file extention .FPJ be associated with the 'Win32Forth IDE'?" IDNO AFE6 ! WriteRegStr HKCR ".fpj" "" "fpj_auto_file" ! WriteRegStr HKCR "fpj_auto_file" "" "${APPNAME} Projectfile" ! WriteRegStr HKCR "fpj_auto_file\shell" "" "open" ! WriteRegStr HKCR "fpj_auto_file\shell\open\command" "" '"$INSTDIR\Win32ForthIDE.exe" "%1"' ! AFE6: FunctionEnd *************** *** 96,106 **** CreateShortCut "$DESKTOP\ForthForm.lnk" "$INSTDIR\ForthForm.EXE" "" "$INSTDIR\src\res\ForthForm.ico" "" "" "" "Win32Forth Dialog-Editor" CreateShortCut "$DESKTOP\ForthProject.lnk" "$INSTDIR\Project.EXE" "" "$INSTDIR\src\res\Project.ico" "" "" "" "Win32Forth Project Manager" ! CreateShortCut "$DESKTOP\SciEdit.lnk" "$INSTDIR\SciEditMdi.EXE" "" "$INSTDIR\src\res\SciEditMDI.ico" "" "" "" "Win32Forth SciEdit" ; CreateShortCut "$DESKTOP\Win32Forth Setup.lnk" "$INSTDIR\Setup.EXE" "" "$INSTDIR\src\res\Win32for.ico" "" "" "" "Win32Forth Setup" CreateDirectory "$SMPROGRAMS\${APPNAMEANDVERSION}" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\Win32Forth.lnk" "$INSTDIR\Win32for.EXE" "" "$INSTDIR\src\res\Win32for.ico" "" "" "" "Win32Forth Console" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\WinEd.lnk" "$INSTDIR\WinEd.EXE" "" "$INSTDIR\src\res\WinEd.ico" "" "" "" "Win32Forth Editor" ! CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\SciEdit.lnk" "$INSTDIR\SciEditMdi.EXE" "" "$INSTDIR\src\res\SciEditMDI.ico" "" "" "" "Win32Forth SciEdit" ! CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\ForthForm.lnk" "$INSTDIR\ForthForm.EXE" "" "$INSTDIR\src\res\ForthForm.ico" "" "" "" "Win32Forth Dialog-Editor" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\ForthProject.lnk" "$INSTDIR\Project.EXE" "" "$INSTDIR\src\res\Project.ico" "" "" "" "Win32Forth Project Manager" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\Setup.lnk" "$INSTDIR\Setup.EXE" "" "$INSTDIR\src\res\Win32for.ico" "" "" "" "Win32Forth Setup" --- 108,120 ---- CreateShortCut "$DESKTOP\ForthForm.lnk" "$INSTDIR\ForthForm.EXE" "" "$INSTDIR\src\res\ForthForm.ico" "" "" "" "Win32Forth Dialog-Editor" CreateShortCut "$DESKTOP\ForthProject.lnk" "$INSTDIR\Project.EXE" "" "$INSTDIR\src\res\Project.ico" "" "" "" "Win32Forth Project Manager" ! ; CreateShortCut "$DESKTOP\SciEdit.lnk" "$INSTDIR\SciEditMdi.EXE" "" "$INSTDIR\src\res\SciEditMDI.ico" "" "" "" "Win32Forth SciEdit" ! CreateShortCut "$DESKTOP\Win32ForthIDE.lnk" "$INSTDIR\Win32ForthIDE.EXE" "" "$INSTDIR\src\res\SciEditMDI.ico" "" "" "" "Win32Forth IDE" ; CreateShortCut "$DESKTOP\Win32Forth Setup.lnk" "$INSTDIR\Setup.EXE" "" "$INSTDIR\src\res\Win32for.ico" "" "" "" "Win32Forth Setup" CreateDirectory "$SMPROGRAMS\${APPNAMEANDVERSION}" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\Win32Forth.lnk" "$INSTDIR\Win32for.EXE" "" "$INSTDIR\src\res\Win32for.ico" "" "" "" "Win32Forth Console" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\WinEd.lnk" "$INSTDIR\WinEd.EXE" "" "$INSTDIR\src\res\WinEd.ico" "" "" "" "Win32Forth Editor" ! ; CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\SciEdit.lnk" "$INSTDIR\SciEditMdi.EXE" "" "$INSTDIR\src\res\SciEditMDI.ico" "" "" "" "Win32Forth SciEdit" ! CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\Win32ForthIDE.lnk" "$INSTDIR\Win32ForthIDE.EXE" "" "$INSTDIR\src\res\SciEditMDI.ico" "" "" "" "Win32Forth IDE" ! CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\ForthForm.lnk" "$INSTDIR\ForthForm.EXE" "" "$INSTDIR\src\res\ForthForm.ico" "" "" "" "Win32Forth Dialog-Editor" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\ForthProject.lnk" "$INSTDIR\Project.EXE" "" "$INSTDIR\src\res\Project.ico" "" "" "" "Win32Forth Project Manager" CreateShortCut "$SMPROGRAMS\${APPNAMEANDVERSION}\Setup.lnk" "$INSTDIR\Setup.EXE" "" "$INSTDIR\src\res\Win32for.ico" "" "" "" "Win32Forth Setup" *************** *** 183,187 **** Delete "$DESKTOP\ForthProject.lnk" ; Delete "$DESKTOP\Win32Forth Setup.lnk" ! Delete "$DESKTOP\SciEdit.lnk" RMDir /r "$SMPROGRAMS\${APPNAMEANDVERSION}" --- 197,202 ---- Delete "$DESKTOP\ForthProject.lnk" ; Delete "$DESKTOP\Win32Forth Setup.lnk" ! ; Delete "$DESKTOP\SciEdit.lnk" ! Delete "$DESKTOP\Win32ForthIDE.lnk" RMDir /r "$SMPROGRAMS\${APPNAMEANDVERSION}" *************** *** 194,197 **** --- 209,213 ---- Delete "$INSTDIR\Project.exe" Delete "$INSTDIR\SciEditMdi.exe" + Delete "$INSTDIR\Win32ForthIDE.exe" Delete "$INSTDIR\solipion.exe" Delete "$INSTDIR\Sudoku.exe" Index: Files.nsi =================================================================== RCS file: /cvsroot/win32forth/win32forth-extsrc/extsrc/installer/Files.nsi,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Files.nsi 27 May 2006 09:00:27 -0000 1.3 --- Files.nsi 1 Sep 2006 07:25:53 -0000 1.4 *************** *** 3,14 **** --- 3,22 ---- File "..\..\..\win32forth\fkernel.exe" File "..\..\..\win32forth\FORTHFORM.CFG" + File "..\..\..\win32forth\FreeImage.dll" File "..\..\..\win32forth\Help.cfg" File "..\..\..\win32forth\Hyper.cfg" + File "..\..\..\win32forth\Player4.exe.manifest" + File "..\..\..\win32forth\PlayVirginRadio.exe.manifest" + File "..\..\..\win32forth\Project.exe.manifest" File "..\..\..\win32forth\setup.exe" + File "..\..\..\win32forth\solipion.exe.manifest" File "..\..\..\win32forth\w32fConsole.dll" File "..\..\..\win32forth\w32fScintilla.dll" File "..\..\..\win32forth\Win32for.cfg" + File "..\..\..\win32forth\Win32for.exe.manifest" + File "..\..\..\win32forth\Win32ForthIde.exe.manifest" File "..\..\..\win32forth\Win32forUser.cfg" File "..\..\..\win32forth\Wincon.dll" + File "..\..\..\win32forth\WinEd.exe.manifest" File "..\..\..\win32forth\WinEdColorize.f" File "..\..\..\win32forth\WinEdColorize1.COL" *************** *** 49,53 **** File "..\..\..\win32forth\apps\ForthForm\EXAMPLE.ff" File "..\..\..\win32forth\apps\ForthForm\EXAMPLE.frm" - File "..\..\..\win32forth\apps\ForthForm\FileLister.f" File "..\..\..\win32forth\apps\ForthForm\FORMCONTROLS.F" File "..\..\..\win32forth\apps\ForthForm\FormHelp.f" --- 57,60 ---- *************** *** 63,69 **** File "..\..\..\win32forth\apps\ForthForm\GroupAction.f" File "..\..\..\win32forth\apps\ForthForm\GroupAction.ff" - File "..\..\..\win32forth\apps\ForthForm\IMAGEWINDOW.F" File "..\..\..\win32forth\apps\ForthForm\POINT.F" File "..\..\..\win32forth\apps\ForthForm\PREFERENCES.ff" File "..\..\..\win32forth\apps\ForthForm\RECT.F" File "..\..\..\win32forth\apps\ForthForm\SplitterWindow.f" --- 70,76 ---- File "..\..\..\win32forth\apps\ForthForm\GroupAction.f" File "..\..\..\win32forth\apps\ForthForm\GroupAction.ff" File "..\..\..\win32forth\apps\ForthForm\POINT.F" File "..\..\..\win32forth\apps\ForthForm\PREFERENCES.ff" + File "..\..\..\win32forth\apps\ForthForm\quiksort.f" File "..\..\..\win32forth\apps\ForthForm\RECT.F" File "..\..\..\win32forth\apps\ForthForm\SplitterWindow.f" *************** *** 74,77 **** --- 81,85 ---- SetOutPath "$INSTDIR\apps\ForthForm\res\" File "..\..\..\win32forth\apps\ForthForm\res\FFBITMAPS.BMP" + File "..\..\..\win32forth\apps\ForthForm\res\folder.bmp" File "..\..\..\win32forth\apps\ForthForm\res\PICTURE.BMP" File "..\..\..\win32forth\apps\ForthForm\res\save1.bmp" *************** *** 90,93 **** --- 98,140 ---- File "..\..\..\win32forth\apps\ForthForm\res\stop1.BMP" File "..\..\..\win32forth\apps\ForthForm\res\stop2.BMP" + SetOutPath "$INSTDIR\apps\PictureViewer\" + File "..\..\..\win32forth\apps\PictureViewer\AddPVResourcesToWin32for.f" + File "..\..\..\win32forth\apps\PictureViewer\ChangesPV6.2.txt" + File "..\..\..\win32forth\apps\PictureViewer\PictureViewer.exe.manifest" + File "..\..\..\win32forth\apps\PictureViewer\PictureViewer.f" + File "..\..\..\win32forth\apps\PictureViewer\PVDialogs.f" + File "..\..\..\win32forth\apps\PictureViewer\PVFileAssociations.f" + File "..\..\..\win32forth\apps\PictureViewer\PVMenu.f" + File "..\..\..\win32forth\apps\PictureViewer\PVPrinting.f" + File "..\..\..\win32forth\apps\PictureViewer\PVResources.f" + File "..\..\..\win32forth\apps\PictureViewer\PVStatusBar.f" + File "..\..\..\win32forth\apps\PictureViewer\PVToolbar.f" + File "..\..\..\win32forth\apps\PictureViewer\RotateBits.f" + SetOutPath "$INSTDIR\apps\PictureViewer\Res\" + File "..\..\..\win32forth\apps\PictureViewer\Res\Blank.cur" + File "..\..\..\win32forth\apps\PictureViewer\Res\HandClosed.cur" + File "..\..\..\win32forth\apps\PictureViewer\Res\HandOpen.cur" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICO100.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-BMP.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-GIF.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-IFF.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-JPG.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-PCD.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-PCX.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-PIC.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-PNG.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-PSD.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-TGA.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-TIF.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\ICON-WMF.ICO" + File "..\..\..\win32forth\apps\PictureViewer\Res\IDD_ABOUTBOX.dlg" + File "..\..\..\win32forth\apps\PictureViewer\Res\IDD_KEY_HELP.dlg" + File "..\..\..\win32forth\apps\PictureViewer\Res\IDD_OPTIONS_DIALOG.dlg" + File "..\..\..\win32forth\apps\PictureViewer\Res\Picture.ico" + File "..\..\..\win32forth\apps\PictureViewer\Res\PV.h" + File "..\..\..\win32forth\apps\PictureViewer\Res\PV.rc" + File "..\..\..\win32forth\apps\PictureViewer\Res\PV.res" + File "..\..\..\win32forth\apps\PictureViewer\Res\PVres.BAT" + File "..\..\..\win32forth\apps\PictureViewer\Res\Toolbar.bmp" SetOutPath "$INSTDIR\apps\Player4\" File "..\..\..\win32forth\apps\Player4\Catalog.f" *************** *** 110,113 **** --- 157,162 ---- File "..\..\..\win32forth\apps\Player4\Pl_Version.f" File "..\..\..\win32forth\apps\Player4\PopupWindow.f" + File "..\..\..\win32forth\apps\Player4\SearchPath.f" + File "..\..\..\win32forth\apps\Player4\SearchPath.ff" File "..\..\..\win32forth\apps\Player4\View.f" File "..\..\..\win32forth\apps\Player4\view.ff" *************** *** 199,204 **** File "..\..\..\win32forth\apps\Sudoku\Applause7.wav" File "..\..\..\win32forth\apps\Sudoku\Readme.rtf" File "..\..\..\win32forth\apps\Sudoku\Sudoku.f" - File "..\..\..\win32forth\apps\Sudoku\Sudoku.fpj" File "..\..\..\win32forth\apps\Sudoku\SudokuDialogs.f" File "..\..\..\win32forth\apps\Sudoku\SudokuMenu.f" --- 248,253 ---- File "..\..\..\win32forth\apps\Sudoku\Applause7.wav" File "..\..\..\win32forth\apps\Sudoku\Readme.rtf" + File "..\..\..\win32forth\apps\Sudoku\Sudoku.exe.manifest" File "..\..\..\win32forth\apps\Sudoku\Sudoku.f" File "..\..\..\win32forth\apps\Sudoku\SudokuDialogs.f" File "..\..\..\win32forth\apps\Sudoku\SudokuMenu.f" *************** *** 273,276 **** --- 322,357 ---- File "..\..\..\win32forth\apps\Sudoku\Res\SudokuDialog.RES" File "..\..\..\win32forth\apps\Sudoku\Res\Toolbar.bmp" + SetOutPath "$INSTDIR\apps\Win32ForthIDE\" + File "..\..\..\win32forth\apps\Win32ForthIDE\AnsLink.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\ClassBrowser.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\CommandID.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdAbout.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdCommand.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdCompile.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdDebug.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdFilePane.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdFindInFiles.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdHexViewer.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdHtmlPreview.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdImageWindow.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdMenu.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdRemote.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdStatusbar.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdTabControl.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdToolbar.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\EdVersion.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\FileWindow.frm" + File "..\..\..\win32forth\apps\Win32ForthIDE\Main.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\ProjectTree.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\ScintillaHyperMDI.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\ScintillaMDI.f" + File "..\..\..\win32forth\apps\Win32ForthIDE\X_SEARCH.F" + SetOutPath "$INSTDIR\apps\Win32ForthIDE\res\" + File "..\..\..\win32forth\apps\Win32ForthIDE\res\copy.bmp" + File "..\..\..\win32forth\apps\Win32ForthIDE\res\delete.bmp" + File "..\..\..\win32forth\apps\Win32ForthIDE\res\drive.bmp" + File "..\..\..\win32forth\apps\Win32ForthIDE\res\dupe.bmp" + File "..\..\..\win32forth\apps\Win32ForthIDE\res\specs.bmp" + File "..\..\..\win32forth\apps\Win32ForthIDE\res\Toolbar.bmp" SetOutPath "$INSTDIR\apps\WinEd\" File "..\..\..\win32forth\apps\WinEd\Ed_About.F" *************** *** 332,336 **** --- 413,419 ---- File "..\..\..\win32forth\demos\PdfControlDemo.f" File "..\..\..\win32forth\demos\pentom.f" + File "..\..\..\win32forth\demos\RebarControlDemo.f" File "..\..\..\win32forth\demos\ROMCALC.F" + File "..\..\..\win32forth\demos\TabControlDemo.f" File "..\..\..\win32forth\demos\taskdemo.f" File "..\..\..\win32forth\demos\WINBROWS.BMP" *************** *** 348,351 **** --- 431,441 ---- File "..\..\..\win32forth\demos\AccelDemo\AccelDemo.bmp" File "..\..\..\win32forth\demos\AccelDemo\AccelDemo.f" + SetOutPath "$INSTDIR\demos\ADO\" + File "..\..\..\win32forth\demos\ADO\ADOreadme.txt" + File "..\..\..\win32forth\demos\ADO\EX_Connstr.f" + File "..\..\..\win32forth\demos\ADO\EX_Create.f" + File "..\..\..\win32forth\demos\ADO\EX_Dump.f" + File "..\..\..\win32forth\demos\ADO\EX_Ins.f" + File "..\..\..\win32forth\demos\ADO\EX_InsSQL.f" SetOutPath "$INSTDIR\demos\COM\" File "..\..\..\win32forth\demos\COM\D3Dtest.f" *************** *** 370,373 **** --- 460,464 ---- File "..\..\..\win32forth\doc\FORTHPRO.gif" File "..\..\..\win32forth\doc\Forth_Primer.pdf" + File "..\..\..\win32forth\doc\FreeImagePublicLicense.txt" File "..\..\..\win32forth\doc\LEFT.GIF" File "..\..\..\win32forth\doc\ONWEB.gif" *************** *** 412,415 **** --- 503,507 ---- File "..\..\..\win32forth\doc\p-using-if.htm" File "..\..\..\win32forth\doc\p-windlls.htm" + File "..\..\..\win32forth\doc\Paths.htm" File "..\..\..\win32forth\doc\RIGHT.GIF" File "..\..\..\win32forth\doc\SELF-EXT.gif" *************** *** 420,423 **** --- 512,516 ---- File "..\..\..\win32forth\doc\Setup05.jpg" File "..\..\..\win32forth\doc\TELLUS.gif" + File "..\..\..\win32forth\doc\Unicode.htm" File "..\..\..\win32forth\doc\UP.GIF" File "..\..\..\win32forth\doc\UTILDOC.TXT" *************** *** 426,429 **** --- 519,523 ---- File "..\..\..\win32forth\doc\WINED1.jpg" SetOutPath "$INSTDIR\doc\classes\" + File "..\..\..\win32forth\doc\classes\ADO.htm" File "..\..\..\win32forth\doc\classes\AXControl.htm" File "..\..\..\win32forth\doc\classes\Childwnd.htm" *************** *** 576,582 **** --- 670,683 ---- File "..\..\..\win32forth\doc\SciEdit\SciEdit.htm" SetOutPath "$INSTDIR\proj\" + File "..\..\..\win32forth\proj\Chess.fpj" File "..\..\..\win32forth\proj\ForthForm.fpj" + File "..\..\..\win32forth\proj\PictureViewer.fpj" + File "..\..\..\win32forth\proj\Player4th.fpj" + File "..\..\..\win32forth\proj\PlayVirginRadio.fpj" File "..\..\..\win32forth\proj\ProMgr.fpj" File "..\..\..\win32forth\proj\SciEdit.fpj" + File "..\..\..\win32forth\proj\Solipon.fpj" + File "..\..\..\win32forth\proj\Sudoku.fpj" + File "..\..\..\win32forth\proj\Win32ForthIDE.fpj" File "..\..\..\win32forth\proj\WinEd.fpj" SetOutPath "$INSTDIR\src\" *************** *** 639,642 **** --- 740,746 ---- File "..\..\..\win32forth\src\WORDS.F" File "..\..\..\win32forth\src\xfiledlg.f" + SetOutPath "$INSTDIR\src\Compat\" + File "..\..\..\win32forth\src\Compat\KernelFiles42.f" + File "..\..\..\win32forth\src\Compat\OldPaths.f" SetOutPath "$INSTDIR\src\console\" File "..\..\..\win32forth\src\console\BasicWin.f" *************** *** 673,676 **** --- 777,781 ---- SetOutPath "$INSTDIR\src\lib\" File "..\..\..\win32forth\src\lib\AcceleratorTables.f" + File "..\..\..\win32forth\src\lib\ADO.f" File "..\..\..\win32forth\src\lib\array.f" File "..\..\..\win32forth\src\lib\AXControl.F" *************** *** 679,682 **** --- 784,790 ---- File "..\..\..\win32forth\src\lib\BLOCK.F" File "..\..\..\win32forth\src\lib\BROWSEFLD.F" + File "..\..\..\win32forth\src\lib\ButtonBar.f" + File "..\..\..\win32forth\src\lib\Buttons.f" + File "..\..\..\win32forth\src\lib\Calendar.f" File "..\..\..\win32forth\src\lib\CTYPE.F" File "..\..\..\win32forth\src\lib\DIALOGRC.F" *************** *** 690,693 **** --- 798,802 ---- File "..\..\..\win32forth\src\lib\file.f" File "..\..\..\win32forth\src\lib\FileAssociations.f" + File "..\..\..\win32forth\src\lib\FileLister.f" File "..\..\..\win32forth\src\lib\FlashControl.F" File "..\..\..\win32forth\src\lib\GetWindowPlacment.f" *************** *** 696,700 **** --- 805,813 ---- File "..\..\..\win32forth\src\lib\HtmlDisplayWindow.f" File "..\..\..\win32forth\src\lib\HyperLink.f" + File "..\..\..\win32forth\src\lib\IMAGEWINDOW.F" + File "..\..\..\win32forth\src\lib\Joystick.f" + File "..\..\..\win32forth\src\lib\Label.f" File "..\..\..\win32forth\src\lib\linklist.f" + File "..\..\..\win32forth\src\lib\ListBox.f" File "..\..\..\win32forth\src\lib\Listview.f" File "..\..\..\win32forth\src\lib\MDI.F" *************** *** 704,707 **** --- 817,821 ---- File "..\..\..\win32forth\src\lib\multithr.f" File "..\..\..\win32forth\src\lib\PDFControl.F" + File "..\..\..\win32forth\src\lib\ProgressBar.f" File "..\..\..\win32forth\src\lib\RebarControl.f" File "..\..\..\win32forth\src\lib\RecentFiles.f" *************** *** 713,716 **** --- 827,832 ---- File "..\..\..\win32forth\src\lib\ScintillaHyperEdit.f" File "..\..\..\win32forth\src\lib\ScintillaLexer.f" + File "..\..\..\win32forth\src\lib\ScrollBar.f" + File "..\..\..\win32forth\src\lib\Security.f" File "..\..\..\win32forth\src\lib\sendmessage.f" File "..\..\..\win32forth\src\lib\SoundVolume.f" *************** *** 719,726 **** --- 835,847 ---- File "..\..\..\win32forth\src\lib\SUB_DIRS.F" File "..\..\..\win32forth\src\lib\switch.f" + File "..\..\..\win32forth\src\lib\TabControl.f" File "..\..\..\win32forth\src\lib\task.f" + File "..\..\..\win32forth\src\lib\TextBox.f" File "..\..\..\win32forth\src\lib\toolbar.f" + File "..\..\..\win32forth\src\lib\TrackBar.f" File "..\..\..\win32forth\src\lib\TrayWindow.f" File "..\..\..\win32forth\src\lib\treeview.f" + File "..\..\..\win32forth\src\lib\Unicode.F" + File "..\..\..\win32forth\src\lib\UpDownControl.f" File "..\..\..\win32forth\src\lib\Volinfo.f" File "..\..\..\win32forth\src\lib\Win32Help.f" *************** *** 773,776 **** --- 894,898 ---- File "..\..\..\win32forth\src\tools\dfc.F" File "..\..\..\win32forth\src\tools\dump.f" + File "..\..\..\win32forth\src\tools\DumpWindows.f" File "..\..\..\win32forth\src\tools\HelpSystem.f" File "..\..\..\win32forth\src\tools\MsdnHelp.f" |