00:00:00 --- log: started forth/04.03.14 00:05:37 :) 00:16:11 --- quit: chris-misato ("leaving") 00:16:28 --- join: chris-misato (arke@melrose-251-251.flexabit.net) joined #forth 00:39:38 --- quit: chris-misato ("Lost terminal") 01:05:45 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 01:08:39 --- quit: Nutssh ("Client exiting") 01:45:51 --- quit: ayrnieu (Read error: 104 (Connection reset by peer)) 01:48:49 --- join: ayrnieu (julian@65.169.246.30) joined #forth 03:11:43 hi all 03:11:44 :) 03:16:40 * chris-xp is away: zZzZ 03:17:12 * chris-xp is back (gone 00:00:18) 03:17:16 come on 03:17:18 skandinavian friends, talk to me!!! :) 03:17:20 Robert, mur, I know you guys are awake!!! 03:47:03 * chris-xp is away: brb --- reconfiguring desk 03:47:10 --- quit: chris-xp (Read error: 104 (Connection reset by peer)) 04:46:09 --- join: chris-cyg (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 04:47:32 --- quit: chris-cyg (Client Quit) 04:49:59 --- join: chris-cyg (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 05:37:01 --- nick: mur_ -> mur 05:55:26 --- quit: chris-cyg (Read error: 110 (Connection timed out)) 06:23:21 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 06:24:56 Hi tathi. 06:25:55 Hi Robert. 06:50:41 --- join: ribbon (~ribbon@cpc1-bolt4-5-0-cust161.mant.cable.ntl.com) joined #forth 06:51:34 Hi ribbon 06:51:44 hey tathi 06:52:07 You new here? 06:52:30 Yep! 06:52:39 Cool. Do much forth? 06:52:40 Mostly just lurking... 06:53:12 I read about it when I was a kid, but I didn't take it forward ~ 06:53:21 Ah. 06:53:34 You? 06:54:53 I got into forth about 3 years ago. 06:55:11 And have been working with it ever since? 06:55:20 Though mostly I waste time messing around with writing forth engines rather than writing code that's actually useful. 06:55:31 :) 06:55:34 Don't we all? ;) 06:55:42 :) Of course. 06:55:55 What other languages have you done? 06:56:24 Mostly assembly language, actually. 06:56:32 Though I was into C and C++ for a while. 06:57:07 Tried any of the high brow languages? 06:57:08 And I've played a little bit with smalltalk, lisp, python, haskell, etc. 06:57:13 * ribbon nods 06:57:48 I'd probably just use squeak if I could stand the UI. 06:58:21 Squeak doesn't run fast enough on my teeny 300Mhz Celeron :P 06:58:28 :) yeah. 06:58:36 :( 06:58:54 So what's you thing? 06:59:17 (Mine is provably correct software.) 06:59:19 you=your 07:00:06 I want a system that is simple enough that I can understand the whole thing. :) 07:00:39 So what languages do you do? 07:00:59 Basic ;) 07:01:17 x86 assembler, C++, C, haskell, prolog, lambda, etc, etc 07:01:44 Hmm. 07:02:26 Made any in roads towards your goals? 07:02:27 --- join: chris-cyg (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 07:02:39 I've always thought that provably correct software would be more trouble than it was worth, but I admit I've never really looked into it... 07:03:12 A little bit...I keep getting distracted by finding out about other people's interesting work :) 07:03:44 I blame university -- it's their fault ;) 07:04:30 I'm currently working on an assembler (for PPC) with some of the extensibility and interactivity of Forth. 07:04:39 It's a big problem to try to attempt, to be sure ~ 07:05:51 It just seems like you never get down to basics. 07:06:03 There are so many different sets of axioms you could start from. 07:08:00 I wouldn't have thought it'd be the axioms that are the problem... 07:08:43 ...it's the for proofs of bits of maths that's (one of) the problem(s)... 07:09:14 yeah 07:09:40 What are you developing your assembler on? Another PPC? Or you are you going from binary to self-hosting in one step? 07:10:13 oh. I'm running linux on my Mac box. 07:11:47 Writing it under the GNU assembler, and keeping it simple, so it should be able to build itself relatively soon. 07:13:15 Do you do the whole tamper-free thing? 07:13:58 Starting with the design and construct of your own hardware...? ;) 07:14:03 +ion 07:14:20 (It's something I'll want to do...) 07:14:33 Maybe one of these days. 07:14:37 (Hence my interest in forth.) 07:15:47 I don't really have any expertise in hardware, so I'll put that off until I have software I'm (relatively) happy with. 07:16:17 kc5tja is doing some interesting stuff. 07:16:28 Learn verilog -- you'll wonder how h/w differs from s/w ;) 07:16:32 (s)he is? 07:17:02 He. 07:17:16 He's starting an electronics kit company, planning a forth box with a 6502 or 65816 or something. 07:17:40 Does he visit here? 07:17:45 And then another one with a custom CPU in programmable logic, later. 07:17:46 yeah. 07:18:22 He's here at some time on most days. 07:19:45 One day, I'll get around to it 07:20:09 http://www.falvotech.com/cgi/fsforth/ForthBoxComputer 07:23:30 The beginners kit looks good 07:24:38 yeah. 07:27:58 * ribbon 's understanding of computers was glean through the Usborne Electronics series 07:28:03 I loved those books. 07:29:43 hmm...Usborne...that brings back memories. 07:30:27 My parents sold nuts at flea markets while my dad was going to Chiropractic school. 07:30:46 We were friends with this family that had a book stall, they had all the Usborne stuff. 07:31:04 :) 07:31:39 I was a book worm that slowly my way through the local library's children section :) 07:31:58 yup yup. 07:32:42 hmm, sounds like our chicks are here, have to go count them and get them all settled in. 07:32:45 brb 07:32:49 ok 07:33:12 * ribbon 's head hurts 07:33:19 * ribbon decides to go eat breakfast 08:00:23 --- quit: ribbon (Read error: 104 (Connection reset by peer)) 08:00:24 --- join: ribbon_ (~ribbon@cpc1-bolt4-5-0-cust161.mant.cable.ntl.com) joined #forth 08:00:53 --- nick: ribbon_ -> ribbon 08:15:21 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:18:36 I just looked at your new herkforth 08:19:02 it's come a long way since the last time I looked at at. :) 08:25:42 but some of your documentation links don't work (case issues...) 08:39:14 I was afraid of that 08:39:34 I clicked around for a bit and didn't see any upper case links. 08:39:51 yeah, It's shaping up. 08:39:56 there's some cool editor functions. 08:40:36 oh man, it would be so easy to fix those links. 08:40:57 I gotta go though. 08:41:22 There's a few things vim can't do. like rename 08:41:35 (and prev-block and next-block of course :)) 08:43:36 I just whipped up a little script to pull down wiki pages with "herkforth" in the name and fix them up a little. 08:45:42 cool cool 08:46:06 oh, perl is really cool sometimes 08:47:47 s/href="([^:"]*)"/print 'href="' . symbols_to_underscore(to_lower($1)) . '"';/ge 08:48:22 cronk out 08:57:28 --- join: dasbear (~chatzilla@adsl-64-219-100-33.dsl.lgvwtx.swbell.net) joined #forth 09:20:38 --- quit: dasbear ("ChatZilla 0.9.52B [Mozilla rv:1.6/20040313]") 09:49:42 --- join: Serg (~knoppix@193.201.231.126) joined #forth 09:49:51 hi ! 09:49:58 Hi Serg 09:49:59 * Serg continues w/ GPRS 09:50:24 this time i run ircII from 'su knoppix', not root ;)) 09:50:49 hi 09:50:50 :) 09:51:17 ze damn system has no even SYSLOGD by default, r00t shells on all Alt-F1-F6 09:51:33 Xtremely insecure ;(( 09:52:45 i tryed to get rid of /MOTD lame way : just wipe it out of binary by hexedei 09:53:03 hexedit 09:53:09 it stayed ;((( 09:53:34 --- quit: Serg (SendQ exceeded) 09:54:17 --- join: Serg (~knoppix@193.201.231.126) joined #forth 09:54:22 hah 09:55:29 wow, ayrineu (cleverdra) here ! 09:57:05 * Serg gonna tighten IPTABLES 09:59:41 today i was testing my new old camera, got a few funny pictures 10:03:49 oops, i remember password but forgot number of my ICQ ;)) 10:03:54 --- join: blockhead (default@dialin-524-tnt.nyc.bestweb.net) joined #forth 10:04:32 --- join: networm (~networm@L0632P23.dipool.highway.telekom.at) joined #forth 10:06:24 hi 10:12:41 I gave a knoppix cd to my father, I wonder how he's going with it 10:14:20 * blockhead has been thinking of knoppix but is on a 56k so the download would take weeks :) 10:14:24 i was trying to install knoppix on my old computer before.. but it's quite slow. needs like 15 minutes until KDE is booted 10:14:41 fridge: yeah ! :))) 10:14:55 15 minute boot? yikes! that makes windwos look good! 10:15:07 windows doesn't boot off a cd 10:15:11 i nearly wrecked my partition table w/ knoppix-install ;(((( 10:15:20 yep. i think the 32MB ram are not enough 10:15:22 windows doesn't detect and configure all devices on every boot 10:15:23 oh yeah. good point :o 10:15:43 the detection is fast.. from minute 5 to 15 is the KDE initialization 10:15:50 32 ram ? console only !! 10:15:56 yeah 10:16:04 kde is crazy with such specs 10:16:22 need fvwm 10:16:26 or other lightweight WM 10:16:27 i wanted to give it to my sister.. 10:16:42 when on p166/32, i was using Litestep or kinda like it 10:17:01 man, don't use KDE on that 10:17:03 :) 10:17:20 good things to use are *box, wmaker, twm, or evilwm 10:17:20 * Serg dreams of Linux guru girl ;))))) 10:17:25 Serg: yay! 10:17:54 yep, must try a different wm 10:18:27 evilwm works well 10:18:32 chris: one girl wrote a FreeBSD kernel modules w/o realizing what FreeBSD is and how cool it is 10:18:39 just a handful of things to memorize, and you're good to go 10:18:50 Serg: huh!? 10:19:16 * blockhead seconds the "huh?" 10:19:33 yeah, she had a need to add some LEDs to server 10:19:52 actually, their research group (biology/ecology) 10:20:31 they took some RTFM and in a few weekends added /dev/lamp1.../lamp8 on LPT 10:20:50 few evenings, err 10:21:05 heh 10:21:06 lol 10:21:07 :) 10:21:10 I wanna meet her. 10:21:19 /dev/lamp -- hehe 10:21:37 i dated her on a Tolkin fan festival, but she's married ;)) 10:21:37 sounds like a hard way to do it 10:21:47 ? 10:21:54 what's the easy way ? 10:23:08 'lamp' is lightbulb, if one did not understand 10:23:21 BLINKENLITES 10:23:29 :) 10:23:31 ok, understood :) 10:24:23 fridge: so what's the easy way to do so ? 10:24:25 ^_^ 10:24:26 ^_^ 10:24:27 ^_^ 10:24:28 ^_^ 10:24:33 asian smiley flood!! 10:24:34 waaah! 10:25:32 i see only storing the state byte somewhere and messing w/ bit masks 10:25:34 "asian smiley", I always thought ^_^ was a bat 10:25:45 * blockhead is a blockhead :D 10:26:05 IMHO, ^_^ is a wolf or fox 10:26:14 uh 10:26:19 imho is an oppinion 10:26:24 and ^^ is an expression 10:26:31 :p 10:26:35 ^v^ 10:26:51 vampire bat? 10:27:26 bats in a turret = flies in head = crazy 10:27:44 ^_^ = ASIAN! 10:28:01 chris-cyg: whatever 10:28:11 Serg, I would've just grabbed a relay board controlled by serial port or parallel 10:34:39 keep talking. 10:35:07 * Serg needs such a girl, hard needs ;)) 10:35:30 http://kitsrus.com/kits.html#k108 10:36:45 ?? 10:37:02 * Serg has very expensive connect, won't go web 10:38:48 sorry to hear 10:39:03 it was info on such a relay board 10:39:26 aha ! 10:39:32 'train is gone' 10:40:06 multiline LCD available for LPT, controllable at user level, no kernel modules 10:41:48 --- quit: blockhead (Read error: 113 (No route to host)) 10:42:29 --- join: blockhead (default@dialin-138-tnt.nyc.bestweb.net) joined #forth 10:46:50 --- join: Sonarman (~matt@adsl-64-171-254-249.dsl.snfc21.pacbell.net) joined #forth 10:46:50 --- quit: networm (Read error: 104 (Connection reset by peer)) 10:56:04 --- quit: Serg ("Leaving") 10:58:06 --- join: I440r (~mark4@198.70.1.207) joined #forth 11:02:12 --- join: Nutssh (~Foo@gh-1081.gh.rice.edu) joined #forth 11:15:14 Hi 11:18:38 hey hey 11:28:36 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 11:28:50 --- mode: ChanServ set +o kc5tja 11:31:07 Hi kc5tja 11:32:08 im in arizona :) 11:32:20 only 10 hours of drive time left 11:35:17 Heheh :D 11:35:22 hi kc5tja, I440r, Robert 11:35:22 ROAD TRIP!!! :D 11:35:34 I440r: driving up the 101 at all? 11:35:42 --- quit: I440r (Read error: 54 (Connection reset by peer)) 11:35:49 ... 11:36:03 --- quit: ayrnieu ("Changing server") 11:36:04 --- join: ayrnieu (julian@65.169.246.30) joined #forth 11:39:22 * kc5tja is hashing out some of the details to be used by the kestrel's serial loop interface. 11:39:35 cool 11:39:45 It's looking more and more and more like it's going to borrow quite heavily from SerialBus protocol. 11:39:57 so? 11:40:08 patent problem? 11:40:16 SerialBus == IEEE 1394. 11:40:32 No, but my bus is fundamentally different from IEEE-1394. 11:40:46 * blockhead didn't know that :o 11:41:06 Because it's speed is in the vicinity of 1Mbps, I can't use the huge-ass headers that SerialBus uses. :) 11:41:28 makes sense 11:41:37 And because I'm using 65C22 VIA chips to implement the bus, I can't use 8b/10b encoding to encode the one special character it uses to achieve synchronization. 11:42:20 And since most of the devices hanging off the ring will be PIC chips, which have very little RAM, maximum packet sizes are going to be very small. 11:42:52 make packet-size == block size ? 11:43:04 or is that too big 11:43:04 blockhead: Huh? 11:43:12 blockhead: That's about 4x too big. 11:43:27 oh. never min then 11:43:37 Most of the devices hanging off the ring will have packet buffers totaling maybe 32 bytes. 11:43:41 :) 11:43:49 E.g., not a whole heck of a lot of space to play with. 11:43:53 Even 256 bytes is *really* pushing it. 11:44:04 I had a half assed idea of makineg a packket the same size as the block size you you could throw incoming packets to the hd for later parsing/decoding 11:44:47 but the more I think about it, the sillier it sounds 11:44:54 so never mind :) 11:44:56 --- join: I440r (~mark4@198.70.1.207) joined #forth 11:45:10 256 bytes isn't an unreasonable size. 11:45:29 The start of frames are identified not with a special character, but with the passage of time. 11:45:50 In SerialBus, when the ring isn't in use between nodes, the downstream node constantly sends IDLE frames to the upstream node. 11:45:57 In my network, I simply don't send anything. 11:46:07 nicer that way 11:46:16 but the passage of time if I *DID* send something is what identifies the idle condition. 11:46:22 Yes, and it uses less power, and emits less RF. 11:46:39 heheh. stealth RF processing :D 11:46:47 anti-Tempest design 11:47:06 Network headers are 4 octets in size: the start of a frame is always $03, indicating 3 bytes in the header follows. Then comes the destination address byte, the source address byte, and finally, the count of data bytes that follows. 11:49:25 So the way nodes work is they run a timer after every byte that is received. If the timer expires, then the next byte received is assumed to be the start of another frame. 11:49:56 This has important implications. One of which is that it very effortlessly permits me to exploit another SerialBus feature: packet insertion. 11:50:21 later, going to work 11:50:23 be back in 9 hrs 11:50:29 This produces a simple, low-cost network that has quality of service features that rival those of ATM, since nodes transmit pretty much whenever they want to, and yet, there is never any collisions. :) 11:51:33 kc5 that sounds like jabber :P 11:51:57 how do you make it collision free ? 11:52:29 I440r: before I leave: are you going up the 101 at all? 11:52:33 kc5tja: how complex is this network? just one Kestral hooked to one PC? or is it more complex? 11:52:44 im on 40 11:52:49 heading for the LA area 11:52:49 blockhead: How complex do you want it to be? 11:52:51 ish 11:53:01 I440r: aah, then not. 11:53:09 :) 11:53:15 I440r: if you were going north up the 101, you'd be driving by my house :) 11:53:20 would that go near you ? 11:53:21 blockhead: It's optimized for device control, but I'm also going to use it to network several ForthBoxes together. 11:53:22 ooh heh 11:53:31 kc5tja: ok. cool. 11:53:46 blockhead: Make no mistake: it is a *real* network protocol. 11:53:51 ok, be back in 9 hours! 11:54:00 Just like Firewire/SerialBus is. 11:54:26 kc5tja: all of your talk of the small packet sizes and speed restictions made me think it was a minimal network 11:54:35 my mistake 11:55:24 Why can't it be minimal and useful at the same time? 11:55:32 Ethernet is a very minimal protocol, when you examine it. 11:55:45 early hardware implementations were almost too simple to believe (NE-2000 anyone?). 11:55:53 * blockhead is just a blockhead I guess :/ 11:55:54 that's why it beat token ring -- it was *cheap*. 11:56:06 Also, I believe heavily in layering. 11:56:17 The frame structure is very, very simple, but it's not the end of the story. 11:57:10 The frame protocol is kept very simple deliberate. On top of that, I can implement IP, (and from there, pretty much anything else I want). 11:57:51 hmmm: Kestral as a home internet server/gateway/router/firewall? 11:58:04 --- quit: ayrnieu (Read error: 104 (Connection reset by peer)) 11:58:13 blockhead: It won't be fast enough for that. 11:58:30 ok 11:58:45 hey check this out: 11:58:48 blockhead: Kestrel is just a homebrew computer -- a hobbiest's dream machine: cheap, hackable, and imminently open to programming however you want. 11:58:48 vlist _vl_one d_prt_str here there _stdin_edit _stdin_ins _std_backspace in_buffer backspace _var _constant crlf 1+ _dos_seek > close writebyte readbyte open _fcreate _e_open swap readchar r> >r C@ c! -rot rot 2- 2+ 1- 1+ = num emit @ ! xor or and / * - + over branch branch0 drop dup not _exit _ret 11:59:17 thats the wordlist for my forth so far. I got vlist written :D 11:59:30 But I think it's important to equip it with some form of reasonable expansion architecture that is easy to implement for other homebrewers. Kestrel's network pretty much can't be beat for that purpose. 11:59:57 I take it vlist lists the words in the current vocabulary? 12:00:04 :D yah 12:00:10 --- quit: tathi ("leaving") 12:00:53 words beginning with a "_" are sort of internal words, shoudl not be used directly by the user 12:02:35 /me nods 12:03:17 * kc5tja just realized something: i want the computer to be usable without any form of storage devices on it at all. 12:03:25 hence, everything it needs must be in ROM. 12:03:38 kc5tja: like my old zx81 :D 12:03:53 blockhead: You saw the specs for the kestrel; it's heavily ZX81 inspired. 12:03:57 But it's like any old 8-bit computer. 12:04:09 Commodore 64, Atari 800, Apple IIgs, ... all were self-sufficient. 12:04:21 kinda nice, that 12:04:26 i lived only a few miles from sir clive sinclair :) 12:04:29 never saw him tho 12:05:20 VLIST is fig forth, innit? 12:05:40 madgarden: lemme check that 12:06:01 yeah 12:06:07 it is 12:06:08 And probably F79 too. 12:06:19 Forth 79 used "WORDS" 12:06:27 Oh... 12:06:52 kc5tja, and YES! Forth in ROM would rock, just like my beloved C64. 12:07:07 vlkist is ghey 12:07:17 madgarden: Forth always WAS slated to be in ROM. 12:07:18 words is more descriptive 12:07:46 but vlist sounds cooler so that is what I have chosen for my forth 12:07:54 --- quit: Sonarman (Read error: 110 (Connection timed out)) 12:07:54 I440r, WORDS is ghey... 0 65536 DUMP all the way baby! 12:08:18 :) 12:08:29 ;D 12:08:31 you mean type right ? 12:08:34 The problem I'm having is if I want to store something somewhere, I have to either talk to the IDE devices (which is not considered an integral part of the system design. 12:08:34 :) 12:09:05 Actually, words is a bit useless when you have 10 pages of unalphabetized words scrolling by and you want to find a particular word. 12:09:11 I originally was going to have an IDE interface, but someone raised a good point: it locks in the storage options for the users. 12:09:18 I like MINFORTH's more-ified WORDS, though. 12:10:03 u seen the isforth words ? 12:10:06 kc5tja, so what are you considering for an alternative? 12:10:31 I440r, no. 12:10:52 madgarden: I have no other alternative at this point. I'm going to have precisely one IDE bus. 12:10:54 u8 mean u don t have isforth ? 12:10:57 ghasp! 12:11:37 Nay, I do not! Sorry, but I shall grab it. Is there a build I can run under Win2K? 12:11:54 * blockhead googles isforth 12:14:09 isforth.clss.net 12:14:16 ive started to put some documentation up there 12:14:20 still alot to go tho 12:14:25 * kc5tja has considered moving the IDE interface off the VIA parallel interfaces and onto the serial loop, as a node on the loop. 12:15:40 But, that would make things insanely slow for storage purposes. 12:15:51 (unless I blanked the screen) 12:16:21 Hmm. :-/ 12:16:45 blanking the screen to do a disk access. That would be how the zx81 would have done it, had it had disk access :D 12:17:15 I440r, isforth + Win2k = ? 12:17:29 madgarden: It doesn't exist. isforth is for Linux and BSD platforms only. 12:17:56 Nuts. 12:18:05 Cygwin? 12:18:17 Doubtful. 12:18:21 NUTS! 12:18:41 * madgarden goes back to playing with Minforth, FICL, and Forthy. 12:19:00 * madgarden doesn't forget about Blazin' Forth, of course. 12:19:36 --- quit: I440r (Read error: 104 (Connection reset by peer)) 12:21:18 With the computer spending 75% of its time refreshing the display, the 1Mbps throughput peripheral interconnect ring will seem like 250kbps. That's fine for audio and video timing control, which is what i originally wanted it to do. But definitely not for mass storage. 12:21:57 --- join: Sonarman (~matt@adsl-64-160-164-146.dsl.snfc21.pacbell.net) joined #forth 12:22:15 kc5tja: so how are you gonna access a hard disk? 12:22:44 blockhead: Like I said; hang the IDE interface off of the VIA chip's two *parallel* ports, instead of the serial port. 12:23:14 * blockhead scrolls up. re-reads. sorries. 12:23:21 :-) 12:23:27 It was buried in a mass of other text, i'm sure. 12:23:35 found it 12:23:49 If I seem condescending, I apologize. I'm in one of those moods where I'm typing and thinking at the same time. 12:23:53 I don't mean to be mean. 12:25:43 * blockhead understands 12:26:13 --- join: ayrnieu (julian@65.169.246.30) joined #forth 12:27:31 * kc5tja just doesn't want to get into the situation where I lock myself out of taking advantage of future technologies in the future. 12:27:50 For example, the Kestrel II is a concept I've been kicking around as an intermediate machine between the Kestrel and the Raven architectures. 12:27:52 kc5tja: like usb/firewire? 12:28:05 herkforth-0.4.1.tar.bz2 available. (fixed links in documentation since 0.4. Also it looks right on terminals with default white background) 12:28:37 blockhead: no, those are very, very expensive technologies to implement (USB 1.1 is possible with a Cypress chip that one can buy, but I suspect the chip itself costs $25 to $50 in quantities of one). 12:29:22 'k 12:29:34 blockhead: The K2 should be more expandable than the K. 12:30:00 blockhead: I expect it'll have a few slots you could plug cards into, and support for 640x* video resolutions (still monochrome though). 12:31:02 And the CPU will have the full power of 12.6MHz behind it at all times (e.g., since the CPU would be freed from performing video refresh on its own). 12:31:36 but, it should be pointed out, that software and even hardware interfaces will change if I undertake that route. 12:32:09 The performance of the PIR will improve by a factor of four thanks to the CPU's newfound freedom, so it would almost certainly depend on the PIR much more. 12:34:19 Audio and video timing units will likely be incorportated into a CPLD chip instead of as PIC chips, and thus, they will probably *not* reside on the PIR like they will in the K1. 12:34:56 Anyway, we'll see what happens. 12:35:37 As long as programmers stick to using BoxOS (e.g., the services provided by the Forth environment as shipped with the machine), then their software will be portable between the two platforms. 12:35:54 But, being open source and especially Forth, hardware details will be ever-present for hackers to exploit if they desire. 12:35:56 that's cool! 12:36:06 Just don't expect your code to be cross-platform across the various machines. 12:36:13 BoxOS will also appear on Raven too. :) 12:39:10 Any particular Forth standard you're going to follow/modify for your needs? 12:41:29 --- quit: Nutssh ("Client exiting") 12:43:19 I haven't decided. 12:43:31 ANSI Forth isn't out of the question if I do decide to go with it though. 12:44:42 But it's unlikely I'll choose that. 12:44:50 I'll probably end up following my own course, like i always do. :) 12:45:15 The Forth that shipped with the ACE didn't follow any particular standard, really (F79 came the closest), so why should I? 12:45:39 heh :) 12:45:47 F83 is small and nice. 12:45:54 I only have 8KB of ROM space to play with; ergo, I need to fit the video refresh code, the PIR code, the IDE code, and the Forth system, all in that tight space. 12:45:54 And I think... ANS supports all F83 features? 12:46:32 dunno, but f83 is nice 12:51:02 kc5tja: I don't say you should... I wouldn't. I was just wondering if you were aiming at something very exotic, like Joy or ColorForth (on a monochrome display). 12:51:27 MonoForth :D 12:51:35 And if you would write a native code compiler or go with a direct-threaded Forth. 12:51:37 Hehe. 12:51:55 blockhead: Where black text on black background are comments! 12:51:56 Robert: I haven't quite decided just yet. 12:52:06 OK. 12:52:07 Robert: I've pondered the possibilities of using a FontForth. :) 12:52:17 Robert: Native code, definitely. 12:52:19 Like ColorForth, with different fonts? 12:52:27 Well, actually, subroutine threaded. 12:52:30 brb -- bathroom 12:55:34 back 12:56:04 Aren't STC and native the same thing, basically? 12:56:08 The code density for inlining primitives isn't all that great for the 65816, so many of the primitives will need to be implemented as subroutines to get good code density. 12:56:17 madgarden: STC is degenerate native-code. 12:56:32 Native code usually implies some form of at least code inlining, if not outright optimization. 12:57:17 Even though the 65816 can address 16MB of memory, the Forth system it will run will still have a 64KB of code space. 12:57:31 * kc5tja will definitely investigate the possibility of moving data space out of the code space though. We'll see. 12:59:06 Hmm. Doesn't code inlining go against Forth principles? 12:59:14 No. 12:59:19 Chuck does it all the time. 12:59:30 his ColorForth is predicated on it. 12:59:40 and if chuck does it, it's ok :D 12:59:42 I'd think it would lead to bloat. 12:59:59 All of his machineForth primitives expand to a couple of machine language instructions, injected inline right into the current code definition. 13:00:31 madgarden: You're not paying attention to the concept: *primitives* are inlined. Not colon definitions. 13:00:54 kc5tja: oh, that *does* make a difference 13:01:06 E.g., the virtual machine instructions have a direct mapping to real machine language instructions. 13:01:50 The only thing is, with the 65816, the code density isn't as great as it is with the x86. 13:02:01 example: + is implemented like this in the 65816: 13:02:03 clc 13:02:09 lda 0,x 13:02:12 adc 2,x 13:02:14 sta 2,x 13:02:15 inx 13:02:15 inx 13:02:38 where the X register is used as a data stack pointer. 13:02:52 That code totals 9 bytes. 13:03:10 it runs in approximately 19 cycles. 13:03:58 A JSR instruction to the code that implements +, however, would take another 12 cycles on top of that, but would consume only 3 bytes of code space. 13:04:55 optomizing 13:05:37 Note that my code above assumes the CPU is operating with 16-bit index and accumulator registers. 13:06:46 One possible method to get higher performances is to actually use a true, optimizing native code compiler. 13:07:07 This solution involves storing the program code in an abstract object form (e.g., a MISC virtual machine, for example). 13:07:37 Then, when a block of code is loaded from disk, the loader is responsible for walking through the code and doing the appropriate dataflow analysis on the code to produce efficient 65816 code. 13:07:50 It's doable. It's beneficial. But it won't fit in 8KB of ROM. :) 13:08:24 Oh, and yes, I do intend on having an assembler available for use, so people can make their own primitives much more easily than in, say, ColorForth. 13:10:24 but it's just his cell phone 13:11:02 ianp: I don't understand. 13:11:15 Sorry. wrong window, kc5tja. 13:11:16 :) 13:11:19 * blockhead guesses wrong window 13:11:35 With ianp, one can never be too sure. 13:11:36 :) 13:12:12 kc5tja: you can make the hummingbird, a forth box in a cell phone 13:12:49 :)) 13:13:01 No thanks. 13:13:11 though I like the name, hummingbird. :) 13:13:25 the smallest bird I could think of 13:13:38 Finches are smaller, i think. 13:13:39 the only bird that can hover 13:13:52 But definitely the only bird that can hover, AND some of the most colorful of the birds too. 13:14:20 somehow "finch" isn't a computer box sort of name :/ 13:14:28 * blockhead boots his finch :D 13:14:36 yeah. 13:14:36 :) 13:14:51 ForthBox Finch III. :) 13:15:15 :D 13:15:35 then you could refer to your r&d labs as 'the aviary' 13:15:43 now *that* is cool 13:15:45 ianp: I can do that now. 13:15:55 I like it. :) 13:16:03 kc5tja: hwne you go public, I get 5% royalty from that name... 13:16:04 :) 13:16:08 hhehe 13:16:16 we had an aviary with finches when I was young, my mom's house 13:16:20 I wish I had the financial resources to send you folks free boxen. :/ 13:16:26 was just a box with screen stapled on it. 13:16:31 so many good ideas for names. 13:16:33 kc5tja: I'll buy one im sure. 13:16:57 Hey, with my new job, I should be able to afford a kit! 13:17:06 kc5tja; I havent followed much, but it sounds like something i am interested in. 13:17:13 * kc5tja will be bringing his o'scope out of storage this tuesday. 13:17:36 And I still haven't received my batch of parts yet (and cash wasn't yet deducted from account yet either). 13:17:45 So I'm going to call them on tuesday and find out what's going on. 13:18:36 I am definitely looking forward to completing the Kestrel. 13:18:52 I suspect a moderate-sized following will come around it. 13:19:04 especially if i also market the computer to the ZX81 fora and such. 13:19:11 it's got a name that works 13:19:11 Lots of kit computer entheusiasts there. 13:19:20 I still really want TV-out though. :P 13:19:33 Motel hackin'! 13:19:40 madgarden: I'll see what I can do. 13:19:53 madgarden: Realize that that changes a lot of things around in the circuitry though. 13:20:19 Have you seent hose cheap little TV games? (http://www.jakkstvgames.com) 13:21:08 I picked up a couple of them... one's got 10 Atari games in a controller formed just like the old Atari joystick. 13:22:48 madgarden: yeah!! 13:23:06 I played pong for the first time since my first videogame experience which was actually pong 13:23:07 madgarden: interesting. I doubt I'll compete with those features though; my box is anything but small enough to fit in a controller. :) 13:23:10 last year one one of those. 13:23:32 And it's low-resolution MONOCHROME to boot. :D 13:25:10 madgarden: If I were to support TV, then the CPU would have more bandwidth to play, but the video resolution will change to 320 pixels by only 200 to 400 or so. Some software might not be compatible with that. BUT, . . ., i do intend on developing a GEM-like graphical interface to run under BoxOS, so apps that use that will/should be compatible. 13:25:22 And it would still only be monochrome. 13:26:14 (the video shift register would be clocked at 6.3MHz, instead of at 12.6MHz, since NTSC is half the pixel rate of plain VGA) 13:26:18 ooohh, I forgot about interlace issues. 13:26:27 Well, we'll see. 13:26:51 definitely a *major* overhaul would be needed in the video code for NTSC support. 13:27:09 The hardware is largely the same, fortunately (the video DACs are different, but that's a small portion fo the circuitry). 13:27:22 Oh, and the shift register clocking. 13:27:39 vga bypasses the whole ntsc vs pal vs secam compatibility problem 13:28:05 blockhead: That's what I'm developing for, and that is why madgarden is complaining so vociferously. :) 13:29:31 --- quit: ribbon ("A life without meaning") 13:29:33 blockhead: But if having a separate NTSC version would increase sales of the kit without increasing production expenses without too much of a hassle, then I would almost certainly consider doing it. 13:29:46 blockhead: Anything to get me out of In-n-Out as a life-supporting job, you know? 13:30:00 yeah 13:30:03 I know 13:30:04 :( 13:32:01 I still can't get over that Aviary name. 13:32:10 northrup had their skunkworks, and I will have my Aviary. :D 13:32:33 coolness :) 13:32:43 Aviary might be a cool name for a newsletter too. 13:32:47 just don't call yourself the penguin 13:33:09 hehe. 13:33:18 it's a cool word. 13:35:46 I have no intention of competing in the Linux space. 13:35:53 PCs do that just fine on their own. 13:36:04 kc5tja: no no, it was a "Batman" reference 13:36:25 I think in the older comic books, the penguins headquarters was called the avery 13:37:11 Ahh 13:39:16 kc5tja, it's mostly nostalgia that makes the TV-out attractive to me. :) Of course you should go with what's both cheapest and easiest. 13:40:35 * kc5tja nods 13:40:40 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 13:40:41 madgarden: That's what I'm doing. ;0 13:40:45 gahh!@ 13:40:52 I need a new keyboard. This shift key is getting on my nerves. 13:40:59 kc5tja: would it simplify things at all to do interlacing by outputting the same thing on both passes? 13:41:19 Herkamire: No, because the CPU needs to blast the same data to the shift register any. 13:41:26 anyway. 13:41:44 kc5tja: is it a bandwidth problem then? 13:41:48 no. 13:41:53 It's not at all a problem. 13:42:15 It's just an issue to be aware of, because the timing parameters are markedly different than for VGA, which is progressively scanned. 13:42:33 Interlacing works by drawing every *other* line on the screen. 13:42:40 line 0, then line 2, then line 4, etc. 13:42:41 I was just thinking that it would cut the effective (as far as software is concerned) resolution nicely down to 160xsomething 13:42:51 But the frame buffer is stored in memory as line 0, then line 1, then line 2, then line 3, etc. 13:43:08 The horizontal resolution isn't affected by interlacing. 13:43:44 Interlacing only affects vertical resolution. 13:43:50 I'm suggesting that if you did TV out, you could have both scan line 0 and scan line 1 come from memory's line 0 13:44:13 Herkamire: Yes. Scan line 1 comes a whole 1/60th of a second *after* scan line 0 though. 13:44:27 Herkamire: So the CPU has to send the same data to the video shift registers *anyway*. 13:44:33 hmmm... that might make some weird tearring 13:44:39 Herkamire: TVs do it all the time. 13:45:01 Hmm. Are hobby kit users more likely to have a spare VGA monitor lying around, or a TV with RCA inputs? 13:45:19 Herkamire: Realistically speaking, a TV is only good for about 384x262 pixels. 13:45:27 It's only through interlacing that it gets 384x525. 13:46:04 I have an extra vga monitor, but I don't think it goes that low res 13:46:17 Herkamire: Sure it does. 13:46:26 Herkamire: Just repeat the same information for multiple scanlines. 13:46:32 that's how 320x240 video mode works in the VGA. 13:46:43 the same 320 pixel scan line repeated twice on the display. 13:46:44 oh 13:47:00 the monitor still thinks it's *x480 video resolution though. 13:47:04 so the monitor is actually in 640x480 13:47:11 ok. that I know it can do 13:47:16 I say *x480 because the monitor doesn't care how many pixels are on a line, as long as it fits the horizontal sync frequencies. 13:47:32 right 13:47:44 If I wanted to, and with a 50.4MHz clock, I could get 1280x480 resolution on a VGA monitor. 13:47:53 hehe 13:48:24 I noticed that some resolutions I tried on my monitor were 4:5 and some were 3:4 13:48:55 hehe :) I just wrote code so my forth can output in ascii instead of color 13:49:13 it doesn't show the cursor in that mode though 13:49:27 What do you mean by "ascii"? 13:50:50 : |s10 dup |52 [ tos-tos 6 16 20 _rlwinm ] aor ; : |rc 1 aor ; 13:51:07 : for red, [ for yellow ] for green 13:51:27 & for variable, ' for constant 13:52:27 OK I've had it with this damn keyboard. 13:52:29 i'm getting a new one. 13:52:32 bbiab. 13:52:51 I'm working up to having my forth output it's sources in a text form. 13:53:18 So I can do my main development within the forth, and export to ascii files for version control, and releasing tarballs. 13:53:53 Can't you do version control on the tokenized source code? 13:54:20 maybe. 13:54:44 diff doesn't do too well on my binary files though 13:54:52 Use SVN. 13:55:01 I do 13:55:20 So diff just sucks then. 13:55:35 how's diff supposed to know where the end of line is? 13:55:37 * ayrnieu looks at the FreeBSD iso he just burned, and sees Forth. 13:55:38 oooh 13:56:30 it has hilarious BSD Daemon printing routines though. Geez, people, write a parsing word. 13:56:34 anyway, I need to convert to text so that I can distribute my forth in source form. 13:57:32 this way people can fix it if it doesn't work on their system the way I ship it 13:58:57 ayrnieu, you should see thier bootloader forth code 13:59:04 ayrnieu, they have colon defs that are screenfuls long 13:59:24 sigh. 14:00:15 I suppose that I could send in a few patches, if I stick with FreeBSD. 14:00:34 i might move to linux 14:01:37 * Herkamire goes back to coding 14:16:38 --- join: imaginator (~George@georgeps.dsl.xmission.com) joined #forth 14:26:08 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 14:34:43 Hi Forth'ers 14:35:09 --- join: networm (~networm@L0627P31.dipool.highway.telekom.at) joined #forth 14:37:02 --- quit: Nutssh ("Client exiting") 14:39:58 Hi, imaginator! XD 14:40:30 XD? 14:40:44 Yea, it's a smiley. 14:40:53 X-D if you prefer. 14:42:01 oh 14:42:02 :) 14:42:15 XD 14:42:29 XD reminds me of a cyclops with one eye. 14:42:57 Heh. 14:43:13 It's a scrunchy-eyed crazy grinning face. 14:43:22 Just happy to be a Forther! XD 14:44:19 The evil guys in Spain lost. XD 14:44:51 Yay! XD 14:44:56 What evil guys? XD 14:45:12 The evil spaniards, of course. 14:47:05 The evil terrorists will always be lost. 14:48:43 I'm back 14:48:53 And I have a working keyboard now. :) 14:48:56 If America and the other countries are so bad why doesn't the god of these people destroy their enemies. 14:49:19 kc5tja: did you run to the store? 14:49:20 It doesn't make sense to me. It's like: "We have to bomb these places, because our god is too weak to do it himself." 14:49:30 Herkamire: yeah. 14:49:43 :) 14:49:44 Maybe tomorrow I'll take the time to set up Dvorak on it though. 14:49:45 kc5tja: DVORAK with 28 keys? 14:49:49 Qwerty just feels awkward. 14:49:59 * imaginator has never tried to adapt to DVORAK 14:50:09 imaginator: No. But I got decent (not great) speeds typing Dvorak when I was using it at work. 14:50:21 Proper form when typing is critical. 14:50:27 imaginator, religion is basically just pretty dumb. 14:50:33 kc5tja: did you have dvorak in hardware before? 14:50:39 Herkamire: no. 14:51:05 One thing is for sure though; this keyboard is much smaller than my last keyboard. :D 14:51:14 I have a fair amount of desk space available to me now. 14:51:19 kc5tja: what do you mean setup dvorak on your keyboard? you going to pop off the key caps and put them where they belong? 14:51:32 or do you mean on your computer? 14:51:55 No, I have to configure my character-mode terminals, then I have to configure X11, then there's the odd chance that I might have to configure something like SDL or whatever. 14:52:17 yeah. sortof a pain 14:52:23 at least it's easy in the terminals 14:52:39 In the terminals? You mean the text-mode terminals? 14:52:40 kc5tja: sounds like you run a unix/linux 14:52:44 (or their equivalent on Macs) 14:52:56 blockhead: Been a solid Linux user since 1995. 14:53:13 yes text mode. I'm trying to remember how. 14:53:21 Next year, Feb 25th (one day after my birthday even!) is my 10-year Linux using anniversery! 14:53:28 you type one thing and it gives the login prompt and everything in dvorak 14:53:50 Herkamire: I'll just have to read the HOWTOs on it. 14:54:04 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 14:54:17 --- join: Sonarman (~matt@ppp-66-124-254-98.dsl.snfc21.pacbell.net) joined #forth 14:54:24 I actually like this keyboard. It has very little key travel. :) I can type fast on it even though it's a non-ergo keyboard. 14:54:28 :) 14:54:35 Proper typing posture and touch-typing also helps/ 14:54:46 Though, as you can see, it'll be awhile before I readjust to a non-ergo again. 14:56:07 mmmm... this might be particular to gentoo, but I have KEYMAP="dvorak" in /etc/rc.conf 14:56:27 * Robert never really learnt how to type. 14:56:58 I wish I had an ergo keyboard 14:56:59 Yeah, that's pretty Gentoo specific I think. I don't even have an rc.conf file. 14:57:05 Let me check. 14:57:08 (just to make sure) 14:57:18 I know Debian didn't have it; Slackware might have one. 14:57:27 Nope. 14:57:30 It doesn't. 14:57:39 Dang it, now I'm hungry. :) 14:58:58 oh well. it's been so long sinse I worked with anything but gentoo. 14:59:09 Well, I just tried some typing in ColorForth. 14:59:15 Dvorak is definitely the way to go for tis keyboard. 14:59:16 this even 15:02:41 I never formally learned to type either. Just typed out of necessity when 10-year-old me got a C64. 15:03:32 :) 15:04:23 --- quit: snowrichard ("Leaving") 15:04:48 Heh. I didn't learn then, either. 15:04:58 I still can't type any fast at all. 15:05:09 And every other character I type I have to erase... 15:05:13 Heh. 15:05:23 Must be some brain damage. ;) 15:05:35 That COULD explain my interest in Forth. 15:05:36 So that's why you take so long to reply... :D 15:05:57 kc5tja: That, and a tendency to forget what I'm doing and who I'm talking to :) 15:06:42 :) 15:07:31 Hopefully this orange won't make me more hungry than I already was. 15:07:44 * kc5tja would rather not have to go out again. 15:07:52 I suppose I could order a pizza... 15:08:06 mmmmmm, pizza 15:08:16 STOP THAT! :) 15:08:21 * blockhead had that yesterday. peppers and pepperoni 15:08:24 mmmmmmmmmm 15:08:26 Hmmm.. This receiver is starting to work fine. That 4-stage active band-pass filter compensates for the lack of shielding and construction skills! 15:08:55 Robert: Yeah, but it's everything else around you that has to put up with your lack of construction skills. :D 15:08:59 Life became so much easier since I got a PSU with a negative voltage, too. 15:09:25 I have a Subway sub sitting in the fridge still. BMT, with lettuce, tomatoes, olives, jalapenos, and mayonnaise, on honey-oat bread. 15:09:25 kc5tja: Hey, I'm not even transmitting. 15:09:29 Oh, man, let me tell you. Having a true bipolar power supply makes designing circuits SO much easier. Really. 15:09:33 * imaginator has a party he should join 15:09:40 later Forth'ers 15:09:47 Byebye. 15:09:51 That's what my homebrew +66dB AF amplifier used: +12V and -12V. :) 15:09:56 party on, dude :) 15:10:05 --- quit: imaginator ("party") 15:10:08 And I got this for $4. :) 15:10:26 Though, I admit, I really do need a benchtop power supply that I can adjust and whatnot. 15:10:38 Preferably one that supports both positive and negative voltages at the same time. 15:10:49 Maybe my ForthBox Kestrel kit will fund that for me. :D 15:10:56 Maybe I should try to construct a VFO. This VXO is _so_ unpredictable. 15:11:31 Crystals are supposed to be way more stable than capacitors and diodes. :D 15:11:31 Heh. 15:11:48 What are you using to tune the crystal with? 15:12:02 kc5tja, how big is this Kestrel going to be? 15:12:14 will it fit in my living room? :) 15:12:24 madgarden: I have to wait and see to answer that question. It depends on how easily I can create a PC board for it. 15:12:45 Easily. It can definitely fit inside a pizza box. 15:12:55 I suspect the unit will be about as big as your average PC keyboard. 15:12:58 Small, medium, or large? :) 15:13:06 Oh! 15:13:09 madgarden: Small. 15:13:14 Well that's pretty decent. 15:13:18 six slices 15:13:23 lareg woudl be 8 slices 15:13:25 Triangular, or square? :P 15:13:26 kc5tja: Not when they're connected to a BIG inductance (or actually, several small chokes, works better that way) and a capacitor. The tuning range is pretty large (up to 100kHz on the 80m band), but that tuning range is totally unpredictable, and the VXO output becomes many times weaker in the low end of the range. 15:14:20 Robert: Well, that's because you're tuning outside the range of the crystal. You're lucky; most VXOs tune only between 20 to 50kHz of bandwidth. :) 15:14:32 Yeah, I reduced it to that now. 15:14:39 I agree though; I prefer a VFO instead of a VXO. 15:14:55 It's pretty stable after the first minute, though. 15:15:06 Doesn't drift much at all. 15:15:08 that's also normal for electronics. 15:15:23 Not for my VFOs. :) 15:15:23 Some day I'd like to try and make a PLL-synchronized VFO circuit. 15:15:30 --- quit: ayrnieu ("system") 15:16:43 I figure using a 555 timer chip as a precision, but very low frequency, VFO to serve as the reference frequency for the high frequency VFO should work with pretty decent results. 15:16:53 brb 15:17:17 But before I do that, I'm going to use the Kestrel's basic design to make a spectrum analyzer kit and market that to the ham radio community. 15:17:27 * kc5tja has always wanted a spectrum analyzer. 15:18:52 It certainly won't compete with other, commercial, and overwhelmingly more expensive units. 15:19:02 I'd be happy with something in the DC to 30MHz coverage range. 15:19:11 Especially since most of my work will be in the HF spectrum. 15:26:36 back 15:39:10 Pizza has been ordered. 15:39:19 It should arrive in about an hour, which the orange should hold for me by then. 15:39:23 what topping 15:39:40 I get two pizzas because it cuts the cost of the pizzas in half (or nearly so). 15:39:53 Like it's $15 for 1 large pizza, but $19 for 2. 15:40:12 The first one I usually get with (almost) everything they have, and the second one is just extra cheese and pepperoni. 15:40:24 Although I got pepperoni and green bell pepper this time. 15:40:29 mmmmmmmmmmm! 15:40:39 peppers mmmmmmmmmmmmmmm! 15:40:54 Swedish pizza tastes better than American one. ;) 15:41:04 Same with Swedish babies. 15:41:04 If you say so. 15:41:09 * blockhead will have to try it 15:41:25 * blockhead won't beleive it until then 15:41:46 My thoughts exactly. :) 15:42:12 pizza in ireland tastes exactly like pizza here, at least in dublin. Of course, the cook was italian. :D 15:42:13 (now if it had Swedish meatballs on it, then I might have to consider Robert's statement as approaching believable... :D) 15:42:14 * Robert mails a pizza each for the poor americans. 15:42:32 Eeew, meatballs on a pizza. 15:42:49 Robert: Yummy! You never had pizza with sausage or beef on it? Oh heavens. 15:42:57 And grilled chicken on a pizza is quite good too. 15:43:00 ham is great on pizza 15:43:43 Peanuts and curry is good. Shrimps, tuna, onions, mushrooms... 15:43:57 Almost makes me hungry. 15:44:03 I don't think I could take having peanuts on my pizza. 15:44:06 Or shrimp. 15:44:13 peanuts on pizza? you know, that might just work !! 15:44:16 But tuna is definitely a good possibility. 15:44:27 * kc5tja doesn't like shrimp, so I can't comment on that. 15:44:31 Squid might be nice though. 15:44:33 curry on pizza, I have not tried that but I love curry so I'll probably like that 15:44:34 I like squid. 15:44:51 I like curry, but it seems like it would not go well with pizza. 15:44:58 I'de try it once 15:45:01 just to see 15:45:13 I said the same thing about ham on pizza :D 15:45:14 Not the curry I'm familiar with at least. 15:45:14 I thought it sounded a bit odd first time I heard it. 15:45:24 The yellowish stuff that's mild to hot (depending on who makes it). 15:45:26 But it tastes better than I though. 15:45:38 Curry pizza? hah 15:45:52 I'm guessing that they would leave the tomator sauce out when making a curry pizza? 15:45:59 --- join: eibwen (~USER@host-69-19-145-174.rev.o1.com) joined #forth 15:46:06 blockhead: Nope. 15:46:20 blockhead: I just put some curry & peanuts on top of the cheese. 15:46:21 OK, that would almost certainly give me nausea then. 15:46:46 Oh, wait, you're not talking about the curry *sauce*? 15:46:59 No, the powder. 15:47:02 OOoooh. 15:47:08 Robert, is this somthing you can ge at a resteruant or is this your own invention? 15:47:09 Yeah, I'd definitely try that. 15:47:13 That might work, definitely. 15:47:50 blockhead: A friend told me about it, he also said some restaurants have it. 15:48:07 Never ate a curry pizza on a restaurant, though. 15:48:15 --- part: eibwen left #forth 15:49:04 bummmmer 15:49:06 Doggone it, most of the day has already gone by for me. I guess I had better start coding on my client's software, eh? 15:49:19 :) 15:49:39 it looks like my code is exporting to ascii form correctly, but I tried replacing my sources with that output, and it doesn't work. 15:54:18 --- quit: qFox ("if at first you dont succeed, quit again") 15:54:26 Herkamire: :( 15:57:05 wow 15:57:11 this is the coolest bug! 15:57:19 kc5tja, just like an INTP. 15:57:39 madgarden: Yep. 15:57:54 YOu know you *could* write the client's software... and that's good enough. 15:58:03 I made a variable for which file descriptor EMIT writes to. Then I open the file to hold the ascii version of the block, and print it in ascii form. 15:58:30 madgarden: That's what I'm getting paid to do. 15:58:30 the variable is persistent. at the time I write block 28 with that variable in it, it's 17 or some such. 15:58:57 kc5tja, getting paid to actually *do* the work, not just know that you could do it. ;) 15:59:01 so when I build the forth from those files, it starts up with EMIT trying to write to fd 17 instead of stdout :) 15:59:32 madgarden: Yeah, but now, see, you're getting into hypothetical situations here. :) I'm being pragmatic about this. 15:59:50 Herkamire: Oops. :) 16:00:06 ahhh :) some bugs are fun 16:00:18 didn't take that long to find, and it made me laugh 16:04:58 Robert: Is that you in #hamradio? 16:06:06 Obviously :) 16:06:14 Someone mentioned it, so I joined. 16:06:25 Now when I'm a ham, and all. 16:06:29 Anyway, the "A" machine Forth register concept is definitely going to be employed in the BoxOS environment. Since the 6502/65816 require zero-page to access any memory location anyway, it seems that treating a couple of zero-page locations as the "A" register is pretty much a requirement anyway. 16:07:24 However, unlike MachineForth, @A+ and !A+ don't auto-increment A, but rather, an *index* (in this case, it'd be the Y CPU register). 16:08:35 How many addressing registers does that CPU have? 16:08:42 Robert: Zero. 16:09:05 There are X and Y, which serve as index registers. But actual base addresses are always stored in RAM. 16:09:29 Oh. 16:09:47 This is why zero-page is so important in a 6502-based system. 16:10:02 (Zero page is $0000-$00FF) 16:10:36 In the 65816, zero-page can be moved to anywhere in the first 64KB of the CPU's address space, but I'm going to keep it at $000000. So it's still zero page to me. :) 16:11:13 And that zero page basically works as a bunch of semi-registers? 16:11:24 Zero page is primarily used for the data stack, but something like 64 bytes will be reserved for user variables (one of which is the A pseudo-register). 16:11:28 wow, I finished making it so my forth exports ascii source. and it runs fine on that source. 16:11:32 Robert: Yes. 16:11:47 Robert: Because of that, 90% of all 6502/65816 instructions are only 2 bytes long. 16:11:55 I was putting it off figureing it would take a long time and be unpleasant. 16:12:08 That's really nice. 16:12:16 what's the difference between floored and symmetric division 16:12:17 ? 16:13:12 floored means rounded towards zero 16:13:25 Sonarman: Not sure, but I *think* floored division handles negative numbers as if they were positive, leading to off-by-one errors. 16:15:52 it causes -1 5 mod to be -1, instead of 4 as it should 16:17:30 sorry, but i'm confused. wouldn't -1 5 mod be 6? 16:17:41 Well, 5 doesn't go into -1, so the result ought to be -1/5 for mod. 16:17:45 (ideally speaking) 16:18:17 -1 5 / is 0 with floored division, -1 with 'normal' 16:18:53 so 0 5 * needs -1 to get back to -1, and -1 5 * needs 4 16:18:55 network: -1 5 / should be zero, according to everyday algebraic rules. 16:19:03 (hm, still getting used to Forth notation :) 16:19:30 well, i find 4 more logical 16:19:39 e.g. when I have 16:19:55 It depends on your application. 16:20:03 Floored is more algebraically correct. 16:20:11 But, symmetric doesn't lose as much information. 16:20:11 1 5 / -> 1, 0 5 / -> 0, -1 5 / -> 4, ... 16:20:19 so i have 4 3 2 1 0 4 3 2 1 0 16:20:22 even when crossing 0 16:20:36 but yeah, it depends on the application 16:20:50 that's why it is such a problem in all the prog. language standards 16:20:55 Yep. 16:21:31 -1 5 mod --> -1 16:22:31 IIANM, ANSI supports both floored and symmetric math, using two sets of words. / and MOD and the like are technically implementation dependent, and if you must have one over the other, then the words are there for you to do it. 16:23:36 IIANM == If I Am Not Mistaken, BTW... :D 16:24:08 yep, i've read that in the ANS draft. And I know, the C standard says: -1 5 mod --> -1 16:27:18 I just tried it under GForth. 16:27:25 1 5 mod . 1 ok 16:27:29 0 5 mod . 0 ok 16:27:33 -1 5 mod . -1 ok 16:27:43 So it's definitely floored division. 16:29:44 I get the same results with gforth 16:29:52 my system seems to be floored anyway 16:30:51 Heh, Win32Forth: 16:30:51 -1 5 mod ok. 16:30:51 .s [1] 4 ok. 16:31:11 weird 16:31:36 I've often wanted mod to do that, but never expected it to 16:45:04 --- join: TheBlueWizard (TheBlueWiz@207.111.96.27) joined #forth 16:45:04 --- mode: ChanServ set +o TheBlueWizard 16:45:09 hiya all 16:46:03 re 16:47:07 hiya kc5tja 16:47:20 TheBlueWizard: Long time no see. What's new? 16:47:59 Anyone know of a good CD player program for X Windows that is relatively independent of window manager? 16:48:05 Yet still unobtrusive? 16:48:10 been busy...nothing really new 16:48:41 you? 16:50:07 I have had a lot of initial interest in a new computer kit that I'm looking to market. 16:50:17 http://www.falvotech.com/cgi/fsforth/ForthBoxKestrel 16:53:48 very, very interesting! 16:54:06 Yeah. 16:54:22 I have a number of projects in the queue, all of which are based off of the Kestrel's architecture too. 16:54:27 SECAM? what's that? 16:54:37 Like a simple spectrum analyzer that I want to make. 16:54:56 SECAM is an analog television encoding method, similar to NTSC or PAL. 16:56:04 ok, the difference between floored and symmetric division is starting to make sense to me. thanks guys 16:56:05 hmm...I never have heard of that format, though I know about NTSC and PAL (of course during Amigans know much about that :) 16:56:51 SECAM -> System Essentially Contrary to the American Method 16:57:12 * TheBlueWizard laughs 16:57:54 when was during Amigans? :) 16:58:45 huh? 16:59:07 NTSC -> never the same color :D 16:59:37 * TheBlueWizard is now watching TV 17:03:02 --- quit: blockhead ("Client Exiting") 17:25:52 --- join: Nutssh (~Foo@register.rice.edu) joined #forth 17:26:33 Yeah, that is a rather odd question. 17:26:34 :) 17:26:45 Sorry, I'm coding. 17:29:43 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 17:31:09 Hi. 17:31:37 hi robert 17:34:17 -1 -5 mod => -1 for symmetric, and -1 -5 mod => 4 for floored? or do i have it backwards? 17:36:32 --- quit: snowrichard ("Leaving") 17:37:00 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 17:37:23 Sonarman: Since division of two negative numbers yeilds a positive, -1 -5 mod would yield a positive value. 17:37:35 I believe it would yield 1 in this case, for both. 17:39:15 --- quit: networm ("Client exiting") 17:39:25 --- quit: snowrichard (Client Quit) 17:39:35 -1 5 mod, sorry 17:40:13 nevermind 17:40:27 my brain is going to explode 17:41:28 Yeah, it is pretty confusing stuff. 17:41:32 "I just stare at my desk. It looks like I'm working" 17:41:48 is that from Dilbert? 17:42:26 um...the relationship N = Q * D + R has to hold, so N = -1 divided by Q = -5 would result in D = 0, and thus R = -1 (yes, R can be negative) 17:42:33 Sonarman: no, Office Space 17:44:22 shortly before my favorite line: "I'd say in a given week, I do about 15 minutes of real, actual, work" 17:47:45 I just added a handy search-for-definition function to herkforth 17:48:05 (type a word and press shift-D and it takes the editor to the definition) 17:48:10 neat 17:48:26 before I just had a function to take the editor to the definition of the word under the cursor. 17:48:45 I've made more progress with herkforth today than in the last month combined :) 17:48:49 I must be the only one who has not been able to even get a half-way working implementation of Forth yet. :) 17:49:07 kc5tja: didn't you write dolphin? 17:49:14 Herkamire: It was never finished. 17:49:18 kc5tja: or do you mean in the last year 17:49:25 kc5tja: mine isn't finished either 17:49:30 And it wasn't a Forth. It was an operating system (which I might ressurect for use in the ForthBox Raven). 17:49:49 Herkamire: Let's put it this way; your Forth is interactive now. 17:49:53 All I have is a cross compiler. 17:51:02 oh. I thought dolphin was a forth OS. 17:51:03 That's OK though; FTS/Forth for the 65816 will form the core of BoxOS. 17:51:21 * kc5tja put FTS/Forth on hold while concentrating on the ForthBox. 17:51:26 yeah, mine's interactive. 17:51:40 as of an hour ago, you can actually use it to develop software 17:51:52 Well, you just wait until BoxOS is out -- it'll blow yours away, in all its monochrome glory. You just wait and see! :D 17:52:08 you probably will :) 17:52:23 320x240 baby!! Beat THAT! :D 17:52:43 and eventually I'll do some cool graphics and play around with Humane interface concepts and a zooming interface 17:53:24 making the forth interactive is pretty exciting :) 17:53:40 BoxOS is going to be pretty difficult to bring up, I think. 17:54:05 Getting the CPU to meet real-time constraints of screen refresh will be the biggest challenge. 17:54:22 Once that's done, getting the IDE interface running will be the next biggest challenge (at least, while the screen is being refreshed). 17:54:53 how complete is VIBE? 17:55:05 It's minimal, but infinitely expandable. 17:57:35 I really look forward to implementing the BoxOS GUI interface. 17:58:07 i'm looking forward to seeing BoxOS! 17:58:43 gotta go...bye all 17:58:44 slava: Yeah. It'll be fun for me to code. 17:58:49 laters TheBlueWizard 17:59:05 bye kc5tja...and good luck selling this cool stuff 17:59:33 Thanks. :) 17:59:46 --- part: TheBlueWizard left #forth 18:01:32 I think I heard a Ukranian on my receiver. :) That's quite far away... 18:01:45 HF? 18:01:52 UA callsign? 18:02:02 80m 18:02:09 Nice. :) 18:02:28 I suck at morse code, but I got cq dx de ur5..something 18:02:39 Or is that Russia? 18:03:07 URA-UZZ Ukraine, says the ARRL handbook. 18:03:30 Who is UA then? 18:03:33 Russia. 18:03:34 I heard a UA station not too long ago. 18:03:36 Ahh 18:03:40 UAA - UIZ 18:03:56 What band? 18:04:01 40m 18:07:51 Hehe.. That's DX :) 18:08:09 Yep. 18:08:20 Doesn't happen all the time. 18:08:34 but sometimes conditions are just open enough for me to hear some pretty distant stations. 18:11:06 I've only identified people from Europe, so far. But that's partly due to my poor morse code reception. 18:11:46 It takes practice. 18:13:03 So they keep telling me. If it wasn't so boring, practicing... 18:13:45 Hehe :) 18:13:51 I love morse code myself. 18:15:05 Sure, so do I. But I love IRC, too, and I still suck at typing. ;) 18:15:27 But I guess in time I'll learn at least some of it. More than 30 cpm, heh. 18:21:30 I got much less noise when I added the filter _after_ the amplifier. How suprising... 18:27:11 Less components between the signal source and the amplifer, so less thermal noise. 18:27:29 * kc5tja just fixed a visual bug in his client's code, and it ended up improving overall performance of the program markedly. 18:27:33 :) 18:27:34 Yep. 18:27:50 Unfortunately these broadcast stations turn up and overload the whole thing, from time to time. 18:28:44 Yep 18:28:49 It's a problem even for me. 18:28:59 40m is *loaded* with all of *YOUR* commercial broadcast stations. :D 18:29:11 And right in the middle of the only segment on 40m I happen to have privileges on! 18:30:25 Heh. The problem here is that the broadcast stations are far away. 18:30:37 Something in the receiver detects those signals. 18:31:13 you probably just need to shield your circuits better. 18:32:11 Maybe. A breadboard full of long and short wires isn't the best environment I guess... 18:32:18 :) 18:32:23 No, definitely not. :) 18:32:30 that might also explain your VXO problem too. 18:32:30 But how can I do some easy shielding? 18:32:49 Do you have hardware stores that sell metal screen door mesh? 18:32:58 I don't have any workshop here, can't make an aluminium case or so. 18:33:40 How about aluminium foil? Or other boxes? 18:33:51 Yeah, aluminum foil would work quite well. 18:34:07 Just make sure it doesn't crumple and short out your circuit. :) 18:34:26 Really? Could I just put that on a paper box and it will become a decent shield? 18:34:34 Yes. 18:34:43 Hehe. I'll try to avoid that. But thanks alot for the tip. 18:34:53 The only thin you need to do is connect the shield to ground. 18:35:04 (your radio's ground, which may or may not be Earth ground) 18:35:51 Now, to get a cursor displayed in my code; that's the next step. 18:41:22 Wow. I managed to plaster this thing with an infinite loop. 18:41:26 And it's recursive too. 18:41:53 That's..neat. 18:42:20 Hehe :) 18:42:33 Let's just say that it was consuming memory at a rather voracious rate. :D 18:42:44 Note to self: do not call gadget_paint() inside a gadget's event handler. :D 18:45:22 --- quit: Nutssh ("Client exiting") 18:50:54 --- join: Nutssh (~Foo@register.rice.edu) joined #forth 18:51:11 Another note: 18:51:46 To circumvent these issues that I'm having in developing the GUI code for my client's project, BoxOS will employ multitasking. 18:51:53 Event handlers will each be tasks. 18:52:09 is gadget_paint() part of your own library? 18:52:37 Synchronous, blocking IPC will be used to ensure bizarre things don't ever happen. 18:52:57 Sonarman: Yes, it is a completely custom GUI implementation, optimized specifically for the particular application I'm writing. 18:55:13 Multitasking may not appear until at least the second version of BoxOS though. 19:23:06 --- join: Sonarman_ (~matt@adsl-64-160-166-235.dsl.snfc21.pacbell.net) joined #forth 19:23:06 --- quit: Sonarman (Read error: 104 (Connection reset by peer)) 19:26:27 --- join: I440r (~mark4@67-50-175-35.bras01.kgm.az.frontiernet.net) joined #forth 19:53:18 --- quit: Nutssh ("Client exiting") 19:54:43 kc5tja: I don't understand vibe 19:54:54 I put some text in there, change blocks a bit, and come back and it's gone 19:55:13 Then your implementation of blocks is broken. 19:55:26 I'm using gforth. 19:55:32 It works fine for me. 19:55:41 where is/should the blocks be comming from? 19:55:51 blocks.fb file. GForth creates that file for you. 19:55:58 nifty 19:56:13 (USE can be used to change the file that contains the blocks too, but I'm assuming you're not dealing with that) 19:56:35 ok, let me play some more 19:56:40 block 0 is ok to use right? 19:56:42 No. 19:56:48 Block 0 is never, ever OK to use. 19:56:48 :) 19:57:25 Block 0 is used by much of the Forth system as a sentinel meaning, "We're not using blocks," so gforth treats block 0 as non-existant. 19:57:36 It's actually an ANSI mandate too. 20:00:38 hmmm :) well that explains why it's dissapearing. 20:00:43 so I can use 1 and up? 20:00:53 do I have to hit something to save? or just Q? 20:05:54 You do not have to hit anything to save. And yes, blocks 1 and up are safe to use. 20:06:25 oh! hehe :) I just realized why the arrow keys all take you down a block :) 20:06:28 However, I do occasionally use FLUSH to ensure the block buffers are flushed to disk before I run any word that has the potential to crash the system. 20:07:18 right 20:07:55 This is why I love blocks so much. I don't have FILE/OPEN and FILE/SAVE bullcrap. Just get it done and be done with it. It's like being orthogonally persistent, except it's not orthogonal. :) 20:08:46 --- join: ayrnieu (~julian@65.169.246.30) joined #forth 20:08:55 :) 20:09:13 Of course it's easy (relatively) to do this with files too; it's just easier with blocks. :D 20:09:35 blocks are a life saver 20:09:44 especially considering I don't have strings in my forth yet 20:10:12 I've been in personal debate with respect to ForthBox in general. 20:10:37 Yes, it should have Forth built-in to the ROM, but I've also been kind of wondering if some people might not want something more akin to a more traditional operating system for it too. 20:10:58 like what? 20:11:48 Well, I was thinking of something more or less along the lines of CP/M, only with support for multitasking and the like. 20:12:08 what's CP/M? 20:12:24 You're familiar with MS-DOS at all? 20:12:35 only very basics 20:12:43 That's basically CP/M-86. 20:12:44 :) 20:12:58 I can navigate, run files, and I made a bunch of bat files once. that about it 20:13:01 (the -86 suffix means it's the 80x86 port of it) 20:14:01 I think the forthbox should boot up to a forth prompt 20:14:13 Herkamire: It will. 20:14:21 That has never changed. 20:14:37 But even the Commodore 64, which has always booted into BASIC, has alternative operating systems for it. 20:14:48 what are you thinking of adding to make it similar to CP/M? dir and cd? 20:15:08 No, I was going to replace the Forth-based OS entirely if I were to do something like this. 20:15:27 E.g., if I typed "56 load" to load in the OS, it'd take over the machine completely. 20:16:11 ok 20:16:37 hiyq 20:16:39 I'm back 20:16:52 I guess DOS is the only OS besides forths that I've used that would even fit on a floppy 20:17:03 and I find DOS miserable 20:17:09 Herkamire: Yeah. It was pretty simple. 20:17:19 I like DOS 20:17:34 DOS isn't miserable as long as you have a good set of tools at your disposal. 20:17:41 i refused to downgrade my IBM-PC DOS 7.0 to windows 95 20:17:42 DOS, however, has never shipped with anything worth using. 20:17:48 I440r: yep :) 20:18:00 kc5tja: well, all you really need is nasm and toffy (IRC client) 20:18:02 :P 20:18:06 note - thats NOT ms dos 20:18:23 I440r: No, that's their DOS implementation from OS/2 Warp. :) 20:18:33 err no 20:18:44 the only good thing I've heard about DOS is that it doesn't get in your way 20:18:45 there was MS dos and IBM PC dos 20:19:05 it's very easy to program for because it doesn't try to do things for you. 20:19:10 when ms first "Developed" ms dos ibm found over 300 bugs in it and refused to pay unless THEY got the entire sources to it 20:19:12 Actually, yes; OS/2 Warp's command line is basically PC-DOS recompiled to run in 32-bit OS/2-land. 20:19:15 they got the sources and fixed all the bugs 20:20:01 stop talking about os/2 warp 20:20:06 you're setting off my highlight 20:20:18 warpzero - fix your highlight. 20:20:21 Actually, MS-DOS 5.0 had 0 bugs in it. That's why it was the shortest lived version of DOS in Microsoft's history. 20:20:38 heh 20:20:50 lol 20:20:53 It lasted all of 4 months before Microsoft promptly released an "upgrade" to 6.0, which proved devastatingly loaded with bugs. 20:20:54 you know whats funny 20:21:14 Herkamire: why do the arrow keys take you down a block in VIBE? 20:21:17 this customer at work today had a total of $13.37 and couldn't understand why I burst out laughing. 20:21:36 ? 20:21:38 kc5tja: eh.. 20:21:41 oh hehe 20:21:59 kc5tja, what about something like Midnight Commander? 20:22:06 madgarden: What about it? 20:22:15 As an alternate OS of sorts. 20:22:25 mc rocks 20:22:45 madgarden: It suffers from the same problem that GUIs suffer from: lack of fine-grain control over not only what commands to run, but HOW they're run. 20:22:46 I could completely live with MC 20:23:01 kc5tja: thats what alt+enter is for in mc :) 20:23:05 kc5tja, well that's what Forth is for. 20:23:11 lol 20:23:18 :) 20:23:51 man, I LOVE rush 20:24:19 He loves Rush about as much as I love Genesis. :) 20:24:31 :) 20:25:24 chris-cyg, do you have Vital Signs on infinite loop again? 20:26:31 beautiful! 20:26:49 * kc5tja got an e-mail that was completely empty, but which said, "Great rates starting at 2.95%!" in the subject. 20:27:02 I'm so glad that great rates are finally starting to happen. 20:27:06 I just wish they'd happen to me. :) 20:27:09 Sonarman_: the key in vibe to go down a block is [ 20:27:11 madgarden: :P 20:27:23 Sonarman_: the escape sequences produced by the arrow keys have [ in them 20:27:45 madgarden: naah, i got several artits in my playlist, and it just played spirit of the radio :) 20:28:55 up: ^[[A down: ^[[B right: ^[[C left: ^[[D 20:29:15 (^[ being esc (char 27 $1b)) 20:29:43 Long live the Amiga, and its $9B single-byte escape character!! 20:29:57 $9B == \x1B [ 20:30:02 (e.g., it took both) 20:30:09 escape characters are stupid 20:30:31 warpzero: I agree. Packet-based I/O eliminates the need for them. 20:30:40 i mean 20:30:44 even in shit like format strings 20:30:49 or shell commands 20:30:52 everything 20:30:54 they're just dumb 20:31:06 I agree 20:31:24 my os will not have escape sequences 20:31:27 So do I. However, there is no other way to enter arbitrary text in fields that otherwise would cause the data to be misinterpreted. 20:32:06 kc5tja: huh? 20:32:06 i like "string" . whatever . method 20:32:26 Herkamire: ls -la is this one file or six? 20:32:29 concatenating the stuff you cant put in "" by name 20:33:14 kc5tja: I still don't follow 20:34:11 Herkamire: Think about it. Without escape characters, Unix treats the above as ls -la is (1st file) this (2nd file) this (3rd) one (4th file) file (5th file) or (6th file) six? (Between 0 and 255 files, depending on the wildcard matches) 20:34:34 To treat it as only one file you have to use escapes: ls -la is\ this\ one\ file\ or\ six\? 20:34:54 Or (equally inconvenient) put it in quotes: ls -la "is this one file or six?" 20:35:18 kc5tja: I get a stack underflow with vibe-2.1 when I press o 20:35:32 Herkamire: Aack, that's an older version. 20:35:40 Herkamire: Let me see if I have a newer version. I remember fixing that bug. 20:36:26 I got that from forth.bespin.org. should I have gone to your wiki? 20:36:28 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 20:36:31 Herkamire: Do you have an e-mail address I can send to? 20:36:47 (it's in two files now: vibe-2.2.fs is the core, and vibe-d.fs implements the 'd' command). 20:36:59 Herkamire: no, I don't have the source there. 20:38:18 what is vibe 20:38:44 warpzero: VI-like Block Editor for Forth. 20:39:35 oh 20:39:36 okay 20:44:58 --- quit: I440r (Read error: 60 (Operation timed out)) 20:46:06 --- quit: ayrnieu (Read error: 104 (Connection reset by peer)) 21:01:34 * kc5tja decides to have some fun with an Atari ST emulator... 21:01:53 :) 21:02:06 kc5tja: have fun. 21:02:14 kc5tja: I'm teaching a friend some chemistry right now 21:02:21 kc5tja: and yes, you're on TV :) 21:02:21 kc: do they come with a legal ROM of the OS with GEM? 21:02:45 GEM is GPL now, so it doesn't matter WHAT Atari thinks. TOS is open source. :D 21:02:51 So says SCO/Caldera. >:) 21:03:00 (and yes, ROMs are readily available for download) 21:04:30 neat 21:05:13 :) 21:09:44 hmmm, job search websites don't seem to have much on offer =( 21:17:33 job websites suck. apply at your local mcDonalds store XD 21:25:33 What sites? 21:26:42 :) 21:40:12 madgarden, seek.com.au,careerone.com.au and so on 21:44:09 kc5tja: http://www.complang.tuwien.ac.at/nino/dmonobig.jpg look at who's in the credits list in the partially hidden netscape window :) 21:45:31 bernd paysan! 21:47:16 pardon my ignorance, who is he? 21:47:23 forth d00d 21:47:29 helps with gforth, methinks 21:48:17 chris-cyg: He's go-author of gforth, and primary author of BigForth. 21:48:24 :) 22:07:36 Heheh :) 22:07:43 I forgot just how god-awful slow the Atari ST was. 22:07:43 :) 22:08:12 I should make a correction: 22:08:22 I forgot how god-awful slow GEM was on the Atari ST. :) 22:08:41 Because even with the blitter turned on (it's an STe emulator), it's still . . . god awful slow. :) 22:09:38 The PC version of GEM is also pretty slow, but not nearly as slow as the ST's version. I don't know why. 22:10:02 But GEM is slow because it does a lot of busy-waiting to determine the difference between a single click versus a double-click versus a dragging operation. 22:10:06 So it's pretty annoying. 22:10:15 My GUI definitely won't do that. 22:10:17 :) 22:19:26 kc5tja: where did you find a ROM image? (tos.img) 22:21:44 :) 22:22:01 kc5tja: I kinda like how Rio works (Plan 9( 22:22:07 never used it, but I like the concept 22:25:00 Sonarman_: It's available on the Steem emulator's website. 22:25:30 thanks 22:25:35 n/p 22:25:50 They have 1.02 and 2.06 TOS versions available, for both NTSC and PAL machines. 22:29:37 lalalaaaa 22:29:39 :) 22:29:46 kc5tja: hows your GUI gonna be lkike? 22:30:32 From a user's perspective, it'll probably (but I'm not 100% sure yet) be like GEM. 22:30:59 From a programmer's perspective, it'll have strong GEM influences, but it'll fix a number of problems that GEM currently has. 22:32:58 For example, clicks and drag operations will be recognized *immediately*, not 1/10th to 1/5th of a second after pushing the mouse button. 22:36:22 Why do you ask? 22:37:14 I'll probably also support true multitasking, which GEM doesn't support natively. 22:40:47 Applications will be event driven, of course. 22:41:55 The system will likely consist of three major parts. 22:42:04 --- quit: Sonarman_ ("leaving") 22:42:05 BoxOS itself provides the core functionality of the system. 22:42:24 The VDI would provide the raw framebuffer access words (these actually do the drawing functions). 22:42:42 Note that the VDI is wholesale unaware that you're using a windowing environment. 22:42:51 just curious. keep talking. Usually, everything you come up with is great :) 22:43:03 Hence, it is up to the application to translate coordinates, and to enforce its own clipping! 22:43:31 VDI == Video Display Interface, BTW. 22:43:58 The AES (Application Environment Services) component is what actually handles the window management, buttons, menus, etc. 22:44:09 The AES is only *slightly* aware of the VDI. 22:44:24 The AES also maintains, for each window, a list of rectangles that are visible. 22:44:47 So if a window needs to be refreshed, the application can query the AES to find out the appropriate set of clipping rectangles. 22:46:51 It's a very simple system. The VDI isn't aware of the AES, and the AES only relies on the VDI to update the mouse pointer and handle menu operations on behalf of the application. 22:48:59 windows? 22:49:07 Herkamire: GEM supports windows, yes. 22:49:24 I hope you don't mean windows as in rectangles that can partially overlap and resize etc 22:49:36 Herkamire: Yes, that's precisely what I mean. 22:49:42 WHY? 22:49:49 Because it's trivial to support. 22:49:57 but it's a waste of time 22:50:01 innovate 22:50:08 Innovate how? 22:50:14 The **ONLY** other alternative already exists. 22:50:31 what? 22:50:49 Paned/tiled display management is the only other viable screen management system. 22:51:00 that would be much better 22:51:00 And that's old-hat technology, even compared to overlapping windows. 22:51:08 or fullscreen 22:51:11 like palm pilot 22:51:23 Palm Pilot also supports overlapping windows. Betcha didn't know that. 22:51:30 nope 22:51:46 what's the point of overlapping windows? 22:52:10 When all you have is 320x240 or 320x480, you either use full-screen or you use overlapping windows. 22:52:26 Sometimes overlapping windows are nice to have. 22:52:33 how do you get any use out of overlapping windows? 22:52:51 the only thing I've seen people use them for is for clicking on them to bring them to the front. 22:53:01 but mostly people just waste time aranging them and making them bigger 22:53:04 Drag-n-drop is utterly impossible to do otherwise. 22:53:54 why don't you like panes? 22:54:09 not classy enough for you? 22:54:13 Because the screen isn't big enough to support them. And what did I say made you think that panes aren't possible in this system? 22:54:35 If I'm going to be patronized about this, I'll just leave. 22:54:49 ok, I suppose it's sometimes useful to have a mostly obscured window somewhere so you can drag stuff to it 22:54:50 I am not here to be questioned by the freakin' Spanish Inquisition. 22:55:29 I just think windowed systems are a PITA 22:55:40 Then don't write your applications to use windows!!!!!!!! 22:55:54 I just got done saying the VDI supports full-screen access!!! 22:55:57 I don't 22:56:03 SHEESH! 22:56:13 Don't chastise me because someone else might want to use overlapping windows. 22:56:28 didn't mean to piss you off. 22:56:34 you made a good point about drag-n-drop 22:56:49 hadn't thought of that. I haven't used drag-n-drop for a long time 22:57:46 :) 22:57:47 GEM only permitted a single application to have up to 8 windows anyway, so most applications ended up having the main body of work taking up the whole screen (except for the menu bar), and then used the overlapping windows for things like toolbox palettes and the like. 22:57:51 man, I'm sorry if I'm being an ass. 22:58:16 Good stuff 22:58:18 :) 22:58:40 I've said "sorry" and "good point" in my head a few times, but I don't seem to have typed it 22:58:58 Well, you know how much I love the ion window manager, and swear by it. 22:59:01 :) 22:59:08 * chris-cyg goes to try 22:59:08 But sometimes, having a window or two is just plain convenient. 22:59:46 kc5tja: could you give more examples of when it's convienient to have a window or two? 23:00:14 dragndrop sounds like an ok one, but I'd be happy having a small pane for the destination 23:00:28 When spell checking, I'd like to see that portion of the document the spell checker objects to. 23:00:39 (so I can verify context) 23:00:52 --- quit: Nutssh ("Client exiting") 23:01:00 right. I like that too. ispell doess it nicely 23:01:35 Here's another good example. I don't know why I didn't think of this sooner. 23:01:53 In my embedded software application, the normal modus operandi for the user is full-screen interface. 23:02:03 cool 23:02:09 But when selecting a text gadget, a virtual keyboard needs to pop up (since the user only has a 7 button remote control to work with). 23:02:16 That needs to co-exist with the remainder of the display. 23:02:29 right. 23:02:45 but you would not want it to overlap with the display they were using (and obscure part of the document) 23:02:59 you would want the keyboard to use the bottom, and the document to use the rest 23:02:59 Herkamire: In some cases, I have no choice. 23:03:07 Herkamire: Some text fields take up 3/4 the screen. 23:03:12 same with the spellchecker 23:03:28 Herkamire: OK, but the same idea applies. 23:03:33 The *EXACT* same code even. 23:03:50 After the spell checker pane disappears, what re-draws the rest of the original screen? 23:03:59 The UI has to issue "update" requests to the application. 23:04:08 right 23:04:15 or do backing store :P 23:04:23 And it needs to maintain a (set of) rectangle(s) with which to record the damaged parts of the display. 23:04:47 --- quit: chris-cyg (Read error: 104 (Connection reset by peer)) 23:04:48 chris-cyg: I don't expect this system to have the memory bandwidth or capacity to do backing store. 23:04:54 I agree that you need to be able to have multiple things displayed at once, but I seriously question the value of having them "overlap" 23:05:22 --- join: chris-xp (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 23:05:31 But if 95% of the code for implementing them is the same, I see no reason to NOT implement overlapping support. 23:05:40 ooops...lol 23:05:46 chris-cyg: I don't expect this system to have the memory bandwidth or capacity to do backing store. 23:05:55 in both cases (spellchecker, keyboard) usability would be greater if the document display area shrank to not include the area behind the spellchecker/keyboard 23:05:56 heh 23:06:21 Herkamire: I just don't buy that argument. 23:06:42 kc5tja: why not? 23:06:42 At best the usability will be the same. 23:07:08 with the keyboard obscuring the bottom of the document window, you would never be able to see the bottom of your document, not even if you scrolled it all the way down 23:07:16 what is the difference between a pane along the bottom of the screen, and a full-width window that just-so-happens to sit at the bottom of the screen (especially to the user)? 23:08:04 unless you aranged it just right so the keyboard and document window don't overlap. But thaht's what the paned method does automatically. the difference: one you wast time setting it up, the other is automatic. 23:10:25 Right. The exact same graphics code governs both. 23:10:40 The paned system actually has more code (though admittedly not enough to object to) to handle the panes. 23:11:32 what about panes requires more code? 23:11:32 I just think that if I implement a system that can adequately handle both cases, people ought to be happy. 23:11:44 good thinking 23:11:55 When you move a pane border, it must shrink one window and expand the other window. Like I said, it's not enough to worry about. 23:12:01 man, what the hell 23:12:16 i have to hit alt+tab once from xchat to VS, and twice the other way around 23:12:17 fuck 23:12:49 Herkamire: That's what I've been describing all along! The AES doesn't care what or how *you* manipulate your windows (if it's automatic, manual, etc). It just supports overlapping windows properly. 23:13:12 The whole system is very orthogonal, and very RISC in nature. 23:13:36 Ack. 23:13:44 ok, that I understand. that resizing with panes resizes two at once (or more) with interdependancies. 23:13:47 I'm considering a rewrite of Frapiar to something more OOPish 23:13:51 but 23:13:57 Applications don't draw into windows; they draw directly into the screen's framebuffer, with the knowledge that other windows may be present, and thus, they actively avoid drawing over other windows in their area. 23:14:06 my best option there would be C++ :( 23:14:35 but with panes never have overlapping. they are alwas a rectangle, and are either displayed completely, or not at all 23:15:01 kc5tja: will you help me when/if I get stuck? 23:15:05 Herkamire: So? 23:15:14 Herkamire: The application still sees the same interface, no matter what. 23:15:21 kc5tja: so wouldn't that simplify things a lot? 23:15:29 chris-xp: I can try, but remember, I'm way, way old-skewl when it comes to C++. 23:15:47 Herkamire: No, because the app still needs to know to not over-draw other panes it doesn't own. 23:16:25 So it only receives 1 damage rectangle instead of N. Same basic interface, only the number of damage-rects differ. 23:17:47 calculating that list of rectangles sounds complex 23:17:53 kc5tja: what exactly do you mean by old-school? I'm not the typical OOPer in that I stick everything I can't place in a new class on its own... 23:18:00 :) 23:18:09 And no, not using templates. No way. 23:18:14 and I would not like to have to clip to an arbitrarily long list of rectangles. 23:18:22 Herkamire: It's actually pretty simple. It's just a 2-D set union algorithm that is pretty basic. 23:18:36 I'd probably just draw to them one at a time, and that would be slow 23:18:55 Herkamire: That's how GEM does it. You receive one damage rectangle at a time. 23:19:18 ok, 23:19:20 It's not that slow; it's how every other GUI I know of handles it. :) In fact, to support backing store, it's a requirement (though the OS does it, not the app). 23:19:29 and in most cases there won't be more than 2 right? 23:20:33 I would say 3, as that covers the case with two obscured window regions. 23:20:40 (which is usually the case) 23:20:54 mac os classic hands you all the rects at once as a "region". but it does the clipping for you. 23:21:22 Is this region a big bitmap that it logically ANDs the output of drawing routines with? 23:22:15 I don't remember. I think it was in some vector form (outline, or list of rects) 23:22:22 they encouraged you to use it as a black box. 23:22:22 (e.g., a bitmap big enough to cover the screen, where pixels that are visible are marked with 1 bits, and 0 bits elsewhere?) 23:22:36 query against it if you wanted to know if something in your view was hit 23:22:53 I think it was converted to a bitmap somewhere down the line 23:23:34 I don't know how relivant this is, I just mention it because I have experience with it. 23:24:07 In GEM, you can grab each of the rectangles and build your own clipping mask if you wanted. 23:24:15 cool 23:24:23 AES doesn't care when or how you update the contents of the window. It's job is to just let you know what regions of your window are visible. 23:24:40 It is ultimately your responsibility to ensure that your graphics don't spill into another app's window. 23:24:55 right 23:25:06 I should just say, "another window," since in practice, all windows are owned by the same app. 23:25:13 (unless a "desk accessory" is running) 23:25:21 :) 23:26:55 hmmm... I've never actually done clipping by hand to anything but a rectangle. maybe it's not as bad as I imagine 23:27:41 It can get hairy. 23:27:42 :) 23:27:53 :) 23:27:57 Unless you build a giant masking bitmap, it can be pretty tough. 23:28:00 Frapiar'll have to do it. 23:28:09 kc5tja: heh 23:28:35 Path-based drawing systems, like display PDF and display Postscript, use the "big honkin' bitmap" technique, as drawing through bizarrely shaped stencils can't really be handled any other way. 23:28:41 (Especially if anti-aliasing is used.) 23:28:58 kc5tja: build a rectangular rectangle barely large enough to hold the shape. Everything else is automatically considered "No!" 23:29:04 kc5tja: :) 23:29:16 kc5tja: problem'll be getting the rectangle :) 23:29:48 chris-xp: And if that rectangle overlaps two other windows in the process? 23:30:51 kc5tja: It won't draw there, because the rectangle only defines the masking bitmap. 23:31:08 kc5tja: dunno how fast that would be, but it doesn't seem like it'd be _too_ bad 23:31:39 Well, I thought that that was what I just suggested. 23:32:00 I mean, it's the same basic technique used to draw a mouse pointer. 23:32:21 well, i was mentioning that you could eliminate a good part of the bitmap by clipping the rectangle to just whats needed 23:32:27 kc5tja: yeah :) 23:32:35 kc5tja: mice are easy to draw :) 23:32:44 You have a 16x16 bitmap containing the actual black-colored pixels of the mouse pointer; then there is another 16x16 image mask used to control what pixels of the other bitmap are actually rendered. 23:33:12 Or even simpler. 23:33:22 one 32-bit RRGGBBAA bitmap :) 23:34:11 if(AA == 0) dont_draw_me(); 23:34:32 Same thing. 23:35:16 The point is, to draw non-regular solid areas, you can't use rectangles to describe them in any memory conscious way. You have no choice but to use bitmaps. 23:35:25 Or other forms of pixel-level masking techniques. 23:35:50 like what? 23:36:13 Like what you proposed above: the alpha-channel mask. 23:36:24 ok 23:37:14 Hrm. 23:37:23 12-bit colors... 23:37:55 4092 different color combos 23:38:02 and then 16 alpha channels 23:38:07 * chris-xp thinks of DOS stuff :) 23:38:29 I'm sure one could actually coerce some Video mode into doing it like that... 23:39:28 Whatever works for your needs. 23:39:38 I'm going to stick with plain vanilla, boring, monochrome bitmaps. 23:39:48 mono is fun. 23:39:49 :) 23:39:52 That's what the Kestrel natively supports, so that will offer the greatest performance for the Kestrel. 23:40:04 hrm 23:40:11 i wonder if the TV will be more readable BW 23:40:27 Almost certainly. 23:40:49 In an NTSC or PAL signal, the lumanence signal has twice the bandwidth as the chromanence signal. 23:40:50 hrm 23:41:00 its not BW, its gray 23:41:09 So a 320 pixel resolution is actually somewhat of a waste of TV bandwidth. 23:42:00 but BW definetely hurts the eyes less 23:42:10 how does PAL/NTSC work? 23:42:26 That is a tough question to answer. 23:42:31 I don't even know where to begin. 23:42:35 heh 23:42:36 Can you narrow the question down? 23:42:46 In an NTSC or PAL signal, the lumanence signal has twice the bandwidth as the chromanence signal. 23:42:51 explain that :) 23:43:01 wtf 23:43:08 Before there was cable television, TV signals were transmitted via radio. 23:43:14 selecting something makes it white, which makes the surroundings bulge ... o.O 23:43:33 A number of signals needed to exist on a given radio band, so they used different frequencies for each channel. 23:44:20 52MHz was channel 1 (now allocated to the amateur radio band!! This is why TVs in America lack a channel 1 position), channel 2 is at 54MHz, channel 3 is at 60MHz, etc. 23:44:24 This continues until channel 13. 23:44:43 6mhz per channel? 23:44:49 The FCC originally alloted 6MHz of bandwidth to each channel. 23:44:57 ok 23:44:59 Yes, because that's about how wide each TV signal took. 23:45:04 Then, along came color. 23:45:18 Somehow, they needed to make color TV 100% backward compatible with monochrome TV. 23:46:03 wow, I never really thought about that 23:46:30 So what they did was introduce a subcarrier at +3.579545MHz (e.g., this "chroma carrier" was always at 3.579545MHz higher than the base channel frequency). 23:47:10 This sub-carrier was phase and amplitude modulated to produce the color difference signals (since the lumanence signal already provided information for all three guns, the chroma signals encode the color *differences*). 23:48:00 interesting. 23:48:28 BUT, if the color information took the same bandwidth as the lumanence signal, the bandwidth of the TV signal as a whole would now be 9MHz, and not 6MHz (3.5MHz + 6MHz is roughly 9.5MHz). 23:48:52 So they halved the resolution of the color-carrying pixels to bring the bandwidth back into legal and compatible limits. 23:49:10 wow 23:49:25 another question - how do the TV protocols draw? 23:49:39 (I mean, it doesn't seem like they send bitmaps over cable :P) 23:49:42 --- quit: Herkamire ("off to bed") 23:51:16 Color information is encoded by both amplitude and phase, relative to a 'color burst' in the horizontal sync pulse. 23:51:38 The horizontal sync forces the TV to sweep the electron beams back to the left-side of the screen. 23:51:54 After the sync, the TV will start sweeping the beam back to the right, though at a slower rate. 23:52:10 Then the data encoded in the NTSC signal is displayed on the screen. 23:52:51 The YIQ signal is decoded (via op-amps to perform the analog computation) to RGB, which drives the 3 respective guns, in real-time. 23:53:33 wheee, I don't get it! :P 23:53:34 :) 23:54:15 the conversion from YIQ to RGB involves matrix math. 23:54:28 what exactly is YIQ? 23:54:34 Yellow Indigo Something? 23:54:37 Y is lumanence, and I and Q are the two parameters of the color subcarrier (phase and amplitude). 23:54:45 oh.. 23:54:54 --- quit: fridge (kornbluth.freenode.net irc.freenode.net) 23:54:59 split. 23:55:07 Remember that Y = 0.10B + 0.60G + 0.30R. 23:55:33 Yellow? 23:55:36 er 23:55:41 eeeeek 23:55:49 * chris-xp enters BOFH-like dummy mode 23:55:52 This means that I must be Y-R and Q must be Y-B in order to provide the three simultaneous equations that derive R, G, and B again. 23:55:59 No. 23:56:02 Y is just a variable. 23:56:21 And it's not yellow -- if you add 0.10 + 0.60 + 0.30, you get 1.00, which is full white. 23:57:43 --- join: fridge (~fridge@dsl-203-113-230-109.NSW.netspace.net.au) joined #forth 23:58:27 heh, man, this is way over my head :) 23:58:34 i shouldnt have asked :P 23:59:50 Now you see why Kestrel supports *only* VGA. :) 23:59:59 --- log: ended forth/04.03.14