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.
C
int filesearch ( char * filename, char * searchpath, char * fullpath, stat * filestat);
ASM
In:
>PUSHWI filestat
>PUSHWI fullpath
>PUSHWI searchpath
>LDYAI filename
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
C
int ioctl ( short int id, short int op, void *param);
ASM
In:
PUSHWI param
lda #op
ldy id
>SYSCALL IOCTL
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
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
In: Y,A = Size Requested Out: CC : success YA = PTR to Mem (ZERO Initialised)
- X = hMem CS : A = EC
GetMem
In: Y,A = Size Requested Out: CC : success YA = PTR to Mem (Uninitialised)
- X = hMem CS : A = EC
FreeMem
In: A = hMem To Free Out: none. (X,Y unmodified)
GetMemPtr
In: A = hMem Out: Y,A = PTR to MemBlock (X unmodified)
GetMemByID
In: A = hMem Out: Y,A = ZPMemMgrSPtr = PTR to S.MEM X unmodified
NewStr
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:
GetStkObjProp
In: A = hObject (AUX Memory) Y = Property Index Out: Y,A = Property Value
NewStkObj
In: Y,A = Size Requested Out: CC : success YA = PTR to Mem (Uninitialised)
- X = hMem CS : A = EC
FreeStkObj
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
Print A (char) to hFILE
C
int fputc ( int character, hFILE stream );
ASM
In: Y : character A : stream Out: CC = success
PutChar
C
int putchar ( int character );
ASM
Print A (char) to StdOut In: A : char to print Out: CC = success
PutS
Write Str to StdOut, appends '\r\n'
C
int puts ( const char * str );
In:
Y,A : CPtr
Out:
CC = success
FPutS
Write Str to FILE
C
int fputs ( const char * str, hFILE stream );
In:
PUSHB : hFILE
Y,A: str
Out:
CC = success
PrintF/SPrintF/FPrintF
Prints C-Style String
C
int printf ( const char * format, ... );
int sprintf ( char * str, const char * format, ... );
int fprintf ( FILE * stream, const char * format, ... );
ASM
In: PrintF : PUSH ... Y,A = PTR to CStr SPrintF : PUSH ... PUSHW = PTR to CStr Y,A = Ptr to Dst Buffer FPrintF : 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
Get char from Node
C
int getc ( FILE * stream );
ASM
In: A = hNODE Out: CC = success A = char
SScanF
Read formatted data from string
C
int sscanf ( const char * s, const char * format, ...);
ASM
In:
>PUSHBI Argument Byte count
>PUSHWI format
- %i : short int
- %d : byte
- %I : int
- %D : word
- %L : long int
- %U : dword
- %h : HEX byte
- %H : HEX word
>LDYA s
Out:
Y,A = Number of arguments filled.
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 strtoul (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
C
long atol ( const char * str );
ASM
In:
>LDYA str
Out:
On stack (long)
AToI.YA
C
int atoi ( const char * str );
ASM
In:
>LDYA str
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
Returns Length of C-String
C
char * strcat ( char * destination, const char * source );
ASM
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
C
char * strcpy ( char * destination, const char * source );
ASM
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/StrLwr
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
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
C
Convert S.TIME struct to CSTR
size_t strftime (char* ptr, size_t maxsize, const char* format, const struct tm* timeptr );
ASM
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.