00:00:00 --- log: started forth/04.10.04 00:00:07 pretty nice looking for 386 asm hmmmm? 00:01:31 AH! LOOK what I found... 00:01:35 # gas (gcc output) to osimplay 00:01:35 # based on MASM-to-osimplay translat0r in Bash Rick Hohensee aug 2003 00:02:14 and it uses chom! 00:03:57 --- join: yonkeltron (~yonkeltro@pcp04664407pcs.wilog501.pa.comcast.net) joined #forth 00:05:09 --- part: yonkeltron left #forth 00:10:41 Heh 00:13:04 OK, I'm kinda back. 00:13:27 Still working away on these stupid service logs, but at least I'm doing simple IP address deletions, not full-concentration-required e-commerce store setups. >:/ 00:14:20 O tay 00:15:54 the mosquito cannot get me, for i am awake 00:15:59 I work at an internet service provider, and since it's the graveyard shift here, I'll be up all night working on these logs. 00:16:23 Once I'm done with these logs, then I can code on FTS/Forth a bit. 00:16:43 :) 00:16:56 I'm trying to figure out a simple way to do CODE 00:17:18 --- quit: Herkamire ("bed bed bed") 00:17:39 in a regular assembler? write a macro? 00:18:03 I think he means in ChickenForth. 00:18:23 * kc5tja just has to wonder: will the official ChickenForth e-mail client be named Buckaw? 00:18:37 :) 00:18:52 * kc5tja is just going to call mine, uninnovatingly enough, FTS/Email. :) 00:18:54 t3h_ch1k3n: code is wedge inside your NEXT equivalent. 00:18:57 more forth environments are produced than forth programs 00:19:24 paintcan: there's no such thing as a Forth program 00:19:54 don't twist words about 00:19:58 code replaces NEST 00:20:00 "sizeable collection of words" 00:20:03 a.k.a. DOCOL 00:20:29 How do you tell gcc to keep all the stages of a build? .o .i etc. 00:20:34 so I guess create isn't the candidate 00:20:34 in a direct-threadded situation, yes 00:20:48 paintcan: Hey, I've written a few good utilities in GForth. 00:20:49 colorg: -save-temps or soemthing 00:20:55 yeah ta 00:21:00 And I use my radio tuner program extensively. :) 00:21:05 :p 00:21:11 :) 00:21:12 Especially since the radio is clean on the other side of my room. :) 00:21:17 :D 00:21:27 * kc5tja only has to walk over there when I need to retune the antenna. 00:22:39 t3h_ch1k3n: yup, -save-temps exactly 00:25:54 :) 00:28:24 --- join: _proteus (~proteusgu@203.148.241.62) joined #forth 00:28:40 --- quit: proteusguy (Read error: 110 (Connection timed out)) 00:30:34 you guys think : code ( - ) head" reveal ; will work? 00:31:05 what's endcode ? 00:31:29 err 00:31:32 if your assembler words are in a vocabulary, you should add it to the search list 00:31:44 : code ( - ) head" reveal also assembler ; 00:31:51 and then end-code takes out the assembler 00:31:54 :) 00:32:09 i will rename head" to head, 00:32:29 O tay 00:33:26 banky 00:33:33 only 12:30 rk? 00:33:36 where are you? 00:34:04 california 00:34:09 :o 00:34:24 head" would make someone think there needs to be a closing " 00:35:13 (including yourself in 6 months... weeks,,, minutes :) 00:35:44 exactly, which is why I just changed it to head, 00:37:07 I fucking HATE our customer base. 00:37:28 hehe. 00:37:32 They are so freaking STUPID!! 00:37:35 * kc5tja sighs 00:37:44 what did they do now? 00:37:49 I hope I don't get fucking morons for customers when I start my own ForthStamp-thingie business. 00:37:59 I can't give the full details obviously. 00:38:17 But this customer has a shared website (e.g., they rent space on a server that is shared by other customers) 00:38:26 * colorg makes eforthl 00:38:28 And he's complaining because he cannot create a user account "sharon". 00:38:41 Well, it is because another user on the server already has that user ID. 00:38:54 But he insists on having the site moved to another server. 00:39:04 Just so he can have a username "sharon". >:( 00:39:12 He's a $#*$&#ing retard. 00:39:40 * t3h_ch1k3n feels for you 00:39:54 question - whats the opposite of also assembler? 00:40:17 relbmessa osla? 00:40:19 "without assembler" 00:40:39 bah, jim is right as usual 00:41:04 now try to pronounce it :_ 00:41:07 :) 00:41:22 paintcan: thats ANS? 00:41:37 does that pop the voc stack? 00:41:51 yeah, i need something that pops the voc stack 00:42:46 err, hold up 00:43:08 nuxi(unix)=nuxi 00:45:06 no, its PREVIOUS :) 00:45:06 --- quit: paintcan (Read error: 54 (Connection reset by peer)) 00:45:57 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 00:47:56 Yes, PREVIOUS. 00:48:08 Sorry, was busy on the phone. At this ungodly hour. Yet another retard. 00:48:36 oh, how nice. 00:48:40 you have nothing but contempt for your customers :( 00:48:46 "only previous" will crash it :) 00:48:48 you will need to hire a PR man 00:49:32 wossname: I openly challenge you to fill my shoes. I work graveyard shift, in an ISP that is selling products to customers that they don't know how to use. 00:49:45 These people should NOT be in the ISP business. 00:49:54 And then they scream at ME when THEIR fuckups don't work for them. 00:50:05 And you have the nerve to accuse me of having contempt? You're damn right I do. 00:50:46 I have no problems helping a customer if they're polite and nice about it. "Hey, I think I made a mistake and did XYZ...it's not working now, can you take a look?" "Not a problem, please hold, --- fixed." 00:50:50 I have no problems with that kind of call. 00:51:12 :;gasx eforth.u > eforth.osim 00:51:37 "Hey, WHAT DO YOU MEAN TAHT WE CAN HAVE A USER NAME CALLED SHARON?!?!?!1101 THIS IS RETARDED!! IT'S A DAMN COBALT SERVER IT SHOULD BE ABLE TO HANDLE THIS! THIS IS REDICULOUS PLEASE MOVE MY SERVER OR I'LL BE DAMN UPSET" 00:51:45 That kind of tech support call I don't have ANY sympathy for. 00:51:46 :D 00:51:54 (most of that, BTW, *IS* what I just had to endure.) 00:52:30 a 19k eforth binary is going to be about 200k of osimplay source :o) 00:52:33 ok, ok. people are arrogant 00:52:45 Be glad I had the heart enough to change the user name from what he really wanted. Sharon is just a name I chose to protect the obviously innocent user he's trying to add. 00:52:46 customer service = suck 00:52:54 t3h_ch1k3n: Totally. 00:53:01 Why do you thing it's all going to India? 00:53:15 yup 00:53:16 :/ 00:54:04 * kc5tja ought to put up a website dedicated to the fucking assholes who call into tech support. 00:54:13 yeah 00:54:16 Maybe I can become as popular as Homestar Runner or something. 00:54:21 yeah :) 00:54:33 radio show + tech calls 00:54:39 you'll be known all across the net :) 00:55:01 I'd probably be sued for both. 00:56:34 that makes it even funner! 00:56:37 err 00:56:43 * t3h_ch1k3n ducks ;) 00:57:10 I would have nobody to fall back on for financial support to get me out of legal trouble though. 00:57:19 HSR for example, I'm sure, has a fleet of lawyers backing him up. 00:57:29 oh yeah of course. 00:57:45 or at least one good one 00:57:59 same with the 8-bit theater dude who is just ripping off final fantasy 00:58:01 what did hsr do that is sue worthy 00:58:05 OTOH, all their content is original. The radio shows I have are mostly original, but we ..umm...we hit the reporting aspect of it pretty...hard. 00:58:08 :) 00:58:17 wossname: Nothing. But I'm positive they have a fleet nonetheless. 00:58:22 :p 00:58:26 :) 00:58:27 fair right to parody.. 00:58:50 wossname: Which is falling increasingly under attack as DMCA and related legislation gets ever more powerful 00:58:51 somethingawful.com is a fine example of a website beset by legal threats 00:58:52 oh GOD WHY IS THE DAMN NET SO SLOW 00:58:57 they have only backed down twice 00:58:59 AND WHY IS THE INTEL DOCS IN SLOW PDF ARGHGHG 00:59:09 what is somethingawful.com? 00:59:10 (1) the zombified ghost of jim henson forced them to take down photoshops of muppets 00:59:17 Actually, Intel's PDFs are pretty quick. I've found MUCH slower PDFs. 00:59:27 (2) the church of scientology sued them for using pictures of L. Ron Hubbard on the front page 00:59:30 t3h_ch1k3n: INTEL386.TXT 00:59:31 t3h_ch1k3n: Is the net going slow because it's still downloading the PDFs? 00:59:32 kc5tja: true. 00:59:39 everything is slow 00:59:46 i just want to view the PDF's *cry* 00:59:47 in the second case, the webmaster retaliated by replacing the picture of L. Ron Hubbard with a drawn caricature of him as a flying dickhead (literally) 00:59:50 colorg: WHERE!?!?!?! 00:59:54 dcc 01:00:08 colorg: i dont think it;ll work 01:00:15 colorg: but do ahead and try 01:00:27 chill 01:00:55 :/ 01:00:59 unless you have a link 01:01:02 actually 01:01:05 looking 01:02:18 ftp://linux01.gwdg.de/pub/cLIeNUX/interim/Forreal.tgz 01:02:31 it's in there 01:02:46 ...:/ 01:02:59 along with much evil 01:03:00 oh they're done loading nevermind 01:03:14 you want that 01:03:46 kc5tja: Swedish 01:03:56 I caught some INTeL bugs, not something you want to replay 01:04:08 Robert!! 01:04:16 you're extremely late with that reply :) 01:04:47 Sorry, I almost slept 7 hours tonight :( 01:05:09 and sorry you should be. nearly 7 whole hours >:( 01:05:17 gasx seems to have done a fair job of converting eforth.s to eforth.osim 01:05:24 back 01:05:32 gasx is of course a Bash script 01:05:35 Hi 01:05:56 Or, should I say, tja. 01:07:18 jump * ( SI ) 01:07:30 isn't valid though 01:07:35 colorg: Don't mind t3h_ch1k3n -- he's always excited. :) 01:07:58 I DARE him to not use my docs :o) 01:08:17 bugs in CPU docs are very unhealthy 01:09:26 Yep. 01:10:03 Another great reason to use L4 for my OS microkernel -- it's already debugged enough to boot. One rather great mystery to not have to worry about when creating a new dream environment. 01:10:15 Robert: Thanks. :) 01:10:26 I knew it was one of your regional languages, but I couldn't remember which it was. 01:12:13 femtokernel --> ftp://linux01.gwdg.de/pub/cLIeNUX/interim/Forreal.tgz 01:12:36 * kc5tja considers writing a text-based adventure game in Forth, and putting it "online" for local amateur radio users to access via AX.25. Of course, that's assuming that they can reach my station. 01:13:45 looks like I can have eforth in osimplay in about a day 01:15:03 gasx missed some conversion thingies like _NAME=. 01:15:53 How do femtoservers differ from, say, exokernels or nanokernels? 01:17:26 femtokernel, couple hundred bytes of code that handles 3 different interrupts and twiddles some VGA text cells accordingly 01:17:40 including NMI, BTW 01:17:51 Not much to handle with an NMI. 01:17:53 in unpaged pmode 01:18:41 Ahh, so the earliest of Dolphin versions I wrote a while go were femtokernels then. :) 01:19:22 heheh 01:19:56 Or, at least, had femptokernels underlying them. I'd also written a linear memory manager for them too. (Here, linear means unpaged, not garbage collected) 01:20:00 noooooooooooooooooooooooooooooooooooooooooooooo 01:20:04 it doens't work 01:20:04 :/ 01:20:08 oh well 01:20:13 I'll figure it out tomorrow morning. 01:20:19 good night everybody 01:20:28 GN t3h_ch1k3n 01:20:35 mm, nice. a distant dream to me. 01:20:47 GET THAT DOC 01:21:13 --> ftp://linux01.gwdg.de/pub/cLIeNUX/interim/Forreal.tgz 01:22:17 Got it myself. I'll look at it tomorrow afternoon, after I wake up. :) 01:22:38 I got well into the guts of the 386. 01:22:59 That's all though, no floats, no >386 01:23:50 That's OK though -- the processor architectures change so damn fast these days that it's impossible to keep up with them. 01:23:54 I found an undocumented mode though. Forreal Mode. unprotected true 32. 01:24:07 Not unreal mode. 01:24:14 How does it differ from unreal mode? 01:24:53 unreal mode is big addresses small ops I think, this is both big 01:25:02 or something. 01:25:46 It's explained in there 01:26:30 you have to use the size switch prefixes with interrupts 01:26:50 I am sleeptalking at this point 01:29:11 Heheh 01:29:14 Yeah, I'll read it tomorrow. 01:29:40 And, yeah, unreal mode is 32-bit address space, MAYBE 32-bit data size default, but defaults still to 16-bit addressing modes. 01:31:05 you have to go to pmode to set up forreal mode IIRC, anyway I'm out. NICE TO FIND THIS CHANNEL :o) 01:31:18 --- quit: colorg ("ircII EPIC4pre2 cLIeNUX. Can you say that?") 01:31:22 :) 01:31:39 To think, on the newsgroups, he and I would get into rather violent catfights. :) 01:32:39 :-) 01:33:04 * crc is researching multiboot 01:33:40 * kc5tja nods 01:34:08 It doesn't look too bad 01:34:37 And it would allow me to boot RetroForth from a hard drive :-) 01:34:41 It's actually quite reasonable. 01:34:53 Yeah. Once booted, however, it can be another issue. :) 01:34:58 * kc5tja wonders if Grub will work on a USB harddrive. 01:35:46 I don't know 01:36:39 The 2.x versions might work with USB; I don't think the 0.x versions do 01:52:02 It 01:52:08 It's working :-) 01:55:11 What is? 01:55:32 The multiboot version of RetroForth/Native 02:02:31 --- join: Serg_penguin (~z@212.34.52.140) joined #forth 02:02:55 Hi Serg 02:03:15 hi 02:03:56 hi kc5tja, wassup w/ regens ? 02:03:58 : ln ( a -- b ) 02:03:59 dup pi / 1+ ; 02:04:16 What about THAT definition of the logarithm? ;) 02:04:31 sure PI, not E ??? why ? 02:04:46 pi(n), as in the nuber of primes < 02:04:49 < n 02:05:08 hmm.... 02:05:10 And yes, that is a word counting primes, and it is NOT fast :P 02:05:21 * Serg_penguin forgot all maths 02:05:23 Is kc5tja building a regenerative receiver? 02:05:41 i gave him some schemes from RU engeneer Polyakov ;)) 02:05:57 Hehe, how old? 02:06:07 Tube or transistor? 02:06:07 way weird, but folks say many ones built it 02:06:18 transistor, brand new to 70-s 02:07:45 Serg_penguin: Nothing is up. I'm busy at work dealing with a server where ALL the harddrives in the RAID array ALL went bad at the SAME time (or so nearly so that nobody had a chance to react). 02:07:52 Send him some old soviet transistor models, and he can pretend to be a spy ;) 02:08:11 kc5tja: What is the chance of THAT? 02:08:13 Note to others: stay away from Western Digital 250GB drives. They're QC isn't up to par with their smaller capacity drives. 02:08:25 Without earthquakes or nuclear bombs involved. 02:08:28 Robert: I don't know, but the clicking, clacking, grinding, and all sorts of other noises they're making is a GREAT clue. :) 02:08:40 Hehe 02:08:47 So far we haven't had any issues with their 120GB drives though. 02:08:48 Go figure. 02:10:27 * kc5tja rather likes the user interface of screen. I think I'll adopt it as the system-wide standard for FTS/Forth-L4. 02:10:55 (only, screens, as in AmigaOS, can be maintained by programs, not just users.) 02:11:03 I should learn how to use more than one screen. :) 02:11:14 Since I now have two irssi clients running. 02:22:30 well, I'm taking off... see you all back in here in about 3 days... 02:22:58 Bye :) 02:23:51 Bye Robert :) 02:23:57 --- quit: Hyrax ("An error? Impossible! My modem is error correcting.") 02:26:17 Robert: Well, think of a screen as a full-screen window that can be depth-arranged -- that's pretty much what 'screen' is like. :) 02:26:26 CTRL-A " is your friend. :) 02:26:52 Although, I wouldn't use CTRL for my meta-key. I'd probably use one of the Windows keys for that purpose. 02:26:56 Uhm, " is shift+2 on my layout 02:27:06 That frees up CTRL for stuff via SSH, telnet, or AX.25. 02:27:25 What did that do? 02:27:36 Select a screen? 02:27:50 CTRL-A " will show a listing of running shell sessions, and let you select which one you're on. 02:28:02 CTRL-A 1 .. CTRL-A 0 will select the first 10 of those screens. 02:28:13 Ah, cool 02:28:27 You can also rename a screen's title too -- which is sweet. Sometimes, I wish I could do something like that in X11. 02:28:29 Which one will screen -x choose per default? 02:28:31 :) 02:28:42 If there is more than one, it'll cop out with an error. 02:28:55 If there's only one screen instance running, then it'll default to that one. 02:28:59 Likewise with screen -r. 02:29:27 I should read the man page :) 02:29:35 Heheh :) 02:30:13 Man, I still can't believe that three drives went down all at the same time. Sheesh. That just HAS to suck for the customer. 02:30:21 And I know for a fact, we'll be paying for the new drives too. 02:30:47 Thankfully, the customer has our backup service, AND their servers are load-balanced across three other servers. 02:30:55 But, still....that really sucks! 02:31:05 aha 02:31:11 --- quit: crc (Read error: 60 (Operation timed out)) 02:31:16 did they have alarm ? 02:31:25 We both do. 02:31:30 (the customer and us) 02:31:40 We were working on it before the customer opened the trouble ticket. 02:32:10 hmm.... did servers have alarm on hardware problems ? 02:32:18 No. 02:32:20 yell bell etc 02:32:23 The drives are brand new (almost). 02:32:32 They're bone-stock PCs. 02:32:36 They don't have hardware-level alarms. 02:32:59 I still insist that a mainframe is *the* best way to run a hosting company. 02:33:01 Seriously. 02:33:14 Full hardware-level redundancy in every subsystem, including the I/O buses themselves. 02:33:23 If anything at all goes down, you get an email -- instantly. 02:33:35 And the OS security is very hard to beat too. 02:33:35 aha 02:34:11 And it's *sweet* that you can run virtual machines on a mainframe too -- want to give a customer a whole server? No problem -- just partition off a chunk of the harddrive space for his / partition, and install SuSE on it -- viola -- instant server. 02:34:52 Storage subsystems are 100% independent from the networking and processing equipment, so drives can be hot-swapped at any time, with mammoth levels of bandwidth to boot. 02:34:58 Mainframes are expensive though. 02:35:13 * Serg_penguin is making drivers collection from various magazines CD/DVD's 02:35:34 So you'll need to spend some time recouping your cost. But, still, you can purchase a relatively small mainframe from IBM for somewhere in the vicinity of $500,000 -- mere *pennies* to an ISP even as small as we are. 02:36:11 madframes still in production ? 02:36:21 Mainframes have never gone out of production. 02:36:41 so what differs mainframe from regular PC ? redundancy ? many processors ? 02:36:50 $500,000 is _pennies_ for a small company? 02:36:52 The only one being made in America is the IBM System/390 series (in my opinion, the best mainframe in the world). 02:36:58 Robert: That's not what I said. 02:37:04 I said, "for a company as small as we are." 02:37:09 kc5tja: Oh 02:37:14 kc5tja: How small is that? 02:38:32 We have several thousand hosting customers, and probably about 400 dedicated server customers (many with up to 10 boxes, if not more), and about 28 colocation customers (growing). 02:39:13 How many employees? 02:39:18 So, you figure, (roughly) 4000 customers, each paying a minimum of $50/month (that's our standard reseller fee, without any other services attached), and you can quickly see how a few years is all that's needed to repay the cost of the mainframe. 02:39:23 That's *just* the hosting customers. 02:39:41 Our dedicated customers pay a lot more than $50/month, and our colocation customers pay many thousands/month. 02:39:57 (though, it is true that our colo customers also have DS3s running into their cages too, but I digress.) 02:41:21 DS3? 02:41:42 ES3 to you folks. 02:41:56 Which is..? 02:42:02 45Mbps throughput (you have faster rates, for the same level of service; but the same basic idea) 02:42:28 Neat. 02:43:00 Wow, I'm shocked. Your E3s are *slower* than our T3s. 34.368Mbps versus our 45Mbps. 02:43:44 I wonder if it gets standardized above the T3 level. 02:43:52 * kc5tja is too lazy to bother researching right now though. 02:44:57 All I know is this: ham radio is still stuck at 1200bps here in the states; you folks are WAY lucky to be the ham radio digital state of the art center of the world. 02:44:59 No problem, I'm happy with my 8Mbit/s. 02:45:10 Hehe 02:45:16 Most people use PSK31 anyway. 02:45:24 8Mbps throughput on an AX.25 link? 02:45:26 And 10Mbit/s internet connections :P 02:45:29 No, heh. 02:45:32 Yeah, same here. PSK31 is taking off like a bandit. 02:45:54 * kc5tja came up with a nice idea the other day -- aggregating multiple PSK31 channels into a single data flow. 02:46:11 Yeah, I think you told me. 02:46:13 I figure that with 64 PSK31 signals packed into the passband of your average radio, you can pass close to 2Kbps of data. 02:46:24 But what will you use that for? 02:46:37 Long-haul packet radio networking. 02:46:50 FUCKING phone... 02:46:51 >:( 02:46:53 brb 02:47:34 So will you add an error-correcting protocol? 02:58:58 back 02:59:08 Forward error correcting, to be specific. 02:59:26 Hi, but I'm leaving for school now, be back in 4 hours or so. 03:02:02 * Serg_penguin regrets what radios can't be frown together as easy as computers ;( 03:02:16 THrown, damn dythtongs ! 03:05:30 Heheh :D 03:05:57 Actually, in Olde Englishe, the 'y' character originally had the sound "th", which is why "ye" is the same word as "the". 03:11:05 that even damner ;) heh, damn - damner - damnest ;) 03:13:06 Well, if English kept the "th" sound for y, I'm sure that it would have eliminated a not insignificant amount of frustration. 03:13:51 And remember that English came from German, primarily; doesn't the y-amlaut(sp?) character have a th-like sound to it? Or, rather, *did* it? 03:15:00 Serg, you really have to read this article, by one of our most popular authors in all of American history. 03:15:56 doggone it, of course, now I can't find the URL. 03:15:59 Hold on, googling. 03:20:57 http://webster.commnet.edu/grammar/twain.htm 03:21:39 You simply have to read it thoroughly and carefully, from the top to the bottom, in order to get it. :) 03:21:43 It's a *great* article. 03:21:46 * kc5tja should print it out. 03:29:30 --- quit: wossname (Read error: 60 (Operation timed out)) 03:31:27 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 03:33:29 --- join: hakossem (~hakossem@CBL217-132-114-193.bb.netvision.net.il) joined #forth 03:33:34 --- join: proteusguy (~proteusgu@203.148.241.62) joined #forth 03:34:32 --- quit: _proteus (Read error: 232 (Connection reset by peer)) 04:08:28 --- quit: wossname (Read error: 242 (No route to host)) 04:21:48 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 04:36:03 --- quit: wossname () 04:52:38 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 05:29:36 --- quit: wossname (Read error: 110 (Connection timed out)) 05:39:42 kc5tja: the dhamnest tongue-tie i ever attempted to pronounce !!! 05:40:12 tongue-gallows-knot ;)) 05:41:27 See, for me, that's a triviality. :) 05:51:03 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 06:09:10 --- quit: d00p ("d0rp") 06:26:48 --- join: I440r_ (mark4@216-110-82-59.gen.twtelecom.net) joined #forth 06:43:21 I440r_: hey. sorry for being such a dick last night. 06:43:35 I440r_: can I ask you a question though: 06:44:09 I440r_: : code ( - ) head, reveal assembler ; 06:44:19 (where head, = head" ) 06:44:52 does that seem right? 06:45:05 (or did I get something else wrong :/) 06:54:42 --- quit: wossname (Read error: 110 (Connection timed out)) 06:55:48 nevcermind, school. 06:55:57 I got my error figured out, the code is right. 06:56:01 adios 06:56:15 --- nick: t3h_ch1k3n -> sch00l_ch1k3n 06:58:34 You were a dick? I didn't notice. 06:58:36 * kc5tja runs! 06:58:41 Hey, I gotta go home. 07:02:00 in compile.1 it the word used to create a new header without writing anything into the code field 07:02:46 it looks right - but early revealing is bad :) 07:02:51 * I440r_ does that in one place too 07:17:56 --- quit: Serg_penguin () 07:28:50 Back 07:28:53 (for now) 07:29:07 * Robert is back as well 07:37:01 --- join: TheBlueWizard (TheBlueWiz@modem-046.nyc-tc03a.FCC.NET) joined #forth 07:37:01 --- mode: ChanServ set +o TheBlueWizard 07:37:46 Wizard, hi. 07:39:12 Robert hiya 08:30:08 Well, I think I'm going to hit the old sack. 08:30:53 k...have fun sleeping 08:32:09 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 08:34:54 --- quit: proteusguy ("The #python split is remarkably silly...") 08:39:12 --- part: hakossem left #forth 08:44:47 --- quit: swsch_ ("Leaving") 09:12:18 --- quit: wossname (Read error: 110 (Connection timed out)) 09:12:28 --- join: t3h_ch1k3n (apache@11.198.216.81.dre.siw.siwnet.net) joined #forth 09:13:03 hi 09:13:08 * t3h_ch1k3n laughs at the many ops 09:13:13 t3h_ch1k3n hiya 09:13:51 evybody WE CAN WE CAN KICK YOU 09:15:05 hehe 09:15:15 i deopped myself at home. 09:15:17 dont ask me why butt I did 09:16:27 17 ops, 22 total 09:16:30 hmm :) 09:17:07 I get three and 2 fifths ops :) 09:18:00 that will all pay attention to just meeeeeee! 09:24:56 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 09:26:35 now I only get 3 and a third ops 09:33:54 wait, no, did the math wrong... 09:35:20 15 oppers, 6 not, so divide and get 2.5 oppers per undeboppedperson 09:40:07 wait, no again... 09:40:19 -17- ops, 6 not. 09:40:25 15/6 = 5/2 09:40:34 8.5 09:40:41 argh 09:40:42 :) 09:42:06 so that's 2 5/6 09:43:35 :S 09:43:37 hi 09:48:05 #forth: moo 09:49:07 chicken goes moo? 09:52:08 that's what happens when you're in a cyberspace instead of meatspace :) 09:58:55 * t3h_ch1k3n shits an egg 10:02:47 i have to study the gforth asembler 10:04:58 --- quit: t3h_ch1k3n ("CGI:IRC (EOF)") 10:18:42 bah its huge 10:18:50 anyone know a nice small 386 assebmler i can mine for ideas? 10:19:14 A small 386 assembler? Heh. Good luck with THAT 10:19:34 ;/ 10:19:48 Robert, by 'small' i don't mean 20 lines of code 10:19:51 Hey woss..still awake? 10:19:53 i mean, reasonably esay to understand 10:20:03 and not written in BLOCKS without comments, like gforth's 10:20:09 lcc-win32 took a simple public domain assembler for its backend.. 10:20:38 forth based 386 assembler (in forth syntax, of course)? I suppose it would be considered small enough 10:21:02 either prefix or postfix 10:23:06 I think I have such assembler source code lying around somewhere on my HD...never tried it out tho (I think I got it from UseNet years ago) 10:36:55 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 10:42:20 well, I need to go...all bye 10:42:38 --- part: TheBlueWizard left #forth 11:01:47 --- join: Herkamire (~jason@h000094d30ba2.ne.client2.attbi.com) joined #forth 11:01:47 --- mode: ChanServ set +o Herkamire 11:02:16 hi Herkamire 11:02:43 hi slava 11:09:49 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 11:11:37 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 11:22:01 --- quit: ayrnieu (Read error: 104 (Connection reset by peer)) 11:22:37 --- join: ayrnieu (~julian@199.2.120.95) joined #forth 11:37:50 --- quit: tgunr (Read error: 104 (Connection reset by peer)) 11:39:33 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 12:08:55 --- quit: ayrnieu (Read error: 242 (No route to host)) 12:18:50 --- join: OrngeTide (orange@rm-f.net) joined #forth 12:22:32 --- join: warp0x00 (~warpzero@mi248.dn188.umontana.edu) joined #forth 13:00:09 ahah. FORTH is available for my license plate! you'd think in california someone would have had it by now 13:01:04 Haha 13:01:15 Congratulations. :) 13:03:22 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 13:03:26 Hoi 13:05:27 hesja 13:06:08 been away from home from 6:30 till 21:45 today, and had a whole of 2 hours of class! 13:06:08 +n 13:06:14 Yay! 13:06:28 Do you walk 50 miles to school in wooden shoes? 13:06:43 from 9am till 11am, but had a meeting at 5am that lasted till 19:30 :s 13:06:47 5pm. 13:06:57 sometimes 13:07:01 why, is that bad? 13:07:07 Nope. 13:07:12 kk, cool 13:10:49 i like wooden shoes. 13:10:57 i used to have a pair but i grew out of them. 13:11:23 They're good to have if you're just taking out the trash. 13:11:41 But not really comfortable for longer distances 13:11:42 i dunno about that. these are like hollander wooden shoes. :P 13:11:51 take a block of wood and carve it into a shoe sort of wooden shoe 13:11:53 Not sure what model we use in .se 13:12:20 Thick wooden block, with a simple protection (don't know exactly what material) on the top 13:12:52 http://www.dutchvillage.com/DVShoppingfolder/dvwearablewoodshoes/dvwoodshoeshop.htm 13:13:05 this is where i got my wooden shoes years and years ago when i was a kid 13:13:28 OK, not that kind. 13:14:06 i should get some and wear them around work. 13:14:12 not that i'm dutch. but hey. 13:14:18 Hehe. 13:14:26 i'm scottish maybe i should just wear a kilt. 13:14:33 i don't really have the legs for it though. 13:14:34 Kilt AND wooden shoes. 13:14:38 there we go 13:14:39 And code FORTH. 13:14:50 yea. that last bit will make people think i'm crazy though 13:14:55 That will make you a one-man minority 13:14:59 ahah 13:15:06 i will certainly be unique. 13:18:42 i haven't been able to shake this idea of a type safe forth. probably statically typed. i guess it wouldn't really be forth anymore though. 13:19:09 --- quit: qFox ("this quit is sponsored by somebody!") 13:20:23 Well, it's exactly the opposite of Forth today. 13:21:01 Will the type checking system be invoked run-time? 13:21:48 well it would be invoked at parse/interpret time. 13:23:11 so you'd have to clearly mark what type(s) your word takes and what type(s) it gives. then the system would select a word (if there were more than one with the same name) depending on the types listed on a special stack. 13:23:33 there would be some difficulty dealing with loops that could terminate with a variable number of stack elements though. 13:23:44 or conditionals that could return one type or another. 13:24:47 x dup 0 < if drop -1.0 then would screw things up tremendously in such a system. 13:24:51 Yeah, same problems as with optimizing compilers. 13:24:53 StrongForth seems to do it though 13:26:06 dynamic checking would be kinda cool if you could check a type only once early on and then words you call afterwards wouldn't have to recheck. but the problem with systems that have runtime types is that you can't Prove them. 13:26:36 a staticly typed forth would be provable, which opens up a whole world of serious embedded programming. 13:32:22 :) 13:32:55 I've never used local variables in Forth, but thought about experimenting with that some day. What's your opinion on the subject? 13:36:46 --- quit: tgunr (Excess Flood) 13:38:41 --- join: tgunr (~davec@vsat-148-63-4-107.c001.g4.mrt.starband.net) joined #forth 13:42:33 hrm. i don't have a problem with local variables. 13:42:43 but i might have been using C too long to have an unbiased opinion. 13:43:08 Heh. :) 13:43:11 it depends a lot on how your forth is architectured to say how well it deals with local variables. but really it can't be any worse than how C handles them. 13:43:28 What's your problem with local variables in C? 13:43:36 local variables make things easier if you lack a way to address the stack in your forth. 13:43:43 otherwise you don't really need them 13:43:50 i don't have a problem with how C does them. 13:44:42 Addressing the stack, do you mean nameless "addressing" with pick? 13:44:50 it's nothing sophesticated. every call pushes the pointer to the previous stack frame on the stack. that way you can create an arbitrary amount of local variables on a C stack. 13:44:56 yea. pick is fine. 13:45:04 strongforth and machineforth can't do pick 13:45:20 I'm not sure I like having too much data on the stack. 13:45:39 I mean, a couple of values is fine, but if you need 10 or so...nah. 13:45:41 if you don't have pick then named addressing of local variables is needed. which means you can't take short cuts when writing your dictionary routines. 13:46:27 yea. i think the general guideline is you don't need more than 4 things on the stack at once for 95% of the forth applications out there. 13:46:31 I guess it all depends on what you're coding though. 13:46:38 yea. isn't that always the case? :) 13:46:51 Of course, but with Forth it's more obvious 13:46:57 sure. 13:47:04 "Hmm.. do I need addition here? Do I need local variables? Do I need OO?" 13:47:35 where as with C++ you've given tons of stuff and people often use things they didn't actually need to use. 13:48:00 and then wonder why they are having so much trouble maintaining and debugging their program. 13:48:53 Hehe. 13:52:53 --- join: t3h_ch1k3n (apache@11.198.216.81.dre.siw.siwnet.net) joined #forth 13:57:23 --- join: qFox (C00K13S@82-169-140-229-mx.xdsl.tiscali.nl) joined #forth 13:58:03 A fox and a chicken. 13:58:23 NOOOOOOO IMA GET EATEN 13:59:14 dfh 13:59:15 afdhkn 13:59:18 be back in 2 hours 13:59:26 BAI 13:59:27 --- quit: t3h_ch1k3n ("CGI:IRC (EOF)") 14:00:26 BAI roobert 14:00:36 Are you leaving too, mur? 14:04:21 --- quit: qFox ("this quit is sponsored by somebody!") 14:04:34 Robert, no 14:04:36 i thought you were 14:05:10 Nah 14:05:13 Said bye to arke 14:06:07 OK! 14:06:09 phew 14:06:12 now i dont have to go! 14:06:13 good 14:08:09 :D 14:08:12 * Robert pets mur 14:10:24 * mur orgasms 14:18:00 --- quit: jim (Remote closed the connection) 14:53:01 --- join: yome (~rewt@65.94.184.113) joined #forth 15:32:35 --- nick: sch00l_ch1k3n -> t3h_ch1k3n 16:00:51 --- part: yome left #forth 16:24:36 --- quit: OrngeTide ("working.") 16:39:48 --- quit: I440r_ (Read error: 104 (Connection reset by peer)) 16:44:35 --- quit: warp0x00 (Read error: 110 (Connection timed out)) 17:43:18 slava: Hey, you at keyboard? 17:43:26 If so, what is that website you use for posting code snippets? 17:43:32 --- join: I440r (mark4@216-110-82-59.gen.twtelecom.net) joined #forth 17:46:56 I440r: you're right I shouldnt REVEAL early. thanks for pointing that out 17:46:57 hi kc5tja 17:49:34 t3h_ch1k3n, sometimes you cant avoid it 17:49:49 but its best not to reveal till after the definition is complete 17:53:40 --- join: Sonarman (~matt@adsl-64-160-166-122.dsl.snfc21.pacbell.net) joined #forth 17:54:22 I440r: so my end-code is now : end-code ( - ) previous reveal ; 17:55:48 I440r: Hey 17:56:00 I440r: I ported some code to IsForth, and noticed some things... 17:56:10 I440r: No nested comments... 17:56:24 I440r: No ;then 17:57:18 And... uhm... I won't argue against using the C operators. They allow for REALLY obfuscated words. But those are cute. 17:57:34 kc5tja, ping 17:57:37 kc5tja, paste.lisp.org 17:57:39 pong 17:57:58 robert why nest comments - a comment IS a comment 17:58:03 i wont support block comments 17:58:09 why would i want ;then ? 17:58:19 I440r: I mean like... ( a b -- sqrt(a) ) or whatever 17:58:23 wtf IS ;then 17:58:30 I440r: Short for exit then 17:58:37 I440r: Just a little more convenient. 17:58:38 of corse not - the first ) terminatest eh comment 17:58:44 i just write ( a b -- sqrt[a] ) 17:58:48 Yeah, but it doesn't HAVE to be that way. 17:59:00 slava: And yeah, I thought of that AFTER trying to port it ;) 17:59:23 robert yes it does. im not building BS featueres into ( to check weather you really meant to terminate the comment or not 17:59:51 I440r: Bah, it's like a line of code. But OK, I can accept that. ;then however is more useful. 17:59:54 and just do then ; 17:59:58 :) 17:59:59 Robert, just use \ then 18:00:24 robert ;then looks like pure lazyness to me :) 18:00:29 but go ahead and define it 18:00:38 : ;then ..... ; 18:00:48 : rest of my program goes here ; 18:00:54 I440r: Aren't all programming languages, by definition, an exposition of pure laziness? 18:01:10 kc5 theres levels :) 18:01:14 slava: Well, I just didn't feel like converting all comments. 18:01:23 robert show me a definition for ;then 18:02:04 Hmm... 18:02:20 It should compile an "exit" and then behave as the normal "then" 18:02:32 How is that done in IsForth? 18:02:47 [compile] exit goto then or something? 18:02:52 err no thats BURYING the exit inside the else (if) part 18:02:59 i would opposed that word personally 18:03:09 but if yOU want to define it for your own use use 18:03:25 : ;then compile exit [compile] then ; 18:03:44 immediate 18:03:49 almsot forgot that heh 18:04:10 Ah 18:04:13 i always forget immediate :) 18:04:16 do you also want a ;else ??? 18:04:18 For those interested, the code that controls my Kenwood TS-2000 radio tuning can be found (for the next 24 hours or so) at: http://paste.lisp.org/display/2939 18:04:21 how about a ;if ??? hehe 18:04:26 I440r: Pfffft 18:05:29 kc5tja: Neat. 18:06:02 Precisely why I don't like "immediate" -- having the dedicated compiler and non-compiler vocabularies eliminates any chance of that kind of coding error. 18:06:07 where the hell is tathi!] 18:06:51 kc5 wouldnt you have to remember to switch to the immediate vocabulary for this word? 18:07:05 i guess it would be natural to select it 18:07:15 if ALL words of this nature went in there heh 18:07:43 however that raises a problem - a compiling word isnt always immediate - how do you distinguish ? 18:08:53 i can see the advantages of an immediate vocabulary but i can also see disadvantages 18:08:54 its safer 18:09:01 but less versatile i think 18:09:22 I440r: Yes. But you do so precisely once. You don't need to annotate EVERY immediate word definition like you do in traditional systems. 18:10:09 I don't understand your question about some compiling words being non-immediate. I'm confused. What? 18:10:24 ok. 18:10:36 every if has its then - both if AND then are immediate 18:10:41 or in the immediate vocabulary 18:10:59 in isforth i have a case: word with its corresponding ;case word 18:11:08 case: IS immediate but ;case is not 18:11:16 because case: switches you into interpret mode 18:11:33 OK. 18:11:44 So put case: in the MACRO vocabulary, and ;case in the FORTH vocabulary. 18:11:47 both case: and ;case belong in the same vocabulary 18:12:00 yes that would work 18:12:08 but ;case does not belong in the forth vocabulary 18:12:12 However, I'm really baffled about how ;case can exist as anything but an immediate word. 18:12:31 kct case: switches you into interpret mode! 18:12:32 kc5tja, if case: does [ it doesn't matter if ;case is immedaite or not 18:12:42 you are not in compile mode for the WHOLE of the body of the case statement 18:12:43 kc5tja, it gets executed at compile time in either case 18:12:57 I440r: No kidding. I'm asking about the mechanics, because at some point you need to re-enter compile mode! 18:13:09 presumably ;case calls ] 18:13:11 ;case does that 18:13:13 ya 18:13:16 GAHH! I KNOW THAT! 18:13:18 I440r, there's an echo in here 18:13:23 Please stop stating the patently obvious. 18:13:35 kc5 im confused about where your confused then sorry :) 18:13:45 Why does case: go into interpret mode? 18:13:54 When there is code to be *compiled* inside its construct? 18:14:20 because its not JUST compiling, its building up a table of data to LATER be compiled 18:14:21 kc5tja, i'm guessing so that your case statement is a piece of code to leave an integer on the stack which is then compiled by ;case 18:14:27 thers things it doesnt know till later 18:14:39 slava close 18:14:57 a case: is compiled as a list of options followed by a list of vectors 18:15:10 I440r: That answer isn't really satisfactory to me, sorry. I could do the same with all-immediate implementation (and have). 18:15:15 we compile each OPTION inside the case statement but compile the vectors to a separate buffer 18:15:53 kc5 err im sure you could but this is still a valid technique 18:16:00 the code is very elegant (imho) 18:16:03 I'm not saying it ISN'T. 18:16:10 I'm just confused by the implementation. That's all. 18:16:13 your immediate vocab wouldnt allow this technique 18:16:22 Well, like I said, yes it would. 18:16:23 was my point - NOT that thats a big issue 18:16:33 You just compile ;case in the Forth vocabulary and not in the macro vocabulary. 18:16:45 kc5 heres the rub :) 18:17:02 eventually im going to make the ENTIRE compiler vocabularty transient 18:17:17 i.e. wehn you turnkey ALL of the code defined in the compiler vocabulary will disappear 18:17:17 I don't understand what "vocabulary transient" means. 18:17:19 its deadwood 18:17:42 in a turnkey ALL creating words and the words that support creation are deadwood 18:17:53 tyurnkey in isforth will eventually discard the whole lot 18:18:04 ;case would not be discarded with your method 18:18:08 I440r, what if the turnkey app uses EVALUATE 18:18:21 the user will also have the ability to mark ANY user vocabs as transient 18:18:31 they will be reta9ined by fsave but discarded by turnkey 18:18:48 but i cant implement this till i have metacompiling done 18:18:55 Ahh, see, while my Forth can create stand-alone executables, it is not its primary intention. 18:18:56 which i cant do till i have an assembler 18:18:59 i.e. never 18:19:16 kc5 k 18:19:26 My Forth's goal is to ultimately subsume the business of the operating system itself. Ergo, I have little need to discard the occasional defining word. 18:19:48 I440r, why never? 18:20:04 heh the compiler vocabulary is a fair chunk of code in isforth heh 18:20:15 Also, when I create my stand-alone file, *ALL* word headers are discarded. Even my "dictionary search-based dispatch" design pattern won't work. 18:20:18 (which does suck) 18:20:19 slava because i doubt i will accept anything anyone else produces 18:20:43 and in 2 years ive not been able to organize a plan for writing it myself 18:20:52 in factor, i can make a turnkey image very easily 18:20:54 I'll eventually find a way to circumvent that, but since this isn't even 1.0.0 yet, I'm not too worried. 18:21:00 kc5tja, its quite a neat trick 18:21:10 kc5tja, null the vocabularies variable, and call the garbage collector 18:21:21 --- join: saon (Ecoder@c-24-129-95-254.se.client2.attbi.com) joined #forth 18:21:22 the code for fsave and the code for turnkey are 99.99999999999% common 18:21:24 kc5tja, any word definitions not referenced from the bootstrap word will be discarded 18:21:42 kc5tja, since words not used from the boot word are only referenced from the vocabularies hash 18:21:58 Although I'm curious: how do you ensure that ;case is not in the finished executable? Sure you eliminate the word header, but the *code*? Each vocabulary has a separate nnKB chunk of memory associated where definitions in that vocabulary are placed? 18:22:01 kc5tja, of course, you do this AFTER setting the bootstrap word to the main word in your app 18:22:14 slava: I would hope so. :) 18:22:15 kc5 thats the plan 18:22:36 but i cannot implement different CODE spaces per voc till i can metacompile 18:22:59 I440r: I have considered, for the purposes of creating Internet servers with my Forth environment, considered the possibility of having a hierarchy VOCABULARY structure, where each vocabulary has split MACRO and FORTH sub-vocabularies. 18:23:24 kc5 sub vocabs is another thing i had thought aobut 18:23:25 Each VOCABULARY would be a fixed memory partition that you can define at the time the vocabulary is created. 18:23:36 that would be freekin very usefull in a target compiler for an embedded target 18:24:00 But now that I'm concentrating on FTS/Forth for L4, I'm wondering how useful the technique is, since L4 allows one to spawn other processes in separate address spaces) 18:24:00 you could have one host vocabulary which contains a forth, compiler, blah voc 18:24:09 and a target voc containing forth, compiler and blah :) 18:26:07 isforth is about 1/3 complete as is 18:26:13 and ive been stuck at that point for over 2 years 18:26:16 i got there in 3 months 18:26:19 I440r, write your assembler so i can copy your design 18:26:22 Well, the ONLY vocabulary would contain FORTH, which itself would contain the interpreter and compiler subvocabularies. 18:26:43 slava i told you. i CANT 18:26:53 I440r, what is the main problem 18:26:59 FTS/Forth isn't even close to being done, and I've been stuck in "cross-compiler-only" state for the better part of a year. :( 18:27:05 not in two years of trying have i been able to figur out how to write an x86 assembler with the features I DEMAND 18:27:24 slava the instruction encoding is a mindfuck 18:27:45 what features exactly? 18:28:03 ALL of it 18:28:16 nasm in forth? 18:28:45 When I write my assembler, I've decided to write it as if I was coding for a RISC processor. One opcode layout in memory for each and every Forth-recognized instruction. 18:28:49 the only document that makes any sense at all is the one in tcn's page that gives all opcodes up to 386 in OCTAL 18:29:04 "up to 386" fall s short by about 90% of what i want 18:29:11 i want all current processors supported 18:29:15 ALL opcodes tehrein 18:29:21 kc5tja, i tried that approach its not really working out 18:29:24 kc5tja, there's duplication 18:29:32 including fpu, 3dnwo, sse, sse2 18:29:35 I440r, yeah 18:29:36 slava: Such as? 18:29:55 kc5tja, well you mean instead of general form of MOV, have MOV R > R, MOV I > R, MOV M > R etc? 18:30:23 get me a document detailing ALL opcodes as per the one tcn has (i.e. in OCTAL not fucking hex which is totally moronic) 18:30:37 why does it matter if its hex or octal? 18:30:37 which will never happen 18:30:39 and intel has docs 18:30:41 More accurately, trr (transfer register to register), lri (load register immediate), lrm (load register from memory), srm (store register to memory), etc. 18:30:42 therefore my assembler will never hapopoen 18:30:49 intels doc's are fucking stupid 18:30:50 I440r, why octal 18:30:50 period 18:30:54 what's wrong with intel's docs? 18:31:01 slava if you read the document you would KNOW why 18:31:20 i figured everthing i need from intel docs, and objdump's and gdb's disassembler 18:31:20 the ONLY way to represent x86 opcodes that makes ANY sense what so ever is in octal 18:31:55 The predominance of 3-bit fields, aligned on 3-bit boundaries, makes that the case, indeed. 18:32:00 http://tom.bespin.org/src/opc386.txt 18:32:04 read that 18:32:13 anything else is just utter stupidity 18:32:30 intels documentatuion does nothing but further obfuscated an already obfuscated issue 18:32:34 deliberatly so 18:32:42 because the opcodes were DESIGNED in octal 18:33:19 its not a big deal, you're clever and should be able to figure it out 18:34:10 thats 2903865429387465923678548972364578923465 opcodes to "figure out" 18:34:21 you can start with a small set 18:34:24 and add new ones as you need them 18:34:34 slava and end up with a kluge assembler 18:34:49 it might take some refactorings and cleanups to become optimal sure 18:34:56 full of afterthoughts and badly implemented crap due to NOT designing it from the ground up 18:34:57 no thanx 18:35:13 its just an assembler 18:35:44 slava ive written assemblers before 18:35:49 and disassemblers 18:36:00 the only one published is the 8051 code on my site 18:36:23 the 8051 assembler was done as a profe of concept for how i want the x86 assembler to work 18:36:23 I440r, x86 is a kludge so an assembler for it is a kludge too 18:36:41 :( 18:36:49 slava im NOT going to rewrite the assembler 40000 times till i get it right 18:36:58 i've written most of an x86 assembler 18:37:10 I440r, why not? :) sometimes thats the only approach that works 18:37:10 ill get the DESIGN right from day 1 (maybe with MINOR mods) 18:37:15 it's awaiting a very boring, torrential evening 18:37:16 and then get the CODE right 18:37:32 wossname, link? 18:37:33 slava: Starting small and evolving it is my plan. 18:37:40 wossname, supporting 3dnow? fpu? mmx? sse? sse2 ? 18:37:55 heh, it was just integer 386 instructions :) 18:37:57 However, the document that I440r posted is a NICE summary of opcodes. 18:38:03 well, 486, to be sure. but still 18:38:09 I440r, the simd instructions are othogonal to the core and can be added later 18:38:14 http://tom.bespin.org/src/opcodes.html 18:38:16 that shows it better 18:38:18 I440r, there is no reason to design the assembler with them in might immediately 18:38:40 slava, it is not hosted anywhere, and it is a kludge, as simple as it is. but it contains a table of all the opcodes; i can email it if you like 18:38:58 it is c, you might want to know that first ;o 18:39:03 no thanx 18:39:05 wossname, oh then its fine 18:39:11 wossname, i was looking for a simple forth x86 assembler 18:39:20 a c assembler is of no use to me. i have a dzn of them right here 18:39:43 anyway. like i said 18:39:45 never 18:41:57 I440r, gforth has a prefix assembler 18:42:06 --- quit: saon ("Leaving") 18:42:11 err have you LOOKED at it ? 18:42:22 yes its huge 18:42:31 im sorry but if i were to use that i would have to BUTCHER my exixting sources 18:42:39 but it might give inspiration 18:42:42 it supports fpu and mmx 18:42:51 i know 18:43:01 i have permission to use it in isforth if i like 18:43:33 problem is i most definatly DONT like it and to convert it to what i do like is identical to "write it from scratch" 18:43:59 i also have permission to use the win32forth assembler 18:44:09 but i CANNOT use that one, not in a MILLION years 18:44:13 I440r: These tables are nice. They're hard to read though. They certainly don't replace the Intel docs. But they do help provide a big picture overview of the instruction set. 18:44:14 because to do so would taint my license 18:44:27 I440r, then make a postfix assembler 18:44:43 ikc5 yea - its an eye opener isnt it 18:44:59 slava if i can write my assembler it will be EITHER 18:45:07 slava have you looked at my 8051 assembler ? 18:45:20 I440r, no, got a link? 18:45:23 every mneumonic starts with a call to asm> 18:45:41 : asm: lastop @ r> lastop ! >r ..... ; 18:45:48 err asm> even 18:45:54 ok 18:45:57 thats basically what happens 18:46:00 so if you have... 18:46:05 mov eax, 1 18:46:08 push ebx 18:46:22 and you are compiling at the "push ebx" 18:46:46 the mneumonic word for PUSH calls asm> which swaps its return address with the return address of the PREVIOUS mneumonic 18:46:59 this means that the mov did NOT execute yet! 18:47:02 backx0rs 18:47:22 so by the time mov DOES execute eax, has already been interpreted and the 1 is on the stack 18:47:37 if asm> were a deferred word i could defer it to NOOP and you would then be able to do 18:47:41 1 eax, mov 18:48:01 isforth.clss.net and follow link to 8051 18:48:07 ]theres my disassembler and assembler in there 18:48:30 ok cool 18:48:34 is 8051 intel? 18:48:38 yes 18:48:45 I440r: Hmm...I don't think it should be too hard to provide similar tables for the two-byte opcodes either. Personally. But anyway, that'll be a project for another time. Definitely bookmarking these sites. 18:48:52 * t3h_ch1k3n codes NEXT 18:48:52 but its instruction encodings are VERY simple 18:49:04 in fact its got an almost totally orthagonal instruciton set 18:49:29 I440r: the vocab at the top of the search list is compiled to, correct? 18:49:54 oh and yea. kc5 wrote an assembler a while back that i also have the source for somewhere 18:49:56 I440r, it looks nice 18:50:10 THAT assembler is bass ackwards but its still infinitly better than the one in gforth 18:50:26 hehe. 18:50:31 slava an 8051 assembler is not that big a deal 18:50:40 backassward assemblers are easy to make though :) 18:50:45 it was easy. i had the basic outligh in my head after about an hour 18:51:07 t3h_ch1k3n, no easier than mine - MINE works both ways 18:51:31 i just cant get the "whole picture" in my head 18:51:36 i could with the 8051 18:51:59 i even had the "whole terminfo picture" in my head after an hour or 2 inside man 5 terminfo 18:52:15 and it only took me 3 or 4 hours to write my terminfo parser 18:52:26 (there were still bugs in it due to misconceptions however :) 18:52:34 Dude, if I ever do get Dolphin done and usable enough, I'm going to implement its online help system as a text-navicable Wiki system. 18:52:41 specifically related to drawing the alt charset 18:52:42 So you can make annotations to the system if you want 18:53:17 kc5 i have notes out the wazoo heh 18:53:26 i can focus on a detail or two 18:53:32 but i cannot grasp the whole picture 18:53:47 ive been trying for two years with NO success what so ever :( 18:54:05 coding isforth itself took hardly any effort at all 18:54:16 the asembler is orders of magnitude more difficult 18:54:28 and its NOT because of what i want it to look/feel like 18:54:38 i couldnt write a bass ackward forth assembler either 18:54:58 because if i could all i would have to do is inject a single call to asm> inside every mneumonic 18:55:17 and maybe futz arround in a few other places too 18:55:50 opcodes could read from the input stream? 18:55:50 what i need is for someone to read my mind on ALL the things i want and to code it for me 18:55:53 :/ 18:56:42 err no. avoid parsing if youi can 18:56:48 dont SHUN it 18:56:51 just avoid 18:57:25 if you made the mneumonics parsing words you wouldnt be able to reverse the assembler :P 18:57:42 hmm 18:57:48 or specify operands programically 18:58:31 I'm makging a postfix assembler right now 18:58:44 i have this part already thought out 18:58:59 its just the freekin opcode encodings thats throwing me for 6 18:59:04 and how to organize them 19:00:18 I440r: a common one is adding the register to the byte 19:00:27 I440r: so I added a CREATE DOES> word for that 19:01:05 t3h_ch1k3n, dont code in upper case 19:01:09 its shouting 19:01:22 lower case is easier to read 19:01:31 mixed case is an abomination 19:01:41 aRe yOu sErIoUs? 19:01:48 Yes! 19:01:57 vERy 19:03:39 brb 19:06:44 i dont code in upper case 19:06:53 i code in lower or mixed, depending 19:07:26 --- quit: Robert ("Men vägen, är den mödan värd?") 19:13:16 well mixed is ok here and there 19:13:34 there are no hard fast rules 19:13:39 just hard fast rules of thumb :) 19:13:39 --- quit: wossname (Connection reset by peer) 19:13:48 i use upper case for asm macros 19:13:56 slava BLEH! 19:14:01 ooogerlie 19:14:09 so if i see FOO in a word def, i know it assembles code that does foo 19:14:12 and doesn't actually do foo 19:14:22 I440r, upper case grows chest hairs 19:14:34 slava LIAR! 19:14:36 lower case does 19:14:37 i know 19:14:39 i have one! 19:14:49 * I440r tugs on it 19:14:52 OUCH! 19:14:53 lol 19:14:53 see! 19:15:54 : mod/rm ( m r rm - b ) swap 3 << or swap 6 << or ; 19:16:18 lol 19:16:23 i have this 19:16:24 : MOD-R/M ( r/m reg/opcode mod -- ) 19:16:24 #! MOD-R/M is MOD REG/OPCODE R/M 19:16:24 6 shift swap 3 shift bitor bitor compile-byte ; 19:16:28 6 << -rot swap 3 << or or 19:16:50 slava does shift do a left or right shift 19:16:58 << and >> are better :P 19:17:03 ans uses lshift and rshift 19:17:13 i prefer shl and shr ;) 19:17:14 I440r, left 19:17:19 I440r, you call it with negative arg to do right ;) 19:17:30 which to me is identical to calling it shiftdataleftbysomeammount and shiftdatarightbysomeammount 19:17:31 bleh 19:17:56 for a blind person 'shift' is easier to read than << (less than less than) 19:17:57 i would call the negative one the left shift 19:18:03 why? 19:18:13 in what direction do you read 19:18:14 1 X shift == 2^X 19:18:19 RIGHT is the posative direction 19:18:59 i dont look at the result, i look at the operation :) 19:23:19 --- join: wossname (~wossname@rn-v1w5a06.uwaterloo.ca) joined #forth 19:29:32 Programmers are busy writing the next best idiot-proof software. The universe, in the meantime, is busy make the best idiot. The universe is winning. 19:29:32 The Linux Journal 19:32:40 --- quit: tgunr (Read error: 232 (Connection reset by peer)) 19:35:48 you know who i would LOVE to see in here ? 19:35:54 henry laxen and mike perry 20:11:00 heh i just invited mike perry in here and asked if he could also locate henry laxen! 20:12:08 wtf is mike perry 20:12:40 henry laxen and mike perry are the authors of the F83 compiler - the first compiler to conform to the 83 standard 20:12:45 they wrote 3 versions of it 20:12:49 fossils 20:12:51 8086, 8088 and 68k 20:13:00 as is chuck moore 20:13:03 will they tell us stories about punch cards? 20:13:17 maybe. if you ask them nicely 20:13:46 3 years after f83 was released someone discovered a bug in its multi tasker 20:13:58 the fix was to modify the interrupt used to switch tasks or something 20:14:03 simple as that 20:14:14 instead of doing int 0x80 do some other interrupt 20:14:23 NO other bug was found to my knowledge 20:14:26 YOU do that 20:14:38 fossile == read coder 20:14:55 F83 does nothing 20:15:02 people who call themselves coders today are 99% moron in comparison (myself includded) 20:15:08 says you 20:15:21 you're basically saying nobody codes small programs anymore and that makes them a moron? 20:15:48 ok im goig to bed because this arguement makes absolutely NO fucking sense what so ever 20:16:14 these are two of the founding fathers of the forth language and i hold them in VERY high regard 20:16:21 you go ahead and belittle them all you want 20:16:35 i'm not belittling them 20:16:46 i just don't see the point of worshipping them 20:16:49 or chuck 20:16:57 you can't be stuck in the past 20:17:07 who cares about chuck and his 100 byte operating systems 20:17:35 :o 20:20:05 I440r: Actually, I *have* done that. None of my multitasking engines have had bugs in them. 20:33:40 --- join: OrngeTide (orange@rm-f.net) joined #forth 20:58:33 --- join: d00p (~hefner@pool-141-157-13-173.balt.east.verizon.net) joined #forth 21:12:40 hi 21:13:46 dup 21:14:09 . 21:28:22 haha 21:28:29 i just had to kill it 21:28:48 i guess i did one "previous" too many 21:28:58 and all of a sudden, nothing worked ;) 21:29:05 I440r: ctrl+c should quit, not reset. 21:29:15 I440r: or at least crtr+d should quit. 21:29:21 I440r: or ctrl+z suspend 21:35:39 dammit, its not assembling right :/ 22:16:00 w00tah! 22:26:22 --- join: Serg_penguin (~z@212.34.52.140) joined #forth 22:28:59 kc5tja: hrm? 22:35:10 never mind 22:42:30 --- quit: Herkamire ("bed") 23:00:05 --- quit: Sonarman ("leaving") 23:00:09 --- quit: wossname (Read error: 110 (Connection timed out)) 23:00:13 --- quit: d00p ("drop") 23:13:06 WOOHOO!! 23:13:10 Real cause for cheers here! 23:13:15 * kc5tja just had a power outage here at work! 23:13:46 What happened was a circuit breaker threw out because a janitor started up a vacuum cleaner in one of our offices, and it took out the NOC. :) 23:13:55 (no, it did NOT take out any client servers) 23:14:21 So we were without phones, lights, or *gasp!* Internet for about two minutes while we fumbled about looking for the breaker. :) 23:18:34 --- join: colorg (r@core-dc-2-13.dynamic-dialup.coretel.net) joined #forth 23:18:52 OrngeTide! Thanks for the pointer to HERE 23:27:16 re colorg 23:27:29 Just sitting here at work, administering web servers. :) 23:33:50 why does eforth use jge for Forth "<"? That checks the overflow flag. Who cares? 23:34:34 and I have to hand-roll jge in my assembler. 23:37:21 which doth pisseth me offeth 23:40:41 jge? Jump if greater than or equal? Probably because < is signed. 23:40:46 U< ought to use jae. 23:41:10 thanks. Now let me stare at that for a while. 23:42:52 So jge works as a signed <. Interesting. 23:43:42 I probably have that wrong in some things. 23:54:09 WAIT A MINUTE, sign matters? 23:54:53 --- join: proteusguy (~proteusgu@203.148.241.62) joined #forth 23:59:59 --- log: ended forth/04.10.04