There are many boot commands that do almost the same thing: BOOT, REBOOT, RESET. All three probably leads to that AUTOBOOT.X16 is run. REBOOT additionally runs the start up sequence. RESET pulls the reset line and then does REBOOT AFAIK. Maybe BOOT and even REBOOT could be removed since BOOT could be done using LOAD and RUN and REBOOT could be done using SYS in the rare cases when one wants to reboot without pulling the reset line. Also shouldn't AUTOBOOT.X16 be called AUTOBOOT.PRG because it is a prg file; similar to that autoexec.bat has extension bat because it is a bat file. https://github.com/X16Community/x16-doc ... 20BASIC.md
A general problem with open source projects is that they become bloated because all wants to add things. One have to think about how this system should be explained to children. To have a lot of similar and unnecessary commands doesn't help that task.
Fewer boot commands
Fewer boot commands
Last edited by mobluse on Sun Apr 09, 2023 12:11 pm, edited 1 time in total.
Re: Fewer boot commands
There are reasons and history behind the RESET and REBOOT commands. Those are going to be tweaked, however.
BOOT just runs AUTOBOOT.X16, and no - that's not changing. It's handy, and I don't see any reason to remove it.
RESET was originally added as a quick way to call the reset handler in the KERNAL and restore the machine to a mostly known state. Then, with the addition of the SMC controller, which controls the RST line, we got the ability to do a hardware reset and initiate a cold boot via hardware. Since RESET was already taken, REBOOT was added.
Since there is some confusion behind RESET and REBOOT, and their underlying meanings are inverted right now, they will be swapped.
So RESET will end up becoming the hardware reset command, and REBOOT will become the software restart command. This is consistent with computer science nomenclature, since a reset is a hardware thing (literally, something asserting the RST line) and "boot" is a software function, the process of loading the operating software into the machine.
So RESET will assert the RST pin, and REBOOT will reload the operating software, according to their Computer Science definitions.
As far as crowdsourcing and function sprawl - I respectfully disagree. I think the folks working on the ROMs have done a good job of introducing relevant and useful commands to CMDR BASIC. Part of the intent of ROM BASIC is to wrap all common functions in BASIC commands. There should be no day-to-day functions that require SYS, POKE, or PEEK to operate, and we are getting very close to that ideal.
BOOT just runs AUTOBOOT.X16, and no - that's not changing. It's handy, and I don't see any reason to remove it.
RESET was originally added as a quick way to call the reset handler in the KERNAL and restore the machine to a mostly known state. Then, with the addition of the SMC controller, which controls the RST line, we got the ability to do a hardware reset and initiate a cold boot via hardware. Since RESET was already taken, REBOOT was added.
Since there is some confusion behind RESET and REBOOT, and their underlying meanings are inverted right now, they will be swapped.
So RESET will end up becoming the hardware reset command, and REBOOT will become the software restart command. This is consistent with computer science nomenclature, since a reset is a hardware thing (literally, something asserting the RST line) and "boot" is a software function, the process of loading the operating software into the machine.
So RESET will assert the RST pin, and REBOOT will reload the operating software, according to their Computer Science definitions.
As far as crowdsourcing and function sprawl - I respectfully disagree. I think the folks working on the ROMs have done a good job of introducing relevant and useful commands to CMDR BASIC. Part of the intent of ROM BASIC is to wrap all common functions in BASIC commands. There should be no day-to-day functions that require SYS, POKE, or PEEK to operate, and we are getting very close to that ideal.