BillG wrote:
plasmo wrote:
I believe opening up DOS/65 as freeware will encourage more development with it.
Amen to that.
Further ways to encourage development:
* Provide some sample programs.
* Make binaries available; do not make everybody rebuild everything from source especially if unique tool sets are required.
* Provide a bootable "disk" so that potential users can try it without a big commitment via emulation.
* Did I say sample programs?
Well, I'm among the first to agree that having Rich open up his license for DOS/65 is a real positive for the 6502 community in general. I've been working with the V3 code he sent me over a year ago and have made some good strides with it. I've also got plans on enhancing it further over time. But to comment on BillG's post, I'd also say that I'm playing "devil's advocate" as well.... so here goes:
Sample Applications: - This shouldn't be too difficult. There's already a fair amount of stuff out there. One can also take the approach of porting various CP/M applications over. It's a timing thing and someone putting in the effort.
Making Binaries: - This is where things can get a bit ugly. In short, everyone has their own view and implementation of a memory map and what those allocated sections are used for. This topic alone can span pages over a long period. More needed here!
Bootable Disk: - Once again, this gets problematic fast. Define a bootable disk... even try and forget about the physical media device (CF Card, IDE, SCSI, SD-Card, Floppy anyone?) for a minute. Some sort of de-facto BIOS interface needs to exist that isolates the hardware completely... yet, also defines the mapping of media to usable drives to the system.
Sample Programs: - Echo test.... Echo test... Echo test...
Not to toss water on it all, but in contrast, the first IBM PC did create a hardware architecture and software interface (BIOS) to make it accessible. Like it or hate it... it became a de-facto standard and off the world went down the rat-hole, or whatever you prefer to call it. This also indirectly made giants of Intel and Microsoft, nuff said.
From my view, I can only decide on how I design and build my own systems. With regard to CCM and PEM, these two modules are the core of DOS/65 and basically can be the same across any implementation. The only catch is where they are loaded in memory, as that requires the binary be configured for it. As for the SIM and it's tie-in to the hardware, there's options.... you can write a dedicated SIM and have it control the hardware directly (making it an integrated SIM+BIOS) or a standalone module that interfaces to a system's existing BIOS.
Booting the system... how does one create a somewhat universal bootable disk architecture when no two hobby-built 6502 systems are similar enough for attaching media? Whatever starts the system, there needs to be some common structure to accessing media (pre-OS) and figuring out what to load from where, turn control over to it, etc. If the goal is to provide a bootable disk or bootable media, some agreed to standard needs to exist, mostly for the format of the bootable media. I would most certainly say that all media should be accessed as a logical block device (LBA addressing) and completely eliminate any references to cylinder/head/sector access.
Granted, this is a much more complex subject to get ones arms around, but to make DOS/65 a standard 6502 OS is going to require some effort and more importantly, a lot of agreement from those who are interested in pursuing it.
On top of all of this, there's David Givens' recent CP/M-65 port. This also becomes a contender in the same space... and David has worked on addressing relocatable binaries, making that part easier. Still, there's the requirement for a BIOS that BDOS accesses and the concept of having bootable media being a similar problem. The same applies to having the available media formatted into a usable drive and the details around that, i.e., number of blocks, allocation size, directory entries, etc.
So to come full circle, I'm all for something that's reusable for the 6502. However, I don't consider this to be something you run on old retro NMOS sysems from the 80's. All of those systems have their software environments. All of my code is CMOS based only, which is a choice I made back in the 80's. I'm still working on a bootable setup... hoping to have something cobbled together for multiple bootable partitions within the next few days... depending on free time. In any case, all of my work on this is being shared, both here and also eventually gets loaded to my Github account.