00:00:00 --- log: started forth/04.03.24 00:00:01 Though my code FORTH.COM has dummy R/W word. 00:00:41 I've set IN to show pre-memorized code. 00:00:55 would i write standalone thing (on PC, boot from disk), i'd rather think in terms of OS, kernel, filesys, drivers, etc... 00:01:00 That's the way to execute text from command line etc. 00:01:22 even extremely easy ones 00:01:33 Serg, I've got the driver. 00:01:38 It's called R/W 00:02:08 My filesys has names: BLOCK , BUFFER and UPDATE. 00:02:31 My shell is LIST 00:02:41 That's really sufficient. 00:03:04 * Serg thinks UNIX way ;) 00:03:24 GNU is Not Unix. :) 00:03:39 Forth is not Unix. 00:03:48 FNU 00:04:09 NU Forth. :) 00:04:16 Non-Unix. 00:05:43 Actually, Unix way in Forth causes much more troubles. 00:06:27 When you have your source scattered across files, it makes headache to catenate them in proper way. 00:06:48 why ? just root file full of INCLUDE 00:08:50 --- quit: ChanServ (orwell.freenode.net irc.freenode.net) 00:08:50 --- quit: ayrnieu (orwell.freenode.net irc.freenode.net) 00:08:50 --- quit: yeoh (orwell.freenode.net irc.freenode.net) 00:08:51 --- quit: l0C0 (orwell.freenode.net irc.freenode.net) 00:08:51 --- quit: chandler (orwell.freenode.net irc.freenode.net) 00:08:57 Bedtime for me. 00:09:33 --- join: ayrnieu (julian@65.169.246.16) joined #forth 00:09:57 Good night, kc5tja! 00:10:06 Serg: You can do the same with blocks. One root block that LOADs the blocks needed for the application. 00:10:22 --- join: chandler (~chandler@64-145-60-36.client.dsl.net) joined #forth 00:10:51 Serg: Also, you won't be able to code a complete Forth interpreter AND filesystem in around 8KB of space (often a real limitation for embedded devices, for example). 00:11:47 This is how I intend on distributing my computer's GUI; as a set of blocks which gets LOADed as needed. 00:11:52 Anyway, I'm off to bed. 00:11:58 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 00:13:14 Serg, have you written INCLUDE ? 00:14:14 It means hacking KEY 00:15:38 And causes more problems when you want second or third level INCLUDE . 00:17:37 When you change one of files, you need restart. 00:18:18 With blocks I need only FORGET , which is there already. 00:25:40 * Serg uses edit-compile cycle, just like w/ C 00:25:49 i run Forth anew for every try 00:27:13 e.g., i use batch mode only, not dialog 00:27:51 Try to use dialog mode. 00:28:28 Persistancy is great thing. 00:29:34 editor in FAR wins over built-in editors in blocky Forths 00:29:52 (FAR is win32 clone of Norton Commander) 00:30:53 I don't use it. 00:31:00 i just hit Ctrl-F9 (like in old Turbo C and RHIDE for DJGPP )... 00:31:11 and batch file runs my project 00:32:30 Why not "Enter"? 00:34:14 i just not _used_ to block ideology 00:34:22 habit is second nature ;)) 00:34:42 and i not see enough reason to break old habit and acquire new one 00:35:13 Just try. 00:35:32 Persistancy is great. 00:35:42 persistancy ? 00:36:03 You come and see everything like you left yesterday. 00:36:21 see: 00:36:33 Blocks are closer to this than files. 00:36:41 then Windows starts to glitch, you reboot, yes ? 00:36:56 They help in integrating. 00:37:12 You have checkpoints. 00:37:31 then you _debug_ u'r code, it's full of bugs by def, and prone to glitch by definition 00:37:31 Returning to previous checkpoint is not an issue. 00:37:58 so i 'reboot' my Forth every Ctrl-F9 ;) 00:38:16 My buggy code lives only in one block. 00:38:34 Or does not live anywhere. 00:38:47 It's FORGoTten. 00:39:51 When it's added I save new copy (checkpoint). 00:40:09 If I hang up everything, I return to previous copy. 00:40:17 Less "reboots." 00:53:40 which forth? 00:55:56 --- join: madgarden_ (~madgarden@Kitchener-HSE-ppp3576712.sympatico.ca) joined #forth 00:55:57 --- quit: madgarden (Read error: 104 (Connection reset by peer)) 01:18:33 FIG Forth. 01:19:18 --- quit: madgarden_ (Read error: 104 (Connection reset by peer)) 01:19:47 --- join: madgarden_ (~madgarden@Kitchener-HSE-ppp3576712.sympatico.ca) joined #forth 01:28:41 --- join: l0C0 (loco@bor.gs) joined #forth 01:32:10 Guten Tag, l0C0! 01:40:42 --- quit: Serg (Read error: 60 (Operation timed out)) 01:48:31 --- join: ChanServ (ChanServ@services.) joined #forth 01:48:31 --- mode: irc.freenode.net set +o ChanServ 01:49:36 moi 01:54:56 Privet, mur! 02:01:28 mita kuuluu? 02:12:09 --- quit: ChanServ (orwell.freenode.net irc.freenode.net) 02:16:07 --- join: ChanServ (ChanServ@services.) joined #forth 02:16:07 --- mode: irc.freenode.net set +o ChanServ 02:17:26 --- quit: ChanServ (orwell.freenode.net irc.freenode.net) 02:17:26 --- quit: proteusguy (orwell.freenode.net irc.freenode.net) 02:17:26 --- quit: l0C0 (orwell.freenode.net irc.freenode.net) 02:17:26 --- quit: ayrnieu (orwell.freenode.net irc.freenode.net) 02:18:18 --- join: ChanServ (ChanServ@services.) joined #forth 02:18:18 --- join: l0C0 (loco@bor.gs) joined #forth 02:18:18 --- join: ayrnieu (julian@65.169.246.16) joined #forth 02:18:18 --- join: proteusguy (~proteusgu@workstations.pinnaclesports.com) joined #forth 02:18:18 --- mode: irc.freenode.net set +o ChanServ 02:20:31 ASau, where can I get FIGforth? 02:30:47 Taygeta. 03:00:38 --- quit: ChanServ (orwell.freenode.net irc.freenode.net) 03:06:51 --- join: ChanServ (ChanServ@services.) joined #forth 03:06:51 --- mode: irc.freenode.net set +o ChanServ 03:08:21 thanhks 04:15:07 --- quit: hefner_ (Read error: 104 (Connection reset by peer)) 04:15:30 --- join: hefner_ (~hefner@pool-151-196-19-248.balt.east.verizon.net) joined #forth 04:19:27 --- join: arke (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 04:21:57 Dobryjj den', arke! 04:22:08 --- join: yeoh (~yeoh@219.95.15.188) joined #forth 04:22:13 dobruo utro :) 04:26:10 Hi, which is the best Forth system for Linux? Is GForth a good choice? 04:27:23 That depends on what you want. 04:27:47 I want to learn Forth and I'm running a Linux box. :) 04:28:03 Gforth is good enough for learning Forth basics. 04:28:13 ok, thanks ASau. :) 04:28:41 But I can't say Gforth sources could help learn good style in Forth. 04:28:50 Gforth is bloated. 04:29:04 And it's file-oriented. 04:37:32 cd ~ 04:38:07 I see. Which Forth system should I start off with then? 04:38:27 I've found Win32Forth and know I want another distro that runs on Linux. 04:38:32 I'm not on Linux. 04:38:43 You may look at these: 04:38:46 ok, no problem. :) 04:38:48 a) PFE 04:38:53 b) Ficl 04:38:59 c) lina 04:39:13 BTW. 04:39:30 http://dmoz.org/Computers/Programming/Languages/Forth/Implementations/ 04:39:53 Thanks. :) 04:40:49 d) isforth 04:41:26 IsForth is written by I440r, he appears here from time to time. 04:41:53 e) lpForth 04:42:11 I'd recommended this, as I know what's eforth. 04:43:55 Also take a look at lina ( http://dmoz.org/Computers/Programming/Languages/Forth/Implementations/figForth ) 04:44:51 Is eforth at this URL? http://home.iae.nl/users/mhx/eforth.html 04:51:31 Actually, it was at http://www.eforth.com.tw/ 04:51:56 eforth is ported to many architectures. 04:52:20 And sometimes there exist several ports. 04:52:30 ok, I got the wrong URL. Haven't downloaded it yet. 04:52:49 f) pForth 04:53:20 I tried lina from here http://home.hccnet.nl/a.w.m.van.der.horst/lina.html 04:53:38 both versions gave segmentation fault with I run lina. 04:55:45 Hm. 04:55:58 I don't have Linux installation handy. 04:56:13 I can try. 04:56:29 But it won't be even next day. 04:56:56 I think I'll try eforth instead. 05:01:18 Oh .. the main page is in Chinese! I think I'll try PFE. :) 05:01:26 Well, as you choose eforth, you possibly need F83 standard. 05:01:39 No matter it's in Chinese. 05:01:49 Documentation is in English. 05:01:49 I can't find the download link. 05:02:03 Better look at Taygeta. 05:02:16 ftp://ftp.taygeta.com/pub/Forth/ 05:03:07 ok, I got into the ftp site now. 05:03:47 Don't forget lpForth, if it's strongly eforth-based as stated, you'll feel what eforth is. 05:04:57 Thanks very much ASau. :) 05:10:23 --- join: crc (crc@1Cust169.tnt1.levittown.pa.da.uu.net) joined #forth 05:10:39 Guten Tag, crc! 05:11:00 Guten tag, ASau 05:14:51 --- quit: fridge ("Leaving") 05:36:58 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 05:39:40 Hi again, ASau. :) I finally found a Forth system that's easy to install on Linux and is small. :) 05:39:48 It is kForth. ;) 05:40:25 --- quit: qFox (Client Quit) 05:42:41 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 05:47:24 --- quit: proteusguy ("Leaving") 05:55:41 --- join: fridge (~fridge@dsl-203-33-167-169.NSW.netspace.net.au) joined #forth 06:02:39 --- quit: crc () 06:09:41 --- quit: arke (Read error: 104 (Connection reset by peer)) 06:21:40 --- join: hefner__ (~hefner@pool-141-157-67-187.balt.east.verizon.net) joined #forth 06:27:12 --- quit: yeoh ("Client exiting") 06:36:23 --- quit: hefner_ (Read error: 110 (Connection timed out)) 07:25:31 --- join: networm (~networm@L0664P06.dipool.highway.telekom.at) joined #forth 07:34:05 --- quit: slava (orwell.freenode.net irc.freenode.net) 07:38:00 --- join: slava (~slava@CPE0080ad77a020-CM.cpe.net.cable.rogers.com) joined #forth 08:03:54 I'm back. 08:04:14 good 08:13:14 morning all 08:15:08 Dobryjj vecher, Herkamire! 08:16:28 --- join: hefner_ (~hefner@pool-141-157-67-187.balt.east.verizon.net) joined #forth 08:31:31 man' I'm officially adicted to the discworld mud 08:31:57 or maybe I'm just procrastinating a lot lately 08:40:15 Sorry? What do you mean? 08:42:59 --- join: SDO (~SDO@68.170.20.253) joined #forth 08:44:14 --- quit: hefner__ (Read error: 110 (Connection timed out)) 08:45:47 God kvaell. SDO! 08:47:11 :) 08:48:02 And what do you use Forth for? 08:48:28 Or plan to use, if not yet. 08:55:52 qFox. http://www.eforth.com.tw/academy-n/library/System%20Guide/Guide_all.htm 08:56:26 See chapter 4. 08:56:56 That's what I was explaining. 08:57:15 Also chapter 3/ 09:05:07 --- join: rO| (rO|@pD9EE14C9.dip.t-dialin.net) joined #forth 09:05:08 my explorer is just crashing :p 09:06:31 --- quit: rO| (Read error: 104 (Connection reset by peer)) 09:08:15 ??? 09:08:44 s/all/3/ 09:12:11 ah 09:12:13 tnx 09:12:18 i'll read it later 09:13:41 Only today I have succeded in reaching it. 09:13:49 I had wrong links. 09:13:50 the website? 09:13:54 Yes. 09:13:55 oh right :) 09:14:10 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 09:14:19 Dobryjj vecher, kc5tja! 09:14:21 --- mode: ChanServ set +o kc5tja 09:14:34 Good morning. 09:15:34 Wah! 09:15:35 evenin' 09:15:57 It even explains how fig-Forth portable editor works! 09:17:34 --- join: BoomBoX (BoomBoX@cd5115050.cable.wanadoo.nl) joined #forth 09:17:47 bah... IRC is an... nevermind 09:17:55 multiplayer notepad thingy 09:20:04 well, how is it doing with the forth board? 09:20:11 ? 09:20:15 :) 09:20:20 just checking up 09:20:22 Forth board? 09:20:34 uhoh.. i think you just offended the box :p 09:20:36 yeah, the forth development board, that i tought you where working on 09:20:53 i am not easely offended on IRC Q :) 09:21:01 oh no 09:21:01 i meant 09:21:02 kc5tja's project ;) 09:21:18 ah 09:21:18 eehm 09:21:23 qFox: I wasn't sure if he meant the Forth community (e.g., discussion "board") or my hardware. Hence my question. 09:21:24 yeah project then 09:21:39 Current status as follows: 09:21:48 ah yeah, its kinda ambigous word "board" :) 09:21:55 --- quit: ChanServ (orwell.freenode.net irc.freenode.net) 09:21:57 RAM port (a 40-pin header) has been designed into the circuitry. 09:22:31 I'm thinking of including a separate ROM port (also a 40-pin header, though most of the pins will be unused; just so I don't need to maintain so much inventory). 09:22:46 With the Forth ROM sitting on a riser card that plugs into that port. 09:22:53 netsplit, no wonder you encountered empty chans on other servers BoomBoX, bad luck. 09:23:13 ah yeah, netsplits.... brings back memories of long long ago :) 09:23:15 But I'm not too sure about that yet. 09:23:22 currently, I'm working on address decoding. 09:23:53 --- join: ChanServ (ChanServ@services.) joined #forth 09:23:53 --- mode: irc.freenode.net set +o ChanServ 09:24:09 The 65816 makes decoding a bit freakish, because it expects to find ROM at $00FFF0-$00FFFF, and because the stack and direct page addressing modes all expect to find their data in $000000-$00FFFF range too. 09:24:28 heh\ 09:24:49 hmm, 09:25:12 So instead of decoding A23,A22 like most other designs, I'm going to decode A23,A15, which causes severe memory map fragmentation as long as the ROM is mapped into the addressing space (it's completely normal with it banked out, which is its normal mode of operation anyway). 09:25:30 i am sorry i am not familiar with the 65816 so, i would not know 09:25:55 BoomBoX: Familiar with the 6502 at all? 09:26:01 eehm little bit, 09:26:07 not too much, 09:26:19 The 65816 is a 16-bit enhancement to the 6502 (and yes, it still runs 6502 software). 09:26:43 24 adress pins? boots up on 0xFFF0? 09:27:30 Yeah. The home bank of the CPU is 0, so everything it does is initially in the $000000-$00FFFF range. 09:27:41 aah banked? 09:27:47 Yes and no. 09:27:51 no lineair adress space? 09:27:56 It's linear. 09:28:06 or is that an adressing mode you can select? 09:28:12 But 90% of the CPU still uses the old 6502 circuitry, which means 16-bit effective addresses. 09:28:38 kinda of an 8088 ;) but then different with 16bits adresses sprinkled over 20bits adresspace 09:28:48 So for those old addressing modes, the CPU uses the contents of the Data Bank Register to create the full 24-bit address. 09:28:58 For the newer addressing modes, a full 24-bit address is specified. 09:29:19 so X Y are 16 bits wide or 24 bits? 09:29:24 16-bits wide. 09:29:50 okay, but i was interrupting you 09:30:04 But new addressing modes provided allows for 24-bit absolute addresses, or 24-bit direct-page pointers in the case of ($__),Y addressing mode. 09:30:24 aaah... i see 09:30:27 nifty 09:30:55 Still, those bank registers are handy. The older, 16-bit addressing modes are faster (and zero-page, now called direct-page), is faster still. 09:31:11 And very few programs will ever come close to being 64KB in size, especially with Forth. 09:31:15 yeah i knew that, becouse of they shorten the instuctions 09:31:20 indeed 09:32:01 Anyway, the address decoding logic will fragment the memory map like this: 09:32:04 $000000-$007FFF RAM 09:32:11 $008000-$00FFFF ROM 09:32:16 $010000-$017FFF RAM 09:32:22 $018000-$01FFF ROM 09:32:25 ...etc... 09:32:49 hmmm, 09:32:55 Up to 8MB of RAM and 4MB of ROM can be added this way. 09:33:07 With the ROM mapped out of the address space, RAM is contiguous. 09:33:23 so its only the initial situation? 09:33:37 Since ROMs are so damn slow, they introduce about 10 clocks worth of wait-states to the system. 09:33:48 So yeah, it's *strictly* intended for booting or resetting purposes. 09:34:00 ah okay 09:34:50 Still, though, 8MB of RAM ought to be enough for anyone. >:) 09:34:56 heheh :) 09:34:59 especially forth 09:35:16 Then, when A23 is high, I/O is selected, and A22,A21 will select which device (VSR, VIA #1, VIA #2). 09:35:19 it kicks many VLIW architectures in terms of code density 09:36:05 ah okay 09:36:06 BoomBoX: Yeah, but some might argue that VLIW is faster. It depends on the design. 09:36:23 well, my biggest problem with forth it can be difficult to pipeline 09:36:32 Don't pipeline it. 09:36:35 i mean out of order excecution 09:36:49 With data at the top of stack always, there's no need for it to be pipelined. 09:37:01 And instead of out-of-order execution, use hyperthreading. 09:37:09 exactly 09:37:27 the processors are small enough in term of gates so you can put a lot of them on a single die 09:37:39 fast transport bus and you are done 09:37:43 * kc5tja nods 09:37:58 there was an forth processor based on this principle 09:37:59 And data caches can be optimized for the specific tasks of serving as data and return stacks. 09:38:06 exactly 09:38:19 developed by the guy who designed forth 09:38:44 BoomBoX: Yes, I am fully aware of the MISC series of CPUs. :D Especially his C18 core and the 50X he's currently working on. :) 09:39:20 kc5tja: well, why dont you use one of those :) 09:39:27 You can't buy them. 09:39:29 oh wait... cost 09:39:46 Because they're not on the market, and even if they were, they're such low-volume products that the cost of the CPU would blow my target market. 09:39:53 not available? or just not below 1000 quantities 09:40:13 BoomBoX: Are you willing to pay $500 or more for a monochrome, 320x480 resolution home-built computer with questionable sound quality? :D 09:40:14 mm okay 09:40:22 well.... no ;) 09:40:50 I wish I'd gotten into this earlier, when the MuP21 was still in fabrication. 09:40:59 I was stupid. 09:41:15 how long ago was it in production? 09:41:18 while we're wishing... 09:41:19 But that's OK; the ForthBox Raven will rely on FPGAs to implement all of its custom logic, including the CPU (which will be a MISC design). 09:41:49 heh :) i am currently thinking about going that route too 09:41:51 BoomBoX: Between five and 10 years ago. 09:42:12 kc5tja: hmm no change in getting surplus or old stock... or at least very little 09:42:26 BoomBoX: And even if I could, what would happen when it runs out? 09:42:37 I need a CPU that has a long lifespan. 09:42:56 The 65816 is that CPU. It's been around at least since the IIgs, and will be around for decades to come. 09:43:39 kc5tja: indeed, it would break the design if you did not had an constant supply of the devices, it would break your design 09:43:57 It's perhaps not the fastest CPU to use (the 68000 is technically faster by ever so tiny an amount), but, it's the cheapest CPU to design around. 09:44:42 well if its anything like its predecessor, it would be also easy to do so 09:44:51 AND, you can't even purchase 68000 devices off the shelf anymore. You either need to go directly to Motorola (and pay through the nose), or be happy with a MC68020 at $250 a pop! 09:45:08 250!? wow 09:45:58 would they be selling them alot? :) 09:46:01 65816 is largely 6502 pin compatible. There are some differences, obviously, because it has to communicate the upper 8 address bits (it does so on the data bus, which means demultiplexing logic is needed). Otherwise, it's the *exact* same bus design as the 6502, complete with single clock cycle memory accesses. 09:46:14 --- join: crc (crc@1Cust165.tnt1.levittown.pa.da.uu.net) joined #forth 09:46:36 qFox: Too many pronouns. Can you elaborate? 09:47:04 motorola, mc68020 09:47:17 qFox: No, they're not selling a lot at all. 09:47:24 Motorola is deliberately trying to kill off the 680x0 design. 09:47:27 Which is retarded. 09:47:34 But that's why they never beat Intel. 09:47:52 Instead of making it *easy* for people to use their chips, Motorola made it excruciatingly difficult. 09:48:14 kc5tja: so with the 65816 you need to latch the upper byte of the adress range? 09:48:22 They are putting more of their effort into the ColdFire series (related to the 680x0 series, but is a hindered design) and the PowerPC embedded CPUs. 09:48:33 BoomBoX: yes. 09:50:00 Also, some of the status signals are different: instead of SYNC output to indicate the opcode fetch, there is now VDA and VPA (Valid Data/Program Access), which I use as the basis of my asynchronous bus interface for the 65816. 09:50:43 There is now a VP signal which, when asserted, indicates the CPU is specifically fetching a vector. Thus, external hardware can supply vectors without having to access ROM. 09:50:49 ah i see, well that explains the async part of the whole design 09:51:04 vector? 09:51:27 And, there is a new interrupt pin called ABORT, which when asserted, causes the CPU to abort the currently executing instruction (it's a proper trap, not an interrupt, so returning frm the ABORT interrupt will cause the "faulting" instruction to start again). 09:52:24 This lets the CPU interface to MMU devices to achieve memory protection and address space management. 09:52:45 or you could investigate why the abort happened 09:52:46 All in all, the 65816 is *overwhelmingly* superior to the original 6502, and yet, it still fits in a 40-pin DIP package. 09:52:49 :) 09:53:02 BoomBoX: You can't do that without an MMU. 09:53:13 hmmm, what is the price on one of them? 09:53:14 The whole purpose of an MMU is to enforce memory protections. 09:53:20 If a fault occurs, the MMU has to say what happened. 09:53:36 The CPU alone ONLY provides the trap mechanism. It doesn't supply the hardware for diagnostics. 09:53:38 well you could send an abort in case of writing to non existant memory or something like that 09:54:17 no but you write the diagnostic routine in case of an abort, for instance if an bus condition is detected, you could read out data why it would happen 09:54:45 --- quit: crc ("Time to sleep...") 09:54:48 BoomBoX: You either have an MMU or you don't. If you do, you'd probe the MMU's registers to find out why the abort happened (non-existant memory == unmapped memory). If not, you can *always* assume the abort happened because of unmapped memory, and you'll be correct 100% of the time. 09:55:20 ah okay 09:55:39 with MMU i think right away, of virtual adresses paging etc 09:55:43 Attempting to disassemble and "soft-execute" the faulting instruction is possible, but why in the world would you ever want to do that? 09:55:51 BoomBoX: Precisely. That's the job of an MMU. 09:56:02 Memory Management Unit. :) 09:56:30 indeed 09:57:02 Just because you have an MMU that CAN let you run Unix on the 65816, doesn't mean your OS has to *BE* Unix to use it. 09:57:22 AmigaOS used the Motorola paging MMUs regularly, when present; however, all the OS tasks still ran in a single address space. 09:57:41 Most people didn't even know the MMU existed, because applications still crashed just as regularly as it did without it. :) 09:58:18 hehe :) 09:58:56 * qFox didnt know mmu exist... 09:59:09 Third-party software add-ons were available which gave AmigaOS support for virtual memory (e.g., automated, managed swapping of memory regions to disk) 09:59:10 :p 09:59:25 qFox: Every PC since the 386 boxes has one. 09:59:33 well the 80286 has one too :) 09:59:42 qFox: It's the MMU that makes Linux so stable. 09:59:47 whats mmu... 09:59:54 oh memmory management unit 09:59:55 BoomBoX: If you kinda sorta think of segmentation in that way, yes. 09:59:58 sorry wasnt reading along 10:00:25 TreyB, howdie, you still at PalmSource? 10:00:28 well, the whole selector idea and acess protection was on the 80286 but all in 16bit segments 10:00:45 And frankly, I find segmentation to be vastly superior to paging for the purposes of *protection*, but paging is superior for virtual memory. 10:00:54 I bumped into Marcone on the BeShare system and he said he was looking for a MM developer for media streaming, wondering if you would email him and let him know I'm still interested. 10:00:57 SDO: WHOA!!! Long time no see! 10:01:03 kc5tja :) long time indeed. 10:01:08 how you doing? 10:01:22 SDO: I'm surviving, but otherwise, that's about it. 10:01:26 me too. 10:01:31 dinner is served, sorry need to go 10:01:52 BoomBoX: Yes, I know about the 286. 10:02:02 Jobs are hard to come by, I had an interview for a job that I was WAY overqualified for, negotiated down to 45K a year, and they still won't hire me. I know the guys on the crew, we all get along, and upper management wants to find someone that will do it for 15 an hour. 10:02:20 I'm just shaking my head. 10:02:48 SDO: I'm currently working two jobs, and am having a *very* hard time making ends meet at the moment. 10:02:55 --- quit: BoomBoX () 10:03:04 I think I'm gonna start my own lawn mowing business and be my own boss and screw this working for others. 10:03:07 I'm currently working on starting another aspect of my business, which would more or less give me three jobs. 10:03:19 wow, that is busy and tiring sounding. 10:03:26 It is very tiring. 10:03:33 School is affected. 10:03:37 I don't work right now, my expenses are almost zero, but still I would like to retire again sometime in this lifetime. 10:03:45 and wallyworld is not my ideal, 'hello, welcome to wally' 10:03:56 kc5tja, I'm sorry to hear that, get some sleep :) 10:03:56 zzzzzz 10:04:02 If I can grow my third venture, I can leave In-N-Out burgers. 10:04:11 you will. 10:04:14 just stick to it. 10:04:23 My consulting business didn't go anywhere; too many other 'unemployed consultants.' 10:04:26 Read Think and Grow Rich a few times, it motivates the heck out of me 10:04:35 Currently have one software development client, but I'm working for $15/hour. 10:04:37 yes, the software business is well, 'soft' 10:04:44 and there are so many around, it is rather sad actually. 10:04:52 I'm having trouble concentrating on it though. 10:04:59 I would rather sleep in and minimalize my life than work for 15 an hour where 10% inflation is around the corner. 10:05:07 kc5tja, well, simplify. 10:05:14 :) it works for me. 10:05:19 Total cost per year to live now is about 15K. 10:05:22 That is doable in my sleep. 10:05:48 I have about 7K in taxes on land each year, and about 500 for food and stuff a month, and then I travel 1-2 times a year for fun and relaxation. 10:06:09 It's about $10K for where I'm living right now (thanks to four other roommates) 10:06:20 and I read a TON of books from the library now, life ain't so bad. Mowing lawns is sounding like a fun thing to do for a while, see if I can grow the idea into a profitable business model. 10:06:47 I'm reading more forth books from my library also. 10:06:48 SDO: Have you read about my ForthBox kit computers? 10:06:57 no, can I find it online? 10:07:07 You can find *some* information on it online. 10:07:15 I'm still designing it, and costing things out. 10:07:23 http://tunes.org/~coreyr/read.php?chan=forth&date=04.03.01 10:07:30 http://www.falvotech.com/cgi/fsforth/ForthBoxKestrel 10:07:46 (it's a Wiki, so feel free to navigate elsewhere, but the Kestrel is what I'm currently concentrating most of my effort in designing) 10:07:52 http://www.6502.org/ 10:07:54 :) 10:08:14 SDO: Look on 6502.org's forum, and search for kc5tja. :) I have more posts there than some "old-timers" there. :D 10:10:55 "hi" "my" "name" "is" "kc6tja" :p 10:11:06 right lets try to parse input, i'm getting silly 10:11:15 yah, I see, I also just read the outline design of the boxen, that is cool, would be nice to see it to completion. I would buy one for the sake of it. Maybe you can simply put together the thing, and then sell the parts list and let folks go and find the parts off old mobos and cards, and old circuits around the HAM fests. Also RadioShlock is a neat source, too bad they seem to be downemphasizing the parts business at the retail 10:11:15 level these days. 10:11:15 like the colon semicolon logo. 10:11:15 RS sucks ass. 10:12:12 pity we dont have a radioshack at all here 10:12:16 it has had better days that is for sure. 10:12:16 qFox, will the real slim shadey please stand up, please stand up. 10:12:16 Anyway, I'm working with very limited tools to get the Kestrel designed. 10:12:22 I can only work on one (limited) schematic sheet at a time, and the CAD software will let me place and route only what is on that one schematic. 10:12:22 This means I'll be needing to *really* hodge-podge this thing, at least initially until I can afford to pay for a commercial license for the software. 10:12:34 (I'm using EagleCAD for Linux -- *sweet* program -- I really like it. Definitely worth paying for.) 10:12:57 qFox: No, NOT a pity. BELIEVE ME. COUNT your LUCKY STARS!! RadioShack is **BAD**!!! 10:13:07 qFox: Their advertising slogan is, "You've got questions? We've got answers." 10:13:27 yea i've been to one when i was in the usa once 10:13:48 qFox: But if you ask them even, "What is the impedance of this speaker?" (BTW, 99% of them are either 8ohms or 4 ohms *AND* it will say on the box), and they'll just sit there and drool, looking like you just asked them to solve the rational expression for e. 10:13:51 not sure for what, but the guy took his time and we moved on 10:14:33 :) 10:16:07 Hmm...maybe I should start a mailing list on yahoo! or something for the ForthBox Kestrel. 10:16:23 but what i meant is that we dont really have a electronics store like radioshack, bad or otherwise. well perhaps the small stores here and there 10:16:35 --- join: hefner__ (~hefner@pool-151-196-113-169.balt.east.verizon.net) joined #forth 10:17:00 but its not like "oh i need a resistor, lets go to ..." 10:17:08 Yeah, I understand. 10:17:36 Right now, I'm ordering most of my parts from Mouser, and some from Digi-Key. 10:18:59 yes online (i guess?) is an option, but can get quite expensive. especially since i'll take a guess that most of these shops are based in the states... shipping and such 10:19:19 In an effort to minimize my own overhead, how would people feel about constructing the kit using *two* PCBs instead of just one, with a cable connecting the various pieces together? 10:19:35 well, the local radioschlock is emphasizing end consumer products like cell phone and computers, and really getting out of parts. 10:19:40 It might drive the cost of the system up by US$10 or so (from what I can see). 10:20:02 I'm all for it, if it works. 10:20:07 10 bucks ain't much these days. 10:20:33 yeah, but I have to be careful; a number of people expressed that they'll purchase the kit if it's $100 or less; any more, and they said they wouldn't. 10:20:34 shipping will be that much likely on the parts alone. 10:20:44 So I'm trying to gather information from my potential customers to see if things are OK with them. 10:20:45 well, 110 or 100, I can handle that. 10:20:51 150, not likely, 200 definitely not. 10:21:20 I'm thinking of increasing the maximum price to $125 as my maximum price barrier. 10:21:21 I would get one to build with my GF's boy, I'm gonna get me a radio kit also and built it with him, and do local community radio on the block :) 10:21:44 SDO: Yes, building it with friends and relatives is *precisely* the market I'm going after. 10:22:01 cool, cause that is where I see it being, having fun and then seeing it work. 10:22:01 The Raven design is for more advanced builders, and likely won't sell nearly as well. 10:22:17 with others of course. 10:22:18 SDO: Hey, maybe this is the first market I've correctly eye-balled. :D 10:22:23 :) could be. 10:22:41 I still see the skills of getting components to work as viable, it is just small as it was years ago. 10:22:50 that is why prefabbed Apple // and the like came about. 10:23:10 right. 10:23:14 most people don't want to munkey around with soldering, however I do and will pass that on to who will sit down for 10-12 hours on a weekend and get the job done. 10:23:24 Right. 10:23:44 * kc5tja has considered producing pre-fabbed boards in the future, once I have the cash to sink into it and I know there is an additional market for it. 10:24:20 My ideal case design is very much like the Commodore 128 (for all-in-one package), or the Commodore 128D's, raised a bit to make a keyboard garage (like the Amiga 1000's). 10:24:23 I would rather just do breadboard and make it work. Etched boards are nice, and very useful, but I also want to go from breadboard to fab with the learning curve and this boy I'm talking about . 10:25:01 so you get a working computer together that can do something in the end, and I'll buy the kit :) Hows that. 10:25:08 SDO: That means parts only then; no boards? 10:25:30 well, you can build a kit with supplied boards, bread or etched, I'll buy the kit with supplied boards. 10:25:39 The CPU runs pretty fast: 12.6MHz. Breadboards won't cut it in my experience. Wire-wrapping would, but the costs of the sockets are immense. 10:25:44 Or if you put together a parts list for sale, and directions, I'll buy that too. 10:25:59 yes, they are. 10:26:07 hmmmmmm, what is your solution then? 10:26:10 etching? 10:26:18 Etched printed circuit boards is what I was thinking. 10:26:34 yah, but they cost 10-20 bucks a pop in small volume as I recall. 10:26:46 Or, if you wanted to wire-wrap the circuit yourself, meaning you pay for the sockets, I can just supply the raw parts (since they're all going to be offered anyway individually), including the default ROMs. 10:26:55 maybe you can do a PDF of the design of the etch and then let people buy the RSchlock etching kit and etch it themselves. 10:27:20 and of course let the morons ruin a few boards in the learning curve (me included) 10:27:22 SDO: Yes, I still work at PalmSource. 10:27:23 SDO: If you order from Mouser, they're not that much. But, the CPU module alone costs $15 in raw parts. With the sockets for all the chips combined, it costs $45. Go figure. :) 10:27:44 TreyB, howdie :) Please let Marcone know that I would like to talk about the MM position, I believe it is still up online too. 10:27:45 * TreyB just got his new CobaltFlux DDR dance pads and had to play with his son ;-) 10:27:47 thanks TreyB. 10:27:53 cool! 10:27:57 SDO: Yes, that is a possibility too. I'd have to work with you on that, though, because I've never done anything like that before. 10:28:16 It would suck if I got the top surface of the board backwards. :) 10:28:19 2-layer PCB. 10:28:51 kc5tja, well, the PDF design would be rather simple, export to PDF and that is the layout, you just have to get your CAD program to make exact export PDF dimensions so someone can mask off on the etching with the RSchlock kit, bathe it and then rinse. 10:29:22 My experience is about NONE recently, I would have to encourage you to contact RS and talk to them about the kits, local store could give you information on the etching kits. 10:29:33 SDO: It doesn't do PDF; it does export to a PNG image though. I can just do that, crank up the DPI, then hand-"print" that to a PDF file somehow. 10:29:42 Probably via LaTex. 10:29:44 Probably via LaTeX. 10:30:01 well, get it to a format that can be PDFed easily. 10:30:14 I use BeOS here, and there are some translators available here, some better than others. 10:30:26 But of course it would be best to go directly to PDF and not some bit image first. 10:31:01 The problem is maintaining the proper physical dimensions. 10:31:14 however, maybe you can export the CAD drawing for the etch to some standard CAD format and then get someone with say a commercial CAD app and the right PDF generator to come along and help. 10:31:22 Yes, that is exactly the problem, it has to be exact. 10:31:34 the packages you will supply (rest, chips so forth) must fit. 10:31:48 anyway, it sounds really cool 10:33:35 i'll try. I don't know if I can with the tools that I have though. 10:33:42 SDO: marcone hasn't poked his head into IRC yet today. He should arrive at the office soon, though. 10:34:57 Anyway, I'm going to college now. I'll be back in a couple of hours or so. 10:35:06 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 10:40:30 TreyB, thanks 10:42:01 --- join: proteusguy (~proteusgu@workstations.pinnaclesports.com) joined #forth 10:44:42 --- quit: hefner_ (Read error: 101 (Network is unreachable)) 11:00:10 nice book costs... http://cgi.ebay.com/ws/eBayISAPI.dll?ViewItem&item=2796109402&category=3522&sspagename=STRK%3AMEBWA%3AIT&rd=1 11:17:47 can i put something on the return stack, enter an if and get something from the return stack? 11:18:23 the same thing i mean.. :) 11:18:53 1 >r 1 if r> . else r> drop then 11:18:56 for instance.. 11:20:01 Yes. 11:20:32 IF does nothing with return stack. 11:20:54 Only DO and LOOP use it. 11:21:19 Well. I mean all LOOPs. 11:22:26 hehe i understand 11:22:30 just wanted ot make sure if didnt 11:22:41 not all loops. 11:22:59 counted loops 11:23:15 WHILE and REPEAT are not DO LOOP :) 11:23:42 LOOPs means LOOP +LOOP /LOOP etc. 11:24:47 ahh 11:25:02 for/next also uses the return stack 11:25:38 It's less known. 11:26:11 You know everyone can define his own control structure. 11:27:26 And nobody else (in general) can guess how many return stack cells it will use. 11:28:14 It seems I need to write RussianPower page in Speuler's wiki. :) 11:28:49 I've added info on 3 or 4 russian Forth compiler today. 11:57:20 --- join: Downer (~Devel@host213-122-120-77.in-addr.btopenworld.com) joined #forth 12:14:23 Well. 12:14:27 Good night! 12:14:29 --- quit: ASau () 12:23:12 yay. i can now enter locations and check for a set :p 12:23:28 come again? 12:23:35 working on a set game 12:24:14 --- join: snowrichard (~chatzilla@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 12:24:14 http://www.reed.edu/~mcphailb/applets/set/ ,only now in forth 12:27:18 I dont have Java 12:27:18 I'm never going to download java 12:27:31 even windows doesnt deserve such treatment 12:27:31 follow the link 12:27:31 i believe there's a js version on one of the links 12:27:43 or just read the description 12:27:51 hehe okies 12:27:52 i asure you the game has nothing to do with windows :) 12:28:16 its in fact a card-game 12:28:45 :) 12:28:46 looks weird 12:28:59 go to www.setgame.com and buy it. it's lots of fun 12:29:01 download java ;) 12:29:26 quidler is a great game too 12:29:27 Herkamire> you can now do something like B1 c4 A3 ci 12:29:37 and it'll show you correct or incorrect :) 12:29:42 (properly) 12:30:02 just made words for all the 12 locations, figured it would be just as easy 12:31:43 I'll download Java when I see a pig flying through the sky on a hamster, riding a little bike 12:32:36 * Downer pictures it 12:32:49 'twill be a good day. 12:33:06 if you can picture it, you can make it happen. 12:33:10 perhaps 12:33:17 you just have to define certain parameters... 12:33:27 it however may also be the day of my death 12:33:37 like, what's a hamster, whats a bike, whats riding, and whats the color of the pig 12:33:38 :p 12:33:40 as the hamster, pig, and small bycle come flying down and hit me on the head 12:33:48 hehe ;) 12:34:20 and/or eat some shrooms and get scared of the curtains. 12:36:56 qFox: cool :) 12:37:28 qFox: have you tried it in gforth? 12:37:33 winforth 12:37:39 but i'm fairly sure it'll work in gforth? 12:37:46 afaik i'm not doing anything crazy 12:38:12 i probably dont know any of the deeper/higher winforth specific words 12:38:56 qFox: can I try it? 12:39:17 sure hold on 12:40:43 http://members.home.nl/qfox/coding/forth/ 12:40:48 dl q.f and set4.f 12:40:53 you'll need them both 12:41:11 instructions should be clear when you load set4.f (q.f is automaticly loaded) 12:41:41 and yes, the code needs to be heavily optimized 12:42:54 well, can :) 12:51:21 what's your calling convention for RANDOM? 12:51:34 i have... no idea? :) i'll see 12:51:43 hrm 12:51:49 : RANDOM DUP 0= 12:51:50 IF 1+ 12:51:50 THEN SEED1 lit 0xB1 /MOD 2* SWAP lit 0xAB * SWAP - DUP TO SEED1 SEED2 lit 0xB0 12:51:50 /MOD lit 0x23 * SWAP lit 0xAC * SWAP - DUP TO SEED2 SEED3 lit 0xB2 /MOD lit 0x3F 12:51:50 * SWAP lit 0xAA * SWAP - DUP TO SEED3 + + SWAP MOD ; 12:52:37 is there a standard way of dealing with random? mine would just put a single cell to the stack, with a random bit-pattern 12:52:41 but you can use your own definition of random i think 12:55:35 yikes 12:55:49 I mean what parameter(s) do you pass 12:56:10 oh uh 12:56:49 i wrote that a while back when i first bothered you guys here with it 12:57:22 i think just the 81 12:57:35 and it'll return a random number in the range of 0 and 81 12:57:54 --- quit: networm ("Client exiting") 12:57:58 random only takes the TOS in winforth 12:58:12 ok 12:58:23 will it ever return 81? 12:58:47 why 80 12:58:48 unless i'm being very coincedental 12:58:52 no. 12:59:05 (20 times tried 0 random ,all 0's 12:59:14 Downer> the array is 81 items, 0-80 12:59:24 that array is the deck 12:59:31 ok, now it works 12:59:37 :) 13:00:25 I guessed one parameter, and it didn't work. then I was gussing you had to parameters (min, max). then I fixed my RANDOM. 13:00:35 :) 13:00:41 now I switched back to one parameter :) and it works 13:01:44 Correct. 13:01:49 nice 13:02:02 your random word is frightening 13:02:06 i'll keep it in mind. try to change the random to something more global 13:02:06 yes but, why not a power of 2 13:02:14 Downer? 13:02:47 why not generate values between 0-16 13:03:13 I don't know how good mine is, but I have: : -random rnd-seed @ $10450405 * 1+ dup rl9 rnd-seed ! ; 13:03:25 (rl9 rotates the 32 bits left by 9) 13:03:43 whats $10450405 13:03:52 hex 13:04:01 ah 13:04:13 * Downer pets 0xFF 13:05:09 that algorithm came with a reccomendation to take the significant bits 13:07:31 not sure what you usually have to go through to get that, but PPC has an instruction to get the high 32 bits of a product, so I just used that to define *hu (multiply-high-unsigned) 13:07:51 brb 13:07:53 : random ( n -- 0..n-1 ) -random *hu ; 13:10:03 qFox: : 3verse swap >r swap r> swap ; 13:12:16 Downer> that was just winforth's version of random, not my own (i dont have one). 13:12:52 wow... I just realized I have a calous on my arm where I rest it on the edge of my desk to type 13:13:03 calous? 13:13:45 callous. an area of extra tough skin. like on your heel 13:15:03 Herkamire> k 3verse can be shorter :) 13:15:06 oh ok 13:15:24 qFox: I like the name "3verse" :) 13:15:30 :) 13:22:10 --- quit: ChanServ (orwell.freenode.net irc.freenode.net) 13:28:25 --- join: ChanServ (ChanServ@services.) joined #forth 13:28:25 --- mode: irc.freenode.net set +o ChanServ 13:31:13 man this is a brain teaser, playing with all these stack items! 13:31:15 : 3dup over >r >r over r> swap over r> swap ; 13:31:25 :) 13:31:31 but 3dup was already defined in my system 13:31:48 didnt figure that out untill later :) 13:32:00 hehe 13:33:09 I'm getting better at it, but it's still hard for me to keep track of that many stack items 13:33:25 it aint easy for me either 13:33:33 thats why i type it out 13:33:37 don't do it then! 13:33:41 makes it much easier :) 13:33:48 oh you mean in my code? 13:33:57 i thought you meant the 3dup things 13:34:17 don't pass wore than two stack items to any word 13:34:40 how would i pass on three cards then 13:34:51 for instance... 13:34:53 if you want to pass something that doesn't fit in a cell, than pass a pointer 13:35:13 the card fits in a cell 13:35:19 so pass that 13:35:20 but there are 3 cards... 13:35:28 use variables 13:35:34 not local variables 13:35:51 wasnt it the point to minimize the amount of variables, since using the stack is so much faster? 13:35:56 at least thats what i understood... 13:36:02 no 13:36:41 it's not faster if you're doing crazy stuff like 3dop and 3verse 13:36:42 then i can easily explain you why i'm doing so many stack items ;) 13:37:30 ahw and i was so proud at them :p 13:37:31 using variables can greatly simplify your code 13:37:48 true 13:37:52 they would 13:37:56 they are great excercises to write :) I just spent 5 minutes rewriting them :) 13:38:13 hehe i didnt expect it to be possible 13:38:15 I just wrote a simple number game on a grid like that. 13:38:35 i thought it was pretty short as it was 13:38:37 user selects two "cards" and it moves them if they match 13:38:50 moves? 13:39:04 at first I stored the cards on the stack, but I changed it to put them in variables, and my code got much simpler. 13:39:50 oh if i rewrite this code to variables i'm sure it'll be simplified 13:39:51 :) 13:40:14 card1 card2 card3 is easier to understand then 2dup i 13:41:41 yes. in my game you move cards up or right onto another card. This is only legal if the numbers on the cards differ by 0, 1, 3, or 6 13:41:42 As long as you don't have re-entrancy as a requirement :-) 13:42:57 TreyB: hehe :) 13:43:51 * TreyB mostly writes for a multi-threaded world and thinks about this sort of thing all of the time. 13:43:56 in matter of percentage, on average, how much faster is calling something from the stack, compared to retrieving something from a variable? 13:44:21 qFox: depends on a million things. just try it 13:44:30 qFox: focus on code simplicity and clarity. 13:44:35 qFox: speed will come as a result 13:44:45 oki 13:45:24 optomizing (if it's even nessesary) should be done after 13:45:44 you won't know until you're done what parts need optomizing 13:45:49 qFox: as Herkamire suggests, it depends. However, if you can't fit everything into registers, reading a stack item through the stack pointer takes as much time as reading a variable through its address. 13:46:35 (assuming a non-forth-specific CPU) 13:47:03 well, i figure that if you're really detailed, reading from a variable will at least take the time reading from a stack plus the rest. 13:47:27 since you first put something on the stack, then replace it by its value, and THEN ... 13:47:29 --- quit: Downer (Read error: 104 (Connection reset by peer)) 13:49:02 A great deal depends on how much optimizing the compiler does. iForth or VFX Forth wouldn't bother moving the variable address to the stack. They'd generate native code that used the address directly. They also eliminate most of the stack traffic, making the comparison that much more difficult. 13:49:28 hm true 13:49:33 on PPC @ is 4 instructions with 1 memory access. and SWAP is 3 instructions with 2 memory accesses. 13:50:33 (asuming you cache TOS in a register) 13:50:35 Herkamire: assuming a compiler that didn't eliminate the swap by register renaming :-/ 13:51:14 so i guess, that even though forth in theory is built on its core words, optimization is what makes it fast(er...) ? 13:51:41 optimization by use of a underlying language i mean 13:51:42 This discussion just proves that you should write maintainable code and profile where appropriate. 13:52:32 We can't really have the discussion in the abstract sense, given the diversity of implementation strategies and runtime platforms. 13:52:46 qFox: forth runs really fast on forth hardware. 13:52:50 lol 13:53:03 x86 has a certain set of instructions. 13:53:08 and several registers 13:53:28 if you compile to very few/fast instructions, it will execute fast 13:53:42 yes but certain compiler optimization tricks cant be done on a forth cpu... 13:54:04 you cant "cheat" by going into code, etc 13:54:11 you don't need the tricks on forth CPU. forth takes advantage of the chip naturely 13:54:30 you can optomize on a forth chip too 13:54:49 was novix a forth chip? 13:54:51 i kinda wished winforth had such an implementation. only teh core words in code, the rest built in forth. would make it easier to understand certain words. now if i "see" them i see a bunch of code :\ 13:55:30 qFox: look at the gforth source. 13:55:49 I like how my forth is written in forth 13:56:09 to understand some of it you still have to know asm... but I wrote that part too, so I usually understand it :) 13:56:50 my instance of gforth wont build 13:56:51 :\ 13:57:04 qFox: which platform? 13:57:05 and version? 13:57:07 xp 13:57:10 Ah. 13:57:12 0.6.2 13:57:14 hehe 13:57:21 hey it has a .cmd 13:57:29 so i asume it's a windows build... 13:57:54 but running configure.cmd (or config.bat) will only lead to unknown dir errors 13:58:11 hey, I gotta go make dinner. you guys keep having fun 13:58:21 You might check out FICL. Last time I checked, it had a functional Win32 port. 13:58:56 * TreyB goes back to work. 13:58:58 hm 13:59:03 Good luck, qFox. 13:59:17 configure.cmd isnt a real (windows) cmd file :p 13:59:33 tnx 14:00:37 hm i think i have found my error :p 14:00:43 stupid paths 14:12:49 gforth has code for 2dup 14:12:50 :\ 14:13:01 not quite what i expected 14:24:02 --- join: I440r (~Mark4@64.47.44.254) joined #forth 14:29:36 : 2dup over over ; 14:31:48 * Herkamire goes to the store 14:35:16 yea i know, but i mean, for a system built on forth core words, i would think that 2dup was defined that way :) 14:35:40 --- quit: skylan (""It takes many nails to build crib, but one screw to fill it."") 14:37:16 ok, for a forth cpu, how many instructions does it have? 14:37:45 and is there a page somewhere that lists these words? 14:38:30 i have a few links, but i dont have anything that has them 14:50:02 --- quit: warpzero ("Tried to warn you about Chino and Daddy Gee, but I can't seem to get to you through the U.S. Mail.") 14:52:05 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 15:03:33 --- join: skylan (~sjh@nwc57-102.nwconx.net) joined #forth 15:05:00 Hi 15:11:28 Robert: Hi! 15:16:13 :) 15:30:01 --- quit: snowrichard ("ChatZilla 0.9.52B [Mozilla rv:1.6/20040115]") 15:44:32 --- join: arke (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 15:45:24 hiya 15:55:12 Hi 15:59:30 qFox: there is no standard forth cpu 15:59:57 although I've heard there is a lot of similarity between the chips chuck designs 16:00:34 I just got a lamb stew started 16:00:57 hi Robert qFox Jason 16:00:58 Never done that before. followed the instructions. a lot of work, but daaaamn it smells good 16:01:08 hi Chris :) 16:01:56 * Robert just had some yoghurt. 16:02:51 Robert: good stuffs :) 16:03:24 Yep 16:03:53 So, I finished this letter... Maybe I should continue reading for a while. I can't wait until I can start transmitting! 16:04:15 Just one more week. 16:06:49 qFox: kc5tja has outline a nice instruction set here: http://www.falvotech.com/cgi/fsforth/StackProcessorConcept 16:07:27 yea i kinda just need one set, on which an entire forth dictionary can be built 16:08:19 i figure i'll just attempt to build ansi forth or fig from "scratch", that way being the best to learn all the cmd's of it 16:09:19 cool 16:09:30 wont mean i'll make it ;) 16:09:35 things like create> 16:09:35 note that just because you can implement something from those base words doesn't mean you'd nessesarily want to. 16:09:46 I'd recomend making * and / core words :) 16:09:56 no but i can try to build a standard 16:10:04 either i succeed or not in all words doesnt really matter 16:10:08 i'll at least study them 16:10:15 and thus know them and what they do 16:10:57 --- join: blockhead (default@dialin-51-tnt.nyc.bestweb.net) joined #forth 16:11:26 you will need to make words to interact with your OS 16:12:24 i'm not sure if i'll actually build a vm or something, more on paper or ..... or something 16:12:48 i dont think i'm familiar enough with another language (ok perhaps mirc scripting) to actually be able to set up such a platform 16:12:58 i was actually going for forth as my main language 16:13:03 --- quit: I440r (Read error: 110 (Connection timed out)) 16:13:14 qFox: so write the vm in winforth 16:13:17 rather then mircscripting, which is simply not taken serious by anyone who doesnt know it "its just a chat program" 16:13:24 hm 16:13:32 you mean clear the vocs 16:13:46 no, write a vm 16:14:07 hm, build a vm forth inside a vm forth... heh :) 16:14:14 write an emulator for the 30 or 40 instructions you decide to build your forth on 16:14:44 but then i'd still have to get rid of all the other dictionaries 16:14:48 allocate 10K, stick some code and some source in there, and let it rip 16:14:59 no no no no 16:15:03 virtual machine 16:15:06 emulator 16:15:44 if you emulate a i.e. a game boy, you wouldn't have to clear the dictionary 16:15:45 i'm sorry, i dont think i quite get what you mean 16:15:50 hm no 16:15:57 but how do i emulate a instruction set 16:16:01 if the words already exist? 16:16:02 why would it be different for emulating a MISC processor 16:16:22 you wouldn't search the dictionary, you'd just emulate the proccessor 16:16:55 then you'd write a forth for that processor 16:17:08 which would implement it's own dictionary inside it's own memory space 16:19:08 i'm trying to visualize it but i cant :\ 16:19:53 OK. you start by allocating some memory. say 10KB 16:20:03 ok. 16:20:38 you have a few variables that you use to store the values for your VM's registers 16:20:55 (stack pointer, instruction pointer, return stack pointer, A rigister) 16:21:14 ok... 16:21:31 the main loop of your emulator would: 16:21:37 1) increment the instruction pointer 16:22:21 2) fetch an instruction from there (first making sure that the instruction pointer points to a valid memory location within the VM's 10K) 16:23:02 --- topic: set to 'A channel dedicated to the Forth programming language, its implementation, its application, and its philosophy. And pie. Mmm... Pie. | topic is now "aikido"' by warpzero 16:23:10 3) use a branch table to call the winforth word to emulate that instruction 16:23:21 * arke is away: dog 16:23:57 i'm not familiar with a branchtable 16:24:05 it's just a list of words 16:24:16 which you can call by number 16:24:27 basically say "call the 5th word in the table" 16:24:37 oh ok 16:25:16 much better than a huge switch statement 16:25:50 now you just write a word to emulate each instruction 16:26:14 ok, i'll have to lookup how these tables are formed and used, because all i can think of now is a switch or similar things. 16:26:23 k.. 16:26:56 create my-branch-table ' my-first-word , ' 2nd , ' in-case-of-3 16:27:30 : emulate-instruction ( instruction-number -- ) cells my-branch-table + @ execute ; 16:28:07 brb stew 16:30:48 --- join: matt_ (1000@adsl-67-113-235-233.dsl.snfc21.pacbell.net) joined #forth 16:30:54 --- nick: matt_ -> Sonarman 16:31:51 back 16:32:01 you are making stew? 16:32:14 yeah :) it smells soooo good 16:32:21 neat! 16:32:24 I think I put too much time in though. 16:32:27 lamb stew 16:32:53 time? oh, you mean the spice (thyme, tyme??) 16:33:03 right :) thyme 16:33:27 it has taken a lot of time too :) hehe 16:33:38 you can't rush stew 16:33:54 I don't mind the waiting part 16:34:22 there was a lot of cutting and frying at first. and I had to go to the store for a couple ingredients 16:34:58 ok, instead of going thru this trouble, which will take me alot of time before i can actually start, cant i just forget anything i dont want? hack winforth so it wont load the extra dictionaries on start, and forget all the words i dont want 16:36:08 safer than forgetting them would be to just not use them 16:36:19 no because i will redefine them 16:36:36 if you redefine them, you will not need to FORGET them. 16:37:02 just for completeness really. so i will know that whatever i can use, i defined myself 16:37:10 and whatever i cant use, i havent defined yet 16:37:38 * blockhead nods. understood, it's jsu tthat if you forget some words, you mgiht, um, remove stuff that you need, like stuff used by other words 16:37:48 thats the idea 16:38:00 start with a minimum set of core words 16:38:05 and build a forth system on them 16:39:01 marker -frobs- : my-emit ... ; 'my-emit is emit -frobs- .( Fortunately, this system does not implement TYPE in terms of EMIT!) 16:42:23 qFox: the trouble is that even though the interpreter can be written on top of the base instructions (you could probably get those down to 30 or 40) you need an interpreter in order to compile it 16:42:59 yes i'm reading thru kc5's page 16:43:13 qFox: what address? 16:43:15 i cant do anything with the jmps so i couldnt do the loops, and whatever 16:43:17 url 16:43:20 http://www.falvotech.com/cgi/fsforth/StackProcessorConcept 16:43:32 the control-flow inst 16:44:03 that's for a processor, not a forth system 16:44:39 a processor doesn't know anything about dictionarys and loops and stuff 16:45:03 hm yea ok 16:45:07 you write IF LOOP etc 16:45:39 you need a working language to write your forth in 16:45:47 it can be another forth, C, asm or whatever 16:46:28 have i mentioned i'm stuborn? 16:46:48 the advantage of a native forth or a well defined VM is that once you get the interpreter written, you can use your new forth to write it's self in it's own dialect 16:47:33 I think a fair amount of stubbornness is required to consider writing your own language 16:47:55 but i accomplish the same if i forget all the words of the current winforth system, except for the words i need to build on? 16:48:00 i'll have the interpreter 16:48:04 i'll have the whole deal 16:48:21 but I thought you wanted to write an interpreter? 16:48:23 half if not more of winforth is CODE anyhow 16:48:31 no 16:48:46 i want to build a forth system from the minimal core words 16:49:11 : 2dup ( n1 n2 -- n1 n2 n1 n2 ) over over ; 16:49:15 instead of getting code 16:49:19 for instance... 16:49:34 but if 2dup is used by the interpreter, then it will have to be compiled already 16:50:01 you have a point, but im not quite sure if this interpreter is based on its own dictionary 16:50:08 lets see if thats written anywhere 16:50:18 I don't understand your question 16:50:32 you say winforth might need 2dup in order to function? 16:50:46 yeah, maybe 16:50:47 and so i cant forget it, or i'll break winforth 16:50:55 go for it 16:51:21 well i think that winforth's interpreter isnt based on its dictionary, as such i can forget anything i like and the interpreter will still function 16:51:36 however if i forget something basic as dup, i'll have to use CODE to get it back 16:51:46 2dup wont prove my point 16:51:47 dup might 16:51:55 protected dictionary 16:51:57 mmmm 16:52:01 wait... maybe this is what's confusing me. what do you mean by "dictionary"? 16:52:24 let me ask this first, is there a difference in dictionary or vocabulary? 16:52:40 not really related but i see these words both used... 16:52:56 a vocabulary is a section of the dictionary 16:53:03 hm 16:53:08 the dictionary is all the vocabularies 16:53:13 so the dic is the total, and consists of vocs 16:53:17 right 16:53:19 right 16:53:31 ok. just making sure we are using the same definition for dictionary. 16:53:41 aye :) was a bit confused there 16:54:10 now i have a hunch, that if i was able to forget my entire dictionary, winforth would still function. the interpreter i mean 16:54:45 some people mean "code space" when they say "dictionary". (code space being where your colon definitions get compiled to, and often where HERE points to) 16:54:59 but i think i'll hit some more walls, so perhaps its not a such a good idea after all 16:55:10 qFox: try it. just start it up and type FORGET DUP 16:55:11 isnt that user space? 16:55:20 i cant forget dup atm, its protected 16:55:31 what? 16:55:32 what happens? 16:55:34 dup 16:55:38 forget dup 16:55:39 Error: dup in protected dictionary 16:55:44 hehe :) 16:55:56 ok, so winforth won't let you clear the dictionary 16:55:58 well perhaps if i erase it from the files and restart 16:56:04 * blockhead expected that. those words are needed by the interprter 16:56:09 winforth wont, windows will ;) 16:56:15 winforth uses them? 16:56:18 for the interpreter ? 16:56:26 right 16:56:35 well how do you think the interperter is made? 16:56:36 winforth won't let you forget that, because it would make winforth crash 16:56:43 out of forth words 16:56:44 built in vc or whatever other language? 16:56:48 could have 16:56:57 cross compiled 16:57:25 but i CAN redefine dup... 16:57:32 yes 16:57:45 so why wont that break the interpreter then? 16:57:56 redefinign a word leaves the old one there so that existing words (ie, the interpter) can use thtme 16:57:59 them 16:58:02 or does the interpreter only loook in a specific system vocabulary? 16:58:15 which is protected... 16:58:26 qFox: redefining a word just compiles another definition of it for all future words to use 16:58:37 yes 16:58:42 interpreter has itself been compiled to go direct to the address of each word. refeining does nto affect this 16:58:45 it does not effect anything that is compiled already 16:58:46 but when you use them, they are used first 16:58:49 what Herkamire siad :D 16:58:52 hm 16:58:53 right 16:59:02 ok that would make sense 16:59:29 heh, took me ten years to figure that out :D 16:59:41 :) 16:59:45 seriously 16:59:52 no, really. 16:59:57 :) 17:00:03 alright 17:00:07 lets do an alternative 17:00:09 I've only started coding my forth this year, but i've been trying to figure it out since 1994 17:00:21 i dont need to actually be able to use my forth system 17:00:33 so i dont really need a interpreter 17:00:45 wasnt the objective to my project anyways 17:01:11 in fact, i "could" do it on paper. but that would be kind of a pain in the ass 17:01:26 * blockhead nods 17:02:20 mommy should be flying over the atlantic ocean right about now :p 17:02:30 at least i think 17:02:46 um anyways 17:02:48 :) 17:03:18 the core words, as defined in ansi, are more words then you really need to build an entire forth on, right? 17:03:32 http://www.taygeta.com/forth/dpansf.htm 17:04:16 because finding a page with those 30 - 40 words, like you mentioned, is not so easy 17:04:31 and like you pointed out, the cpu set isnt what i'm looking for 17:05:49 something like this: http://forth.sourceforge.net/standard/fst83/fst83-12.htm 17:10:42 --- quit: skylan (".") 17:12:14 --- join: skylan (~sjh@nwc57-102.nwconx.net) joined #forth 17:13:17 wb 17:16:33 hmmmmmmmmm i think... i'll take a different approach 17:17:22 :) 17:17:34 sounds like something I've said 17:17:40 hi 17:17:56 i have an idea for factor online help 17:17:58 make it an irc bot! 17:18:11 instead of html or whatever 17:18:19 have a tutorial done interactively 17:18:32 arke, is that too trippy? :) 17:18:40 slavabot has kicked you for not understanding the readme :D 17:19:05 :D 17:20:50 hehe, i wouldn't trust my own bot with ops :) 17:21:00 :) 17:21:05 I would trust myself with ops. 17:21:10 :P 17:21:12 * arke hint hint 17:21:25 beggin for ops? :D 17:23:38 * arke has never been op in a pub channel 17:23:57 except for #c4th[-off_topic] because EVERYBODY is ops there :) 17:24:07 :D 17:24:17 i have, but not one with alot of ppl ;) 17:24:23 at least i dont think so 17:24:31 when everyone is opped it gets weird 17:26:12 /kick blockhead just joking 17:26:25 when everone is opped do a mass-deop :p 17:26:37 :P 17:26:46 would that work? 17:26:49 bitchx has a /fuckemall or such command 17:26:52 especially on networks that allow many modes per line give a nice effect :p 17:26:53 which bans everybody 17:26:56 yes 17:27:04 but bitchx cant compete with 8 deop's per line 17:27:16 4 lines (ircd default) of instant data 17:27:23 thats 32 ppl dopped before you get kicked 17:27:27 unless you're laggy 17:28:00 of course networks like that usually have chanserv so its pointless 17:28:07 but funny ify ou're bored anyhow 17:28:19 (efnet has 4 modes per line, ircnet even 3) 17:28:20 so it wouldn't work 17:28:32 it would work, but it would be pointless 17:33:45 :) 17:44:57 words [ ":" index-of -1 = not ] subset 17:44:57 . 17:44:57 [ :g :j :r :s :w ] 17:45:09 [ "global" "stdio" ] object-path inspect 17:45:09 OBJECT: ( Namespace #111a3a4 ) 17:45:09 CLASS : class factor.FactorNamespace 17:45:26 some nice runtime queries on interpreter state :) 17:46:20 id MyWindow = [window new] 17:46:25 [window display]; 17:46:26 haha 17:46:27 :) 17:47:35 hm i've started a little script to do what i wanted to do. i might even expand it to an inquire-able bot later. so ppl can do something like !fsee 2dup 17:48:03 and the bot would say : 2dup ( n1 n2 -- n1 n2 n1 n2 ) over over ; \ duplicates top 2 stack items 17:48:15 and some related functionality 17:48:24 but right now, i'm just dead tired and going to bed 17:48:36 night :) 17:48:42 'night 17:48:49 'night qFox 17:49:41 --- quit: qFox ("if at first you dont succeed, quit again") 18:14:23 --- join: Sonarman_ (1000@adsl-67-113-235-146.dsl.snfc21.pacbell.net) joined #forth 18:15:56 --- quit: Sonarman (Nick collision from services.) 18:20:03 --- join: default_ (default@dialin-38-tnt.nyc.bestweb.net) joined #forth 18:20:15 --- quit: blockhead (Read error: 54 (Connection reset by peer)) 18:20:48 --- nick: default_ -> blockhead 18:23:10 asdflk;adfiafsga;fdsg;ajsdfv;jbfkbdvk;asvjdjbsa;jbds;jbsv;bd;bfdvjbdjf;jbfv;jbf;jbf;jbfvjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbfjbf 18:23:13 ' 18:23:15 oopsd, sorry 18:25:17 --- quit: SDO (Remote closed the connection) 18:49:55 http://slava.kicks-ass.org:8888/inspect.lhtml 18:50:23 slava: 404 18:50:36 woops. never mind 18:53:31 what is it? part of the dictionary as html? 18:56:46 dictionary.lhtml is the dictionary 18:56:48 this is the variables 19:00:16 --- quit: proteusguy ("Leaving") 19:02:04 --- quit: Sonarman_ (Read error: 60 (Operation timed out)) 19:02:39 blockhead, this is a 100% internet enabled IDE :) 19:03:00 nice 19:03:39 so you could set Factor up as a server and write forth from any web browser anywhere? 19:06:16 --- join: Sonarman (1000@adsl-64-160-167-13.dsl.snfc21.pacbell.net) joined #forth 19:10:02 theoretically 19:42:23 hi matt 19:43:56 hey arke 19:44:06 arke, everything can now be viewed from a consistent 'inspector' interface 19:44:08 http://slava.kicks-ass.org:8888/inspect.lhtml?dict'append'asm 19:44:17 this is the disassembly for the 'append' word 19:44:23 and its accessed using that path 19:44:40 http://slava.kicks-ass.org:8888/inspect.lhtml?dict'append'def is the source 19:49:00 'night all 19:49:02 --- quit: blockhead ("Client Exiting") 19:56:09 HI CHRIS 19:56:15 whoops 19:56:37 HI MATT 19:56:41 BRB ICE CREAM TO MAKE ME FATT 19:56:51 * arke is away: ice cream 19:57:09 WHOW USER A PEOT 20:27:32 --- nick: hefner__ -> hefner 20:56:13 hmmm. for some reason Safari had trouble with a pulldown that had 6803 items in it 21:03:12 HI THERewkahvlkxdfg;kuB 21:03:16 HI THERE!!!! 21:03:21 Herkamire: lol 21:16:06 --- quit: TreyB (orwell.freenode.net irc.freenode.net) 21:16:06 --- quit: OrngeTide (orwell.freenode.net irc.freenode.net) 21:16:50 --- join: ASau (~asau@158.250.48.196) joined #forth 21:16:50 --- join: TreyB (~trey@cpe-66-87-192-27.tx.sprintbbd.net) joined #forth 21:16:50 --- join: OrngeTide (orange@rm-f.net) joined #forth 21:18:40 --- quit: ChanServ (orwell.freenode.net irc.freenode.net) 21:22:20 --- join: ChanServ (ChanServ@services.) joined #forth 21:22:20 --- mode: irc.freenode.net set +o ChanServ 21:29:02 --- join: hovil (~hovil@CommSecureAustPtyLtd.sb1.optus.net.au) joined #forth 21:29:09 ChanServ: I WANT OPS TOO 21:29:34 --- join: yeoh (~yeoh@219.95.7.111) joined #forth 21:30:47 --- quit: ChanServ (Shutting Down) 21:31:52 Dobre jitro! 21:33:00 yeoh. I've looked at eforth.com.tw 21:33:32 Hi ASau. :) 21:33:33 There're good enough books present. 21:33:57 You may take a look at them. 21:34:01 ok, I'll try to get eforth. 21:34:32 :) 21:34:34 And there's large collection of eforthes 21:34:54 Even for JavaVM, it seems. 21:34:58 hi yeoh :) 21:35:10 Hi Sonarman. :) 21:35:17 Hi yeoh, Matt 21:35:17 Hi arke. :) 21:35:30 yeoh: glad that you're not listening to Smerdy :) 21:35:50 I downloaded kforth last evening and played with it awhile. :) 21:36:00 Was Smerdyakov here? 21:36:00 arke: yeah, I like forth. 21:36:07 ASau: not that i know of 21:36:09 :) 21:36:17 ASau: not recently 21:36:35 is there an english version of the eforth website? 21:36:39 I mean this night. 21:36:55 Sonarman. There're pages in English. 21:36:58 ASau: nope. 21:37:07 But not all of them. 21:37:20 I'm there now. could only see Chinese text. 21:37:24 http://www.eforth.com.tw/academy-n/academy_all.htm 21:39:54 I can't find the download link. 21:40:05 I don't believe you could not reach this page. 21:40:38 yeoh. It's called "Advanced" and "Basic". 21:41:14 "When in doubt, use brute force." 21:41:27 heh heh ok 21:43:38 BTW. There's wiki at http://forthfreak.de/wiki 21:44:23 It's young enough, so all (or almost all) links are revalent. 21:47:06 ASau: looks like you've been pretty active there :) 21:47:40 --- join: ChanServ (ChanServ@services.) joined #forth 21:47:40 --- mode: irc.freenode.net set +o ChanServ 21:48:27 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 21:48:34 --- mode: ChanServ set +o kc5tja 21:49:08 OK, the independent 65816-based CPU module project is now discontinued. 21:49:25 All further developments will be directed exclusively to the Kestrel. 21:49:32 I can't find a Linux version of eForth from the Basic and Advance pages. 21:49:53 There is a Java version though. 21:51:12 Marcel Hendrix did one: http://home.iae.nl/users/mhx/eforth.html 21:57:38 Anyway, I've got weForth for this Win machine. My other pc running Linux is at home. :) 21:57:51 motninh 21:57:59 Terve! 21:58:52 strange.. Marcel Hendrix did not have a URL to his ftp site from his html page. :) 21:59:34 Well. 21:59:49 It's well known that Ting did wrote eForth. 22:00:29 And I think Google or DMoz point you to right Ting's home. 22:00:32 ok, found the link up one level. 22:05:30 I've got it! eforthl.zip, a Linux version, only 51kb zip file. will try it out later tonight. :) 22:06:52 --- join: Serg (~z@212.34.52.140) joined #forth 22:08:24 Dobre jitro, Serg! 22:10:50 hi.... 22:12:19 At work? 22:13:05 yeah... 22:13:31 yesterday shot a Kremlin tower through ruins of burned Manej 22:13:42 at night 22:13:50 gonna do it at daylight too 22:13:52 Hmmm. 22:14:01 --- join: segher (~segher@blueice1n1.de.ibm.com) joined #forth 22:14:05 It seems I need walk there too. 22:14:12 shot w/ foto, not bazooka ;)) 22:14:20 Dobre jitro, segher! 22:14:29 I've guessed. 22:16:23 goedemorgen, asau 22:18:44 Serg: well, that's a good thing. :) 22:19:02 Bazookas are rather unweildly to carry around, I understand. :D 22:19:22 "Make love, not war"? 22:20:27 > make love 22:20:28 Error: no rule to make target love 22:20:28 > man woman 22:20:28 Error: no manpage for woman 22:20:51 ;) 22:22:59 --- quit: Sonarman ("leaving") 22:23:14 Serg, http://www.rosbalt.ru/2004/03/24/151438.html 22:25:50 rulezzz ! 22:30:15 It's too early to be happy. 22:30:22 They've not payed yet. 22:49:03 Petition Against Software Patents Petition: http://www.petitiononline.com/pasp01/petition.html 23:00:53 Win32For is huge... good to use for learning. Now I've found a Forth system that I really like: ficl. Now I can use Forth in my C or C++ apps. :-) 23:25:03 --- quit: Serg () 23:46:33 --- topic: set to 'A channel dedicated to the Forth programming language, its implementation, its application, and its philosophy. :: UPDATE: Those interested in the up-coming ForthBox Kestrel home computer kit are invited to review the Kestrel's very own Wiki at http://www.falvotech.com/cgi/kestrel' by kc5tja 23:59:59 --- log: ended forth/04.03.24