#avr Logs

May 27 2017

#avr Calendar

12:04 AM day__ is now known as daey
12:21 AM _ami_: https://www.firstPCB.com/mi_odrHrc
12:21 AM _ami_: free 10$ on register
12:22 AM osteri: any thoughts on my parser? https://gist.github.com/Osteri/ab9cc36f4274c6c523ae163a9a65b0e6
12:25 AM osteri: parsing "set target1: 50, target2: 100" -like commands
12:27 AM osteri: pushes above example command "set", "target1", ":", "50", "target2", ":" and "100" in to the queue
03:10 AM rue_house: hmm
03:10 AM Emil: _ami_: do you have experience with tvat shop?
03:10 AM Emil: How's the shipping?
03:10 AM Emil: Where are they manufactur
03:10 AM rue_house: best not to use dynamic memory allocation
03:10 AM Emil: ed
03:11 AM gnom: good morning
03:11 AM gnom: i need a library avr-spi
03:11 AM rue_house: you're better suggested to use a state machine and not cache the data you dont need
03:11 AM Emil: write your own
03:11 AM rue_house: gnom, spi or i2c?
03:11 AM Emil: gnom: spi is super fucking easy
03:11 AM gnom: spi for led tube
03:11 AM gnom: max7221
03:12 AM rue_house: k
03:12 AM Emil: osteri: absolutely not avr code :D
03:12 AM rue_house: Emil, dont be negitive
03:12 AM osteri: rue_house: nothing safety specific, so dynamic allocation doesn't matter
03:13 AM rue_house: gnom,
03:13 AM osteri: Emil: why?
03:13 AM rue_house: gnom, you a real person?
03:13 AM osteri: it is, and works ok
03:13 AM gnom: yes
03:13 AM rue_house: ok
03:13 AM rue_house: I have some code for you
03:14 AM gnom: i wait
03:14 AM rue_house: just rying to find the new verstion
03:15 AM gnom: ok
03:16 AM rue_house: ... heh thats a 12 bit version..
03:18 AM gnom: https://aliexpress.com/item/MAX7219-LED-Dot-Matrix-8-Digit-Digital-Tube-Display-Control-Module/32654195774.html
03:18 AM rue_house: yep
03:19 AM rue_house: the one infront of me is a 7219
03:19 AM gnom: 7219/7221
03:19 AM rue_house: I'm cleaning up some code for ya
03:20 AM gnom: thanks
03:22 AM rue_house: http://paste.debian.net/944989/
03:22 AM rue_house: takea look at that
03:22 AM gnom: thanks
03:22 AM rue_house: the project its from is split into a lot of files
03:22 AM rue_house: I dont think anything is missig
03:22 AM osteri: rue_house: i need to cache the data, those commands are pushed in to the state machine
03:23 AM rue_house: I should leverage you to work on the 7219 project I have, but I'm too tired
03:24 AM rue_house: gnom, oh, you also need
03:24 AM rue_house: http://paste.debian.net/944990/
03:24 AM Emil: rue_house: it is better to tell why things are bad from the get go instead of allowing bad code to flourish
03:24 AM rue_house: (avrcommon.h)
03:25 AM rue_house: oh I dont care, I write all my own anyhow
03:25 AM osteri: rue_house: what is your best parser you have seen in Github?
03:25 AM gnom: ok
03:25 AM rue_house: tho I take suggestions I like
03:25 AM rue_house: my masterpeice parser, is, unfortunatly, my command line math program
03:25 AM gnom: https://github.com/nixpulvis/max7221
03:26 AM rue_house: maxim, not maxis...
03:28 AM rue_house: osteri, https://github.com/ruenahcmohr/Equation
03:28 AM gnom: ok
03:29 AM rue_house: osteri, but I really like this trick: http://paste.debian.net/944991/
03:30 AM rue_house: I dont think I have any good state machines kicking around
03:30 AM gnom: eq5.h:9:18: fatal error: eqll.h:
03:30 AM rue_house: :(
03:30 AM rue_house: ?
03:30 AM rue_house: missing file?
03:31 AM rue_house: oops
03:31 AM osteri: state machine is easy to implement, but good generic parser is trickier
03:31 AM rue_house: oooh it didn't catcht eh linked files
03:31 AM gnom: yes one
03:32 AM rue_house: all the linked files are missing
03:32 AM rue_house: I wonder how I do that
03:32 AM gnom: eqll.h
03:32 AM gnom: ok
03:32 AM rue_house: and ops.c / h returnValues.h/c varlib.c/h
03:34 AM gnom: /usr/include/EGL/egl.h ?
03:35 AM rue_house: no, its a equation specific linked list library
03:36 AM gnom: ok thanks
03:38 AM rue_house: osteri, ...
03:38 AM rue_house: I dont know how to work github'properly' so
03:39 AM osteri: rue_house: i think making the states enum is better. additional type safety. you'll have nice debugging when you type 'lefy'
03:39 AM rue_house: http://ruemohr.org/~ircjunk/programming/c/eq/
03:39 AM rue_house: there
03:39 AM rue_house: its version 5, technically
03:39 AM rue_house: haha
03:39 AM rue_house: its my broken dev version
03:40 AM rue_house: I'm using version 3
03:40 AM rue_house: stand by
03:41 AM rue_house: I'm having fun adding functions to it
03:42 AM rue_house: http://ruemohr.org/~ircjunk/programming/c/eq/
03:42 AM rue_house: that is a working copy
03:43 AM rue_house: thats the one I'm using
03:43 AM rue_house: ./eq Version
03:43 AM rue_house: it does variables
03:43 AM osteri: rue_house: i'll check that
03:43 AM rue_house: so you can do ./eq a+2(a=5)
03:43 AM rue_house: because anything in brackets is evaluated first
03:44 AM rue_house: Pi is a built in
03:44 AM osteri: Qt has state machine generation from graph: https://doc.qt.io/qt-5/statemachine-api.html
03:44 AM rue_house: zippo:/files/programming/c/Equation/eqv4# calc Pi
03:44 AM rue_house: Pi -->> 3.14159
03:44 AM rue_house: zippo:/files/programming/c/Equation/eqv4# calc Pi*2
03:44 AM rue_house: Pi*2 -->> 6.28319
03:44 AM rue_house: and it does math, imagine that
03:45 AM osteri: but that is quite simple and straighforward parsing, vs. my parsing: "set all: low" or "set fan1: low, fan2: med" or "help"
03:46 AM osteri: math and numbers are easier, since they can be stateless
03:46 AM osteri: rue_house: but i'll have a look at your parser
03:47 AM rue_house: its an interesting mess, cause parsing math is ugly
03:50 AM rue_house: I have to say tho, its nice to see someone who knows what a state machine is
03:50 AM rue_house: most people done know about LUT or FSM
03:55 AM JanC is now known as Guest18539
03:55 AM JanC_ is now known as JanC
04:01 AM rue_house: http://paste.debian.net/945053/
04:02 AM rue_house: the heart of an fsm I use to decode incremental encoders
04:13 AM osteri: rue_house: ugh, you implement linked lists in the same code as your parser. this means you have to implement different parser every time you make a new application. i'm looking for more generic solution.
04:36 AM polprog: i remember i wrote once (although using STL) a reverse polish notation parser
04:36 AM polprog: it was quite small in fact, less than 50 lines
04:37 AM polprog: it only used a stack structure, im sure that can be implemented in another 50 liens or so
04:37 AM polprog: just telling
04:37 AM polprog: saying* that RPN is easier
04:37 AM polprog: in fact one of the HP's 1st calculator was RPN
04:42 AM polprog: i think
04:47 AM Emil: No reason to do arbitrary sized parser on a machine where you have sever memory limitations
04:47 AM osteri: also, when you try to parse "set fan0: low, fan1: med", it only has one end character: '\0', so you have to create more end characters if you want to use C standard functions
04:47 AM osteri: in each of the tokens
04:48 AM osteri: so you have to make them: "set\0" "fan0\0" and so on...
04:49 AM osteri: Emil: if you use static memory allocation, that also wastes memory.
04:49 AM Emil: no
04:49 AM Emil: it does not
04:49 AM Emil: you have a fixed amount of memory that is not suitable for dynamic allocations
04:50 AM osteri: the token might be "," or "fan0" you have to reserve the max amount of memory for it
04:50 AM osteri: so you end up wasting memory
04:50 AM Emil: pls
04:50 AM Emil: refactor your datastructures
04:50 AM Emil: This is an avr you are talking about
04:50 AM osteri: Emil: give me your code
04:50 AM Emil: not a pc
04:51 AM Emil: lol
04:51 AM polprog: take a look at what has been already done, bus pirate's commands are a single char and optionally params!
04:51 AM osteri: Emil: "not allowing dynamic allocation" is an arbitrary limitation set by you
04:51 AM day__ is now known as daey
04:51 AM Emil: osteri: lol
04:51 AM osteri: it is just an opinion
04:51 AM Emil: osteri: well shoot yourself in the leg
04:51 AM Emil: go ahead
04:52 AM Emil: You just don't want to accept the reality of the platform
04:52 AM osteri: not all embedded applications need to fullfil MISRA-C and work inside the real-time limitations
04:52 AM Emil: sigh
04:52 AM Emil: whatever
04:54 AM osteri: that is just dumb to limit yourself if you don't need to do it; e.g. the application isn't safety critical
04:54 AM Emil: lol
04:54 AM Emil: just fuck off already
04:55 AM osteri: and at the end of the day, you end up re-implementing malloc, which is less efficient
04:55 AM Emil: You are shit at coding, sure you might
04:55 AM osteri: Emil: yeah, haven't seen your awesome static parser yet
04:56 AM osteri: Emil: says a guy who just parrots experts without any knowledge
04:56 AM Emil: If you are shit at coding, sure you might*
04:56 AM Emil: hey
04:56 AM Emil: if the experts say it
04:56 AM Emil: that's a pretty compelling reason not to :)
04:57 AM Emil: sounds like to me you are just a script kiddie with no intent on learning anything
04:57 AM Emil: just "lol this werks on my x64 with 16GB of ram of course it will work on avr!"
04:57 AM _ami_: Emil: no, but i shall be ordering soon from them.
04:58 AM Emil: _ami_: hmm
04:58 AM Emil: _ami_: the price "matches" itead so I might give them a try
04:58 AM osteri: Emil: they are rule of thumbs, they are general guidelines. also, a rule of thumb might be: "do not use goto"
04:58 AM polprog: osteri: what is that code excatly? and it is not what avr code looks like
04:58 AM osteri: but goto is useful in some cases
04:59 AM polprog: printf. really??
04:59 AM Emil: polprog: ikr
04:59 AM polprog: how does that fit into the flash of the avr
04:59 AM Emil: polprog: osteri has no fucking idea what he's about
04:59 AM osteri: polprog: that's for desktop debugging, plz
04:59 AM polprog: well wirte and debug on the avr
04:59 AM Emil: polprog: and then he parrots at us "I'm right I'm right I'm right can't hear you"
04:59 AM _ami_: Emil: you get 10$ on registeration so first order for prototype board might be FREE.
04:59 AM Emil: _ami_: I doubt they are nice like that :D
05:00 AM polprog: if you write for desktops then good luck porting it into 8 bit micros :P
05:00 AM _ami_: Emil: i got 10$ :)
05:00 AM Emil: _ami_: nice
05:00 AM Emil: _ami_: when you get the pcbs do share the experience
05:00 AM polprog: _ami_: free boards!
05:00 AM polprog: yes
05:00 AM polprog: share
05:00 AM polprog: !
05:00 AM _ami_: use this link to register: https://www.firstPCB.com/mi_odrHrc
05:01 AM osteri: Emil: at least I don't look like a blob :D https://www.instagram.com/p/BNg3bxbBUTS/?taken-by=emilfihlman
05:01 AM polprog: osteri: lol, ad personam now?
05:01 AM osteri: polprog: I didn't ask for it
05:01 AM polprog: you are pathetic
05:01 AM _ami_: polprog: :)
05:02 AM polprog: tell you what, osteri, good luck porting that to avr. PC to avr is like a john deere to a scythe
05:03 AM osteri: polprog: i already have done that
05:05 AM Emil: osteri: lol
05:11 AM Emil: ban this fool
05:12 AM osteri: Emil: you beg it to be personal, if you have any critizism for the code go ahead, but don't say shit like "OMG LOL dyn allocs!"
05:13 AM osteri: Emil | just fuck off already <- that's very professional
05:15 AM Emil: Tom_L: pls
05:16 AM osteri: pls, I first say "fuck off" and then beg for help when someone defends himself?
05:19 AM Emil: sigh
05:19 AM Emil: osteri: just go away
05:19 AM Emil: you help no one by being a retard here
05:19 AM _ami_: Emil: i am moving to a new place. that is the reason why i am delaying the ordering PCB from first PCB. i shall write a blog abot it and share.
05:19 AM Emil: _ami_: you have a blog?
05:20 AM Emil: Do link it
05:20 AM osteri: Emil: I posted my code you we're the one said fuck off
05:20 AM Emil: osteri: yes, just fuck off
05:20 AM osteri: were*
05:20 AM osteri: lol
05:20 AM osteri: and then crys for mods ;_;
05:20 AM _ami_: Emil: yeah, :) http://amitesh-singh.github.io/
05:20 AM osteri: sad story
05:21 AM Emil: _ami_: ah yeah you used github
05:22 AM _ami_: Yup. more control over my contents than hosting blog on wordpress or blogspot
05:22 AM Emil: invest in a vps
05:22 AM Emil: the benefits are awesome
05:24 AM _ami_: Emil: good suggestion. I plan to do that in future for sure.
05:25 AM _ami_: Emil: i still have to write a blog about bare metal C programming on stm32 :) i remember that. :)
05:25 AM _ami_: you hv requested abt this earlier.
05:26 AM Emil: I know
05:26 AM Emil: Waiting for it
05:28 AM _ami_: Emil: :) btw, whats up with you? what are you hacking these days?
05:33 AM Emil: _ami_: https://emil.fi/jako/kuvat/oshpark.png
05:34 AM Emil: _ami_: also some C server things and work
05:35 AM _ami_: nice, looks fun!
05:36 AM _ami_: what is Eink board?
05:36 AM Emil: https://emil.fi/jako/kuvat/2017-05-27_13-06-08_8oRNBUvQ.png recently
05:36 AM Emil: From digishit
05:36 AM Emil: which means 24% tax on top of it, too
05:36 AM Emil: _ami_: EINK/EPAPER controller board
05:53 AM Emil: https://644db4de3505c40a0444-327723bce298e3ff5813fb42baeefbaa.ssl.cf1.rackcdn.com/a5550d978a581fc2886bd57069f5de4f.png
05:53 AM Emil: nice density
05:58 AM _ami_: Emil: neat!
07:52 AM polprog: _ami_: nice silkscreen signature on that post about making pcbs :P
07:58 AM _ami_: polprog: yeah, that was my first PCB. wanted that to have my ascii image :P
07:58 AM _ami_: thanks :)
10:44 AM rue_house: osteri, yes, no oop, and I'v not found a way of dealing with null pointers I like
10:51 AM osteri: rue_house: you can do ADT & CDT in C, which is what I did: https://www.cs.bu.edu/teaching/c/queue/array/funcs.html
12:14 PM Emil: Hmm
12:14 PM Emil: Anyone remember those diy soldering station articles
12:21 PM osteri: only amateurs use those, real men deal with the fumes
12:23 PM osteri: when your vision starts to become blurry, then you might need one
12:25 PM Emil: You might want to learn to read, also
12:25 PM osteri: those are for amateurs
12:26 PM osteri: but well, thats propably suitable for you..
12:28 PM Emil: Superb trolling, I give you that
12:29 PM osteri: I'm acting like you do, giving random unconstructive comments about random shit
12:32 PM Emil: how retarded are you actually?
12:33 PM osteri: not enough to continue this, like you are
12:37 PM Emil: osteri: so you'll stop talking? Good, idiots like you should not be on the internet.
12:37 PM osteri: no, I'm actually writing, not talking
12:37 PM osteri: ;)
12:38 PM Emil: Aaand back to being a fuckin cunt again
12:39 PM rue_house: most t85 breakout baords have a usb connector...
12:39 PM rue_house: https://www.aliexpress.com/item/Free-shipping-GY-Digispark-kickstarter-miniature-minimal-development-board-TINY85-module-for-Arduino-usb/2053597206.html
12:49 PM Chillum: I have a baggie of those wonderful tiny85s
12:49 PM Chillum: great for those simple tasks
12:50 PM Emil: http://www.ebay.com/itm/371785689421 ordered this
12:50 PM Emil: Lets see what shit I get
12:50 PM Chillum: interesting
12:50 PM Chillum: it could be good, it is not that hard to make a decent hot air gun
12:51 PM Chillum: I got one of those cheap $60 station based ones are available under like 20 brand names but are all the same
12:51 PM Chillum: and it works really well
12:51 PM Emil: nice
12:53 PM Chillum: like this: http://www.ebay.ca/itm/401214660698
12:53 PM Chillum: but the front plate and brand keeps changing every time I look it up
12:53 PM Chillum: must be a white label type deal
12:54 PM Chillum: I saw a teardown of it, it is cheaply built but well designed
12:54 PM Chillum: uses those tiny $1 squirrel cage blower fans
12:55 PM Emil: white label?
12:57 PM Chillum: it is when a factory sells stuff they make to other companies to put their own branding on it
12:57 PM Emil: ah
12:57 PM Chillum: like when a supermarket has their own brand of soy sauce, they are buying "white label" soy sauce and adding their label
12:57 PM Chillum: most likely
12:58 PM Emil: yeah
01:17 PM rue_house: max7219
01:17 PM rue_house: 16 bit serial
01:18 PM Emil: rue_house: are you talking to someone?
01:18 PM rue_house: I make myself good company
01:18 PM rue_house: most of the time its all I'v got
01:19 PM rue_house: who was making the 7221 library?
01:20 PM Emil: hmm, lastlog does not want to search for 7221
01:20 PM Emil: gnomk
01:21 PM Emil: gnom
02:17 PM polprog: this link came of use to me
02:17 PM polprog: http://www.bretmulvey.com/avrdelay.html
02:18 PM polprog: also, im rweriting all the stuff to asm
02:21 PM polprog: osteri: if you want you cn even go C++ and OOP in your code, hell, theres even JVM for AVRs. But don't be surprised when you run out of memory or get into timing issues. It will always be an 8-bit CPU.
02:22 PM polprog: osteri: just keep in mind that. and there are reasons why i would not recommend that kind of a command set
02:25 PM osteri: well, rue_house misunderstood me. I didn't mean OOP, I meant ADT & CDT. Btw, OOP is zero overhead. of course you can do dumb shit in it.
02:27 PM polprog: if you need oop then go oop
02:27 PM polprog: what i want to say is that your code looks more for a pc due to all that string parsing stuff
02:27 PM polprog: i wonder how big is the .text section of the end file
02:27 PM osteri: STL is not even implemented in AVR Libc, so it can't go horribly wrong
02:28 PM polprog: im not saying STL is bad
02:28 PM polprog: i want to say that AVR is not a Xeon.
02:28 PM osteri: it is, for embedded platforms
02:28 PM polprog: you cant just take what youve learned at CS C course and do avr
02:29 PM polprog: you need to write small fast programs
02:29 PM osteri: you can always do dumb shit, but modern C++11 gives nice tools for embedded platforms
02:29 PM polprog: so the command set should be simplified!
02:30 PM polprog: gtg, o/
02:32 PM evil_dan2wik is now known as dan2wik
02:33 PM osteri: polprog: but that code doesn't extensively use dynamic allocation. only when it is needed. i was just wondering better ways to implement the strtok_r part, seems little obscure. the dynamic allocation part doesn't mean anything at this stage.
02:39 PM Emil: > the dynamic allocation part doesn't mean anything
02:39 PM Emil: TOP KEK
02:40 PM osteri: yeah, if some one says so, then it doesn't matter.
02:40 PM osteri: that is the requirement
02:43 PM osteri: the AVR engineer were stupid when they implemented malloc, they should have listen Emil and did't implement it at all because it's never needed!
02:44 PM Emil: top kek
02:44 PM osteri: just return NULL; as a malloc
02:46 PM Emil: polprog: nice site
02:47 PM Emil: polprog: lol, it doesn't take into account overhead
02:50 PM Emil: Wait, it does
02:50 PM Emil: the ux is just shit
04:38 PM gnom: Emil hi
04:39 PM gnom: sorry for pause
04:40 PM gnom: sorry for being late
04:53 PM Emil: gnom: no it was rue_house who asked for you :D
07:42 PM _habnabit: so is the way to do an atomic compare-and-swap in AVR just to use CLI/SEI to prevent interrupts and then write it in a typical naieve way?
07:59 PM _habnabit: seems like 'yes', considering the avr-libc 'util/atomic.h' is just a wrapper around CLI/SEI
08:07 PM timemage: _habnabit, near as i know, things like compare and swap are applicable to multicore systems. that isn't a problem with the avr.
08:07 PM _habnabit: timemage, sure, but avr still has interrupts
08:09 PM timemage: _habnabit, yes. i'm pointing out that the more sophisticated mechanism you were considering exists to address a feature of some mcus that the avr does not have. what you were saying about interrupts is fine.
08:10 PM _habnabit: timemage, i guess i just don't see what the difference is between single-thread-plus-preemptive-interrupts and multiple-threads
08:10 PM _habnabit: timemage, either way you need a way to have atomic operations
08:11 PM timemage: _habnabit, that seems like a non sequitur. if it isn't, i have no idea what you were getting at with the initial question.
08:14 PM _habnabit: timemage, i don't know how to format this question in the way you want. what two things do you see as being disconnected?
08:15 PM timemage: _habnabit, (A) the need for something more than cli/sei (as you pointed out compare-and-swap) and (B) a single core system (never mind interrupts)
08:19 PM _habnabit: timemage, oh, no, i wasn't implying any sort of ordering relative to cli/sei, but that maybe there's a different way
08:20 PM _habnabit: timemage, i.e. not 'more than'
09:40 PM xentrac: timemage, if you had atomic compare-and-swap, you could safely access variables that might be modified by interrupt handlers without ever disabling interrupts and thus increasing your worst-case interrupt latency
09:42 PM xentrac: I think there are a number of AVR instructions that atomically modify memory locations in a way that permits some kind of nonblocking cooperation with interrupt handlers, but they are not as broadly applicable to wait-free algorithms as CAS
09:46 PM timemage: xentrac, i get what compare and swap does. not sure how the addition of it to an avr could help. nor to any other single core mcu.
10:27 PM xentrac: timemage: do you understand how temporarily disabling interrupts increases your worst-case interrupt latency, and why that is a problem in many MCU applications?
10:29 PM timemage: xentrac, yes. but not how a theoretical compare and swap instruction for the avr would help this. if you design an pseudo-instruction that in somewhat inline with the other avr instructions (8 bit-wide operation, same read and write timings) and write some pseudo-code with it, i'm curious to see what the results would look like.
10:34 PM timemage: xentrac, do you happen to know if there are chips like the avr that have such a thing? i know for a single core x86 you can still use a compare and swap. it wouldn't surprise me overly if the same thing exists for an arm chip. somehow i doubt the msp430, avr, stm8, any of the microchip pics, and so on have something like that. assuming that a practical implementation of this can exist, i'm sort of expecting it does.
10:35 PM xentrac: I doubt PIC does
10:39 PM xentrac: ARMv6 added "load exclusive" and "store exclusive" instructions which are not the same as CAS but also permit wait-free synchronization between interrupt handlers and regular code
10:40 PM xentrac: they're more like LL/SC
10:41 PM xentrac: CAS is always kind of an awkward fit into just about any instruction set except really weird CISCy things like x86
10:43 PM timemage: xentrac, i guess you could view it as as kind of addressing mode.
10:43 PM xentrac: I guess? in a way?
10:45 PM timemage: xentrac, well as opposed to an instruction. kind of the way there's no stack pointer on a lot of risc type designs and instead store/load instructions with increment/decrement. so, you could if you wanted have an exclusive mode.
10:46 PM timemage: xentrac, a little too special for that, yeah?
10:47 PM xentrac: I just mean that compare-and-swap has three inputs (the address you're testing, the value you expect to be in it, and the value you store there if that was correct) plus an output (what was actually stored there)
10:48 PM xentrac: and that doesn't fit very comfortably into pretty much any instruction set
10:50 PM timemage: xentrac, yeah, i see what you're saying.
10:54 PM xentrac: I kind of feel like trying to make it an addressing mode makes the problem worse rather than better :)
10:55 PM xentrac: amd64 and i386 solve the problem in their usual clumsy way: AL, AX, EAX, or RAX is implicitly an input and an output
10:56 PM timemage: xentrac, heh, well, i was half-joking. but more than that you pointed out that it doesn't even take similar operands. which i wasn't thinking of when i said it.
10:57 PM xentrac: heh
10:58 PM xentrac: you could do the same ugly trick in an extended AVR or PIC instruction set. on PIC it would blend in perfectly with the rest of the shitty architecture :)
10:59 PM xentrac: although you'd probably make the implicit argument be the memory pointer
10:59 PM timemage: xentrac, it's funny that i find that funny. it's been so long i hardly remember what i did know about PICs. the only real interaction i've had with them recently is resurrecting an old board for someone where i had to recompile their code.
11:00 PM timemage: xentrac, i do remember thinking "ugh". particularly when dealing with assembly. i think what stood out is the lack of registers.
11:01 PM xentrac: yeah, they're lacking and nonorthogonal
11:01 PM xentrac: but I'm young enough I neve rreally had to deal with them
11:26 PM _habnabit: trying to understand if it's the code generator or my understanding that's wrong: https://paste.pound-python.org/show/uDdZFchs2OlaWYux44t6/ -- this seems to load SREG into r24, clear interrupts, then do math using r24 (*PORTB ^= PINB5), then restore SREG to 0
11:35 PM rue_house: damn my assembly is too rusty
11:40 PM day is now known as daey