00:00:00 --- log: started forth/05.07.26 00:05:21 --- join: Raystm2_ (~vircuser@adsl-68-93-114-134.dsl.rcsntx.swbell.net) joined #forth 00:06:11 --- quit: Raystm2 (Read error: 104 (Connection reset by peer)) 00:06:32 --- nick: Raystm2_ -> Raystm2 00:28:01 hey - who here knows where the term big endian/little endian comes from ? 00:29:25 From Jargon File (4.3.1, 29 Jun 2001) [jargon]: 00:29:25 big-endian adj. [common; From Swift's "Gulliver's Travels" via the 00:29:25 famous paper "On Holy Wars and a Plea for Peace" by Danny Cohen, USC/ISI 00:29:42 yea 00:29:52 but why is it big/little endian ? 00:30:07 yes - from gullivers travels 00:30:39 the Lilliputians had a debate about which end of a hard boild egg should be opened first 00:30:40 lol 00:30:46 has to do with byte order--doesn't it. I mean IBM does it backwards right? 00:31:17 the arguement about byte ordering is on the same scale as the arguement about hard boiled eggs 00:31:40 its just a little Six and Two threes. 00:31:40 I have to assume so, and tend to agree. 00:32:10 anyway, that that popped into my head because arm is bi-endian 00:32:12 6 of one \ half a gallon of another 00:32:27 oh it goes both ways? 00:32:36 and im writing an arm assembler (been as nobody else ever wrote one worth a damn) 00:32:39 ya 00:32:44 ppc is also bi-endian 00:32:47 hmm 00:33:27 The Lilliputians, being very small, had correspondingly small 00:33:27 political problems. The Big-Endian and Little-Endian parties 00:33:27 debated over whether soft-boiled eggs should be opened at the 00:33:27 big end or the little end. 00:33:50 :) 00:34:15 (foldoc for "endian") 00:34:29 anybody know how I do key polling in an environment without an interupt table, using memory-mapped I/O and what do I have to have set up for that to work? 00:34:41 in linux ? 00:34:44 use a pollfd 00:34:49 colorforth :) 00:34:54 lol 00:35:39 i'm trying to interupt a loop in my ChuckBot program, so I don't have to wait for the execution to finish. 00:36:31 I need a keyboard loop interupt using machine coded macros in colorforth with out an interupt table. Am I nieve? 00:37:38 can I poll the keyboard every go around before executing the next iteration of the running loop by making polling part of the loop? 00:38:19 you can try - i dont know cf at all 00:38:31 what does it look like in asm? 00:38:34 any idea 00:38:41 * Raystm2 not a real programmer. 00:39:20 Raystm2: get someone to implement "key?" 00:39:22 if I knew all that needed to be done in asm, I could prob'ly compile a listing for the op codes and colorforth them 00:39:30 key? ack 00:40:00 * Raystm2 googles key? + forth or asm 00:40:09 key? simply returns true/false for whether there's been a key pressed, that is if KEY will return a char (and not block) 00:40:37 thanks JasonWoof :) 00:41:16 if colorforth doesn't have that or something similar, it should be added 00:41:48 absolutely, 00:42:55 know where I can see an example? 00:45:50 no 00:45:57 I know diddly about x86 00:46:05 --- quit: JasonWoof ("off to bed") 00:46:20 * Raystm2 looking how gforth does it then will check win32forth 02:24:34 --- quit: Klaw` (Read error: 104 (Connection reset by peer)) 04:17:09 --- join: madgarden_ (~madgarden@Toronto-HSE-ppp3712408.sympatico.ca) joined #forth 04:34:48 --- quit: madwork (Read error: 110 (Connection timed out)) 04:35:09 --- quit: madgarden (Read error: 110 (Connection timed out)) 05:11:14 --- nick: madgarden_ -> madgarden 05:16:12 --- nick: Raystm2 -> tiff 05:17:27 --- nick: tiff -> nanstm 05:30:25 --- quit: virsys (Ping timeout: 14400 seconds) 05:46:09 --- join: tkb (~tkb@63.163.164.6) joined #forth 06:03:56 --- quit: I440r (Read error: 110 (Connection timed out)) 06:11:54 --- join: madwork (~madgarden@derby.metrics.com) joined #forth 06:33:17 --- join: PoppaVic (~pete@0-1pool46-210.nas30.chicago4.il.us.da.qwest.net) joined #forth 06:33:38 G'day 06:57:09 --- join: danniken (CapStone@adsl-69-155-122-63.dsl.ltrkar.swbell.net) joined #forth 06:58:49 away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away away 06:58:57 oops 06:59:00 --- quit: danniken (Client Quit) 06:59:19 * PoppaVic considers "boot to the head" 07:03:49 --- join: sproingie (foobar@64-121-15-14.c3-0.sfrn-ubr8.sfrn.ca.cable.rcn.com) joined #forth 07:04:05 lo, sproingie 07:29:48 --- join: JasonWoof (~jason@Herkamire.student.supporter.pdpc) joined #forth 07:29:48 --- mode: ChanServ set +o JasonWoof 07:30:57 lo, herk 07:34:03 hi PoppaVic :) 07:35:09 I've been reading thru the pile oflinker/loader ps that someone aimed me at the other day... And the ##C guys had a nice (useless) debate on asm/assembly/assemblers ;-) 07:37:21 I sorta' wanted to chime in on their debate, but they'd never understand where my head was at ;-) 07:38:13 ok 07:39:08 well, one sec they were really close to "full emulation" and the next they bordered on the idea of forthish asm-voc parsing ;-)It was fun to watch the arguments. 07:40:21 It was quite interesting to watch, initially.. Because, I'd been navel-contemplating the issues for the last week or so. 07:42:33 --- quit: tkb ("Download Gaim: http://gaim.sourceforge.net/") 08:12:07 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 08:12:23 --- quit: cmeme (Remote closed the connection) 08:13:17 --- join: cmeme (~cmeme@216.184.11.2) joined #forth 08:17:32 My song: myspace.com/arkecode :) 08:19:06 when shallI see yer email of notes on the vm? 08:19:36 err 08:19:41 when you send me an email to remind me 08:34:36 Hmm.. THis linker/loader stuff has been sort of interesting. 08:44:11 I'm seriously suprised there is no lib for laying-out an object 08:48:41 an object like c++ objects? 08:48:55 nono 08:49:10 object-files for executables, libs, modules 08:49:22 libbfd 08:49:23 libelf 08:49:35 mach probably has something 08:49:37 I finally find some mach-o clues, but.. (yes, heard of them) 08:50:00 gcc produces mach-o so it probably has it in libbfd actually 08:50:02 sproingie: no, what I meant was a plain old "standard interface". 08:50:22 no standard format, no likely to have a standard interface 08:50:32 seems like laying down the data - even if the content varies - would not be overly difficult. 08:51:13 right, I agree - the likelyhood (sp?) is dim and remote 08:51:17 is what compilers and linkers do 08:51:21 yeppers 08:51:25 some are broken out into libraries better than others 08:51:28 gcc is pretty monolithic 08:51:29 ..and assemblers 08:51:37 msvc is of course completely monolithic 08:51:41 yes, I've noted that over the years 08:52:06 Seems odd, is all.. You'd think someone would have seen the "issue" 08:53:11 depends how granular you want to get about objects 08:53:23 otoh, it ranks up there with codifying ABI's, so - I guess it doesn't really suprise me. 08:53:24 it's largely dependent on the language 08:53:36 only reason so many languages lay out objects in a C compatible format is because they use C 08:53:40 or are trying to be compatible with C 08:53:42 sure 08:53:49 and the system expects them 08:53:58 otherwise there's no format at all. elf header, sections, and beyond that, that's it 08:54:07 yep 08:54:12 you could have the rest of your objects in unlambda with a small interpreter fronting it 08:54:30 yet, elf, mach and others all suffer the same silly balkanization 08:54:34 so there's no standard api because the language is the api 08:54:37 sproingie: indeed 08:54:54 the interface for laying out C objects is C 08:54:59 for pascal objects it's pascal 08:55:00 etc 08:55:24 do they still support the 'pascal' keyword/op? 08:55:24 i guess there's quite a few that will do java and .net objects, but that's because they're well specified 08:55:43 pascal keyword just hints a C compiler to use pascal calling conventions 08:55:47 right 08:55:58 I've not seen it for a few years, is all 08:56:05 easy to detect those on windows, their symbols are mangled differently 08:56:10 ahh 08:56:39 far as i know, windows is the only one that mixes 'em at all freely 08:56:53 only place you're likely to run into pascal conventions on unix is with pascal 08:56:53 interesting 08:56:58 or maybe hla if you actually use it 08:57:15 but then you have a totally different binary format anyway 08:58:06 C++ is of course an abi nightmare all its own 08:58:25 i'd love to see libbfd and company grown into a general purpose "libabi" 08:58:36 sounds like it's your project :) 08:59:22 it's sorta'-kinda, yeah. Too much for one guy alone, though. 08:59:32 well i gotta get to work 08:59:34 * sproingie waves 08:59:38 you stay well 09:20:20 --- quit: PoppaVic ("Pulls the pin...") 09:21:55 --- join: PoppaVic (~pete@0-1pool47-196.nas30.chicago4.il.us.da.qwest.net) joined #forth 09:31:11 --- quit: KB1FYR (Remote closed the connection) 09:33:20 --- join: KB1FYR (~Alex@d-66-63-85-222.suscom-maine.net) joined #forth 09:52:41 --- quit: KB1FYR () 10:06:16 --- join: alex_joni (alex_joni@84.247.54.19) joined #forth 10:06:30 --- part: alex_joni left #forth 10:11:31 --- join: OrngeTide (~orange@rm-f.net) joined #forth 10:30:07 --- quit: PoppaVic ("Everyone stay well, be back tomorrow") 11:40:26 --- join: tathi (~josh@tathi.bronze.supporter.pdpc) joined #forth 12:36:02 --- join: I440r_ (~foo@rrcs-24-242-160-169.sw.biz.rr.com) joined #forth 12:37:15 I440r_: ppc isn't *really* bi-endian, it just has this half-assed hack. 12:47:02 yea ? 12:47:05 arm is 12:47:27 and the page i read said ppc was too. there are actually quite alot of similarities between arm and ppc 12:54:30 well, on PPC, 32-bit words are ALWAYS stored in big-endian order. 12:54:37 but if the chip is in little-endian mode, 12:54:54 it xors the low 3 bits of the address with a mask that depends on the size of the operand. 12:55:09 so it *looks* like it's little-endian. 12:55:40 so...a little-endian program could run correctly 12:55:57 but this hack is no help for reading little-endian data files, so in practice it's not much use. 12:56:31 (as far as I can see, anyway) 12:57:10 don't know much about arm -- I have a copy of the ARM ARM, but haven't gotten around to reading it carefully. 13:02:33 i dont knolw how to flip endianness with an arm 13:02:48 it might be "take this wire and solder it to this pin here and hold it low" lol 13:02:57 i dont think its software controlable 13:03:11 "If a standard System Control coprocessor is attached to such an ARM implementation, this configuration input can be changed by writing to bit[7] of register 1 of the System Control coprocessor" 13:04:48 but it also says that you switching the endianness won't work for swapping bytes, which seems a bit screwy to me. 13:05:23 sounds like the bi-endian thing is only so you can take the same ARM chip and build either a big-endian or a little-endian computer around it. 13:06:26 so...it is software controllable, but other than setting the processor to match the memory system on startup, there's no point in controlling it. interesting. :) 13:08:40 err...I mean it *could* be software controllable. 13:11:44 lol 13:11:53 switch endianness, read data, switch back 13:11:58 looks straight forward to me :) 13:12:00 except! 13:12:17 tathi: that endian addressing thing is cool :) 13:12:20 the switch back is going to rely on an instruction fetch which is going to be wrong-eneianed 13:12:31 except the architecture reference manual says that word load/stores ARE NOT AFFECTED by the endian switch. 13:12:40 oh 13:12:45 JasonWoof: yeah, isn't it? xor is a cool operation :) 13:12:50 so for byte stores/fetches it xors by 3, and for half stores/fetches it xors by 1 13:12:58 then how can it NOT be useable as a bswap 13:13:04 no, by 2 13:13:08 i dont get how you can switch endianness with an xor 13:13:09 at all 13:13:38 xor a, b xor b, a xor a,b 13:13:44 that will swap a and b 13:13:50 but thats THREE xors not one 13:14:21 I440r_: the trick changes the address for byte load/stores, so that if you were to store each byte in order, instead of doing index 0, then 1, 2, 3, 4, 6 in memory 13:14:47 you'd really be storing to 3,2,1,0,7,6,5,4 13:14:56 ya 13:15:23 brb, getting coffee 13:15:40 ah, ok. The ARM thing *will* swap the bytes. 13:16:01 but...if you store a word, switch endianness (the bytes get swapped), then load again, you'll get the same value. 13:16:06 so you can do: 0 c, 1 c, 2 c, 3 c, here 4- @ and get 0x03020100 13:17:33 wow. 13:17:38 that's wacky. 13:17:51 some of the bytes would actually be after here, but you wouldn't be able to tell :) 13:19:01 heh 13:19:28 I thought it would be a problem for a sec. 13:19:47 hehe 13:19:52 but if it completely changes your view of the memory, it works just fine :) 13:19:58 yeah 13:20:14 basically it allows you to work with big-endian data as though it were little-endian 13:20:19 right 13:20:41 I wonder if it would slow you down on the DRAM-consecutive-access thing? 13:20:51 which is funny, because it seems more likely you'd want the opposite... to be able to deal with little-endian data as though it were big-endian 13:20:58 exactly 13:21:01 probably 13:21:11 well, dunno, caching.. 13:21:12 oh, of course it wouldn't slow you down, it gets loaded into the cache first anyway. 13:21:42 and of course if you were going for speed, you wouldn't be doing one byte at a time, either. 13:22:32 zakly 13:22:56 that consecutive accessing stuff is a bugger 13:23:23 I've been mulling over whether to make structs for data like in C or to make a seperate array for each field 13:24:08 I wouldn't think it would be a significant difference until you get pretty big. 13:24:22 yah 13:24:38 well, all speed stuff only matters if you do a lot of stuff 13:25:02 And currently all your stuff probably fits in L2 cache at least. 13:25:05 seems most of what computers do is move data around and look through it 13:25:06 (though maybe not L1) 13:25:12 yeah 13:25:16 so I figured it would be good to hav efficient ways of doing those 13:25:32 my current 32byte dictionary entries fit the cache lines perfectly 13:25:56 if you want to access a bunch of fields, but if you say want to look through all the CFA fields, or worse a 1 byte field in each record, that's hell on the cache 13:26:16 * I440r_ is writing an assembler for arm. there are no decent assemblers for arm 13:26:28 gnu assembler is totally fucked in the head for doing real coding with 13:26:29 if you do 13:26:31 x = 1 13:26:34 .word x 13:26:37 x = 2 13:26:40 .word x 13:26:42 x = 3 13:26:46 .word x 13:26:57 all instances of .word x will have the last value of x assembled into them 13:27:00 yup. 13:27:06 it's almost as bad as make 13:27:07 thats totally fucking moronic 13:27:12 but!!!!!!!!!!!! 13:27:28 i found an assembler that has one thing that makes it THE SINGLE most useless assembler i have ever seen 13:27:31 and thats not gas :)O 13:27:37 thats teh green hills arm assembler 13:27:43 :) 13:28:04 if you have a main file include other files when you generate a listing file ONLY the topmost file has a meaningfull list generated for it 13:28:10 all other files have nothing but .... 13:28:13 offset xxxxxxx 13:28:16 offset xxxxxxx 13:28:19 offset xxxxxxx 13:28:20 offset xxxxxxx 13:28:29 urgh 13:28:32 where xxxxxxx is the object code at the specified offset 13:28:35 right 13:28:43 no associated source line 13:28:56 that's pretty bad. 13:29:05 thats useless 13:29:07 although...I can't remember ever using asm listings for anything. 13:29:23 i use it to check when my assembled forths are linked right 13:29:33 i have macros that create the headers linked to each otehr... 13:29:41 err...you mean assembled right, I assume. 13:29:43 my dos port of isforth has some very neat macros 13:29:55 yah, a86 is sweet 13:29:55 the resultant executable has a fully hasned dictionary 13:30:06 no need to do the fixup in do in isforth there 13:34:34 my recruitor called. he has a possible job for me in california with one month in korea 13:35:03 i registered a86 13:35:12 i didnt release the dos port of isforth tho heh 13:35:18 but teh macros are freekin awesome 13:35:39 my header macro hashes the word name and links it to the correct thread in a vocab :) 13:35:45 couldnt do that with nasm 13:36:08 the way i do it is i have 64 equates per vocabulary 13:36:21 LF0 throu LF63 for teh forth voc for instance 13:36:43 when i create a word header i calculate its hash value and use THAT value as part of teh equate name 13:36:52 e.g. has is 23 13:36:53 i do 13:37:09 dw LF23 ; link pack to previous word in this thread 13:37:10 right 13:37:13 LF23 = $ 13:37:33 and at teh end of assembly i just do dw LF0, LF1, LF2... LF63 13:37:55 could not find a way to evaluate a value and use that as part of a label name in nasm 13:38:12 maybe i should put in a feature request! 13:38:30 how would i contact the maintainers of nasm i wonder 13:38:42 they don't have contact information? 13:39:05 i dont know 13:39:10 im checking their page 13:39:15 the project back at sourceforge, IIRC? 13:39:49 yes 13:40:10 they have a mailing list but i NEVER join those "please spam me out teh wazoo" deals 13:40:15 "is back" even 13:47:04 --- quit: madwork (Read error: 104 (Connection reset by peer)) 13:47:20 --- join: madwork (~madgarden@derby.metrics.com) joined #forth 13:50:02 --- quit: sergacity (Read error: 104 (Connection reset by peer)) 13:50:16 can nasm parse a parameter to a macro one char at a time ? 13:50:34 i.e. for each character in this string do the following.... 13:50:37 i forget 14:04:49 The following usenet groups are archived and cannot be posted to: 14:04:49 "comp.lang.asm" 14:04:49 (Separate multiple groups with commas) 14:35:27 ok the fucking nasm authors are pissing me off 14:35:51 they dont give you ANY fucking way to contact them except by joining their fuckeing "please fucking spame me alot" mailing list 14:35:58 i dont fucking want to join ANY fucking mailing list 14:35:59 FUCK 14:37:25 you don't like being on mailing lists eh? 14:37:35 what ever gives you that idea :) 14:37:37 what about being called dood? do you like being called dood? 14:37:49 dood 14:38:02 hmmm... i can live with it 14:38:03 dood 14:39:30 oh come on... you know you like it ;) 14:39:52 it's OK to admit it 14:39:55 we're all friends here 14:42:42 :) 14:55:38 wait, can't you go to their profile and contact them from there? 14:57:20 i hunted for it but couldnt find any links to emails. someone gave me the link 14:57:28 i hate sf.net 15:01:45 --- join: pilb (~q@ip24-254-47-107.br.br.cox.net) joined #forth 15:02:07 ok, sorry, wasn't sure if that worked properly. 15:02:34 on the nasm project page, on the right hand side it says "Developer Info:" 15:02:43 Project Admins: 15:02:45 Developers: 12 15:03:01 i must have been looking at a different page 15:03:12 cuz i never saw that link 15:03:16 http://sourceforge.net/projects/nasm/ 15:03:51 i went to nasm.sf.net 15:04:08 yes...and on their home page, there's a link to the sf _project_ page. 15:04:53 anyway, if you go there and hit the View Members link... 15:05:07 erm then the only way to use THOSE email addresses to email them is by registering with sf 15:05:14 those are their sf email accounts 15:05:20 yeah, it's just an alias. 15:05:26 i know. 15:05:29 actually goes to whatever e-mail address they have on their account. 15:05:39 and you don't have to be registered, you can just send mail to the address. 15:05:45 if bill gates offered me his entire personal fortune to do it i STILL wouldent register with sf 15:05:52 so don't then. 15:05:54 not last i knew 15:05:58 you're so paranoid. 15:06:10 its not paranoia 15:06:11 I just tried it. 15:06:26 you don't get spam by being on a mail list hosted by sf.net 15:06:28 well they changed their polacy 15:06:59 i have direct email addresses now anyway 16:30:47 --- join: AlexF (~Alex@d-66-63-85-222.suscom-maine.net) joined #forth 16:43:28 --- quit: tathi ("leaving") 18:47:00 --- join: snoopy_16 (snoopy_161@dsl-084-058-142-173.arcor-ip.net) joined #forth 18:52:14 --- quit: Snoopy42 (Nick collision from services.) 18:52:18 --- nick: snoopy_16 -> Snoopy42 20:56:13 --- quit: cmeme (No route to host) 21:22:29 --- quit: sproingie ("Konversation terminated!") 23:12:35 --- quit: saon (Read error: 60 (Operation timed out)) 23:20:19 --- quit: saon|smgl (Read error: 110 (Connection timed out)) 23:21:07 --- quit: madwork (Read error: 60 (Operation timed out)) 23:59:59 --- log: ended forth/05.07.26