00:00:00 --- log: started forth/19.12.21 00:16:08 --- quit: smokeink (Remote host closed the connection) 00:16:35 --- join: smokeink joined #forth 00:27:23 --- join: ryke joined #forth 01:00:55 --- quit: ryke (Ping timeout: 258 seconds) 01:04:19 --- quit: dddddd (Ping timeout: 260 seconds) 01:08:21 --- join: crab1 joined #forth 01:09:43 mornung 01:50:51 --- quit: crab1 (Quit: WeeChat 2.6) 02:03:09 Good daytime! 02:21:52 Which ISA would you recommend for getting started with assembly programming (and perhaps writing a primitive Forth in)? 02:25:21 Old ARM (like 2) and MIPS had good reputation. IDK if their recent variants deserve it still. There's also M68K, but the only computer I have with it is in disrepair. Are Motorola boxes (or EVBs) even made nowadays? 02:27:02 qweo: Interesting question! 02:27:38 Why bother with retor (for a lack of a better word) hardware?! 02:29:34 Yeah, it interests me for quite a long time :-) Also the more general question of which architecture is more elegant :-) Word of mouth has 68K top that list. RISC-V and MSP340 are supposedly near the top too. Oh, and the 8080-done-right, i. e. Z80 :-) 02:30:20 CORDIC, is 2010 retro for you? :-) 02:30:34 No. What is from 2010? 02:31:01 A Lemote laptop (running Loongson, a Chinese take on MIPS) 02:31:33 I also have a SPARC on hand, and, of course, the PCs, and plan to get a POWER box too. But, from the conversation above, some MSP340-based microcontroller would probably be better to learn the ropes 02:31:35 Doesn't seem to be worth the effort. 02:32:33 Understanding how arches are different is worthwhile IMHO. Although that sure would be a huge time sink 02:32:53 IMHO the one that has the Finest Manuals. And in this case from Your PoV. 02:34:50 That is, they touch on how to write Forth in MSP340 asm? 02:34:59 AFAIK AMD64 should be a good first step. 02:37:54 From what I've heard, modern x86 is scary as hell in its complexity 02:38:04 I would like to hear any thought You have about it in the future as I am doing the same :) . 02:39:00 I hope a simple Forth implementation is still possible. 02:41:05 Good luck in your endavour! :-) And I'd like to know your impressions too 02:41:26 --- quit: jsoft (Ping timeout: 260 seconds) 02:41:33 * qweo thinks of following Moore's book on writing proto-Forth for a start 02:45:03 qweo: Do You have a GitHub account? 02:46:24 https://github.com/kragen/stoneknifeforth 02:50:49 Nope, but I appreciate the link 03:45:36 You might also be interested in #ProgLangDesign . 03:56:12 Thanks CORDIC 04:02:34 --- quit: dave0 (Quit: dave's not here) 04:17:41 --- quit: smokeink (Ping timeout: 260 seconds) 04:23:02 --- quit: iyzsong (Quit: ZNC 1.7.1 - https://znc.in) 04:31:09 qweo, the Forth I use Mecrisp-Stellaris on cortex-m was written by Matthias Koch who wrote his first Forth in MSP430 because he said he loves that arch 04:32:08 qweo, I also find msp430 very smooth and easy, much like motorola 6800 04:33:38 qweo, as a comparison, one can write a self contained 'blinky' in MSp320 in 14 bytes, but cortex-m0 can only manage 28 bytes, 100% larger 04:33:53 MSP430 I mean! 04:40:03 He also implemented it for R-V. That's all the same Forth dialect, right? Or are there differences across arches? 04:40:48 it's very similar, I have the MSP430. RISC-V 32 Bit and cortex-m versions of Mecrisp-Stellaris on hardware 04:41:19 there are only minor hardware related differences but it's all based on the same Mecrisp-Stellaris core 04:42:09 if you were using them all remotely, you'd find it hard to tell them apart 04:45:03 --- join: crab1 joined #forth 04:55:21 +1 for msp430 assembly. very fun 04:56:03 MrMobius, agreed 04:56:33 thumb for cortex-m is more like hard work 04:56:43 so im still trying to understand how CREATE and DOES> work. are there problems you cant really solve without them or are they just there to help you make better syntax words? 05:01:07 i'm still trying to understand them myself, but they have often described as the ‘jewel of forth’ 05:03:36 Does "Thinking Forth" discuss them, or are they a more recent or obscure addition? 05:04:20 I think that CREATE and DOES go back to the beginning of Forth 05:07:08 Michael Ham has called the word pair CREATE...DOES>, the “pearl of 05:07:09 Forth”. CREATE is a component of the compiler, whose function is to 05:07:09 make a new dictionary entry with a given name (the next name in the 05:07:09 input stream) and nothing else. DOES> assigns a specific run-time ac- 05:07:09 tion to a newly CREATEd word. 05:07:37 http://galileo.phys.virginia.edu/classes/551.jvn.fall01/primer.htm#create 05:08:22 that link shows the definition for VARIABLE which makes a dictionary entry with space to store data. how does that work though if your dictionary is in flash? 05:08:42 CREATE finds its most important use in extending the powerful class of 05:08:43 Forth words called “defining” words. 05:08:53 unlss the usualy implementation assumes its all in RAM 05:09:34 tpbsd, that is what I was asking you about a few days ago where some words take arguments after them instead of from the stack 05:10:02 MrMobius, in Mecrisp-Stellaris variables always go into ram 05:10:57 MrMobius, and I couldnt answer satisfactorily because I'm still a Forth beginner who doesnt understand create does> myself 05:11:37 I do know that create does> is the hardest to grock and most useful part of Forth 05:12:04 the key term here is "defining word" I believe 05:13:08 for instance the word 'variable' is a product of create does> iirc 05:16:01 It has been said that one does not write a program in Forth. Rather, one extends Forth to make a new language specifically designed for the application at hand. An important part of this process is the defining word, by which it is possible to combine a data structure with an action to create multiple instances that differ only in detail. One thinks of a cookie-cutter; all the cookies are the same shape but have different-colored icing. 05:16:30 http://forth.org/svfig/Len/definwds.htm 05:21:42 what about a word that takes another word but doesnt define anything like ' ? 05:23:47 ? 05:25:06 if I understand correctly ' foo pushes the address of the word foo but I dont think you could do that with CREATE DOES> although the argument for ' comes after, like it does for VARIABLE or anything else you could create with CREATE DOES> 05:26:58 MrMobius, "'" puts the address of the following word on the Stack, yes 05:27:43 MrMobius, and you raise a interesting point with the sequence but Ive seen many words where the sequence is somehow changed 05:28:12 for instance take the work "see" 05:29:39 "see" provides the disassembly of a Word into assembler in Mecrisp-Stellaris yet is is used before the actual Word because were it reversed, the Word would be executed first 05:30:05 a example is "see +" 05:30:18 see + 05:30:19 00001F20: CF01 ldmia r7 { r0 } 05:30:19 00001F22: 1836 adds r6 r6 r0 05:30:19 00001F24: 4770 bx lr 05:30:19 Bytes: 6 ok. 05:32:53 right but how can I make a word like that for myself? 05:34:30 thats the $64,000 question! 05:35:10 I imagine the answer is "write tons of Forth code and wait for the penny to drop" 05:35:27 at least thats the glacial way I learn 05:39:34 The basics of create ... does> 05:39:35 Defining words are based on the Forth construct create ... does>, which beginners can apply mechanically. The steps are: 05:39:35 Start a colon definition 05:39:35 Write create 05:39:35 Follow by words that lay down data or allot RAM, thus creating the body 05:39:37 Write does> 05:39:39 Follow by words that act on the body. 05:39:41 These steps are fairly simple, but understanding them is complex because there are three stages in the action of a defining word. 05:45:55 I think this is one of the easiest examples of Defining Words I have seen 05:45:57 http://forth.org/svfig/Len/definwds.htm 06:02:09 --- join: TwoNotes joined #forth 06:35:08 --- join: cnidario joined #forth 07:49:43 --- join: proteus-guy joined #forth 08:09:01 --- quit: cnidario (Remote host closed the connection) 09:13:00 --- join: dddddd joined #forth 09:53:50 ""We don't have any bugs. All bugs are Yours! "" -- HySociety 09:55:43 qweo: https://github.com/ForthHub/wiki/raw/gh-pages/rawdata/Forth-Systems.md 10:13:52 --- join: remexre joined #forth 10:19:25 huh 10:19:37 My left alt key stoppd working with alt tab for fluxbox 10:19:42 but it shows in xev fine 10:19:47 and if I use right alt tab it works.. 10:19:52 dafuq 10:29:30 --- join: ryke joined #forth 10:31:42 --- quit: X-Scale (Ping timeout: 250 seconds) 10:48:11 --- join: oxford joined #forth 11:02:39 Right Alt is often interpreted as a key unto its own (AltGr) FatalNIX_ 11:15:22 --- join: dys joined #forth 11:42:11 --- quit: gravicappa (Ping timeout: 260 seconds) 12:28:51 --- join: X-Scale joined #forth 13:51:39 --- quit: TwoNotes (Remote host closed the connection) 14:10:46 hiya 14:11:02 g'day! 14:11:10 how are you? 14:11:18 good, you ? 14:11:44 Okay, just spent my day doing errands and shit 14:12:10 now beginning to read Munkres Topology 14:13:46 I'm just working on some documentation explaining 'defining words' on my doc site and trying to devise a working method to include one repo in another with Fossil SCM 14:14:09 --- quit: tabemann (Ping timeout: 260 seconds) 14:14:42 text messages give me headaches 14:15:01 ? 14:15:19 when people text my phone, it bothers me 14:15:25 20 texts, why not just call 14:15:40 i prefer text myself 14:16:15 to me, text forces people to consider what they say 14:16:41 and in a tech world terminology is critical 14:17:13 a text conversation distracts me at each text message, where a call is a single interruption, I prefer that 14:17:36 I guess voice is fine if people want to blather on about nothing in particular or love the sound of their own voice 14:18:30 why not reduce the priority of text ? turn of the beep or notification and read it when you feel like it. If it's urgent then they will call ? 14:19:22 once they learn that txt is your lowest priority then they will probably call instead ? 14:20:21 a voice conversation is more information/time than back and forth texts though. Also people don't seem to realize that I can't write text messages quickly with a phone that just has a number pad 14:25:15 --- join: tabemann joined #forth 14:37:42 YAY 14:37:47 My laptop keys are slowly coming back 14:37:56 congratulations 14:38:02 For a while I was hitting ctrl j for enter 14:38:18 so what happened is that I think this laptop keyboard as many only lets you use 3 keys at a time or so 14:38:31 so maybe the water damage was hitting other keys along with left alt, alt tab works now 14:41:17 as for the LCD the water is receding 14:41:23 I can still see blotches of water in it 14:42:21 FatalNIX_, what kind of water was it ? 14:42:32 rain, tap, salt ? 14:47:02 hey guys 14:49:40 it was literally submerged in a tank of water 14:49:52 hey tabemann 14:49:55 tap water though 14:50:24 left alt stopped again. I should take the hair dryer to it again 14:50:34 FatalNIX_, it may be a idea to resubmerge it in a container of distilled water 14:51:03 yep thats what happened if I hold alt and hit tab xev doesnt detect both tab and alt 14:51:05 FatalNIX_, unless your tap water is low minerals and in salts which many arent 14:51:09 another key is being shorted out 14:51:44 so 14:52:02 our tap water is relatively clean 14:52:06 tabemann, still on the hunt for the elusive thumbdocs ? 14:52:14 why don't you turn off your computer and put it in unboiled rice? 14:52:28 tpbsd: yes 14:52:34 tabemann, too many calories ... 14:53:08 tabemann: because It would take too long. Insteasd I took the battery out and took the laptop apart and blow dryed all of the components , motherboard, etc until there was nothing left 14:53:09 rice is a dessicant 14:53:12 I did not do it with the LCD 14:53:28 and the keyboard, well that's hard to get all crevices 14:53:32 I won't take that apart 14:53:56 okay, the coffee shop properly made this order 14:54:13 last time I ordered an arnold palmer 20 oz no ice and they made it with ice 14:54:24 shaken or stirred ? 14:54:41 lo 14:54:48 this time they made my iced dirty chai latte without ice, as I asked 14:55:03 tabemann, youre such a hipster! 14:55:28 I've never thought of myself as a hipster... 14:55:42 you should make your own damn coffee 14:55:44 :D 14:56:04 Ive never thought of myself as a idiot ... but I might be ;-) 14:56:06 my normal thing I drink at coffee shop is arnold palmers 14:56:21 *shops 14:56:45 You could grow it in a greenhouse with the right regulating temperatures and humidity 14:56:54 and in 3-4 years you'll be getting your own coffee for free 14:57:09 I guess thats the think in the USA, endless coffeeshops with all the latest fads ? 14:57:14 well not free but 14:57:17 I'm not growing my own damn coffeee 14:57:18 you can grow other shit in there 14:57:25 Why not? 14:57:49 I think taberman is too busy doing stuff like ... programming ? 14:57:51 it would be pretty tough here. Regulating a greenhouse this time of year is not easy 14:58:09 tpbsd: even you put an iin my name! 14:58:13 *in 14:58:16 oh hey it got warmer 14:58:23 it was about 10 degrees today or so now its 19 14:58:33 tabemann, oops, apologies, won't happen again! 14:59:06 seriously, I don't have the time and don't want to pay the heating bills to have my own greenhouse 14:59:46 tpbsd: it's just that a lot of people stick an or an extra in my name 15:00:15 tabemann you're in my autotext thingie now :) 15:01:00 my client has autocomplete but no autotext 15:01:22 * tabemann wrote his client 15:01:26 tabemann so what happened, did your ancestors forget to pay the rent on the "r" in your name and it got repossessed ? 15:02:28 tpbsd: no, my ancestors were German and it never had one to begin with (but we really don't know where the name actually came from, because we can't find anyone who went on any boats leaving Germany with my name) 15:03:21 anyways 15:03:30 have you found any more thumb-2 info? 15:04:14 i havent looked because I dont do any machionecode 15:04:37 I only do assembly and for that I just add -mthumb 15:04:51 maybe I should just email matthias - do you have his emal? 15:04:53 *email 15:04:59 sure 15:08:50 m-atthias@users.sf.net 15:09:44 thats Matthias sourceforge mecrisp-stellaris email 15:11:49 thanks 15:19:13 okay, I emailed Matthias 15:22:18 he can sometimes take a while to reply 15:22:31 especially if hes doing a new release 15:22:49 he seems to go into seclusion while hes coding 15:23:16 --- join: jsoft joined #forth 15:28:53 back 15:37:58 okay, I just learned something I didn't know before 15:38:22 bl and blx are now 32-bit instructions with thumb-2 15:38:40 thumb is horrible 15:39:25 well I'm stuck dealing with it as I'm writing a Cortex-M SRT(/NCI?) Forth 15:40:24 FatalNIX_, it's not as horrible as PIC ? 15:40:30 fddddddddd]'z 15:40:49 cat 15:41:49 I've looked at PIC 15:41:56 PIC is like the worst architecture invented 15:42:00 yeah 15:42:00 (not PIC32 though) 15:42:07 agree 15:42:31 and the premier PIC Forth "flashforth" can only run from flash 15:42:58 true harvard architectures suck 15:43:05 but it's pretty good, makes programming pics a LOT easier 15:43:25 it was the first Forth I ever used 15:43:48 One of my biggest cripes about thumb, is how stupid the load store operations are 15:43:51 my first forth was ficl 15:44:22 I remember reading the article on Dr. Dobb's Journal about ficl 15:44:37 I have color forth on the coco 15:44:54 FatalNIX_, yeah it can be a pain 15:44:56 beats the crap out of the extended color basic 15:45:26 tpbsd: I'm used to using a 6502 for assembly 15:45:39 and it pisses me off when I can't just reference data at addresses in one instruction 15:45:52 FatalNIX_, then youd be used to stupid index register paging ? 15:46:35 FatalNIX_, thats why I never liked the 6502, I was spoilt by the 16 bit index register of the 6800 15:46:47 hehe 15:46:53 the coco I have is a 6809E 15:46:57 I never liked the 8-bit index registers of the 6502 15:46:58 which is a nice chip 15:46:59 when the 6502 came out with a 8 bit index register I was like WTF!!! 15:47:02 but the hardware of the coco 2 is awful 15:47:12 annd the memory map could be a lot better 15:48:03 I felt that perhaps MOS had run out of money and couldnt afford the extra 8 bits for a 16 bit index register in the 6502 15:48:18 the majority of the time applications with a 6502 you shouldnt' need 16 bit addressing, but it can be done without too much work 15:48:22 for indexing 15:48:38 but really, I shouldnt go on because the 6502 IS a legend, it spawned decades of awesome gear 15:48:46 :) 15:49:18 Especially if you write forth on it 15:49:24 because then you don't need to worry about it 15:49:25 my first computer had a 6502 in it 15:49:33 when I look at what Atari did with the 6502 with 'Asteroids' and "armor attack' in their commercial vector scan games I'm still blown away 15:51:12 okay, I need to do some shopping (need to get bags and stuff for gifts), will be back later 15:51:29 tabemann, mine had a Motorola MC14500B 1 bit cpu in it, I made the whole thing myself ... and it really sucked 15:51:47 bfn tabemann 15:52:08 FatalNIX_, yeah, Forth reallyt tames crappy mcus :) 15:53:34 FatalNIX_, I only use cortex-m these days with Forth so I don't have to worry too much about the stupid load store operations 15:54:10 bbl myself 15:55:48 --- quit: tabemann (Ping timeout: 268 seconds) 16:34:11 --- join: dave0 joined #forth 16:35:01 --- quit: dys (Ping timeout: 260 seconds) 16:49:04 --- join: tabemann joined #forth 16:58:54 --- join: smokeink joined #forth 17:23:09 --- quit: ryke (Ping timeout: 260 seconds) 17:26:18 --- join: ryke joined #forth 17:29:11 tp: oh, btw, I found the opcodes, finally 17:29:45 awesome! 17:30:25 --- quit: ryke (Ping timeout: 240 seconds) 17:30:32 the document had the opcodes split up from the instructions 17:30:43 cool 17:31:21 if you have a URL I can list it on my doc site ? 17:53:35 --- quit: tabemann (Ping timeout: 268 seconds) 18:10:21 --- quit: dave0 (Quit: dave's not here) 18:44:16 --- join: iyzsong joined #forth 18:57:22 --- nick: oxford -> cantstanya 19:01:25 --- quit: smokeink (Ping timeout: 268 seconds) 19:09:07 --- join: smokeink joined #forth 19:37:02 --- join: dave0 joined #forth 20:19:44 --- quit: smokeink (Ping timeout: 258 seconds) 20:26:49 --- join: tabemann joined #forth 20:33:13 http://class.ece.iastate.edu/cpre288/resources/docs/Thumb-2SupplementReferenceManual.pdf 20:46:30 --- join: gravicappa joined #forth 21:05:14 tabemann, thanks I'll list the url on my site 21:26:13 this document is exactly what i wanted 21:26:47 awesome, just takes a while to find ARM docs I guess 21:28:44 or maybe I just wasn't looking through all of the documents I was finding 21:29:44 there are a lot of docs tho, everyone complains at first 21:31:12 it took me many months to figure out why I was having problems with the systick because I just couldn't find any mention of it in the STM32 docs ... it's a ARM core peripheral, thats why 21:31:55 --- join: smokeink joined #forth 21:34:19 --- join: Croran joined #forth 21:46:39 the thing is 21:47:03 I don't know how to branch from RAM to flash easily 21:47:41 easy, one types "compiletoflash" or "compiletoram" ;-) 21:49:44 I mean, the distance is like 0x20000000 IIRC 21:50:03 which is longer than the distance permitted by BL 21:50:04 yeah 21:50:41 at least Thumb-2 permits cheap 32-bit literals 21:51:09 unlike the terribly expensive Thumb-2 literals 21:52:43 oh, I meant to mention, Matthias shaved about 30% of his rv32 binary going to compressed instructions. It was 28.8kB using 32 bit, and is now 18.8kB with compressed 22:06:00 yeah, you told me about that 22:07:01 my data was slightly incorrect then, I'm correcting that now 22:35:31 tabemann, : bl ( -- ) \ If range is too far for bl opcode, it will generate a blx r0 sequence. 22:35:31 token symbolwert call, 22:35:32 immediate inline ; \ This combination gives immediate-compileonly 22:36:37 okay, so they're just creating a literal and jumping to the register 22:37:07 if the range is too long 22:37:26 I stumbled across this by accident because it's causing me dramas by clashing with "bl" for "blank line" 22:38:03 the damn thumb-2 bl opcode by the way is confusing 22:38:51 I think I'll change all his core "bl" for "nl" 22:41:59 bl ( - - 32 ) ASCII for Space 22:42:04 oops I meant space 22:42:11 it should be named "sp" 22:43:13 okay, I'm gonna call it a night 22:43:25 g'night guys 22:47:20 --- quit: Croran (Remote host closed the connection) 22:56:57 --- quit: dddddd (Ping timeout: 265 seconds) 23:00:08 tabemann, cya 23:59:59 --- log: ended forth/19.12.21