←2023-08-21 2023-08-22 2023-08-23→ ↑2023 ↑all
00:48:46 <esolangs> [[Automod-D]] M https://esolangs.org/w/index.php?diff=114062&oldid=112648 * CreeperBomb * (+231) Categories
00:58:24 -!- CreeperBomb has joined.
01:05:21 -!- imode has changed nick to Wryl.
01:06:12 -!- sprout has quit (Ping timeout: 245 seconds).
01:06:29 -!- Wryl has quit (Quit: Updating details, brb).
01:06:39 -!- Wryl has joined.
01:09:22 -!- CreeperBomb has quit (Quit: Client closed).
01:12:18 -!- razetime has joined.
01:18:16 -!- CreeperBomb has joined.
01:40:16 -!- CreeperBomb has quit (Quit: Client closed).
01:42:52 <esolangs> [[Mic]] M https://esolangs.org/w/index.php?diff=114063&oldid=114019 * D * (-210)
02:16:14 -!- razetime has quit (Ping timeout: 256 seconds).
02:16:30 -!- sprout has joined.
02:17:00 -!- razetime has joined.
02:34:06 -!- zzo38 has joined.
02:34:55 <zzo38> Why do I sometimes receive HTTP requests on the SMTP server?
02:41:03 <esolangs> [[Special:Log/newusers]] create * Quito0567 * New user account
02:46:34 <esolangs> [[Esolang:Introduce yourself]] https://esolangs.org/w/index.php?diff=114064&oldid=113816 * Quito0567 * (+199) Added my introduction :D
03:05:16 -!- razetime has quit (Ping timeout: 248 seconds).
04:00:44 <sprock> I don't run a SMTP server, but I've had that happen on a number of non-HTTP ports, even when they aren't (to my knowledge) advertised anywhere crawlable. I assume someone is scanning for open ports and trying them, but idk who or why
04:01:15 <sprock> It is weird that they aren't excluding well-known ports, though
04:03:05 <esolangs> [[AmogusScript]] N https://esolangs.org/w/index.php?oldid=114065 * Quito0567 * (+949) Created page with "'''AmogusScript''' is a very sussy esolang, invented on August 21, 2023 by [[User:Quito0567]]. == Commands == The commands in AmogusScript are based on features in or slang terms about the game Among Us. <br> To create a variable, simply type the variable name fo
04:03:57 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114066&oldid=114065 * Quito0567 * (+42)
04:25:08 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=114067&oldid=114041 * Quito0567 * (+19)
04:26:22 <esolangs> [[User:Quito0567]] N https://esolangs.org/w/index.php?oldid=114068 * Quito0567 * (+30) Created page with "Hi, I made [[AmogusScript]] :D"
05:33:10 -!- bgs has joined.
05:35:30 <esolangs> [[AmogusScript]] M https://esolangs.org/w/index.php?diff=114069&oldid=114066 * PythonshellDebugwindow * (+46) Categories
06:11:06 <Sgeo> What is "recomplementation", in the context of two's complement not having it being a benefit of two's complement?
06:11:32 <Sgeo> "Sign representations. For the fixed-point arithmetic
06:11:32 <Sgeo> system, which is binary, the two’s complement representation for negative numbers was selected. The well-known
06:11:32 <Sgeo> virtues of this system are the unique representation
06:11:32 <Sgeo> of zero and the absence of recomplementation"
06:11:35 <Sgeo> https://www.ece.ucdavis.edu/~vojin/CLASSES/EEC272/S2005/Papers/IBM360-Amdahl_april64.pdf
06:14:09 <Sgeo> (I'm actually reading from http://people.eecs.berkeley.edu/~kubitron/courses/cs252/handouts/papers/amdahl64.pdf but it's not OCRed)
06:56:20 -!- tromp has joined.
07:38:20 -!- bgs has quit (Remote host closed the connection).
07:46:11 -!- Sgeo has quit (Read error: Connection reset by peer).
08:06:03 <esolangs> [[Mic]] M https://esolangs.org/w/index.php?diff=114070&oldid=114063 * D * (+91)
08:07:51 <esolangs> [[Mic]] M https://esolangs.org/w/index.php?diff=114071&oldid=114070 * D * (+25)
08:08:06 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
08:16:21 <fizzie> Sgeo (for later): https://www.computinghistory.org.uk/downloads/40558 mentions "recomplementation" in more detail. I think it's talking about the fact that you can implement subtraction by just taking the complement of the subtrahend and adding it to the minuend, and get the correct result. For ones' complement, you sometimes need to do an extra complement step ("recomplementation") to the
08:16:23 <fizzie> result.
08:16:39 <fizzie> https://www.soemtron.org/downloads/decinfo/architecture18b08102006.pdf calls this "recomplementation step" too.
08:16:59 <fizzie> (Describing PDP-1 ones' complement arithmetic.)
08:42:02 -!- razetime has joined.
09:22:42 -!- tromp has joined.
09:31:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:44:53 -!- tromp has joined.
09:51:08 -!- Franciman has joined.
09:53:11 -!- Franciman has left.
09:54:27 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
09:59:06 -!- tromp has joined.
10:22:40 -!- Franciman has joined.
10:31:18 -!- SGautam has joined.
10:35:42 -!- Franciman has left (WeeChat 3.8).
11:01:25 <esolangs> [[Self-modifying Brainfuck Sharp]] N https://esolangs.org/w/index.php?oldid=114072 * None1 * (+3308) Created page with "{{wrongtitle|title=Self-modifying Brainfuck#}} Self-modifying Brainfuck# or SMBF# is a variation of [[Self-modifying Brainfuck]] by [[User:None1]]. Its only difference from [[Self-modifying Brainfuck]] is that the IP in Self-modifying Brainfuck# st
11:01:41 <esolangs> [[Self-modifying Brainfuck Sharp]] M https://esolangs.org/w/index.php?diff=114073&oldid=114072 * None1 * (+0)
11:01:56 <esolangs> [[Self-modifying Brainfuck Sharp]] M https://esolangs.org/w/index.php?diff=114074&oldid=114073 * None1 * (+6)
11:02:32 <esolangs> [[SMBF Sharp]] N https://esolangs.org/w/index.php?oldid=114075 * None1 * (+44) Redirected page to [[Self-modifying Brainfuck Sharp]]
11:03:24 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=114076&oldid=114067 * None1 * (+63) /* S */ New language
11:04:12 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=114077&oldid=114040 * None1 * (+111) /* My Esolangs */
11:09:26 <esolangs> [[Self-modifying Brainfuck Sharp]] M https://esolangs.org/w/index.php?diff=114078&oldid=114074 * None1 * (+2) /* Examples */ Fixed Hello World program as it outputs an extra line feed in the front
11:11:28 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
11:14:25 <esolangs> [[Interpret Esolangs Online]] https://esolangs.org/w/index.php?diff=114079&oldid=113969 * None1 * (+63) /* Introduction */ New language support
11:16:03 <esolangs> [[Self-modifying Brainfuck Sharp]] https://esolangs.org/w/index.php?diff=114080&oldid=114078 * None1 * (+83) /* Quine */
11:18:14 <esolangs> [[Hello world program in esoteric languages (N-Z)]] https://esolangs.org/w/index.php?diff=114081&oldid=113545 * None1 * (+184) /* Seeker */ Added [[Self-modifying Brainfuck Sharp|Self-modifying Brainfuck#]] implementation
11:19:23 <esolangs> [[Self-modifying Brainfuck Sharp]] https://esolangs.org/w/index.php?diff=114082&oldid=114080 * None1 * (+429) Added online interpreter
11:26:23 <esolangs> [[FunctionsFTW]] M https://esolangs.org/w/index.php?diff=114083&oldid=113984 * NutronStar45 * (-28)
11:46:20 <esolangs> [[Func]] N https://esolangs.org/w/index.php?oldid=114084 * None1 * (+12960) Created page with "Func is an esolang that can only use functions, created by [[User:None1]]. ==Functions== There are these functions {| class="wikitable" |+ Functions in Func |- ! Function !! Meaning |- | <code>zero()</code> || Returns 0 |- | <code>one()</code> || Returns 1 |- | <code>input(
11:47:43 <esolangs> [[Hello world program in esoteric languages (nonalphabetic and A-M)]] https://esolangs.org/w/index.php?diff=114085&oldid=113628 * None1 * (+12213) /* Full 0 */ Added [[Func]] implementation
11:48:59 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=114086&oldid=114076 * None1 * (+11) /* F */ + [[Func]]
11:49:35 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=114087&oldid=114077 * None1 * (+66) /* My Esolangs */
11:49:58 <esolangs> [[Func]] M https://esolangs.org/w/index.php?diff=114088&oldid=114084 * None1 * (+9)
12:06:50 -!- tromp has joined.
12:08:03 <esolangs> [[Func++]] N https://esolangs.org/w/index.php?oldid=114089 * None1 * (+980) Created page with "Func++ is an extension of [[Func]], created by [[User:None1]], it is backwards compatible with [[Func]]. In Func++, you are allowed to: * Use decimal input and output. * Make quines. * Output strings easier. ==Extensions== The follwing built-in functions are available in F
12:08:58 <esolangs> [[Language list]] https://esolangs.org/w/index.php?diff=114090&oldid=114086 * None1 * (+13) /* F */ + [[Func++]]
12:11:40 <esolangs> [[Hello world program in esoteric languages (nonalphabetic and A-M)]] https://esolangs.org/w/index.php?diff=114091&oldid=114085 * None1 * (+238) /* Func */ Added [[Func++]] implementation
12:12:43 <esolangs> [[Func]] M https://esolangs.org/w/index.php?diff=114092&oldid=114088 * None1 * (+44) See also & category
12:13:02 <esolangs> [[Func++]] https://esolangs.org/w/index.php?diff=114093&oldid=114089 * None1 * (+24) See also
12:13:27 <esolangs> [[User:None1]] https://esolangs.org/w/index.php?diff=114094&oldid=114087 * None1 * (+40) /* My Esolangs */
12:14:31 <esolangs> [[Func++]] https://esolangs.org/w/index.php?diff=114095&oldid=114093 * None1 * (+61) /* Example Programs */ Added [[A+B Problem]] example
12:16:44 -!- tromp has quit (Read error: Connection reset by peer).
12:20:47 <esolangs> [[MM1char]] https://esolangs.org/w/index.php?diff=114096&oldid=109525 * Kaveh Yousefi * (+165) Added a hyperlink to my implementation of the MM1char programming language on GitHub and changed the category tag Unimplemented to Implemented.
12:24:48 <esolangs> [[MM1char]] https://esolangs.org/w/index.php?diff=114097&oldid=114096 * Kaveh Yousefi * (+416) Introduced an examples section comprehending two initial members, the first implementing a countdown, the second a register value transfer.
12:25:58 <esolangs> [[A+B Problem]] https://esolangs.org/w/index.php?diff=114098&oldid=113173 * None1 * (+53) /* Implementations */ Added [[Func]] implementation
12:26:18 <esolangs> [[MM1char]] M https://esolangs.org/w/index.php?diff=114099&oldid=114097 * Kaveh Yousefi * (+43) Added a hyperlink to the Minsky machine's article and slightly improved the preamble's formatting.
12:26:29 <esolangs> [[A+B Problem]] M https://esolangs.org/w/index.php?diff=114100&oldid=114098 * None1 * (+3) /* Func */ Oh, it's [[Func]]++, not [[Func]]
12:53:56 <esolangs> [[Talk talk:Turing tarpit]] M https://esolangs.org/w/index.php?diff=114101&oldid=107623 * D * (+65)
12:56:56 <esolangs> [[Talk talk:Turing tarpit]] M https://esolangs.org/w/index.php?diff=114102&oldid=114101 * D * (-45)
12:58:56 <esolangs> [[Talk talk:Turing tarpit]] M https://esolangs.org/w/index.php?diff=114103&oldid=114102 * D * (+78)
13:00:11 <esolangs> [[Talk talk:Turing tarpit]] M https://esolangs.org/w/index.php?diff=114104&oldid=114103 * D * (-66)
13:14:35 <esolangs> [[Talk talk:Turing tarpit]] M https://esolangs.org/w/index.php?diff=114105&oldid=114104 * D * (-12)
13:14:56 <esolangs> [[Self-modifying Brainfuck Sharp]] https://esolangs.org/w/index.php?diff=114106&oldid=114082 * None1 * (+3592) /* Interpreter */ Added C# interpreter (It's my fist time to write a long program in C#!)
13:21:50 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=114107&oldid=114090 * D * (+115) Add some description that links to Category:Languages
13:24:32 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=114108&oldid=114107 * D * (+19) Fixed link
13:26:15 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=114109&oldid=114108 * D * (+1)
13:26:55 <esolangs> [[Language list]] M https://esolangs.org/w/index.php?diff=114110&oldid=114109 * D * (+1)
13:27:41 <esolangs> [[Self-modifying Brainfuck Sharp]] M https://esolangs.org/w/index.php?diff=114111&oldid=114106 * None1 * (+48) /* Interpreter */
13:39:57 <esolangs> [[Malloc]] https://esolangs.org/w/index.php?diff=114112&oldid=111463 * D * (+26) Fix the interpreter
13:41:31 <esolangs> [[Malloc]] https://esolangs.org/w/index.php?diff=114113&oldid=114112 * D * (-21) Actually, this should work because sizeof(char) = 1, and you don't need to use the pointer in any way.
13:42:28 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114114&oldid=114113 * D * (+1)
13:48:31 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114115&oldid=114114 * D * (+58)
13:49:18 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114116&oldid=114115 * D * (-1)
13:51:48 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114117&oldid=114116 * D * (-57)
13:54:42 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114118&oldid=114117 * D * (+65)
13:55:11 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114119&oldid=114118 * D * (+10)
13:56:04 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114120&oldid=114119 * D * (+53) /* Example Programs */
13:57:30 <esolangs> [[SStack]] https://esolangs.org/w/index.php?diff=114121&oldid=109586 * ChuckEsoteric08 * (+23)
13:59:53 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114122&oldid=114120 * D * (-2) /* Example Programs */
14:01:46 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114123&oldid=114122 * D * (+7) /* C */
14:04:30 <esolangs> [[Talk:Chicken]] https://esolangs.org/w/index.php?diff=114124&oldid=89143 * None1 * (+113) Ask why chicken is Turing complete
14:42:13 <esolangs> [[User:Pandaqwanda]] https://esolangs.org/w/index.php?diff=114125&oldid=90219 * Pandaqwanda * (-1694) Replaced content with "god i was so cringe when i was here please ignore anything i said or did"
14:42:32 <esolangs> [[User talk:Pandaqwanda]] https://esolangs.org/w/index.php?diff=114126&oldid=101170 * Pandaqwanda * (-509) Blanked the page
14:43:13 <esolangs> [[User talk:Pandaqwanda/pixeLang]] https://esolangs.org/w/index.php?diff=114127&oldid=110419 * Pandaqwanda * (-602) Blanked the page
14:43:31 <esolangs> [[User:Pandaqwanda/pixeLang]] https://esolangs.org/w/index.php?diff=114128&oldid=89364 * Pandaqwanda * (-811) Replaced content with "discontinued"
15:06:13 <esolangs> [[Fg]] N https://esolangs.org/w/index.php?oldid=114129 * NutronStar45 * (+1419) Created page with "{{WIP}} {{infobox proglang |name=Fg |paradigms=''Unknown'' |author=[[User:NutronStar45]] |year=[[:Category:2023|2023]] |files=''Unknown'' }} '''Fg''' is a programming language created by [[User:NutronStar45]]. == Values == A value is a "thing" in Fg. Values are separ
15:12:22 <esolangs> [[User:NutronStar45]] M https://esolangs.org/w/index.php?diff=114130&oldid=93903 * NutronStar45 * (+8)
15:21:59 <esolangs> [[AMONGUSISABIGSUSSYBAKAHAHAHAHAHATHISLANGUAGEISREALLYCOOLPLEASEUSEITMYLIFEDEPENDSONITORELSEPLSPLSPLSPLSPLSPLSPLSkahyghdfhm]] M https://esolangs.org/w/index.php?diff=114131&oldid=101793 * PythonshellDebugwindow * (-2) /* Commands */ remove extra cell
15:23:14 <esolangs> [[AMONGUSISABIGSUSSYBAKAHAHAHAHAHATHISLANGUAGEISREALLYCOOLPLEASEUSEITMYLIFEDEPENDSONITORELSEPLSPLSPLSPLSPLSPLSPLSkahyghdfhm]] M https://esolangs.org/w/index.php?diff=114132&oldid=114131 * PythonshellDebugwindow * (+93) /* One Time Cat */ categories
15:25:12 <esolangs> [[Css script]] M https://esolangs.org/w/index.php?diff=114133&oldid=73060 * PythonshellDebugwindow * (+23) Category
15:36:25 <esolangs> [[BEN++]] M https://esolangs.org/w/index.php?diff=114134&oldid=102215 * PythonshellDebugwindow * (+98) Categories
15:45:35 <esolangs> [[Fg]] M https://esolangs.org/w/index.php?diff=114135&oldid=114129 * NutronStar45 * (+1458)
15:50:51 -!- bgs has joined.
16:03:01 -!- Thelie has joined.
16:20:51 -!- siesta has joined.
16:43:53 <esolangs> [[Fg]] https://esolangs.org/w/index.php?diff=114136&oldid=114135 * NutronStar45 * (+1234)
16:55:06 -!- tromp has joined.
17:18:23 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114137&oldid=114069 * Quito0567 * (+2769)
17:20:57 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114138&oldid=114137 * Quito0567 * (-23)
17:21:42 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114139&oldid=114138 * Quito0567 * (-14)
17:23:57 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
17:37:21 -!- tromp has joined.
17:37:43 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114140&oldid=114139 * Quito0567 * (+332)
17:40:53 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114141&oldid=114140 * Quito0567 * (+0)
17:41:16 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114142&oldid=114141 * Quito0567 * (+0)
17:41:26 -!- razetime has quit (Remote host closed the connection).
17:42:34 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114143&oldid=114142 * Quito0567 * (+66)
17:43:59 <esolangs> [[99 bottles of beer]] https://esolangs.org/w/index.php?diff=114144&oldid=113968 * Quito0567 * (+323)
17:48:06 <esolangs> [[Truth-machine]] https://esolangs.org/w/index.php?diff=114145&oldid=114043 * Quito0567 * (+105)
17:57:14 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114146&oldid=114143 * Quito0567 * (+128)
17:57:27 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114147&oldid=114146 * Quito0567 * (+0)
17:57:46 -!- Thelie has quit (Remote host closed the connection).
18:10:36 -!- SGautam has quit (Quit: Connection closed for inactivity).
18:28:01 -!- VzxPLnHqr has quit (Quit: Leaving).
18:42:29 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:08:29 -!- siesta has quit (Quit: Connection closed for inactivity).
19:10:15 -!- tromp has joined.
19:17:10 <zzo38> The BackFlip arrows is also something that could be use in some kind of computer games like Hero Hearts, Sokoban, etc; I have made adding them on to Hero Hearts. I am not sure yet what puzzles might be made using this, although you can combine many different objects in a puzzle
19:20:59 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
19:26:13 -!- b_jonas has joined.
19:43:10 -!- tromp has joined.
19:48:36 <b_jonas> so about sign representation. as far as I can tell, the biggest drawback of computers that have sign-magnitude or ones' complement integer arithmetic is that multi-word integer arithmetic is uglier. in two's complement, you usually have all but the most significant word unsigned, and the most significant word either signed or unsigned as you prefer. addition, subtraction, and the low word of
19:48:42 <b_jonas> multiplication gives the same result for unsigned and two's complement signed integers, so you don't need extra instructions for this, though you may want separate flag bit outputs, comparison, and high word of multiplication instructions. sign-magnitude or ones' complement are different, so those machines will use a multi-word integer format where the sign bits of all but the most significant word are
19:48:48 <b_jonas> wasted: either the signs are assumed to be the same (as on MMIX double floats), or they can be free so you have multiple equivalent representations for some multi-word integers (as on AGC). in the former case, you have to either ensure that the signs stay the same, or acquire the one sign and keep it throughout the multi-word addition. in the latter case, you need a three-way carry flag, i.e. the carry
19:48:54 <b_jonas> can have value +1 or -1, and multi-word addition can naturally give results with different signs in the words. the AGC does this latter thing: the three-way carry is effectively stored in the top two word of the 16-bit A register (and a few other registers), such that 00 or 11 means positive or negative with no overflow, 10 means -1 carry, 01 means +1 carry, when you store the accumulator to a 15-bit
19:49:00 <b_jonas> memory word it writes the highest bit (bit 15) and the 14 lower bits and ignores bit 14 (though that remains in the accumulator). that said, the AGC has built-in two-word and three-word add instructions, so you only need to care about the details to detect overflow errors and for more tricky operations like multiplication and division (the built-in multiplication and division instructions are
19:49:04 <int-e> ...
19:49:06 <b_jonas> single-word). also the AGC has interrupts are disabled while there's an overflow, which I think can result in interesting problems if you never clear the accumulator.
19:50:27 <b_jonas> there are so many esoteric possibilities in this
19:52:05 <b_jonas> also I think somewhere I've seen a description of an instruction set that claims that an instruction does "ones' complement addition" but it's actually just a strange way to describe a normal unsigned/two's complement addition with the carry (top bit of the previous result) carrying to the low bit, but I may have just imagined this and it may have just been a rotate through carry instruction described
19:52:11 <b_jonas> as a ones' complement rotation instead of an addition instruction
19:52:30 <b_jonas> s/ones' complement rotation/ones' complement shift/
19:55:53 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:17:17 -!- tromp has joined.
20:32:39 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
20:36:45 <b_jonas> correction to above, the AGC doesn't have triple-precision add instructions, that's done in software with double and single precision adds
21:10:04 -!- tromp has joined.
21:21:51 <esolangs> [[AmogusScript]] https://esolangs.org/w/index.php?diff=114148&oldid=114147 * Quito0567 * (+43)
21:26:05 <b_jonas> so the AGC is kind of weird. memory locations and the L register are 15 bit long, but the A and Q registers are 16-bit, which you can think of as storing an extra carry. but the A and Q instructions are mapped to the memory address space and IO address space, and basically all instructions that take an address will do a full 16-bit operation, both when they implicitly access A (or rarely Q) and when the
21:26:11 <b_jonas> address points to one of those registers, will do a full 16-bit operations. and there are a LOT of these instructions. add and subtract of course, but there's add that stores the result to the memory operand instead of to A, exchange, increment or decrement memory in place, increment or decrement the magnitude of memory in place while keeping the sign, various bitwise stuff, double-precision add and
21:26:17 <b_jonas> subtract that store to memory, double-precision exchange, exchange with Q, bitwise and, load/store to io space, bitwise and/or/xor loading from io space, bitwise and/or/xor load-storing to io space. the exceptions are multiply and divide which are strictly 15 bit. so a lot of instructions can propagate the extra bit within A and Q, but it turns out that while the extra bit is propagated, since it
21:26:23 <b_jonas> affects only higher bits, there are very few instructions that can actually examine the extra bit in ways other than propagating it. the decrement magnitude in place instructions can: they keep +0 or -0 unchanged, but decrement 0b0100000000000000 to 0b0011111111111111 and similarly 0b1011111111111111 to 0b0111111111111111.
21:26:31 -!- tromp has quit (Quit: My iMac has gone to sleep. ZZZzzz…).
21:29:15 <b_jonas> there's also an instruction that branches to one of the next four instructions according to whether the memory operand is +0, -0, positive, or negative, and decreases its magnitude in place, and you can use this on A or Q, but also only to distinguish 0 from 0b0100000000000000 or distinguish 0b1111111111111111 from 0b1011111111111111. you can, however, use bitwise and to mask off the low 14 bits, and
21:29:21 <b_jonas> then you can tell if any positive value overflows with these instructions. other than these, there's also a jump instruction that, after the jump, skips one more instruction iff A has an overflow, and a variant of this that doesn't jump but does the conditional skip. and as far as I can tell, that's all, those are the only ways to examine the overflow, unless you count that interrupts are inhibited when
21:29:27 <b_jonas> A has an overflow.
21:32:48 <b_jonas> ah, there's one more apparently, there's a conditional jump that jumps if A is not positive, so it can distinguish 0b0 from 0b0100000000000000
21:33:18 <b_jonas> oh, and also a conditional jump if zero
21:33:59 <b_jonas> wait
21:36:44 <b_jonas> there's actually a much more practical instruction that cares about the overflow: the store instruction, which stores A to memory, also skips the next instruction if there's an overflow, and, only if there's an overflow, changes A to +1 or -1 according to the sign. so this is what you normally want to use to detect overflow, either for errors or for multiprecision operations
21:37:26 <b_jonas> I was wondering because the others seemed so impractical, and triple-precision operations are important
21:40:56 <b_jonas> also apparently the double-precision add and double-precision subtract instructions work in a way that they write the result to two words in memory, but leave the carry in L, which sounds convenient for triple-precision, but would be less convenient if you wanted more than triple
21:46:51 <b_jonas> this is the weird kind of design you get if you really want to minimize your hardware, both the CPU (which is made from wire-wrapping, core memory registers for storage instead of flip-flops, and very simple ICs as gates for computation) and the ROM and RAM, and care less about how much the programmers have to suffer to not leave any bugs in the code.
21:47:12 <b_jonas> we wouldn't do it these days because programmer time is more expensive than just adding more hardware
22:26:21 -!- Sgeo has joined.
22:49:51 -!- jmcantrell has joined.
23:05:41 <esolangs> [[Malloc]] M https://esolangs.org/w/index.php?diff=114149&oldid=114123 * None1 * (-7) /* Interpreters */ You obviously don't have to convert it to char* because you don't need the pointer
23:44:11 -!- Lord_of_Life_ has joined.
23:44:15 -!- Lord_of_Life has quit (Ping timeout: 246 seconds).
23:45:30 -!- Lord_of_Life_ has changed nick to Lord_of_Life.
←2023-08-21 2023-08-22 2023-08-23→ ↑2023 ↑all