<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
<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.