00:00:00 --- log: started osdev/01.11.25 00:23:52 ya 00:24:06 oh crap 00:24:21 i rented tomb raider and havent watched it yet 00:24:26 and its due back tomorrow 00:26:36 heh 00:26:42 our tomb raider is due back tommorow 00:26:45 wasn't that good 00:31:23 --- quit: ink ("bbialb") 00:33:00 heh 00:33:16 ? 00:33:20 if i cant find a coax cable i will make mpegs of tomb raider and grinch 00:33:39 then i can watch em when i feel like it 00:38:42 heh 00:42:47 --- join: ink (~ink@user-vcauvnk.dsl.mindspring.com) joined #osdev 00:47:49 re in 00:47:49 k 00:53:00 rere 00:53:09 g'day me droogie 00:53:31 heh 00:53:44 (inline-method #:? (self:array index:uint) "return reference to array element" 00:53:44 (find-unknown-type {return array..type}) 00:53:44 {return (+ array..base (* array..elt_size index))} 00:53:44 ) 00:53:51 that look about right? 00:56:55 heh 00:57:12 yeah 00:58:45 ugh 00:59:08 how should i do the multiple index one 01:02:31 dunno...... 01:02:40 its early but.. night 01:02:44 i have these properties to help: array..base, array..elt_size, index..nr_elts 01:02:51 grr 01:03:08 heh? 01:09:26 night 01:24:35 --- quit: alterego ("BitchX: it keeps going and going and going and going and...") 04:19:46 --- topic: set to 'Operating System DEVelopment || osdev info: qzx.com/lib || www.osdev.org' by ChanServ 05:01:00 --- nick: nun -> gremlin 05:01:26 --- nick: gremlin -> nun 05:20:45 --- quit: gab (Read error: 113 (No route to host)) 05:25:09 --- join: gab (~prfalken@gaia.chx-labs.org) joined #osdev 09:27:04 --- join: Aardappel (wvo96r@213.75.159.179) joined #osdev 09:53:53 --- quit: gab (Read error: 104 (Connection reset by peer)) 09:54:03 --- join: gab (~prfalken@gaia.chx-labs.org) joined #osdev 09:57:27 --- quit: Aardappel (Read error: 54 (Connection reset by peer)) 09:58:22 --- quit: ink (Ping timeout: 181 seconds) 10:34:54 --- join: nyef (nyef@1Cust3.tnt36.bos2.da.uu.net) joined #osdev 10:34:58 Hello all. 11:05:49 --- join: tcn (tcn@65.170.209.53) joined #osdev 11:06:16 re 11:06:36 Retro doesn't have a lot of words? 11:07:19 --- join: alterego (~alterego@adsl-64-170-193-114.dsl.snfc21.pacbell.net) joined #osdev 11:10:05 nope, nothing like gforth or fpc 11:11:28 its in a working state tho, right? 11:11:46 enough of a working state where you could extend it in forth or? 11:12:57 yeah, just barely.. i haven't posted that version yet 11:13:33 trying to get it so I can %include some forth code to compile at boot time 11:13:57 ah 11:14:22 and you've been threw colorforth source.. 11:14:31 moore did not include everything did he? 11:14:39 he did 11:14:45 it's convoluted as hell :) 11:15:04 but, I downloaded MASM and recompiled it for 800x600.. it works that way 11:15:30 ahhh how many words does he have? 11:16:18 100-200 i think 11:16:46 where is the dictionary at? 11:17:11 or is it encoded or something 11:17:13 search for 'macro:' 11:18:12 it's huffman encoded.. he manually encoded the kernel words with a bunch of adds & shifts :) 11:18:29 heh 11:18:50 1 dword per entry, anything over 32 bits left off :) 11:18:58 heh 11:19:01 at least he put a small 11:19:03 ; 11:19:04 FIND is a rep scasd :) 11:19:07 buy each one 11:19:12 eghhh 11:19:50 then further down there's another list of addresses for each word 11:19:52 brb 11:20:20 yeah 11:20:29 bbl myself 11:21:56 --- join: Aardappel (wvo96r@213.75.158.226) joined #osdev 11:22:11 see ya 11:25:46 back actually 11:33:29 brb, more food :) 11:40:10 ok 11:45:03 Is any of retro actually written in forth, or is it all ASM? 11:45:30 it's like any other forth 11:45:47 Umm... That says absolutely nothing. 11:45:53 where it's convenient, I just use forth 11:46:02 Ah, okay... 11:46:36 kernel is asm, compiles forth code at startup.. could save it back out to disk 11:50:04 My system is about 35k of ASM source, a lot of which is hand-compiled forth code... 11:51:31 yeah.. well.. mine's subroutine threaded so it looks like CALL .. CALL .. RET 11:52:21 Mmm... I'd like to convert to subroutine threading at some point... Indirect threading has it's uses, but... 11:52:40 holy shit.. the tunes-lll list had 1 post in 6/01, 1 in 6/00.. 11:52:48 hahahahahha 11:55:16 hola everypeoples 11:58:50 well i've gotta move along.. see ya 11:58:59 Bye. Have fun. 12:01:20 --- part: tcn left #osdev 12:07:18 --- join: ink (~ink@user-vcauvmg.dsl.mindspring.com) joined #osdev 12:30:12 lol 12:30:14 oops 12:30:15 ww 13:11:32 --- join: Ubel (~ubel@62.145.133.49) joined #osdev 13:17:46 --- join: avio (avio@ppp-164-6.30-151.libero.it) joined #osdev 13:18:16 --- part: avio left #osdev 14:08:30 --- quit: torquil ("Reconnecting") 14:08:39 --- join: torquil (~mac@c2s11m1.access.ntelos.net) joined #osdev 14:14:04 --- quit: Ubel (Read error: 104 (Connection reset by peer)) 14:18:06 --- quit: alterego (Ping timeout: 182 seconds) 14:22:48 --- quit: Aardappel ("http://wouter.fov120.com/") 14:34:09 === TOPIC #* You have joined every channel on the server. 14:35:02 hah 14:35:37 damn colorforth is cool 14:36:03 no it isnt 14:36:10 i'd feel bad that i hadn't thought of some of these things myself except that chuck moore has been changing it for long time 14:36:10 heh 14:37:32 Is colorforth still using non-dma disk access? 14:37:57 actually i was looking at the forth.html instruction set 14:38:35 and how it differed from mine 14:39:15 crap 14:39:22 ? 14:40:21 lets say i create an 2d array, then create a reference and point it to one of the subarrays, then i resize the array and it moves 14:40:42 the reference is invalid 14:41:26 heh 14:42:15 i could make it so arrays cant be resized, which would kinda suck 14:42:24 but i have the same problem with lists 14:42:36 reference a node in the list and then delete that node 14:42:58 i need smarter references 14:42:58 So refcount the nodes or use a GC or something. 14:43:16 You need references that can beat you at chess, that's what you need. ^_^ 14:43:34 hehe 14:43:38 heh 14:44:16 i am surprised that colorforth has registers?!? 14:44:27 nate: What's suprising about that? 14:44:35 ya but refcounting the node doesnt do anything 14:44:38 well 14:44:54 if i delete it then it should leave the list 14:45:00 shrug 14:45:15 but the reference pointing to might want more than just the node 14:45:22 like the node and nodes after it 14:46:06 bbl 14:46:52 --- join: alterego (~alterego@adsl-64-170-193-114.dsl.snfc21.pacbell.net) joined #osdev 15:21:11 i think indirect pointers will solve my problem 15:23:00 ugh 15:24:08 if a thread grabs the indirect pointer and is then preempted and another thread causes the object to be moved the pointer will become invalid 15:24:16 piss 15:30:39 back 15:30:45 piss? 15:32:21 Isn't that a coffee shop in some episode of Bubblegum Crisis? 15:32:56 (An unfortunately-named coffee shop, I might add...) 15:35:45 heh 15:36:11 no idea, have only seen maybe one-half episode of BC 15:37:04 uhh 15:37:23 ? 15:37:44 so how should i do this 15:38:06 Very carefully? 15:38:12 wisely? 15:38:14 quietly? 15:38:52 i need to find a channel that doesnt have worthless ppl :) 15:39:05 :) 15:39:33 You could try making sure that the object doesn't get moved if you're indirected through it's pointer... 15:39:44 how 15:39:49 maybe 2-way pointer thingy? 15:39:58 (object updates pointer) 15:40:03 the only thing that would work is a semaphore 15:40:23 Well, one solution would be to make sure that your thread doesn't get pre-empted while you're indirected... 15:41:30 air: does it move or copy and then discard? 15:41:41 (mov eax iref) ; indirect pointer 15:41:41 (inc [iref]) 15:41:41 (mov eax [eax+4]) ; object pointer 15:41:41 (add eax slot_offset) 15:41:41 ; access slot 15:41:42 (dec [iref]) 15:42:07 that would work 15:42:12 heh 15:42:43 the resize would block until [iref] =0 15:43:06 hmm 15:43:17 Or if you're at ring 0, you could pushf/cli/access/popf. 15:43:42 uhh 15:43:45 i dont think so 15:44:04 Why not? 15:44:09 too slow 15:44:25 And inc [iref]/dec [iref] isn't? 15:44:39 Oh, right, it's in the cache, forgot... 15:45:54 btw pushf/popf is same as sti 15:45:59 but takes more space 15:46:07 Not if interrupts are disabled on entry. 15:46:33 they wouldnt be 15:46:58 But I didn't know that. 15:47:00 that is 14 clocks 15:47:19 7 for cli and 7 for sti or pushf/popf 15:47:51 i will have to make the resize use cli tho 15:48:08 ugh 15:48:15 that wont work either 15:48:21 Race condition? ^_^ 15:48:27 smp 15:48:37 Ooh. Even better. 15:48:43 heh 15:48:53 Is there any reason you can't do AMP on SMP hardware? 15:50:47 huh 15:51:29 piss 15:53:46 ok locking refs wont work 15:55:53 --- quit: pkx (Read error: 54 (Connection reset by peer)) 15:56:12 --- join: pkx (~pkx@dsl-213-023-043-144.arcor-ip.net) joined #osdev 15:57:46 --- join: CorsairK8 (~CorsairK8@pc-62-30-122-106-cr.blueyonder.co.uk) joined #osdev 15:58:03 --- quit: CorsairK8 (Remote closed the connection) 15:59:06 air: does "mov [esi-4],eax" take more memory/cycles then "mov [esi],eax"? 15:59:11 --- join: CorsairK8 (~CorsairK8@pc-62-30-122-106-cr.blueyonder.co.uk) joined #osdev 15:59:24 no 15:59:29 ok 15:59:47 and mov [esi-4],eax 15:59:56 lea esi,[esi-4] 16:00:04 is faster then 16:00:09 i think mov [esi],eax == mov [esi-0],eax 16:00:15 lea esi,[esi-4] 16:00:18 mov [esi],eax 16:00:24 because of paring right? 16:00:27 pairing 16:00:53 Probably, yeah. 16:01:53 i think the first uses register renaming so they can pair 16:02:12 ok 16:09:00 any more ideas on how to handle references? 16:09:26 Why are you moving objects anyway? 16:10:05 if an array is resized it might need to be moved 16:10:30 if u have two back to back arrays and u resize the first there is no space after it to grow 16:10:57 same thing as realloc() 16:11:22 if one instruction is PU does that mean it can't pair with another PU but it could pair with a PV or a UV? 16:16:28 jesus 16:16:37 if my mom asks me what i'm programming one more time 16:22:28 ugh 16:22:41 i really dont wanna make arrays fixed size 16:23:19 but it might actually force programmers to produce faster code 16:23:46 u wouldnt get some sloppy bastard that resizes a string one byte at a time when filling it with input 16:25:55 --- quit: alterego ("BitchX: to the rescue!") 16:26:10 heh 16:26:11 true 16:27:57 now to solve the list node problem 16:28:19 That's easy. Just don't move them. 16:28:24 im not 16:28:54 if i delete the node the references become invalid 16:29:13 if i refcount each node it might take up too many cycles 16:29:20 not to mention memory 16:29:59 heh 16:30:02 So GC them. 16:30:13 how 16:30:39 There are plenty of documents on writing garbage collectors out there. 16:30:40 u gotta remember that brix is one big program 16:31:22 one big process 16:32:45 ugh why must stupid people that i know find a backdoor by mistake to some redhat machine then don't know shit and get parinoid and try to clear all logs and stuff and ask me for help 16:33:21 hehe 16:33:31 nun: leave nate alone 16:34:06 i guess i will just refcount list nodes 16:34:22 is't nun 16:34:23 "C" 16:34:48 each method will need to count-up when referencing and count-down before dereferencing 16:34:50 ironically he doesn't know C beyond maybe "Hello, World!" 16:35:08 and when a node is removed from a list it will be moved to a global list if its refcount>0 16:35:29 then a system gc can scan the list for 0 refcounts 16:35:57 --- quit: ink (Ping timeout: 181 seconds) 16:36:13 air: can nasm have more then one instruction per line: 16:36:17 s/:/?/ 16:36:46 for example, in TASM (z80 assembler, not borland's) it would be "ld a,4 \ ld bc,5" 16:37:29 i didn't see anything in nasm manual about t 16:37:30 it 16:37:52 It probably can't. 16:37:59 :/ 16:38:28 that would also make simple macros easier 16:38:33 %define 16:38:42 vs %macro .. %endmacro 16:40:09 Heh. Are you trying to build a colorforth-like macro set? 16:42:37 yeah, i was working on my own set, but i decided to play with his since my was getting a bit big :) 16:45:19 hum 16:45:26 why does colorforth use one's complement for "-" 16:45:39 i would have though to subtract 1 from 4 it would have been 16:45:39 Why not? 16:45:44 4 1 - + 16:45:49 but that would produce 2 16:46:25 Oh, right. It's ones complement because he adds negative numbers to subtract. 16:46:31 Or something like that. 16:46:41 wouldn't it have to be two's complement? 16:47:00 one's complement = inverted all bits 16:47:09 Only the negation. - is for something else. 16:47:10 two's = inverted all bits then increments it 16:47:22 hmm 16:47:39 i should prolly read all of this before saying anything tho :) 16:49:10 I'm thinking that I like the pre-compiled source idea, though... 16:49:20 yeah... 16:49:49 It would certainly simplify the amount of code I simply have to have ready at boot time... 16:50:06 yup 16:53:04 I wouldn't be quite so annoyed about it if all the boot-time code didn't have to be in my ASM-file rather than in the blockfile... 16:53:25 heh 16:55:36 actualy some of the stuff is close to what i had 16:58:12 bbl 16:58:57 mmm 16:59:05 making pizz 16:59:05 a 17:00:13 pizza sauce, pepporoni, jalepenos, green onions, dehydrated onions and enchilada sauce 17:00:32 er green peppers not onions 17:00:52 What, no garlic? 17:01:00 damn 17:01:11 that woulda been good and i have some too 17:05:17 --- join: ink|SGI (~ink@user-vcauvmg.dsl.mindspring.com) joined #osdev 17:05:20 rere 17:05:50 arg 17:05:54 bbl 17:05:56 --- part: ink|SGI left #osdev 17:09:08 That was... random... 17:10:35 heh 17:21:58 Hrm... If I remove the IDE driver from the kernel, I can _probably_ remove the I/O primitives... 17:24:54 Ah. I can. 17:25:27 All I have to do is make sure the block source versions are up to date, and I can rig them to compile at startup... 17:26:55 --- join: exo (tas@d-207-5-210-55.s-way.com) joined #osdev 17:36:21 ugh 17:36:50 i have hit a loophole 17:37:27 ah 17:37:50 --- join: geist (~geist@dsl-64-34-186-57.telocity.com) joined #osdev 17:37:59 * geist looks around 17:38:01 i will need to have two interfaces for array # and @ 17:38:31 cuz the interface that takes multiple indices must call the other interface to access the indices 17:39:27 geist: why is yer thread code so bloated? 17:40:34 isnt 10 lines of asm same as 1 line of C 17:41:24 so if brix src is 25k of asm it would be same as 2.5k of C, and newos is 45k of C 18:05:48 oh crap 18:06:17 crush wont work 18:07:24 the interpreter can call compiled methods but most of the inlined-methods contain asm 18:11:12 ah, i can have the interp compile the code and then run it, so its really JIT compiler 18:12:27 --- part: geist left #osdev 18:19:14 --- part: exo left #osdev 18:23:28 --- join: geist (~geist@dsl-64-34-186-57.telocity.com) joined #osdev 18:49:39 --- nick: geist -> geist-out 18:51:47 crap hicups 18:56:48 --- join: alterego (~alterego@adsl-64-170-193-114.dsl.snfc21.pacbell.net) joined #osdev 19:04:41 --- quit: alterego ("[BX] Terminated.") 19:23:30 i just removed most of my toenail 19:23:37 its freaky looking under 20:43:03 --- join: alterego (~alterego@adsl-64-170-193-114.dsl.snfc21.pacbell.net) joined #osdev 20:45:19 --- quit: alterego (Client Quit) 20:50:10 --- quit: nyef ("G'night all") 20:54:02 --- join: alterego (~alterego@adsl-64-170-193-114.dsl.snfc21.pacbell.net) joined #osdev 21:14:42 --- nick: geist-out -> geist 21:41:12 --- quit: alterego ("[BX] I see your BitchX is as big as mine!") 22:35:08 air: heh 23:09:59 --- join: alterego (~alterego@adsl-64-170-193-114.dsl.snfc21.pacbell.net) joined #osdev 23:30:25 --- quit: alterego ("[BX] Tony the Tiger uses BitchX. Its Grrrrrrrrreat!") 23:59:59 --- log: ended osdev/01.11.25