00:00:00 --- log: started forth/20.03.05 00:13:33 Current design I seem to be settling on is to use the machine stack as the parameter stack 00:14:10 i hear thats quite common 00:14:45 IX as return stack, IY as user data pointer 00:14:49 but I shouldnt comment I really have no idea how a Forth is made 00:15:08 And instruction pointer in memory 00:15:13 No more registers are reserved 00:15:34 This is not similar to the example in moving forth, I found assigning all the registers too restrictive 00:15:55 I think it might be better to just reserve a small number of registers, we'll see! 00:16:26 Well I'm still deciding whether return stack or instruction pointer should go in memory or IX 00:16:46 the Forth I use, Mecrisp-Stellaris uses a number of cortex-m0 registers to improve it's performance 00:17:13 veltas: Z80 ? 00:17:16 Yes 00:17:19 cool 00:17:28 youre on a z80 which at the time it was released had tons of registers, nowdays the z80 doesnt have that many 00:17:33 Well that's the thing, reserving more registers means I find it harder to *use* registers effectively in my actual CODE 00:18:01 There is an actual Z80 example in Moving Forth part 2 00:18:12 the risc-c gd32vf103 has something like 35 registers iirc 00:18:31 He leaves just 2 general registers unassigned (well they are assigned to W and X which are like 'working' and scratch registers afaik) 00:20:14 I've pretty much finished my cortex-m0 'touch' switch design today, it's working better than Id hoped 00:20:30 Nice 00:20:39 I've ripped out all my C notes so the code is nice and neat 00:20:47 Heh 00:22:03 pnly about 30 config lines were needed, the rest is program 00:22:27 Nice 00:22:57 Ive even gleaned a bit of a understanding into how the pc keyboard probably works now 00:23:41 Forth just cant be beat for this kind of stuff. Honestly C users must go thru hell if they dont have code to copy 00:24:29 --- join: mtsd joined #forth 01:07:32 --- quit: jsoft (Ping timeout: 255 seconds) 01:07:42 --- quit: _whitelogger (*.net *.split) 01:07:42 --- quit: Croran (*.net *.split) 01:07:44 --- quit: jimt[m] (*.net *.split) 01:07:44 --- quit: deesix (*.net *.split) 01:07:44 --- quit: APic (*.net *.split) 01:10:20 --- join: dys joined #forth 01:12:28 --- join: _whitelogger joined #forth 01:17:36 --- quit: dave0 (Quit: dave's not here) 01:20:32 --- join: dave0 joined #forth 01:43:43 --- join: Croran joined #forth 01:43:43 --- join: jimt[m] joined #forth 01:43:43 --- join: deesix joined #forth 01:43:43 --- join: APic joined #forth 01:44:21 --- quit: APic (Max SendQ exceeded) 01:49:28 --- join: APic joined #forth 02:29:10 --- quit: dave0 (Quit: dave's not here) 02:34:15 --- join: jsoft joined #forth 03:04:08 --- join: iyzsong joined #forth 04:22:43 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 05:01:13 --- quit: jfe` (Ping timeout: 256 seconds) 05:28:11 --- join: jfe` joined #forth 05:33:18 --- quit: jfe` (Ping timeout: 265 seconds) 05:59:03 --- quit: mtsd (Quit: Leaving) 05:59:40 --- join: proteus-guy joined #forth 06:16:49 --- quit: jsoft (Ping timeout: 240 seconds) 06:32:46 --- join: dddddd joined #forth 07:08:48 --- join: jfe` joined #forth 07:14:02 --- quit: jfe` (Ping timeout: 260 seconds) 07:42:23 --- join: jfe` joined #forth 07:42:28 --- quit: tabemann (Ping timeout: 256 seconds) 08:32:35 --- quit: jfe` (Ping timeout: 256 seconds) 10:11:00 --- join: WickedShell joined #forth 10:19:53 --- join: jfe` joined #forth 10:24:46 --- quit: jfe` (Ping timeout: 258 seconds) 10:58:04 --- join: jfe` joined #forth 11:09:12 --- quit: jfe` (Ping timeout: 255 seconds) 11:31:58 --- quit: dys (Ping timeout: 256 seconds) 12:59:29 --- quit: gravicappa (Ping timeout: 256 seconds) 13:07:59 --- quit: xek_ (Ping timeout: 255 seconds) 13:20:45 --- join: dave0 joined #forth 14:10:48 --- join: jfe` joined #forth 14:15:18 --- quit: jfe` (Ping timeout: 265 seconds) 14:19:13 --- join: jfe` joined #forth 14:24:18 --- quit: jfe` (Ping timeout: 260 seconds) 14:52:33 --- join: jfe` joined #forth 15:03:23 --- nick: jfe` -> jfe 16:09:19 --- quit: jfe (Ping timeout: 256 seconds) 16:37:34 --- join: jfe joined #forth 16:44:11 --- join: jsoft joined #forth 17:20:25 --- join: X-Scale` joined #forth 17:22:06 --- quit: X-Scale (Ping timeout: 260 seconds) 17:23:27 --- join: X-Scale joined #forth 17:25:08 --- quit: X-Scale` (Ping timeout: 240 seconds) 17:33:27 --- join: tabemann joined #forth 17:33:30 --- quit: jfe (Ping timeout: 255 seconds) 17:51:45 tp 17:51:55 well, I solved my flash compilation problem 17:54:11 --- quit: jedb (Remote host closed the connection) 17:54:25 --- join: jedb joined #forth 18:01:43 --- join: jfe joined #forth 18:12:31 The weird non-deterministic bug, tabemann? What was it? 18:13:58 where it wasn't seeing the last word compiled to flash 18:14:08 after rebooting 18:16:58 Yes, something like that, I remember. What's the fix? 18:17:37 don't rely on the flush-flash routine that I had written, but rather just pad the last bytes of each word to a 16-byte boundary, and let the normal auto-burning routine work 18:18:00 it also fixed another issue with a different thing as well that I was going to run into 18:18:26 interesting, thanks! 18:20:27 I also got erasing to work 18:20:52 so if I fuck up what I write to flash, I can just reflash the user portion of the flash without having to flash the whole thing 18:39:12 tabemann, nothing to do with caching etc ? 18:40:43 no, it's just that my flush routine is broken 18:40:57 aha 18:41:11 but I needed to change it anyways 18:41:20 as flushing would have kept from working 18:42:10 I was reading about someone who's M7 (I think) had bad flash writes but it was due to not using a special instruction in his assy lang code 18:42:23 I also just added support for a warm reboot without clicking on the reset button on the board 18:43:01 I also use the Mecrisp-Stellaris warm reboot for when I run my intelhex dump 18:43:36 I still have to figure out why does> isn't working though 18:43:46 one has to be careful with all the cortex-m lookahead,piplines and caches etc with the higher end chips 18:44:10 I haven't really run into anything funny of that sort 18:44:13 your Forth progress seems to me ramping up now :) 18:44:32 me = be 18:45:05 I wrote a file containing basic routines used for a lot of things such as CREATE 18:45:17 and aside from DOES>, it works 18:46:18 I like that I now have a working ERASE-ALL 18:46:29 so if I mess up the code I compile to Flash 18:46:40 I can just erase it all without messing up the kernel 18:48:55 yeah, I use the Mecrisp-Stellaris a LOT 18:49:49 my dev system preloads all the aids I use then places a marker in flash and I can erase back to the marker without also erasing the proven dev words 18:50:12 I need to implement MARKER at some point 18:50:17 that saves time so I use that one most;y 18:50:36 yeah, it's very handy during user code development 18:52:33 --- join: boru` joined #forth 18:52:36 --- quit: boru (Disconnected by services) 18:52:38 --- nick: boru` -> boru 18:55:20 tabemann, 'touch' is a peripheral on your L476 as well 19:02:05 okay, gotta go - coffee shop is closing - bbiab 19:02:15 cya 19:06:41 --- quit: tabemann (Ping timeout: 256 seconds) 19:44:47 --- join: tabemann joined #forth 20:39:44 fp 20:39:45 hey 20:39:49 I got MARKER working 20:40:02 that was fast 20:42:21 I've got zeptoforth at the point that now I'm writing new functionality in Forth rather than in assembly 20:43:40 which is so much faster! 20:44:02 the only downside to this is that Forth code needs to be uploaded the first time you use that, and with zeptoforth that can be kind of slow 20:44:22 i.e. I have to use slowpaste 5 with screen or otherwise it corrupts the data that's inputted 20:45:41 was e4thcom of no use ? 20:46:05 i recommend you add RTS to your terminal assembly code 20:46:23 e4thcom didn't seem compatible with zeptoforth 20:46:27 then screen can run in hardware handshaking mode 20:46:43 I tried using it in amforth mode, because amforth uses CRLF 20:46:47 using EOL delays is utterly unusable imho 20:47:18 all you have to do is enable RTS in the assembly code 20:47:46 I don't really know how to do that 20:47:48 well and enable the GPIO youre going to use for it 20:47:52 after all, I am a mere programmer 20:48:10 hahah 20:48:12 I do not know hardware things 20:49:14 does your usb-3.3v dongle have CTS ? 20:49:45 I'm just using a direct USB connection to the board (yes, the DISCOVERY board is interfaced with with plain USB) 20:50:16 the stuff on the board handles both serial and st-link for me without me having to use extra hardware 20:50:45 but your Forth has no USB driver 20:51:00 so it cant be using the mcu usb ? 20:51:26 ahhh, you have stlink-3 or whatever ? 20:51:52 it uses the one usb port to program and talk serial to the board ? 20:52:18 well you cant have hardware flow control then 20:52:52 compare your Forth source upload speed to mine ? 20:53:06 mine is so fast I cant read it as it scrolls up the screen 20:53:36 so I have to have a beep on error and RED error text inserted to find it 20:53:47 --- quit: proteus-guy (Ping timeout: 256 seconds) 20:54:28 thats the ONLY way I can develop Forth on hardware in the same time as others use C, tho mine is quite a lot faster than theirs 20:55:06 in my opinion, the fastest Forth source upload time should be a priority for you 20:56:18 --- quit: jfe (Ping timeout: 260 seconds) 20:57:00 back 20:57:39 imagine when you have source thats 10k lines, you have to come back in 10 minutes! 20:57:46 mine is st-link 2-1 20:58:09 ahh yes, I avoid that like the plague 20:58:44 too slow, and tries to be too convient with it's drag n drop bs 20:59:01 which oddly doesnt work with Mecrisp-Stellaris binaries anyway 20:59:38 --- join: CORDIC joined #forth 20:59:39 --- join: gravicappa joined #forth 21:00:14 --- join: X-Scale` joined #forth 21:00:45 oh mine works with mecrisp-stellaris when I use the st-link command line tool 21:00:47 --- join: pareidolia_ joined #forth 21:00:53 I haven't tried this with "drag and drop" 21:01:08 --- join: jfe joined #forth 21:01:57 yeah it works for me with the cli too also but it's heaps slower than stlink-v2.0 21:02:18 --- quit: DKordic (Ping timeout: 255 seconds) 21:02:27 one day I hope to use something else as programmer 21:02:45 --- quit: X-Scale (Ping timeout: 255 seconds) 21:02:47 --- nick: X-Scale` -> X-Scale 21:02:53 well this is built into the board, unfortunately 21:03:12 --- quit: pareidolia (Ping timeout: 255 seconds) 21:03:48 perhaps a rpi etc 21:04:00 yeah same as all my discos and the nucleo 21:04:20 at least SWD is dead easy to use direct to a chip 21:04:26 which I also do 21:04:41 the disco/nucleos make that easy at least 21:05:27 you can just pull those jumpers you lost and then instead of programming the target on the disco, you can flash one externally 21:05:41 --- quit: jfe (Ping timeout: 256 seconds) 21:06:42 oh yeah, I got new jumpers - lol 21:06:48 a 50 pack of them 21:07:20 --- quit: irsol (Ping timeout: 268 seconds) 21:07:48 always handy 21:17:13 dammit 21:17:19 my MARKER appears to be buggy 21:17:50 we call that 'cornerstone' in Mecrisp-Stellaris 21:19:52 --- join: irsol joined #forth 21:34:42 --- quit: irsol (Ping timeout: 255 seconds) 21:45:41 --- join: irsol joined #forth 21:49:07 okay, I've gotta hit the sack 21:49:09 g'night 23:28:25 --- quit: dddddd (Ping timeout: 240 seconds) 23:40:32 --- join: Deep-Thought joined #forth 23:57:39 --- join: dys joined #forth 23:58:48 --- quit: WickedShell (Remote host closed the connection) 23:58:59 --- quit: Deep-Thought (Quit: Leaving) 23:59:59 --- log: ended forth/20.03.05