00:00:00 --- log: started forth/20.10.07 00:17:35 --- quit: zolk3ri (Remote host closed the connection) 00:21:13 --- join: proteus-guy joined #forth 00:21:16 --- join: proteus-person joined #forth 00:32:24 --- join: gravicappa joined #forth 00:50:04 --- quit: WickedShell (Remote host closed the connection) 02:30:43 --- quit: reepca (Read error: Connection reset by peer) 02:33:10 --- join: reepca joined #forth 03:39:25 --- quit: _whitelogger (Remote host closed the connection) 03:42:25 --- join: _whitelogger joined #forth 04:08:40 --- join: f-a joined #forth 04:33:38 --- quit: proteus-person (Remote host closed the connection) 04:33:39 --- quit: proteus-guy (Remote host closed the connection) 05:17:43 --- join: dave0 joined #forth 05:34:16 --- quit: Blue_flame (Quit: killed) 05:34:24 --- quit: siraben (Quit: killed) 05:34:37 --- quit: jimt[m] (Quit: killed) 05:40:08 --- join: siraben joined #forth 05:48:09 --- join: jimt[m] joined #forth 05:48:09 --- join: Blue_flame joined #forth 06:04:21 --- quit: f-a (*.net *.split) 06:04:21 --- quit: reepca (*.net *.split) 06:04:21 --- quit: tolja (*.net *.split) 06:04:36 --- join: reepca joined #forth 06:05:33 --- join: f-a joined #forth 06:08:11 --- quit: f-a (Client Quit) 06:09:43 --- join: tolja joined #forth 06:19:05 --- quit: dave0 (Quit: dave's not here) 07:17:11 --- quit: jsoft (Ping timeout: 260 seconds) 07:25:24 --- join: f-a joined #forth 07:43:50 siraben chuck moore says that forth is "the" software engineeering solution. I have been doing realtime embedded control development professionally for 30 years. I have never seen any product that would not have been better had it been coded in forth 07:44:14 literally 100% of the non forth products I have worked on would have been better done in forth 07:44:39 mark4: That's an interesting perspective. It makes sense for embedded control more I suppose, I would certainly not use Forth for many projects I do. 07:44:56 such as? 07:54:13 mark4: compilers for functional languages, projects that have to interact with GraphQL, React, type checking algorithms, etc. 07:55:15 i think forth COULD be used for all of the above, forth is not just a programming language its a programming language designed to create domain specific programming languages 07:55:35 so creating a functional language in forth would be included in that :( 07:55:40 Yes, but you should give it a try. It's extraordinarily difficult to do so without a type system. 07:56:46 siraben: I wonder how difficult it is to implement a type system 07:56:54 I know the barebones of haskell implementation 07:56:58 who says you cant build a type system into forth in fact one of the things i want to do with my forth COULD (i wont) be used to make a data types system :) 07:57:24 f-a: Not at all, start with simply-typed lambda calculus. Then adding polymorphism isn't hard (HM works well), and you're already at the level of ML-style languages. 07:57:45 data types are compile time things. specifying a TYPE could simply be a matter of knowing your creating word 07:57:53 You could go forward with subtyping, records, recursive types, etc. 07:57:56 mark4: Sure, hehe. 07:58:05 for exampe : integer create , ;uses do-integer ; 07:58:14 ok 07:58:20 no need to parse strings to determin type 07:58:38 the CFA of the word itself could be the type ID 07:58:43 f-a: http://davidchristiansen.dk/tutorials/bidirectional.pdf 07:58:53 its the processig of data types at compile time that would need to be implemented 07:59:32 data type checking has no purpose other than at compile time. run time does not need it 07:59:35 f-a: The easiest way is probably to learn how to read typing rules expressed in a bidirectional style then encode it as a program 08:01:26 thanks 08:02:13 Netsplitting? 08:03:22 is it happening? 08:03:39 can’t see from here (which might means I am on the wrong side of the netsplit) 08:04:36 From the matrix bridge it's happening, heh 08:05:09 mark4: yeah you could do in theory GraphQL + Forth, but in terms of development time not the best use when there are TS or JS bindings 08:05:33 The same problems plague Lisps IMO 08:14:27 interesting article 08:15:00 I have never heard of bidirectional rules 08:15:27 siraben, my current project at work would be awesome in forht but it would either need an FFI to interface with a CANBUS library or that library would need to be reimplemented in forth 08:15:31 both doable 08:15:46 one "slightly" more trivial a solution than the other :) 08:15:50 f-a: have you used a functional language before? 08:16:10 siraben: my language of choice (and the only one I know good enough) is Haskell 08:16:22 f-a: oh great, I use Haskell as well 08:16:37 I even wrote a small game with it 08:16:46 f-a: read this then https://crypto.stanford.edu/~blynn/lambda/pcf.html 08:16:57 oops I mean, https://crypto.stanford.edu/~blynn/lambda/hm.html 08:17:00 http://www.ariis.it/static/articles/venzone/page.html 08:17:03 well from the same series, it's a great series 08:17:05 mark4: I see 08:17:07 thanks 08:17:16 now I am looking for a project I can do in Forth 08:18:00 i think doing a complete can bus in forth would be VERY doabl. I just need a complete description of the protocol, preferably in BNF :) 08:18:00 f-a: definitely doing something on an embedded system would be fun 08:18:08 for me it was implementing Forth on the TI-84+ calculators 08:18:27 didn’t TI calc come with forth? 08:18:32 or was it rev. polish notation? 08:18:37 -rev. 08:18:43 (never owned one) 08:19:54 f-a: nope and nope 08:19:56 algebraic input 08:20:00 excellent 08:20:15 f-a: you can try it in an emulator online https://www.cemetech.net/projects/jstified/ 08:20:35 i can't link the ROM here but a quick web search for TI-84+ ROM reveals it 08:20:59 f-a: https://github.com/siraben/zkeme80/blob/master/src/bootstrap-flash1.fs 08:21:11 the README shows the GIF of the menu screen, written in Forth 08:21:15 I have no idee where you started from 08:21:24 what do you mean? 08:21:50 the calculator itself is not programmable, right? 08:22:06 It is. 08:22:10 oh 08:22:15 Either with TI-BASIC or Z80 assembly 08:22:21 ohhhh 08:22:25 there's a huge community that peaked around the early 2000s 08:22:27 interesting choice 08:22:47 https://www.ticalc.org/pub/83plus/asm/programs/ 08:23:10 yeah, it's still used a lot in high schools and universities at least in the US education system (where TI has a big monopoly) 08:23:19 I think Europe has a greater share of Casio 08:23:46 yeah I am Italian 08:23:56 and yes much more casio here 08:24:01 Right. 08:24:02 TI was seen as specialised tool 08:24:18 I do not think Casio allowed it (programming) 08:24:30 TI is insanely overpriced for 80s-era hardware, such is what happens when you let monopolies take over, sigh. 08:24:37 Maybe there's a programmable Casio calculator. 08:26:22 TI documentation is also scatterbrained for their peripherals 08:26:38 you need to RTFM the ENTIRE peripheral pdf then the ENTIRE pdf for the specific peripheral 08:27:09 and for the uarts there is one UTTERLY UNRELATED pdf that tells you that if you dont set bit X in SFR Y your uart wont work 08:27:24 The only documentation I read wrt. TI hardware is the ones written by the reverse engineering community, pretty much. 08:27:29 NO linkage between any of the documents referencing what you need to read to get ANYTHING to work 08:28:05 i lost a job because after a month of fighting with the uarts i could not get them to tx or rx reliably 08:28:09 Hah 08:28:30 then the day my boss fired me he came in and said "I found it!!!! you have to set the FOO bit in the FUDGE register!!!" 08:28:33 "btw your fired" 08:28:34 lol 08:28:37 not exactly that but close 08:33:52 mark4: example docs; https://wikiti.brandonw.net/index.php?title=Category:83Plus:BCALLs:By_Address 08:34:17 --- quit: f-a (Read error: Connection reset by peer) 08:34:22 --- join: f-a_ joined #forth 08:34:52 reverse engineering TI calculators? :) 08:36:26 yeah, for the BCALLs they had an application that would check which ports changed values after the BCALL was called, good times 08:36:47 i considered reverse engineering the entire ROM at some point, but it looked like a lot of work lol 08:37:03 --- quit: f-a_ (Client Quit) 08:37:12 (also illegal, 😠) 08:37:17 --- join: f-a joined #forth 08:57:41 how is it illegal 08:58:02 what country are you in? 08:59:59 it's illegal no matter where you are, TI has copyright over the ROM 09:00:13 I could modify but not share my modified versions with others. 09:04:32 you can share the patch 09:06:41 cmtptr: how do I share the patch without giving away the ROM? 09:06:48 some sort of bindiff? 09:08:32 --- quit: f-a (Quit: leaving) 09:09:19 --- join: f-a joined #forth 09:56:54 yeah 09:57:02 this is how people distribute snes rom hacks 09:57:11 and other stuff 09:58:15 i mean if you were ever going to edit the rom, presumably you'd have some way of modifying it 09:58:25 you just distribute the recipe for modifying it 10:19:18 --- join: WickedShell joined #forth 10:35:59 there is NO valid law against reverse engineering 10:36:03 no enforcable 10:36:26 you copyright your encryption key i can still make a t-shirt with that encryption key on it 10:36:34 oh they did that with the DVD encryption key already! 10:36:35 yay 10:37:18 I can write a program that takes YOUR ROM as data and pukes out a complete, commented, synbolic disassembly of the entire thing 10:37:25 and im protected by the 1st amendment 10:37:41 im not distriuting the rom itself 10:39:32 if the law could protect me from you reverse engineering my code i could write a virus and sue the anti virus companies for reverse engineering it :PO 10:39:34 lol 10:39:45 if only I knew how to write one :/ 10:49:44 it's crossed my mind tbh just for the entertainment and enlightening experience i'd get out of it 10:49:58 but i wouldn't know where to start without showing up on a list somewhere 10:50:04 first admendment is not a defense for copyright infringment 10:50:06 and never to distribute, of course 10:50:06 amendment* 10:50:16 reverse engineering is not copyright infringement 10:50:27 I am not a lawyer, so refer to internet 10:50:46 i am the internet! 11:00:07 --- quit: f-a (Quit: leaving) 11:06:04 --- join: f-a joined #forth 11:15:17 --- quit: f-a (Quit: leaving) 11:21:47 --- quit: gravicappa (Ping timeout: 240 seconds) 11:22:39 --- join: gravicappa joined #forth 11:30:11 --- quit: bluekelp (Quit: leaving) 11:54:50 --- join: bluekelp joined #forth 12:17:34 --- join: f-a joined #forth 12:25:40 --- quit: cheers- (Quit: cheers-) 12:27:54 --- join: cheers joined #forth 12:36:05 --- quit: gravicappa (Ping timeout: 246 seconds) 13:15:49 --- join: dave0 joined #forth 13:57:21 --- quit: sts-q (Quit: ) 14:06:59 --- join: X-Scale` joined #forth 14:08:55 --- quit: X-Scale (Ping timeout: 260 seconds) 14:08:56 --- nick: X-Scale` -> X-Scale 14:16:46 --- join: Zarutian_HTC joined #forth 14:34:22 --- quit: f-a (Quit: leaving) 15:06:27 --- quit: phadthai (Ping timeout: 240 seconds) 15:07:07 --- quit: WilhelmVonWeiner (Ping timeout: 240 seconds) 15:07:33 --- join: phadthai joined #forth 15:08:08 --- join: WilhelmVonWeiner joined #forth 15:08:33 --- nick: WilhelmVonWeiner -> Guest19493 15:09:27 --- quit: X-Scale (Ping timeout: 240 seconds) 15:09:28 --- join: X-Scale` joined #forth 15:10:00 --- nick: X-Scale` -> X-Scale 15:32:49 --- quit: tolja (Ping timeout: 240 seconds) 15:46:38 --- join: tolja joined #forth 16:28:33 --- nick: jedb_ -> jedb 17:16:27 --- quit: dave0 (Quit: dave's not here) 17:55:25 how to call a system call? 17:59:14 do I need to use c-function? I wanna avoid it 18:01:38 http://soton.mpeforth.com/flag/jfar/vol3/no2/report4.pdf heh it has SYSCALL _read but honestly no clue... it does seeem to avoid C which is neat 18:07:22 --- quit: Zarutian_HTC (Ping timeout: 272 seconds) 18:09:56 --- join: Zarutian_HTC joined #forth 18:19:53 --- quit: WickedShell (Remote host closed the connection) 18:39:26 --- join: boru` joined #forth 18:39:29 --- quit: boru (Disconnected by services) 18:39:31 --- nick: boru` -> boru 18:44:27 --- quit: boru (Ping timeout: 240 seconds) 18:44:29 siraben, ya casio has some really impressive programmables 18:44:38 calculators that is 18:45:19 I still have my Casio AFX 2.0+ from 2002 or so which has an x86 compatible V20 and ROM DOS 18:45:43 you could write DOS programs in Turbo C 2.0 and upload them to the calculator :) 18:46:07 --- join: boru joined #forth 18:46:14 later ones had a 29mhz iirc 32 bit CPU. SH3 maybe. very good for C 19:40:10 --- quit: _whitelogger (Remote host closed the connection) 19:43:12 --- join: _whitelogger joined #forth 19:49:05 https://www.complang.tuwien.ac.at/forth/gforth/Docs-html/Constants.html 19:49:11 3E+08 fconstant SPEED-O-LIGHT 19:49:28 SPEED-O-LIGHT seems empty, returns nothing 19:49:38 constant works tho 19:52:48 aaa 19:52:49 I gotit 19:53:17 didnt know about f, 19:53:19 f. 20:18:27 --- join: boru` joined #forth 20:18:29 --- quit: boru (Disconnected by services) 20:18:32 --- nick: boru` -> boru 20:25:00 --- join: jsoft joined #forth 20:45:05 --- join: gravicappa joined #forth 20:45:22 --- quit: jsoft (Quit: Leaving) 20:55:15 --- join: sts-q joined #forth 21:03:44 --- join: Zarutian_HTC1 joined #forth 21:04:26 --- quit: Zarutian_HTC (Read error: Connection reset by peer) 21:19:29 --- quit: sts-q (Quit: ) 21:20:03 --- join: sts-q joined #forth 21:29:58 --- quit: mark4 (Ping timeout: 256 seconds) 21:31:26 siraben, copying ROMs is likely a copyright violation but reverse engineering is not. If you don't clean room your reverse engineering you have a potential liability for patent violations but that's highly unlikely for a ROM. 21:32:08 Makes sense. Is it a violation to distribute the reverse engineered code (e.g. disassembled to asm)? 21:32:59 siraben, the first amendment actually was a defense for violation of laws making getting around copy protection declared unconstitutional. That's a bit different than normal copyright claims however. 21:35:41 siraben, regarding disassembled code - it depends. If the code is clearly the same as the original asm code then you've likely got a violation. The bigger issue will likely be the creation of the binary and how similar it is to the original. It is not a copyright violation to express the same content in a different manner. That's called a new er... I'm forgetting the legal term right now.. but it's a new expression of the idea 21:35:41 which is generally permitted. 21:36:02 proteusguy: "derived work"? 21:36:06 There are lots of issues of fair use that come into being which are allowed. 21:37:13 Well it would be an issue as to whether or not it's considered a derived work that would determine if it's a violation. Most derived works are not allowed. So no, it needs to be a new expression of the work that is not considered whole derived. 21:37:20 Yeah. A similar situation is happening with binary patches for the reMarkable tablet, https://github.com/ddvk/remarkable-hacks , the developer contacted the company and is not allowed to even disclose how they performed the patches. 21:38:21 So basically for a ROM, if you can its API definition (locations in memory where key functions exist) and copy those but then create an implementation of your own, you will not likely be in violation of copyright and it would not be a derived work. 21:38:33 If you just disassemble and reassemble then you're likely in violation. 21:39:09 I see. So a BCALL compatible rewrite of TI-OS would be legal 21:39:34 siraben, for reMarkable - that's a EULA violation which is a contract between the user and the company - not a copyright issue. Whether the EULA is enforceable is another issue entirely. 21:39:57 siraben, yes re:TI-OS. Would be extremely difficult to stop. 21:40:05 Ah I see 21:40:42 In fact TI did release the API listing of their OS (now removed) to encourage ASM development. 21:41:46 There's some discussion on the reMarkable community about replacing the main application (xochitl) entirely with an open source one 21:42:00 I'm pondering to write a Forth to run on the tablet, heh 22:43:44 --- join: jedb_ joined #forth 22:46:08 --- join: jedb__ joined #forth 22:46:24 --- quit: jedb (Ping timeout: 256 seconds) 22:48:10 --- quit: gravicappa (Ping timeout: 256 seconds) 22:48:27 --- quit: jedb_ (Ping timeout: 240 seconds) 22:53:09 --- quit: Zarutian_HTC1 (Remote host closed the connection) 23:35:51 --- quit: siraben (Quit: killed) 23:35:54 --- quit: jimt[m] (Quit: killed) 23:36:02 --- quit: Blue_flame (Quit: killed) 23:38:38 --- quit: sts-q (Ping timeout: 246 seconds) 23:41:23 --- join: siraben joined #forth 23:46:51 --- quit: proteusguy (Remote host closed the connection) 23:49:05 --- join: jimt[m] joined #forth 23:49:05 --- join: Blue_flame joined #forth 23:49:16 --- join: proteusguy joined #forth 23:49:16 --- mode: ChanServ set +v proteusguy 23:49:49 siraben, that would be cool! 23:59:59 --- log: ended forth/20.10.07