13 KiB
*** Auto generated by docgen.cmd ***
GetArg
ASM
In: A = argument index. Out: CC : success Y,A = PTR To Arg[A] CS : Out Of Bound
FileSearch
Search a file in the provided PATH list And return, if found, the full path to it. In:
- PUSHW = Ptr to Search Path (CSTR) %LIB%;/SYS/SLIB
- PUSHW = Ptr to File Name (CSTR)
- PUSHW = Ptr to DstBuf
- PUSHW = Ptr to DstStat Out:
- CC : success
- DstBuf = FilePath
- DstStat = S.STAT
- CS : not found
GetDevByID.A
In:
- A = DevID Out:
- CC = OK, CS = ERROR
- Y,A = DEVSLOT
- note: X Unmodified
GetDevByName.YA
In:
- Y,A = Ptr to device name (C-String) Out:
- CC = OK, CS = ERROR
- X = DEVID
- Y,A = DEVSLOT
GetDevStatus.A
In:
- A = DevID Out:
- Y,A = S.DSTAT
IOCTL
In:
- PUSHB = DevID
- PUSHB = Operation
- PUSHW = Param Block Out:
- Y,A = ...
OpenDir.YA
In:
- Y,A = PATH (C-String) Out:
- CC : success
- A = hDIR
- CS : error
- A = EC
ReadDir.A
In:
- A = hDIR Out:
- CC : success
- X = hDIRENT
- Y,A = PTR to S.DIRENT
- CS : error
- A = EC
- note : A = 0 means no more entry
CloseDir.A
In:
- A = hDIR Out:
- none, always succeed.
ExpandStr.YA
In:
- Y,A = PTR to String to Expand (C-String) Out:
- X = hMem to Expanded String (C-String)
- Y,A = PTR to Expanded String
PutEnv.YA
In:
- Y,A = PTR to String NAME=VALUE (C-String) Out:
SetEnv
In:
- PUSHW = PTR To Value (PSTR)
- PUSHW = PTR To Name (PSTR) Out:
GetEnv.YA
In:
- Y,A = PTR to NAME (PSTR) Out:
- CC : Y,A = PTR to VALUE (PSTR)
- CS : not found
UnsetEnv.YA
In:
- Y,A = PTR To Name (PSTR) Out:
LoadTxtFile.YA
Load TXT a file in memory (with ending 0) In:
- Y,A = File Path Out:
- Y,A = File Length (without ending 0)
- X = hMem of Loaded File
LoadFile
Load a file in memory In:
- PUSHW = AUXTYPE (Handled by....
- PUSHB = TYPE ...
- PUSHB = MODE ...
- PUSHW = PATH ...FOpen) Out:
- Y,A = File Length
- X = hMem of Loaded File
ChTyp
In:
- PUSHB = TYPE
- PUSHW = PATH
ChMod
In:
- PUSHW = UID
- PUSHW = PATH
ChOwn
In:
- PUSHW = UID
- PUSHW = PATH
ChGrp
In:
- PUSHW = GID
- PUSHW = PATH
FAdd,FSub,FMult,FDiv,FPwr
Return X+Y, X-Y, X*Y, X/Y, X^Y In:
- PUSHF = X (Float)
- PUSHF = Y (Float) Out:
- On stack (Float)
Log,Sqr,Exp,Cos,Sin,Tan,ATan
Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x) In:
- PUSHF = X (Float) Out:
- On stack (Float)
Float
Return 'floated' long In:
- PUSHL = X (long) Out:
- On stack (Float)
LRIntF
Return Float rounded into a long In:
- PUSHF = X (Float) Out:
- On stack (long)
GetMem0.YA
In:
- Y,A = Size Requested Out:
- CC : success
- YA = PTR to Mem (ZERO Initialised)
- X = hMem
- CS :
- A = EC
GetMem.YA
In:
- Y,A = Size Requested Out:
- CC : success
- YA = PTR to Mem (Uninitialised)
- X = hMem
- CS :
- A = EC
FreeMem.A
In:
- A = hMem To Free Out:
- none.
- (X,Y unmodified)
GetMemPtr.A
In:
- A = hMem Out:
- Y,A = PTR to MemBlock
- (X unmodified)
GetMemByID.A
In:
- A = hMem Out:
- Y,A = ZPMemMgrSPtr = PTR to S.MEM
- X unmodified
NewStr.YA
Create a new copy of this C-String In:
- Y,A = Ptr to source C-String Out:
- CC : success
- Y,A = PTR to String
- X = hMem (PSTR)
- CS : error
- A = SYS error code
SListGetByID
In:
- PUSHB = hSList
- PUSHW = KeyID
- PUSHW = Data Ptr
- PUSHW = Key Ptr Out:
- X,Y = Next KeyID
SListUpdateByID
In:
- PUSHB = hSList
- PUSHW = KeyID
- PUSHW = Data Ptr Out:
- A = Key Length
- X,Y = KeyID
SListAdd
In:
- PUSHB = hSList
- PUSHW = Key Ptr
- PUSHW = Data Ptr Out:
- A = Key Length
- X,Y = KeyID
SListLookup
In:
- PUSHB = hSList
- PUSHW = Key Ptr
- PUSHW = Data Ptr Out:
- A = Key Length
- X,Y = KeyID
SListNew
In: Out:
- A=hSList
SListFree
In:
- A=hSList Out:
GetStkObjProperty.AY
In:
- A = hObject (AUX Memory)
- Y = Property Index Out:
- Y,A = Property Value
NewStkObj.YA
In:
- Y,A = Size Requested Out:
- CC : success
- YA = PTR to Mem (Uninitialised)
- X = hMem
- CS :
- A = EC
FreeStkObj.A
In:
- A = hMem To Free (AUX Memory) Out:
- none.
- (X,Y unmodified)
LoadStkObj
Load a file in AUX memory (Stock Objects) In:
- PUSHW = AUXTYPE (Handled by....
- PUSHB = TYPE ...
- PUSHB = MODE ...
- PUSHW = PATH ...FOpen) Out:
- Y,A = File Length
- X = hMem of Loaded Object in AUX mem
ExecPSNewEnv.YA
ExecPS.YA (Blocking Parent PID)
CreatePSNewEnv.YA
CreatePS.YA (Non Blocking)
In:
- Y,A = PTR To Cmd Line Out:
- A = Child PSID
GetMemStat.YA
In:
- Y,A = Ptr to 24 bytes buffer Out:
- Buffer filled with memory stats
GetPSStatus.A
In:
- A = PID Out:
- A = Status Byte
GetPSStat.YA
In:
- Y,A = Ptr to 24 bytes buffer Out:
- Buffer filled with PS stats
Stat
Return information about a file
In :
- PUSHW = PTR to S.STAT buffer
- PUSHW = PTR to Filename (C-String)
Out :
MKDir.YA
In:
- Y,A = DIR name Out:
- CC : success
- CS : error
- A = EC
MkNod.YA
return a hFile for a given Device Name In:
- Y,A=DevName Out:
- CC = OK, CS = ERROR
- A = hFILE
MKFIFO
return a hFILE to a new FIFO In: Out:
- CC = OK, CS = ERROR
- A = hFILE
FPutC.A
int fputc ( int character, hFILE stream ); Print A (char) to hFILE In:
- PUSHB : hFILE
- A : char to print Out:
- CC = success
PutChar.A
int putchar ( int character ); Print A (char) to StdOut In:
- A : char to print Out:
- CC = success
PutS.YA
int puts ( const char * str ); Write Str to StdOut, appends '\r\n' In:
- Y,A : CPtr Out:
- CC = success
FPutS.YA
int fputs ( const char * str, hFILE stream ); Write Str to FILE In:
- PUSHB : hFILE
- Y,A: CPtr Out:
- CC = success
PrintF.YA
int printf ( const char * format, ... );
SPrintF.YA
int sprintf ( char * str, const char * format, ... );
FPrintF.A
int fprintf ( FILE * stream, const char * format, ... ); * Prints C-Style String In: PrintF.YA :
- PUSH ...
- Y,A = PTR to CStr SPrintF.YA :
- PUSH ...
- PUSHW = PTR to CStr
- Y,A = Ptr to Dst Buffer FPrintF.YA :
- PUSH ...
- PUSHW = PTR to CStr
- A = hFILE
Out:
- CC : success
- CS : error code from Output Specifiers :
- %b : pull 1 byte to Print BIN
- %B : pull 2 bytes to Print BIN
- %d : pull 1 byte unsigned DEC 0..255
- %D : pull 2 bytes unsigned DEC 0..65535
- %u : pull 4 bytes long unsigned DEC 0..4294967295
- %e : pull 5 Bytes float (-)1.23456789e+12
- %f : pull 5 Bytes float (-)3.1415
- %h : pull 1 byte to Print HEX
- %H : pull 2 bytes to Print HEX
- %i : pull 1 byte to Print signed DEC -128..127
- %I : pull 2 bytes to Print signed DEC -32768..32767
- %L : pull 4 bytes signed DEC -2147483648..2147483647
- %n : pull 1 byte to Print low Nibble HEX
- %N : pull 1 byte to Print high Nibble HEX
- %s : pull 2 bytes ptr to C-Style String
- %S : pull 2 bytes ptr to P-Style String
- \b : Print 'BS' (08)
- \e : Print 'ESC' ($1B,27)
- \f : Print 'FF' ($0C,12)
- \n : Print 'LF' ($0A,10)
- \r : Print 'CR' ($0D,13)
- \\ : Print \
- % : Print % Modifiers for len and padding :
- %d : '9' '12'
- %2d : ' 9' '12'
- %02d : '09' '12'
- %11s : 'ABCDEFGH '
- %011s : 'ABCDEFGH000'
- %2f : '3.14'
GetChar
Get char from StdIn In:
- none. Out:
- CC = success
- A = char
GetC.A
Get char from Node In:
- A = hNODE Out:
- CC = success
- A = char
SScanF.YA
Scan a C-String (in progress) In:
- PUSHW PTR to target var
- ...
- PUSHW PTR pattern (ex: "%d.%d.%d.%d")
- %i : short int
- %d : byte
- %I : int
- %D : word
- %L : long int
- %U : dword
- %h : HEX byte
- %H : HEX word
- Y,A = PTR to String to scan (ex: "192.168.1.5") Out:
FOpen
Open a file
In :
- PUSHW = AUXTYPE
- PUSHB = TYPE
- PUSHB = MODE
- SYS.FOpen.R : if R and exists -> ERROR
- SYS.FOpen.W : if W and exists -> CREATE
- SYS.FOpen.A : Append
- SYS.FOpen.T : Open/Append in Text mode
- SYS.FOpen.X : Create if not exists
- PUSHW = PATH (PSTR)
Out :
- CC : A = hFILE
- CS : A = EC
FClose.A
Close a file
In :
- A = hFILE
Out :
FRead
int fread ( void * ptr, int count, FILE * stream ); Read bytes from file
In :
- PUSHW = Dest Ptr
- PUSHW = Bytes To Read
- PUSHB = hFILE
Out :
- Y,A = Bytes Read
FWrite
int fwrite ( const void * ptr, int count, FILE * stream ); Write bytes to file In:
- PUSHW = Src Ptr
- PUSHW = Bytes To Write
- PUSHB = hFILE
Out:
- Y,A = Bytes Written
FFlush.A
In:
- A = hFILE
FSeek
Set the file-position indicator for hFILE In:
- PUSHW = Ptr to Offset (DWORD)
- PUSHB = From
- PUSHB = hFILE
FEOF.A
Test the end-of-file indicator for hFILE In:
- A = hFILE Out:
- CC :
- A=0 EOF
- A =0 NOT EOF
- CS :
FTell
Return the current value of the file-position indicator In:
- PUSHW = Ptr to Offset (DWORD)
- PUSHB = hFILE Out:
- Offset = Offset
Remove.YA
Rename
Rename a file
In :
- PUSHW = New Name
- PUSHW = Old Name
Out :
StrToF
Convert String to 40 bits Float
C
float strtof (const char* str, char** endptr);
ASM
In:
>PUSHWI EndPtr
>LDYA str
Out:
On stack (float)
AToF
Convert String to 40 bits Float
C
float atof (const char* str);
ASM
In:
>LDYA str
Out:
On stack (float)
StrToL (StrToUL)
Convert String to 32 bits (unsigned) int
C
long strtol (const char* str, char** endptr, int base);
unsigned long strtol (const char* str, char** endptr, int base);
ASM
In:
>PUSHB Base
>PUSHWI EndPtr
>LDYA str
Out:
On stack (long)
AToL
Convert String to 32 bits int In:
- PUSHW Source String (C-Sring)
- PUSHW PTR to target buffer DWORD Out:
AToI.YA
Convert String to 16 bits int In:
- Y,A = Source String (C-String) Out:
- Y,A = Int
RealPath.YA
Return the canonicalized absolute pathname
In :
- Y,A = Ptr to Relative Filename (C-String)
Out :
- CC : success
- Y,A = Ptr to Full Path (C-String)
- X = hMem of Full Path
- CS : A = Error Code
StrLen.YA
Returns Length of C-String In:
- Y,A = Ptr to CSTR Out:
- Y,A = String length
StrCat
Append SRC to DST In:
- PUSHW = Ptr to SRC (CSTR)
- PUSHW = Ptr to DST (CSTR) Out:
- DST = DST+SRC
StrCpy
Copy string In:
- PUSHW = Ptr to SRC (CSTR)
- PUSHW = Ptr to DST (CSTR) Out:
- DST = SRC
StrMatch
Compare a String against pattern In:
- PUSHW = PTR to Pattern (e.g. '*test?.txt')
- PUSHW = PTR to Src String Out:
- CC : match
- CS : no match
StrUpr.YA/StrLwr.YA
Convert string to UPPERCASE/lowercase In:
- Y,A = PTR to String (CSTR) Out:
- Uppercased/lowercased String in Buffer
StrCmp
Compare 2 strings In:
- PUSHW = Ptr to String1 (CSTR)
- PUSHW = Ptr to String2 (CSTR) Out:
- DST = SRC
StrICmp
Compare 2 strings In:
- PUSHW = Ptr to String1 (CSTR)
- PUSHW = Ptr to String2 (CSTR) Out:
- CC, Y,A=0
- CS, Y,A > 0 or < 0
Time.YA
- Get System Time in Buffer
In :
- Y,A = PTR to S.TIME
Out :
- S.TIME filled with System date/time
PTime2Time
- Convert ProDOS Time To S.TIME
In :
- PUSHW = Dst PTR To S.TIME
- PUSHW = Src PTR to ProDOS DATE/TIME (DWORD)
CTime2Time
- Convert CTIME to S.TIME
In :
- PUSHW = Dst PTR To S.TIME
- PUSHW = Src CTIME DWORD
StrFTime
Convert S.TIME struct to CSTR In:
- PUSHW = Dst PTR To CSTR Buf
- PUSHW = Src PTR To Format String
- %a : Abbreviated weekday name : Thu
- %A : Full weekday name : Thursday
- %b : Abbreviated month name : Aug
- %B : Full month name : August
- %d : Day of the month, zero-padded (01-31)
- %H : Hour in 24h format (00-23) 14
- %I : Hour in 12h format (01-12) 02
- %m : Month as a decimal number (01-12) 08
- %M : Minute (00-59) 55
- %p : AM or PM designation PM
- %S : Second (00-61) 02
- %w : Weekday as a decimal number with Sunday as 0 (0-6)
- %y : Year, last two digits (00-99)
- %Y : Year four digits 2001
- PUSHW = Src PTR To S.Time Out:
- none. always succeed.