2023-06-10 04:55:53 veltas: this is a very good document on the z80! http://www.z80.info/zip/z80-documented.pdf 2023-06-10 10:38:49 I've still got a Z80 book up on my bookshelf, I believe. I'm kind of a packrat when it comes to books. 2023-06-10 10:49:10 I have a Z3 pdf somewhere. not sure what happend to Z4..Z79 2023-06-10 10:50:22 So just to be sure I've got this right. In that map example we were talking about yesterday, that I wrote as <[ 1 2 3 ]> <{ 1 + }> , <{ would just compile a jump and leave the address of the distance field of that jump on the stack, and then }> would compile a return and fix up that distance field to make the jump land just past that return, right? 2023-06-10 10:51:07 And <{ would compile, just before the jump, a runtime word that would push an xt for that little section of code onto the stack. 2023-06-10 10:54:02 So we wind up with 2023-06-10 10:54:50 | ... ret || 2023-06-10 10:55:05 so the xt pushed is for | and the target is set to || ? 2023-06-10 10:55:42 And that xt pushing runtime is really just (lit) with a proper value. 2023-06-10 11:01:12 I'm debating whether or not I actually want to bother with that. It's appealing from a "just because I can" perspective, but in practice I'd be very likely to factor that right out into its own word to shorten my definitions, so I'd wind up not using it. 2023-06-10 11:01:39 Just as I use my conditional returns to factor the code that would otherwise be in IF ... THEN sections. 2023-06-10 11:03:34 If I didn't want that name in the dictionary I'd define it with .: 2023-06-10 11:10:10 I'm thinking maybe instead of having both append and overwrite options on that "paste into block" stuff, I may keep just append, and if I want to overwrite I do that by erasing first, with block off. 2023-06-10 11:10:26 So block< will always append. 2023-06-10 11:10:34 Less chance of fouling up that way. 2023-06-10 12:06:56 Ok, I finally wound up with this: 2023-06-10 12:06:59 https://pastebin.com/e9nH2qqL 2023-06-10 12:07:38 Gives me two words, ram< and block<. Using ctrl-z to terminate instead of escape, so I could type escape sequences directly into RAM if I want to. 2023-06-10 12:08:17 Uses a double return to finish up. 2023-06-10 12:26:07 So, the way I'm set up, I can key zero with ctrl-space, and ctrl-a through ctrl-z keys 1-26, except for ctrl-v which I have set for pasting in my terminal emulator. Then ctrl-[ or esc gets 27, ctrl-] gets 29, and ctrl-\ gets 28. Anyone know of things that give 30 and/or 31? 2023-06-10 13:14:17 control-@ is typical for '\0', following the columns in the ASCII manual 2023-06-10 13:20:27 KipIngram: did not read the backlog, so i don't know which environment you're talking about; classically Ctrl might be understood as either anding or xoring, with which 32 would then not be possible, as it'd "and" for keeping the lowest 5 bits. anyway, try Ctrl-_ for 31. 2023-06-10 13:20:54 (and C- is not an "escape" sequence) 2023-06-10 13:21:01 (not a "sequence but a single character) 2023-06-10 14:00:27 ctrl-_ is indeed 31. Thanks. 2023-06-10 14:00:58 It's a Fedora 36 environment, using terminator as my terminal app. 2023-06-10 14:01:05 it's not so easy 2023-06-10 14:01:24 I can switch psate back to shift-ctrl-v instead of ctrl-v if I want that one back enough. 2023-06-10 14:01:29 there's several layers between keyboard and application running in the terminal, and even those can be configured 2023-06-10 14:01:50 I don't have any immediate need for this, but it would just be kind of cool to know I could produce all 128 bytes from the keyboard. 2023-06-10 14:01:52 so while "in theory" C-_ *is* ASCII character 31 it does not necesarily have to be that in a given setup. 2023-06-10 14:02:10 It is in this one, though. 2023-06-10 14:02:14 yup 2023-06-10 14:02:21 "just saying" 2023-06-10 14:02:21 :) 2023-06-10 14:02:25 Did you mention 30 at all? 2023-06-10 14:02:36 Yeah - I don't fret a whole lot over portability. :-) 2023-06-10 14:03:00 ah right, 30 2023-06-10 14:03:02 C-^ 2023-06-10 14:03:20 Perfect - thanks again. 2023-06-10 14:03:23 :) 2023-06-10 14:03:57 Now if I can come up with some streamlined way to toggle that high bit (maybe after the byte's already in RAM), I'll be able to type in arbitrary stuff. 2023-06-10 14:05:10 (this is easy if you `man ascii` and then follow G to bel and then you can figure out the rest of the control keys) 2023-06-10 14:05:19 The 8th bit? IIRC that's what the meta key once was, but i'm not sre. 2023-06-10 14:05:20 sure. 2023-06-10 14:05:39 Keep in mind, please, that you're talking about terminal contexts, and in these text and character encodings matter 2023-06-10 14:06:14 simplest way might just be to configure the keyboard in your linux environment to allow for entering arbitrary values. 2023-06-10 14:06:27 like a modifier key and a byte value or stuff like that. 2023-06-10 14:06:51 Yeah, could be. 2023-06-10 14:06:56 it's not really an actual problem you have, right, it's just something that you think is cool? perhaps ... re-evaluate your life choices. :) just saying. :p 2023-06-10 14:07:18 And I can't really use this to type ANYTHING, because I am using ^Z to terminate entry. 2023-06-10 14:07:26 So that one's unavailable. 2023-06-10 14:07:59 to terminate entry? 2023-06-10 14:07:59 And I'm detecting 13 and changing it to 10, because that's what I need in order to have pastes from vim wind up right in my blocks. 2023-06-10 14:08:08 what does that mean? 2023-06-10 14:08:45 I wrote a snip of Forth yesterday and today that will let me get from the keyboard or paste buffer into my source code blocks. 2023-06-10 14:09:06 That was the original purpose at least - to be able to copy source code I wrote in vim and paste it into my system. 2023-06-10 14:09:34 In a way that saves it somewhere instead of immediately executing it. 2023-06-10 14:09:48 So that I can then edit it within the system with my block editor. 2023-06-10 14:09:55 Or LOAD it or whatever. 2023-06-10 14:50:26 The whole "every value" thing was just a side excursion. 2023-06-10 16:04:08 So I was just thinking about parallelizing matrix operations. 2023-06-10 16:04:29 I think something to try would be to store the matrix by columns, and divide responsibility for the columns up among your cores. 2023-06-10 16:05:26 The each core would get its columns into its cache, and if done right they wouldn't interfere wit one another. Use a CSP type of thing to dispatch each row operation to the worker pool; wait till they all finished their share of the work, move on to the next operation. 2023-06-10 16:05:37 Of course I know GPU is the real way to do that. 2023-06-10 17:25:54 So the way my system works is that if a run-time error like a bad memory reference, divide by zero, etc. occurs (generally speaking things that would normally segfault), my error handler catches it and returns control to the interpreter. 2023-06-10 17:26:41 But I guess I only want that for the "root" task that's launched at startup, right? If a thread I launch later encounters such an issue, I should just kill it, I'd think? Unless I've provided some sort of "exception handler"? 2023-06-10 17:36:44 I think that means I have a user variable that holds the xt for the error recovery "exit strategy." 2023-06-10 17:36:56 Default when a task is created will be a "suicide" word. 2023-06-10 17:38:09 sepuku! harakiri! 2023-06-10 17:39:54 Heh. I thought of the harakiri name, but I'd forgotten sepuku. 2023-06-10 17:40:04 Probably ought to rerad Shogun again. :-) 2023-06-10 17:40:11 Been... a long long time. 2023-06-10 17:40:54 sepuku onerror ! 2023-06-10 17:41:15 having five rings would be a nice musashi reference 2023-06-10 17:41:28 You're beyond me now. 2023-06-10 17:44:07 I think if a thread goes that route, I'll not immediately deallocate it's space - I'll put a reference on some list so I can find it and inspect it if I want to, and then if it's still around later then deallocate it. 2023-06-10 17:44:35 Window of opportunity to take a look at it, but still not a "requirement" to manually do anything with it. 2023-06-10 17:45:12 Might be interesting to look at the call sequence that led up to the failure. 2023-06-10 23:00:10 http://web.archive.org/web/20030710020735/http://4th.allthingsgo.biz/~sye/BOOST.pdf