<cheater> MrMobius: sorry, what do you mean by source and destination? can you show some examples please?
<MrMobius> cheater, depends on the architecture but on an 8 bit one like 6502 adding 16 bit var1 to var2 and storing it in var3 (or back in var2) is one load, one add, and one store operation per 8 bits. thats 6 operations for 16 bits. each operation is 3 bytes so 18 bytes for that sequence
dave0 has quit [Quit: dave's not here]
<MrMobius> in token based forth, it might be one 3 byte instruction to load the 16 bit value, one 3 byte instruction to load the second, then one 1 byte instruction to add, so only 7 bytes if keeping the answer on the stack
<MrMobius> maybe less than 7 bytes if the one of the numbers is already on the stack
<cheater> i see
<MrMobius> calculations will be different for other architectures though especially for something with lots of registers
<cheater> no store operation either
<cheater> because it auto goes on the stack
<cheater> yeah the 6502 has only one register
<cheater> why is the load instruction 3 bytes on 6502?
<MrMobius> one byte instruction and 2 byte address
<MrMobius> could also be one byte constant instead of address or one byte address
<cheater> oh. right
<cheater> one byte constant would be 2 bytes then
<MrMobius> right
<cheater> and one byte address refers to the first 256 bytes on page 0, right?
<MrMobius> yep
<cheater> hmm... that's smart.
<cheater> thanks.
<cheater> so btw, i'm not thinking of putting this on a 6502 right now
<cheater> what i'm currently thinking about is putting stuff on more advanced processors
<cheater> like say arm
<cheater> so my idea is..
<cheater> you know how people make their own keyboards, right? they often use an advanced microcontroller like an arm
<cheater> usually very powerful
<cheater> and they want things like macros, and they want configurable input and output capabilities, and display control, and a bunch of other stuff
<cheater> to me it sounds like what an 8-bit computer would normally do. so what i thought was, if the cpu is this powerful, it should certainly be able to pull of the functionality of an 8-bit home computer (without necessarily being 8-bit or hardware-limited)
<cheater> so it would be nice to have a "home computer" kind of thing built into every keyboard.
<cheater> advanced macros written in bash
<cheater> i/o stuff and other low level things written in forth if they want
<cheater> (eg serial communication for example)
<cheater> you could have a nice little system this way
<cheater> and if it catches on with keyboards, i mean manufacturers are increasingly using qmk, which imo is kind of a kludge and there's certainly going to be new stuff that'll replace it.
<cheater> so
<cheater> a bunch of new keyboards could have nice little home computers on them. with bash and forth. that would be cool, right?
<cheater> and you're not limited by hardware, because you're not running on an actual 8-bit micro
<cheater> so you're free to be a little inefficient, and the whole idea behind using bash and forth is just about using a language that feels right for the kind of thing it's doing
pareidolia has quit [Quit: ZNC 1.7.3 - https://znc.in]
<dzho> my friend have you seen the Raspberry Pi 400?
pareidolia has joined #forth
<cheater> yeah in fact i've thought that it would be a nice hardware platform to do something like this
<cheater> but
<cheater> eventually you'd want a self contained system
<cheater> that can be mass produced
<cheater> raspberry pi is just a linux computer
<dzho> ok
<cheater> it's not anything at all like an 80s home computer
<cheater> what would a home computer that boots into basic or forth but doesn't run on an antique microprocessor look like?
<cheater> that's kind of my thing right now
jedb_ has joined #forth
jedb has quit [Ping timeout: 264 seconds]
Zarutian_HTC has joined #forth
cp- has quit [Ping timeout: 240 seconds]
cp- has joined #forth
boru` has joined #forth
boru has quit [Disconnected by services]
boru` is now known as boru
cp- has quit [Quit: Disappeared in a puff of smoke]
cp- has joined #forth
gravicappa has joined #forth
yyyyyy has joined #forth
yyyyyy` has joined #forth
Zarutian_HTC has quit [Ping timeout: 265 seconds]
gravicappa has quit [Ping timeout: 240 seconds]
hosewiejacke has joined #forth
hosewiejacke2 has joined #forth
yyyyyy`` has joined #forth
hosewiejacke has quit [Ping timeout: 256 seconds]
yyyyyy` has quit [Ping timeout: 256 seconds]
sts-q has quit [Ping timeout: 240 seconds]
nmz has left #forth ["Ploop"]
cmtptr has quit [Read error: Connection reset by peer]
sts-q has joined #forth
cmtptr has joined #forth
hosewiejacke2 has quit [Ping timeout: 240 seconds]
proteus-guy has joined #forth
WickedShell has quit [Remote host closed the connection]
jedb_ is now known as jedb
hosewiejacke2 has joined #forth
Keshl has quit [Read error: Connection reset by peer]
Keshl has joined #forth
actuallybatman has quit [Ping timeout: 260 seconds]
joe9 has quit [Ping timeout: 240 seconds]
joe9 has joined #forth
sts-q has quit [Ping timeout: 265 seconds]
gravicappa has joined #forth
xek has joined #forth
<cheater> i mean some people would say that a classic computer is about direct control of the hardware, no unpredictable results after compilation, etc
<cheater> but to me it's about the immediacy
<boru> So you'd be happy with a fast computer that gives you wrong answers sometimes?
<cheater> ie you turn it on and you are immediately in the editor for your program which is also the prompt and the interpreter
<cheater> boru: i have no idea where you got that from
<cheater> the opposite of "not unpredictable" is not "wrong" it's "unpredictable"
<boru> I would say that wrong answers sometimes is in the set of unpredictability.
<cheater> well, sure, for example: because you are programming way up the stack, and are trying to work with something that is many layers deep, you are having a hard time figuring out what might be interfering with your work and giving you a different result than what you intend
<cheater> but it might also be unpredictable timing
<cheater> sometimes too fast, sometimes too slow
<boru> I'd class that as determinism.
<cheater> as in "determined to be x" as in "predicted correctly to be x"?
<cheater> those are synonyms
<boru> In computing context, no, not really.
<cheater> "unpredictable" isn't a universally adopted technical term in computer engineering. it means just what i choose it to mean -- neither more nor less.
<cheater> so as you're saying i'd be happy to take a modern cpu and sacrifice some of the speed to get the kind of predictability that you're thinking of
dysprosaic has joined #forth
hosewiejacke2 has quit [Quit: Leaving]
xek_ has joined #forth
xek has quit [Ping timeout: 256 seconds]
dave0 has joined #forth
Zarutian_HTC has joined #forth
tabemann has quit [Remote host closed the connection]
tabemann has joined #forth
<veltas> cheater: VMs were used to save space on 8-bit machines, where the code to wrangle 16-bit or 32-bit integers or floating point numbers was always going to be larger than a list of operations on a stack or a register based machine
<veltas> SWEET16 makes much shorter code than 6502, it's implemented in 6502 and is register-based
<veltas> And the Spectrum's calculator stack VM is written in Z80 and lets you implement complicated mathematical approximation schemes (as it's used to implement COS, etc) with a lot less footprint than Z80 would
Zarutian_HTC has quit [Remote host closed the connection]
proteus-guy has quit [Ping timeout: 264 seconds]
<cheater> wow that's really cool and interesting
<cheater> veltas: so this way we get more space in the rom?
<veltas> Well without doing it that way I don't think they could have fit the approximation routines
<veltas> Or their structure would have been much more complicated and buggy
gravicappa has quit [Ping timeout: 264 seconds]
dysprosaic has quit [Read error: Connection reset by peer]
dysprosaic has joined #forth
dave0 has quit [Ping timeout: 256 seconds]
gravicappa has joined #forth
yyyyyy`` has quit [Ping timeout: 265 seconds]
yyyyyy has quit [Ping timeout: 256 seconds]
gravicappa has quit [Ping timeout: 264 seconds]
heredoc has quit [Ping timeout: 272 seconds]
gravicappa has joined #forth
actuallybatman has joined #forth
heredoc has joined #forth
jimt[m] has quit [Quit: Bridge terminating on SIGTERM]
patrickg has quit [Quit: Bridge terminating on SIGTERM]
siraben has quit [Quit: Bridge terminating on SIGTERM]
jimt[m] has joined #forth
patrickg has joined #forth
siraben has joined #forth
cp- has quit [Quit: Disappeared in a puff of smoke]
cp- has joined #forth
WickedShell has joined #forth
cp- has quit [Quit: Disappeared in a puff of smoke]
Bahman has joined #forth
Bahman has quit [Quit: Connection closed]
cp- has joined #forth
cheater has quit [Ping timeout: 265 seconds]
sts-q has joined #forth
Wojciech_K has quit [*.net *.split]
WojciechK has joined #forth
xek_ has quit [Remote host closed the connection]
xek_ has joined #forth
gravicappa has quit [Ping timeout: 240 seconds]
cheater has joined #forth
dave0 has joined #forth
Mat8 has joined #forth
Gromboli4 has joined #forth
Gromboli has quit [Ping timeout: 260 seconds]
Gromboli4 is now known as Gromboli
inode has joined #forth
<Mat8> G'Day everyone.
<Mat8> I want to get your attentions to the Parallax Propeller II, which seems to be finally 'buyable' now. The MCU comes with a complete Forth environment as bootloader
<inode> where from?
<TangentDelta> Hmm I have a Propeller 1 experimentation board that I need to play with at some point.
<TangentDelta> Lots of Propeller 2 stuff on their website
<Mat8> you can order directly from there store
<Mat8> ... soldering will not be such easy as I see
<inode> at least it's not bga, you can drag solder tqfp
<Mat8> for my it's difficult enough
<Mat8> I probably buy a P2 edge board for prototyping
<Mat8> but .. it's nice finally to play with a real chip
xek_ has quit [Ping timeout: 256 seconds]
<Mat8> ciao
Mat8 has quit [Quit: Leaving]
dave0 has quit [Ping timeout: 265 seconds]
dave0 has joined #forth
X-Scale has quit [Ping timeout: 240 seconds]
X-Scale` has joined #forth
X-Scale` is now known as X-Scale