00:00:00 --- log: started forth/21.05.16 00:14:36 --- join: Guest82918 joined #forth 00:14:48 --- nick: Guest82918 -> neuro_sys 00:14:59 --- quit: neuro_sys (Changing host) 00:14:59 --- join: neuro_sys joined #forth 00:18:26 --- join: pbaille joined #forth 00:35:31 --- quit: proteus-guy (Ping timeout: 268 seconds) 00:48:08 --- join: proteus-guy joined #forth 01:17:01 --- quit: neuro_sys (Ping timeout: 245 seconds) 01:17:58 --- join: neuro_sys joined #forth 01:18:21 --- nick: neuro_sys -> Guest67195 01:37:50 --- quit: Guest67195 (Ping timeout: 245 seconds) 01:47:18 Ok, wrote a primitive I'll call (block). It's intended to be the first tihng block calls, and it very rapidly determines if the requested block is already resident. If it is, it returns the buffer address in TOS. If the block isn't resident, it pushes a 0 to the stack. 01:47:26 So it's designed to be used like so: 01:47:46 : block (block) 0>; ... Forth to read block in ... ; 01:48:09 If I'm going to have to read the block in, I'm not nearly so concerned about speed. I don't want to write the whole thing in assembly. 01:50:08 But this is set up so that I will allocate a RAM region for the buffers. The first section of that will be a set of four-byte fields that call out which block is resident in each of the buffers, and whether it's dirty or not. Then the buffers themselves will follow, 4kB each. I can have any power of two for my buffer count, which I'll select by hard-coded constants in the primitive. 01:50:54 Could be four on a small system, or say 256 on a large system. 02:11:21 --- join: Guest67195 joined #forth 02:37:43 --- join: tech_exorcist joined #forth 02:38:22 --- quit: pbaille (Remote host closed the connection) 02:38:30 --- quit: tech_exorcist (Remote host closed the connection) 02:41:55 --- join: tech_exorcist joined #forth 02:55:17 --- join: f-a joined #forth 03:08:44 --- quit: Guest67195 (Remote host closed the connection) 04:41:44 --- quit: sts-q (Remote host closed the connection) 04:43:46 --- join: sts-q joined #forth 04:58:20 --- quit: dave0 (Quit: dave's not here) 05:09:19 --- quit: proteus-guy (Ping timeout: 260 seconds) 05:13:14 --- join: pbaille joined #forth 05:21:57 --- join: proteus-guy joined #forth 05:22:06 --- quit: pbaille (Remote host closed the connection) 05:22:43 --- join: pbaille joined #forth 05:33:50 --- quit: tech_exorcist (Quit: tech_exorcist) 05:57:01 --- join: joe9 joined #forth 06:02:53 --- quit: actuallybatman (Ping timeout: 252 seconds) 06:21:45 --- join: kmstout joined #forth 06:22:12 --- part: kmstout left #forth 06:47:42 --- quit: pbaille (Remote host closed the connection) 06:48:27 --- join: pbaille joined #forth 06:52:45 --- quit: pbaille (Ping timeout: 246 seconds) 06:57:18 --- quit: f-a (Ping timeout: 260 seconds) 06:59:00 --- join: f-a joined #forth 07:19:32 --- join: pbaille joined #forth 07:24:56 --- quit: pbaille (Ping timeout: 245 seconds) 08:19:52 --- join: pbaille joined #forth 08:40:28 --- quit: Zarutian_HTC (Ping timeout: 240 seconds) 08:50:12 --- join: Zarutian_HTC joined #forth 08:59:54 --- quit: spal (Quit: ZNC 1.7.2+deb3 - https://znc.in) 09:00:05 --- join: spal joined #forth 09:19:10 --- join: Keshl_ joined #forth 09:19:19 --- quit: Keshl (Read error: Connection reset by peer) 09:20:00 --- join: X-Scale` joined #forth 09:21:50 --- quit: jess () 09:21:58 --- quit: X-Scale (Ping timeout: 265 seconds) 09:21:59 --- nick: X-Scale` -> X-Scale 09:22:12 --- join: jess joined #forth 09:27:17 --- join: tech_exorcist joined #forth 09:54:30 --- join: actuallybatman joined #forth 10:54:22 --- quit: f-a (Read error: Connection reset by peer) 10:59:35 --- join: f-a joined #forth 11:33:30 --- quit: f-a (Ping timeout: 268 seconds) 11:34:46 --- join: f-a joined #forth 11:40:12 --- quit: f-a (Read error: Connection reset by peer) 11:42:39 --- join: f-a joined #forth 12:00:35 --- join: Zarutian_HTC1 joined #forth 12:00:36 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 13:13:24 --- quit: gravicappa (Ping timeout: 268 seconds) 13:22:48 --- quit: Zarutian_HTC1 (Ping timeout: 240 seconds) 13:24:20 --- join: Zarutian_HTC joined #forth 13:56:23 --- quit: pbaille (Remote host closed the connection) 14:06:52 --- join: pbaille joined #forth 14:12:41 --- quit: pbaille (Remote host closed the connection) 14:21:58 --- join: pbaille joined #forth 14:26:57 --- quit: pbaille (Ping timeout: 265 seconds) 14:53:05 --- join: pbaille joined #forth 14:57:26 --- quit: pbaille (Ping timeout: 245 seconds) 15:02:10 --- join: pbaille joined #forth 15:15:24 --- quit: tech_exorcist (Quit: tech_exorcist) 15:43:15 --- quit: f-a (Ping timeout: 268 seconds) 15:47:20 --- join: dave0 joined #forth 15:47:49 maw 15:55:28 --- quit: pbaille (Ping timeout: 240 seconds) 16:46:15 --- quit: dave0 (Quit: dave's not here) 16:51:57 --- join: pbaille joined #forth 16:57:33 --- quit: pbaille (Ping timeout: 240 seconds) 17:09:55 --- join: pbaille joined #forth 17:14:40 --- quit: pbaille (Ping timeout: 265 seconds) 17:18:10 --- quit: Vedran (Quit: Ping timeout (120 seconds)) 17:18:35 --- join: Vedran joined #forth 17:33:58 --- join: pbaille joined #forth 17:38:14 --- quit: pbaille (Ping timeout: 252 seconds) 18:37:09 --- join: boru` joined #forth 18:37:11 --- quit: boru (Disconnected by services) 18:37:14 --- nick: boru` -> boru 18:42:26 --- quit: actuallybatman (Ping timeout: 252 seconds) 18:47:47 --- nick: Keshl_ -> Keshl 18:53:21 dang, missed the 22V10 convo yesterday 18:53:40 im using a 16V8 for my current project which is the same just less pins 18:53:52 programming it with an ancient things called wincupl 18:55:50 no sorry it's over now, you can't talk about it anymore 18:56:51 :-) 18:56:55 what's the notation again? it's like NvM is N gates and M io ports or something? 18:56:56 hehe 18:57:01 i'm sure we oould talk some more. 18:57:07 22 pins with 10 input only i believe 18:57:20 I want to say, though, that I'm really struck by something. We all knew this - it was just a nice little showcase. 18:57:25 I'm working on BLOCK. 18:57:34 ah yeah that sounds right 18:57:38 I mentioned that yesterday I wrote the "fast path" for it, (BLOCK). 18:57:57 That's primitive and handles the case where the desired block is already resident. 18:58:05 I also thought about making a little CPU out of them but you would need a whole mess 18:58:06 So it's about 40 lines long all told. 18:58:08 of them 18:58:41 Then right below it I have 12 little tiny short Forth definitions, maybe 35-40 charcters long each, that does the WHOLE REST OF THE JOB. 18:59:04 Well, it doesn't do the syscalls, but it does all the organizing and getting ready, so that all that's left is a clean block-read and block-write. 18:59:20 And it looks like it's about 10% as big as all that assembly sitting there bove it. 18:59:31 Just so cool how "compressed" Forth can make our code. 18:59:53 MrMobius - I worked on that for a while, on paper. 19:00:00 A 22V10 Forth processor. 19:00:15 I got the equations all designed for 32 5-bit opcodes running a hardware stack. 19:00:22 And yes, you needed a mess of them. 19:01:57 do you remember about how many? 19:02:17 Yeah, it looked like six or seven dozen or something like that. 19:02:17 kind of a moot point these days since EEPROMs are dirt cheap 19:02:28 oh wow 19:02:33 lol 19:02:40 Well, it was "bit slice," so to speak. 19:02:51 You needed a bunch of each "design" to implement the word width. 19:03:10 I may have had two or three bits in each one - can't remember. 19:03:21 But I couldn't figure out how to make it work "going wide." 19:03:36 So I tried the other "orientation" and was able to find something that worked. 19:04:13 I bought the 22V10s, but never got it built. 19:04:23 They're in tubes in the garage now, over in a corner somewhere. 19:04:57 Story of my life - working out all the details on something but never building it. 19:05:01 I hope that changes when I retire. 19:06:59 The hardware stack was made that way too - each chip carried several levels of one data bit, and 16 of them sat side by side to make the word. 19:08:27 Fewer levels in the top elements per chip, because they had to be able to "do more" than the deep layers did. 19:10:37 holy moly 19:10:48 that is a crazy way to make that 19:11:14 I couldn't get the equations to fit any other way, is my recollection. 19:11:15 have you thought about using eeproms and ttl logic? 19:11:34 No, the 22V10 was about the most primitive level I ever got to. 19:11:48 But yeah, an EEPROM and a state machine - you could do it right up, couldn't you? 19:12:52 Another thing I once looked into, in the name of less logic, was a bit serial Forth machine. 19:13:14 Like when you did + you'd do it serially, one bit at a time, propagating the carry along with you. 19:13:35 So very slow, but very "narrow," so you could put a bunch of 'em in parallel. 19:13:41 I never got that very far along. 19:14:10 But you begin to realize that just handing the carry in an addition in a higher performance way is fairly expensive in terms of logic. 19:14:44 Add is eacy and cheap if you are willing to do it slow (ripple carry). But carry look-ahead gets to be a pretty big pile of logic for a wide word. 19:15:16 Software guys don't realize how much power they're playing with with that innocuous little +. 19:15:26 --- join: actuallybatman joined #forth 19:16:21 The bit serial approach removed that hurdle completely, because you were going to do it slow ANYWAY. 19:16:30 --- quit: actuallybatman (Client Quit) 19:16:59 And you were getting a big payment for going slow - just one bit of ALU hardware. 19:16:59 --- join: actuallybatman joined #forth 19:17:13 One bit of RAM, etc. 19:19:03 Anyway, other than the 22V10 effort, most of my tinkering with Forth processors has been FPGA-based; and I'd usually assume a device with 6-input LUTs (like the Spartan 6 line from Xilinx). 19:19:36 My big goal was always to have only one layer of LUTs between register outputs and register inputs, so I could get the highest possible clock speed. 19:19:37 im working on a 7400 design and using an 8 pin eeprom for the ALU 19:19:57 I think this kind of thing is a worthy way to spend some of one's time. 19:20:05 It's healthy for the soul. :-) 19:20:13 operands go in one bit at a time over spi. the chip goes up to 133mhz so the hope was to run it at least 8x faster than the rest of the system 19:20:38 Neat. 19:20:45 ya its a pretty fun hobby 19:21:12 Seriously, soul health aside, I think that kind of project does rally give you a good appreciation for the low-level nature of the stuff computers actually DO. 19:21:37 Understanding something like that just takes ALL of the "mystery" out of computers. 19:22:48 --- quit: sts-q (Ping timeout: 240 seconds) 19:27:59 on a certain level it does 19:28:24 i dont think i could build enough of those ttl computers though to understand the more sophisticated stuff :P 19:30:48 --- quit: actuallybatman (Ping timeout: 268 seconds) 19:32:06 Oh, sure - the DETAILS get very sophisticated, but yet it's still "just more of the same." People who know nothing about computers sometimes think they're "smart," but when you understand how they work you see how dumb they are. 19:32:19 --- join: sts-q joined #forth 19:32:31 They can hardly do anything - they can just do it a whole slew of times faster than you can blink, and one can build a lot from that. 19:41:38 --- join: dave0 joined #forth 19:42:09 --- quit: dave0 (Client Quit) 20:14:57 --- quit: Zarutian_HTC (Ping timeout: 265 seconds) 20:17:34 --- join: actuallybatman joined #forth 20:36:10 --- quit: actuallybatman (Ping timeout: 268 seconds) 20:47:54 --- join: actuallybatman joined #forth 20:50:34 --- quit: proteus-guy (Ping timeout: 240 seconds) 20:53:26 --- join: pbaille joined #forth 20:59:54 --- quit: pbaille (Ping timeout: 252 seconds) 21:03:25 --- join: proteus-guy joined #forth 21:12:40 --- join: gravicappa joined #forth 21:14:24 --- quit: proteus-guy (Ping timeout: 268 seconds) 21:19:31 --- quit: actuallybatman (Ping timeout: 245 seconds) 21:26:37 --- join: actuallybatman joined #forth 21:27:00 --- join: proteus-guy joined #forth 21:47:12 --- quit: actuallybatman (Ping timeout: 252 seconds) 22:25:31 --- quit: djinni (Quit: Leaving) 22:46:18 --- join: djinni joined #forth 22:49:47 --- join: pbaille joined #forth 23:34:08 --- join: mtsd joined #forth 23:44:57 --- join: Zarutian_HTC joined #forth 23:59:59 --- log: ended forth/21.05.16