2024-05-29 09:53:39 If anyone is interested, this appears to be the source code for the Canon Cat https://archive.org/download/CAT240SC 2024-05-29 10:01:36 Noice 2024-05-29 10:05:36 There seems to be a fair amount of M68K asm 2024-05-29 10:06:29 The oldest code at my company is all M68K stuff 2024-05-29 10:07:06 In K&R C 2024-05-29 10:08:07 i can code in m68k assembly :-) 2024-05-29 10:08:27 also i found the sas/c compiler for amiga on archive.org 2024-05-29 10:08:42 it comes with an assembler 2024-05-29 10:09:12 There's an M68K assembler in the Cat source code :P 2024-05-29 10:09:21 nice :-) 2024-05-29 10:09:38 i had a quick look ... it's a reverse polish assembler! 2024-05-29 10:10:37 I thought most Forth assemblers were RPN 2024-05-29 10:10:51 i've only used the sas/c c compiler on an amiga emulator, but it's possible that it works in 1/2 meg of memory off a floppy disk 2024-05-29 10:12:42 I actually can't code in M68K but I doubt it would take me long to learn 2024-05-29 10:13:16 veltas: it's comfortable 2024-05-29 10:13:59 https://ia801308.us.archive.org/23/items/CatForthInside/Cat%20Forth%20Inside.txt 2024-05-29 10:14:59 veltas: there are 8 data registers that you can do arithmetic on, and 8 address registers that you can use as pointers, and a generous amount of addressing modes 2024-05-29 10:15:59 Yeah I just looked at the wikipedia page 2024-05-29 10:16:13 I can guess what 90% of the mnemonics mean already from other archs 2024-05-29 10:16:15 veltas: also it's big endian 2024-05-29 10:16:17 Very conventional 2024-05-29 10:16:28 Yeah reminds me of PPC 2024-05-29 10:16:39 Big endian sucks but I can live with it :) 2024-05-29 10:16:48 Controversial moment lol 2024-05-29 10:17:21 veltas: one more thing is the assembly language is , which is backwards from x86 and arm 2024-05-29 10:17:51 big endian and src,dest order is probably the hardest to un-learn when switching from x86 2024-05-29 10:18:11 just beause it's probably in your muscle memory 2024-05-29 10:18:27 I've done plenty of PPC so I can handle other endianness 2024-05-29 10:18:32 And it usually doesn't matter anyway 2024-05-29 10:18:42 Does it have IBM bit order? 2024-05-29 10:18:55 I.e. 0 is most significant bit 2024-05-29 10:20:41 Looks like it uses normal bit order 2024-05-29 10:20:43 This is good 2024-05-29 10:20:48 IBM bit order sucks 2024-05-29 10:20:57 veltas: for bit instructions 0 is least significant, but for bit field 0 is most significant (bit is 68000 BSET BCLR BCHG BTST bit set/clear/change/test) and field is 68020 2024-05-29 10:21:32 hmm 2024-05-29 10:21:39 Oh dear 2024-05-29 10:21:43 so it's inconsisent between 68000 and 68020 2024-05-29 10:21:48 Many such cases :P 2024-05-29 10:21:54 :-/ 2024-05-29 10:22:12 oh and it enforces alignment 2024-05-29 10:22:19 But you get what you're given, it was one of the early big 32-bit archs 2024-05-29 10:22:28 I would have been quite happy with it back in the day 2024-05-29 10:22:32 16bit and 32bit fetches must be on even addresses and code has to be even too 2024-05-29 10:22:35 Ah poor 68k 2024-05-29 10:22:43 veltas: it was real nice to program 2024-05-29 10:23:02 olle: i have fond memories :-) 2024-05-29 10:23:20 flat address space 2024-05-29 10:23:37 completely steam rolled by intel 2024-05-29 10:23:43 Yep 2024-05-29 10:23:47 Aligned access is faster on all modern archs anyway 2024-05-29 10:23:51 So we're all doing aligned now anyway 2024-05-29 10:28:11 Was it smart to abandon 68k for PPC tho? 2024-05-29 10:28:20 Even Apple had to abandon PPC in the end anyway. 2024-05-29 10:28:38 And now they might abandon x86 for ARM, which is kewl. 2024-05-29 10:30:42 i think apple spent a lot of time and money going through each different cpu 2024-05-29 10:30:51 maybe linux has an advantage of being portable to everything 2024-05-29 10:31:17 i keep reading that windows NT is portable .. in particular alpha cpu's .. but is it really true? 2024-05-29 10:31:28 Apple is based on Darwin OS now, which is a *nix 2024-05-29 10:31:33 It was in the 90s, not sure about now 2024-05-29 10:32:27 Windows NT targeted a lot of the platforms that were about in the 90s like MIPS and Sparc 2024-05-29 10:32:36 Most of them no longer exist :/ 2024-05-29 10:33:04 Huh, maybe not Sparc 2024-05-29 10:33:24 "Multi-architecture support — initially instruction set architectures including IA-32, MIPS, and DEC Alpha; support for PowerPC, Itanium, x64, and ARM were added later and later still: x86 (including IA-32 and x64) and ARM" https://en.wikipedia.org/wiki/Windows_NT 2024-05-29 10:33:51 Ah, Sparc was planned but never released 2024-05-29 14:56:21 I'm not 100% sure, but I do think MacOS is still BSD based. I'd be surprised if they've completely replaced all that. 2024-05-29 14:57:40 Sparc had a nice little day in the sun. 2024-05-29 14:57:48 For a little while in there it looked like they might take over. 2024-05-29 14:58:10 All of that history is very interesting. 2024-05-29 14:58:30 You can waste a lot of Saturday afternoons delving into it on YouTube. 2024-05-29 15:00:06 KipIngram: Yea Darwin OS is a BSD fork IIRC 2024-05-29 15:00:17 But might be more Frankenstein that that :) 2024-05-29 16:31:06 there were Forths that implemented particular words to intend events? e.g. if i do `: __on_mouse_click "hello!" . ;` here i'm defining a word that is called every time i move the mouse 2024-05-29 16:33:14 I've done Forths with things like that 2024-05-29 16:47:47 Oh, I've no doubt it's Frankensteined. 2024-05-29 16:48:27 rendar: That's getting into an area that's not "standardized," so you see various approaches out there, I expect. 2024-05-29 16:48:44 I think I'll have an event loop of that sort in my next system. 2024-05-29 16:49:03 If you ever want to have anything like a standard graphical interface then you need that kind of thing in some form. 2024-05-29 16:49:59 You can "describe" regular Forth in that model - QUERY is sort of like "on Enter, give me a string." And in the meantime it just "manages the keyboard and display." 2024-05-29 16:50:21 Since that's the only interesting thing that can then happen, you don't need to have a list of things to wait for. 2024-05-29 16:50:53 To wait for any of a set of events that have unknown sequence you need something more general. 2024-05-29 16:54:11 Darwin has a userland originally derived from FreeBSD, but (most of) the kernel is definitely not from BSD. 2024-05-29 16:58:40 Because it's been re-written, or because it originated elsewhere? 2024-05-29 16:58:49 it originated in Mach 2024-05-29 17:00:29 (they also pulled in random bits from OpenBSD, judging by the CVS ID tags in various files) 2024-05-29 19:36:22 KipIngram, i see, thanks for your wise advice 2024-05-29 20:00:54 rendar: :noname ." hello" cr ; when mouse_click ( define when accordingly) 2024-05-29 20:01:40 interesting 2024-05-29 20:01:53 but how you'd define `when` there? 2024-05-29 20:02:48 : when ( xt ccc) word ( now look up some memory location by string and store xt to it using !) ; 2024-05-29 20:03:33 if you want to take the magic out of it, then just :noname ." hello" cr ; on-mouse-click ! 2024-05-29 20:03:55 on-mouse-click is a variable 2024-05-29 20:10:52 rendar: from one of my test systems, http://forth.works/share/DTYLCV9QCo.txt 2024-05-29 20:14:38 cool, crc 2024-05-29 20:14:40 thanks all 2024-05-29 20:16:11 (in mine, the mouse actions cause the vm to trigger interrupts 2024-05-29 20:16:43 the code sets a few words to handle these (default handler is just a non-operation) 2024-05-29 20:23:30 Do you any have recordings demoing graphical retro programs out there? 2024-05-29 20:23:55 I mean graphical interactive programs 2024-05-29 20:33:26 I haven't recorded anything graphical yet. I can do so the next time I'm running the X11 or SDL stuff. 2024-05-29 20:41:27 I don't really have a lot of graphical things to show though. Arland & I have been experimenting with small things on and off (mandelbrot viewer, a small "paint" application, some simple drawings), but we've not yet started anything bigger 2024-05-29 20:47:33 mandelbrot sets are pretty big 2024-05-29 21:20:53 crc: I would be interested