Another failure of 'let the market decide.'
https://spectrum.ieee.org/lean-software-development
On Sat, 10 Feb 2024 08:10:13 -0800 (PST), Fred Bloggs ><bloggs.fredbloggs.fred@gmail.com> wrote:
Another failure of 'let the market decide.'
https://spectrum.ieee.org/lean-software-development
Complexity is a game that some people enjoy.
And some people like simplicity. Their stuff works better.
On a sunny day (Sat, 10 Feb 2024 09:06:03 -0800) it happened John Larkin ><jl@997PotHill.com> wrote in <g4bfsidsbmg316togaaff19e63vv1pnqbo@4ax.com>:
On Sat, 10 Feb 2024 08:10:13 -0800 (PST), Fred Bloggs >><bloggs.fredbloggs.fred@gmail.com> wrote:
Another failure of 'let the market decide.'
https://spectrum.ieee.org/lean-software-development
Complexity is a game that some people enjoy.
And some people like simplicity. Their stuff works better.
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
https://panteltje.nl/panteltje/pic/scope_pic/index.html
nice to do Fourier transform in a few bytes... sine lookup table
has a Usenet compatible output, use fixed size font:
https://panteltje.nl/panteltje/pic/scope_pic/screen_dump2.txt
Most web things I have coded in a few lines of C,
started on a browser too, but that is a moving target.. takes too much time. >Also wrote this Newsreader I am posting this with, it runs on a Raspberry Pi4 >raspberrypi: ~ # whereis NewsFleX
NewsFleX: /usr/local/bin/NewsFleX
raspberrypi: ~ # lb /usr/local/bin/NewsFleX
-rwxr-xr-x 1 root root 383796 Mar 13 2023 /usr/local/bin/NewsFleX*
lb is short for ls -rtl --color=none
383796 Mar 13 2023 /usr/local/bin/NewsFleX*
'lb' is short for ls -rtl --color=none
383,796 bytes
So < 400 kB
Linked in is libforms for the GUI.
Old verion for x86 here:
https://panteltje.nl/panteltje/newsflex/index.html
libforms however changed, so unless you use a very old verion of that it won't work.
I have dropped that xforms lib too and still have a GUI...
https://panteltje.nl/pub/boats_and_planes.gif
runs 24/7
-rwxr-xr-x 1 root root 329604 Feb 7 2021 xgpspc
329,604 bytes
monitors planes and boat traffic, does navighation, auto-pilot what not. >latest version even has a fire solution.. for defence of course
Only uses these libs, from the Makefile:
$(COMPILER) -o xgpspc $(XGPSPC) -lm -lpthread -lXaw -ljpeg
libmath, libjpeg and libXaw (for the display).
Simplicity, or simple city or whatever it was
of course gcc as compiler.
Or gpasm for the PIC asm code.
I think the ever more bloat comes from trying to sell ever more,
a capitalist trick to suck you for money.
More bloat causes need for ever more powerfull hardware.
So bloat writers get shares in hardware manufacurers and get rich.
Microsore or whatever is a big example.
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje <alien@comet.invalid> wrote:
On a sunny day (Sat, 10 Feb 2024 09:06:03 -0800) it happened John Larki <jl@997PotHill.com> wrote in <g4bfsidsbmg316togaaff19e63vv1pnqbo@4ax.com>:
On Sat, 10 Feb 2024 08:10:13 -0800 (PST), Fred Bloggs <bloggs.fredbloggs.fred@gmail.com> wrote:
That's all very impressive, Jan, but if you were *truly* a hardcore programmer, you'd be using machine code. ;-)
More seriously, bloat enables coders to hide back doors much more effectively. They'd never get away with that kind of subterfuge with
ASM.
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje <alien@comet.invalid>
wrote:
On a sunny day (Sat, 10 Feb 2024 09:06:03 -0800) it happened John Larkin >><jl@997PotHill.com> wrote in <g4bfsidsbmg316togaaff19e63vv1pnqbo@4ax.com>:
On Sat, 10 Feb 2024 08:10:13 -0800 (PST), Fred Bloggs >>><bloggs.fredbloggs.fred@gmail.com> wrote:
Another failure of 'let the market decide.'
https://spectrum.ieee.org/lean-software-development
Complexity is a game that some people enjoy.
And some people like simplicity. Their stuff works better.
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
https://panteltje.nl/panteltje/pic/scope_pic/index.html
nice to do Fourier transform in a few bytes... sine lookup table
has a Usenet compatible output, use fixed size font:
https://panteltje.nl/panteltje/pic/scope_pic/screen_dump2.txt
Most web things I have coded in a few lines of C,
started on a browser too, but that is a moving target.. takes too much time. >>Also wrote this Newsreader I am posting this with, it runs on a Raspberry Pi4 >>raspberrypi: ~ # whereis NewsFleX
NewsFleX: /usr/local/bin/NewsFleX
raspberrypi: ~ # lb /usr/local/bin/NewsFleX
-rwxr-xr-x 1 root root 383796 Mar 13 2023 /usr/local/bin/NewsFleX*
lb is short for ls -rtl --color=none
383796 Mar 13 2023 /usr/local/bin/NewsFleX*
'lb' is short for ls -rtl --color=none
383,796 bytes
So < 400 kB
Linked in is libforms for the GUI.
Old verion for x86 here:
https://panteltje.nl/panteltje/newsflex/index.html
libforms however changed, so unless you use a very old verion of that it won't work.
I have dropped that xforms lib too and still have a GUI...
https://panteltje.nl/pub/boats_and_planes.gif
runs 24/7
-rwxr-xr-x 1 root root 329604 Feb 7 2021 xgpspc
329,604 bytes
monitors planes and boat traffic, does navighation, auto-pilot what not. >>latest version even has a fire solution.. for defence of course
Only uses these libs, from the Makefile:
$(COMPILER) -o xgpspc $(XGPSPC) -lm -lpthread -lXaw -ljpeg
libmath, libjpeg and libXaw (for the display).
Simplicity, or simple city or whatever it was
of course gcc as compiler.
Or gpasm for the PIC asm code.
I think the ever more bloat comes from trying to sell ever more,
a capitalist trick to suck you for money.
More bloat causes need for ever more powerfull hardware.
So bloat writers get shares in hardware manufacurers and get rich. >>Microsore or whatever is a big example.
That's all very impressive, Jan, but if you were *truly* a hardcore >programmer, you'd be using machine code. ;-)
More seriously, bloat enables coders to hide back doors much more >effectively. They'd never get away with that kind of subterfuge with
ASM.
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje wrote:
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
This is C++.
https://en.cppreference.com/w/cpp/links/libs
Now I program in Python. I really don't know how to program
in Python. I'm googlesmart. I google what I want to do,
download the appropriate library and follow the documentation.
I don't know if there is something malicious in there. That's
why I really hate every little stupid program and app that
thinks it needs to auto-update and needs admin approval to
install and screw with the operating system. If there is
a portable option, I get that and I keep old versions until
they break.
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje wrote:
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
This is C++.
https://en.cppreference.com/w/cpp/links/libs
Now I program in Python. I really don't know how to program
in Python. I'm googlesmart. I google what I want to do,
download the appropriate library and follow the documentation.
I don't know if there is something malicious in there. That's
why I really hate every little stupid program and app that
thinks it needs to auto-update and needs admin approval to
install and screw with the operating system. If there is
a portable option, I get that and I keep old versions until
they break.
On a sunny day (Sun, 11 Feb 2024 09:44:22 +0000) it happened Cursitor Doom ><cd@notformail.com> wrote in <nh5hsit657809ebhciaseg2vgprofkhfv1@4ax.com>:
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje <alien@comet.invalid> >>wrote:
On a sunny day (Sat, 10 Feb 2024 09:06:03 -0800) it happened John Larkin >>><jl@997PotHill.com> wrote in <g4bfsidsbmg316togaaff19e63vv1pnqbo@4ax.com>: >>>
On Sat, 10 Feb 2024 08:10:13 -0800 (PST), Fred Bloggs >>>><bloggs.fredbloggs.fred@gmail.com> wrote:
Another failure of 'let the market decide.'
https://spectrum.ieee.org/lean-software-development
Complexity is a game that some people enjoy.
And some people like simplicity. Their stuff works better.
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
https://panteltje.nl/panteltje/pic/scope_pic/index.html
nice to do Fourier transform in a few bytes... sine lookup table
has a Usenet compatible output, use fixed size font:
https://panteltje.nl/panteltje/pic/scope_pic/screen_dump2.txt
Most web things I have coded in a few lines of C,
started on a browser too, but that is a moving target.. takes too much time. >>>Also wrote this Newsreader I am posting this with, it runs on a Raspberry Pi4
raspberrypi: ~ # whereis NewsFleX
NewsFleX: /usr/local/bin/NewsFleX
raspberrypi: ~ # lb /usr/local/bin/NewsFleX
-rwxr-xr-x 1 root root 383796 Mar 13 2023 /usr/local/bin/NewsFleX*
lb is short for ls -rtl --color=none
383796 Mar 13 2023 /usr/local/bin/NewsFleX*
'lb' is short for ls -rtl --color=none
383,796 bytes
So < 400 kB
Linked in is libforms for the GUI.
Old verion for x86 here:
https://panteltje.nl/panteltje/newsflex/index.html
libforms however changed, so unless you use a very old verion of that it won't work.
I have dropped that xforms lib too and still have a GUI...
https://panteltje.nl/pub/boats_and_planes.gif
runs 24/7
-rwxr-xr-x 1 root root 329604 Feb 7 2021 xgpspc
329,604 bytes
monitors planes and boat traffic, does navighation, auto-pilot what not. >>>latest version even has a fire solution.. for defence of course
Only uses these libs, from the Makefile:
$(COMPILER) -o xgpspc $(XGPSPC) -lm -lpthread -lXaw -ljpeg
libmath, libjpeg and libXaw (for the display).
Simplicity, or simple city or whatever it was
of course gcc as compiler.
Or gpasm for the PIC asm code.
I think the ever more bloat comes from trying to sell ever more,
a capitalist trick to suck you for money.
More bloat causes need for ever more powerfull hardware.
So bloat writers get shares in hardware manufacurers and get rich. >>>Microsore or whatever is a big example.
That's all very impressive, Jan, but if you were *truly* a hardcore >>programmer, you'd be using machine code. ;-)
I have used machine code in the long ago past.
Here is a nice Z80 disassembler I wrote:
https://panteltje.nl/panteltje/z80/index.html
from emails I know people still use it.
More seriously, bloat enables coders to hide back doors much more >>effectively. They'd never get away with that kind of subterfuge with
ASM.
Yes, all those libraries.. I follow the news and sometimes things are loaded >that have backdoors.
But asm, long ago I was involved with card hacking,
things are read only, and how to list the code of a PIC micro
(in those days in the TV smart cards for encrypted TV channels).
That is how I got interested and came to use Microchip PICs..
It is not always easy to list those codes to get the secret algo they use to >encrypt TV transmissions.
I stopped when some EU politician got upset.. some persisted and got sentenced....
But that is how I learned about PICs and got interested in crypto.
On Sun, 11 Feb 2024 11:26:15 GMT, Jan Panteltje <alien@comet.invalid>
wrote:
On a sunny day (Sun, 11 Feb 2024 09:44:22 +0000) it happened Cursitor Doom >> <cd@notformail.com> wrote in <nh5hsit657809ebhciaseg2vgprofkhfv1@4ax.com>: >>
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje <alien@comet.invalid>
wrote:
On a sunny day (Sat, 10 Feb 2024 09:06:03 -0800) it happened John Larkin >>>> <jl@997PotHill.com> wrote in <g4bfsidsbmg316togaaff19e63vv1pnqbo@4ax.com>: >>>>
On Sat, 10 Feb 2024 08:10:13 -0800 (PST), Fred Bloggs
<bloggs.fredbloggs.fred@gmail.com> wrote:
Another failure of 'let the market decide.'
https://spectrum.ieee.org/lean-software-development
Complexity is a game that some people enjoy.
And some people like simplicity. Their stuff works better.
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
https://panteltje.nl/panteltje/pic/scope_pic/index.html
nice to do Fourier transform in a few bytes... sine lookup table
has a Usenet compatible output, use fixed size font:
https://panteltje.nl/panteltje/pic/scope_pic/screen_dump2.txt
Most web things I have coded in a few lines of C,
started on a browser too, but that is a moving target.. takes too much time.
Also wrote this Newsreader I am posting this with, it runs on a Raspberry Pi4
raspberrypi: ~ # whereis NewsFleX
NewsFleX: /usr/local/bin/NewsFleX
raspberrypi: ~ # lb /usr/local/bin/NewsFleX
-rwxr-xr-x 1 root root 383796 Mar 13 2023 /usr/local/bin/NewsFleX*
lb is short for ls -rtl --color=none
383796 Mar 13 2023 /usr/local/bin/NewsFleX*
'lb' is short for ls -rtl --color=none
383,796 bytes
So < 400 kB
Linked in is libforms for the GUI.
Old verion for x86 here:
https://panteltje.nl/panteltje/newsflex/index.html
libforms however changed, so unless you use a very old verion of that it won't work.
I have dropped that xforms lib too and still have a GUI...
https://panteltje.nl/pub/boats_and_planes.gif
runs 24/7
-rwxr-xr-x 1 root root 329604 Feb 7 2021 xgpspc
329,604 bytes
monitors planes and boat traffic, does navighation, auto-pilot what not. >>>> latest version even has a fire solution.. for defence of course
Only uses these libs, from the Makefile:
$(COMPILER) -o xgpspc $(XGPSPC) -lm -lpthread -lXaw -ljpeg
libmath, libjpeg and libXaw (for the display).
Simplicity, or simple city or whatever it was
of course gcc as compiler.
Or gpasm for the PIC asm code.
I think the ever more bloat comes from trying to sell ever more,
a capitalist trick to suck you for money.
More bloat causes need for ever more powerfull hardware.
So bloat writers get shares in hardware manufacurers and get rich.
Microsore or whatever is a big example.
That's all very impressive, Jan, but if you were *truly* a hardcore
programmer, you'd be using machine code. ;-)
I have used machine code in the long ago past.
Here is a nice Z80 disassembler I wrote:
https://panteltje.nl/panteltje/z80/index.html
from emails I know people still use it.
More seriously, bloat enables coders to hide back doors much more
effectively. They'd never get away with that kind of subterfuge with
ASM.
Yes, all those libraries.. I follow the news and sometimes things are loaded >> that have backdoors.
But asm, long ago I was involved with card hacking,
things are read only, and how to list the code of a PIC micro
(in those days in the TV smart cards for encrypted TV channels).
That is how I got interested and came to use Microchip PICs..
It is not always easy to list those codes to get the secret algo they use to >> encrypt TV transmissions.
I stopped when some EU politician got upset.. some persisted and got sentenced....
But that is how I learned about PICs and got interested in crypto.
Many thanks for that well thought-out and well-reasoned response, Jan.
Nice to hear from someone who knows what they're talking about instead
of some half-baked garbage from a moron like Bill Sloman who wouldn't
even be able to set up something as elementary as an Antikythera
orrery. ;-)
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje wrote:
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
This is C++.
https://en.cppreference.com/w/cpp/links/libs
Now I program in Python. I really don't know how to program
in Python. I'm googlesmart. I google what I want to do,
download the appropriate library and follow the documentation.
I don't know if there is something malicious in there. That's
why I really hate every little stupid program and app that
thinks it needs to auto-update and needs admin approval to
install and screw with the operating system. If there is
a portable option, I get that and I keep old versions until
they break.
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
This is C++.
https://en.cppreference.com/w/cpp/links/libs
On 2/11/2024 10:47 AM, Wanderer wrote:
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
This is C++.
https://en.cppreference.com/w/cpp/links/libs
You can also look at different "strains" of C++
(e.g., EC++) to avoid some of the cruft/overhead
[And, there are other OO languages that have
friendlier characteristics]
How is this code supposed to work:
   memcpy(LAST_LOGICAL_MEMORY_ADDRESS-VALUE, some_address, VALUE+7)
Or this?
   memcpy(some_address, LAST_LOGICAL_MEMORY_ADDRESS-VALUE, VALUE+7)
How *will* it work on a 68K? 80386? ARMv8?
On bare metal? Under a toy OS? Under a "real" OS?
[...]
E.g., my system is entirely object *based* despite not
being written in an OO language (think about the difference).
It makes sense for a developer (or user) to think of verbs
and nouns -- OPEN the GARAGE DOOR.
On 2024-02-11, Don Y wrote:
[...]
E.g., my system is entirely object *based* despite not
being written in an OO language (think about the difference).
It makes sense for a developer (or user) to think of verbs
and nouns -- OPEN the GARAGE DOOR.
You open the garage door. It's dark inside.
( sorry, had to :) )
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje wrote:
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
This is C++.
https://en.cppreference.com/w/cpp/links/libs
Now I program in Python. I really don't know how to program
in Python. I'm googlesmart. I google what I want to do,
download the appropriate library and follow the documentation.
I don't know if there is something malicious in there. That's
why I really hate every little stupid program and app that
thinks it needs to auto-update and needs admin approval to
install and screw with the operating system. If there is
a portable option, I get that and I keep old versions until
they break.
On 11/02/2024 8:44 pm, Cursitor Doom wrote:
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje <alien@comet.invalid> wrote: >>> On a sunny day (Sat, 10 Feb 2024 09:06:03 -0800) it happened John Larki <jl@997PotHill.com> wrote in<g4bfsidsbmg316togaaff19e63vv1pnqbo@4ax.com>:
On Sat, 10 Feb 2024 08:10:13 -0800 (PST), Fred Bloggs <bloggs.fredbloggs.fred@gmail.com> wrote:
<snip>
That's all very impressive, Jan, but if you were *truly* a hardcore
programmer, you'd be using machine code. ;-)
Nobody writes machine code. Assembler has a one-to-one relationship with >machine code, but tit is easier to write and read.
You must silence hysteric virus detectors before you could do that.More seriously, bloat enables coders to hide back doors much more
effectively. They'd never get away with that kind of subterfuge with
ASM.
Of course they would. Have your ever tried to make sense of poorly
documented and commented assembly code?
And it is possible to make machine code self-modifying - at least on
some machines - which offers even more opportunity, to put in back doors
(and take then away again after you've exploited them).
--
Bill Sloman, Sydney
Nobody hu? Smith does. Written a compiler in hex code using only
a hex to bin converter.
https://dacvs.neocities.org/SF/
The take away is, it is easier than you expect.
On 2024-02-11, Don Y wrote:
[...]
E.g., my system is entirely object *based* despite not
being written in an OO language (think about the difference).
It makes sense for a developer (or user) to think of verbs
and nouns -- OPEN the GARAGE DOOR.
You open the garage door. It's dark inside.
( sorry, had to :) )
On 2/14/2024 6:05 AM, albert@spenarnc.xs4all.nl wrote:
Nobody hu? Smith does. Written a compiler in hex code using only
a hex to bin converter.
https://dacvs.neocities.org/SF/
The take away is, it is easier than you expect.
One writes code to be *read*. Just because you CAN do something
doesn't mean you SHOULD do that something. People spend inane
amounts of time arranging dominos... just to knock them over
(what's the point in that?)
A kid I attended school with built his own little computer (pre-CP/M),
wrote a monitor in machine code that he then burned into ROM.
Used that to write an assembler. Then an OS, etc. Interesting
"hobby" and worthwhile only if your time has no value.
I had a job where we had a cheap, *live* system monitor that would
let us watch variables and patch code while the system was running.
But, the UI was limited to a six digit *numeric* display -- which
means "split octal" (0xFFFF is 377377) instead of hexadecimal -- and
keypad. So, you had to memorize opcodes in octal and convert
all arguments to that prior to use/recognition.
"Walking" (ADDRESS++) through the code required you to recognize
opcodes and recall how many bytes followed before the next opcode
would be encountered. Or *if* it would be encountered (as absolute
and relative jumps/calls could interrupt the sequential flow).
Having that *live* ability to interact with the system was a huge
asset (at a time when ICE was uncommon -- and expensive!) and was
present in every product that we released (so, you could carry a
tiny piece of hardware to a site and interact with the system).
You could twiddle data and code and watch how the system reacted
without having to go back to the development environment and
turn the crank for a "what if".
But, the requirement to "hand disassemble/assemble" was just ridiculous!
(why not the same hardware interface augmented with some code to make
the UX less risky? Why not tied into the symbol table of the
running executable so you KNEW what you were seeing and tweaking?)
Prior to that, I'd written machine code (again in octal) for the Nova.
Data entry via the 16 toggle switches on the front panel. Data
readout via the 16 indicator lamps associated with them.
Again, a convenient capability (when access to an assembler/compiler
wasn't possible in the field... "I need to throw together a little
routine to exercise some particular bit of hardware so I can
'scope the hardware) but annoyingly complex and not a very portable
skillset.
Again, a convenient capability (when access to an assembler/compiler
wasn't possible in the field... "I need to throw together a little
routine to exercise some particular bit of hardware so I can
'scope the hardware) but annoyingly complex and not a very portable
skillset.
I write in machine code sometimes when it's the best approach. On the comp.lang.c newsgroup, we've had a *lot* of entries for the
'obfuscated C contest' over the years and a sub-set of us decided it
would be a hoot to have an obfuscated machine code contest as well. Personally I found it really, really enjoyable (I was in the minority
as we never had another one, though).
I don't know if there is something malicious in there. That's
why I really hate every little stupid program and app that
thinks it needs to auto-update and needs admin approval to
install and screw with the operating system. If there is
a portable option, I get that and I keep old versions until
they break.
Totally agree. I'm waiting till one managed to subvert one
of the mainstream browsers with a backdoor via the obligatory
daily updates.
One writes code to be *read*. Just because you CAN do something
doesn't mean you SHOULD do that something. People spend inane
amounts of time arranging dominos... just to knock them over
(what's the point in that?)
A kid I attended school with built his own little computer (pre-CP/M),
wrote a monitor in machine code that he then burned into ROM.
Used that to write an assembler. Then an OS, etc. Interesting
"hobby" and worthwhile only if your time has no value.
I had a job where we had a cheap, *live* system monitor that would
let us watch variables and patch code while the system was running.
But, the UI was limited to a six digit *numeric* display -- which
means "split octal" (0xFFFF is 377377) instead of hexadecimal -- and
keypad. So, you had to memorize opcodes in octal and convert
all arguments to that prior to use/recognition.
"Walking" (ADDRESS++) through the code required you to recognize
opcodes and recall how many bytes followed before the next opcode
would be encountered. Or *if* it would be encountered (as absolute
and relative jumps/calls could interrupt the sequential flow).
Having that *live* ability to interact with the system was a huge
asset (at a time when ICE was uncommon -- and expensive!) and was
present in every product that we released (so, you could carry a
tiny piece of hardware to a site and interact with the system).
You could twiddle data and code and watch how the system reacted
without having to go back to the development environment and
turn the crank for a "what if".
But, the requirement to "hand disassemble/assemble" was just ridiculous!
(why not the same hardware interface augmented with some code to make
the UX less risky? Why not tied into the symbol table of the
running executable so you KNEW what you were seeing and tweaking?)
Prior to that, I'd written machine code (again in octal) for the Nova.
Data entry via the 16 toggle switches on the front panel. Data
readout via the 16 indicator lamps associated with them.
Again, a convenient capability (when access to an assembler/compiler
wasn't possible in the field... "I need to throw together a little
routine to exercise some particular bit of hardware so I can
'scope the hardware) but annoyingly complex and not a very portable
skillset.
How do you know that what you've "frozen" hasn't already been compromised?
A latent virus can wreak havoc on your system *years* after infection.
On Wed, 14 Feb 2024 11:58:59 -0700 Don Y wrote
How do you know that what you've "frozen" hasn't already been compromised? >> A latent virus can wreak havoc on your system *years* after infection.
I update the anti-virus, spyware and malware programs.
I got fan-made kerbal space program mods that want to access
to the internet to check for updates. Or your download some
freeware to open some .crap extension that some fool used on
a file and this app wants admin priviledges so it can integrate
into the operation and become a default program. When I was in
college I had programming Professor who taught Pascal and his
big thing was 'scoping'. Every procedure should be self-contained
and have simple defined connection to the global program.
Now every
program wants to pepper my computer with dll's they that programmer
picked up from a package he got from who knows where.
You're right. I don't know if my current system is infected but I know
the odds of getting infected don't get better with more interactions and
more partners.
Graet to see you Don after all these years - 2006!!
I had a customer many years ago who did write a ton of code in hex. To
enable modifications they had a bit of space after each function, so
edits to a function did not need shifting everything after it :)
On 2/14/2024 6:05 AM, albert@spenarnc.xs4all.nl wrote:
Nobody hu? Smith does. Written a compiler in hex code using only
a hex to bin converter.
https://dacvs.neocities.org/SF/
The take away is, it is easier than you expect.
One writes code to be *read*. Just because you CAN do something
doesn't mean you SHOULD do that something. People spend inane
amounts of time arranging dominos... just to knock them over
(what's the point in that?)
On 2/11/2024 10:47 AM, Wanderer wrote:
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje wrote:
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
A minor point; you THOUGHT you knew what the ASM would look like...
you knew what the processor should be *doing*.
Newer compilers are often considerably smarter than the
programmers using them. They will rearrange code (where
dependencies allow it) to avoid pipeline stalls. Or,
realign structures to avoid misaligned memory accesses.
Or even eliminate calls to functions that it can inline
more efficiently.
lørdag den 17. februar 2024 kl. 23.01.21 UTC+1 skrev John Larkin:
On Sun, 11 Feb 2024 13:43:33 -0700, Don Y
<blocked...@foo.invalid> wrote:
On 2/11/2024 10:47 AM, Wanderer wrote:Or it may skip doing things that it thinks are unnecessary. As FPGA
On Sun, 11 Feb 2024 06:43:31 GMT, Jan Panteltje wrote:
It is cool coding in asm without using external libraries.
I can do anything I like in KILOBYTES:
Back in the 20th century, I knew how to program in C. I
knew what the assembly code would like after I compiled it.
A minor point; you THOUGHT you knew what the ASM would look like...
you knew what the processor should be *doing*.
Newer compilers are often considerably smarter than the
programmers using them. They will rearrange code (where
dependencies allow it) to avoid pipeline stalls. Or,
realign structures to avoid misaligned memory accesses.
Or even eliminate calls to functions that it can inline
more efficiently.
compilers will do.
One trick is to do stuff so complex that the compiler optimizer gives
up. Or use terms that it can't know at compile time.
if you need that you are doing something wrong..
On February 11, Don Y wrote:
Newer compilers are often considerably smarter than the
programmers using them. They will rearrange code (where
dependencies allow it) to avoid pipeline stalls. Or,
realign structures to avoid misaligned memory accesses.
Or even eliminate calls to functions that it can inline
more efficiently.
Indeed. This was the motivation, and result, of the original RISC architecture. Revolutionary, in its day, as processors were
becoming astonishingly complex, with trig functions wired into
a single machine op code!
And still today, those ideas are misunderstood, as many engineers
say "yeah, RISC is faster because they have fewer instructions,
it's obvious." (also cheaper, in cost/benefit)
Given these considerations, does anybody write assembly code for
modern RISC processors?
In article <uqivkh$2ontb$2@dont-email.me>,
Don Y <blockedofcourse@foo.invalid> wrote:
On 2/14/2024 6:05 AM, albert@spenarnc.xs4all.nl wrote:
Nobody hu? Smith does. Written a compiler in hex code using only
a hex to bin converter.
https://dacvs.neocities.org/SF/
The take away is, it is easier than you expect.
One writes code to be *read*. Just because you CAN do something
doesn't mean you SHOULD do that something. People spend inane
amounts of time arranging dominos... just to knock them over
(what's the point in that?)
This project is meant to be read. You can't be serious suggesting
that this is a tool to be used.
If you spend the time looking at the code, you'd discover that it
is quite educational, and make you wonder where the software bloat
comes from.
On 2/17/2024 3:49 AM, albert@spenarnc.xs4all.nl wrote:
In article <uqivkh$2ontb$2@dont-email.me>,
Don Y <blockedofcourse@foo.invalid> wrote:
On 2/14/2024 6:05 AM, albert@spenarnc.xs4all.nl wrote:
Nobody hu? Smith does. Written a compiler in hex code using only
a hex to bin converter.
https://dacvs.neocities.org/SF/
The take away is, it is easier than you expect.
One writes code to be *read*. Just because you CAN do something
doesn't mean you SHOULD do that something. People spend inane
amounts of time arranging dominos... just to knock them over
(what's the point in that?)
This project is meant to be read. You can't be serious suggesting
that this is a tool to be used.
Why write code that isn't going to be used?
If you spend the time looking at the code, you'd discover that it
is quite educational, and make you wonder where the software bloat
comes from.
Why does your PHONE have a clock in it? AND a calendar?
Don't you remember today's date? Don't you wear a wristwatch?
Why does your PC have these data, too? Don't you have a
*phone* (er, wristwatch and a memory for dates)?
Which of these has the CORRECT information? How do you know?
[I have an "atomic clock" that is supposed to keep correct
time/date. Except, twice a year, it diddles the time for
DST start end. *But*, we don't observe DST! So, while
all of the DUMB clocks in the house correctly track the REAL
time all year round, this one has to be "fixed", twice
a year, to get it to IGNORE the DST changes! So, twice
a year I look at the clock and wonder why *my* notion of
the current time differs from it's -- and then tell
it to move me to the next time zone, east or west, as
appropriate]
Why do I *need* an icon IN my word processor to invoke the
spell-checker? Thesaurus? Grammar check? Reading complexity
assessment? How does having them accessible *in* the word
processor help me if I am writing an email -- in an entirely
different "text editor" that mimics much of the functionality
of the word processor?
Does each possible application that allows for text entry
merit the availability of these tools? What if I wanted
to send an SMS?
Are you just LAZY and can't invoke each of these as STAND-ALONE
tools, as needed?
So, EVERY app gets burdened with new implementations of
tools that should be separate entities. To economize on
resources AND ensure for more consistent results!
[Windows lists files in "user-friendly order" -- which differs
from ALPHABETICAL order! Other applications opt for a more
traditional LRAlpha. Comparing file lists between the two
just ADDS to confusion (loss of productivity).]
Here is a trivial, ubiquitous, algorithm written in machine code:
DD217A00DD7E01FE323805DD3401185FDD360100DD7E02FE3C3805DD3402184F >DD360200DD7E03FE3C3805DD3403183FDD360300DD7E04FE183805DD3404182F >DD360400216F000600DD4E0609DD7E05BE3805DD34051817DD360500DD7E06FE >0C3805DD34061807DD360600DD34071F1F1C1F1E1F1E1F1F1E1F1E1F
No comments -- machines don't read comments! And, machines don't
need the code to be formatted to show instruction breaks -- it's
just a large array of bytes!
søndag den 18. februar 2024 kl. 05.11.25 UTC+1 skrev Anthony William Sloman:
On Sunday, February 18, 2024 at 11:29:27 AM UTC+11, Don Y wrote:
On 2/17/2024 1:18 PM, RichD wrote:<snip>
On February 11, Don Y wrote:
Technically speaking, the software that converts assembly code into machine code is an assembler, not a compiler.Given these considerations, does anybody write assembly code for
modern RISC processors?
ASM or machine code? The two differ by the presence of a compiler
in the former that is absent in the latter.
There's a one-to-one relationship between assembler mnemonics and numbers that constitute the machine code.
usually but not always
On February 18, skrev Lasse Langwadt Christensen:
Given these considerations, does anybody write assembly code for
modern RISC processors?
ASM or machine code? The two differ by the presence of a compiler
in the former that is absent in the latter.
Technically speaking, the software that converts assembly code into machine code is an assembler,
not a compiler.
There's a one-to-one relationship between assembler mnemonics and numbers that constitute the machine code.
usually but not always
?
Exceptions?
On Sunday, February 18, 2024 at 11:29:27 AM UTC+11, Don Y wrote:
On 2/17/2024 1:18 PM, RichD wrote:
On February 11, Don Y wrote:
<snip>
Given these considerations, does anybody write assembly code for
modern RISC processors?
ASM or machine code? The two differ by the presence of a compiler
in the former that is absent in the latter.
Technically speaking, the software that converts assembly code into
machine code is an assembler, not a compiler.
There's a one-to-one relationship between assembler mnemonics and numbers >that constitute the machine code. Compilers can generate strings of
machine code from a higher-level language command, so it is a real >distinction. I wasn't conscious of this when I first learned Fortran
coding, but I was taught how the Fortran compiler expanded single lines of >code into strings of assembler when I did a year's course on "Theory of >Computation" the following year (1966).
--
Bill Sloman. Sydney
One-to-one relationship between assembler mnemonics and numbers?
This is a myth.
You seem oblivious that Intel's
MOV AX,BX
chooses between two instructions to the discretion of the assembler at hand? (not to speak of shorter forms that involves AX only.)
I've made a reverse engineering assembler that allows disassembled code
to assemble to a copy of the original, obliged to differentiate between
the two.
See https://github.com/albertvanderhorst/ciasdis
The two forms are
MOV, X| T| BX'| R| AX|
MOV, X| F| AX'| R| BX|
Move primary register AX to secondary register BX using default size (X). Move primary register BX from secondary register AX
It is hard to analyse viruses without those finesse.
On 2/29/2024 6:37 AM, albert@spenarnc.xs4all.nl wrote:
One-to-one relationship between assembler mnemonics and numbers?
This is a myth.
It has never been true. An assembler is free to generate whatever code >satisfies the desire stated by the programmer.
In article <urqpn1$pptq$2@dont-email.me>,
Don Y <blockedofcourse@foo.invalid> wrote:
On 2/29/2024 6:37 AM, albert@spenarnc.xs4all.nl wrote:
One-to-one relationship between assembler mnemonics and numbers?
This is a myth.
It has never been true. An assembler is free to generate whatever code
satisfies the desire stated by the programmer.
That is a silly response to a description of an assembler that
accomplish a one to one correspondance between machine code and
mnemonics. I don't care what other assemblers do or doesn't do.
On 3/8/2024 1:38 AM, albert@spenarnc.xs4all.nl wrote:
In article <urqpn1$pptq$2@dont-email.me>,
Don YÂ <blockedofcourse@foo.invalid> wrote:
On 2/29/2024 6:37 AM, albert@spenarnc.xs4all.nl wrote:
One-to-one relationship between assembler mnemonics and numbers?
This is a myth.
It has never been true. An assembler is free to generate whatever code >>> satisfies the desire stated by the programmer.
That is a silly response to a description of an assembler that
accomplish a one to one correspondance between machine code and
mnemonics. I don't care what other assemblers do or doesn't do.
The assumption that an assembler -- and, thus, a qualification for
ALL assemblers -- generates a one-to-one correspondence between
mnemonic and machine code is false.
What term do you apply to tools that take "assembly language"
mnemonics and DON'T generate one-to-one correspondences?
Are these NOT "assemblers"?
What term do you apply to tools that take "assembly language"
mnemonics and DO generate one-to-one correspondences?
Are these ALSO not assemblers?
I.e., the one-to-one correspondence is an *imagined* requirement
of "an assembler".
On 3/8/2024 1:38 AM, albert@spenarnc.xs4all.nl wrote:
In article <urqpn1$pptq$2@dont-email.me>,
Don YÂ <blockedofcourse@foo.invalid> wrote:
On 2/29/2024 6:37 AM, albert@spenarnc.xs4all.nl wrote:
One-to-one relationship between assembler mnemonics and numbers?
This is a myth.
It has never been true. An assembler is free to generate whatever code >>> satisfies the desire stated by the programmer.
That is a silly response to a description of an assembler that
accomplish a one to one correspondance between machine code and
mnemonics. I don't care what other assemblers do or doesn't do.
The assumption that an assembler -- and, thus, a qualification for
ALL assemblers -- generates a one-to-one correspondence between
mnemonic and machine code is false.
What term do you apply to tools that take "assembly language"
mnemonics and DON'T generate one-to-one correspondences?
Are these NOT "assemblers"?
What term do you apply to tools that take "assembly language"
mnemonics and DO generate one-to-one correspondences?
Are these ALSO not assemblers?
I.e., the one-to-one correspondence is an *imagined* requirement
of "an assembler".
On 08/03/2024 10:01, Don Y wrote:
On 3/8/2024 1:38 AM, albert@spenarnc.xs4all.nl wrote:
In article <urqpn1$pptq$2@dont-email.me>,
Don YÂ <blockedofcourse@foo.invalid> wrote:
On 2/29/2024 6:37 AM, albert@spenarnc.xs4all.nl wrote:
One-to-one relationship between assembler mnemonics and numbers?
This is a myth.
It has never been true. An assembler is free to generate whatever code >>>> satisfies the desire stated by the programmer.
No. An assembler is required to generate the opcode that corresponds to the mnemonic that the programmer specified.
A compiler or autocoder is free to use
whichever way of say loading zero into the accumulator it likes. But if the programmer writes movi acc, #0 then in assembler then that is what they get (even if xor acc,acc is much faster).
Once you start with macro assemblers and have smart macros then all bets are off but for intrinsic mnemonics they are a clean translation to hex.
That is a silly response to a description of an assembler that
accomplish a one to one correspondance between machine code and
mnemonics. I don't care what other assemblers do or doesn't do.
The assumption that an assembler -- and, thus, a qualification for
ALL assemblers -- generates a one-to-one correspondence between
mnemonic and machine code is false.
I can't offhand think of any assembler that didn't have a regular and reproducible mapping of its opcode mnemonics to hexadecimal numbers (and vice versa although going backwards tended to be a many to one mapping).
What term do you apply to tools that take "assembly language"
mnemonics and DON'T generate one-to-one correspondences?
Are these NOT "assemblers"?
MOV for instance often has several hexadecimal codes that it corresponds to because there are so many different sorts. But that is more of a problem for disassemblers than anything else.
What term do you apply to tools that take "assembly language"
mnemonics and DO generate one-to-one correspondences?
Are these ALSO not assemblers?
I.e., the one-to-one correspondence is an *imagined* requirement
of "an assembler".
The way I obtain unsupported genuine modern opcodes in some archaic inline assemblers that lack support or any other way of doing it is to hack together a
jump forward a few bytes and a load immediate long hex constant. It is only worth doing this as an absolute last resort.
On 2/15/2024 3:13 AM, Peter wrote:
Graet to see you Don after all these years - 2006!!
Hey there, Mr "Pool" :>
I trust all is well, remodel long completed, kids now grown
(which of them was first to make you "Gramps"? and wasn't your
youngest looking for his pilot's license?), thus PBfH having
less of an impact on your life, etc.
I had a customer many years ago who did write a ton of code in hex. To
enable modifications they had a bit of space after each function, so
edits to a function did not need shifting everything after it :)
But what was their *reason* for this? I had an employer (*had* been
an engineer and deluded himself into thinking he could still *do* >engineering) who was stuck in the past -- as if the tools and
techniques he had used were still relavent, even a few years later!
When it took hours to assemble, link, burn images, it made sense to
have mechanisms to support minor tweeks to the code (overwriting
instructions with NOPs and filling in a "0xFF" postamble with new
code). But, nowadays, make world on even large projects is just
a coffee break -- and, you can dump your code into RAM to watch
it run (assuming you have to run on a target and not in a
simulator).
[Nowadays, I netboot images just for the savings that one step
makes possible!]
Given these considerations, does anybody write assembly code for
modern RISC processors?
RichD <r_delaney2001@yahoo.com> wrote:
Given these considerations, does anybody write assembly code for
modern RISC processors?
Yes; some stuff cannot be done in C. Start with loading SP. No way in
C!
Some code in an RTOS is not possible in C. Look at the FreeRTOS
sourcecode. There are bits of asm in there.
Also asm has great uses for protecting from optimisation (which can
change silently by upgrading the compiler!). Asm never gets modified; essential when talking to devices needing specific minimum /CS timing
etc.
Another example, for accurate delays (ST32F417, 168MHz)
// Hang around for delay in microseconds
__attribute__((noinline))
void hang_around_us(uint32_t delay)
{
delay *= (SystemCoreClock/4100000L);
asm volatile (
"1: subs %[delay], %[delay], #1 \n"
" nop \n"
" bne 1b \n"
: [delay] "+l"(delay)
);
}
I trust all is well, remodel long completed, kids now grown
(which of them was first to make you "Gramps"? and wasn't your
youngest looking for his pilot's license?), thus PBfH having
less of an impact on your life, etc.
Divorced the witch in 1999,
then the next one (2003-2023) sadly ended in 2023.
Youngest has a PPL (UK and FAA) and flies, both mine and his RV6.
Chases females on Tinder and Hinge, like everybody else :)
I had a customer many years ago who did write a ton of code in hex. To
enable modifications they had a bit of space after each function, so
edits to a function did not need shifting everything after it :)
But what was their *reason* for this? I had an employer (*had* been
an engineer and deluded himself into thinking he could still *do*
engineering) who was stuck in the past -- as if the tools and
techniques he had used were still relavent, even a few years later!
Stupidity - assemblers have always been around.
When it took hours to assemble, link, burn images, it made sense to
have mechanisms to support minor tweeks to the code (overwriting
instructions with NOPs and filling in a "0xFF" postamble with new
code). But, nowadays, make world on even large projects is just
a coffee break -- and, you can dump your code into RAM to watch
it run (assuming you have to run on a target and not in a
simulator).
[Nowadays, I netboot images just for the savings that one step
makes possible!]
Indeed.
On 3/12/2024 6:05 AM, Peter wrote:
I trust all is well, remodel long completed, kids now grown
(which of them was first to make you "Gramps"? and wasn't your
youngest looking for his pilot's license?), thus PBfH having
less of an impact on your life, etc.
Divorced the witch in 1999,
Yes. But, IIRC, there was still a lot of "interaction" as a
result of the boys. Now that they are grown, presumably that
is less of an issue, limiting the intensity of any such interactions?
then the next one (2003-2023) sadly ended in 2023.
(sigh) Sorry to hear that. I recall you had high hopes and,
hopefully, some of those were realized.
"One can't get divorced TWICE; the first takes HALF of everything,
the second would take the OTHER half!"
Youngest has a PPL (UK and FAA) and flies, both mine and his RV6.
But, is his interest purely recreational? Or, might he pursue
that "commercially"?
I've been tempted to try reimplementing some early designs just to
see how quickly the development would proceed AND how much faster
the code would execute... big change from a ~700KHz i4004 to an
800MHz quad-core (costing a tenth as much!). It would be
depressing to discover that a man-year effort can be reduced to
a long weekend! :<
On 3/12/2024 6:10 AM, Peter wrote:
RichD <r_delaney2001@yahoo.com> wrote:
Given these considerations, does anybody write assembly code for
modern RISC processors?
Yes; some stuff cannot be done in C. Start with loading SP. No way in
C!
Doing anything that isn't memory-mapped; how would you generate "I/O" >instructions (for processors with I/O spaces)?
Using any part of the instruction set that isn't directly mapped
to native C constructs (how would you access support for BCD
data types? special commands to control interrupts? opcodes to
control atomic operations/synchronization?)
Some code in an RTOS is not possible in C. Look at the FreeRTOS
sourcecode. There are bits of asm in there.
Also asm has great uses for protecting from optimisation (which can
change silently by upgrading the compiler!). Asm never gets modified;
essential when talking to devices needing specific minimum /CS timing
etc.
This is changing. Lots of ongoing work in optimizing and
super-optimizing assembly language code. Even arguments
being made that compilers should NOT be generating (final)
ASM, from HLL sources cuz it forces them to know too
much about the underlying hardware... things that a
(truly) "optimizing assembler" is better suited to knowing.
"One can't get divorced TWICE; the first takes HALF of everything,
the second would take the OTHER half!"
Hahaha. It's actually a power series: 1/2 + 1/4 + 1/8 + 1/16.
According to >https://en.wikipedia.org/wiki/1/2_%E2%88%92_1/4_%2B_1/8_%E2%88%92_1/16_%2B_%E2%8B%AF
it converges to 1/3 so you will always eat afterwards ;)
I've been tempted to try reimplementing some early designs just to
see how quickly the development would proceed AND how much faster
the code would execute... big change from a ~700KHz i4004 to an
800MHz quad-core (costing a tenth as much!). It would be
depressing to discover that a man-year effort can be reduced to
a long weekend! :<
My last design is 100x faster than anything done before, and the CPU
costs about $7.
But the software takes as long - because 90% of the functionality is
now connectivity! MbedTLS etc. There is even an HTTP server (simple: I
wrote it myself) for config.
Don Y <blockedofcourse@foo.invalid> wrote:
On 3/12/2024 6:10 AM, Peter wrote:
RichD <r_delaney2001@yahoo.com> wrote:
Given these considerations, does anybody write assembly code for
modern RISC processors?
Yes; some stuff cannot be done in C. Start with loading SP. No way in
C!
Doing anything that isn't memory-mapped; how would you generate "I/O"
instructions (for processors with I/O spaces)?
I think I/O is rare; it tends to be memory mapped.
Using any part of the instruction set that isn't directly mapped
to native C constructs (how would you access support for BCD
data types? special commands to control interrupts? opcodes to
control atomic operations/synchronization?)
Some code in an RTOS is not possible in C. Look at the FreeRTOS
sourcecode. There are bits of asm in there.
Also asm has great uses for protecting from optimisation (which can
change silently by upgrading the compiler!). Asm never gets modified;
essential when talking to devices needing specific minimum /CS timing
etc.
This is changing. Lots of ongoing work in optimizing and
super-optimizing assembly language code. Even arguments
being made that compilers should NOT be generating (final)
ASM, from HLL sources cuz it forces them to know too
much about the underlying hardware... things that a
(truly) "optimizing assembler" is better suited to knowing.
I'll leave that to the next generation. I want to make a bit of money
now :)
On 3/13/2024 9:29 AM, Peter wrote:Medical doctors have to cope with a flood of new knowledge.
 Don Y <blockedofcourse@foo.invalid> wrote
On 3/12/2024 6:10 AM, Peter wrote:
  RichD <r_delaney2001@yahoo.com> wrote:
There are lots of ways to make money. The joy of engineering is
that you can have *fun* -- and learn stuff -- while doing so!
(imagine being an *accountant*, lawyer, doctor, etc. -- fields where
"new knowledge" drips out at a trickle...)
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 418 |
Nodes: | 16 (0 / 16) |
Uptime: | 03:49:51 |
Calls: | 8,788 |
Calls today: | 15 |
Files: | 13,296 |
Messages: | 5,965,651 |