00:00:00 --- log: started forth/04.05.15 00:05:13 --- quit: Sonarman_ ("leaving") 01:41:13 --- join: Serg (~knoppix@193.201.231.126) joined #forth 02:19:29 --- join: fridge (~fridge@203.113.228.225) joined #forth 02:25:02 --- quit: thelsdj (Read error: 110 (Connection timed out)) 02:42:03 --- quit: Serg (Read error: 110 (Connection timed out)) 03:27:53 --- join: qFox (C00K13S@217.121.68.87) joined #forth 03:29:38 --- join: crc (~Charles_C@0-1pool88-23.nas48.philadelphia1.pa.us.da.qwest.net) joined #forth 04:43:16 --- nick: lalalim_ -> lalalim 05:48:01 --- quit: warpzero (Read error: 60 (Operation timed out)) 06:02:52 --- join: warpzero (~warpzero@dsl.142.mt.onewest.net) joined #forth 06:05:16 --- quit: Herkamire (Read error: 110 (Connection timed out)) 06:50:53 --- quit: gl (Read error: 110 (Connection timed out)) 07:31:55 --- quit: crc ("ChatZilla 0.9.61 [Mozilla rv:1.7b/20040316]") 07:38:13 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 07:40:58 Hi snowrichard 08:03:24 hello 08:03:28 hi 08:03:46 I have been playing around with a wiki setup called TWiki 08:04:08 What will you use it for? 08:04:17 Your personal site? 08:04:48 it is on my personal web server system. I have already started to use it to make notes on some programs I am designing 08:06:12 Nice, I've never had a wiki of my own 08:06:22 But I really like the wikipedia 08:06:38 the extreme programming wiki is interesting 08:08:16 this one supports file attachments, so you can talk about code and have it attached to the page itself. 08:33:09 --- join: kc5tja (~kc5tja@66-74-218-202.san.rr.com) joined #forth 08:33:17 --- mode: ChanServ set +o kc5tja 08:43:45 --- join: gl (~foo@opcode.org) joined #forth 08:46:30 --- join: Serg (~knoppix@193.201.231.126) joined #forth 08:59:31 i440r shows example of really cute HTML ;) 09:00:11 * kc5tja doesn't strive for cute HTML; I strive for useful and legible HTML. 09:00:40 hmm.. 09:01:02 my HTMLis a mess, but i compile it from XML by knee-made'engine' 09:01:28 I was thinking of making an XML pre-processor for my site, but I ended up doing everything by hand. 09:01:39 I might still do a preprocessor later on if the site becomes a burden to maintain. 09:01:51 maybe, i gotta hack up my XSL to produce clear HTML 09:02:08 use PHP off-line, be4 upload - if possible 09:02:26 I have never used XSL before. It seems so overly complicated. 09:02:52 i may give u a clue. what's ze trubble ? 09:03:23 good book helps much, i got one and did the thing quite easy ;) 09:03:34 Nothing per se. Just looking at the whole concept of XSLT just scares me. 09:03:54 Using XML as a programming langauge/transformation language seems like such a violent abuse of what XML is intended for. 09:04:19 not me - i take XSL as CSS on steroids 09:05:13

text

-> text 09:05:30 Exactly. should never, ever, ever have to exist. 09:05:42 All my "fancy crap" exists squarely in its .css file, NOT in the .html file. 09:06:03 btw, in my XSL

goes thru, as well as 09:06:22 I was just playing off of your example. My point still stands. 09:06:22 :) 09:06:43 * kc5tja is very happy with how his site looks, is maintained, and how quickly I can get useful content on the site. 09:07:11 Everything is static, everything verifies against XHTML Strict 1.0, and the latest CSS 2.0 verifiers. (Exception: the blog -- not much I can do about that, since it's not my blog software) 09:08:08 header and tailer are in docmain.xsl: allpage -> allpage 09:08:32 i.e. ,tags transform to self 09:08:51 Can XSL build tables based on the existance of files in the source directory? 09:09:12 dunno, need buxx 09:09:13 (e.g., can it use the host filesystem as a database) 09:09:23 That's the #1 thing I'd need for a preprocessor. 09:09:43 PHP+MYSQL ;) 09:09:50 Both server-side. 09:09:57 Both overkill. 09:10:14 And neither can be used with 'make' to build a website. 09:10:19 or Perl script at local side 09:10:49 Well, like I said above, I DID consider making my own preprocessor, but I just never got around to it. So far, I haven't had a *compelling* need for one. 09:10:49 not sure for XSL 09:11:01 My HTML is so simple, that I can do everything by hand at the moment. 09:11:23 to me, any 'site' over 2 pages needs engine 09:11:40 That's rediculous. 09:11:49 1st was COPY command joining content w/ head and tail 09:12:01 2nd is XML+XSL now 09:13:30 3d may be MySQL+PHP at local side, generating static 09:13:54 What on Earth would you ever need MySQL for? What kind of website is it? 09:14:00 PHP I can at least see as a pre-processor. 09:14:59 * Serg eats, pause 09:16:25 :) 09:17:42 'pelmeni', Siberian food ;) 09:18:24 I haven't had much Russian food -- actually, the only Russian food I have ever had is beef stroganoff (sorry, I really can't recall how to spell it). 09:18:31 And that is one of my favorite dishes. 09:20:00 * Serg feels like stray dog when eating natural-looking meat 09:20:25 not to say vegetarian, but prefer sausage etc.. 09:20:59 Hehe 09:25:19 'pelmeni' is 16 gauge ball of spied meat in makaroni-stuff envelope 09:25:30 spiCed meat ;) 09:25:51 hmmm....nice. 09:26:50 my english is tech-biased ;) i dunno how to say common things like food etc 09:28:27 downloading food? 09:29:19 then i read 'fork' i think of syscall first, some V-joint second and very third - of eating tool ;)) 09:30:49 Well just remember: a fork creates spawns a new thread (of pasta), where the new thread is a complete copy of the original pasta, but only smaller in size. After it's finished running, its memory space is consumed. :-) 09:31:14 ;-) 09:31:47 RU proverb: 'Don' t hang pasta on my ears !' - don't lie to me ;-) 09:32:17 Hahah 09:32:35 I suppose I miss the cultural reference, as to how pasta relates to lying. But I'll have to remember that for future recall. 09:33:00 not the pasta but the worms-like stuff on ears ;)) 09:44:13 i wonder why folks write 'style.css;, it's like 'text.txt' ;) 09:44:37 Heheh :D 09:44:44 I use "fs.css" for my file. 09:44:53 fs == Falvo Software 09:44:59 nice 09:45:08 It should *technically* read fts.css, but, fs.css is for historical reasons. 09:45:28 i put CSS in every file, so no name trubble 09:45:43 it's about 5 lines only 09:46:45 http://cryptomancer.narod.ru 09:47:11 it's all in RU, but look at design, HTML and proggies 09:48:53 oops, it turned out screwy in Konqueror 09:49:01 but normal in Mozilla 09:54:39 in Web-@#$% section, look at 'xmlmotor.zip' - today's site engine 09:55:15 I cant. 09:55:20 I can't get past the opening screen. 09:55:22 why ? 09:55:47 click on green enigma ;)) 09:56:06 I did. 09:56:10 I just brings the same page up for me. 09:56:24 oops, i gonna test 09:57:13 hell no, it worxxx ! 09:57:36 enigma links to /me 09:58:15 I click on it, and the browser either times out or just displays the same page for me. 09:58:18 I'm using Mozilla. 09:58:28 me too 09:58:38 It might be timing out. 09:58:50 sure, slow hosting 09:59:38 just type in /webmake after site name 10:01:34 so what - timeout ? 10:03:23 Does 8 Kbant == 8 Kbyte in English? (Just curious) 10:03:33 I came up, but it was very slow for me. 10:04:33 yes, 8k 10:05:53 btw, 'sitemotor.zip' is COPY thing 10:06:06 Wow, getting only 150 bytes to 300 bytes per second throughput. 10:06:21 kc5tja> did you put up that simu? 10:06:38 qFox: Yes, but the code isn't well documented, nor is it in a finished state at all. It's a work-in-progress. 10:06:45 kay 10:06:46 --- part: qFox left #forth 10:06:46 --- join: qFox (C00K13S@217.121.68.87) joined #forth 10:06:59 Also, I've found and fixed a number of bugs in it, as I'm going through and retroactively adding unit tests to the CPU execution engine. 10:07:47 I'm sure there are more to come. 10:08:00 I really need to get darcs running on my web server account... :/ 10:08:16 some about bugs: 10:08:43 i dated other ICQ some woman, kids psychologist 10:08:53 i ask her: What bugs are most common in kids heads ? 10:09:28 she replied: Entire world is made of bugs ! And some day it creeps apart ;) 10:10:53 k 10:11:23 Heh 10:11:29 Sorry, I'm hacking on code at the moment. 10:11:36 Trying to get these unit tests for the CPU emulator finished. 10:11:41 ok, ok 10:12:11 i gonna reboot to WinXP to use my winmodem and damnload some news 10:12:22 :) 10:12:25 You on Linux now? 10:13:13 yes ! XP fails w/ GPRS (inet over cellphone), Linux fails w/ winmodem ;)) 10:13:34 winmodem was kind of an indication... 10:13:35 ;) 10:14:09 i bought it while seeking work , ultra cheap 10:14:29 it would be hard for me to switch back to dialup now 10:14:43 500 RUB, 1$=28 RUB, 500R <20$ 10:14:44 even though i'm sure i'll get used to it eventually 10:15:32 i use it in 'periscope mode': rooming house, 7 men on one phone 10:16:02 cellphone is personal, despite xpencive bytes 10:16:07 * kc5tja nods 10:16:19 Siemens M50 10:16:35 can I play with your emulator code? I don't think I can afford to buy one of you kits :) 10:17:09 snowrichard: Sure. I'll be making an update to the code later today, probably in an hour or so. 10:17:17 i'm disappointed w/ it - no folders in phonebook, only 1 number per entry 10:17:22 It'll fix a large number of control flow bugs, and it'll have unit-tests associated with it. 10:17:46 I do have to warn though: it doesn't LOOK all that interesting yet -- there is no SDL binding yet, and therefore, no way to display anything to the screen. 10:18:20 ok, i wish u luck and reboot 10:18:22 url? 10:18:28 --- quit: Serg ("Leaving") 10:18:34 http://www.falvotech.com/kestrel.html 10:19:54 bookmarked, I'll read more later. 10:23:54 --- quit: snowrichard ("Leaving") 10:34:37 Memory accessors are now unit tested. 11:02:37 --- join: blockhead (default@dialin-160-tnt.nyc.bestweb.net) joined #forth 11:59:19 --- quit: gl (Read error: 60 (Operation timed out)) 12:00:10 --- join: Sonarman (~matt@adsl-67-113-234-133.dsl.snfc21.pacbell.net) joined #forth 12:15:36 --- join: gl (~foo@opcode.org) joined #forth 13:18:58 --- quit: Robert ("Stupid conspiracy, stop messing with MY COMPUTERS") 13:26:54 kc5tja: is there some feature of vim that you use to get your comments to line up? 13:28:44 If there is, I haven't found any. 13:31:54 --- join: Robert (~snofs@c-bf5a71d5.17-1-64736c10.cust.bredbandsbolaget.se) joined #forth 13:54:29 woops. gotta go 13:54:34 --- quit: blockhead ("laugha while you can, monkey boy") 13:55:04 I do still intend, at some point in the future, to write my own text editor. 13:55:08 File-based at that. 13:55:31 VIBE has given me great insights and a glimpse of the power of integrating a real, honest-to-goodness programming language with an editing environment. 13:55:49 I tried to learn Emacs, but that is just too big for me to wrap my head around. 14:21:31 --- join: lalalim_ (~lalalim@80.138.178.217) joined #forth 14:35:00 --- join: proteusguy (~proteusgu@69.79.24.31) joined #forth 14:35:01 are you not allowed to use [ ] in if else then branches?? 14:35:51 dup [ 15 cells ] = if drop 0 else [ 1 cells ] + then 14:35:58 Error: then conditionals not paired 14:36:14 That's valid Forth for me. 14:36:19 What Forth environment are you running? 14:36:35 win32forth 14:36:55 cant be anywhere else in the code, its the only time i'm using if else then, for the moment 14:37:42 Oooh, I see what's going on. 14:37:44 You need this: 14:37:59 dup [ 15 cells ] literal = if drop 0 else [ 1 cells ] literal + then 14:38:12 oh 14:38:20 The literal word takes the value computed at compile-time and compiles it as an inline literal. 14:38:30 yeah, tnx :) 14:38:59 n/p 14:41:20 --- quit: lalalim (Read error: 110 (Connection timed out)) 15:11:11 Damn, I can't get darcs running on the remote server. 15:11:20 The remote server doesn't have glibc 2.3. :/ 15:11:30 I wonder if I can upload my own version of glibc... 15:14:43 Nope. It just causes it to segfault. :( 15:28:39 --- join: snowrichard (~richard@adsl-068-209-159-248.sip.shv.bellsouth.net) joined #forth 15:32:17 --- join: blockhead (default@dialin-729-tnt.nyc.bestweb.net) joined #forth 15:43:02 --- quit: snowrichard ("Leaving") 17:14:57 --- join: default_ (default@dialin-709-tnt.nyc.bestweb.net) joined #forth 17:14:57 --- quit: blockhead (Read error: 54 (Connection reset by peer)) 17:15:27 --- nick: default_ -> blockhead_ 17:16:02 once again, I am reminded thtt windows does not actually multitask 17:20:46 --- nick: blockhead_ -> blockhead 18:01:32 --- quit: proteusguy ("Leaving") 18:07:01 kc5tja> kestrel, 32bit or 33 bit registers? and dito stack? 18:07:22 * qFox hopes 32 18:33:18 Dito stack? :) 18:33:31 p24 stack is 33 bit as well, it saves the carry 18:33:38 afaik.. 18:33:42 No, the P24 is a 25-bit machine. 18:33:46 ehm 18:33:48 24 data bits plus one carry-over bit. 18:33:49 thats what i said 18:33:50 ;) 18:33:57 18:27 < qFox> p24 stack is 33 bit as well, it saves the carry 18:34:00 shh 18:34:03 Hehe 18:34:15 I was planning on making it with 33-bit wide stacks. 18:34:15 [03:33:30] p24 stack is 25 bit as well, it saves the carry 18:34:22 Why do you prefer 32-bit stacks instead of 33? 18:34:30 because it makes emulation a shitload easier ;) 18:34:44 But do you see any practical benefit for doing so other than that? 18:35:03 i personally havent seen any use for the carry yet, but i know you do 18:35:24 Well, my basis for the 33rd bit comes from the relative successes of the P21. 18:35:30 It's not an absolute. 18:35:39 The emulator I'm writing, for example, is only 32-bits wide. 18:35:45 its just tricky with emulation, thats all 18:35:52 * kc5tja nods 18:36:00 have to mask every thing 18:36:25 making this one in forth btw ;) 18:36:30 not in mirc again 18:36:43 You're making your own FTS1001 emulator, or another P24 emulator? 18:36:53 no, the fts1001 18:36:57 Ahh 18:37:42 i kinda want to prove boombox i dont have to do everything in mirc ;) 18:38:20 he was enthousiastic when i told him i built the p24 emu, but suddenly not so when i told him i did it in mirc :) 18:39:02 Haha 18:40:47 It might even run faster, too. :-) 18:40:52 it better 18:40:59 else i'll stay with mirc :p 18:41:16 qFox: you wrote an emulator in a irc program? 18:41:20 yes 18:41:30 cool 18:41:43 75hz! with debug! 140hz without!! 18:41:44 in the scripting language for mirc? 18:41:48 yes 18:41:57 impressive 18:42:38 its actually quite easy. hardest part was emulating memmory space (mirc cant access the memmory directly, the emu is basicly reading/writing in a big variable :p) 18:42:54 so you madea a big array of bytes, right? 18:43:00 yep 18:43:06 well, p24 is 24bit architecture 18:43:12 whatever works :) 18:43:27 and the variable was byte oriented 18:43:36 so an array of 24-bit ints (probably not available you proabbly had to use 32 bit ints) 18:43:45 nope 18:43:51 i packed every 24bit in 3 bytes 18:43:57 :D 18:44:02 as far as it knew, it was 24bit 18:44:07 slower that way? 18:44:13 well yes 18:44:41 alot of conversions were done thruout the script (decimal > bin > hex > decimal > bin > decimal) because mirc only works with decimal in its functions 18:45:10 ohwell, it was a nice challange, and i'm happy about the result 18:45:40 best part, for me, that the cpu was really running solo. there was no way for me to cheat with a script 18:45:50 except perhaps adding a instruction that would execute a script 18:45:53 an 18:46:58 can i reserve a whole segment in forth? as memmory space for the emu 18:47:07 i'm not quite sure how... 18:47:52 CREATE myBuffer ALLOT 18:48:07 hm yeah, i guess so 18:48:16 just use abs>rel rel>abs then 18:50:19 btw, is it even possible to create a regular OS on a regular FORTH? 18:50:24 wont it have a huge memmory leak? 18:50:50 * blockhead has also wondered this 18:51:06 It is very possible. 18:51:23 At the machine language level, there is little fundamental difference between the code that C produces and the code the Forth produces. 18:51:52 Specific details differ, but both produce static machine code (or, at least, the Forth implementation is capable of producing such, as my FTS/Forth target compiler demonstrates -- which I will upload on my site soon enough.) 18:52:31 I was, in fact, planning on exploiting this very basic principle in writing the next version of my Dolphin kernel. 18:54:10 so it comes down to very complicated memmory management on the machine forth level? 18:55:25 Depends on the nature of the OS. 18:55:33 A DOS-like OS would have trivial memory management. 18:55:39 Even a multitasking system like AmigaOS would be very easy. 18:55:48 mmmmmmmm, amigados :) 18:55:52 Certainly more sophisticated than what Forth ships stock with, but not insurmountable. 18:56:00 * qFox hasnt even tried to ponder about multitasking 18:56:10 blockhead: I'm thinking of resurrecting Dolphin 0.5 from the ashes to produce an Amiga-like OS for the PC again. 18:56:22 that would be cool 18:56:36 i will defo try to get some kind of gui running, eventually 18:56:58 * qFox hears laughter 18:56:59 :p 18:57:32 kc5tja> how do i create 33 bit registers in a 32bit forth system anyways? 18:57:48 i can create 5 byte variables 18:57:58 but how would i put them on the stack for manipulation? :\ 18:58:43 the alternative is, i think, i very complicated procedure to get the carry 19:03:03 for the stack, you could have a stack of 32-bit numbers and a separate carry stack where each bit in the carry stack corresponds to one 32-bit cell of the other part of the stack 19:03:51 yep, that would be it ;) 19:04:46 beats the only alternative i can think of :) 19:05:05 hm, this was my alternative already 19:05:07 hehe 19:10:42 Oh my *GOD* our landlord is going to be *SO* pissed off. 19:11:25 qFox: It'd be faster if you just used two cells (8 bytes) instead of 5 bytes for a 33-bit value. The CPU works much faster with word-sized entities than with byte-sized entities. 19:11:30 (at least in general) 19:12:09 Or, yeah, two separate arrays for use as a single stack construct would also work. 19:12:35 well, i'll either do it for the regs only, or otherwise not at all 19:12:59 for my own use, i wont use it for now anyways, and if it would become a demand, i can always add it later 19:13:25 Well, it defeats the purpose for the regs. 19:13:35 hows that? 19:13:37 The idea is to not lose precision when doing multi-precision arithmetic. 19:14:14 You need that extra bit (the carry bit) to carry over useful information when, for example, doing a 64-bit addition on a 32-bit architecture. 19:17:56 is there some kind of shift word already? 19:19:44 hm actually i think 2/ 2* work properly 19:21:05 Well, SL and SR are multi-bit shifts. 19:21:40 yes but i'm working on the cpu cycles atm, getting the instruction 19:22:07 OK, I don't see how that is relavent. :) 19:22:13 SL and SR are actual CPU instructions. 19:22:17 have to take a whole different approach against my mirc design, since in mirc i could very easily treat the binary value as strings and cut 6 bytes from it 19:22:29 OOoohh.... 19:22:37 i need to shift the first 6 bits to get the inst? 19:22:40 you mean in the Forth you're writing in -- LSHIFT and RSHIFT are the primitives. 19:22:46 oh lshift 19:22:47 oki 19:22:56 RSHIFT is what you want. 19:27:30 kc5tja: what happened that will piss of your landlordd? 19:28:08 Next door neighbor mowed our front "lawn" (which is really a fucking jungle of a mess, but our LL thinks its a thing of pure beauty). 19:28:20 lol 19:28:23 hehe 19:29:03 Serious, I went outside and thanked him profusely for taking care of the front lawn. But then I told him that the LL will likely seek retribution on us, the residents, and recommended that this be settled via a meeting of himself and the LL. 19:29:36 guess you dont have one of the good ll's out there? 19:29:40 (to give you an idea of how bad the front lawn was, his 5HP lawn mower was stalling periodically.) 19:40:39 kc5tja: When the instruction in S5 is shifted over to S0 and it's 00, how does the CPU differentiate between get-next-instruction and jump-always? 19:40:52 It doesn't. 19:40:57 They're the same operation, by design 19:41:33 on that note, have you decided yet what the other two instructions will be? 19:41:47 (or another change, regarding this?) 19:41:58 But if it's a JA, then doesn't it jump to the 32-bit address stored in the next instruction in the instruction stream? 19:43:20 the target is the remaining 26 bits on the instruction latch. these are xor'ed against the P 19:43:47 oh... 19:43:51 qFox: No, I'm going to wait to decide on that. If anything. 19:43:55 since the instruction latch is shifted right with every instruction, by the time it reaches slot 6 the whole thing will be 0 19:44:08 kc5tja: how else would you do it? 19:44:17 so a jump to 0 would act as a nop 19:44:20 Sonarman: I don't understand what you mean? 19:44:24 (hopes he got it right this time :) 19:44:28 No, nto quite. 19:44:32 :( 19:44:42 Remember the effective address encoding is XOR'ed -- it is NOT a verbatim address. 19:44:57 kc5tja: how else would you have JA work to go to the next instruction besides xoring the remaining 26 bits in I with P? 19:44:59 A jump to 0 would encode the value of the next instruction's address in the instruction since (A XOR A) = 0. 19:45:05 (for all A) 19:45:23 Sonarman: A relative offset that is added instead of XORed. 19:45:29 But that requires sign extension. 19:46:35 ok. so with the XORing method, how would you specify the lower 6 bits of the address you want to jump to? 19:46:56 It's the upper 6 bits you should be asking about. 19:47:16 The lower 26 bits of P are XORed with the operand, not the upper. 19:47:21 The upper bits remain the same. 19:47:23 oh, the 26 bits are shifted right 19:47:50 To do a full-blown, jump-anywhere-in-memory, load the address as a literal onto the data stack, transfer it to the return stack, then execute RFS (Return From Subroutine), aka ';'. 19:47:56 In Forth, >R ; 19:48:41 Note that this architecture is all still mythological -- until I actually sit down and write the Verilog, it's only a hypothesis. 19:48:50 Until I actually synthesize it in hardware, it's only a dream. 19:49:10 And theory and reality are only theoretically related -- it could turn out that this architecture may not work for an FPGA processor. 19:49:14 I don't know for sure yet. 19:49:41 you're scaring me 19:49:44 :( 19:50:04 Why? 19:50:12 This is a natural process for any hardware designer to go through. 19:50:41 it just has to be done 19:50:42 :) 19:51:14 why don't you use one of the unused opcode slots for Jump Absolute? you don't think jumping to an address >26 bits from the current address will be done very often? (i'm just wondering if that's why you've chosen not to have JABS, i don't have an opinion on whether it would be good to have) 19:51:29 right, its no fun doing 53 branched if's :\ 19:51:43 ehm, not branched, but something 19:55:02 Because you need to understand how a MISC-architecture CPU operates before you can figure this stuff out. 19:55:20 A MISC packs N instructions per instruction word, where N is some integer greater than or equal to two. 19:55:28 In my case, N = 6 (currently). 19:55:50 This is the secret to how a MISC can attain RISC-like speeds without any pipeline overhead in hardware. 19:56:05 1 fetch cycle + up to 6 instruction cycles = 7 cycles total. 19:56:23 Or, in other words, each instruction takes as little as (7/6) clock cycles to execute. 19:57:04 In most cases, since slot 6 is relatively unused, it'd fall to (6/5) clocks. 19:57:24 But even so, 1.20 clocks per instruction is an *excellent* performance for a CPU that has absolutely no pipeline what-so-ever. 19:57:39 That being said, there are two ways to execute these N instructions. 19:57:48 The first involves a multiplexor -- this is what Chuck's chips do. 19:58:12 After every instruction fetch, a counter is reset to 0, which selects bits 0..4 of the instruction register. 19:58:26 After the next clock cycle, 5..9 are selected, etc. 19:58:39 Another instruction is fetched when the counter reaches the last slot. 19:59:18 Note that in this system, the bits of the instruction are not moved about inside the CPU. 19:59:36 In my system, however, the instruction register is implemented as a shift register. 19:59:53 Every clock cycle, the equivalent of this happens: I >>= 6, where I is the instruction register. 20:00:30 What appears in bits 0..5 are *always* treated as the currently executing instruction for that clock cycle, and if required, bits 6..31 are treated as the operand bits (but only for control-flow instructions). 20:00:34 why did you choose to use that solution instead of a multiplexor? 20:00:57 I felt it would use fewer hardware resources, and would make the control flow instructions more useful. 20:01:35 Obviously, I'm still collecting data on whether or not my approach has more merits than demerits, or vice versa. 20:01:55 One thing is for sure though -- the assembler is totally kicking my ass right now. >:( I'm very unhappy with it right now. 20:02:13 * Sonarman is away 20:02:25 Oh sure, ask me questions then disappear. 20:02:29 :) 20:03:24 heh: my forth is still kicking my ass :D 20:05:51 kc5tja> in what way? 20:07:01 The address of a word is being recorded off by one. 20:07:12 ah that sux 20:07:22 hey, i'm still going to read what you say :) 20:07:31 ^ not me 20:07:44 For example, if GOO is the word I'm trying to assemble (': GOO ... ;'), then the address reported by ' GOO >BODY @ . is 1 less than it should be. 20:08:24 i havent gotten myself to do a serious attempt at a actually functional optimized assembler that would make full use of a word. eg. it would assemble one instruction per word. 20:08:51 (the machine forth assembler that is, not the mirc script that created my bootcode, that one was done manual, kinda) 20:08:59 If I were to start over, that's what I'd do too, I think. 20:09:14 well, its the very easiest one, but not preferable one 20:09:37 i will expand it later to be smart and fill a word with next instructions if possible 20:10:03 It still doesn't give too bad a performance that way either -- 2 cycles per instruction. 20:10:09 otherwise i'll get a shitload of overhead on nops 20:10:10 (one to fetch it, one to execute it) 20:10:39 well, what i meant was a # nop nop nop 20:10:44 lda nop nop nop 20:10:47 sta nop nop nop 20:10:48 etc 20:10:49 Yes, I know what you meant. 20:10:54 Where am I contradicting this? 20:10:54 :) 20:10:56 well, that would be 3 instructions then... 20:11:17 unless i'm mistaken, a nop still consumes a instruction cycle, doesnt it? 20:11:37 so overall, thats a huge overhead imo 20:11:38 Yes, but on my CPU, leave the higher bits 0, and they're not NOPs. 20:12:15 wtfiswrogwithykeyoard 20:12:19 hm on that note, what DOES happen when you put a jump,jz,call in slot 2-5? 20:12:26 or was that just it, nothing? 20:13:08 The instructions behave as you'd expect them to. The only difference is you have fewer "parameter" bits left to specify the effective address with, and so, your effective branch distance is shortened. 20:13:18 ah ok 20:13:25 oh because of the shifting, ic 20:13:28 Right. 20:13:49 kc5tja: wouldn't putting one instruction in each 32-bit word result in 3 cycles per instruction? 1 to execute the instruction, 1 to execute the ja, and 1 to fetch the next? 20:13:56 With a MUXing approach, I'd need to be slot-smart -- jumps would appear in slots 0 or 2 only, and then I'd need dedicated logic to fetch the next instruction. 20:14:41 Sonarman: In my CPU, the hardware implementing JA *is* the instruction fetch hardware. 20:14:42 yes, in that way the shift approach is way easier, and error preventive 20:14:46 Hence my decision to take that route. 20:14:49 kc5tja: oh right cool :) 20:15:10 Sonarman: This way, I can get dual-use out of every transistor in that path. 20:15:23 neat 20:15:32 * Sonarman is away for real 20:15:40 i should really go to bed 20:15:48 But we'll see once I start banging out Verilog code. 20:29:17 alright, my initial cpu looks to be working. well the main body anyways 20:29:27 5:30 i better get some sleep 20:29:28 nite 20:29:31 mornin 20:29:32 w/e 20:29:33 goodnight 20:30:11 --- quit: qFox ("this is mirc's last attempt of communication...") 20:39:13 dang, I step away for little bit and people start loggin off. :) 20:39:26 Heheh :D 20:39:30 I should be off also: sleep 20:39:37 'night all 20:39:40 night 20:39:41 'nn all 20:39:47 --- quit: blockhead ("laugha while you can, monkey boy") 20:39:57 damn, not only was i too late, i also mispredicted what blockhead was going to say :) 20:40:09 Heheh :D 20:44:26 well, I added a very simple disassembler to the single-stepper for the CPU emulator. 20:44:47 And, frankly, I don't know what kind of crack the assembler is smoking, but it is looking like a grass-roots re-write of the whole assembler. :( 20:44:56 It's putting out *VASTLY* incorrect code. 20:44:57 :( 20:47:05 It also helps if RFS also popped the return stack too, eh? :) 21:00:14 which assembler, gas? 21:00:23 or is it your assembler 21:00:27 for your chip? 21:00:32 My assembler, of course. 21:00:37 * fridge hasn't been paying attention 21:00:40 gas won't touch a stack CPU with a 10m pole. 21:01:05 gas'll only consider touching it with a 1km pole. 21:01:44 It produces correct code for things like ': foo 345 #, ;' -- anything more complex than this, and it's woefully incorrect. 21:40:54 Got the emulator to produce its first running program! :) 21:41:12 The assembler definitely needs a LOT of work. :/ 23:25:54 --- quit: kc5tja ("THX QSO ES 73 DE KC5TJA/6 CL ES QRT AR SK") 23:26:56 --- quit: Sonarman ("leaving") 23:59:59 --- log: ended forth/04.05.15