A2osX/_Docs/KERNEL.md
2017-03-30 10:55:55 +02:00

9.3 KiB

*** Auto generated by docgen.cmd ***
#GetArgC
Returns argument count in the process command line.
##In:

  • none.
    ##Out:
  • A = Command line Arg Count (Including /path/cmd)
    #GetArgA
    ##In:
  • A = argument index.
    ##Out:
  • CC : success
  • Y,A = PStr To Arg[A]
  • CS : Out Of Bound
    #FPutCAY
    Print A (char) to File
    ##In:
  • A : char to print
  • Y = hFILE
    ##Out:
  • CC = success
    #PutCA
    Print A (char) to StdOut
    ##In:
  • A : char to print
    ##Out:
  • CC = success
    #FGetCA
    Get char from File
    ##In:
  • A = hFILE
    ##Out:
  • CC = success
  • A = char
    #GetC
    Get char from StdIn
    ##In:
  • none.
    ##Out:
  • CC = success
  • A = char
    #FPutS
    Write String to FILE
    ##In:
  • PUSHW : CPtr
  • PUSHB : hFILE
    ##Out:
  • CC = success
    #PutSYA
    Write String to StdOut
    ##In:
  • Y,A : CPtr
    ##Out:
  • CC = success
    #FGetS
    Read String From FILE
    ##In:
  • PUSHW : CPtr
  • PUSHB : hFILE
    ##Out:
  • CC = success
    #GetSYA
    Read String From StdIn
    ##In:
  • Y,A : CPtr
    ##Out:
  • CC = success
    #SScanF
    Scan a PStr (in progress)
    ##In:
  • PUSHW PTR to target buffer
  • PUSHW PSTR pattern (ex: "%d.%d.%d.%d")
  • %d : byte
  • PUSHW PSTR to scan (ex: "192.168.1.5")
    ##Out:
    #PPrintFYA/CPrintFYA
    Prints Pascal/C-Style String
    ##In:
  • Y,A = PTR to PStr/CStr
  • %a : pull 2 bytes to Print Access right String 'drwxrwxrwx'
  • %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 2 bytes PTR to 4 bytes long unsigned DEC 0..4294967295
  • %e : pull 2 bytes PTR to 6 Bytes Real +1.23456789e+12
  • %f : pull 2 bytes PTR to 6 Bytes Real 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 2 bytes PTR to 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'
    ##Out:
  • CC : success
  • CS : I/O error from COut
    #GetDevByIDA
    ##IN:
  • A = DevID
    ##OUT:
  • CC = OK, CS = ERROR
  • Y,A = DEVSLOT
  • note: X Unmodified
    #GetDevByNameYA
    ##IN:
  • Y,A = Ptr to device name (PStr)
    ##OUT:
  • CC = OK, CS = ERROR
  • X = DEVID
  • Y,A = DEVSLOT
    #GetDevStatusA
    ##IN:
  • A = DevID
    ##OUT:
  • CC = OK, CS = ERROR
  • Y,A = Ptr to S.DEVINFO
    #MkNodYA
    return a hFile for a given Device Name
    ##IN:
  • Y,A=DevName
    ##OUT:
  • CC = OK, CS = ERROR
  • A = hFILE
    #MkNodA
    return a hFile for a given Socket
    ##IN:
  • A=hSocket
    ##OUT:
  • CC = OK, CS = ERROR
  • A = hFILE
    #MKFIFO
    return a S.FILE to a new FIFO
    ##IN:
    ##OUT:
  • CC = OK, CS = ERROR
  • A = hFILE
    #OpenDirYA
    ##In:
  • Y,A = PATH (PSTR)
    ##Out:
  • CC : success
  • A = hDIR
  • CS : error
  • A = EC
    #ReadDirA
    ##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
    #CloseDirA
    ##In:
  • A = hDIR
    ##Out:
  • none, always succeed.
    #MKDirYA
    ##In:
  • Y,A = DIR name
    ##Out:
  • CC : success
  • CS : error
  • A = EC
    #ExpandPStrYA
    ##In:
  • Y,A = PTR to String to Expand (PSTR)
    ##Out:
  • X = hMem to Expanded String (PSTR)
  • Y,A = PTR to Expanded String
    #PutEnvYA
    ##In:
  • Y,A = PTR to String NAME=VALUE (PSTR)
    ##Out:
    #SetEnv
    ##In:
  • PUSHW = PTR To Value (PSTR)
  • PUSHW = PTR To Name (PSTR)
    ##Out:
    #GetEnvYA
    ##In:
  • Y,A = PTR to NAME (PSTR)
    ##Out:
  • CC : Y,A = PTR to VALUE (PSTR)
  • CS : not found
    #UnsetEnvYA
    ##In:
  • Y,A = PTR To Name (PSTR)
    ##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
    #FCloseA
    Close a file
    ##In :
  • A = hFILE
    ##Out :
    #FReadA
    Read ONE byte from file
    ##In :
  • A = hFILE
    ##Out :
  • A = Byte Read
    #FWriteAY
    ##In:
  • A = hFILE
  • Y = char
    #Out:
  • Y,A = Bytes Written
    #FRead
    Read bytes from file
    ##In :
  • PUSHW = Dest Ptr
  • PUSHW = Bytes To Read
  • PUSHB = hFILE
    ##Out :
  • Y,A = Bytes Read
    #FWrite
    ##In:
  • PUSHW = Src Ptr
  • PUSHW = Bytes To Write
  • PUSHB = hFILE
    #Out:
  • Y,A = Bytes Written
    #FFlushA
    ##In:
  • A = hFILE
    #FSeek
    ##In:
  • PUSHW = OffsetHi
  • PUSHW = OffsetLo
  • PUSHB = From
  • PUSHB = hFILE
    #FTellA
    ##In:
  • A = hFILE
    ##Out:
  • Y,A,X = Offset
    #FEOFA
    ##In:
  • A = hFILE
    ##Out:
  • CC :
  • A=0 EOF
  • A =0 NOT EOF
  • CS :
    #RemoveYA
    #Rename
    Rename a file
    ##In :
  • PUSHW = New Name
  • PUSHW = Old Name
    ##Out :
    #Stat
    Return information about a file
    ##In :
  • PUSHW = PTR to S.STAT buffer
  • PUSHW = PTR to Filename (PSTR)
    ##Out :
    #FileSearch
    Search a file in the provided PATH list
    And return, if found, the full path to it.
    ##In:
  • PUSHW = Ptr to Search Path (PSTR) %LIB%;/SYS/SLIB
  • PUSHW = Ptr to File Name (PSTR)
    ##Out:
  • CC : success
  • Y,A = PSTR to FilePath (PSTR)
  • X = hMem to FilePath
  • CS : not found
    #GetFullPathYA
    ##In :
  • Y,A = Filename (PSTR)
    ##Out :
  • CC : success
  • Y,A = FullPath (PSTR)
  • X = hMem of FullPath
  • CS : A = Error Code
    #LoadFile
    ##In:
  • PUSHW = AUXTYPE (Handled by....
  • PUSHB = TYPE ...
  • PUSHB = MODE ...
  • PUSHW = PATH ...FOpen)
    ##Out:
  • Y,A = File Length
  • X = hMem of Loaded File
    #SaveFile
    ##In:
  • PUSHW = SrcLen
  • PUSHW = SrcPtr
  • PUSHW = AUXTYPE (Handled by....
  • PUSHB = TYPE ...
  • PUSHB = MODE ...
  • PUSHW = PATH ...FOpen)
    #GetMem
    ##In:
  • PUSHW = Size Requested
  • PUSHB = Options
  • S.MEM.F.INIT0 : init memory with 00
  • S.MEM.F.ALIGN : page aligned
    ##Out:
  • CC : success
  • YA = PTR to Mem
  • X = hMem
  • CS :
  • A = EC
    #FreeMemA
    ##In:
  • A = hMem To Free
    ##Out:
  • none.
  • (X,Y unmodified)
    #GetMemPtrA
    ##In:
  • A = hMem
    ##Out:
  • Y,A = PTR to MemBlock
  • (X unmodified)
    #GetMemByIDA
    ##In:
  • A = hMem
    ##Out:
  • Y,A = ZPMemMgrSPtr = PTR to S.MEM
  • X unmodified
    #GetMemStatYA
    ##In:
  • Y,A = 24 bytes buffer
    ##Out:
  • Buffer filled with memory stats
    #ExecProcessNewEnvYA
    #ExecProcessYA (Blocking Parent PID)
    #CreateProcessNewEnvYA
    #CreateProcessYA (Non Blocking)
    ##In:
  • Y,A = PTR To Cmd Line
    ##Out:
  • A = Child PSID
    #GetPSByIDA
    ##In :
  • A = PID
    ##Out :
  • Y,A = PTR to TSKSLOT
    #Sleep
    Make current process suspend until next RUN
    ##In :
  • (none)
    ##Out :
  • (none)
    #NewPStrYA
    Create a new copy of PSTR
    ##In:
  • Y,A = PTR to buffer
    ##Out:
  • CC : success
  • Y,A = PTR to String
  • X = hMem (PSTR)
  • CS : error
  • A = SYS error code
    #PStrCpy
    Copy string
    ##In:
  • PUSHW = Ptr to SRC (PSTR)
  • PUSHW = Ptr to DST (PSTR)
    ##Out:
  • DST = SRC (PSTR)
    #PStrCat
    Append SRC to DST
    ##In:
  • PUSHW = Ptr to SRC (PSTR)
  • PUSHW = Ptr to DST (PSTR)
    ##Out:
  • DST = DST+SRC (PSTR)
    #PStrMatch
    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
    #PStrUprYA/PStrLwrYA
    Convert string to UPPERCASE/lowercase
    ##In:
  • Y,A = PTR to String (PSTR)
    ##Out:
  • Uppercased/lowercased String in Buffer
    #PStrFTime
    Convert S.TIME struct to PSTR
    ##In:
  • PUSHW = Dst PTR To PSTR 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.
    #PStr2StrArrayYA
    Convert a PSTR (e.g. : command Line) to a Array of PSTRs (Args[])
    ##In:
  • Y,A = PTR to String
    ##Out:
  • CC : success
  • Y,A = PTR to StrArray
  • X = hMem
  • CS : error
  • A = SYS error code