A2osX/SYS/KERNEL.S.ENV.txt
2020-12-15 14:23:22 +01:00

81 lines
1.8 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

NEW
AUTO 3,1
*/--------------------------------------
* # SetEnv
* Change or add an environment variable
* ## C / CSH
* `int setenv(const char *name, const char *value);`
* ## ASM
* `>PUSHW name`
* `>PUSHW value`
* `>SYSCALL setenv`
* ## RETURN VALUE
*\--------------------------------------
K.SetEnv
* >PULLW FORPNT value
* >PULLW TXTPTR name
* ldy #S.PS.hENV
* lda (pPS),y
* jmp K.SYSCALL.JMPX
*/--------------------------------------
* # GetEnv
* searches the environment list to find the environment variable name,
* and returns a pointer to the corresponding value string.
* ## C / CSH
* `char *getenv(const char *name, char *value);`
* ## ASM
* `>PUSHW name`
* `>PUSHW value`
* `>SYSCALL getenv`
* ## RETURN VALUE
* CC : Y,A = PTR to VALUE (C-String)
* CS : not found
*\--------------------------------------
K.GetEnv >PULLW FORPNT value
*/--------------------------------------
* # PutEnv
* Change or add an environment variable, string is 'NAME=VALUE'
* ## C / CSH
* `int putenv(char *string);`
* ## ASM
* **In:**
* `>PUSHW string`
* `>SYSCALL putenv`
* ## RETURN VALUE
*\--------------------------------------
K.PutEnv
* >PULLW TXTPTR name=value
*/--------------------------------------
* # UnsetEnv
* Remove an environment variable
* ## C / CSH
* `int unsetenv(const char *name);`
* ## ASM
* `>PUSHW name`
* `>SYSCALL unsetenv`
* ## RETURN VALUE
*\--------------------------------------
K.UnsetEnv >PULLW TXTPTR name
K.GetEnv.I ldy #S.PS.hENV FROM STDLIB:EXPAND
lda (pPS),y
pha
ldy #S.PS.hSession
lda (pPS),y
tay
lda S.Table.hSID-1,y
tay Y = hSID
pla A = hENV
jmp K.SYSCALL.JMPX
*--------------------------------------
MAN
SAVE usr/src/sys/kernel.s.env
LOAD usr/src/sys/kernel.s
ASM