This will be a bit of a wall of text, but oh well.
So back when Six Forks was created, floppy disks were the main storage medium. If you use Six Forks to develop software and you follow Hume's methodology of small modules, you can end up with a lot of them. Case in point, Six Forks itself consist of a lot of files: 77 for the assembler, 61 for the linker and 36 for the utilities package. Since most Dos' can't store so many files in one directory (SDX I think is only one > 128) , Hume used a file he called PACKID as a way of labeling diskettes, as he explains in the manual. This allowed you to keep track of which diskettes were source code and which ones were object files. The latest updates that I've posted, while they still require you to specify the PACKID labels, neither the assembler or linker verifies them. I removed the check because with hard disks, it didn't seem necessary, although I expect it's a pain under MyDOS without batch files.
Even with batch files and SpartaDOS it's still a nuisance copying the .R and .E files to a separate directory, and you still can't put all your relocatables together if you have too many. So to try and fix it without having to totally rewrite Six Forks, I'm making the following change to PACKID processing.
The name specified on the .OUTPI statement will henceforth be treated as the name of the PACKID file, rather than PACKID. So .OUTPI ALFRES will look for a file in the current directory called ALFRES. It will then open that file and read the first line of text and use that line as an output path for both .R and .E files. So for example, if ALFRES contains the line D1:R> then any .R/.E will be written to the R subdirectory of the current directory. Or you could put the full true path, which for me would be D1:>SIXF>SFAV2>R>
This should make using Six Forks a lot more convenient. I'm currently testing it, as well as testing some early 65816 stuff. I've added all the mnemonics, but the first release will only enable the ones that will work in a 16 bit environment. So for example JML and JSL will not be available, and instructions like LDA will not accept 24 bit addresses. Long zero page will also not be available in the first pass.
After that, next will be the addition of a .IPATH directive will will work like .OUTPI except it will apply to files open for input. This is to allow a .INCF include directive, to include additional source files. This turns out to be necessary because the assembler doesn't support instructions like : LDX #vart-chart where both variables are virtual. The Action! source has that kind of thing all over, and rather than cut and paste the equates into all the different files, an include mechanism seemed neater.
The XE version of the assembler has also been updated to allow for 2048 lines of source code, compared to the current 1280.
I'm only posting SFAXE tonight, it's the only one that's changed. .OUPTI pathing is in effect. All 65816 instructions that have no operands, like XCE should be usable. Others, that have 16 bit modes like BRA or STZ should also work, but only for 6502 modes. LDA (zp) is the only new addressing mode that is working. Next I'll do the [zp] modes, and then maybe the long branches. I'm not sure yet about the 24 bit address modes, it might not be possible to enable those in this level of Six Forks. I've updated the decimal conversion routines, but 24 bits will need a lot more work than that.