00:00:00 --- log: started forth/03.03.17 00:45:37 --- quit: fridge ("http://lice.codehack.com") 01:26:52 --- quit: Speuler (Read error: 110 (Connection timed out)) 02:09:21 --- join: Speuler (~Speuler@mnch-d9ba42d0.pool.mediaWays.net) joined #forth 02:35:26 --- join: fridge (meldrum@zipperii.zip.com.au) joined #forth 02:53:50 --- join: karingo (karingo@103.portland-01-02rs.or.dial-access.att.net) joined #forth 03:47:06 --- quit: karingo (Read error: 60 (Operation timed out)) 04:13:27 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 04:13:37 hi folks ! 04:13:44 now from stable link :) 04:13:58 --- quit: Soap` () 04:30:05 --- quit: Speuler (Read error: 110 (Connection timed out)) 04:38:38 --- quit: Serg_Penguin (Read error: 60 (Operation timed out)) 04:39:20 --- join: Serg_Penguin (~Z@nat-ch1.nat.comex.ru) joined #forth 04:39:36 --- quit: Serg_Penguin (Client Quit) 05:10:17 --- join: Speuler (~Speuler@mnch-d9ba42d0.pool.mediaWays.net) joined #forth 05:26:20 --- join: KRISHNA (KRISHNAKUM@61.1.220.163) joined #forth 05:27:03 hi ppl. 05:33:33 Hi :) 05:36:48 is unicode supported in any forth impl. ? 05:37:06 Eh, no idea. 05:37:18 ok. 05:37:23 * onetom_ hasnt met such an implementation 05:37:28 --- nick: onetom_ -> onetom 05:38:34 how good is string manipulation in forth ? 05:38:53 Better than in BASIC. ;) 05:42:09 KRISHNA: www.forthfreak.de/stringstack 05:42:13 or 05:42:18 KRISHNA: www.forthfreak.net/stringstack 05:43:02 'morning 05:44:25 sorry I never used BASIC 05:46:25 Good. 05:48:55 stringstack ? 05:49:04 a seperate stack for strings ? 05:49:36 right 05:49:45 portable ? 05:49:50 ans 05:49:55 ok ok 05:50:10 url unreachable ! 05:50:14 (should be) 05:51:00 www.forthfreak.net 05:51:04 i can get there 05:55:51 ok whatz the ip ? 05:55:57 seems like a DNS prob. 05:56:53 ip for forthfreak.net please ! 05:57:47 KRISHNA: sec. hold on 05:57:53 can you get to http://logilan.info/~l/stringstack.versions ? 05:58:11 connection refused :/ 05:58:26 its not an ip prob. 05:58:47 looks like an apache problem 05:58:53 yes. 05:59:06 ssh hangs trying to access the log 05:59:40 Speuler: did you implement stringstack ? 05:59:49 yes 06:00:25 ok. so the stack is implemented entirely in forth using cells. right ? 06:00:46 sorry for being so naive - I'm still a newbie. 06:00:46 string chars are in bytes. string len is cell 06:01:10 oh. on the stack, there's just a pointer to the strings, which are on the heap 06:01:33 if you dup a string, a reference counter is incremented 06:01:35 this is kinda OO 06:01:47 the stack acts like a VTABLE 06:01:50 ? 06:02:11 well, if call it behaving like a stack :) 06:02:14 i'd 06:08:07 www.forthfreak.net should be ok now ? 06:12:05 yes. 06:12:43 but it says forthfreak.de ? 06:13:06 both domains point to the same ip 06:13:16 reverse dns should say bean-fw.net 06:14:19 it is just that net sounds somewhat more international 06:14:27 ok. 06:15:10 Speuler: why is string manipulation implemented on a stack as opposed to using the data stack ? 06:15:49 so you can have lots of string on it, and access them, without having to take care of the data on data stack 06:16:18 ok. is this a common idiom in forth ? 06:16:23 about the same reason why you got floats on a seperate stack 06:16:56 no, wouldn't say so 06:17:39 just felt like the right thing to do 06:18:26 i think the stack is useful coz of the lack of syntax - more so with value types - ? 06:18:47 bit the primitives in there could be modified for use without string stack. 06:18:59 but 06:19:21 problem w/o stack is, where do you put the string ? 06:19:46 true. that is where the lack of syntax comes in. 06:20:08 if you put them at pad, there's only one pad, thus you'd need a management system, ti keep string from being written into same address 06:20:50 putting them on string stack make them collision-free too 06:20:58 yes. 06:21:05 and i can use the primitives i'm used from numbers 06:21:10 so it does like an idiom 06:21:19 so it does look like an idiom 06:21:46 from that viewpoint, you may be right 06:22:10 when manipulating a number of value types, create a seperate stack and store the values there - prob. solved. 06:22:59 i don't want to end up having zillions of small stacks :) 06:23:16 but a few would defnly help. 06:23:43 it is common to implement float support by using an additional stac 06:23:45 k 06:24:25 but when it can be avoided, i tend to simulate additional stacks by putting data on an existing stack 06:25:42 for example, catch/throw doesn't use its own stack, but a linked list through frames on the return stack 06:26:12 there are implementations of catch, throw, alloting a seperate stack to those 06:27:20 is it possible to suspend execution in a word and jump elsewhere ? 06:27:46 something like a coroutine ? 06:27:50 just call another word 06:28:14 oh, you mean, by not returning to the calling word ? 06:28:34 where do you want to return to instead ? 06:28:37 yes. 06:29:00 catch/throw should do 06:29:10 i'll give another word as a param that can be used to return 06:29:29 : foo key esc = if 5 throw then ; 06:29:55 : bar ['] foo catch 5 = if ." escape pressed" then ." common code" 06:30:23 i'll have to run this thing to understand . 06:30:25 the "coroutine" would be code following catch 06:31:36 will the catch/throw mechanism resume or just escape to another word ? 06:31:42 throw stops execution immediately, and "jumps" (returns) to code following catch, cleaning up stacks, putting the throw value on stack 06:32:08 w/o throw, it is returned to catch too, with 0 on stack 06:32:14 so its an exception handling mechanism 06:32:19 0 throw is effectively a no operation 06:32:32 yes 06:33:01 * KRISHNA is confused - plenty of reading needs to be done to understand forth ... 06:35:06 variable path 1 path ! : foo path @ if ." path1" 1 throw then ." path0" ; 06:35:28 : bar ['] foo throw if ." path1" else ." path0" then ; 06:35:43 0 path ! cause bar to follow path0 06:35:48 1 path ! follows path1 06:36:22 mistake ... 06:36:29 : bar ['] foo catch if ." path1" else ." path0" then ; 06:46:01 --- quit: fridge ("http://lice.codehack.com") 06:50:48 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 07:06:03 when am i going to figure out the interpret/compile [] stuffs 07:06:13 it's taking awhile to sink in 07:09:36 --- quit: KRISHNA ("Client Exiting") 07:34:08 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 07:34:29 hullo 07:35:45 Hi gilbert 08:05:33 there are more accurate snipers than me. 08:59:42 --- join: Kitanin (~clark@SCF61185.ab.hsia.telus.net) joined #forth 10:05:57 --- quit: Kitanin (Read error: 104 (Connection reset by peer)) 10:33:37 --- join: I440r (~mark4@1Cust116.tnt1.bloomington.in.da.uu.net) joined #forth 10:34:28 There you are! 10:34:32 Been looking for you ;) 10:34:55 I'm using IsForth for my Forth compiler (for the VM)... but I have a few problems. 10:35:28 First of all, I simply replace the standard set of words (drop, :, ; etc.), so writing macros is hard... any ideas what to do about this? 10:35:56 Also, currently I have to do this to push e.g. the number "123": 123 # 10:40:43 are you talking to yourself again Robert? 10:41:12 Yeah, of course. 10:41:18 (Smartass...) 10:41:32 :P 10:42:45 what do you mean - writing macros ? 10:53:15 I mean 10:53:52 For my Forth... since the compiled code can't be run locally, I have to write everything similar to macros in IsForth 10:59:45 erm you need to target compile it 10:59:53 i.e. not compile it as an extension to isforth 11:01:30 thats what ill need to do too when i write the meta compiler 11:04:48 Target compile? 11:04:51 What does that mean? :) 11:05:06 yes. normally when forth compiles it ADDS what is compiled onto the end of itself 11:05:23 what you need is for it to compile to some TAEGET buffrer 11:05:55 Oh, yeah. That's what I do. 11:06:03 But I pollute the name space a bit. 11:06:13 If I can solve that, I can just use the normal words. 11:07:06 lol no - your compiling the CODE to a target but the headers are part of isforth - you need it ALL to be target compiled :/ 11:07:35 No. 11:07:54 I want the headers to be a part of IsForth 11:07:58 Makes things alot easier, 11:08:34 but then your forth cant run WITHOUT isforth 11:08:40 that makes your forth.... ISFORTH!!! 11:08:41 lol 11:09:37 s/lol/muhahahahaha 11:11:08 I440r: Yeah 11:11:16 I440r: An extention to IsForth 11:11:31 I440r: Otherwise I'd have to write 4327832 parsing words myself and stuff 11:11:38 I440r: /me lazy 11:11:56 lol 11:12:00 so... the point is ???? 11:12:02 heh 11:13:04 To...make programs! 11:13:08 It's kinda like machineforth. 11:13:20 For my vm 11:15:49 heh 11:18:40 Yeees? :P 11:18:48 It works fine. 11:19:06 ive changed isforth a bit 11:19:13 How? 11:19:25 and found a REALY FUCKING SERIOUS porblem with the mmap syscall 11:20:03 i allocated a block of "grows down" memory for the return stack - this effectivly places no limit on either parameter stack or return stack useage 11:20:46 but whoever coded sys mmap has their head up their ass. a grows down block of memory will only grow if accessed through the esp register 11:20:57 it might also require a PUSH - 11:21:12 if you access it via ebp it segfaults instead of growing the buffer 11:22:47 if i could post to any news groups (other than thru google) i would complain BIG TIME about that 11:22:53 its fucking moronic 11:24:40 Heh. 11:25:00 You could listen to chuck and avoid 10MB stacks :P 11:25:25 heh 11:27:18 I440r: can you avoid using mmap? 11:27:21 previously i was restricting BOTH stacks to liek 2k each heh 11:27:35 no you cant. there is NO way other tham mmap to allocate memory in linux 11:27:45 hmmm. 11:27:48 i got it working 11:27:53 does fasm have this problem as well? 11:27:58 i do what most other forths do anyway 11:28:02 xchg ebp, esp 11:28:04 push eax 11:28:09 xchg ebp,ssp 11:28:11 erm esp 11:28:17 that pushes eax onto the return stack 11:28:35 but its an addition of alot of bullshit unwanted code and it pisses me off 11:30:08 write in pure hex I440r write in pure octal then: http://groups.google.com/groups?selm=3gmn58%24rbk%40DGS.dgsys.com&output=gplain 11:30:12 :D 11:31:28 I440r: why not issue an SS: segment override? 11:31:51 because ebp defaults to ss: 11:32:14 I thought so. The Linux kernel tests explicitly for ESP? 11:32:22 mov [ebp], xxx is the same as es: mov [ebp], xxx 11:32:27 it must 11:32:35 or it tests expliicity for a PUSH 11:32:38 one or other 11:32:54 tunnel vision on their part 11:34:28 C code uses ebp for the stack frame. And alloca() does stack-based allocation. All of that would break if your premise holds true. 11:34:57 ive tested it - its true. 11:36:25 You use EBP for the return stack? 11:37:36 And ESP for the data stack? 11:39:20 yes 11:40:12 i messed with this for hours. after allocating a grows down buffer i did 2 test functions 11:40:15 foo: 11:40:24 mov ecx, some large number 11:40:25 The special caching that modern x86 CPUs do for the return stack makes this an unfortunate choice. 11:40:28 .L0: 11:40:34 mov [ebp], 0 11:40:38 sub ebp, 4 11:40:42 loop L0 11:40:49 always segfaults 11:40:57 but a PUSH doesnt 11:41:17 im currently allocating a 4k return stack. 11:41:48 : blah 0 begin dup>r 1+ dup 100000 = until abort" success" ; 11:41:49 works 11:42:19 because im doing the xchg ebp, esp trick all over 11:44:06 Out of curiosity, why not use ESP for the return stack and EBP for the data stack? 11:44:38 because that would complecate a hell of alot of other words 11:44:42 code + 11:44:47 xchg ebp, esp 11:44:49 pop eax 11:44:53 add ebx, eax 11:44:56 xchg ebp, esp 11:45:00 next end-code 11:45:18 every word that pops anything off the stack or manipulates it in any way would become more complex 11:45:30 even if i didnt need the xchg ebp, esp i would still need to do 11:45:34 mov eax, [ebp] 11:45:38 add ebp, byte 4 11:45:42 add ebx, eax 11:45:42 etc 11:45:50 * TreyB digs out some code where he used this assumption. 11:50:17 No luck so far. 11:50:21 :) 11:51:06 I spent some time writing the primative words for a forth with this assumption. I need to find the source file, but I may not have it on a machine I have turned on :-) 11:51:46 heh 11:53:51 I440r: is there gonna be a sparc isforth? 11:54:27 or a mips isforth for that matter. 11:54:27 only if i can get someone who can code it for me :) 11:54:34 i dont have a sparc or a mips 11:54:34 I have a sparc. 11:54:42 I am spoiling to learn sparc asm. 11:54:46 i seriously doubt there will ever bee a bsd isforth either :( 11:55:01 only thing stopping me is it uses gas. 11:55:10 why won't there be a bsd isforth? 11:55:34 i want there to be a freebsd version but doing lots of different versions is a HUGE task because i absolutely flat REFUSE to have ANYTHING what so ever to do with conditional compilation 11:55:46 im not going to have 289479824657985 different versions of isforth all in the same sources 11:55:51 I440r: which asm are you using? nasm? 11:55:57 each version will be in its own source tree 11:56:00 yes im using nasm 11:56:09 so nasm is the one causing the problems right? 11:56:16 the incompatibilties? 11:57:35 no 11:57:40 the problem isnt nasm 11:57:56 i can use any assembler (except gas - theres no fucking way i will ever use that abomination) 11:58:32 Kernel API. 12:00:12 I440r: the only asm on the sparc is gas :D 12:00:30 there is ofcourse openboot forth so it already has a forth. 12:15:39 heh 12:15:55 then someone needs to write a REAL assembler for the sparc 12:16:04 not just a "backend to the c compiler" pile of shit 12:21:50 yeah 'someone'. 12:22:06 but what should the syntax look like? 12:22:11 --- quit: Fractal (Read error: 110 (Connection timed out)) 12:22:19 some people are dissatisfied with the x86 asm syntax 12:22:30 and a lot of people POSITIVELY HATE the gas syntax. 12:27:24 shouldn't it be comparatively easy to write an asm2asm translator, to generate gas source from intel notation source ? 12:28:06 using awk, or perl, or alike 12:28:13 Speuler: it is too important to hate gas :) 12:28:26 well. one still can hate it 12:29:19 I always thought the solution to having to write in asm was forth. 12:29:38 heh 12:30:58 when i don't need a full asm in forth, i do something like : mov_[addr]_eax ( addr -- ) opcode c, opcode c, ... ; 12:31:23 heh 12:31:38 i.e don't factor out adressing modes or operands 12:31:46 but code it into mnemonic name 12:32:11 no good pf course of you need many mnemonics, or a full assembler 12:32:13 of 12:32:47 i cant post to clf :( 12:32:59 try google groups 12:34:25 why does google groups take so long to post though? 12:34:30 at least 9 hrs! 12:45:13 3-9 they say 12:45:37 with a strong preference for the 9 apparently. 13:30:07 --- join: Fahr (~Fahr@e208057.upc-e.chello.nl) joined #forth 13:30:13 speuler, u daar? 13:30:18 jo 13:30:22 dag fahr 13:30:25 lo 13:30:44 hi fahr do you code forth ? 13:30:53 nope 13:31:00 (not yet :) 13:31:01 just looking for Speuler, sorry 13:31:02 or speak english ?? (doesnt matter either way heh) 13:31:08 Haha. 13:31:13 Meanie 13:31:14 thats ok 13:31:23 non forthers are welcome in here, were not anal about that sort of thing :/ 13:31:38 good :P 13:31:54 for work I program VC++, I await my ban... :P 13:32:12 lol 13:32:16 magic word 13:32:23 wrong answer :) 13:32:24 you deserve one - but like i said,.... 13:32:26 work 13:32:31 besides thers hope for you yet, you joined the channel :) 13:32:47 yeah, well, in non-work life I am much of a Linux person 13:33:01 but sometimes one's gotta do what one's told to do... 13:33:59 Good! IsForth is for Linux, you know. 13:34:13 I thought Forth was Linux only ? 13:34:35 bull 13:34:57 ok, my bad 13:35:45 no - forth is everywhere. isforth (my compiler) is linux only 13:36:37 cool, you code compilers? 13:37:03 hardly anybody who doesn't, here :) 13:37:26 isn't that extremely complicated? 13:37:27 heh 13:37:31 no. 13:37:35 if it was c it would be 13:37:38 but this is forth 13:37:59 yeah, but you coded it in asm, it says 13:38:04 99% of all forth coders code their own compiler at one time or another. or they very heavilly modify someone elses 13:38:26 the kernel is coded in assembler. the rest is coded in forth 13:38:44 so, what doer Forth offer that other programming languages lack? 13:38:50 the inner core of the compiler is mostly assembler. 13:39:03 do you code assembler ? 13:39:10 if you dont your not a real coder. most c codres are NOT real coders 13:39:17 interactive development 13:39:17 watch 13:39:24 : blah lots of forth code in here ; 13:39:31 i just created a new function called blah 13:39:39 now i cant test it interactivy and debug it 13:39:46 when it works i can use it... 13:39:46 : foo ...... blah ..... ; 13:40:04 now i created a wored called foo that calls the already debugged blah 13:40:04 now i can debug foo 13:40:24 at each stage of development everything that has gone before is already fully debugged 13:40:47 hmm 13:40:54 so it's kind of on-the-fly compiling 13:41:01 no more "write 50 thousand megs of code, wait 3 weeks for it to compile and link" and then tryh debug 13:41:08 incremental compilation is the word 13:41:18 sounds cool 13:41:20 leads to incremental development 13:41:23 and complicated, but overal cool 13:41:24 compiled forth is about half the size of the equiv assembler 13:41:37 that's really amazing 13:41:38 actually thats not quite true any more, not for a 32 bit forth.... 13:41:49 I always thought ASM was the smallest compiled format available 13:41:54 for a 16 but forth any non trivial application will compile to about half the size of the equiv assembler 13:42:02 forth is extensible 13:42:07 byte-threaded forth can be pretty compact, even on 32 bit platforms 13:42:21 but some people refuse to call byte-threaded forth "forth" 13:42:32 well it probably is more efficient that in a 32 bit forth but there are more 16 bit forths than 32 bit 13:42:54 yes - token threading 13:43:48 well, it all sounds very interesting 13:44:02 I'll look into it when I have some spare time 13:44:13 most of my development is currently limited to desktop applications 13:44:22 I never really did any lowlever programming 13:44:28 also, forth is UNTYPED and has "user defined syntax" 13:45:10 people who have never coded low level should not be coding high 13:45:21 you realy should lean assembler to be a good coder 13:45:55 I agree 13:46:02 but ASM is so deadly HUGE and complicated 13:46:08 assembler is FAR FAR simpler than c/c++ 13:46:22 well, also consider I NEVER studied for what I know :P 13:46:53 I just started VB as a scriptkiddie, then Delphi and VC++ and PHP... 13:46:59 Awww. 13:47:06 no. its SIMPLE - not complex 13:47:11 I440r and Speuler will guide you to the right path. 13:47:24 I'm sure they will ;) 13:47:26 ooh you do php ?? 13:47:31 yup I do 13:47:39 it's what I mainly do at work really 13:47:50 PHP and VC++ for online/offline database interaction 13:48:05 import and export modules between a work DBase and an online eCommerce DBase 13:48:09 that's my job :P 13:48:26 i want my projects web site to use php 13:48:26 but i cant be bothered to learn it :/ 13:48:46 * I440r needs a job :( 13:48:49 Well... I converted mine FROM php to straight html. 13:48:58 You can become a web designer! ;) 13:49:27 thats boring :/ 13:49:28 well, I prefer static HTML, but for functionality one needs PHP or ASP or Perl or whatever 13:49:34 (Since your isforth site has been in the Top Ten Ugliest Web Pages for ages ;) 13:49:36 im a CODER !!! 13:49:38 I need dynamic content 13:49:48 hehe, same here :PPP 13:49:54 i know. hehe 13:49:55 I REALLY can't do design 13:49:59 only background coding 13:50:02 i've put forth-based cgi together 13:50:13 i just need ANY content hehe 13:50:27 well, PHP is really simple 13:50:28 supports javascript mouse-over 13:50:30 I mean; it's script 13:50:36 took me maybe 5 days to master 13:50:41 given you know SQL 13:50:44 if i can interface apache to my forth ill be able to have forth embedded in web pages. ASSEMBLEWR TOO!!!! 13:50:52 I440r: you can 13:51:02 I440r: forthcgi is on download 13:51:06 i dunno nuttin about databases :P 13:51:14 is not very polished right now 13:51:14 but works 13:51:20 well, databases are usually essential in programming PHP :P 13:51:38 I440r: www.forthfreak.net 13:51:46 under misc 13:55:42 say I440r, how long did it take you to learn ASM ? 13:59:24 * I440r goes to look 13:59:24 --- quit: I440r (Excess Flood) 14:00:43 --- join: I440r (~mark4@1Cust116.tnt1.bloomington.in.da.uu.net) joined #forth 14:01:04 Excess Flood ? 14:01:06 what was that about ? 14:01:18 my network cable on this laptop keeps disconnecting itself 14:01:23 if i move it disconnects 14:01:23 hmm I know the problwm 14:01:24 em 14:02:27 so what about ASM then ? 14:02:34 asm is easy 14:02:45 writing complex things in asm is difficult 14:02:58 well... here's a goal; 14:03:00 cause you need to do everything yourself 14:03:08 every detail 14:03:10 I want the ASM loader code to execute a file from memory 14:03:21 without writing it back on HD before having an OS exec it 14:04:12 ram disk ? 14:04:26 for instance 14:04:35 or a TFileStream; as created by Delphi 14:04:41 I have a memhandle, so I know where it is 14:04:55 jmp addr 14:05:06 addr == handle? 14:05:13 not necessarily 14:05:17 hmm 14:05:19 can be 14:05:24 and jmp addr is it ?? 14:05:33 yes 14:05:39 oh 14:05:45 if there's code at addr, it will be executed after jmp 14:05:53 then why does something like UPX have complete ASM files ? 14:06:11 upx = exec compressor/decompressor ? 14:06:20 yes 14:06:23 ? 14:06:23 there's a source 14:06:32 for win32 it has a complete ASM loader file 14:06:37 to execute a file from mem 14:06:42 MUCH more than just jmp addr 14:06:51 afaik, upx decompresses in mem, and runs from mem 14:07:13 I think the decompression is not coded in ASM 14:07:24 i think it is. 2 k overhead 14:07:35 huh? overhead/ 14:07:51 adds 2 k of code to the compressed executable 14:08:38 ah I see 14:08:43 it does do decompression 14:13:31 i just found a copy of "termcap and terminfo" in ebay!!!! yee ha :) 14:13:41 now to see if my dad will BID on it for me :/ 14:13:44 snipe it 14:13:57 hmm, a very quick test in Delphi gives me an Access Violation :( 14:14:31 jumped to a non-executable segment 14:15:08 data is often set as non-executable 14:15:11 I guess so... :S 14:15:18 then Handle is NOT the mem address 14:15:21 I'm afraid 14:16:48 hmm 14:16:58 one would expect that a pointer to an object is in fact its handle... 14:17:04 or mem address 14:18:11 a handle can also be an index into a table of addresses 14:18:22 isforth defaults to allocating memory as +rwx :) 14:18:22 tho you can change this 14:18:41 hmm 14:18:58 or a pointer to a structure which includes the address 14:19:00 well, I wouldn't know how to get a memory address from this object then :S 14:19:32 ' object :) 14:19:43 well, it's most definately not recognised as a structure or object... 14:19:51 does any of you know some Delphi/Kylix? 14:20:05 I've used Deplhi. 14:20:07 *hides* 14:20:08 * Speuler doesn't 14:20:23 ok, then take a look at this; 14:20:23 == 14:20:26 FS := TFileStream.Create('e:\blindwrite_full_setup.exe', fmOpenRead); 14:20:26 Addr := @FS; 14:20:26 asm 14:20:26 JMP Addr 14:20:26 end; 14:20:28 FS.Free; 14:20:30 == 14:20:34 one would expect it to work 14:21:21 exe address is probably not on offset 0 14:21:34 what do you mean ? 14:21:52 jmp address jumps to the first address of object 14:22:08 not sure whether it is code there 14:22:42 with msdos style headers, there would be a cd 20 14:22:57 which is code for interrupt $20 14:23:12 you can abort com programs with that 14:23:16 but not exe 14:23:24 ok 14:23:36 com programs start at $100 14:23:42 but exe bot necessarily 14:23:46 not 14:23:53 hmm 14:24:06 so how do I find out where it starts? :S 14:24:09 the exe map contains the exec address somewhere 14:24:19 don't know exactly where 14:24:20 and where to jump to, for that matter 14:24:42 and if I do this on a COM file it should work, in theory? 14:25:03 loading without executing is an undocumented function in msdos 14:25:11 reserved for debuggers :) 14:25:18 drats 14:25:51 jumping to addr+$100 could work with com files, yes 14:26:11 or, load at offset $100 14:26:37 the com map is not part of the file, but the offsets in a com file are set to $100 as base address 14:26:55 the psp, it is called (first 256 bytes) 14:27:15 contains things like the commandline 14:27:24 hmm 14:27:33 still Access Violation :S 14:28:39 mark program start with something you'd recognize, check whether it is where you jump to 14:29:34 for example , $90 is nop 14:29:54 put some nops there, see whether they are at your entry point 14:30:15 brb 14:30:39 uhm, nops? :S 14:30:50 remember I don't have any COMs I progged mysqld 14:30:54 *myself 14:31:15 and I dunno ASM :P 14:31:24 this is my first lesson 14:31:28 so to say 14:33:59 hmm, the pointer gives $1480A8 14:34:04 is that a possible value? 14:35:18 ah nevermind, I'll play on tomorrow 14:35:23 right now I'm gonna sleep 14:35:27 bye people :) 14:35:47 --- quit: Fahr ("There the Lycanthrope goes, back into the woods, and he's gone through the trees...") 14:48:20 --- join: wossname (wossname@HSE-QuebecCity-ppp81050.qc.sympatico.ca) joined #forth 14:51:05 ho wossname 14:52:26 hello 14:55:09 hi woss 14:56:03 hi speuler :) 15:19:50 --- join: fridge (meldrum@zipperii.zip.com.au) joined #forth 15:21:46 --- join: bubba1034 (olczyk@d184.focal10.interaccess.com) joined #forth 15:21:55 Anyone here? 15:23:48 Yes 15:23:52 But not for long. 15:23:55 * Robert prepares to go to bed. 15:24:08 hi 15:24:12 bubba codes forth ? 15:24:33 A couple of days ago I asked if Forth was a good "scripting" language. 15:24:52 I really couldn't say what I meant, but now I can. 15:24:52 it is :) 15:24:55 or - it can be 15:25:18 Say my boss comes to me with a project. He wants it in a "mainline" language. 15:25:31 im working towards having isforth useable as a scripting language similar to bash or even for use in web pages 15:25:40 ok 15:25:52 C/C++/Java/Perl/PHP on the odd side Python or Ruby. 15:25:54 Speuler is working in the opposite direction, converting bash to a forth! 15:26:22 So I start by writing low level C. Which I need to write tests for. 15:26:40 So I need a language where I can call C routines. 15:27:00 that would be possible in forth - if you added the capability 15:27:07 THen I get higher and higher, and I need to see if code "pastes" well together. 15:27:27 Eventually I might need to script COm objects. 15:27:40 btw - is this rhetorical ? 15:27:50 or are you doing this NOW - for work ? 15:27:55 Yes and no. 15:28:01 my isforth isnt ready for this yet - will be a while before it is too 15:28:02 Definitely not *now*. 15:28:17 i would suggest just doing the whole thing in forth or even assembler 15:28:23 forget c/c++ bleh 15:28:42 The point is that I'm looking for a language where I can do prototypes like this. 15:28:59 Then replace with C?C++ to satisfy my boss. 15:29:57 I440r: Unfortunately my boss won't forget C/C++. 15:30:09 i didnt think he would :) 15:30:30 tell him this. take any non trivial project. you code it in c++ and ill code it in forth. 15:30:40 you might take 6 years, ill take 3 weeks 15:30:46 ive SEEN that first hand 15:31:02 ive seen a project take 6 years that i could have done in forth in 3 weeks 15:31:05 literally 15:33:44 I've seen it go both ways ( not with Forth but with other languages ). 15:34:16 It helps to have good programmers. 15:34:21 ya 15:34:45 So can Forth handle this kind of stuff? 15:38:07 it can if you can handle adding it to a given forth compiler 15:39:07 Forth compilers don't come with this capability? 15:41:18 not sure if there are any that do. but they CAN do it 15:43:27 aaaaHey. It gets complicated. You have to be able to access object files, shared object files/dll. You have to translate C strings to Forth strings, C ints to Forth ints, C structs to ... 15:43:37 It can take quite a lot of work. 15:44:09 yes 15:44:14 and it might not be worth it :/ 15:48:28 Can you recommend something that runs on both Linux and Windows? 15:50:47 erm... 15:50:52 yes 15:51:01 if you want to fork for a commercial forth compiler 15:51:10 well - there are linux and windows versions of it 15:53:32 Well... the way I look at it, is free for learning, but pay when I actually use it commercially. 15:53:51 The first language I looked at was Smalltalk, and they make that arrangement. 15:54:01 So I'm spoiled ;) 15:54:18 heh 15:54:36 do a web search for "marcel hendrix" or it might be "hendrics" 15:54:37 i forget 15:54:53 he sells a commercial forht compiler that has both windows and linux versions 15:54:57 its also heavilly optimizing 15:55:24 and might have what you are looking for 15:55:54 Is iot the one on sourceforge? 15:56:50 no heh 16:00:55 --- quit: wossname () 16:02:22 Hmmm. iForth? 16:02:50 yes 16:03:06 note.. not related to my "IsForth" heh 16:03:40 Doesn't seem that bad price wise ( Franz Lisp is like $5000 per seat ). 16:04:43 ive not looked at the price for iforth 16:04:54 write marcel with what you need and see if his compiler supports it 16:04:59 or how much it would be to add it 16:05:13 $100 for three compilers ( Dos Win, Linux ). 16:05:14 im POSATIVE he would be reasonable about it 16:05:20 thats realy good! 16:08:00 Have to get going now. Thanks. 16:08:02 Bye 16:08:04 --- quit: bubba1034 () 16:14:36 no prob :) 16:38:13 --- join: I440r_ (~mark4@1Cust70.tnt3.bloomington.in.da.uu.net) joined #forth 16:44:40 --- quit: I440r (No route to host) 16:50:19 --- quit: I440r_ (Excess Flood) 16:50:41 --- join: I440r_ (~mark4@1Cust70.tnt3.bloomington.in.da.uu.net) joined #forth 16:59:13 --- quit: I440r_ (Excess Flood) 16:59:24 --- join: I440r_ (~mark4@1Cust70.tnt3.bloomington.in.da.uu.net) joined #forth 17:36:30 --- quit: Speuler (Connection timed out) 17:38:22 --- join: Speuler (~Speuler@mnch-d9ba44e1.pool.mediaWays.net) joined #forth 17:54:52 --- quit: I440r_ (Read error: 54 (Connection reset by peer)) 18:03:22 --- join: I440r (~mark4@1Cust36.tnt3.bloomington.in.da.uu.net) joined #forth 18:06:15 --- quit: I440r (Client Quit) 18:54:57 --- join: gilbertbsd (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 18:57:29 hehehe 18:57:50 Oh hey gilbert :D 19:00:25 bah 19:00:28 --- quit: gilbertbsd (""Monk has left the building"") 19:12:32 --- quit: gilbertdeb (Read error: 110 (Connection timed out)) 19:59:16 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 19:59:25 hullo 20:27:37 --- join: bubba1034 (olczyk@d10.focal10.interaccess.com) joined #forth 20:27:49 shhhh 20:29:01 * bubba1034 nods silently 20:31:22 have you seen bashforth? 20:32:28 NO. I presume it either translates bash scripts to forth programs or is a forth program that interprets bash. 20:32:40 www.forthfreak.net 20:32:54 it is a forth written in bash by speuler. 20:34:24 Euwww. Must be terribly slow. 20:34:34 :) 20:34:37 try it and see. 20:38:21 I just stopped by to see if I would like forth. Can you recommend learning materials and an implementation that runs on Linux and WIndows. 20:40:02 a bunch. 20:40:12 hold on a sec lemme see. 20:40:20 ah first, you can run isforth. 20:40:25 also gforth is available ... 20:40:34 and of course bashforth. 20:41:06 Now bashforth would be slow on Windows, because bash is slow on Windows. 20:41:13 for windows, you can download f-pc 20:41:22 I believe eforth also runs on there. 20:41:46 --- join: KRISHNA (KRISHNAKUM@61.1.220.181) joined #forth 20:41:53 hi krishna 20:41:56 One that runs on both? 20:42:08 ummm possibly gforth. 20:42:16 but it might need cygwin on windows. 20:42:24 Hi krishna. Do you live in Chicago? 20:42:38 KRISHNA has a bunch of bookmarks for learning forth :D 20:43:05 Ahh. I asked because I met a programmer named Krishna two weeks ago. 20:43:35 okay see this: http://ficl.sourceforge.net/ficl.html#links 20:43:58 hi guys! 20:44:03 I'm from India 20:45:45 this too bubba. http://www.geocities.com/matteo_vitturi/english/spectraforth.htm 20:45:53 bubba1034: how did you hear of forth? 20:47:11 is it possible to produce standalone executables ? 20:47:36 I am sure it is possible. 20:47:40 A long long time ago I owned a C44 and bought a Forth for it. Then I bought a book. But before I could try it, I sold the C64 for an Atari ST. 20:47:43 I have never tried it. 20:47:54 which book did you buy? 20:48:12 'morning 20:48:17 hi speuler. 20:48:22 I don't remember the title. I think the author was named Brodie. 20:48:24 hi gilb! 20:48:32 bubba1034: it is a legendary book. 20:48:36 I hope you didn't get rid of it. 20:48:40 Looked for it, but can't find it. 20:48:45 Sigh. 20:48:57 bubba1034: if you did, you might have to pay up to $ 125 on abebooks for either of them. 20:48:59 stand-alone ? 20:49:10 what os ? 20:49:17 gilbertdeb: have you actually read SF & TF ? 20:49:26 KRISHNA: I bought two copies yesterday 20:49:27 I could'nt find them 20:49:34 they will get here by the end of the week from ebay. 20:49:37 whatz so special ? 20:49:45 KRISHNA: Speuler read them and he liked them. 20:49:48 you may ask him. 20:50:00 whatz so special about these books ? Speuler ? 20:50:16 starting forth is beginner friendly. fun to read 20:50:36 some cartoon characters in between, which represent different words 20:50:38 KRISHNA some people are incredibly crazy about it. I shall find out when I get it. 20:50:48 i also saw a long thread on c.l.f 20:50:49 nice style 20:51:04 KRISHNA: I was just about to mention that as well but you've been doing your homework. 20:51:10 such as the character for "forget" 20:51:10 The thing is that I tend to jump in feet first. I spend a few weeks reading then start to write 20:51:25 a "real world" program in it. 20:51:35 me too! 20:51:39 you can write an OS if you want. 20:51:58 too complicated for my 20:52:01 s/my/me 20:52:18 you can write a forth :) 20:52:24 its the favorite thing of forthers to do. 20:52:36 on page i-don't-know, there that masked cartoon character, representing "forget". looks like a burglar. it says "forget you ever saw me" 20:52:59 where can I find stuff on the various threading techniques ? 20:53:01 twenty pages later, it appears again, saying "i TOLD ya to forget me!" 20:53:23 that's just good humour 20:53:43 sigh. A lisper writing a lisp op a schemer writing a scheme is a thing to do too. 20:53:44 http://www.figuk.plus.com/build/heart.htm 20:54:07 http://www.zetetics.com/bj/papers/moving1.htm 20:54:27 http://www.complang.tuwien.ac.at/forth/threaded-code.html 20:54:36 but the original papers were published in ACM. 20:54:51 you might find the references on the last link posted. 20:55:20 bubba1034: you can write practically anything in forth of course. 20:55:41 it appears to be incredibly famous amongst embedded chip programmers too. 20:55:47 Me I want to write prgrams that users want. More money in that.' 20:56:07 ah for the money! 20:56:13 lemme know when you find something 'they' want. 20:57:06 I ask them. ONe at a time. I'm not smart enough to figure out what they want. Or I would be rich. 20:57:30 what have they said so far. 20:57:32 ? 20:58:29 Depends. It's mostly been C/C++. A HTTP proxy, a web spider, a program that reads of flash 20:58:57 cards and makes COM objects for the users, 20:59:30 an ( telephone ) operator system for foreign switches, a voice verification application. 20:59:40 You want me to go on. 20:59:52 telephone operator? 20:59:59 forth might like that :) 21:00:15 wait, are these things YOU have written or things they say they want? 21:00:35 It was mostly MFC. It connected operators to phon switches and let them do stuff. 21:00:59 They say then I write. Many involve many people. 21:01:09 Like the operator thing. 21:01:55 thats good. 21:02:25 so do you suppose you sold your brodie book? 21:03:01 Probably. I was a student back then. 21:03:13 Not even a CS student, a physics student. 21:03:41 forth was born in an observatory. 21:03:45 you are in good company. 21:04:02 but that was several cocoa seasons ago. 21:06:22 Yeah. THree years ago I was happy with C++, but then I started looking at other languages to do tasks to simple for C++. 21:06:35 too simple? 21:06:46 like what kinda stuff? 21:06:54 I've gone through Python, Ruby, Smalltalk, LIsp, OCaml. 21:07:18 all of them are terrific 21:07:29 this is pretty good too: http://compilers.iecc.com/comparch/article/93-09-080 21:07:30 Finding the links/shortcuts that don't have an associated file on a Windows machine/ 21:07:53 hah isn't that an exercise in walking through the registry? 21:08:39 KNow searching the hd for files ending in lnk, then making some COM calls. 21:09:03 that sounds like a scripting job. 21:09:09 did you use vbscript? 21:09:38 Another one is a CGI script that lists all the entries in a specified dierectory. 21:10:51 Because I download a lot of web pages that I put on my own server. 21:11:03 in windows? 21:11:32 NO that one is linux. 21:11:50 I have hundreds of these little programs I need. 21:12:50 I'm a chess freak and have quite a few chess utils in mind. 21:13:45 Yawn. IT's been a long day. Time for me to go. 21:13:49 Thanks. 21:14:22 no problema 21:14:33 KRISHNA: vchess utilities? 21:15:05 vchess ? 21:15:10 error 21:15:22 --- part: bubba1034 left #forth 21:15:25 chess 21:17:00 a sample idea: build a chess board with pressure sensors under the squares so that when a move is made, it is transmitted to the computer where it is picked up by the software and dislayed on the screen - this combo of s/w and h/w can be used for demonstration boards in chess tournaments. 21:17:17 ah interesting. 21:17:32 possible embedded chip project. 21:17:37 forth is right up your alley :) 21:17:43 the problem is I hardly know any electronics. But a friend has promised to help me out 21:18:08 actually something like a mouse 21:20:15 hmm.. for demonstration you want the pieces have individual markers, so the sensors can pick up "white pawn" or "black bishop" 21:20:48 you want to be able to set up a board, without having to tell the computer which piece is where 21:21:10 why ? 21:21:17 the state can be maintained in the S/W 21:21:33 cause you don't necessarily start from initial position, but you put on problems too 21:22:24 yes, but it makes things complicated. 21:22:35 is possible 21:22:41 even with pressure sensort 21:22:44 sors 21:22:48 you can still manually setup the pieces on the S/W as well 21:23:02 would that be elegant ? 21:23:09 by using the piece's weight ? 21:23:26 much nicer of the computer knows what kind of piece is where 21:23:55 pieces, having a individual footprints 21:24:01 elegant indeed - but cost ? 21:24:11 footprint easy. 21:24:19 pressure sensor maybe not. 21:24:30 thinking of piezoelectric foil 21:24:32 alternatives ? 21:24:49 magnetic 21:24:59 or 21:25:01 how to transmit the moves ? 21:25:06 capacitive 21:25:07 sensors. 21:25:16 capacitive? capacitors? 21:25:29 oscillators inder the board. 21:25:46 pieces modify the oscillator frequency 21:25:52 you could also just make the move and type it out on a keyboard simultaneously :O 21:26:07 what keyboard :) ? 21:26:11 that defeats the whole purpose of the idea 21:26:27 just kidding man. 21:26:34 ok 21:27:08 Speuler: in that case, a A2D converter is required isnt it ? 21:27:52 should be ways to get around adcs 21:28:31 say, footprint gives digital encoded pressure marks 21:28:53 such as, rock one long one short spot 21:29:04 pawn one short spot 21:29:14 KRISHNA: for starters you could try a really simple tic-tac-toe game. 21:29:19 bishop three small spots 21:29:21 and the like 21:29:36 i'm not writing a game engine 21:29:40 instead adc, thresholding could be enough 21:30:06 I wish I had the dedication to improve my chess . 21:30:11 I am still a novice :( 21:30:29 I'm quite good at it. 21:30:39 * KRISHNA holds a FIDE rating of 2215 at present 21:30:57 how did you get good at it? 21:31:00 you play everyday? 21:31:06 something like that 21:31:10 good books. 21:31:18 my icc handle is ezlux 21:31:19 those books are stuffily boring! 21:31:39 true 21:31:51 you deserve your rating for going through those books. 21:32:06 but i'd think, capacitive or inductive detection would be easier 21:32:07 when you start playing tournament chess, you will need tham 21:32:12 s/tham/them 21:32:50 Speuler: noted. my electronics is close to 0 but I'll work on it. 21:33:47 Speuler: parallel or serial port ? 21:34:16 wouldn't really matter. serial i'd prefer 21:34:27 why serial speuler? 21:34:54 less critical for signal bleeding through, less wires, longer cables possible 21:37:44 you'd multiplex data from fields anyway, so you may just multiplex them on one line, rather than on eight 21:45:18 or take a single input line 21:45:43 256 bit is enough data to transmit the whole board 21:47:34 there are twelve different pieces (incl colours) = 4 bit, on 64 fields 21:48:14 each field is one out of 13 possibilities 21:52:16 * Speuler lights up a beedie 21:53:39 beedie ? 21:53:44 is that an english word ? 21:54:02 don't know how you call them in india. but they are from india 21:54:15 its called a beedie in India 21:54:19 quite famous in Kerala 21:54:31 smallish rose-petal sticks 21:54:36 exactly. 21:54:39 what brand ? 21:55:08 pink-violet conical paper thing around 21:55:29 yes.. whatz the name of the company ? 21:55:34 ur using 21:55:34 yellow sticker 21:55:41 is that the name ? 21:56:19 *searching* 21:56:29 --- quit: gilbertdeb (""Monk has left the building"") 21:56:55 there's "pany" left on one edge 21:57:05 ok leave it. 21:57:09 might have been "company" 21:57:31 coming back to the demo board - will forth be good choice ? 21:58:12 if you would go to a BASIC channel, and ask the same, no doubt everyone would say "yes, of course" :) 21:58:43 you don't expect me to say "forth is useless for that app" 21:58:50 actually, it isn't 21:58:57 * KRISHNA chucks 21:59:25 so where would you use forth ? 21:59:33 for control apps, forth is actually quite good at 21:59:43 i mean, in the context of the demo board, where would you use forth ? 21:59:52 I want the S/W to run on linux 22:01:49 if you encode date from the board with a mc, forth would be good there. question is whether you want/can do without 22:02:30 depends on you sensor technology 22:02:52 mc ? 22:02:59 micro controller 22:03:14 the smallest ones are just too small to run forth 22:03:35 thinking of pic 15xx 22:03:42 * KRISHNA feels there is so much to learn ... 22:04:08 those are cheap 22:04:28 but probably best programmed in asm 22:05:35 in general, hardware control is one of the areas where forth excels 22:06:32 Speuler: thx for the useful info and happy puffing ... :) 22:07:08 if there's a microcontroller, small enough to barely run forth, there's probably no other (serious) lang which can run on it 22:07:34 ok. bye 22:07:40 ok. see you 22:07:41 c ya later. 22:07:43 --- quit: KRISHNA ("Client Exiting") 22:12:31 --- join: Fractal (dariterm@be.like.nutter.use.stronglsd.com) joined #forth 23:10:27 --- join: gilbertdeb (~gilbert@fl-nked-ubr2-c3a-29.dad.adelphia.net) joined #forth 23:59:59 --- log: ended forth/03.03.17