UmbralRaptor changed the topic of #kspacademia to: https://gist.github.com/pdn4kd/164b9b85435d87afbec0c3a7e69d3e6d | Dogs are cats. Spiders are cat interferometers. | Космизм сегодня! | Document well, for tomorrow you may get mauled by a ネコバス. | <UmbralRaptor> … one of the other grad students just compared me to nomal O_o | <ferram4> I shall beat my problems to death with an engineer.
<egg|zzz|egg> ah wait no, there are *four* flags
<bofh> ahh. okay, I see.
<egg|zzz|egg> and the tests are not flag-based actually
<egg|zzz|egg> they're conditional skips directly
<bofh> that makes sense now actually. also was not expecting a *call stack* on a calculator from that era
<egg|zzz|egg> the flags are a different thing
<egg|zzz|egg> bofh: yeah it's fancy
<egg|zzz|egg> bofh: though you end up doing some really weird tricks when you try to cram a program in 112 instructions
<egg|zzz|egg> right, so 4 flags: flag 3 is set by digit entry, flags 2 and 3 are cleared by CF n or by testing them, flags 0 and 1 are only cleared by CF n
<bofh> huh.
<bofh> that's... an interesting architectural choice.
<egg|zzz|egg> it's kind of full of interesting arch choices :D
<egg|zzz|egg> there's no conditional jump, only conditional skips
<egg|zzz|egg> bofh: so the if statement pattern ends up being (if you have room) something like X=0 GTO 1 [NONZERO] GTO 2 LBL 1 [ZERO] LBL 2
<egg|zzz|egg> unless of course your instruction is short (or is a call), in which case you can do it in the right order, X=0 GSB A GSB B
<egg|zzz|egg> s/instruction is short/branch is one instruction/
<Qboid> egg|zzz|egg meant to say: unless of course your branch is one instruction (or is a call), in which case you can do it in the right order, X=0 GSB A GSB B
<egg|zzz|egg> uh wait no
<egg|zzz|egg> that won't work, it will execute GSB B too D:
<egg|zzz|egg> ok, but you *can* tailcall, if LBL A ends with a RTN and that branch is the last thing you do, X=0 GTO A [some else branch]
<egg|zzz|egg> bofh: and when you start tailcalling to spare instructions it quickly gets hard to understand :D
<egg|zzz|egg> bofh: oh fun thing too, the program doesn't have literals; so you have one instruction per digit (and for the decimal mark) to enter a number
<bofh> holy fuck, this is surprisingly extensible for a calculator ISA
<egg|zzz|egg> bofh: in other words, don't put a number in your code, because you'll eat up your program memory :D
<egg|zzz|egg> bofh: I think technically there's *another* registery thing you can use, though that gets very tricky: there's LST X
<egg|zzz|egg> the previous value of the X register (the working register of the stack)
<egg|zzz|egg> mostly there to correct mistakes, but I guess you can use it in a program in a pinch :D
<egg|zzz|egg> !acr -add:ISA Instruction Set Architecture
<Qboid> egg|zzz|egg: I already know an explanation for ISA! (Update it with !acr -update:ISA Instruction Set Architecture)
<egg|zzz|egg> ISA?
<Qboid> egg|zzz|egg: [ISA] => International Standard Atmosphere
<egg|zzz|egg> haha
<soundnfury> NomalRaptor: is a phi square like a Parker square?
* soundnfury gives egg|zzz|egg an Industry Standard Architecture bus
<egg|zzz|egg> bofh: it does have some amusingly specific instructions too, e.g. H -> H.MS, or rectangular -> polar
<egg|zzz|egg> also mean, stddev
<egg|zzz|egg> bofh: I think it carries 10 sig dec (it's decimal floating point of course)
<bofh> hey, D.MS <-> decimal degrees is fucking nice to have
<bofh> (and ofc both of those to a sane measure like radians)
<egg|zzz|egg> bofh: there's also an instruction to directly add things in H.MS
<egg|zzz|egg> so [0.50] ENTER [0.10] [H.MS+] yields 1, instead of having to do [0.50] H <- H.MS [0.10] H <- H.MS + H -> H.MS
<egg|zzz|egg> bofh: you can also operate directly on the registers (even indirectly) with STO [+-*/] <register> (where <register> is 0..9, A..F, or (i) for indirect addressing); this adds (subtracts etc.) X to the relevant register
<egg|zzz|egg> so you get both an operation stack and operations on registers \o/
<egg|zzz|egg> (kinda, you still need one operand on the stack)
<bofh> I kind of want one of these now.
<bofh> This seems quite amazingly well-done.
<egg|zzz|egg> if you wanted something that looked like register-only operations you'd have to go through the trouble of something like RCL 1 STO + 0 (though of course now you're left with the value of register 1 in your stack)
e_14159 has quit [Ping timeout: 204 seconds]
<egg|zzz|egg> amusingly there's an increment on register i and on arbitrary registers by indirect addressing, but no increment instruction for the values on the stack :D
<bofh> heh
<egg|zzz|egg> you need 2 instructions, 1 +
<egg|zzz|egg> arguably the increment decrement are a bit tricky because they also come with a test, but as long as your counter doesn't hit 0 it's just increment/decrement
e_14159 has joined #kspacademia
<egg|zzz|egg> bofh: there's a desktop version that's functionally identical except it has a printer; the cards were compatible, the instruction set is the same, etc.
<egg|zzz|egg> bofh: if you want to get those there seem to be some on ebay, but old calculators aren't cheap
<egg|zzz|egg> bofh: oh yeah there's a fun quirk about the HP 35 series, the exponentiation key did x^y rather than y^x; they changed that for the HP 21, (x^y is extremely confusing, since it means a^b is entered b [enter] a [x^y])
<egg|zzz|egg> bofh: 5 years after the 67 they made a CS-oriented model, the 16C, where you could set word size, unsigned or 1 or 2's complement, and it had overflow and carry flags; it also had FP, with algorithms to convert to and from (then-proposed) IEEE http://www.hpmuseum.org/16.jpg
<egg|zzz|egg> but I do like the 67's quirky instruction set :D
<egg|zzz|egg> also there *everything is a floating-point register*
<egg|zzz|egg> so you do your indirect addressing with a floating point register :D
* egg|zzz|egg stares at the time
* egg|zzz|egg zzz
<NomalRaptor> ;8ball Is sleep real?
<kmath> NomalRaptor: Ask again later
<NomalRaptor> ;8ball Is sleep complex?
<kmath> NomalRaptor: You may rely on it
icefire has quit [Read error: Connection reset by peer]
ferram4 has quit [Ping timeout: 200 seconds]
ferram4 has joined #kspacademia
<egg|cell|egg> !Wpn UmbralRaptor
* Qboid gives UmbralRaptor a top orbit
egg|cell|egg has quit [Remote host closed the connection]
ferram4 has quit [Ping timeout: 186 seconds]
ferram4 has joined #kspacademia
egg|phone|egg has joined #kspacademia
hattivat has joined #kspacademia
hattivat has quit [Client Quit]
egg|work|egg has joined #kspacademia
<soundnfury> !wpn egg|work|egg
* Qboid gives egg|work|egg a subnormal standing wave ratio
egg|work|egg has quit [Ping timeout: 180 seconds]
<NomalRaptor> !wpn egg|zzz|egg
* Qboid gives egg|zzz|egg a smooth HTML egg
egg|work|egg has joined #kspacademia
<egg|work|egg> !wpn NomalRaptor
* Qboid gives NomalRaptor a sulfur visible dip pen
egg|work|egg_ has joined #kspacademia
<egg|work|egg_> hmm this chromebook keeps randomly rebooting and its sound is broken
<egg|work|egg_> I wonder whether that has something to do with me building up a static charge with these shoes and constantly discharging on the chromebook
egg|work|egg has quit [Ping timeout: 180 seconds]
* NomalRaptor has that issue with some shoes.
<NomalRaptor> But, uh, in late spring? o_O
<egg|work|egg_> ?
<egg|work|egg_> NomalRaptor: I don't get the question about the season
<NomalRaptor> Well, at this time of year, heat should be off. So you don't get the low relative humidity stuff that increases static electricity.
<egg|work|egg_> hm
<egg|work|egg_> !wa weather zurich
<Qboid> egg|work|egg_: weather | Zurich, Switzerland: temperature | 15 °C, conditions | few clouds, relative humidity | 55% (dew point: 6 °C), wind speed | 3 m/s, (57 minutes ago)
<egg|work|egg_> NomalRaptor: materials seem to be a strong factor; the boots I wear in wet/cold weather don't appear to have that property, but with what I have now whenever I touch a door handle I get a spark
<NomalRaptor> yeah
<egg|work|egg_> the soles are some sort of rubber
<egg|work|egg_> !wpn NomalRaptor
* Qboid gives NomalRaptor an asymmetric hydrochlorofluorocarbon
<whitequark> nice
<whitequark> !wpn egg
* Qboid gives egg a symmetric fluorinated fractal
<whitequark> !wa weather Moscow
<Qboid> whitequark: weather | Moscow: temperature | 15 °C, relative humidity | 31% (dew point: -2 °C), wind speed | 7 m/s, (48 minutes ago)
<whitequark> amazing
<whitequark> it didn't choose Moscow, IL
<egg|work|egg_> whitequark: Qboid likes fluorine today
icefire has joined #kspacademia
<egg|work|egg_> !wpn whitequark
* Qboid gives whitequark a lenticular superpower
egg|work|egg_ is now known as egg|work|egg
<NomalRaptor> !wa weather Moscow Idaho
<Qboid> NomalRaptor: weather | Moscow, United States: temperature | 15 °C, conditions | rain, partly cloudy, relative humidity | 75% (dew point: 11 °C), wind speed | 0 m/s, (23 minutes ago)
<NomalRaptor> !wa weather Sebastopol
<Qboid> NomalRaptor: weather | Sevastopol, Ukraine: temperature | 31 °C, conditions | clear, relative humidity | 26% (dew point: 9 °C), wind speed | 10 m/s, (24242 hours 16 minutes ago)
<NomalRaptor> !wa weather Sebastopol, CA
<NomalRaptor> >_>
<Qboid> NomalRaptor: weather | Sebastopol, United States: temperature | 11 °C, conditions | partly cloudy, relative humidity | 93% (dew point: 10 °C), wind speed | 0 m/s, (23 minutes ago)
Thomas|AWAY is now known as Thomas
egg|work|egg has quit [Ping timeout: 180 seconds]
<egg|phone|egg> !Wpn UmbralRaptor
* Qboid gives UmbralRaptor a photon Glamdring
<NomalRaptor> !wpn <?|?|?>
* Qboid gives <?|?|?> a solderless symbolic lemma
<whitequark> !wpn
* Qboid gives whitequark a vicious ☢
<whitequark> owie
<egg|phone|egg> 〈?|?|?〉
<NomalRaptor> ≡ 0
egg|cell|egg has joined #kspacademia
egg|phone|egg has quit [Read error: Connection reset by peer]
<egg|cell|egg> !u |?〉
<Qboid> U+007C VERTICAL LINE (|)
<Qboid> U+1F95A EGG (?)
<Qboid> U+3009 RIGHT ANGLE BRACKET (〉)
<egg|cell|egg> Ack not mathematical
<egg|cell|egg> Wrong bracket
* egg|cell|egg tired
* egg|cell|egg nap
<Ellied> https://twitter.com/fascists_exe this bot is something else
NomalRaptor is now known as UmbralRaptor
regex has joined #kspacademia
<soundnfury> SnoopJeDi: that guy appears to be a marxist, he's defining bullshit to not be bullshit, and I hate him. That is all.
<SnoopJeDi> I hate everyone when it comes to politics
<SnoopJeDi> but I found the "here's a way to think about twitter bots politically" at least thought-provoking
<SnoopJeDi> @TheDailyMarkov is by far the best one I've come across lately
<Soozee> Unknown command, try @list
<egg|zzz|egg> !wpn Ellied
* Qboid gives Ellied a solid function generator
<Qboid> egg|zzz|egg: Pap left a message for you in #RO [05.05.2017 14:27:22]: "I am looking for a little bit of help with Molniya orbits whenever you have time"
<SnoopJeDi> solid or SOLID?
<kmath> <stephentyrone> "... 5.5kg, nearly as big as domestic cats get." Atlas would like a word. https://t.co/GxL7BmnYTW
<egg|zzz|egg> !U ?
<Qboid> U+13135 EGYPTIAN HIEROGLYPH F047A (?)
<egg|zzz|egg> !u ?
<Qboid> U+1331D EGYPTIAN HIEROGLYPH T017 (?)
<egg|zzz|egg> !wpn UmbralRaptor
* Qboid gives UmbralRaptor a thyme cone
<UmbralRaptor> egg|zzz|egg: we regret to inform you that thyme is a preexisting condition.
<SnoopJeDi> too real :(
* UmbralRaptor should probably check to see if alopecia is.
<soundnfury> *grumble* if it's a preexisting condition then it's not _insurance_ is it *grumble*
<UmbralRaptor> Yes, it is a good way to maximize shareholder revenue this quarter. But do you really want that as the goal?
<SnoopJeDi> Define "you"
<UmbralRaptor> "you" as in soundnfury
<soundnfury> UmbralRaptor: I just want people to stop conflating "insurance" and "care"
<soundnfury> and assuming that the latter can only ever be obtained through the former
<soundnfury> because _that_, as far as I can see, is the fundamental disconnect screwing up the US system
<SnoopJeDi> I'm immediately distrusting of any reductionist model for anything in the US political sphere
<UmbralRaptor> Technically you can. If you're in the top 1% of incomes, it might not even bankrupt you.
<egg|zzz|egg> UmbralRaptor: I think soundnfury's point is that insurance and coverage are different things
<SnoopJeDi> Like so many political issues, it comes down to "are you a prescriptivist or a descriptivist?"
<SnoopJeDi> because the vernacular the two are fairly well entangled by now
<SnoopJeDi> in the vernacular*
<egg|zzz|egg> in US terminology perhaps
<SnoopJeDi> I thought the context was rather clear
<egg|zzz|egg> well, 1. this is kspacademia, 2. this is soundnfury
<egg|zzz|egg> did you expect more than useless pedantry?
<SnoopJeDi> I try to expect as little as possible as a general rule, nowadays. Seems to be the major poison running around.
<soundnfury> egg|zzz|egg: :D
* soundnfury gives SnoopJeDi tcl
<SnoopJeDi> heh
<egg|zzz|egg> SnoopJeDi: I'm confused; expectation is the major poison?
<SnoopJeDi> In my opinion, yes, in interpersonal interactions expectations held about the other part(y|ies) is generally where the most friction is coming from
<SnoopJeDi> whether that's relationships, politics, employment
<egg|zzz|egg> right, I just wasn't sure how to parse the 2 sentences
<SnoopJeDi> yea I could've been a lot clearer
<egg|zzz|egg> (the alternative interpretation was that expecting as little as possible was the poison)
<SnoopJeDi> ah
* egg|zzz|egg is confusable :-p
<soundnfury> SnoopJeDi: so, you try to minimise ∫xf(x)dx ?
<UmbralRaptor> ^
<SnoopJeDi> soundnfury, more akin to "how do you a priori choose a good f(x)?"
<soundnfury> SnoopJeDi: but you don't _choose_ the pdf, it's a feature of the system under test, or of your imperfect knowledge thereof (depending as one is either a frequentist or a bayesian respectively)
<soundnfury> all you can choose is which X you care about
<SnoopJeDi> Very much not the case in the Vlasov flow underlying my own field ;P
<soundnfury> but that's not really a pdf
<soundnfury> it might be a measure, but even that's just a continuous approximation of the discrete physical reality (?)
<SnoopJeDi> When you're dealing with N=1e21 you may as well consider it a PDF
<soundnfury> !slap SnoopJeDi
* Qboid throws SnoopJeDi into a black hole, err wait that doesn't work with Kopernicus
<SnoopJeDi> ANYWAY
<SnoopJeDi> I'm slightly fascinated with the attitudes of STEM types about politics
<soundnfury> 1e21 ≪ ∞
regex has quit [Remote host closed the connection]
<egg|zzz|egg> [crosstalk from #RO] soundnfury: now I'm vaguely tempted to make an programmable calculator IRC bot that has an hp 67-like program display, to reach the pinnacle of clunky UI
<SnoopJeDi> "feature" request: could you do it in ncurses
<egg|zzz|egg> [see backlog talk with bofh for the hp-67]
<egg|zzz|egg> SnoopJeDi: no that would be too elaborate
<egg|zzz|egg> the program display is numeric
<egg|zzz|egg> example listing (you'd see one instruction at a time on the calculator screen):
<egg|zzz|egg> 001 31 25 11
<egg|zzz|egg> 002 31 43
<egg|zzz|egg> 003 31 42
<egg|zzz|egg> 004 31 43
<egg|zzz|egg> 005 01
<egg|zzz|egg> 006 32 81
<egg|zzz|egg> 007 22 01
<egg|zzz|egg> 008 44
<egg|zzz|egg> 009 02
<egg|zzz|egg> 010 02
<egg|zzz|egg> 011 35 52
<egg|zzz|egg> 012 32 81
<egg|zzz|egg> 013 22 01
<egg|zzz|egg> etc.
<egg|zzz|egg> expanding the keycodes that's LBL A; CL REG; P<->S; CL REG 1; x>y; GTO 1; CLx; 2; 2; x<->y; x>y; GTO 1
<egg|zzz|egg> erm, forgot a semicolon in my semicolon-delimited thingy there
<egg|zzz|egg> CL REG and 1 are separate instructions
* soundnfury rotates egg|zzz|egg left thru carry
<egg|zzz|egg> soundnfury: nah all the registers here are decimal floating point
<egg|zzz|egg> including the one you use for indirect addressing :D
<soundnfury> DA?: Decimal Adjust Egg
<soundnfury> (that opcode is for arithmetic on Binary Coded Eggcimal, of course)
<egg|zzz|egg> soundnfury: terrible eggseggution on that pun, you should have gone for heggsadecimal coded decimal or somesuch
<soundnfury> egg|zzz|egg: I'll just assert an IRQ line and index into the interrupt veggtor table
<soundnfury> then EGGS AF,AF' to get a shadow reggister for the interrupt handler
<UmbralRaptor> SnoopJeDi: what's so fascinating about our attitudes wrt politics?
<SnoopJeDi> UmbralRaptor, basically https://xkcd.com/1570/ https://xkcd.com/592/
<SnoopJeDi> reductionism definitely the leading-order pathology, obsession with meritocracy the next most intriguing
<SnoopJeDi> I just listened to Dan Carlin's Hardcore History episode about nuclear weaponry last night, and naturally the presence of scientists, engineers, and mathematicians is a big thread in that story
<soundnfury> SnoopJeDi: I find those eggskcds particularly amusing, because a bug in my code actually could crash the stock market ;)
<SnoopJeDi> Remind me, are you doing quant work soundnfury?
<SnoopJeDi> (I should really get a notes-about-other-people plugin for irssi)
<soundnfury> SnoopJeDi: nope, kernel drivers...
<SnoopJeDi> Hah!
<soundnfury> ... for the NIC that runs most of the world's stock eggschanges and trading companies
<SnoopJeDi> On a lark, what are your thoughts re: Brad Katsuyama
<soundnfury> one time we did have a data corruption bug that caused a company to eggsecute a bad trade
<soundnfury> is he the Thor guy?
<SnoopJeDi> the HFT guy who founded IEX
<SnoopJeDi> "racing to the exchange"
<soundnfury> yup, same guy
<SnoopJeDi> ah I didn't know about THOR
<SnoopJeDi> I mean in specificity, I knew the concept from the press storm at the time
* soundnfury has read flash boys, which is pretty much all I know about Katsuyama and IEX
<SnoopJeDi> Just curious since the subject seems to be strongly polarizing either way
<soundnfury> but AFAICT the problem is caused by the consolidated feed
<soundnfury> there's probably a couple dozen sets of stock market regulations each attempting to paper over an exploitable bug created by the previous set
<soundnfury> I don't claim to have a solution
<SnoopJeDi> I found myself most puzzled by the language people used to describe it as exploitation, particularly where "access to fast network access" was concerned
<SnoopJeDi> But HFT seems to be a bit of a landmine subject
<SnoopJeDi> One group of people who think it's ridiculous and unfair and one group who thinks it increases liquidity and is overall a Very Good Thing™ for market stability
<soundnfury> SnoopJeDi: my position is that HFTers, like bankers in general, aren't evil. But they absolutely shouldn't be trusted to write the regulations that govern them, or to advise on policy
<SnoopJeDi> That's awfully balanced of you :)
<egg|zzz|egg> soundnfury: SnoopJeDi: now I work on i18n, a bug in my code could cause YouTube's UI to take slower to translate and to be badly translated! and the number formatting to be shit!
<soundnfury> like when the uk govt asked the bankers what to do about the financial crash, and the bankers said "bail out the banks", and the govt said "sure thing herp derp" :(
<SnoopJeDi> (re: the expectations thing, I think "[group] aren't evil" is an uncommon perspective)
<SnoopJeDi> there seem to be far fewer mustachioed villain types in the world than any one person would have you believe
<soundnfury> SnoopJeDi: very few of my opponents are evil
<soundnfury> most of them are just fools ;)
<SnoopJeDi> tribalism is a particularly sticky tarpit
<SnoopJeDi> (particularly in science!!)
* SnoopJeDi glances at as-yet-unread book about intersection of politics and science re: SSC
<SnoopJeDi> I've only read the part that calls my boss out by-name as a pain in the ass
<soundnfury> (the main group of evil people, in my worldview, are those who _know_ what collectivism/marxism results in, and yet still advocate it. They are few but - sadly - influential)
<SnoopJeDi> egg|zzz|egg, "ship it!"
<soundnfury> egg|zzz|egg: "take slower to translate"? I hope you're not doing any translations to English :P
<SnoopJeDi> soundnfury, Carlin had a really good incidental remark about this in that podcast, since it pivots completely around communism
<SnoopJeDi> Something to the effect of "I can only go by the examples as they actually exist, and the prognosis there is horrible. If that doesn't match the academic prediction, I can't help that"
<egg|zzz|egg> soundnfury: derp; I'm not doing translations anyway
<soundnfury> SnoopJeDi: that indirectly reminds me of one of my favourite quotes about programming
<egg|zzz|egg> soundnfury: the translators are
<soundnfury> "theory is when you know something, but it doesn't work
<soundnfury> practice is when something works, but you don't know why
<soundnfury> programmers combine theory and practice:
<soundnfury> nothing works and they don't know why"
<soundnfury> (found on http://quotes.cat-v.org/programming/ )
<SnoopJeDi> "In theory, theory and practice are the same thing. In practice, they are not."
<egg|zzz|egg> while we're dumping fun quotes, largely unrelated but I really like this one:
<egg|zzz|egg> "The expression 'ill-conditioned' is sometimes used merely as a term of abuse applicable to matrices or equations, but it seems most often to carry a meaning somewhat similar to that defined below."
<egg|zzz|egg> Turing, in Rounding-off errors in matrix processes
<SnoopJeDi> but yea I think something about the way "we" structure our systems of inquiry encourages us to be a bit too naive about the real world
<SnoopJeDi> and it's particularly weird that being an experimentalist doesn't seem to help this!
<SnoopJeDi> Unrelated: departmental PER seminar tuesday morning \o/
<SnoopJeDi> (I've been barking up the "let's talk about the data we've been taking" tree for a while now)
<egg|zzz|egg> !wpn UmbralRaptor
* Qboid gives UmbralRaptor a lanthanum decorator
<egg|zzz|egg> UmbralRaptor: should I stare at the sky
<egg|zzz|egg> ah, clouds
<soundnfury> !wpn egg|zzz|egg
* Qboid gives egg|zzz|egg a YAML ☢
<bofh> egg|zzz|egg: LOL at that quote
<egg|zzz|egg> bofh: it's a good quote :-p
<egg|zzz|egg> bofh: it's also a good term of abuse to know when you're fed up about some matrix or equation :-p
<bofh> Indeed.
<egg|zzz|egg> bofh: the hp-67 came with this strange game: http://www.greendyk.nl/hp67/index.php?p=126
<egg|zzz|egg> bofh: "If you attempt to key in a fuel bum during any time other than the one-second “fire window”, the rocket engine will shut off and you will have to restart it by pressing B. Restarting automatically uses up five units of fuel and gives no thrust." I suspect this is done by a test of flag 3
<egg|zzz|egg> also probably bad OCR and that should be a burn?
<bofh> Yeah, that's an OCR fuckup.
<egg|zzz|egg> bofh: and so indirect addressing (and setting the displayed mantissa to i digits) use the absolute value of the integer part of the register i
<egg|zzz|egg> thus π CHS STO I RCL(i) recalls register 3
<egg|zzz|egg> bofh: oooh, there's an indirect GTO and an indirect GSB too
<egg|zzz|egg> bofh: so you have function pointers in a sense
<egg|zzz|egg> bofh: GSB(i) pushes the call stack, and jumps to the next occurence of the label corresponding to the value of i (and GTO(i) just jumps)
<egg|zzz|egg> bofh: but if i is negative, e.g. -123, GTO(i) jumps to instruction 123 instead!
<egg|zzz|egg> bofh: that way you can probably do very tricky things to spare some labels >_>
<egg|zzz|egg> bofh: and do horrifying switch statements
<bofh> oh wow
<egg|zzz|egg> bofh: ah no, it's much better than that, if -123 is in i, GTO(i) jumps backwards 123 instructions
<egg|zzz|egg> (whereas if 1 is in i, GTO(i) jumps forward to the next LBL 1)