Documentation for calc-pi-x86-64-asm
Command Input Output Description
cmdlist Dynaically generate a listing of all commands in the command parser.
comment "comment <a>" followed by a comment string will echo the comment string <a> to the program output. This is useful when capturing output text to a file.
desc
descnew
"descnew" command will prompt the user to enter a short (31 character) description string. The description is included into variable metadata that is saved to a disk file with the save and load commands. "desc" will show the current string.
exit
q
Quit the program.
Commands "exit" and "q" are synonymous.
head
headoff
(Experimental) Enable display of some non-scrollable status numbers on the top of the console terminal.
help
help <c>
helpall
"help" displays basic help on the program.
"help <command>" for help on one command
"helpall" to print the full list
Some commands do not have help.
load <f> Read Xreg from file.
Get filename <f> from input line
File extension ".num" is appended to filename
Example: load myfile
Data read from file myfile.num
With path: load ~/numbers/mynumber
Registers rotated up like number input.
log
logoff
The command 'log' starts a terminal log session. The filenames are sequential as follows: out/out001.txt, out/out002.txt, out/out003.txt ... the folder 'out' must exist in the working directory. Logging is stopped with the 'logoff' command.
hex
hex <r>
"hex" will print summary of all registers in abbreviated hexadecimal format. This will also show register index numbers. Adding an integer index number from 0 to 16 will show a specific register. The index numbers are different from register name. (Reg2 is index 11).
mmode Set or View mmode (Math Mode)
See Configuration
profile
profile i
TBD (internal function statistics)
q
exit
Quit the program.
Commands "exit" and "q" are synonymous.
sand Development function hook.
sandbox Development function hook.
save <f> Save Xreg to file.
Filename <f> from input line
File extension ".num" is appended to filename
Example: save myfile
With path: load ~/numbers/mynumber
Generated file will be myfile.num
show
showoff
"show" enables the progress bar. "showoff" disables it. The progress bar is updated each time the term counter reaches sstep (see sstep below). The tutorial has an example.
slimit
slimit <a>
"slimit" will display or accept new value for slimit value. For some loop functions, the slimit variable provides an upper limit to break out of the loop.
sstep
sstep <a>
"sstep" will display or accept a new value for sstep value. This is the counter used to update the progress bar when summing an infinite series.
Program Help

The command "cmdlist" will automatically extract a list of all text commands from the program command parser. Within the program, the "help <command> function can be combined with a text <command> to view detail information on any specific command. Example: "help print".

External to the program, these help pages are available from the github repositiory at: cotarr.github.io/calc-pi-x86-64-asm/.

Program Sandbox

The "sandbox <arg>" command is a hook that allows a keyboard command to call a section of arbitrary assembly language. Sandbox will accept a single argument, typically a number such as 1, 2, or 3. This allows more than one hook to call development code. The sandbox is mainly used to experiment with new functions or alternate version of existing functions.

In general, sandbox code should PUSH registers to the stack, execute some custom code, then POP the registers back off the stack execute a RET return.

Sandbox_test_1:
        ; Save Registers
        push	rax
        push	rbx
        push	rcx
        push	rdx
        ; -----------------------------------------------
        ; Some code here

        mov     rax, .Msg
      	call    StrOut

        ; -----------------------------------------------
        ; Restore registers
        pop	rdx
        pop	rcx
        pop	rbx
        pop	rax
        ; return to command parser
        ret

        ; String constant to be output.
        .Msg:   db      "Hello World", 0xD, 0xA, 0

Where sandbox is intended to run a complete function, there is an alternate command "sand". The sand command is intended as a hook to run one or two arbitrary assembly language instructions. This is used mainly for debugging, such as changing data inside the variables for a specific test.