00:00:00 --- log: started forth/04.06.13 00:06:28 http://t3x.dyndns.org/PDP-11/programs/sol-11.html 00:06:46 its an old FORTH OS and Language setup 00:08:13 --- nick: topher|away -> topher 00:08:18 hi topher 00:08:22 topher: do your turn :) 00:08:29 i did 00:09:22 :) 00:13:41 http://www.tpforth.com/ 00:13:50 heres a link for a site that uses Flash 00:14:30 if you can get the Kestrel out the door in quantity, id get some Flash for my site 00:15:52 flash = evil 00:17:32 maybe just a big fat animated gif then 00:17:54 I don't see the relationship between the Kestrel and you getting Flash for your site. :) 00:18:41 kc5tja: got my query? 00:18:47 arke: Yes. 00:18:53 I just haven't responded. I'm coding. 00:19:04 Go ahead and paste, I'll look at it in a bit. 00:19:08 to brag 00:19:16 :^/ 00:19:30 LOOP-HOG: What would you put in the flash animation though? 00:20:00 (please excuse me if I seem like I'm not following: it's way past my bedtime, due to this party, and I'm coding, so I'm not entirely concious(sp?) right now) 00:20:22 --- join: fridge (~fridge@dsl-203-113-231-53.NSW.netspace.net.au) joined #forth 00:20:22 coding and not consious, maybe i'll have another myself :^) 00:20:29 a picture of a Kestral flying, what else 00:20:39 Ahh! 00:32:19 http://science.slashdot.org/article.pl?sid=04/06/12/1845213&mode=thread&tid=134 00:33:31 my parents got a new dog that is quite intelligent 00:33:37 compared to their last dog, at least 00:33:56 labrador x alaskan malamute 00:35:19 we have a golden lab 00:35:19 she's quite the funny one. 00:35:29 she doesn't want to do something new 00:35:31 --- join: poingie (~chatzilla@user-2ivfjeu.dialup.mindspring.com) joined #forth 00:35:34 but if she does it once 00:35:39 she'll do it again, if I ask her to 00:35:49 however, only on that particular item, not another one like it. 00:35:59 slides at a playground for example. 00:36:10 I finally convinced her to go down one of them, 00:36:17 she arrived at the bottom 00:36:21 then we went up again 00:36:28 and I asked her to go agian 00:36:30 and she did without hesitation 00:36:38 but she wouldn't go to the other slide 00:36:42 and she's quite loyal 00:40:15 * poingie puzzles over SDL in win32forth 00:40:35 kc5tja: you said you were using sdl w/ gforth, right? 00:40:47 Yes 00:41:14 how far have you gotten? 00:41:33 i'm still puzzling out how to get it to do anything 00:41:38 poingie: http://www.falvotech.com/screenshot.png 00:41:42 got it to bring up the initial surface, but that's it 00:42:14 tried a simple accessor like SDL_GetClipRect, but can't figure how to pass it the out param for the rect 00:42:18 I'm waiting until tomorrow to see if the darcs maintainers fix the bugs I reported earlier today. 00:42:21 supposed to use allocate for that, right? 00:42:31 You don't have to. 00:42:34 It's just a pointer 00:42:44 right, but i have to allocate it somewhere 00:42:55 CREATE myRect 8 ALLOT 00:43:01 will work just as well. 00:43:15 hm, lessee.. 00:43:15 (since sizeof( SDL_Rect ) == 8) 00:43:34 have the other disadvantage that i'm a forth newbie 8-/ 00:44:42 bah. still getting read violations 00:45:09 I would have to see your code. 00:47:24 i'll b back 00:47:26 --- quit: LOOP-HOG () 00:47:53 SDL_INIT_EVERYTHING call SDL_Init 00:47:55 SDL_SWSURFACE 24 480 640 call SDL_SetVideoMode 00:47:56 create myrec 8 allot 00:47:58 dup myrec call SDL_GetClipRect 00:48:51 shows me the blank window just fine... but the getcliprect call ... doesnt like it 00:50:08 well, set the rectangle to something, then do SDL_RectFill 00:50:10 Are you sure there is something on the stack when 'dup' is invoked? 00:50:11 see if that works 00:50:18 yah, it's the surface 00:50:21 arke: That's not his problem. 00:50:31 ok. 00:50:31 poingie: Are you SURE? :) 00:50:49 If you type .s after the create myrec 8 allot, is a number really on the stack? 00:50:52 yep, i call SDL_GetVideoSurface and it matches 00:50:59 OK. 00:51:04 allot doesnt put anything on the stack 00:51:29 I know, but some Forth systems clear the stack for weird reasons. 00:51:49 I just wanted to make sure it wasn't something that simple. 00:53:35 nope, ran it line by line 00:53:39 made it more explicit too 00:53:44 call SDL_GetVideoSurface cliprect call SDL_GetClipRect 00:54:00 oh jeepers, they're backward 00:54:20 i'm such a dunce 00:54:32 got 'em backward *every time* 00:54:44 Ah, I didn't even realize that until you just mentioned it. 00:54:58 gforth uses "normal" argument ordering (which is actually somewhat annoying at times). 00:55:32 not sure which corresponds to actual c ordering 00:56:42 Yours actually corresponds to normal C ordering. 00:58:05 er 00:58:17 --- join: LOOP-HOG (~jdamisch@63.105.22.119) joined #forth 00:58:22 sure about that? 00:58:36 As it appears in memory, yes. 00:58:50 SDL_SetVideoMode(640, 480, 8, SDL_DOUBLEBUF); 00:58:52 GForth's solution requires all sorts of stack manipulations to get the arguments back in C-defined order. 00:58:56 oh, in memory, of course :P 01:08:51 yay, successfully did fillrect ... no way to sanely set the fillrect size yet but the call works :) 01:09:54 :) 01:10:27 kc5tja: isn't SDL_Rect 16 bytes?: 01:10:35 kc5tja: int x, int y, int w, int h 01:10:40 kc5tja: I count 4*4 = 16 01:11:54 Sorry, yeah. 01:12:02 I told you I'm tired. 01:13:52 :) 01:14:55 73 Systems Listed at memnonio 01:15:31 ugh, this is going to be, ah, fun 01:15:34 Uint8 *p = (Uint8 *)surface->pixels + y * surface->pitch + x * bpp; 01:16:12 know of any sample C stuff that directly messes with the pixels? 01:20:09 ah i see it in the struct now ... fun. i need a visual debugger for this stuff 01:20:39 I hardcode the format in my call to SDL_SetVideoMode, so that I don't have to deal with the above. 01:20:47 It's slower, but it's easier for me to work with. 01:21:11 poingie, are you new to FORTH? 01:21:13 the format to the surface struct? 01:21:32 LOOP-HOG: yep. last time i touched forth was blazin forth on my c64 01:21:38 and that was hello world type stuff 01:21:50 poingie, please visit http://www.memnonio.com/forth.html 01:21:59 if you have links to donate, please give them to me 01:22:07 i just figured i'd rather learn forth than asm. intel asm gave me the screaming fantods 01:22:26 dang, i never seen a fantoid b4 01:22:50 ooh good link 01:22:55 i made it 01:22:58 wow is late... going to bed i think 01:23:02 k 01:23:05 thanks. ill look at it tomorrowish 01:23:06 bookmark it 01:23:20 done 01:23:25 nite 01:23:38 What is a fantod? 01:24:01 not sure. got the phrase from _Infinite Jest_ 01:24:29 anyway i'm knackered. thanks for all the help :) 01:24:34 --- quit: poingie ("Chatzilla 0.9.64a [Mozilla rv:1.6/20040206]") 01:31:25 --- nick: topher -> topher|zZz 01:32:47 poot! 01:32:55 where's my poot! 01:33:08 pootForth! 01:33:19 futhin: http://www.falvotech.com/screenshot.png 01:34:14 showing me my poot? 01:34:24 What? 01:34:38 It's a screenshot from the Kestrel emulator. 01:35:14 oooh you too leet to use bcalc or forth for your mathematical needs? 01:35:19 pff!!! 01:35:25 hah 01:35:57 OK, whatever. 01:36:00 heh 01:36:23 --- join: poingie (~chatzilla@user-2ivfncn.dialup.mindspring.com) joined #forth 01:36:39 too bad that we can't really use computers similarly to the hp48 calc 01:36:49 with all the nifty buttons within easy reach 01:36:53 foo. too much coffee, not tired 01:36:59 keyboard needs to be redesigned 01:37:05 too bad the hp49g didnt really improve on the hp49 01:37:28 on the 48 you mean? 01:37:40 well, im going by the latest model 01:37:50 ? 01:37:56 hp49 = hp49g 01:38:08 yah basically. just faster and with sd cards 01:38:21 i was hoping for a faster 48 with sd cards 01:38:43 --- quit: crc (Read error: 110 (Connection timed out)) 01:38:46 you meant to say "too bad the hp49g didn't really improve on the hp48" 01:39:01 yah 01:39:03 however it did improve it afaik 01:39:08 faster kernel 01:39:10 better editor 01:39:15 different processor 01:39:18 slightly faster cpu 01:39:21 it's still the same kernel afaikl 01:39:29 nope 01:39:33 no? 01:39:38 the guys that made the meta-kernel thing were hired 01:39:41 and that was incorporated 01:39:48 its responsible for a lot of the speed increase 01:39:59 oh yah 01:40:05 sorry, i meant 49g+ 01:40:15 49g has the same cpu as the 48 01:40:24 it does? 01:40:27 yah 01:40:31 saturn at 4mhz 01:40:48 ell the 48 had two different speeds 01:40:50 saturns weren't supposed to run above 2mhz originally, so they didnt dare overclock it any further 01:41:23 hp48 had like two different speeds.. like later ones off the production had faster cpu 01:41:26 like 2mhz vs 3mhz? 01:41:26 the 49g+ has an arm at 60mhz if i recall correctly 01:41:34 yah maybe. not too sure 01:41:42 i think the 48g+ had a 4mhz 01:42:23 i think they improved a lot of the important stuff 01:42:31 like the kernel, the editor, and the interface 01:42:33 going to 49g? 01:42:44 yeah 48 to 49 01:43:03 yah for sure. they also introduced some bugs and fucked up the keyboard 01:43:08 and i understand they use smaller letters 01:43:17 yeah.. 01:43:23 i got a 48g 01:43:28 i could upgrade its memory 01:43:33 i have a 48g and a 49g 01:43:40 then be able to install meta kernel, better editor, etc 01:43:47 yah 01:43:50 and be competive with a 49g 01:44:03 except you pretty much had to make your own memory. it was so expensive 01:44:17 it would be fun it add 8MB to my 48 ;) 01:44:22 the 49g has 2.5mb total memory 01:44:32 and the 49g+ can take sd cards, so a lot 01:44:49 yeah theres been quite a few 48 modification pages 01:44:58 yah 01:44:58 and some of them go up to 4mb and 8mb 01:45:07 i would love to soup mine up, but i cracked the screen 01:45:14 ouch 01:45:30 i still have an intact 49g, but i miss a few things on the 48 01:45:36 it put a cardboard insert into the holder 01:45:38 like the big enter key :) 01:45:42 er 01:45:44 i put a cardboard insert into the holder 01:45:57 almost immediately after reading about cracked screens :P 01:46:02 heh 01:46:18 the 49g comes with a plastic cover 01:46:27 i'd love to adapt like a palm keyboard to the hp 01:46:28 and it fits into the 48g case with it 01:46:36 code up an interface heh 01:46:46 yah. i tried to hook up a normal keyboard to it, but i never finished the code 01:47:10 yeah the plastic cover sucks 01:47:23 at least my screen wont crack 01:47:27 :) 01:47:38 --- quit: topher|zZz (Client Quit) 01:47:44 it's been on lots of trips 01:48:11 too bad they didnt let me design it :) 01:48:38 heh 01:49:06 hp shut down their whole graphics calculator branch afaik 01:49:19 they restarted it a little while ago 01:49:22 ah 01:49:28 the hp49g+ is the newest one they released 01:49:31 well there's prolly demand for forth calcs ;) 01:49:37 basicallly a hp49g running on an ARM 01:49:48 hell i want to get a smaller rpn calc 01:49:55 What I want to know is, what the hell took them so long? 01:49:55 like two line screen 01:50:04 kc5tja: to do what? 01:50:04 heh, yah no shit 01:50:10 making the emulator i guess 01:50:13 futhin: To dump Saturn in favor of a real processor. 01:50:14 switching to arm? 01:50:17 heh 01:50:29 kc5tja, it's just a saturn emulator 01:50:35 still saturn code 01:50:37 how much faster is arm at 60mhz than saturn at 4mhz? 01:50:38 So? 01:50:49 no idea 01:50:55 I suspect it's substantial. 01:50:59 as the calc runs pretty damned decent at 4mhz 01:51:06 yah 01:51:08 Like the 680x0 emulation in the new Palms, which themselves are based on ARMs. 01:51:16 and with the fixed kernel the graphics display was supposed to be a lot faster too 01:51:19 comp.sys.hp48 probably has benchmarks 01:51:57 they are using some arm instructions in the kernel actually 01:52:09 so there is a way to break out of the emulator 01:52:50 would be interesting to have a native system running on it 01:54:47 kc5tja: so is the emulator finished? 01:55:04 kc5tja: is it coded in python? 01:55:14 er 01:55:35 nevermind looks like its done in forth 01:56:06 guess its not done due to the segmentation faults? 01:56:10 whats with the !!!!!!!!!!!!!!! 01:56:20 is that a way of debugging? :P 01:56:43 futhin: It's coded in Forth. 01:56:47 And no, it's not finished. 01:57:09 I'm having some serious issues right now with trying to get another test program to run. 01:57:24 The ! marks are debugging marks, yes. 01:58:50 oh my gawd 01:59:07 I've been ripping my hair out these last 30 minutes 01:59:14 becasue I wrote a fucking 3 instead of 4 01:59:16 AARGH 02:02:37 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 02:35:56 exit 02:35:58 --- quit: LOOP-HOG () 03:37:01 there a word to print out the number on the stack without a following space 03:37:16 do i need to use <# #> and will i find this out if I open up some manuals from google 03:54:36 --- quit: htp123 (Client Quit) 03:55:12 --- quit: madgarden (Read error: 110 (Connection timed out)) 03:57:52 --- quit: poingie (Read error: 110 (Connection timed out)) 04:18:10 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 04:25:27 --- join: crc (crc@0-1pool176-17.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 04:25:59 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 04:36:04 --- join: htp123 (~tehsux@S010600055d233ab7.gv.shawcable.net) joined #forth 04:47:03 exit 04:47:06 --- quit: LOOP-HOG () 05:56:04 --- join: LOOP-HOG (~jdamisch@63.105.22.119) joined #forth 06:19:50 --- quit: crc (Read error: 110 (Connection timed out)) 06:24:40 --- join: fAL (NOT_NAME@195.218.176.92) joined #forth 06:25:57 sp-forth 4-15 is good forth system? 06:32:11 No idea, sorry 06:34:45 russian forth (spf4) is good forth? http://spf.sf.net 06:35:21 I don't speak russian, and I've never used it. 06:36:37 --- part: fAL left #forth 06:37:05 http://www.memnonio.com/forth.html 06:39:58 Is that your site? 06:40:14 Ah, yes it is. 06:41:11 yes 06:41:27 Feel free to add my homepage, http://robert.zizi.org/ if you want, it has some Forth content. Including an i386 Forth system. 06:41:27 i'm about to fall asleep, but if you check the WHATS NEW section 06:41:34 you can see that I've been sweeping 06:41:48 i can't sleep :^) 06:41:49 Ah, OK. 06:42:12 5 more minutues to Replication, and you will see it up there 06:42:25 ...? 06:45:34 sorry 06:45:40 i'm browsing the site a bit 06:45:58 is that i386 system the F system? 06:46:02 Yes. 06:46:10 ok, i'll put that in SYSTEMS 06:46:20 Look at the source, and you'll have to wash your eyes afterwards. 06:47:09 Nice, you have quite a lot of system there. 06:47:13 * Robert bookmarks. 06:47:50 Oh, Mars, is it? 06:48:43 darn it i am tierd and slow, i'll let you know when its ready, thanks. 06:48:58 No problem. :) 07:02:16 alright, see if you can spot the new links 07:02:31 * Robert tries 07:02:35 in GENERAL INFORMATION 07:02:57 in LINKS TO LINKS 07:03:13 in SYSTEMS 07:03:36 in PROJECTS 07:04:10 in HOME PAGES 07:04:26 in HARDWARE 07:04:33 I don't see anything in Projects. 07:05:03 Oh, but I see the Kestrel. :) 07:05:05 in COMPANYS 07:05:18 new in general 07:05:28 i must sleep b4 new ones added, argh 07:05:29 :) 07:05:45 OK, I don't know what's new and what was there before though. 07:05:54 However, it's a very nice page. 07:06:02 Thank You 07:06:29 in the topic for this site are 4 URLS, i'd love to be the 5th 07:07:25 need to sleep, bye 07:07:27 --- quit: LOOP-HOG () 07:07:28 I'm sure that's OK for the others. 07:07:30 Heh. 07:07:46 --- topic: set to 'FORTH programming language. Info: http://forth.bespin.org/resources/introduction ANSI: http://www.taygeta.com/forth/dpans.htm FIG83: http://forth.sourceforge.net/standard/fst83/ || :NOTICE: Kestrel project update! See http://www.falvotech.com/weblog for more details. || http://www.memnonio.com/forth.html' by Robert 07:12:42 --- quit: warpzero (Read error: 60 (Operation timed out)) 07:21:50 hum 07:22:01 Robert, why do you have the dutch rip for that timmie guy on your page? :) 07:26:14 He's dutch. 07:33:41 ah 07:33:52 i just did that personality test again, infj 07:33:54 was that what i was 07:35:11 ah i was, heh 07:37:10 :D 07:37:18 Bleh 07:37:25 My sister spit in my bed... just because I read her diary. 07:37:33 what the.. 07:37:38 how old ... 07:38:11 and why'd you read her diary in the first place :p 07:43:58 13 07:44:01 And.. uh.. why not? 07:44:11 lol 07:44:16 I need to protect her from those filthy non-geek males 07:44:21 hahahah 07:44:50 but its still her diary. imo something that ought to be respected, no matter what your intentions are... 07:45:14 well ok there are exceptions, but i doubt yours fall in any of those :p 07:49:45 Hah 07:49:50 It's simply revenge. 07:50:03 Besides, when I'm away from IRC, she's saying stupid things here... 07:50:36 :) 07:53:16 Oh 07:53:35 And writing your diary in plain text must be punished. 07:54:01 :) 07:56:08 wow 07:56:19 how interesting. 07:56:26 that bug last night wore me out :P 07:57:46 Wonderful 07:57:48 and you know what it was? 07:57:52 No 07:57:54 I wrote a 3 instead of a 4 07:57:57 in one place. 07:58:00 thats it. 07:58:05 took me 30 minutes to find it. 07:58:05 lol 07:59:42 Just 30? 08:00:00 A single mov instruction took 6 months for me to fix. 08:00:50 lol 08:00:58 interesting 08:01:23 Very.... 08:02:39 hehe 08:44:00 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576399.sympatico.ca) joined #forth 08:44:00 --- quit: arke (Read error: 54 (Connection reset by peer)) 09:00:02 --- join: arke (~Chris@wbar8.lax1-4-11-100-108.dsl-verizon.net) joined #forth 10:17:38 --- quit: htp123 (Client Quit) 10:31:05 --- join: blockhead (default@dialin-244-tnt.nyc.bestweb.net) joined #forth 10:32:05 --- quit: dpb9cpu (Remote closed the connection) 11:00:06 --- join: htp123 (~tehsux@S010600055d233ab7.gv.shawcable.net) joined #forth 11:00:06 --- quit: qFox (Connection reset by peer) 11:00:10 woa! neat gadget!: http://www.mg.co.za/Content/l3.asp?ao=67802 11:03:44 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 11:04:25 Hi 11:04:42 hello 11:05:19 Moo. 11:09:47 --- quit: qFox ("this is mirc's last attempt of communication...") 11:09:55 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 11:10:55 wb 11:11:12 grmbl. load a script get your whole mirc fucked up. 11:11:25 i knew i shouldnt have done so in the first place 11:11:41 :) 11:31:25 --- join: Sonarman (~matt@adsl-67-113-235-77.dsl.snfc21.pacbell.net) joined #forth 11:39:07 --- join: wossname (wossname@HSE-MTL-ppp61041.qc.sympatico.ca) joined #forth 11:43:39 --- join: divgrad (~wer@195.222.69.250) joined #forth 11:44:14 hi wossname 11:44:29 hi arke 11:44:35 life treating you good? 11:47:21 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 11:47:28 --- mode: ChanServ set +o kc5tja 11:47:30 Hi kc5tja :) 11:47:34 --- part: divgrad left #forth 11:47:35 hi kc5tja :) 11:47:35 Hey 11:47:38 wossname: not really 11:47:38 * kc5tja is not in a happy mood right now. 11:47:44 kc5tja: whas up? :( 11:47:57 arke? 11:48:01 The emulator has at least one very intractible bug in it and I just can't find a consistent case to reproduce it. 11:48:20 kc5tja: whats the bug? 11:48:27 As far as I can tell, the assembler and emulator don't agree on what certain opcodes ought to be. 11:48:33 wossname: you asked me easlier if life was treating me good 11:48:34 But when I test each opcode in isolation, they ALL WORK. 11:48:44 kc5tja: odd. 11:48:59 kc5tja: would you like us to take a look? 4, 6, 8 eyes are better than 2. 11:49:05 well, if you don't want to elaborate.. cool 11:49:32 arke: I can't at the moment. darcs is broken. I'd have to bundle a tar-ball and distribute by hand. 11:49:48 I'm rebuilding a newer version of darcs now. Hopefully this will solve that problem. 11:49:50 I somehow doubt it though. 11:50:00 I didn't see anything in the changelogs relavent to permissions problems. 11:50:43 :( 11:50:52 But the emulator IS showing great promise though. 11:50:59 I am very pleased that I have a flat frame buffer to work with. 11:51:08 Well, if you would like, I'd always be willing to take a good look. 11:51:09 I am VERY pleased that my 256 color palette works as well as I'd hoped! 11:51:10 kc5tja: awesome :) 11:51:35 kc5tja: well, there's a bug here ... for some reason, Jamagic isn't returning the directories, although I'm explicityl teling it to do so 11:51:46 The use of the 'magenta' bit concept is barely noticable, and in a real picture, you don't even see it. 11:52:06 It's only when you look at a pure red block on the screen that you notice a *slight* magenta hue to it. 11:52:33 :) 11:53:02 One of the programs I'm writing for the Kestrel now is a color picker tool. 11:53:08 :) 11:53:23 It'll let you fidget with all the red, green, and blue values. 11:53:33 So you can see how things work. 11:53:45 It'll look like it has a real 512-color palette. 11:53:55 (except to a trained eye) 11:55:56 :) 11:56:00 awesome 11:56:24 by the way.. 11:56:31 what does the CPU do on an invalid opcode? 11:59:43 No operation. 12:00:05 All undefined instructions are treated as NOPs. 12:01:14 aarghghghghhghgg 12:01:15 lol 12:01:24 I forgot to call _Spill after retrieving the array 12:01:28 maybe you should log undefined instructions when encountered, to try and trap that bug 12:01:38 the only thin now is that it isn't displaying the directory name correctly. 12:01:52 qFox: good idea :) 12:02:09 arke - the devil are you writing? 12:02:27 --- join: topher (~chris@lsanca1-ar42-4-61-191-206.lsanca1.dsl-verizon.net) joined #forth 12:02:28 --- join: chris__ (~chris@lsanca1-ar42-4-61-191-206.lsanca1.dsl-verizon.net) joined #forth 12:02:51 w00t -- they fixed darcs enough to be usable again. 12:02:54 wossname: talking about my app. 12:02:54 --- part: chris__ left #forth 12:02:56 hi topher :) 12:03:13 hi arke 12:03:36 hi chris_ ;p 12:04:26 qFox: That's not the bug though. 12:04:28 topher: progress ... I fixed the error bug (off-by-one error), and this morning, I figured out how to list the files. Had a bug which was caused by me not calling _Spill. Otherwise, it's good touhh. 12:04:40 kc5tja: what does it seem to be doing? 12:04:49 qFox: The bug is *apparently* that b! a! b@ a@ and related instructions are munged up. 12:04:56 kc5tja> but that way you can trap what opcode is the problem or conclude that its more then one opcode.. 12:04:56 arke: I can't exactly SAY. 12:04:58 That's the problem 12:05:02 hm 12:05:05 I have *no* way of reliably reproducing the bug. 12:05:11 arke: groovy 12:05:33 well if you know the part of the code that's causing it, add some kind of logging there so you can backtrace what happened before the bug 12:05:41 topher: yeah. Now, I have to find out how to strip only the directory name, so that I can dsplay it. 12:05:47 although i'm sure you know all this, its just a thought 12:08:13 topher: why'd you quit the server? 12:09:04 arke: Do you have darcs on your machine? 12:09:13 arke: uhh, i saved it first, no worries 12:10:54 kc5tja: no 12:11:07 topher: ok, tell me when its back up, mmkay? 12:11:15 arke: sure 12:11:19 topher: and don't cheat :) 12:11:33 arke: like i'd need to w/ you 12:11:52 topher: ^___^ 12:12:23 arke: connect 12:13:17 OK, the latest distribution is on http://www.falvotech.com/downloads/kestrel-0.1.4 12:13:36 The requested URL /downloads/kestrel-0.1.4 was not found on this server. 12:13:46 topher: not working 12:13:48 OK, the latest distribution is on http://www.falvotech.com/downloads/kestrel-0.1.4.tar.gz 12:14:10 arke: oh, haha, one sec 12:14:13 topher: lol 12:14:34 arke: try again 12:14:49 You won't be able to run it on Windows, at least not natively, because it binds explicitly to libSDL.so (maybe in the Windows version, you'd bind it to SDL.DLL?? I don't know how SDL works under Windows) 12:15:08 kc5tja: I'll do VMWare 12:15:15 kc5tja: ...later :) 12:15:24 Oh, great, an emulator running in an emulator....THAT ought to be fast. :D 12:15:27 * arke 's parents are being st00pid 12:15:30 kc5tja: =D 12:15:45 :D 12:16:04 blockhead: Did you see Kestrel's first pictures to the outside world? 12:16:13 blockhead: http://www.falvotech.com/screenshot.png 12:17:24 kc5tja: um. no. lemmie go check 12:18:10 Oh! Emulation! 12:18:42 ^_^ 12:18:46 Yep, emulation. 12:18:54 BUGGY emulation, but emulation nonetheless. 12:19:27 what am I looking at? color bars? why do the color bars get sort of wrinkly near the bottom of the window? 12:19:39 The microprocessor is a true 32-bit CPU. 12:19:48 Video data is stored as 8-bit quantities, however. 12:19:49 that looks likda like an amiga desktop, wtf? 12:20:10 To cycle through the colors, therefore, I have to add $01010101 to the pixel values. 12:20:36 After 256 loop iterations, a carry over occurs from one byte to the next, thus causing the fuzziness. 12:20:44 blockhead: That is my X window manager, amiwm. 12:21:09 ohh, right, you run a unix 12:31:08 hey kc5tja 12:31:19 here are some words so you don't have to unroll loops by hand 12:31:25 hi matt, you sexy botch 12:31:27 : lastlit ( -- n ) here 4 - @ -8 allot ; 12:31:33 : times: ( n -- ) ' lastlit 1- for dup compile, next drop ; 12:31:39 example: 12:31:42 : foo 'a emit ; 12:31:47 : test 4 times: foo ; 12:31:53 test aaaa ok 12:31:55 Sonarman: My Forth compiler doesn't work like that 12:32:02 it works in gforth 12:32:05 oh 12:32:10 right 12:32:13 Sonarman: eh, what does that do? 12:32:32 you calling me a botch? :) 12:33:03 times: just compile n calls to 12:33:06 compiles 12:33:06 i meant bitch 12:33:12 Sonarman: c00l 12:33:32 No, I'm just saying the FTS1001 CPU doesn't behave like GForth does. "Patching" a literal like you do above would require physically affecting the opcode itself, which could be some words back. 12:36:33 where does # get the literal value from again? 12:36:47 Sonarman: It gets it from the next word in the instruction stream. 12:37:49 from the next word, and not from the remaining part of the current word (as the jump instructions do)? 12:38:04 That is what I wrote, yes. 12:38:16 sorry, just wanted to make sure i understood :) 12:38:30 no problem. 12:39:50 --- join: TheBlueWizard (TheBlueWiz@pc4bdn1d.ppp.FCC.NET) joined #forth 12:39:50 --- mode: ChanServ set +o TheBlueWizard 12:48:07 hi TheBlueWizard 12:48:57 hiya arke 12:49:16 hey TheBlueWizard 12:50:28 hiya blockhead 13:03:35 This is driving me insane. 13:03:49 What the **FUCK** is causing this program to crash? 13:04:06 hmm? 13:04:09 I change something to test, and a whole SLEW of new symptoms results. I change it BACK, and YET ANOTHER slew of symptoms results!! :( 13:04:17 hulk smash 13:05:08 :( 13:07:24 Neat, my other computer has twice as much main memory as it has graphics memory. 13:07:32 And an old 14" monitor. :D 13:13:33 kc5tja: happens to me all the time 13:14:15 Now I've got a bug where then, resolves the target address for if, incorrectly. 13:14:16 Sometimes. 13:14:22 If the phase of the moon is just right, it'll get it. 13:14:31 And apparently, 30 minutes ago, it knew how to do its job. 13:14:51 heh 13:14:51 Now it doesn't. 13:14:55 lemme take a look at the source 13:15:45 I did NOT change the assembler source AT ALL. 13:15:50 There is NO reason for it to be failing. 13:15:56 It's simple fucking arithmetic!! 13:16:02 kc5tja: you sound like me now :D 13:17:09 what *other* changes did you make in the last 30 minutes? 13:19:13 Absolutely nothing that would, directly or indirectly, affect if, and then,. 13:19:30 The most I did was I added the following definition: 13:19:37 ': .. '. #, txbuffer !, ;' 13:19:43 to print diagnostic dots. 13:19:49 THAT'S IT. 13:19:57 Because I was diagnosing ANOTHER problem entirely. 13:20:35 :( 13:20:43 hmm... 13:21:59 is this definition added "in the middle" rather than at the end of the source code body? 13:22:39 * TheBlueWizard thinks it may somehow upset the "ordering" of compilation...admittedly a wild shot in the dark theory 13:23:04 I can take the thing right out completely, and if, and then, still seems broken. 13:23:23 This is what I mean -- things work, then break, for no apparent reason. 13:23:27 This code is haunted or something. 13:23:42 I can test if, and then, in isolation, and THEY WORK. 13:24:29 Oh great!!!! 13:24:30 LOVELY!!! 13:24:36 Now it's *#$&(#*&$*(#&$ing SEG FAULTING!! 13:24:41 * kc5tja cries!!! 13:24:51 glue and nails 13:25:37 :( 13:26:01 no no no 13:26:03 glue and nails? 13:26:10 engineers always use gum and string 13:26:23 if you actually read books you'd know that 13:26:27 :( 13:27:41 Maybe back in the 60s. Today it's duct tape and bubble-gum. 13:27:47 I guess the best way to do it is to simply spawn a clone of that project, then pare it back to a very small one, test it to see if it got X things right, then add a bit more and test, until you reach a point where it starts breaking.... 13:27:47 String is so out-moded. 13:28:04 That's what I did. 13:28:11 That's how I built this thing to begin with. 13:28:15 Testing every step of the way. 13:30:15 I am sure you did that...but have you tried the "repeat the whole thing" route? I personally would just redo it by starting with, say 1/10 code, test it, then add another 1/10 code worth, test, etc. Should take only ten trials at most 13:30:37 there has to be a logical reason why it broke 13:30:46 There has to be, yes. 13:30:48 But I'm not finding it. 13:31:40 without knowing more (or seeing more), I can't help...sorry :( 13:31:53 That's fine, I just need to vent. 13:32:19 heh 13:32:32 kc5tja: forgive me if you tried this like two hours ago ... but reboot? 13:32:43 blockhead: I run Linux. I don't need to reboot. 13:32:53 Linux does not self-destruct like Windows does. 13:32:57 blockhead: you're too brainwashed by M$ 13:32:59 try it anyway :D 13:33:15 --- join: lalalim_ (~lalalim@pD95EAD4D.dip.t-dialin.net) joined #forth 13:33:18 try it anyway :D it worked on my amiga 13:33:28 blockhead: Amigas were prone to self-destruction though. 13:33:48 In Linux, if any application writes on another app's memory, it will cause a protection violation and shut the program down. 13:33:58 kc5tja: but less so than windows , but we get off topic. Reboot anyway. :D 13:34:05 No. 13:34:12 :( 13:34:43 I just don't need to reboot. 13:34:54 The process is successfully killing itself off, I can assure you. 13:34:58 It is not affecting anything else. 13:35:07 If it were, I'd be logging in and out all day. 13:35:27 * TheBlueWizard agrees...Linux systems don't need to get rebooted...ever...except when changing the kernel or hardware parts 13:35:57 * blockhead wishes he had the smarts to upgrade to linux :/ 13:36:47 at least that is definitely true of Debian GNU/Linux...I have next to zero experience with other distros...and if a distro requires a reboot cuz a new software has been installed, it is architected wrongly and should be rejected 13:36:52 The problem MUST lie either in the CPU emulator core (bloody well unlikely, as supported by the unit tests), the assembler's code (most likely, but individual tests suggest otherwise), or some **HIGHLY** sophisticated interaction between the two (the success of both tests strongly rules out this case). 13:37:50 are you running the assembler inside the emulator? 13:37:59 its happened to me before where i coded something, it worked fine, changed something, it broke, change it back, it remained broke 13:38:07 TheBlueWizard: We occasionally have to reboot a box at work because Linux's networking code takes forever to close sockets -- and sometimes it just plain doesn't. It also has problems removing zombie processes. We also do it for speed -- in most cases, it's faster to reboot a box than it is to hand-weed-out bad processes and kill them individually. 13:38:09 invariably there was a bug somehwere in my code 13:38:23 TheBlueWizard: No. The assembler and emulator are both written in GForth. 13:38:24 or else i was forced to rewrite major chunks of it out of paranoia 13:38:36 kc5tja: ah...ok 13:38:47 futhin: I am already on a second MAJOR re-write. I'm NOT doing that again 13:39:11 Besides, the unit tests prove that the CPU emulator itself is working. 13:39:51 The problem must ultimately lie in the assembler itself. 13:39:54 That's all there is to it 13:39:57 kc5tja: hmm...that network socket closing behavior sounds odd...I would be surprised if that is a bug cuz I heard the networking code in Linux is heavily, heavily tested 13:40:05 But I *can't* find what the heck is causing 1 + 2 to not equal three somehow. 13:40:34 TheBlueWizard: Tested in a laboratory environment, not in a real-world, denial-of-service-prone environment. 13:40:50 And it's not techically a bug -- it's an intrinsic design flaw of TCP itself. 13:40:59 Linux is just doing its job according to the Internet RFCs. 13:41:07 ah! hmm... 13:41:56 I heard Linux network code is the only one that is 100% RFC compliant...if so, astounding 13:42:14 maybe because the rfc was built on the linux code? 13:42:24 (i dont know whether it is...) 13:42:36 kc5tja: the fact that it was originally working until you changed it and then changed it back indicates to me that its your code, not assembler's code that the fault lies in.. 13:42:43 qFox: no...TCP/IP RFC predates Linux by about 10 years 13:42:48 oh right 13:42:49 hehe 13:43:04 * TheBlueWizard hits qFox with a cluebat :) 13:43:24 TheBlueWizard: 20 is more accurate I think. Didn't IPv4 first come out in 1976 or so? 13:43:33 * blockhead hands TheBlueWizard a large trout. "is't this the customary IRC implement?" 13:43:40 * qFox hides. 13:43:51 kc5tja: not sure...I can dig up 13:44:02 blockhead> traitor! 13:44:27 --- quit: lalalim (Read error: 110 (Connection timed out)) 13:44:40 futhin: Wrong. The code I have now is *exactly* the way it was when it worked. 13:44:45 qFox: traitor? for a trout? 13:44:45 futhin: And it is still failing. 13:45:01 blockhead> you're pushing him to hit me again, sorta 13:45:12 kc5tja: well i've been in similar situations where i was 100% sure that it was exactly the way it was when it worked.. sadly i can't remember how i solved those situations 13:45:51 I just changed the code to hand-assembled JZ, instructions. It's not pretty, and it utterly destroys the data stack contents (fortunately, it's at the end of the program, so I couldn't care any less about it). And it works. Perfectly. 13:46:02 blockhead: I generally don't use trout 13:46:04 The problem, FOR THIS PARTICULAR BUG, MUST be the assembler. 13:46:27 I'm going to get some food. Back in a bit. 13:46:48 * blockhead makes a note: #forth, no trout 13:48:22 the first mention of TCP/IP RFC is RFC 793 (http://www.faqs.org/rfcs/rfc793.html), and that document shows Sept. '81...so my memory seems to be right :) 13:48:37 kc5tja: did you take the binary, and look at a hex editor, and hand-check it (a pain, but ... :)) 13:49:13 blockhead: you can use trout if you like...I just prefer wielding a cluebat because it is much more effective, like, GET A CLUE! :) 13:49:37 arke: I'm running the code through the CPU emulator's single stepper. 13:49:54 The emulator IS following instructions perfectly. 13:50:21 When the IF clause's JZ instruction tells the CPU to branch to location $00000002 (a totally bogus address, BTW), that's precisely where the CPU goes. 13:51:02 wasn't there a bug where 1 2 + != 3? 13:51:10 you sad something like that, i ihtnk 13:51:24 kc5tja: I believe you were thinking of ARPANET or something like that, which was developed in mid 70s 13:51:27 I was making an allusion to the arithmetic being performed by THEN, to update JZ,'s target address. 13:52:10 Anyway, I'm going to get myself some food. 13:52:14 Bbiab. 13:52:44 k 13:54:32 hmm...TCP seems to be get developed earlier....have to dig up more :-P 13:57:38 http://www.davesite.com/webstation/net-history.shtml states that TCP/IP began to develop in 1973 (the earlier protocol was NCP = Network Control Protocol) 14:00:03 then http://www.davesite.com/webstation/net-history2.shtml states that DoD starts to experiment with TCP/IP in 1976 and soon decided to require using that protocol...and in 1983, every machine connected to ARPANET must use TCP/IP...NCP became obsolete 14:00:35 so...I guess kc5tja is right in a way, and I am also right in a way 14:02:00 ^_^^__^^___^^____^^___^^__^^_^ 14:03:08 allied victory 14:17:08 back 14:17:33 I thought the year 1976 had some significance to IP. 14:19:40 it's funny how memory/recollection get distorted over the time 14:26:39 I'd like to read up on NCP some time. 14:26:54 It may prove enlightening, especially towards the creation of a new ham radio protocol. 14:30:13 something deficient with current ham radio protocol(s)? 14:31:29 Yes -- they consume too much bandwidth for their network headers, they're schizophrenic (are they layer 2, 3, or 4? Depending on the specific functionality, it's all of them, some of them, or none of them), and they are implicitly unroutable, requiring a higher layer protocol, which further consumes bandwidth. 14:31:57 AX.25, as its name suggests, is an X.25 protocol derivative, with all the insanities associated there-with. 14:32:00 :) 14:33:16 hmm 14:34:48 strange that they would require so much overhead, considering the fact that the data transmission over radio isn't that fast (at least that's my understanding) 14:35:58 They considered adherence to an industry standard to be more important than doing what was really right. 14:36:45 AX.25 isn't that bad of a protocol over faster links -- it's about the same overhead as Ethernet. 14:36:48 sounds like a bureaucratic attitude...so fucktard 14:37:00 But, it's circuit-switched instead of packet switched, and that means it's inherently point to point. 14:37:34 So even though there are packets flinging around, as far as your computer terminal is concerned, you've got one or more virtual circuits to your box. 14:38:15 But, then, AX.25 borrowed from another industry proposal (at the time; it's considered fairly standard now as far as I can tell) called "UI" frames, which implements a datagram service in the AX.25 protocol. 14:38:35 --- join: randolm (wossname@HSE-MTL-ppp60469.qc.sympatico.ca) joined #forth 14:39:02 So now, if you wanted to build a network around AX.25, switches and routers have to be extra careful, because a packet can be part of a virtual circuit, OR it can be a datagram, and each has their own rules for being dealt with. 14:39:11 It's very, very complex. 14:39:50 hmm... 14:40:09 randolm: hi wossname 14:40:28 someday we can design a new protocol to just replace all those existing protocols, TCP/IP included :) 14:41:04 Well, IP is pretty much a nearly perfect networking protocol. 14:41:23 IPv6 is conceptually even simpler than IPv4. 14:41:34 * TheBlueWizard really likes the idea of having an extensible addressing scheme that can extend into the "objects" inside host boxes, replacing ports 14:41:36 arke: hi rk 14:41:43 Yep. As do I. 14:42:55 I have a feeling that with this new scheme, virtual networking inside a host box would be quite simple...of course a network emulator will have to be developed first to test it out 14:51:24 --- quit: wossname (Connection timed out) 15:06:13 OK, I've identified and am now able to reproduce a pretty nasty assembler bug. 15:07:47 cool! what is it? 15:08:45 awesome! 15:08:47 what is it? :P 15:09:39 Not sure what's causing it yet. 15:10:08 ooh...the suspense is building! :) 15:10:15 But it LOOKS like the ,, operator (which I've renamed ,' and bundled into the assembler now) isn't updating the instruction location pointer appropriately. :/ 15:10:51 Basically, I have the following definitions: 15:10:57 ': data r>, 1 #, +, ;' 15:11:11 ': r data 0 ,, 15:11:14 ': g data 0 ,, 15:11:25 It compiles g on top of r's data field. 15:12:39 This also explains the bizarre behavior of the code, and why it behaves differently in different circumstances -- data is being treated as code in some cases, and code as data. 15:13:43 I *told* you it was an assembler issue. 15:13:45 :) 15:13:53 Unit tests don't lie. 15:14:22 kc5tja: no reboot needed :D 15:15:12 blockhead: told you so ;) 15:15:19 * blockhead sorries 15:18:31 --- quit: topher (Read error: 60 (Operation timed out)) 15:28:16 :) 15:35:35 --- join: topher (~chris@lsanca1-ar42-4-61-175-184.lsanca1.dsl-verizon.net) joined #forth 15:38:36 --- nick: topher -> topher|movie 16:02:21 yay :) 16:04:08 * Sonarman is going to try the emulator in Debian in Mac-on-Linux (an emulator inside a virtual machine :) ) 16:10:13 actually, i'm not going to 16:11:22 i'm just gonna struggle getting gforth 0.6.2 to build 16:12:28 Under Linux? 16:12:33 gforth ought to build quite readily. 16:12:37 not on PPC 16:12:45 :( 16:13:03 the debian folks were able to do it. it'll just take some work 16:13:05 Be aware that my code does have endian-specific stuff in it (by necessity) 16:13:24 in which modules? 16:13:44 emu.fs -- it has to perform byte swapping to properly display graphics. 16:14:10 ok 16:16:00 Oops, also in sdl.fs as well -- for defining SDL data structures. 16:18:36 k, thanks 16:45:41 --- quit: topher|movie (Client Quit) 16:47:34 gotta go...bye all 16:47:51 --- part: TheBlueWizard left #forth 16:55:45 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 17:00:43 hi 17:03:45 hey 17:03:55 --- join: hash_ (~hash@port-204-54-210.fastadsl.net.nz) joined #forth 17:04:19 why is it that writing *a* forth is always more enjoyable than writing *in* forth? 17:04:43 hash_: :D 17:04:44 heh 17:04:56 hey LOOP-HOG 17:05:04 * hash_ is building pyforth, a totally-oop forth that sits atop python 17:12:14 here 17:12:45 maybe your in FORTH writing skills have not gotten above level 20 17:12:56 if the skill for Forth programming is an uncaped skill 17:13:08 and as an aceptable amature maybe i'm a 7? 17:13:26 i don't know heck ask your ancesters maybe they know 17:13:42 pyforth is totally non-ans-compliant 17:13:52 pygmy? 17:13:55 for instance, the data stack contains only python objects 17:14:03 pygmy? what's that? 17:14:06 * hash_ googles 17:14:32 oh, python forth, ok 17:14:56 --- join: uxx (rpc@209.17.66.182) joined #forth 17:14:57 sorry, word/paradine miss file there 17:15:07 what is the url for that forth i ask 17:15:20 i'm aiming at a high-level Forth, where you don't have to write n layers of menial shit to get to high level 17:15:24 everybody now goto http://www.memnonio.com/forth.html 17:15:43 then look for your fav Forth urls in there and if you can't find them give them to me 17:16:12 hash, my thinking now is to keep the #levels to a min 17:17:19 I dig Forth, but I've gotten addicted to python's high-level-isms 17:17:24 ok 17:17:39 i dont know much about python 17:17:46 I've written some stuff in Forth, but it can be really menial 17:17:56 eg http://netforth.sf.net/psst 17:18:13 i dont mind so much, never so menial as picking strawberries or working in a cannery 17:18:43 http://psst.sourceforge.net/ 17:18:44 ?? 17:19:04 yes 17:19:13 the first version was written in forth 17:19:20 wheres the 4th? 17:19:28 it doesnt say 17:19:39 oh 17:19:40 oops 17:19:51 do you want me to link it into the solutions section 17:20:11 maybe not - i never got v1 past beta 17:20:21 ok 17:20:25 v1 uses weak crypto, which is probably why i pulled it 17:20:55 only uses block-mode X-TEA, with 1k Diffie-Hellman - anyone could crack that 17:21:08 --- quit: I440r (Read error: 110 (Connection timed out)) 17:21:26 v2 uses 256-bit blowfish CBC, with 4096-bit RSA - would give the pigs a hard time 17:21:33 and v2 has voice chat as well 17:22:31 get it up and running in Forth and I'll give you all sorts of links 17:22:34 :) 17:22:47 I wanted to float a few ideas for my site too 17:22:47 well, there ain't just one Forth 17:22:57 there seem to be more verions of Forth than there are Forth apps 17:22:58 I have like 73 Forth listed at Memnonio 17:23:03 I have like 73 Forths listed at Memnonio 17:23:30 My Goal for 2004 is to get 250! 17:23:42 I bet that there are atleast that many Forths out there 17:24:11 and the rest! ;p 17:24:49 First idea, should I put the links in a table and give another collumn for a full description, like some more professional yet more cluttered sites do 17:24:53 that's one thing in common between forth and python - blurring of the boundary between app and sys api 17:25:18 if done well 17:25:49 those PSST screenshots are funny :) 17:26:00 yep 17:26:10 I'll probably blab about memnonio.com/forth.html for a few weeks until I get board of it 17:26:59 i didnt go there, let me read 17:28:45 no video 17:29:04 it would be cool if it had modules 17:29:17 like a video modual, and a 3D modual 17:29:20 and a this and a that 17:30:40 cool 17:32:22 i'm going to split 17:32:23 --- quit: LOOP-HOG () 17:38:38 --- join: crc (crc@0-1pool176-45.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 17:43:03 --- quit: qFox ("this is mirc's last attempt of communication...") 17:48:15 --- quit: randolm (":`") 17:54:59 --- join: topher (~chris@lsanca1-ar42-4-61-175-184.lsanca1.dsl-verizon.net) joined #forth 17:56:50 hash_: Diffie-Hellman isn't "crackable." It's a means of public key generation/exchange. It is not (supposed to be) used for actual encryption. That's the job of your private key, which can be any size you want. 17:58:52 --- part: crc left #forth 17:59:20 * kc5tja sighs 17:59:31 I'm getting very upset with this if/then issue. 18:00:13 It is very clear that it is producing incorrect code, and yet, here it is, exact same statement entered by hand, producing correct code! :( 18:00:17 GAHH! 18:04:14 and i wish i could get gforth 0.6.2 to compile 18:08:56 GOT YOU YOU LITTLE SON OF A FREAKIN BITCH!!! I FOUND YOUR SORRY ASS AND NOW I'M GOING TO SQUASH YOU LIKE THE BUG THAT YOU ARE, ASSHOLE!@!! 18:09:11 * kc5tja does the HAPPY dance on this one!! 18:09:38 :o 18:10:06 * Sonarman plays HAPPY dancing music 18:10:24 now, of course you have to tell us what it was :-) 18:10:47 I've been tracking this bug since the wee hours of this morning, and now I have squashed it. 18:10:52 if, and then, now compile proper code. 18:11:43 what was calling it? 18:11:47 s/calling/causing/ 18:12:21 When if, is invoked, it must have an address to branch to. 18:12:41 In the assembler, the target address was set to 0, with the idea that I would logically OR the address in via then,. 18:13:00 Problem is, I had completely forgotten that if, *naturally* computes the XORed effective address encoding. 18:13:15 --- join: Topaz (~top@exten-halls-131.soton.ac.uk) joined #forth 18:13:36 So when I looked at the result of if, without a then, I found that it had already encoded the upper address bits of the program counter into itself. 18:14:08 This is bad, of course, because OR does not clear these values. :) Hence, while the assembler was producing the correct low-end bits, the high-end bits of the program counter were implicitly being reset to zero every time. 18:14:40 The solution is to replace the '0 jz,' in if, to 'here, 1+ jz,' so that jz is *forced* to encode an effective address encoding of all zero bits. 18:15:00 This is easily the toughest bug I've had to track during this whole project. 18:15:14 Now I have another bug to squash, but it at least looks reasonable. Hopefully. 18:15:23 well, congratulations :) 18:15:28 AND it's a bug in the FTS1001 program, not in the compiler or emulator. 18:17:20 i hope it doesn't take me as long to get this damn version of gforth compiled 18:18:29 Not sure why it won't compile; I know gforth can run on PowerPC. 18:18:33 does ./configure somehow break? 18:20:03 no, compiling engine.c breaks 18:20:09 Also, I'm finding very much that 16 data stack cells ARE effectively infinite. Goodness, I've yet to exceed 6 cells of stack usage in any of my programs. 18:20:19 gforth 0.6.1 compiled without problems 18:20:32 Oh, maybe it's a bug in the recent version. 18:20:43 I wonder if my code will run under 0.6.1? If it has fflib.fs, then it should. 18:22:30 well, fflib.fs was added in 0.6.2, and i think it requires some support in the engine, so that rules out just copying over fflib.fs to my 0.6.1 installatoin 18:22:38 hmm. maybe lib.fs will work 18:22:42 Oh, I didn't know. 18:22:47 My code assumes fflib.fs 18:23:01 It might be adaptable to lib.fs, but I'll leave that for someone else to look into. :) 18:23:36 i believe that as long as you don't call functions that have a variable number of arguments, lib.fs will work 18:24:09 AFAIK their interfaces are pretty much the same, so i think that i can just replace 'include fflib.fs' with 'include lib.fs' 18:24:55 i wish i know how the debian dev got it to work, though 18:25:07 maybe he just used a different GCC verison 18:25:23 s/know/knew 18:25:31 Nope, all the functions I call have fixed signatures. 18:25:40 sorry, i just have a fear that some grammar nazi will come in the night and get me 18:26:12 What version of GCC are you using? 18:26:20 And what kind of errors are you getting? 18:26:31 3.2.3 18:26:32 Sonarman: "I" should be capitalized :D 18:26:48 * Sonarman screams. 18:27:07 ok, that was a stupid attempt at a joke. sorry Sonarman. 18:27:30 I'm just about the last person here to complain about grammar/spelling/typos 18:27:36 blockhead: you did not properly terminate your third-last sentence with a period 18:27:45 exactly 18:28:02 and no need to apologize. i was just joking about my fear (although i'm sure you knew that) :) 18:28:33 This report came in from the Grammar Gestapo -- Nazi is a proper noun. It must be capitalized. Failure to capitalize Nazi in the future *WILL* result in immediate gasification. 18:28:45 :D 18:29:00 * blockhead emits gas. 18:29:02 :D 18:29:23 From now on all Nouns will be capitalized on the order of our Leader in order to further purify our Language. 18:30:10 * blockhead r3B3Lz by t4Lk1ng in 133t Sp34K 18:30:37 * blockhead hurts his fingers 18:30:42 Heh 18:31:04 Good news -- the Grammar Gestapo was taken out by the Communications Communist Community for People. 18:31:11 blockhead: use xmodmap to make 'e' map to '3' and so on; then you won't have that problem! 18:31:17 there is a sort of guilty pleasure in using leetspeak, but it's kinda painful to do 18:31:34 oh wait, you don't use UNICKS! HAHAH 18:31:55 Ouch. 18:32:08 * kc5tja smacks Sonarman with a Lisp tome. 18:32:18 Sonarman: no, but I do apreciate the benefits of unix. I'm not aginst unix ... I just have yet to succesfully get it to work 18:32:32 someday 18:33:00 i have yet to succesfully get it to work too :) 18:33:04 Hmm...isn't Minix still supported? Minix, IIRC, also runs under other OSes too, since it's a teaching OS. 18:33:41 best try so far was a version of knoppix called "Damn Small Unix". 18:33:43 caaaaaaadddddddddr 18:34:01 ot was it "damn small linux" 18:34:07 or 18:35:19 * blockhead fakes unix by running blackbox for windows :D 18:35:44 hehe i remember teasing you about that :) 18:36:15 hey, it looks cool 18:37:17 I don't want a window manager that looks cool. 18:37:21 I want one that works. :) 18:38:28 kc5tja: actually, bb4win is as stable as it gets (well, for windows, anyway :) ) 18:38:42 --- join: slava (~slava@CPE00096ba44261-CM000e5cdfda14.cpe.net.cable.rogers.com) joined #forth 18:38:47 yo 18:38:51 What I mean by 'works' is something that lets me actually get useful work done, without getting in my way all the time. :) 18:38:57 hi kc5tja 18:39:12 hey slava 18:39:33 kc5tja: it does - lemme put a screenshot of the desktop up for ya 18:39:46 I know what BB looks like. We use it at work. And I hate it. 18:40:02 kc5tja: gee, arn't you picky :D 18:40:18 * kc5tja shrugs -- sorry. 18:40:40 but I doo like that amiga-style look you've got on your desktop. that's cool 18:40:53 On my desktop at work, I immediately changed window managers to WindowMaker, because BB was so hard for me to use that I couldn't get anything done. 18:41:16 i'm trying kde 3.2 18:41:27 seems faster than gnome 18:41:52 slava: I think kde was what came with that DamnSmallLinux that I tried 18:42:03 It is. 18:42:37 it reminded me off bb4win. 18:42:54 color-test-2.ef 18:42:55 --- join: solar_angel (~jenni@Toronto-HSE-ppp3685160.sympatico.ca) joined #forth 18:42:55 oops 18:43:02 hi solar_angel 18:43:17 hiya slava, hiya kc5tja 18:43:38 hey solar_angel 18:43:44 solar_angel: how's toronto? i'm turning into scrabled egg here in ottawa (it was 27 degrees or so today) 18:43:54 toronto is fine. 18:44:09 but it's air conditioned in here. 18:44:14 my un-windows like desktop: http://users.bestweb.net/~pogo/piccy/Clipboard01.jpg 18:44:15 ah lucky ;) 18:44:46 i'm just trying to degub a floppy driver now. 18:44:48 blockhead: thats the most perverted windows install i've seen 18:45:01 slava: exactly! 18:45:20 that's windows??? 18:45:36 yup 18:45:58 Greetings. 18:46:04 how is that windows?? 18:46:05 blockhead: why not use *nix? :) 18:46:11 solar_angel: cygwin x11 i'd guess 18:46:19 solar_angel: note the 'winamp' in his menu, the dos prompt in the task bar, etc 18:46:41 that's twisted. 18:47:10 solar_angel: windows allow syou you to use "shell replacements", these replace the desktop and GUI of windows with the graphical "shell" of your choosing. LiteSTep and BlackBox for Windows (bb4win) are two common ones 18:47:22 solar_angel: it's fun! 18:47:31 ok, in forth, if i write : foo ... ; : bar foo ; : foo ... ; then 'bar' still refers to the first 'foo' of course 18:47:33 slava: becasue I am a blockhead. 18:47:37 solar_angel: Greetings. 18:47:39 I can never get unix to work 18:47:45 but suppose i want to redefine 'foo' such that all callers refer to the new definitions 18:47:50 use RECURSE? 18:47:56 solar_angel: http://www.falvotech.com/screenshot.png for a first-look at the Kestrel emulator with semi-working video. 18:48:20 kc5tja: and a leet amiga-styled linux desktop :D 18:48:27 if you stick RECURSE at the beginning of the definition then all subsequent calls will address the new definition, i believe 18:48:41 blockhead: Heheh :) 18:48:48 cool 18:48:58 blockhead: I've often considered hacking the sources of amiwm to give it a Kickstart 1.3 appearance at times too. Sometimes I miss that. 18:48:59 but suppose i don't have RECURSE everywhere, and want to reload one source file with updated definitions. is there no way in 'standard' forth? 18:49:17 hmm, heh, no idea :D 18:49:23 my knowledge of FORTH is limited at best 18:49:55 though surely the old definitions are lost if you have already updated them 18:49:56 i hate PC floppy drives 18:50:04 slava: If you want to "retroactively change" a definition, no. You need to reset the dictionary to the appropriate point, and reload all your modules. 18:50:10 solar_angel: i hate them from an end-user perspective -- too slow! 18:50:16 kc5tja: ok 18:50:20 (Yet *another* reason one should code small, highly modular Forth modules instead of large, monolithic apps) 18:50:28 slava - *lol* well, i have to get my floppy driver working if i want to be able to work on my IDE driver. 18:51:55 --- quit: Topaz (Remote closed the connection) 18:51:59 i highly recommend remapping caps-lock to control! 18:52:18 at least i find it useful because my editor has an obsession with control-key sequences :) 18:52:28 i use caps-lock as a window management key 18:52:32 it's meta4 or somesuch 18:52:53 with the window key bound to meta5 :) 18:53:05 control-capslock-arrowkeys controls my mixer :) 18:53:06 i still havent found a use for the windows key, or the start menu key 18:53:16 slava: the land mine keys 18:53:24 i run an improved version of twm called vtwm... 18:53:26 oh yeah, all the 'multimedia buttons' on my keyboard are unused 18:53:28 and even i use them. 18:53:41 --- join: crc (crc@0-1pool176-34.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 18:53:46 hi crc 18:53:50 hello slave 18:53:55 :D 18:53:56 s/slave/slava/ 18:54:02 i used plain twm for a very long time 18:54:03 lol 18:54:10 i had a bunch of custom menus, shortcuts etc :) 18:54:15 yucky. I can't stand twm -- that's a bit TOO ugly for my liking. :) 18:54:22 And I can' never navigate around it. 18:54:33 actually, twm doesn't have to be ugly. 18:54:37 that's just the evil default theme 18:54:50 i turned off all the ugly window decorations 18:54:51 yes, its green/white or something? 18:54:58 so i just have a 2-pixel blue border around each window. 18:54:59 i ran it without decorations at all 18:55:03 yeah! 18:55:09 wooo :) 18:55:24 vtwm is just a light window manager with a simple text config file that i can tune easily 18:55:33 i've even made a few changes to the sources, although mostly just bugfixes. 18:55:37 (it doesn't like 7-button mice) 18:56:25 7-button mice?! 18:56:37 my small mind can hardly handle 3+wheel 18:56:53 well, it's actually a no-button trackpad. 18:57:06 (well, it has 2 buttons below it, but whatever) 18:57:13 windows and mice are evil! 18:57:22 you can single, double, or triple-touch the trackpad for three buttons 18:57:26 plus it has two scroll regions 18:57:29 one horizontal, one vertical 18:58:04 I remember Alps Glidepoints. They were the best mouse alternatives I've ever used. 18:58:27 I should consider looking into another one. My mouse is sweet, being optical and all, but I'm running out of desk space to use it with. 18:58:37 i used to love the Logitech Trackman Marble FX trackball... but i'm spoiled on this synaptics touchpad now. 18:58:50 How much does it cost? 18:58:53 i don 18:58:56 i don't really know 18:58:59 it's part of my laptop 19:01:17 kc5tja: i like your stack cpu esign 19:01:22 design* 19:02:24 yikers... my SO is upgrading VMS on her VAX. 19:02:43 YAY VMS! :) 19:03:04 * solar_angel really doesn't know a thing about VMS. 19:03:25 all i know about vms is extremely verbose command names :) 19:03:25 VMS is like the OS that forms the root for a huge variety of other OSes. 19:03:43 VMS was the ultimate grandparent of AmigaOS, OS/2, Windows NT, CP/M, and probably a host of others I don't really know. 19:04:08 slava: And *ROOMS* of documentation. 19:04:11 --- part: topher left #forth 19:04:12 lol 19:04:47 how is it related to CP/M? 19:04:47 OK, color picker program is about 50% of the way done. 19:04:58 VMS was grear 19:05:00 CP/M is just a simple interrupt monitor no? 19:05:16 slava: Ultimately, isn't every OS just a simple interrupt monitor? 19:05:52 "great", not "grear" 19:05:53 CP/M borrowed from VMS's command line syntax. That's why CP/M's (and subsequently, DOS and Windows) command line options use the '/' character instead of '-' like in Unix. 19:06:16 That's a very, very weak connection :D 19:06:39 Robert: It's shell structure is basically the same as VMS's too. 19:06:55 OK, I never used VMS, so I wouldn't know. 19:07:18 I just know CP/M is on the edge between nothing, and an operating system. 19:07:21 But considering CP/M was designed to run on an Intel 8008 originally, it seems logical to assume that 99.99% of VMS' features weren't implemented. :D 19:07:41 Had to use it for a while on an 80186 based machine. 19:07:46 Robert: Right. The way all OSes ought to be, ideally. 19:07:53 8008? Did you mean 8080? 19:08:25 kc5tja: Sure, I didn't need to do more than loading the Pascal environment. :) 19:08:32 (my old cp/m system was on a z80 but the assembler was for an 8080) 19:08:34 --- quit: crc (Nick collision from services.) 19:08:48 blockhead: It was designed originally to run on an 8008 for Intel, but Intel wouldn't have anything to do with it. So he decided to put it up for market on his own, and upgraded his PL/M compiler to use the 8080 instruction set. 19:08:49 --- join: crc (crc@0-1pool176-42.nas6.philadelphia1.pa.us.da.qwest.net) joined #forth 19:09:06 He == Gary Kildall 19:09:21 kc5tja: didn't know that. I jsut thought you swapped two characters in typing 19:09:28 * blockhead sits corrected 19:09:39 the 8008 was one of the first microprocessors. 19:09:43 it goes back a *long* way. 19:09:43 Intel's first CPU was the 4004. :) 19:09:55 yep, the 8008 was the follow-up to the 4004 19:10:28 It seems hard to realize, but today's latest, greatest Pentium 4 Hyperthreading processors are still "backward compatible" (at the assembly source level) with the 8008. !! 19:10:48 heh 19:10:52 that's not bad... 19:10:57 that's cool 19:11:14 what's bad is the 8259 still used to control the interrupt logic on a PC :P 19:11:18 what's more disturbing is that DOS 1.0 will still run unmodified AFAIK 19:11:20 well, it's not really an 8259 anymore. 19:11:24 but it's still disturbing 19:11:30 it acts like one 19:11:42 With -> refering binary compatibility and => refering to source-level compatibility (given a suitably written assembler), the lineage is as follows: 8008 -> 8080 -> 8085 => 8086 -> 80186 -> 80286 -> 80386 -> 80486 -> 80586 -> P2 -> P3 -> P4 -> ... 19:12:09 so what did the 8080 offer over 8008 19:12:11 kc5tja - yes, but the instruction encodings have stayed constant since 8086. 19:12:16 uh... you left the 8088 out 19:12:25 :P 19:12:29 8088 was just an 8086 with a crippled bus 19:12:33 true 19:12:41 And that's why I made the distinction between binary and source compatilibity. 19:12:44 kc so, that would mean that there are actually some instructioins in common between 8080 and z80 ... yikes! 19:12:47 i thought the 80186 was the same thing as 8086? 19:12:53 blockhead: Yes, there are. 19:13:00 The 80186 is a weirdo. 19:13:05 yikes. the Z80 is pretty different architecture. 19:13:12 solar_angel: that's what I say 19:13:17 the registers are different 19:13:27 there is no HL register on PCs ... unless it is renamed 19:13:29 It's an 80286 WITHOUT protected mode, BUT, with integrated DMA hardware, I/O timers, and the like. It was designed for control operations (they're very often found in telecomm equipment). 19:13:38 * blockhead used to program in z80 assembler 19:13:59 blockhead: Yes there is. It's called "BX". 19:14:03 and no second register set :P 19:14:12 Note the register naming conventions between the 8080 and the 8086: 19:14:24 AF => AX (via the SAHF and LAHF, you can emulate the F part of the register pair) 19:14:28 solar_angel: yeah, that was nice 19:14:29 BC => CX 19:14:32 DE => DX 19:14:35 HL => BX 19:14:42 yikes. 19:15:05 they must have had an easy time making cpm 86 19:15:22 SI and DI registers were ideas who had come from the Z-80's IX and IY registers, and extended with string instructions, also influenced by the Z-80's LDIR and LDDR instructions. 19:15:23 not much to change, on the machine-code level 19:15:52 blockhead: If you study MS-DOS 1.0's API, you'll find it is 100% compatible with CP/M. 19:16:10 including the option to drop to BASIC ROM? 19:16:19 All the interrupts are the same, the "CALL 5" entry point is the same, etc. 19:16:24 thought that table of "obsolete, do not use" IO functions looked familiar 19:16:35 basci ROM is not CPM! 19:16:40 that's IBM PC only 19:16:54 heh 19:16:54 current PCs don't have that 19:17:00 shame, that. 19:17:04 at least then they'd have a use :P 19:17:07 try to call the function and 'puter go boom 19:17:15 Kestrel aims to fix that. "Drop to FORTH ROM?" :) 19:17:25 kc5tja - sun and apple both beat you to it 19:17:31 kc5tja: jupiter ace 19:17:35 Not like my Forth systme. 19:17:37 system 19:17:48 Jupiter Ace is one of this machine's influences. 19:17:50 on a sun machine, hit a few keys while it's running and you're talking to FORTH :P 19:18:25 However, I'm looking to take the Ace and put it on so many steroids that, while it'd appeal to former Ace users, it'd be like re-discovering a whole new home computer all over again. 19:19:08 hehehe 19:19:10 In fact, I'm having some technical issues right now with the program that I'm writing for it. 19:19:37 It WORKS, I can cycle through all 256 colors, but the order isn't as expected. 19:28:10 --- quit: Sonarman (Read error: 60 (Operation timed out)) 19:33:30 * solar_angel is fixing driver bugs. 19:33:39 my OS to date has been mostly written on VMWare and Bochs. 19:33:49 now i have a dedicated system to test it on 19:33:55 Nice 19:34:01 and real hardware is much pickier than emulators 19:35:38 My emulator has a color palette bug that I need to fix now, some how. 19:35:45 *nods* cute. 19:35:51 --- part: uxx left #forth 19:36:03 i just fixed a bug in my keyboard driver, now it can set leds correctly... 19:36:06 still working on other things. 19:36:42 trying to get my floppy driver working 19:36:49 it works great on both VMWare and Bochs 19:36:51 but not on real hardware 19:36:59 it's not triggering the DMA controller for some reason 19:37:05 and it's returning an error code 19:37:15 thank goodness for FORTH. 19:37:22 i can interactively program the floppy driver :) 19:37:25 * kc5tja nods 19:45:15 --- join: doublec (~doublec@coretech.co.nz) joined #forth 19:45:20 hi doublec 19:45:25 hi slava 19:46:20 doublec: what's new? 19:46:22 the new documentation on Factor is great 19:46:27 thanks. 19:46:32 not much. I've been down with the flu the last few days. 19:46:36 i need to decide on a format 19:46:42 im thinking texinfo 19:46:53 i want it to be easy enough to parse so i can write an online help tool in factor and hook it up with the listener 19:47:02 that would be nice 19:47:15 texinfo is good for output to other formats too 19:47:22 PDF, etc 19:49:14 Good. Fixed the color palette bug. 19:54:07 * kc5tja does the happy dance again -- color palette bug is fixed, if, -if, and then, all work now, and by the end of tonight, the first _interactive_ Kestrel program will have been written. (The color picker program.) 19:54:27 cool 19:54:33 Though my work certainly is far from over, it's definitely high time for another release on the site. 19:54:51 coolness :) 19:55:26 OOOhhh, and you bet I'll be reposting the screenshot for the color bars "demo" too. 19:55:30 kc5tja: cool 19:55:41 Now that I got the palette bug fixed, it looks SO much better. :D 19:55:42 i'm looking forward to when i can own my own kestrel :) 19:55:50 and carry out my evil plan -- write a lisp on it ;) 19:56:12 that *is* evil :D 19:56:17 slava: That'd be neat. I have considered implementing a Lisp-based OS on it once. But then I decided to just stick to my core competencies, and let others develop that kind of thing for it. 19:56:25 lol 19:56:37 i'm considering writing a BASIC interpreter for my OS :P 19:56:39 in FORTH, of course 19:56:57 with line numbers? :) 19:57:03 There's already a BASIC interpreter in Forth on the net somewhere -- I remember seeing it. It looked fairly easy to extend for your own needs too. 19:57:17 I think it's somewhere on Taygeta, but I can't recall. 19:57:34 slava - probably with line numbers :P 19:58:24 slava, what Java graphics library are you using for your game? Is it the 3D api? 19:58:59 doublec: jogl -- its a thin JNI wrapper over the opengl api 19:59:16 ahh, I've seen it. Good stuff. 19:59:20 doublec: 1280x1024 @ 100fps on an ati radeon :) 20:00:06 nice! 20:00:11 My emulator runs at about 420kHz performance. 20:00:33 I derived this from the fact that ideal hardware will run one instruction per displayed pixel, and I get about 0.75 to 1 frame per second on my box. 20:00:51 Considering everything is written in high-level GForth code, I don't think it's all that bad at all. 20:04:01 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 20:04:17 hi 20:04:24 re LOOP-HOG 20:04:34 Kestrel Project 0.1.5 ought to be out later tonight. 20:04:43 :) 20:04:44 i put links for the Kestrel up on memnonio.com/forth.html 20:04:53 see if you can find them 20:04:54 I must have fixed at least seven fairly critical bugs tonight. 20:05:18 hey LOOP-HOG 20:05:30 also i'd love if i could get the url for my jumbo-mini web space up in the Topic Header 20:06:06 Check Out the Whats New section 20:06:15 I put up some ideas that i had for my site 20:07:52 Never Mind I see it... DUH! 20:07:53 Checking 20:07:54 :^) 20:08:28 I'm going to note that in the Mini-Blog 20:08:39 tonight that I got the Topic Line Space 20:09:28 --- join: neoBeta (bbbbbbbbbb@200-70-116-28.mrse.com.ar) joined #forth 20:10:33 I was also thinking of doing weekly banners on c.l.f. with the top 10 FORTH URLS including memnonio and the FORTH FAQ 20:10:36 --- join: I440r (~mark4@216-110-82-1.gen.twtelecom.net) joined #forth 20:10:42 Very cool. 20:11:11 I also ought to do a top 10 URLS minipage on my site 20:11:17 I'm going to write these ideas down 20:15:25 I440r: (and anyone else who is interested in seeing the most recent color bar image) http://www.falvotech.com/img/color-test-1.png 20:16:44 can i link it into my miniblog? 20:16:47 kc5 explain what that image is ? 20:17:00 cool 20:17:08 You're looking at the video output of the Kestrel emulator. 20:17:57 yea? 20:18:00 cool! 20:18:05 solar_angel: yeah, it looks a whole lot better now that I fixed that palette bug, eh? :) 20:18:11 true :) 20:18:18 I440r: Yup. It's running honest to goodness, real, FTS1001 software. 20:18:19 pretty 20:18:25 :) 20:18:35 --- quit: neoBeta ("Vision[0.9.6-0203]: i've been blurred!") 20:18:39 The software is written in 100% Forth too. 20:18:43 i was working on one for uuC at once. 20:18:59 The CPU emulator, the MIA "chip" emulator, the assembler, and the FTS1001 code itself -- ALL Forth. 20:19:02 --- quit: slava (Read error: 110 (Connection timed out)) 20:19:07 coolness. 20:20:04 All 256 of the MIA's colors are displayed. 20:20:37 cool 20:20:53 i should make a custom computer design myself sometime. 20:20:55 i miss hardware. 20:21:24 I strongly urge you to build an emulator for it first. It will help you debug your software development tools early, when it's most critical. 20:21:44 hehehe 20:21:56 i know, i wrote one for uuC, when i was still working with that architecture. 20:22:27 although now i'd most likely write the "emulator" as an addon in Icarus Verilog PLI. 20:22:35 I need to work on a few other things before making the 0.1.5 release though. 20:22:44 First, I need to finish the interactive color picker application. 20:22:54 for now, i need to fix Cy/VOS's floppy driver. 20:23:00 Then I need to add to the assembler a "makerom" command which saves the binary image compiled as a "ROM" file. 20:23:13 Then I need to make a "userom" command in the emulator to read in the ROM file. 20:23:42 i'm planning to port Mary (the PIC Forth) to Cy/VOS pretty early on. 20:24:01 As it is now, I have to type some very, very cryptic commands to get software working. 20:24:18 reset ' foo >body @ p ! run <-- to run software starting at label 'foo'. :) 20:24:31 hehehe. 20:24:38 http://www.memnonio.com/WHAT IS NEW.html 20:24:43 --- join: Sonarman (~matt@adsl-64-160-166-224.dsl.snfc21.pacbell.net) joined #forth 20:25:33 try it from http://www.memnonio.com/forth.html and then go into What's New 20:25:38 I'm still working on stuff 20:27:13 I saw the page. It looks nice. :) 20:27:25 did you see your pic stuck in my site? 20:27:44 So, can you answer me a question? 20:28:15 I440r: I have to admit -- I'm having quite a bit of fun with this project. Now that I have a real "video device" to use with the Kestrel, programming for this thing very much feels like I'm coding for raw Amiga/Atari ST hardware, which is partly my goal. I very *distinctly* feels Commodore-ish to me. I'm very, very, very, very pleased. 20:28:21 I'm sure Chuck Moore would be very proud too. 20:28:37 smiles all around 20:28:43 hehehe 20:28:49 if we can get our own good simple hardware 20:28:56 my uuC emulator had a simple video hardware as well 20:28:58 and we can maintain the hardware base ourselves because 20:29:03 its in programmable chips 20:29:07 LOOP-HOG: Yup, saw it. Looks nice. This is the first time someone has reported news on the Kestrel before I did. :) 20:29:13 then we can create some computer independance 20:29:23 and put a little bit of the micro back into microcomputing 20:29:51 LOOP-HOG: The Kestrel isn't really designed for that, but since it is all in programmable chips, I'm sure it can be hacked to support that. I'm not quite sure (yet?) how to explicitly *design* for such hardware independence. 20:30:00 I'll tackle that problem at a future date, in a later version of the Kestrel. 20:30:05 question: What does it take to be called a blogger? What is the minimum? 20:30:12 will you market the final product ? 20:30:16 that would be interesting :) 20:30:35 I440r: The Kestrel is open hardware. The ForthBox Kestrel is a commercial (kit and prebuilt) distribution thereof. 20:30:43 HW independance as far as not needing this particuar cpu because we have our own 20:31:00 LOOP-HOG: yes, in that respect, the FTS1001 is completely open, and will be GPLed. 20:31:01 Ofcourse we interface to readily available HW 20:31:26 LOOP-HOG: The video circuitry is also custom designed. The MIA chip(s) will handle interfacing to media. MIA == Media Interface Adapter. 20:31:55 I think this is the closest thing to a "true GNU" computer that has ever existed. 20:31:58 just a min... 20:32:10 kc5tja - not really... there are many GPL'ed CPU's. 20:32:11 check opencores. 20:32:38 solar_angel: yeah, but they interface to non-GNU hardware. :) 20:32:46 lol @ non-gnu hardware 20:32:50 do you have an sdram chip design too? 20:33:02 This is a unique box as far as I can tell: GNU-licensed CPU, GNU-licensed video interface, GNU-licensed schematic layout, etc. 20:33:13 cool. 20:33:15 No, I have to draw the line SOMEWHERE. :D 20:33:23 * solar_angel grins. 20:33:36 But I'm planning on using SDRAM modules found in PCs. 20:33:40 Since they're already 32-bit wide. 20:34:06 of course. 20:35:00 It is interesting to note that my emulator only supports 128K words of memory, plus another 128K for video memory (fixed distinction). So that's a total of 1MB as far as a normal PC is concerned. 20:35:15 The real-world hardware will be able to (conceptually) support 16GB. 20:35:47 hehehe 20:35:48 fair enough 20:35:56 b 20:36:17 You can easily change the amount of RAM you need by editing the emu.fs file before launching a Kestrel ROM image. 20:36:48 Just be aware that it'll change the address of all the I/O registers currently. 20:36:53 Of course, in hardware, they'll be fixed. 20:36:56 Is this design portable to optical and mechanical computers? 20:37:51 LOOP-HOG: Probably not, though it'll be far more adaptable to optical than mechanical computers. Why? 20:39:10 Last I checked, mechanical computers aren't particularly good at working at 25MHz speeds, and therefore can't generate video of any kind. 20:39:30 unless they are nanomachines, theoretically i guess 20:39:34 :) 20:40:24 * blockhead throws a gfx card on a difference engine :D 20:40:33 I'm much, much more interested in optical computers than mechanical. 20:40:53 mechanical computers ~~~ Dune 20:40:56 and Mentats 20:41:09 and the Sisterhood with its breeding programs 20:41:24 lol 20:41:42 what, no "bed of nails" graphics hardware support? 20:42:43 what they do on IX 20:42:45 Nope, sorry. 20:42:47 and Rechee 20:43:44 well, obviously tiny highly finely crafted electro mechanical systems must supplant where electronic immbeded systems would have been used 20:44:31 richesse :) 20:44:32 :P 20:44:35 we can cheat a little bit and make that tiny electromechanical system a tiny forth engine, running a program recorded on tiny grooves in a wire 20:44:56 we walk the line 20:45:18 Damn the Harkonnen 20:45:19 and seriously, skirting the proscriptions of the butlerian jihad like that 20:45:23 you ought to be ashamed of yourself 20:45:48 hrm... i wonder if my old nickname is available on this server. 20:45:52 yes, but as an engineer, we must create redundancys within redundancys 20:46:07 yep, someone's already taken it here. damnit :P 20:46:08 oh well. 20:49:35 --- quit: hash_ () 20:51:11 ooops, i was missing a disk calibration 20:54:06 Is that what the problem was? 20:54:15 yep :) 20:54:21 --- quit: I440r ("brb, rebooting to winblows") 20:54:23 What exactly is that supposed to do anyway? I was told that "feature" wasn't really used anymore. 20:54:26 apparently you have to calibrate the disk. 20:57:20 --- join: I440r (~mark4@216-110-82-1.gen.twtelecom.net) joined #forth 20:58:22 in theory, you should try 3 times, resetting and recalibrating, before giving up. 20:59:06 'nn all 20:59:20 --- quit: blockhead ("laugha while you can, monkey boy") 21:02:30 --- join: Herkamire (~stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 21:02:43 re Herkamire 21:04:03 hi kc5tja :) 21:04:27 Herkamire: Sorry, but I just have to gloat. http://www.falvotech.com/img/color-test-1.png 21:04:49 The world's first Kestrel program to produce any kind of video display. 21:04:57 hi 21:05:09 re arke 21:05:39 kc5tja: news on the emi? 21:05:41 emu* 21:05:50 See picture link above. 21:06:10 I will be making a new Kestrel project release before I go to bed tonight. 21:06:15 And will be updating the blog. 21:06:29 you got gforth to open a window? 21:06:39 I'm using SDL, yes. 21:06:56 cooool 21:07:10 Darn tootin' it's cool. :) 21:07:21 I haven't had this kind of fun programming a computer since the Commodore 64! :) 21:07:33 I have gforth code to mmap /dev/fb/0 (and a similar color test) 21:07:51 Well, the colors you see are not generated by GForth. 21:08:01 They're generated by a program running *in* the emulator. 21:08:07 E.g,. it's a real, honest to goodness Kestrel program. 21:08:14 awesome :) 21:08:21 kc5tja: where's the framebuffer? 21:08:35 arke: That question has no answer. 21:08:47 eh... 21:09:00 arke: Can you elaborate on what exactly you mean by 'where'? 21:09:06 kc5tja: at what location, in the kestrel memory range, is the video framebuffer? 21:09:15 Ah 21:09:16 It floats. 21:09:22 Depending on how much system memory you allocate. 21:09:36 Right now, it is located at $000010000. 21:09:55 err, so, $00020000. 21:09:58 kestrel won't have that resolution or color-depth right? 21:10:03 Sorry, I forgot I increased the system memory to 128K words. 21:10:15 kc5tja: interesting. 21:10:30 kc5tja: to the Kestrel, memory = memory, right? 21:10:31 Herkamire: What you're seeing is the emulation of the MIA chip's 640x480 resolution, 256 color fixed palette. 21:10:51 arke: Again, what are you asking again? 21:11:09 arke: The Kestrel has memory-mapped I/O 21:11:16 kc5tja: the kestrel CPU itself makes no distinction between "data" and "code" 21:11:19 kc5tja: right? 21:11:22 Correct. 21:11:42 cool. 21:12:17 The Kestrel emulates at about 420kHz on my machine -- about as fast as a Timex Sinclair ZX-80. 21:12:23 (in terms of overall run-time performance) 21:12:29 not too fast :P 21:12:48 hrm. 21:12:51 then again 21:13:12 in Kestrel terms, without memory stuffs, that would be 420000 instructions per second --- nice. 21:13:13 arke: You are mistaken; the CPU emulator and the MIA emulator are written in 100% high-level GForth code. It's actually very respectable performance for GForth. And also remember that this is a very brute-force implementation. NO attempts at optimization have been made. 21:13:18 kc5tja: is it emulating at about the speed it will really run at? 21:13:50 Herkamire: have you tried to emerge gforth 0.6.2 on your system? 21:13:58 Herkamire: No. Real-world hardware will run at 25.175MHz. Note that the emulator DOES maintain the one instruction per video dot displayed relationship. 21:14:34 kc5tja: hrm... 21:14:35 The real hardware will therefore be about 60 to 80 times faster than the emulator. 21:15:01 kc5tja: blanking the screen would take quite a while then, hih? 21:15:02 Sonarman: no, I have gforth 0.5.0 21:15:21 arke: Yes, it takes some time. It takes about a second or so. 21:15:29 ick 21:15:48 Keyboard response is amazingly agile though, all things considered. 21:16:10 Just don't update the whole screen every time you change a single dot on the display, and you'll be amazed at how well it actually does run 21:16:33 how to memory words relate to pixels? you doing bit-planes? 21:16:45 No. Packed bytes. 21:16:53 There are four pixels per memory word. 21:17:01 how many bits per word? 21:17:05 ok 21:17:06 Bits 31-24 represents the left-most pixel (e.g., big-endian pixel ordering). 21:17:56 Each pixel has the following bit mapping: RRmGGBB, where RRm forms a 3-bit red intensity, GGG forms a 3-bit blue intensity, and BBm forms a 3-bit blue intensity. 21:18:04 Note that the m bit is re-used for both the red and blue intensities. 21:18:28 (m bit so named because it is the "magenta" bit) 21:18:55 * Herkamire is confused about bit numbering... 31-24 is the insignificant, rightmost bits right? 21:18:57 kc5tja: assuming a = fb and TOS = 0, then one loop would be dup a! ja HERE, which is 3 instructions, times 640 times 480 = 921600 cycles 21:19:08 kc5tja: am I somewhat right there? :) 21:19:12 No. They're the most significant bits. 21:19:24 ok good 21:19:36 kc5tja: oh, nevermind, forgot the increment' 21:20:23 kc5tja: dup !a+ ja HERE 21:20:27 arke: dup !a+ only takes two cycles. Times 307,200 pixels, that's 615,000 cycles (roughly). That's about 1.5 seconds. 21:20:35 kc5tja: still 3 cycles 21:20:42 kc5tja: what about the jump? 21:20:46 I don't jump. 21:20:50 I unroll my loops. 21:20:50 ... 21:21:03 lol 21:21:04 mmkay 21:21:13 1.5 seconds for the emulator 21:21:17 : 480L 100L 100L 100L 100L 80L ; 21:21:24 : 100L 80L 10L 10L ; 21:21:29 : 10L L L L L L L L L L L ; 21:21:33 : L ...etc... ; 21:21:37 lol 21:21:39 mmkay 21:21:56 It works very well. 21:22:09 And it doesn't involve a lick of stack juggling to implement. No loop counters either. 21:22:12 very convenient. 21:22:22 yeah 21:22:26 wowness. scary :P 21:22:45 hi solar_angel 21:22:57 solar_angel: It works, and it's fast. 21:23:24 kc5tja: 0.02 seconds for the real CPU? 21:23:36 hello arke :) 21:23:38 according to my calculations.... 21:23:43 kc5tja - you have a point. 21:23:43 (which might be wrong) 21:23:49 solar_angel: how are you? :) 21:23:54 arke: Yes, 0.25 seconds approximately. 21:23:59 i'm good :) 21:24:05 just got my floppy driver more or less working 21:24:05 kc5tja: actually, I got 0.02 21:24:18 arke: Yeah, I missed the zero. I meant 0.025. 21:24:20 0.0246 to be exact 21:24:28 kc5tja: that's awesome performance 21:25:04 Page flipping and other graphics operations will be very nice indeed, especially thanks to the fact that I have *three* distinct address registers (good for two-source-one-destination operations, which is precisely why I added them). 21:25:25 But as if that weren't enough, the real-world MIA chip will have blitter support in it, thus alleviating even more burden from the CPU. 21:25:27 kc5tja: I don't know about the x86 world, but on PPC the bits are numbered 0..32 from left to right. 21:25:35 kc5tja - if i was going to design video hardware in this day and age, i'd make sure i had hardware overlay support. 21:25:41 bit 0 being the most significant, left-most bit 21:25:53 kc5tja: aawesome 21:26:00 kc5tja: :) 21:26:13 kc5tja: how are you going to do Keyboard? 21:26:19 this is the way it is displayed in the Motorola specs for my processor, and the way bits are encoded into instructions. 21:26:25 Herkamire: That's an IBM retardation. 2^0 is never the most significant digit, yet in all IBM processors, bit 0 is universally considered to be the most significant bit. Why? It ruins virtually every mathematical property that you can name. 21:26:37 arke: Standard PS/2 port for both keyboard and mouse. 21:26:58 --- quit: doublec ("Leaving") 21:27:09 Herkamire: Thankfully, C compilers are smart enough to re-arrange the bit numberings for you. :) 21:27:49 kc5tja: how does the OS query irt 21:27:52 ? 21:27:57 C compilers? what does that have to do with anything? 21:27:58 That remains to be seen. 21:28:01 I'm confused 21:28:18 Herkamire: Because in C, 1<<0 is 1, 1<<1 is 2, 1<<2 is 4, etc., as you'd expect. 21:28:47 kc5tja: oh, so your current emu has no I/O? 21:28:48 I don't see what left/right shift has to do wit bit numbering 21:29:15 arke: Except for the fixed frame buffer, the only other I/O it has is a fake UART that runs at "infinite speed." 21:29:15 whether you number left->right or right->left it doesn't effect which way left is, or which end is significant 21:29:23 UART? 21:29:24 FORTH: because no matter how good you are you can't think of everything 21:29:50 LOOP-HOG - i don't get it. 21:30:03 nm 21:30:09 in every numeric representation I've seen, the significant digits are to the left. 21:30:22 Herkamire: There are nice mathematical properties you can readily make use of if digit 0 is the least significant digit. 21:30:52 kc5tja: that seems to me to be a better way to number them too 21:31:11 Herkamire: As it is with the 32-bit PowerPC assembly world, you must first evaluate (31-n) to get the proper bit position N, and for 64-bit PowerPC processors, you need (64-n). 21:31:40 yeah, then it's really bad 21:31:51 that's terrible 21:31:52 Not that I'm saying it isn't workable (obviously, this convention has started in IBM mainframes as far back as the 60s); but it's not at all very optimal. 21:32:18 so for 64 bit instructions, the low bits are 32..63 instead of 0..31 21:32:20 Fortunately, compilers can hide much of that from you, and those kinds of equations can be done at compile-time. 21:32:23 But still... 21:32:29 Right. 21:32:33 does x86 number the other way? 21:32:53 Yes, it uses (interestingly enough) big-endian bit ordering. 21:33:12 NOTE: 21:33:53 If PowerPC loaded and treated 8-bit and 16-bit data by left-aligning the data instead of right-aligning, then it wouldn't be nearly so bad. This is a convention that Chuck uses in his custom chips to work with smaller data quantities. 21:34:28 ?? 21:34:32 As it is, you can often "work around" the PPC bit-ordering in a couple of ways. 21:34:44 The first is to treat all bit fields as the 1s compliment of the desired bit. 21:34:51 The other is to treat rotate left instructions as rotate right. :) 21:35:13 This will usually get you out of any particular trouble in most cases. 21:35:14 I keep tweaking when you say bit-ordering. There's nothing wrong with the order of the bits. it's just the numbering scheme that sucks. 21:35:31 Herkamire: Well, to me, that's 'bit ordering.' 21:35:53 I'm also quite confused. 21:36:08 are you suggesting a programming stratagy I could use for ppc? or a way that ppc could be improved? 21:36:23 --- quit: solar_angel ("*until later*") 21:36:25 it looks like how you think ppc should work 21:36:38 Herkamire: None of the above; you're already quite familiar with the PPC. There is no point in changing, since it'll only make you less productive. 21:36:55 right. 21:36:57 I was talking about from the perspective of someone who is new to the PPC architecture, who is wholesale unfamiliar with IBM's bit numbering policy. 21:37:11 I'd be happy with switching to numbering the bits from right-left 21:37:23 I'm sure IBM had a very real reason (back in the 60s) for labeling the bits as they did. 21:37:31 (except that I'd take me a while to find all the places in herkforth where I reference bit-positions) 21:38:02 Herkamire: I would suggest just doing what you're familiar with, and be consistent. 21:38:13 maybe... or they just numbered them left to right because that's how you generally number things. 21:38:23 Perhaps 21:38:29 yeah, I'm not going to change my stratagy 21:38:39 I finally feel like I understand it 21:39:00 One thing where IBM's bit numbering DOES make sense is in graphics though. 21:39:07 Where pixel 0 corresponds with bit 0. :) 21:39:25 yeah 21:40:10 fortunately the confusion with 64 and 32 bit numberings doesn't effect me ATM because I don't use/have 64 bits 21:40:52 yeah, the bit numbering does make a lot of sense when you're working with a series of bytes in one register 21:44:23 It'd be nice if the PPC instructions had one extra bit to indicate left/right ordering preference. 21:44:43 Although, frankly, you can do that easily enough by taking the 1s compliment of the bit fields. 21:46:44 OMFG 21:46:46 fuck 21:46:50 this guy I know 21:46:54 I'm trying to teach him IRC 21:46:59 and every second question is 21:47:03 "how do u dl shit" 21:47:05 FUCK 21:47:18 IRC != FILE TRANSFER FUCKTARD aarghghg 21:47:21 arke: Welcome to the wide world of technical support. 21:47:33 its not that 21:47:38 he thinks IRC is for file transfer 21:47:39 and its not 21:47:42 This is what I have to deal with 40 hours week, every week, for the rest of my current employment. 21:47:50 See above. :-) 21:48:17 heh 21:48:19 but 21:48:32 kc5tja: you work for an ISP or hosting facility? or both? 21:48:36 the point I'm making is that everybody is giving this impression that IRC is this 133t downloading thing 21:49:24 We are a wholesale ISP that supports both simple and complex hosting, colocation, etc. 21:50:01 arke: blame the NYT: http://wwmax.ath.cx/writings.php?a=view&id=2 :) 21:51:40 OK, so it's not so bad when people call up saying "my email is broken" and it's because they are not connected to the internet 22:07:34 --- join: topher (~chris@lsanca1-ar42-4-61-175-184.lsanca1.dsl-verizon.net) joined #forth 22:11:12 topher: JUST ASK HIM ALREADY ^__^ 22:11:49 arke: later, i dont mean to be rude but i dont care _that_ much this late at night 22:12:04 topher: :) 22:12:10 topher: or you could just read the site. 22:12:29 gah 22:12:30 topher: falvotech.com -> Kestrel -> CPU 22:12:30 leave me alone 22:12:32 im tired 22:12:32 lol 22:12:34 lol 22:12:38 topher: drop snooze then 22:12:46 i can handle the irc 22:12:46 that's it 22:12:47 hehe 22:13:33 teehee 22:13:34 :) 22:17:21 maybe I'm to tired to do anything besides IRC... I'm not doing much besides being overly happy that I got my terminal to not beep ever again 22:17:36 lol 22:18:05 --- quit: onetom (Remote closed the connection) 22:21:20 --- quit: LOOP-HOG () 22:21:47 beep 22:21:49 beep 22:21:50 beep 22:21:51 beep 22:24:37 FUCKING HELL! 22:24:46 Why is it crashing **THIS** FUCKING time!?!?!?!? 22:24:56 Check THIS shit out: 22:25:01 if I have the following code: 22:25:22 ': rbar frame 5 + #, a!, $E0E0E0E0 #, bar bar bar bar bar bar bar bar drop, ;' 22:25:23 it works. 22:25:27 BUT, if I factor out the bars: 22:25:39 ': rbar frame 5 + #, a!, $E0E0E0E0 #, scale ;' 22:25:50 ': scale bar bar bar bar bar abr bar bar drop, ;' 22:25:52 it CRASHES!! 22:25:54 WHY?!?!? 22:26:03 * kc5tja bangs his head on the fucking table!!! 22:32:50 I think I found it. 22:32:54 * kc5tja crosses fingers... 22:33:18 Yes, that solved it. 22:33:22 yay 22:33:36 For a minute there, it was *really* looking like it was going to be one of those "work until 4AM" bugs. 22:37:52 yay :) 22:38:07 I am gratefull that I haven't had any 'til 4am bugs in a loong time 22:39:00 --- join: LOOP-HOG (~jdamisch@63.105.22.119) joined #forth 22:39:30 I don't know if it's luck, or skill, or that herkforth is already a success 22:42:31 I think there is a critical mass that one reaches in his tools, that when everything finally clicks, you can rely on the mathematical correctness of the system. 22:44:15 Damn, this color picker tool is so close to being "done" and releasable. 22:44:23 But it is not yet. And it's almost bed-time! :/ 22:45:23 --- join: onetom (~tom@novtan.bio.u-szeged.hu) joined #forth 22:46:04 :) 22:46:57 --- quit: LOOP-HOG () 22:48:50 --- join: Herkamir1 (~stjohns@c-24-218-95-147.ne.client2.attbi.com) joined #forth 22:57:57 http://www.falvotech.com/img/color-test-2.png 22:58:09 The color picker demo is done. :) 22:58:22 yay 23:05:47 --- quit: Herkamire (Read error: 110 (Connection timed out)) 23:07:11 --- quit: Herkamir1 ("bedtime, and I keep getting disconnected anyway") 23:07:59 --- quit: topher ("Client Exiting") 23:11:06 --- join: solar_angel (~jenni@Toronto-HSE-ppp3685160.sympatico.ca) joined #forth 23:12:06 --- quit: htp123 ("*") 23:36:43 --- quit: solar_angel ("*again i go*") 23:42:33 --- join: LOOP-HOG (~jdamisch@sub22-119.member.dsl-only.net) joined #forth 23:51:30 OK, my weblog is updated. 23:51:39 The screen shots are linked to. 23:52:17 And I do believe I will now be going to bed. 23:52:28 --- quit: Sonarman ("leaving") 23:53:48 ok good night, i did my last update too 23:53:57 307 lines 23:54:00 307 links 23:55:43 the size is about a 3rd of a meg for everyhthing up there including maybe a few unlinked picture files 23:55:51 pretty compact i guess 23:59:08 i never thought about looking at this stat before but 23:59:16 378323 307 / . 1232 23:59:27 where 1232 is the #bytes/link 23:59:32 :^/ 23:59:38 for what it's worth 23:59:59 --- log: ended forth/04.06.13