00:00:00 --- log: started forth/14.10.04 00:01:14 --- join: on4k (~none@78.90.30.16) joined #forth 00:16:26 --- quit: xyh (Remote host closed the connection) 00:47:53 --- join: dys (~user@2a01:1e8:e100:8296:21a:4dff:fe4e:273a) joined #forth 01:38:29 --- quit: on4k (Ping timeout: 272 seconds) 01:46:01 --- join: on4k (~none@78.90.30.16) joined #forth 01:46:21 --- nick: on4k -> Guest98135 01:52:01 --- quit: Guest98135 (Ping timeout: 246 seconds) 02:00:37 --- quit: Azel (Quit: Azel) 02:04:50 --- join: proteusguy (~proteusgu@ppp-110-168-229-98.revip5.asianet.co.th) joined #forth 02:46:47 --- join: true-grue (~grue@95-27-251-106.broadband.corbina.ru) joined #forth 02:48:54 --- nick: backer_ -> backer 03:13:41 --- join: daowee_ (~daowee@m90-141-145-61.cust.tele2.se) joined #forth 03:15:04 --- quit: daowee (Disconnected by services) 03:15:09 --- nick: daowee_ -> daowee 03:24:38 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 04:41:11 --- join: on4k (~none@78.90.30.16) joined #forth 05:20:55 --- quit: on4k (Quit: Leaving) 05:40:04 --- quit: nighty-_ (Ping timeout: 272 seconds) 05:51:24 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 05:52:24 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 06:18:58 --- join: vsg1990 (~vsg1990@cpe-67-241-148-119.buffalo.res.rr.com) joined #forth 06:20:49 I would like to write my own forth interpreter. From what I understand there is no official specification. Where would I find the most accepted specification? 06:25:21 --- quit: ErhardtMundt (Ping timeout: 240 seconds) 06:28:59 --- join: ErhardtMundt (~quassel@93-43-71-119.ip90.fastwebnet.it) joined #forth 06:54:52 --- quit: vsg1990 (Read error: Connection reset by peer) 07:04:26 --- join: vsg1990 (~vsg1990@cpe-67-241-148-119.buffalo.res.rr.com) joined #forth 07:40:11 vsg1990: There's an ANSI standard for Forth. 07:40:31 http://forthworks.com/standards/DPANS/ 07:40:59 Thanks. I didn't know that. 07:42:38 --- quit: nighty-_ (Quit: Disappears in a puff of smoke) 07:43:14 --- join: nighty-_ (~nighty@hokuriku.rural-networks.com) joined #forth 07:44:08 --- quit: proteusguy (Ping timeout: 272 seconds) 07:56:59 --- join: proteusguy (~proteusgu@ppp-110-168-229-239.revip5.asianet.co.th) joined #forth 08:12:40 --- quit: saml_ (Remote host closed the connection) 08:26:36 vsg1990: I found eForth easiest to understand. But you might want also look at jonesForth, figForth and OpenFirmware for ideas. 08:28:18 Zarutian: Thanks! 08:40:12 vsg1990: And of course IsForth from /topic. 08:43:05 vsg1990: Some more links http://www.bradrodriguez.com/papers/moving1.htm https://www.rfc1149.net/devel/rforth1.html . 08:44:01 I like the one for the PIC18FXXX I have a few of those chips upstairs in my workshop 08:46:07 vsg1990: Me too, I would start with MOVING FORTH and rforth1. 08:47:11 Thanks DKordic 08:48:00 vsg1990: I heard that Forth was always the first system to be ported to new architectures. 08:56:50 DKordic``: propably because you only need to code about 32 primitives or so in assembly while the rest can be reused without much hassle. 09:07:58 --- join: elaforest (~elaforest@unaffiliated/elaforest) joined #forth 09:09:06 Zarutian: I completely agree. I think the most important concepts will still be learned in the process. 09:10:31 And Tethered Forth is mind blowing. With such concepts IAR tools are a joke! 09:11:26 You guys are touching on allot of reasons on why I choose Forth for my next project. 09:11:37 DKordic``: IAR? what does that stand for? 09:11:49 easy to port to exotic hardware is a big one 09:14:05 Zarutian: That is some company offering comercial tools for embedded systems. C compiler, IDE, 'nuf said. It seems to me that people talking about it know nothing. 09:16:00 Wouldn't be the first time a project goes down like the titanic. It is just entertaining with companies throw gobs of money at an idea that is not defined or even worse, proven not to work in development. 09:18:32 IronTree9: Need not be ported. Only using something like Forth at compile time is extremely useful. But then You can say there are two Forths :) . 09:23:25 IronTree9: If You are talking about IAR and similar tools, they exist for quite some time and some people think they are superb. Before I have seen Forth I thought there is something to be learned in discusions of C vs. assembly on their forums. Now I laugh when I remember. 09:27:10 --- quit: irsol (Ping timeout: 244 seconds) 09:28:16 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 09:29:53 --- quit: Zarutian (Quit: Zarutian) 09:50:03 lol you bring up a good point DKordic`` 09:58:22 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 10:04:26 --- join: edune (~edne@c-d594e355.73-0015-74657210.cust.bredbandsbolaget.se) joined #forth 10:11:05 --- quit: edune (Ping timeout: 260 seconds) 10:27:28 --- quit: proteusguy (Remote host closed the connection) 10:53:06 --- quit: nighty-_ (Remote host closed the connection) 10:56:43 --- join: xyh (~xieyuheng@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 11:00:08 --- quit: Zarutian (Quit: Zarutian) 11:17:55 --- join: _spt_ (~Jaat@host-92-12-209-170.as43234.net) joined #forth 11:17:55 --- quit: _spt_ (Changing host) 11:17:55 --- join: _spt_ (~Jaat@unaffiliated/-spt-/x-5624824) joined #forth 11:18:27 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:18:44 --- quit: Zarutian (Read error: Connection reset by peer) 11:18:55 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 11:19:10 --- quit: xyh (Ping timeout: 260 seconds) 11:22:51 --- join: _spt2_ (~Jaat@host-92-12-209-170.as43234.net) joined #forth 11:25:23 --- quit: _spt_ (Ping timeout: 246 seconds) 11:31:21 --- join: _spt_ (~Jaat@unaffiliated/-spt-/x-5624824) joined #forth 11:33:17 --- quit: _spt2_ (Ping timeout: 272 seconds) 11:36:48 IAR as it turns it is just a brand name 11:47:17 --- join: xyh (~xieyuheng@2001:250:3002:5550:6ea1:cc0f:bcb2:b187) joined #forth 11:56:52 --- quit: IronTree9 (Ping timeout: 246 seconds) 12:01:05 --- join: IronTree9 (~irontree9@c-76-120-0-183.hsd1.co.comcast.net) joined #forth 12:03:22 --- quit: Zarutian (Quit: Zarutian) 12:18:35 --- join: saml_ (~saml@pool-71-190-7-10.nycmny.east.verizon.net) joined #forth 12:58:42 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 12:59:19 --- quit: Zarutian (Read error: Connection reset by peer) 12:59:34 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 13:44:56 --- quit: daowee (Read error: Connection reset by peer) 13:45:41 --- join: daowee (~daowee@m90-141-145-61.cust.tele2.se) joined #forth 14:04:51 --- join: Mat3 (~Mat@91.65.76.247) joined #forth 14:04:53 hi all 14:05:37 --- quit: irsol (Ping timeout: 245 seconds) 14:15:49 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 14:22:14 hi 14:22:33 hello DocPlatypus 14:33:27 anyone knows forth assembler for x86 ? 14:35:12 all forth assemblers compile code to memory directly ? no file to file assemblers ? 14:39:40 probably ciforth has one, but not sure 14:40:21 and yes, the ones I know compile directly to native code 14:41:33 in addition helForth features an JIT compiler 14:42:33 --- quit: saml_ (Quit: Leaving) 15:03:19 --- quit: aranhoide (Ping timeout: 246 seconds) 15:18:24 to study the instruction encoding of x86, I have 1500 pages to read from intel's manual :( any other ways ? 15:20:50 I have attempted to read that long ago and my brain broke. I suggest The Art of Assembly. 15:20:56 if your interested in that 15:21:44 IronTree9: ``The Art of Assembly'' explains it in a better way ? 15:24:16 --- join: _spt2_ (~Jaat@host-92-12-212-151.as43234.net) joined #forth 15:24:17 Well, that depends on the reader I guess. But the book is not a reference, just a good explanation of the nuts and bolts of the entire process. 15:25:16 IronTree9: I see, thx :) I know this book, but have never read it into detail, now is time :) 15:27:30 --- quit: _spt_ (Ping timeout: 272 seconds) 15:50:12 --- quit: daowee (Ping timeout: 246 seconds) 16:04:38 --- quit: _spt2_ (Quit: irc- et) 16:09:08 xyh: x86 instruction encoding is horribly horribly broken imho. 16:11:35 think x86 itself is broken. 16:12:15 IronTree9: indeed but its instruction encoding more so 16:13:00 heck, if Intel hadnt made such a good offer to Apple, then Macs would still be using PowerPC architecture 16:13:57 yeah, but it is kind of comical now that there is a hope of x86 dieing 16:14:23 ARM is the new future they say 16:14:45 Yeah, they say. I some what agree 16:14:58 yet ARM is just slightly better than x86 16:15:10 way better than x86 at least 16:16:45 oh, ARM has Address Space indentifier privileged register that extends virtual addresses on the left which means fewer Translation Lookaside Buffer flushes. 16:18:43 fixed size instructions (though you can switch between thumb (16 bit) and full (32 bit) at anytime in the codestream with special instructions) 16:18:44 Thumb 2 encoding is a nice idea (beside SH CPU's achive the same depth with lesser effort) 16:19:07 Mat3: SH CPU? havent heard of it. 16:20:05 mostly known for automobile controlling and used in the Sega Dreamcast console for example 16:20:19 a 6502 variant? 16:20:44 no, its an 32 bit RISC architecture with an 16 bit encoding (more or less) 16:21:23 oh, I recall that some SNES cartriges had it as co-processor. 16:21:30 carts* 16:22:38 which reminds me, didnt Nintendo 64 use some sort of CPU that loaded VLIW microcode from games? 16:23:45 do not know the N64, sorry 16:24:08 basicly 4096 64 bit words kept in the CPU sram that then implemented whatever instruction set the game programmers wanted. 16:25:03 that's somehwat like extending Intel CPU's though microprogramming (to add new instructions) 16:25:28 ciao 16:25:35 --- quit: Mat3 (Quit: Verlassend) 16:25:46 Mat3: I was going to ask him about the Dreamcast, oh well 16:25:48 Zarutian: I think that the microcoding was for the GPU, not the CPU 16:27:38 which reminds me, for a while now I have wanted to design and build an rather extensible console in the spirit of SNES but where the games are more like DLC or just .zip-esque files on SD cards. 16:28:39 so basically one beefy FPGA that has HDMI, USB 2.0 and Ethernet ports connected to it. 16:29:06 (or few small FPGAs connected together to achive the same effect) 16:29:42 what it strands on is the shitty toolchains of the vendors. 16:30:12 and the closedness of the bitstream format. 16:30:23 formats* 16:31:37 What is that abomination they used in the PS3? 16:31:47 The Cell or something 16:32:15 a small flash chip memory that the FPGA loads its initial config from would have to have a small soft core to enable enumeration of games on sdcards connected to it. 16:32:48 PS2 I think has the Cell. PS3 might have it but I am sure that PS4 is basically a crappy PC 16:33:58 yeah, thats right 16:34:56 what I am looking for in FPGA is plenty of logic&routing resources, open bitstream format and dynamic partial reconfigurationability 16:37:24 to protect VPs (virtual products/property) people can use two stage configuration, one bitstream that has an RSA and AES decryption engine and other encrypted bitstream loaded through that. 16:39:07 and before you start to clamour at me for trying to implement Digital Restriction Management, note that the bitstreams are copiable outside the FPGA but the readback inside or from the FPGA could be protected. 16:40:21 but for now, google for agoric opaque computing boxes (iirc) for the source of some of the ideas I am influenced by here. 16:40:35 will return back later. 16:40:41 --- quit: Zarutian (Quit: Zarutian) 16:53:35 --- quit: true-grue (Read error: Connection reset by peer) 17:12:11 --- join: daowee (~daowee@m90-141-145-61.cust.tele2.se) joined #forth 17:56:12 --- quit: xyh (Remote host closed the connection) 18:16:42 --- join: Zarutian (~zarutian@168-110-22-46.fiber.hringdu.is) joined #forth 18:19:48 --- join: Zag (~zag@skizzk.fr) joined #forth 18:24:38 --- quit: elaforest (Ping timeout: 260 seconds) 18:24:44 --- quit: Zarutian (Quit: Zarutian) 18:26:14 --- join: ehaliewicz (~user@50-0-50-37.dsl.dynamic.fusionbroadband.com) joined #forth 19:11:23 --- quit: irsol (Ping timeout: 245 seconds) 19:14:43 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 20:44:51 --- quit: karswell` (Remote host closed the connection) 20:48:20 --- join: karswell` (~user@87.114.35.172) joined #forth 21:04:55 --- quit: irsol (Ping timeout: 240 seconds) 21:09:41 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 21:42:25 --- quit: irsol (Ping timeout: 250 seconds) 21:51:56 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 22:02:05 --- quit: irsol (Read error: Connection reset by peer) 22:02:32 --- join: irsol (~irsol@unaffiliated/contempt) joined #forth 22:37:11 which is easier to understand: 22:37:28 : q0< 0< >r 2drop drop r> ; 22:37:37 : q0< 2nip nip 0< ; 22:38:22 or maybe I should ask, which is "better" Forth? 22:49:30 --- join: protist (~javery@58.224.69.111.dynamic.snap.net.nz) joined #forth 22:53:43 --- quit: vsg1990 (Quit: Leaving) 23:18:03 they both seem about the same to me, DocPlatypus ... but maybe there's a way to restructure your program so you don't have 3 junk values on the stack in the first place? 23:18:12 also stack comments would be nice. 23:18:51 it's code to deal with quads (four cell numbers) so three junk values are unavoidable. the logic is actually simpler when three out of the four cells are "junk" versus when all four have to be used to make a comparison 23:20:05 ah i see 23:20:11 btw, I had the former and changed it to the latter. if nothing else I would expect the latter to run just a smidge faster 23:21:42 another good one... 23:21:43 : q0= or or or 0= ; 23:22:39 nice :) 23:25:00 --- quit: ehaliewicz (Ping timeout: 245 seconds) 23:59:59 --- log: ended forth/14.10.04