00:00:00 --- log: started forth/04.03.16 00:04:01 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 01:01:57 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 02:03:38 --- join: chris-xp (~Chris@wbar8.lax1-4-11-099-104.dsl-verizon.net) joined #forth 02:03:58 mornin' all 02:04:37 --- part: Nutssh left #forth 03:29:32 --- quit: ChanServ (kornbluth.freenode.net irc.freenode.net) 03:35:31 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 03:36:18 --- quit: warpzero (Read error: 60 (Operation timed out)) 03:39:42 hi 03:49:24 --- join: ChanServ (ChanServ@services.) joined #forth 03:49:24 --- mode: irc.freenode.net set +o ChanServ 05:17:43 --- quit: ribbon ("A life without meaning") 05:20:38 * chris-xp is away: sleep+school 05:54:18 --- join: Fractal (bron@h24-70-180-160.ok.shawcable.net) joined #forth 06:53:58 --- join: ribbon (~ribbon@cpc1-bolt4-5-0-cust161.mant.cable.ntl.com) joined #forth 07:29:41 --- join: networm (~networm@L0652P12.dipool.highway.telekom.at) joined #forth 07:35:08 hi, networm 07:35:15 moikka 07:35:59 hi 07:36:23 Just get out of class? 07:36:57 yep, just got home. that stupid professor doesn't like my Forth project. he wants some distrinct feature or something.. 07:37:06 *distinct 07:37:16 now i have to think what I could do.. 07:37:35 everything is already implemented somewhere :P 07:38:18 How is "Forth" not a distinct feature? 07:38:20 Put in a version of clippy, or something? ;) 07:38:43 "It looks like you're trying to write your own FORTH..." 07:38:47 well, he said, there is already so many Forth implementations.. 07:38:54 clippy? 07:39:11 The annoying paperclip in MS Word? 07:39:15 oh 07:39:28 networm, well is there a Forth for your own VM design? 07:39:28 i always had a cat there :) 07:39:45 I mean, what does the guy expect for 1 hour a week? 07:39:59 I'd think a complete Forth 83 implementation would be satisfactory. 07:40:02 not sure 07:40:15 yes, i was more concerned he would think it is too much work 07:40:41 Maybe you need to stress that a) it's your own VM design and b) your primitives will be written in CODE using your Forth's ASSEMBLER. 07:40:42 (maybe he believes i just want to copy+paste some code?) 07:41:12 Yea, perhaps he doesn't trust that you won't just port an existing Forth. 07:41:30 yeah, i sent him an email describing that. first a VM in C, then the forth on top of it. after al the purpose is to understand the principles.. 07:42:06 yeah. i'll just try to reformulate, maybe stress something which might be a distinct feature 07:42:23 Maybe he hangs out secretly in here, and knows what you've already got done. Eh cmeme? Eh skylan? Fractal!? We know it's you!! 07:42:31 hm.. 07:42:51 he doesn't know too much about Forth though, it seems 07:43:17 Ahh. Maybe he's afraid of the TRUTH. ;) 07:43:21 maybe i should describe it a bit 07:43:33 he might have thought the end result is just a stack calculator 07:43:56 Sounds like a good idea... describe the VM, how the system is built on top of it and how it extends itself. 07:45:00 Remember, it took me a while to convince you that Forth was more than just an RPN calculator. ;) 07:45:09 i know.. :) 07:45:42 well, it isn't that much more, without the dictionary.. 07:46:19 I don't think the dictionary is the root of Forth. 07:46:23 It's the threading, IMO. 07:46:34 You can run a Forth system without the dictionary. 07:46:59 hm.. that just gives me an idea.. maybe if i add a feature to switch threading models at runtime, and visually watch what is happening? 07:47:34 it would be not so much compiler-building related - but it would be a bit distint (although i'm sure someone has done something like it already as well) 07:47:38 Hmm. Not sure if that hits the root of "compilers" though. 07:47:42 yeah 07:47:51 I think I'd be more impressed with a nice debugging facility. 07:48:07 tracing, stepping, breakpoints. 07:48:15 unwind, like in Blazin' Forth. 07:48:49 I mean seriously. The professor obviously doesn't grok what a full Forth implementation is. Just having CODE words should be enough, I'd think. 07:48:55 yes, i will write that as a distinct feature: extensive debugging support :) 07:49:14 "Interactive interpreter, compiler, assembler, and debugger." :) 07:49:57 +my own VM :) 07:50:13 Heh, yep. Though honestly, that's the easy part. ;) 07:50:14 (i don't really feel like learning real assembler for it) 07:50:53 OK, I sign the contract with my new employer today at 3pm! 07:51:04 07:51:45 heh 07:52:22 is there a chance of it not getting signed? 07:52:31 or is it just formal anymore 07:52:50 Nope, no chance, I'm hired, just gotta give 'em a void cheque, basically, so they can start paying me. ;) 07:52:56 ah, good :) 07:53:05 embedded C++ 07:53:10 Should be interesting. 07:53:37 oh.. so you finally have to learn C++ 07:54:03 templates 07:54:08 STL 07:54:27 Heh. Well, I already "know" it, at least in a basic sense. But yea, I'll have to use all that fluffy C++ stuff now. 07:54:50 (Stroustrup 3rd Edition -- remember C++ is a Software Architects language) 07:54:57 you will stop liking Forth and code everything in C++.. 07:55:06 I find it a bit weird that they're using C++ for embedded work. But probably, it's on top of some standard OS, so it's not truly "embedded" as I would descrive it. 07:55:12 (or you will code Forth in C++, making lots of tiny functions..) :) 07:55:26 networm: That would be wrong :) 07:56:05 I'll have a singleton base class for everything that includes two stacks, and has a bunch of Forth primitive methods. ;) 07:56:22 i know it. ;) 07:56:25 *knew 07:57:31 at least, it's C++ and not Java 07:57:58 Does is matter much which circle of hell you're in? ;) 07:58:04 heh 07:59:42 Well I'll probably be messing with Java as well eventually, as well as C#. :o 08:02:04 stay away from C#. despite the hype it's VB with semicolons 08:02:20 Heh. 08:02:37 Well I'll try my best, but not sure I'll have a lot of choice in the matter. 08:03:12 Though I've stated my intent to remain in the realm of low-level development. 08:04:39 --- quit: ChanServ (Shutting Down) 08:05:45 networm, so what's your current task for B4? 08:08:09 --- join: ChanServ (ChanServ@services.) joined #forth 08:08:09 --- mode: irc.freenode.net set +o ChanServ 08:08:49 --- quit: fridge (Remote closed the connection) 08:12:40 for B4, i have to fix RECURSE which stopped working (just some minor bug).. then look at the stack checking 08:13:50 i want the built-in functions to not cause over/underflow in the middle 08:14:46 So, some sort of macro... DEPTH_CHECK(self, 3); 08:15:32 yep 08:15:54 i have code currently to parse my C source, look for comments above functions, then count what is left and right of -- 08:16:05 so i get the params counts :) 08:16:29 (too lazy to assign them manually to every word :P) 08:16:48 Heh. 08:17:00 Have you given any thought to VIEW? 08:17:15 well, i could just rename my current SEE into it.. 08:17:51 hm, and yes, i want to do a proper SEE 08:19:33 You'd still want a VIEW for high-level Forth definitions. 08:24:01 i forgot..what does it do? 08:24:13 Shows source code. 08:24:22 ah, of course 08:24:41 Whereas SEE decompiles. 08:24:53 so every word must remember in which file/block it is defined, and where in it 08:26:30 Something like that. :) 08:29:06 SEE should be really simple 08:29:13 Yep. 08:29:43 Decode CFA, flags, and decompile tokens. 08:29:43 VIEW also, if i just add some fields to the word structure.. 08:30:44 VIEW would work well with blocks. Just need a block number in the word header. :) 08:31:20 yep 08:31:37 hm, it gets a little tricky for created words 08:31:45 i.e. all non-colon words 08:32:00 there is still source, but not easy to find 08:32:50 i think i need block number, first char address, last char address 08:33:10 : would just write thecurrent parser address as first char.. ; as last char 08:33:11 Well... inside CREATE, you could check to see if the BUFFER is being interpreted currently, and then fill in the VIEW field based on that. 08:38:52 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 08:48:22 --- quit: madgarden (Excess Flood) 08:48:34 --- join: madgarden (~madgarden@Kitchener-HSE-ppp3576712.sympatico.ca) joined #forth 08:50:42 madgarden: so your IRC client has no flood protection.. :) 08:50:59 i guess, then only xchat has it.. 08:54:59 --- quit: warpzero ("Tried to warn you about Chino and Daddy Gee, but I can't seem to get to you through the U.S. Mail.") 08:55:44 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 08:58:46 --- join: Herkamire (stjohns@h000094d30ba2.ne.client2.attbi.com) joined #forth 08:59:55 I guess not. :P 09:02:05 yawn and stuff 09:16:19 'morning all 09:16:25 Are virtual yawns as contageous as real ones? 09:17:09 it didn't get me 09:17:16 Afternoon! 09:17:16 Herkamire, you must be a west coast fellow 09:17:45 no, I'm east coast, and I slept in way too much. 09:18:18 it's actually noon fifteen 09:19:05 stupid AOL 09:19:09 So that qualifies as afternoon, right? 09:19:14 they won't accept messages from my computer 09:19:33 yeah yeah yeah, so I like to say goodmorning to people after I get up 09:20:21 What I really love is the condescending "good morning!" people give you when you wake up late. I really love that. 09:20:24 * Herkamire invites anyone who doesn't like it to go stick their head in a pig ;) 09:21:17 yeah, some people are kind of a bastard about it. I just bite them. ;) 09:22:27 I discovered firefox yesterday :) I was wondering why I hadn't seen a new version of firebird for a long time 09:22:46 I wish I could get my Opera bookmarks imported into Firefox. 09:34:07 why not use mozilla? it works great here in linux/gnome 09:41:58 Firefox pretty much is mozilla. :) 09:43:54 yes - that's why i'm wondering. i see no reason to switch. 09:44:22 I tried Firefox.. but I still like Opera better for some reason. 09:44:38 Firefox is a Mozilla-lite, AFAIK. 09:44:46 I like Opera, but it crashes on me lately. 09:45:48 maybe i'm using firefox without knowing.. i just use what debian gives me. lately mozilla has that ugly dark-blue look anymore, but nicely integrates with the gnome GUI 09:46:02 s/has/doesn't have/ 10:05:14 firefox is like mozilla only not as slow 10:06:02 and uses less ram, as it's not an email client, or a web page builder, or a chat client etc etc etc 10:19:32 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 10:37:45 --- quit: qFox (Read error: 60 (Operation timed out)) 10:46:54 hi 10:50:46 hi tathi, slava :) 10:52:26 --- join: tathi_ (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 10:53:32 --- quit: tathi (Nick collision from services.) 10:53:36 --- join: Nutssh (~Foo@gh-1081.gh.rice.edu) joined #forth 10:53:37 --- nick: tathi_ -> tathi 11:03:23 --- quit: ribbon (Read error: 110 (Connection timed out)) 12:41:44 --- quit: Nutssh ("Client exiting") 13:04:34 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 13:04:41 --- mode: ChanServ set +o kc5tja 13:05:20 OK, today is the day that I drive to the storage unit and retrieve my oscilloscope and my box full of 65816s. :) 13:05:34 Then I'll reconfirm my order of parts from Mouser, Digikey, and a few other places. 13:05:55 (haven't had a chance to do that yet) 13:18:19 hey kc5tja 13:18:47 Hello. 13:18:59 I have been considering how to bundle Forth with the system. 13:19:04 There are two approaches. 13:19:20 The first is to include a CP/M-like operating system for it, and then boot Forth off of a ROM-disk. 13:19:33 The other way is to just drop straight into Forth directly. 13:19:43 I'm going to just drop straight into Forth directly (my original plan). 13:20:22 The CP/M-like OS is a good idea too, but realistically, it'd be a waste of coding effort. Especially when you consider that BoxOS will just offer all the same services as the CP/M-clone. 13:25:38 Anyway, I was just considering some options. 13:27:54 However, I must admit, I *do* like the idea of a "cookie jar," as implemented on the Atari ST. :) 13:28:05 Consider that concept wholly and unabashedly stolen. :D 13:28:30 "cookie jar"? 13:28:56 ah, nm 13:30:41 In the Atari ST, there was a global list of "cookies", which you could search to see if certain features were either enabled or supported. 13:30:52 Cookies were identified with unique 32-bit integers. 13:31:06 Each cookie also had a data pointer field that pointed to cookie-specific information. 13:31:25 Device drivers in ROM would add cookies as flags to let applications know which devices were installed, and where their respective handlers could be found, etc. 13:31:37 Blitter support was detected this way, for example. 13:32:22 I like it :) 13:32:25 Generally speaking, a TSR would also leave a cookie in the jar. 13:32:37 * kc5tja nods -- I do too. It's simple and elegant, and is easy supported in Forth. 13:33:09 ' myDataStructure S" BLAH" >cookie-id cookie, 13:33:13 :) 13:34:15 Or in a more favorable form perhaps, ' myData COOKIE BLAH :) 13:34:27 Planning to use normal computer VGA monitors for output? 13:37:14 Robert: Where have you been? :-) 13:37:41 Robert: Of course! 13:37:43 Here, but the real question is where my brain has been. 13:38:00 Ah, that's good. Is the interface easy? 13:38:14 Robert: The hardware is trivial. Software will be the tricky part. 13:38:16 And will you use a co-processor for the video part? Shared video memory? 13:38:23 Robert: Ummm.... 13:38:46 Robert: Once again, the CPU is exclusively responsible for video refresh. :) http://www.falvotech.com/cgi/fsforth/ForthBoxKestrel 13:39:17 Oh, didn't see that page. 13:39:22 :) 13:42:12 The only problem with using Forth native as the host operating system is that writing custom machine language programs will not be (as) easy. 13:42:30 To resolve a kernel entry point, one has to resolve a name. I'm not sure I like that. 13:43:18 So I may decide to just write a simple BIOS for it, then layer the Forth environment on top of the BIOS in ROM. 13:43:37 This way, the BIOS services will be available even if someone wants to replace the Forth environment with their own OS. 13:43:57 Couldn't that system just be on top of the Forth instead? 13:44:05 Sure it can. 13:44:22 But do YOU always want to resolve "Vclear" to clear the screen whenever you want to call it? 13:44:37 Personally, I'd rather just JSR Vclear and be done with it. 13:45:44 It doesn't matter what language the BIOS is written in. 13:46:05 What matters is that it has a set of consistent entry points, and a set of consistent interfaces (preferably halfway language independent). 13:48:03 Besides that, a lot of the code to manipulate the screen has to be in pure assembly language anyway, for performance reasons. 13:48:10 Er, why do you have to resolve the word every time you execute it? 13:48:27 Robert: You don't -- only when the code first runs. 13:48:35 Robert: But you still have to resolve it, by name. 13:50:35 Ah, you mean in case people don't want to write their programs in Forth? I guess, if that's really what you want, a BIOS could be useful... 13:50:54 Well, either way you look at it, a BIOS has to be written. 13:51:03 The difference is how I expose its interfaces. 13:51:22 I either keep the BIOS completely private to the Forth environment, or I can expose the functionality to arbitrary software. 13:52:04 Forth is pretty doggone slow compared to raw machine language on those CPUs anyway. I think it'd be better to have a real BIOS made available. 13:52:27 Hehe :) 13:52:45 Seriously. Subroutine overhead on a 6502/65816 is 12 cycles. 13:52:47 While the CPU is doing calculations, can it just ignore the video updating? 13:52:55 Ouch. 13:53:07 Robert: If you want the screen to go black every time it tries to do even the slightest amount of thinking, sure. 13:53:11 That calls for a good Forth compiler. 13:53:20 --- join: fridge (~fridge@dsl-203-33-165-6.NSW.netspace.net.au) joined #forth 13:53:22 However, users of the ZX81 suggested that that was particularly annoying. 13:53:30 Heh 13:53:44 Robert: No. It calls for an integrated assembler, with time-critical components being written in assembler. 13:53:53 Like the BIOS. 13:54:10 Or do you want to end up like with Windows - you have 3D animated hour-glasses to look at, but you have to wait a lot longer. ;) 13:54:23 Robert: Huh? 13:54:30 Nevermind.. 13:54:31 Robert: I don't understand your last question. 13:55:19 Actually, this morning, I realized that I don't have to blank the screen to get about 50% improvement in throughput. 13:55:50 About mass storage, will you include any sort of EEPROM memory, or just IDE support? 13:55:51 If I render only every other line on the VGA display, I get the appearance of a "non-interlaced" display (e.g., 320x240 resolution, but it looks line non-interlaced NTSC/PAL). 13:56:16 Robert: The system boots from EEPROM, but it cannot program itself. 13:56:30 Robert: disk storage is via the IDE interface. Love it or leave it. 13:56:42 :) 13:56:45 I only have 8KB of ROM space to work with. I can't include drivers for every possible storage technology under the sun. 13:57:14 I just thought, IDE disks need power, space, they make noise... 13:57:27 Robert: Ever heard of compact flash? :) 13:58:20 Do they have an IDE interface? 13:58:26 Robert: That's *ALL* they have. 13:58:36 Ah. Then I'm happy! 13:58:44 And implementing the IDE interface is dirt cheap. 13:58:51 I don't use such modern things, normally. 13:58:52 It can be done in a handful of TTL discrete component chips. 13:59:03 Is it easy to deal with in software? 13:59:20 You cannot tell the difference between a compact flash and a harddrive. 13:59:35 I mean the IDE interface in general. 13:59:57 Robert: Have you seen Chuck Moore's IDE driver block? (Yes, note the singular: BLOCK) 14:00:14 Programming the IDE interface is utterly trivial. 14:00:16 Yes, it's cute. 14:00:25 It's 100 times more simple than programming a floppy disk controller. 14:00:40 Yeah, I noticed that. 14:00:53 Even though the enth/flux floppy code is one block... 14:01:14 My interface might not be as simple to program, because the IDE interface is going to be driven off of a VIA chip. But the simplicity will be self-evident nonetheless. 14:02:43 The other thing to consider is filesystems. 14:03:03 Does the Forth system only treat the first N blocks of the first harddrive as raw block storage? 14:03:15 If so, what happens if the harddrive is bigger than N blocks? 14:03:35 And what if two harddrives are present in the system? 14:04:03 Consequently, I think filesystem support should be considered. If not in the very first release of the OS, then at least in some subsequent release. 14:04:27 Consider: a 16-bit Forth environment can address only 2^26 bytes of block storage space. 14:05:12 Most harddrives have or is rapidly approaching 2^42 bytes. 14:05:21 That's a lot of wasted space! 14:06:47 Yep. I really think file systems are useful. 14:07:46 Maybe GEOS/64-ish VLIR files are the answer to this conundrum. 14:08:07 A VLIR file is a single file that contains up to N forks in it (where N = 128 for the Commodore 64). Each fork is a simple, sequential file. 14:08:19 When opening a VLIR record, the whole record is read into memory, all at once. 14:08:29 When a VLIR file is flushed, the whole thing is written back to disk. 14:08:39 Thus, a single VLIR record is roughly equivalent to one object. 14:09:10 A single GEOS application typically has multiple overlays, each in their own VLIR record. 14:09:22 Wouldn't that mean that lots of non-modified data was written back to the disk? 14:10:01 Yes. But remember that the Commodore 64 has a severely limited address space; in practice it didn't matter for it. 14:11:24 In most cases, VLIR records were read anyway; only when creating new content did it really ever have to write new VLIR records. 14:26:41 So here are the options: 14:27:12 1. I can provide a standard filesystem access wordset, that can treat a region of the disk as a partition of sorts, or, 14:27:31 2. I can just forget about the whole files support thing, and just let BLOCK address the first 64MB of whatever drive happens to be installed. 14:28:29 (note 1 and 2 arne't mutually exclusive either; e.g., even if BLOCK only addresses the first 64MB of the primary drive, a small handful of blocks within that first 64MB can define a filesystem access module for the remaining part of the drive, or for the secondary drive if need be.) 14:33:28 i like #2 14:33:45 but provide a filesystem driver on the hd, in the first 64m 14:36:52 Yeah. 14:37:05 It'll probably be just plain vanilla FAT-16 or something, since it's so simple. 14:39:44 Because I know that having block storage is damn nice, but goodness, so are files too. :) 14:39:45 i'm sure better ones exist 14:39:53 maybe minixfs? 14:40:04 something with long filenames 14:40:06 Voraciously complex compared to FAT. 14:40:15 FAT is about as simple as they cone. 14:40:17 come even. 14:40:24 It is just a collection of linked lists. 14:40:25 :) 14:40:26 but please, hack it up so that it has at least 16-char filenames 14:41:00 More than 5 chars? That's unforthish. 14:41:29 slava: I could support the Commodore DOS file system if you want. 14:41:46 A single, flat namespace (no subdirectories), but with 16 character long filenames. 14:42:09 The directory is limited in how many entries it can support though. 14:42:34 I think that's OK for a computer like this. I mean, you're not going to move your mp3 collection to it. 14:42:58 Robert: nonetheless, subdirectories are invaluable, even on floppy disks. 14:43:05 And here, we're talking about multi-gigabyte harddrives. 14:44:10 Depends on what you do with it, I guess. I 14:44:32 Well, I like to keep things nice and organized. 14:44:57 I also tend to name source files with similar names if they do similar jobs, but in different modules. 14:45:04 So having subdirectories makes things nice and convenient. 14:45:17 So do I. But if you only have, say, a few source files, there's no real need for directories. 14:45:31 I can't guarantee that. 14:45:56 How do I know madgarden isn't going to use it from all sorts of tasks that involve lots of little files versus a few big files? 14:50:32 kc5tja, will it be powerful enough to play mp3s? :) 14:51:34 slava: No. The CPU is fast enough to play raw audio samples, so it'd have to decode the MP3 first, then play the resulting waveform. But, this is all predicated on their being a sample-type sound interface, which there almost certainly won't be. 14:51:51 kc5tja, ok 14:52:40 Consider: the CPU lacks even a multiply instruction, let alone a division instruction, so go figure. :) 14:52:48 It's a 16-bit 6502 for pete's sake! :D 14:52:48 kc5tja, why no sampled sound? 14:52:57 slava: I/O bandwidth would be excessive. 14:53:08 ah 14:53:09 The CPU already spends 75% of its time updating the screen. 14:53:31 kc5tja, wow 14:53:44 kc5tja, that's a *lot* of time spent updating the screen :) no dedicated gfx hardware? 14:53:51 Why do I get the distinct impression that *nobody* has read my description of the Kestrel hardware? 14:54:04 slava: how much are you willing to spend on the Kestrel? 14:54:09 Remember it's a kit computer. 14:54:11 kc5tja, maybe a hundred bucks 14:54:19 kc5tja, got a link with the description? 14:54:22 slava: Then no, you're not getting dedicated gfx hardware. 14:54:40 kc5tja, maybe throw a second cpu in there :-) 14:54:50 slava: Again, how much are you willing to pay for it? 14:55:00 Because *I* am not footing the bill. 14:55:03 kc5tja, will it have networking? 14:55:10 kc5tja, serial, or ethernet? 14:55:34 http://www.falvotech.com/cgi/fsforth/ForthBoxKestrel 14:56:02 slava: It'll almost certainly have one RS-232 port. 14:56:11 It absolutely will not have Ethernet on-board. 14:56:40 kc5tja, Heh... why am I lots-of-little-files boy? ;) 14:56:48 It will have a peripheral interconnect bus/ring (I'm leaning more towards the ring concept, but I don't know yet; it might take too much CPU bandwidth). 14:56:54 kc5tja: cool. i could put it in my room and use it like a terminal then :-) 14:56:58 kc5tja, does it have a fan? i hope not 14:57:07 madgarden: I just used you as an example. I cannot even begin to predict how you'd use the hardware, IF you'll use the hardware. 14:57:20 slava: No, of course not. 14:57:42 It's a freakin' 16-bit 6502! :D It runs at 12.6MHz. That's it. 14:58:43 kc5tja, ;) 14:59:28 i know what he will do.. speaking super-robots 14:59:33 :) 15:01:16 Indeed! "INTRUDER ALERT... CAT DETECTED IN HALLWAY. DESTROY?" 15:02:17 I'll let you know if you need a fan. :) When the CPU runs at 12.6GHz instead of 12.6MHz, then we'll be talking some serious fans. :D 15:02:42 Anyway, I gotta get going. I have to head north 32 miles or so to get my taxes done, then to extract the oscilloscope and my stash of 65816 chips from storage. 15:03:01 I'll be back later tonight to answer any questions you might have. 15:03:46 Also, feel free to send me e-mail as well. My e-mail address is as listed at http://www.falvotech.com. 15:03:58 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 15:18:07 --- join: ribbon (~ribbon@cpc1-bolt4-5-0-cust161.mant.cable.ntl.com) joined #forth 15:26:21 --- quit: networm (Read error: 60 (Operation timed out)) 15:28:11 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 15:36:32 --- join: blockhead (default@dialin-523-tnt.nyc.bestweb.net) joined #forth 15:43:44 --- quit: tathi ("leaving") 15:48:56 --- join: qFox (~C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 15:48:59 hi 15:49:31 * chris-xp is away: I'm busy 15:49:47 * chris-xp is back (gone 00:00:02) 15:54:36 --- join: Sonarman (~matt@adsl-66-124-255-136.dsl.snfc21.pacbell.net) joined #forth 16:02:34 hi matt 16:12:41 * chris-xp is away: work 16:33:28 --- quit: ribbon ("A life without meaning") 16:36:09 --- quit: Sonarman (Read error: 60 (Operation timed out)) 16:41:23 --- join: Sonarman (~matt@adsl-67-113-234-33.dsl.snfc21.pacbell.net) joined #forth 17:10:28 --- join: proteusguy (~proteusgu@65.166.249.10) joined #forth 17:12:05 * Sonarman is running bigForth on an Atari ST emulator :) 17:12:53 Heh. 17:17:21 done anything cool with Blazin' Forth? 17:21:29 Not really, just been looking at some of the source code. 17:21:42 I really like F83 though. 17:22:41 Yo I'm back 17:23:55 --- quit: qFox ("if at first you dont succeed, quit again") 17:24:31 Sonarman, mostly I've been running around doing job stuff and kid stuff this week. :) 17:24:41 cool. me neither, the other day i was just playing around with writing strings directly to the screen 17:25:21 --- join: qFox (C00K13S@cp12172-a.roose1.nb.home.nl) joined #forth 17:25:48 I really like the Blazin' Forth strings. 17:37:16 i haven't looked at the string words yet 17:42:00 --- part: Nutssh left #forth 17:58:19 --- join: kc5tja (~kc5tja@66-91-231-74.san.rr.com) joined #forth 17:58:24 --- mode: ChanServ set +o kc5tja 17:58:41 --- quit: skylan ("lame") 17:58:44 I'm so pissed off with myself. 17:58:53 I went up to Oceanside, to get my taxes done, knowing also that my oscilloscope was up there. 17:58:56 So what happens? 17:59:03 I *completely* forget about the oscilloscope!!!! >:( 17:59:22 Now I have to travel to Oceanside again, tomorrow, to grab the oscilloscope. 17:59:24 >:( 17:59:27 * kc5tja sighs 17:59:36 At least I can record the milage as business expenses. >:/ 18:34:20 :-& 18:35:01 kc5tja, I'm officially hired now. Like, officially officially. They made me sign stuff and everything. 18:35:32 And, how much does a decent but not overboard oscilloscope go for these days? 18:46:14 --- quit: qFox ("if at first you dont succeed, quit again") 18:49:28 madgarden: Cool. 18:54:57 I suppose I should write a 65816 emulator so that I can emulate the Kestrel, eh? :) 18:55:06 YES! 18:55:11 that would be cool! 18:55:53 It shouldn't be too hard. It wouldn't emulate sound though. 18:56:07 * kc5tja can't really emulate the PICs either, so the emulation will be only an approximation of the real hardware. 19:01:30 I thought there were PIC emulators out and about already 19:01:41 simulpic & gpsim etc 19:01:48 fridge: I have to integrate them into my "computer" though. 19:01:57 ahah! 19:02:05 The emulators only emulate just the PIC core; they don't emulate the interaction fo the PICs with the other components. 19:03:20 DANG, I just remembered too -- I can't use a ring for the peripheral interconnect subsystem; I need the VIA's serial port to connect the PS/2 keyboard. :/ 19:03:35 Unless I hang THAT off the peripheral interconnect as well.... hmmm.... 19:03:50 * kc5tja needs to watch the proliferation of PIC chips; they can get just as expensive as anything else in the system. 19:45:57 'night all 19:46:05 --- quit: blockhead ("Client Exiting") 19:52:25 clear 19:53:04 transluscent 19:55:21 * kc5tja should rename "CLS" to "OPAQUE", since, after all, "clearing" the screen really makes it totally black, and therefore, unable to pass light through. :D 19:56:20 But, perhaps you're making the foreground transparent, thus allowing all light to pass through. 19:59:47 kc5tja: nice :) 20:03:01 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 20:03:25 --- join: Nutssh (~Foo@gh-1177.gh.rice.edu) joined #forth 20:07:02 madgarden: That's if you're clearing the screen to all white. 20:07:06 ianp: :) 20:08:42 --- quit: Nutssh ("Client exiting") 20:09:54 hehheh 20:11:25 Well, that depends on the light source? Is is shining through from the back (characters are holes in the background) or from the front? 20:19:29 hiya 20:20:39 re chris-xp 20:20:48 :) 20:20:49 * kc5tja is attempting to write a 65816 CPU emulator in C. 20:21:02 Cool!!! 20:21:30 kc5tja, why C? 20:25:02 slava: because C is nice when you don't wanna worry about teh bl04t f4ct0r 20:29:28 Argh. Using variables for stuff in C is annoying after working with Forth. 20:30:18 lol 20:30:20 true, true 20:32:02 and nesting function call into arguments can be ugly. I just want it to floooow, left to right dammit! 20:33:52 Two reasons: C already has the libraries I'll be using to emulate the video display of the computer, and also, it's significantly faster than Forth. 20:34:22 (at least any Forth I have at my disposal) 20:34:22 at least on x86, which is what sam is running :) 20:34:29 :) 20:34:38 --- join: Sonarman_ (~matt@adsl-67-113-235-53.dsl.snfc21.pacbell.net) joined #forth 20:34:39 And C isn't all evil, you know? 20:34:46 Sonarman_: HI THERE 20:35:02 --- quit: Sonarman (Nick collision from services.) 20:35:11 H'WO DEWR 20:36:57 chris-xp: ASL!? 20:37:23 OMG Y U NO ASK ME 4 ASL?/ 20:38:54 Sonarman_: ASL!?!?/// 20:39:17 Sonarman_: TEH ASL!!!??! WHY U NOT ANSWER!!!1111 :( 20:42:48 ASL? Arithmetic Shift Left? 20:43:27 TGERE US NO SUCJ THING YOU DUB NASS 20:43:52 OLNY ARIHTMATIC SHITF WRITE 20:44:15 UNLSES U USE LITTLE ANDIAN BITS 20:44:20 Sonarman_ BLAHAHAAH!!!11 UR TEH 1337!!!!1 20:44:32 WHIHC IS ILKE HELALA RETARTID 20:44:53 what has happened to my precious #forth 20:45:13 CHK UR BUTT!!!1111/ 20:45:32 HAHA RITE ON D00D 20:45:52 0xd00d!!!!1 20:47:43 I have no idea. 20:49:34 hrm. 20:49:39 ASL r0, 4 20:49:47 JZ IsZero 20:49:49 :) 20:50:05 madgarden: 14/f/socal 20:50:20 madgarden: & horny 4 u 20:50:29 chris-xp, :O!!!! 20:51:02 SHTU UP< UR A LIER!!111 UR SO GAY!!!1111!!!!11111 20:51:14 Hmmm...making a cycle-accurate simulator will be rather on the interesting side. 20:51:55 kc5tja, do you need it? 20:52:04 madgarden: To get accurate video display, yes. 20:52:15 Remember the CPU is responsible for refreshing the display. 20:52:28 madgarden: no rly... 20:52:44 chris-xp: Are you drunk or something? 20:53:07 kc5tja: no, just EXTREMELY FUCKING DEPRESSED and trying to get over it. 20:53:54 Why are you depressed? 20:54:08 because I have to get the fuck out of this damn country 20:54:14 I initially read EXTREMELY FUCKING DRESSED. 20:54:14 and I can't for more than a year 20:55:06 madgarden: yeah ... lol 20:55:31 why do you have to get out of here 20:55:32 ? 20:56:36 because its a completely fucked up over-conservative country that has been merely lucky in the 1800s 20:57:39 is preceding a number by a '&' to make it be interpreted as a decimal number a (nonstandard) Forth convention, as preceding a hexadecimal number by a '$' is? 20:57:59 so where do you want to go? Germany> 20:58:00 ? 20:58:07 Sonarman_: Yes. 20:58:12 Sonarman_: I've never seen & used for decimal. Octal, perhaps, but never for decimal (that I've seen). 20:58:12 Sonarman_: Thats where I belong. 20:58:22 * kc5tja would love to visit Germany. 20:58:30 I have a few ham radio friends over there. :) 20:58:56 Sonarman_: base @ 10 base ! my_literal_here swap base ! 20:59:10 kc5tja: much better than here. 20:59:26 chris-xp: i know about that, it's just that i've seen &1234 in some forth code 20:59:34 kc5tja: although the tax laws are weirder :) 20:59:48 namely Bernd Paysan and Marcel Hendrix code 21:00:07 kc5tja: but, not fucked up (based on PERCENTAGE, not FLAT RATE FOR THE POOR FUCKS TO PAY THEIR ASSES OFF FOR THE RICH FUCKERS) 21:00:52 Sonarman_: Interesting. I've never seen that before. In fact, I never even knew it existed. 21:01:39 chris-xp: I hear you on that one. I have to get my taxes in pretty soon, and I just won't be able to afford car insurance this quarter. 21:02:21 btw, kc5tja, did you ever try to get bigFORTH running on an ST emulator? 21:08:13 --- quit: proteusguy (Read error: 104 (Connection reset by peer)) 21:08:32 bigForth doesn't run for the ST. 21:08:36 It's x86 only. 21:08:42 --- join: proteusguy (~proteusgu@workstations.pinnaclesports.com) joined #forth 21:11:42 --- quit: tathi ("Lost terminal") 21:12:15 --- join: tathi (~josh@pcp02123722pcs.milfrd01.pa.comcast.net) joined #forth 21:17:10 Sonarman_: OK, I stand corrected. I just did a Google search, and I found an ancient copy. :) 21:33:55 it seems to work under EmuTOS (albeit unstably) but not the tos.imgs on the Steem site 21:37:13 It works fine for mine. 21:37:20 Are you using the US or UK TOS images? 21:37:24 * kc5tja is using TOS 2.06 UK. 21:37:51 I also set Steem up to a 14MHz machine. 21:38:30 i tried both US and UK, 1.whatever and 2.06. i'm not using Steem, though 21:38:55 Hmm 21:38:56 i get TOS Error 35 when i try to run it 21:39:04 I don't know what that error is. 21:39:06 maybe i just made a bad disk image 21:39:09 I've never owned an Atari ST before. 21:39:20 but it works under EmuTOS, so i don't know 21:40:09 --- quit: tathi ("leaving") 21:40:12 RATS!! I can't figure out how to write this cycle-accurate CPU emulator! :( 21:40:52 you're saying that under Steem, running the supplied TOS 2.06 image, bigforth.app succesfully starts up? 21:41:00 Yes 21:41:34 ok 21:41:42 For my configuration at least. 21:41:52 * kc5tja isn't sure how my configuration could differ from yours though. 21:44:01 did you create a disk image, or does Steem support using a directory on the host? 21:44:55 I used a directory. I have my C: drive mapped as my xsteem root directory. 21:45:44 But, remember to `chmod -R 777 BIG4TH' (I installed my BigForth directory as BIG4TH). Otherwise, GEM won't be able to open the files you unzip there. 21:49:00 thanks a lot. STonX doesn't seem to want to cooperate with me, though 21:52:45 Hmm 21:55:04 I don't know. 21:55:32 I will say this much though: it's not the fastest program I've used. :) 21:55:56 I'm sure much of it has to do with GEM's sub-optimal text output routines though. 22:13:46 --- join: Serg (~z@212.34.52.142) joined #forth 22:19:32 anyone know, off hand, what i have to do to this red hat box so backspace works for screen and emacs... 22:20:23 the best thing to do w/ red hat is to chop it off with the head ;( 22:20:38 oi, not my choice 22:20:57 I'd let you know how i feel about configuring linux... but, i dont have time, similarly :> 22:21:22 I just bought a new tea kettle, water filter thing, and some fine japanese green teas 22:21:27 i did this then i found how many trash they run in default setup - even X font server, in console runlevel ;(( 22:21:34 i cant wait till they arrive 22:21:47 im a linux newbie really, i just like the shells :> 22:22:18 ianp: try 'stty sane' 22:22:31 probably RH is designed for "rat riders" only, down with old school users ;( 22:23:32 one of my girls once said: "Why comp need mouse, if u can operate it _normal way_ !" 22:23:42 i said WOW ! 22:24:13 Serg: are you Russian? 22:24:17 but her last xperience was 8-bit tape-loaders, no mice yet at that time 22:24:22 Sonarman_ : yes 22:24:31 Sonarman_ : you ? 22:25:10 I don't have any problems using RH machines 22:25:44 i had: RPM is broken in _all_ distros i own 22:27:01 then i attempt to clear unneded packs after install, it says "not installed", even if it listed it as installed few commands ago ;(( 22:27:25 --- quit: Sonarman_ ("leaving") 22:27:31 fridge: did you encounter this bug ? 22:27:36 no 22:27:50 I haven't seen any packaging issues since redhat 6.x 22:28:23 I quite like the yum tool 22:28:41 works as well as apt 22:28:44 rpm is scary :P 22:28:56 i find apt ok 22:29:00 havent used much else 22:29:18 we had apt repositories for all internal machines at work 22:29:27 then some higher up decided to go all redhat 22:29:41 now I've reconfigured them to use yum repositories 22:29:48 it works just as good as previously 22:29:52 why no apt on redhat? 22:30:12 apt for what? 22:30:31 maybe i can make use of that 22:30:35 oh sorry, we were using apt on debian 22:30:47 we had a mishmash of different distributions 22:30:49 yeah, but why not on redhat, too? and why apt internally? 22:30:56 then someone wanted homogenous OS installation 22:31:02 ah ok 22:31:18 I liked the mishmash =) 22:32:03 but it has its advantages I guess 22:32:24 easier to push out updates 22:32:41 Damn, I think I actually found a class of programs that I can't write. 22:33:14 the cpu simulator? 22:33:18 Yeah. 22:33:24 I just, for the life of me, can't figure out how to do it. 22:34:08 looked at other peoples work? 22:34:28 fridge: It's like reading heiroglyphics, upside down, in a bath of oil and mud. 22:35:28 kc5tja: it's easy ! 22:35:48 u write it in Forth ? 22:36:00 Serg: No, in C. But the problem I'm having is not dependent on the language. 22:36:13 so what the problem ? 22:36:38 Even getting something as simple as the reset sequence is too difficult. 22:36:54 I need state machines, and a ***LOT*** of them. 22:37:04 hmmm... what's in that sequence ? 22:37:12 I need one for every unique addressing mode the CPU supports. 22:37:48 Serg: Please see the WD65C816-14 data sheets for details. There are five pages dedicated to precise cycle-by-cycle behavior of the CPU during various executions. 22:37:57 (in short, it's way too detailed to answer here.) 22:38:00 i think, u need huge table of pointers to procedures, index is current opcode 22:38:12 Serg: If it were just by opcode, it'd be easy. 22:38:14 But it's not. 22:38:21 I have to model _IRQ and _NMI lines as well. 22:38:22 And _RES. 22:38:53 hmmm.... 22:38:57 Then I have to model the wait-state circuitry, which means I also need to monitor the _RDY line too. 22:39:35 so what is simulator in that terms ? PC-controlled plug instead of real CPU ? 22:39:51 * Serg thinks of Speccy emulator or VMWARE 22:40:17 I'm sorry, but I don't understand your last question. 22:40:32 what you mean by "simulator" ? 22:40:41 I mean a simulator. 22:40:50 The software is designed to simulate the 65816 microprocessor. 22:41:08 the proggie to run 65816's code on PC ? 22:41:11 (well, ultimately, it will simulate the whole ForthBox Kestrel) 22:41:43 Serg: Not just the 65816, but the whole Kestrel computer. 23:18:51 --- quit: Serg () 23:32:22 --- join: ayrnieu (julian@65.169.246.30) joined #forth 23:34:11 OK, I think I know how to go about this whole thing. 23:34:49 The basic outline of how things are done are as follows: 23:35:27 The main loop of the simulator calls CsingleStep(), which causes the CPU to execute one instruction. 23:35:41 In the process, the CPU code updates a couple of cycle counters, one of which is returned to the caller. 23:36:04 The caller can then use the returned cycle count to determine how much "external work" was done while the CPU executed its instruction. 23:36:16 This includes things like updating the VIA chip state, the video state, etc. 23:36:48 Since everything with the CPU happens synchronous with instruction execution, it makes sense that it happens this way. 23:36:55 And it should greatly simplify the software as well. 23:37:22 Now, the other big thing: peripherals. When accessing I/O or ROM, wait states are generated. 23:38:30 Therefore, the call-back functions (which the CPU emulator calls to actually perform the memory I/O) themselves return the number of wait-states, which the CPU uses to adjust the minimum instruction timing accordingly. 23:40:00 And, with that, I must now retire. I have school in the morning. 23:40:10 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:59:59 --- log: ended forth/04.03.16