So, I have been developing a program that utilizes Celtic III for a CLI. So far in my early versions, I have made it so you can type commands like this:
Code:
Where argument 1 is a four-character command and the second argument can be whatever you want.
An example input:
Code:
The program also accepts custom functions, so you could have your own commands installed. You would have to make a program that has the code. In the main program, it has a built-in function that allows you to make other ones.
Code:
Above in the function, the HLWD is the four-character prefix for the command.
The commented out "commands line is where you would put your code. You can even import another BASIC program's code from it. You can also do assembly code but to do that you have to add the det(20," prefix and add the hexadecimal code after the quotation mark.
There are about 9 built-in commands so far as of this version.
In this early version, single commands with no arguments have to be appended by two spaces. So to quit the program, you would have to type "QUIT " to exit.
I am planning to make it so you can have three or four arguments, with each on as long as you want. You are also not required to append spaces to single commands.
You can also have 4 arguments, like so:
Code:
In this example, the UGROUP command (short for "ungroup") which ungroups program-type files from a group file. The first argument `1` tells the program to overwrite all existing files (You can also pass 0 to not overwrite). The second argument `A` tells the program to send ungrouped files to archive (or `R` for RAM). And finally, the last argument `TIFLOW` is the group that contains the five program files.
If you want, you can also have nested arguments.
So this is the basic idea of this project, and I hope things go all and well.
I'd like to hear your input for suggestions, comments, or complaints. I'm excited about this program and hope people like it. The arguments are stored in four different strings, so there might be a better solution to that in case a function changes them.
Code:
~$: ARG1 ARG2
Where argument 1 is a four-character command and the second argument can be whatever you want.
An example input:
Code:
~$: MEMR RAM
15380
The program also accepts custom functions, so you could have your own commands installed. You would have to make a program that has the code. In the main program, it has a built-in function that allows you to make other ones.
Code:
:!func
:{1,0,0
:If Str2="HLWD
:Then
:"commands
:1->L6(1:End
Above in the function, the HLWD is the four-character prefix for the command.
The commented out "commands line is where you would put your code. You can even import another BASIC program's code from it. You can also do assembly code but to do that you have to add the det(20," prefix and add the hexadecimal code after the quotation mark.
There are about 9 built-in commands so far as of this version.
In this early version, single commands with no arguments have to be appended by two spaces. So to quit the program, you would have to type "QUIT " to exit.
I am planning to make it so you can have three or four arguments, with each on as long as you want. You are also not required to append spaces to single commands.
You can also have 4 arguments, like so:
Code:
~$:UGROUP 1 A TIFLOW
In this example, the UGROUP command (short for "ungroup") which ungroups program-type files from a group file. The first argument `1` tells the program to overwrite all existing files (You can also pass 0 to not overwrite). The second argument `A` tells the program to send ungrouped files to archive (or `R` for RAM). And finally, the last argument `TIFLOW` is the group that contains the five program files.
If you want, you can also have nested arguments.
So this is the basic idea of this project, and I hope things go all and well.
I'd like to hear your input for suggestions, comments, or complaints. I'm excited about this program and hope people like it. The arguments are stored in four different strings, so there might be a better solution to that in case a function changes them.