00:00:00 --- log: started forth/20.11.26 00:29:09 --- join: xek_ joined #forth 01:13:08 --- join: dave0 joined #forth 01:24:24 --- quit: _whitelogger (Remote host closed the connection) 01:27:22 --- join: _whitelogger joined #forth 02:16:36 MrMobius: My 8-bit forth uses a totally memory stack and seems to have very good performance, compared to the built-in BASIC 03:13:11 --- join: gravicappa joined #forth 03:19:25 --- quit: dave0 (Quit: dave's not here) 03:35:13 --- quit: jimt[m] (Quit: Bridge terminating on SIGTERM) 03:35:28 --- quit: siraben (Quit: Bridge terminating on SIGTERM) 03:41:23 --- join: siraben joined #forth 03:49:07 --- join: jimt[m] joined #forth 04:24:58 --- quit: hosewiejacke (Ping timeout: 240 seconds) 04:48:35 --- quit: gravicappa (Ping timeout: 264 seconds) 05:10:51 --- join: xek__ joined #forth 05:13:15 --- quit: xek_ (Ping timeout: 260 seconds) 05:14:56 --- join: hosewiejacke joined #forth 05:24:52 --- quit: hosewiejacke (Ping timeout: 272 seconds) 05:32:47 --- join: xek_ joined #forth 05:35:27 --- quit: xek__ (Ping timeout: 265 seconds) 05:52:23 --- join: Gromboli joined #forth 06:26:05 veltas, which architecture? 06:26:20 Im sure it's faster than BASIC but that's the lowest bar you could set 06:26:44 although maybe its a good size/speed trade off for what youre doing 06:28:01 forth is i mean 06:42:54 --- join: hosewiejacke joined #forth 06:47:25 he's targetting a calculator iirc 06:51:49 --- quit: hosewiejacke (Remote host closed the connection) 06:52:15 --- join: hosewiejacke joined #forth 07:21:01 --- join: gravicappa joined #forth 07:41:35 --- join: Zarutian_HTC joined #forth 07:44:18 --- quit: hosewiejacke (Ping timeout: 240 seconds) 07:50:29 --- join: hosewiejacke joined #forth 07:56:35 --- quit: hosewiejacke (Ping timeout: 265 seconds) 08:51:18 --- quit: tabemann (Ping timeout: 240 seconds) 09:25:27 --- join: hosewiejacke joined #forth 09:52:01 --- quit: hosewiejacke (Ping timeout: 260 seconds) 10:46:26 MrMobius: ZX Spectrum 10:47:01 The built-in BASIC is actually a very elegant application, although it's not very fast yes. 10:47:49 My Forth was a lot faster than I expected though, I was very happy with the result. I don't even have a very optised forth, it uses the classic threading 10:47:53 optimised* 10:49:07 Certain things needed optimising in assembly, where 90% of the work is done, but only in 10% of the code. That's why we can afford high-level niceties in 8-bit as well as anywhere 10:49:55 It's a good rule of thumb for performance and I didn't believe it would apply to 8-bit until I tried it years back with a C/assembly project that had really bad C output 10:52:02 On Z80 I think the C code you get from the available compilers is only slightly faster than a decent Forth, if at all 11:10:58 --- quit: gravicappa (Ping timeout: 240 seconds) 11:11:38 --- join: gravicappa joined #forth 11:13:38 --- join: hosewiejacke joined #forth 11:28:38 --- quit: hosewiejacke (Ping timeout: 246 seconds) 11:39:44 veltas: yeah, Z80 is really hard to optimise for 11:40:22 it's this sort of crazy accumulator architecture that has been extended in all places except where it would actually help (accumulator size) 11:54:40 I think that is the compromise of being mostly backwards compatible with 8080 12:06:40 I guess so 12:07:02 it's still quite amazing how it has 16 bit addition in basically all registers except the accumulator 12:07:28 , 12:47:58 --- quit: gravicappa (Ping timeout: 240 seconds) 13:04:08 --- join: tabemann joined #forth 14:16:47 HL is the 16-bit accumulator really 14:18:46 A is combined with the flags when you do 16-bit stuff, you can push AF to stack, it wouldn't be useful to try and do 16-bit arith with that because the flags would clobber the low byte 14:19:08 Of course there are other ways they could have used it, but I think Z80 is spoiled for registers really, especially compared to 6502 14:33:22 Found this talk enjoyable: https://www.youtube.com/watch?v=_IgqJr8jG8M 14:34:43 --- quit: xek_ (Ping timeout: 256 seconds) 14:50:33 --- join: dave0 joined #forth 14:52:59 Interesting 15:02:12 crap, anyone where to get the safeforth interpreter? 15:02:23 anyone knows where* 15:02:32 I remember it was sf.c 15:09:18 Did you read this great article on Z80 ALU silicon reversing ? http://www.righto.com/2013/09/the-z-80-has-4-bit-alu-heres-how-it.html 15:10:20 I've seen that 15:10:58 Also http://www.righto.com/2014/10/how-z80s-registers-are-implemented-down.html 15:14:00 The talk I posted above discusses the performance/hardware mapping aspects of Forth (or concatenative languages in general) in relation to what we briefly talked about here yesterday. 15:14:10 In the second half of the video. 15:22:13 --- join: Gromboli_ joined #forth 15:22:29 --- quit: Gromboli_ (Remote host closed the connection) 15:22:32 --- quit: Gromboli (Quit: Leaving) 15:22:52 --- join: Gromboli joined #forth 15:57:11 Can someone explain to me why the memory dump looks like this in these two examples of using CREATE and VARIABLE? https://paste.ofcode.org/hdJBsAsYu8xgn7gt9PzQ7r 15:58:00 Or rather why VARIABLE has a 1 CELL empty gap before the data, whereas CREATE doesn't? 16:05:46 try SEE VARIABLE 16:06:16 Oh right 16:06:36 Got it, it reserves 1 cell upfront. 16:07:53 (Excuse my dumb questions, it'll take me a while to remember even the most basic things since I only seem to start playing around with it after midnight for some reason) 17:08:35 --- quit: Zarutian_HTC (Remote host closed the connection) 17:38:38 --- quit: tabemann (Ping timeout: 240 seconds) 17:57:43 --- join: tabemann joined #forth 18:23:37 --- join: boru` joined #forth 18:23:40 --- quit: boru (Disconnected by services) 18:23:42 --- nick: boru` -> boru 18:37:07 --- quit: ornxka (Quit: No Ping reply in 180 seconds.) 18:39:21 --- join: ornxka joined #forth 18:39:21 veltas, neat! I like 8 bit stuff myself but mostly 6502 not Z80 :P 18:40:09 the C output for the 6502 is not optimized that well but still 5x faster than the fastest STC forth for 6502 18:40:29 it would be cool to see how things compare on the Z80. is sdcc the C compiler most people use? 19:36:39 --- quit: dave0 (Read error: Connection reset by peer) 19:41:54 --- join: dave0 joined #forth 20:04:29 --- join: gravicappa joined #forth 20:06:36 MrMobius: I tried out sdcc but the generated code wasn't as efficient as I liked 20:06:53 Z80 is quite register constrained 20:08:19 I usually write primitives in Forth then rewrite in asm if I need more performance 20:09:30 siraben, makes sense 20:09:46 I was just curious about the performance of sdcc vs Z80 forths 20:11:47 MrMobius: ah I don't have any benchmarks so take my anecdote with a kilo of salt 20:54:27 --- quit: sts-q (Ping timeout: 240 seconds) 21:01:12 --- quit: Gromboli (Read error: Connection reset by peer) 21:09:57 --- join: sts-q joined #forth 22:07:10 --- join: hosewiejacke joined #forth 22:15:38 --- quit: gravicappa (Ping timeout: 240 seconds) 22:30:28 neuro_sys: Nothing wrong with dumb questions, we all start somewhere 22:30:44 Well there is something wrong if they never stop :P 22:31:28 MrMobius: SDCC yes. Don't know what it's like these days, when I last used it it was rubbish and buggy (still helpful though, somehow!) 23:59:59 --- log: ended forth/20.11.26