mirror of
https://github.com/A2osX/A2osX.git
synced 2025-04-01 14:29:40 +00:00
Kernel 0.9.2
This commit is contained in:
parent
9fd9e6af69
commit
3cd1365e90
@ -52,13 +52,13 @@ X = DevID
|
||||
# GetDevStatus
|
||||
|
||||
## C
|
||||
`int getdevstatus ( short int hFD, S.DIB * dstat );`
|
||||
`int getdevstatus(short int hFD, S.DIB* dstat);`
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
`>PUSHWI S.DIB`
|
||||
`lda DevID`
|
||||
`>SYSCALL GetDevStatus`
|
||||
`>PUSHWI S.DIB`
|
||||
`lda DevID`
|
||||
`>SYSCALL GetDevStatus`
|
||||
**Out:**
|
||||
|
||||
# MKDev
|
||||
@ -139,26 +139,55 @@ DstStat = S.STAT
|
||||
CS : not found
|
||||
|
||||
# PutEnv
|
||||
Change or add an environment variable, string is 'NAME=VALUE'
|
||||
|
||||
## C
|
||||
`int putenv(char *string);`
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
Y,A = PTR to String NAME=VALUE (C-String)
|
||||
`>LDYA string`
|
||||
`>SYSCALL putenv`
|
||||
**Out:**
|
||||
|
||||
# SetEnv
|
||||
Change or add an environment variable
|
||||
|
||||
## C
|
||||
`int setenv(const char *name, const char *value);`
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
PUSHW = PTR To Value (PSTR)
|
||||
PUSHW = PTR To Name (PSTR)
|
||||
`>PUSHW value`
|
||||
`>LDYA name`
|
||||
`>SYSCALL setenv`
|
||||
**Out:**
|
||||
|
||||
# GetEnv
|
||||
searches the environment list to find the environment variable name,
|
||||
and returns a pointer to the corresponding value string.
|
||||
|
||||
## C
|
||||
`char *getenv(const char *name);`
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
Y,A = PTR to NAME (PSTR)
|
||||
`>LDYA name`
|
||||
`>SYSCALL gerenv`
|
||||
**Out:**
|
||||
CC : Y,A = PTR to VALUE (PSTR)
|
||||
CC : Y,A = PTR to VALUE (C-String)
|
||||
CS : not found
|
||||
|
||||
# UnsetEnv
|
||||
Remove an environment variable
|
||||
|
||||
## C
|
||||
`int unsetenv(const char *name);`
|
||||
|
||||
## ASM
|
||||
**In:**
|
||||
Y,A = PTR To Name (PSTR)
|
||||
`>LDYA name`
|
||||
`>SYSCALL unsetenv`
|
||||
**Out:**
|
||||
|
||||
# LoadTxtFile
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -11,9 +11,9 @@ ZPPtr2 .EQ ZPKERNEL+2
|
||||
ZPPtr3 .EQ ZPKERNEL+4
|
||||
ZPPtr4 .EQ ZPKERNEL+6
|
||||
|
||||
pIOCTL .EQ ZPKERNEL+8
|
||||
*pDev .EQ ZPKERNEL+10
|
||||
pFD .EQ ZPKERNEL+12
|
||||
pFD .EQ ZPKERNEL+10
|
||||
pDRV .EQ ZPKERNEL+12
|
||||
pIOCTL .EQ ZPKERNEL+12
|
||||
pIOBuf .EQ ZPKERNEL+14
|
||||
*--------------------------------------
|
||||
SYS.BASL0 .EQ $800
|
||||
|
@ -201,7 +201,7 @@ CS.RUN.IACSB
|
||||
bne .8
|
||||
|
||||
>PUSHEA.G IAC.SB.DATA
|
||||
>PUSHW L.ENV.TERM
|
||||
>LDYA L.ENV.TERM
|
||||
>SYSCALL SetEnv
|
||||
|
||||
.8 jmp CS.RUN.LOOP
|
||||
|
@ -226,7 +226,7 @@ CS.RUN.READ lda #0 reset Buffer
|
||||
|
||||
>PUSHW ZPCMDBuf
|
||||
|
||||
>PUSHEA.G CMD.VarName
|
||||
>LEA.G CMD.VarName
|
||||
>SYSCALL SetEnv
|
||||
rts
|
||||
*--------------------------------------
|
||||
@ -326,7 +326,7 @@ SetPWD ldy #S.PS.hPREFIX
|
||||
lda (pPs),y
|
||||
>SYSCALL GetMemPtr
|
||||
>PUSHYA
|
||||
>PUSHW L.ENV.PWD
|
||||
>LDYA L.ENV.PWD
|
||||
>SYSCALL SetEnv
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -75,30 +75,19 @@ K.GetDev.9 rts
|
||||
*/--------------------------------------
|
||||
* # GetDevStatus
|
||||
* ## C
|
||||
* `int getdevstatus ( short int hFD, S.DIB * dstat );`
|
||||
* `int getdevstatus(short int hFD, S.DIB* dstat);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `>PUSHWI S.DIB`
|
||||
* `lda DevID`
|
||||
* `>SYSCALL GetDevStatus`
|
||||
* `>PUSHWI S.DIB`
|
||||
* `lda DevID`
|
||||
* `>SYSCALL GetDevStatus`
|
||||
* **Out:**
|
||||
*\--------------------------------------
|
||||
K.GetDevStatus pha
|
||||
|
||||
K.GetDevStatus jsr K.GetMemPtr
|
||||
>STYA pFD
|
||||
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||
|
||||
pla
|
||||
jsr K.GetMemPtr
|
||||
bcs K.GetDev.9
|
||||
|
||||
>STYA pFD
|
||||
|
||||
ldy #S.FD.DEV.DRVPTR
|
||||
lda (pFD),y
|
||||
sta .1+1
|
||||
iny
|
||||
lda (pFD),y
|
||||
sta .1+2
|
||||
jsr K.IOCTL.GetPDrv
|
||||
|
||||
lda #S.IOCTL.STATCODE.GETDIB
|
||||
sta K.S.IOCTL+S.IOCTL.STATCODE
|
||||
@ -106,9 +95,7 @@ K.GetDevStatus pha
|
||||
>LDYAI K.S.IOCTL
|
||||
|
||||
ldx #IOCTL.STATUS
|
||||
.1 jmp $ffff
|
||||
|
||||
.9 rts
|
||||
jmp (pDrv)
|
||||
*/--------------------------------------
|
||||
* # MKDev
|
||||
* **In:**
|
||||
|
@ -57,7 +57,7 @@ K.OpenDir jsr PFT.CheckPathYA
|
||||
|
||||
.98 pha save MLI error
|
||||
lda .8+1
|
||||
jsr K.CloseDir
|
||||
jsr K.FClose =K.CloseDir
|
||||
pla get back MLI error
|
||||
sec
|
||||
.99 rts
|
||||
@ -610,7 +610,7 @@ K.ReadDir.ConvertTime
|
||||
* **Out:**
|
||||
* none, always succeed.
|
||||
*\-------------------------------------
|
||||
K.CloseDir .EQ K.FClose
|
||||
*K.CloseDir .EQ K.FClose
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
||||
|
@ -225,8 +225,13 @@ K.FileSearch.YA >STYA .4+1
|
||||
K.FileSearch.SearchPath .BS 2
|
||||
*/--------------------------------------
|
||||
* # PutEnv
|
||||
* Change or add an environment variable, string is 'NAME=VALUE'
|
||||
* ## C
|
||||
* `int putenv(char *string);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* Y,A = PTR to String NAME=VALUE (C-String)
|
||||
* `>LDYA string`
|
||||
* `>SYSCALL putenv`
|
||||
* **Out:**
|
||||
*\--------------------------------------
|
||||
K.PutEnv >STYA ZPPtr1 NAME=VALUE
|
||||
@ -262,12 +267,19 @@ K.PutEnv >STYA ZPPtr1 NAME=VALUE
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # SetEnv
|
||||
* Change or add an environment variable
|
||||
* ## C
|
||||
* `int setenv(const char *name, const char *value);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* PUSHW = PTR To Value (PSTR)
|
||||
* PUSHW = PTR To Name (PSTR)
|
||||
* `>PUSHW value`
|
||||
* `>LDYA name`
|
||||
* `>SYSCALL setenv`
|
||||
* **Out:**
|
||||
*\--------------------------------------
|
||||
K.SetEnv jsr MEM.PullP1P2 Ptr1=NAME,Ptr2=VALUE
|
||||
K.SetEnv >STYA ZPPtr1 name
|
||||
>PULLW ZPPtr2 value
|
||||
|
||||
K.SetEnv.I jsr K.UnsetEnv.I
|
||||
|
||||
jsr ENV.InitEnvP3 ZPPtr3 -> Env
|
||||
@ -366,10 +378,16 @@ K.SetEnv.I jsr K.UnsetEnv.I
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # GetEnv
|
||||
* searches the environment list to find the environment variable name,
|
||||
* and returns a pointer to the corresponding value string.
|
||||
* ## C
|
||||
* `char *getenv(const char *name);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* Y,A = PTR to NAME (PSTR)
|
||||
* `>LDYA name`
|
||||
* `>SYSCALL gerenv`
|
||||
* **Out:**
|
||||
* CC : Y,A = PTR to VALUE (PSTR)
|
||||
* CC : Y,A = PTR to VALUE (C-String)
|
||||
* CS : not found
|
||||
*\--------------------------------------
|
||||
K.GetEnv >STYA ZPPtr1
|
||||
@ -383,8 +401,13 @@ K.GetEnv >STYA ZPPtr1
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # UnsetEnv
|
||||
* Remove an environment variable
|
||||
* ## C
|
||||
* `int unsetenv(const char *name);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* Y,A = PTR To Name (PSTR)
|
||||
* `>LDYA name`
|
||||
* `>SYSCALL unsetenv`
|
||||
* **Out:**
|
||||
*\--------------------------------------
|
||||
K.UnsetEnv >STYA ZPPtr1 Store VAR Name
|
||||
|
@ -940,7 +940,7 @@ TskMgrInit >LDYAI MSG.TSK
|
||||
|
||||
>PUSHW ZPPtr1 push ENV value = PREFIX
|
||||
|
||||
>PUSHWI I.ENV.A2osX push ENV name = A2OSX
|
||||
>LDYAI I.ENV.A2osX push ENV name = A2OSX
|
||||
>SYSCALL SetEnv
|
||||
bcs .9
|
||||
|
||||
|
@ -37,16 +37,11 @@ K.Open.DEV >LDYAI K.MLI.PATH+6 skip $/DEV/
|
||||
>STYA pFD
|
||||
stx .1+1 DEVID
|
||||
|
||||
ldy #S.FD.DEV.DRVPTR
|
||||
lda (pFD),y
|
||||
sta .2+1
|
||||
iny
|
||||
lda (pFD),y
|
||||
sta .2+2
|
||||
jsr K.IOCTL.GetPDrv
|
||||
|
||||
.1 lda #$ff SELF MODIFIED pass A=DEVID To Driver
|
||||
ldx #IOCTL.OPEN
|
||||
.2 jsr $ffff SELF MODIFIED pDRV
|
||||
.2 jsr K.IOCTL.pDrvJmp
|
||||
bcs .9
|
||||
|
||||
ldx .1+1
|
||||
@ -183,6 +178,7 @@ IO.WRITE.REG ldx #MLIWRITE
|
||||
|
||||
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
|
||||
jsr GP.MLICall
|
||||
>LDYA K.MLI.PARAMS+6
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.READ.CDEV ldx #IOCTL.READ
|
||||
@ -190,16 +186,11 @@ IO.READ.CDEV ldx #IOCTL.READ
|
||||
*--------------------------------------
|
||||
IO.WRITE.CDEV ldx #IOCTL.WRITE
|
||||
|
||||
ldy #S.FD.DEV.DRVPTR
|
||||
lda (pFD),y
|
||||
sta .1+1
|
||||
iny
|
||||
lda (pFD),y
|
||||
sta .1+2
|
||||
jsr K.IOCTL.GetPDRV
|
||||
|
||||
>LDYAI K.S.IOCTL
|
||||
|
||||
.1 jsr $ffff
|
||||
.1 jsr K.IOCTL.pDrvJmp
|
||||
bcs .9
|
||||
>LDYA K.S.IOCTL+S.IOCTL.BYTECNT
|
||||
.9 rts
|
||||
@ -275,22 +266,26 @@ K.IOCTL jsr K.GetMemPtr
|
||||
|
||||
>STYA pFD
|
||||
|
||||
ldy #S.FD.DEV.DRVPTR
|
||||
lda (pFD),y
|
||||
sta .8+1
|
||||
iny
|
||||
lda (pFD),y
|
||||
sta .8+2
|
||||
|
||||
jsr K.IOCTL.GetPDRV
|
||||
|
||||
>PULLA
|
||||
tax request
|
||||
|
||||
>PULLYA param
|
||||
|
||||
.8 jmp $ffff SELF MODIFIED x = op
|
||||
jmp (pDRV) SELF MODIFIED x = op
|
||||
|
||||
.9 lda #MLI.E.NODEV
|
||||
>RET 3
|
||||
*--------------------------------------
|
||||
K.IOCTL.GetPDrv ldy #S.FD.DEV.DRVPTR
|
||||
lda (pFD),y
|
||||
sta pDRV
|
||||
iny
|
||||
lda (pFD),y
|
||||
sta pDRV+1
|
||||
rts
|
||||
K.IOCTL.pDrvJmp jmp (pDrv)
|
||||
*/--------------------------------------
|
||||
* # pipe
|
||||
* ## C
|
||||
|
@ -17,7 +17,7 @@ K.SYSCALL.JMP .DA 0 $00
|
||||
|
||||
.DA K.OpenDir $10
|
||||
.DA K.ReadDir
|
||||
.DA K.CloseDir
|
||||
.DA K.FClose
|
||||
.DA K.Open
|
||||
.DA K.Close
|
||||
.DA K.Read
|
||||
|
@ -35,13 +35,13 @@ K.FStat jsr PFT.CheckNodeA
|
||||
|
||||
ldy #S.STAT.SIZE+3
|
||||
lda #0
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
|
||||
ldx #2
|
||||
|
||||
.1 dey
|
||||
lda K.MLI.PARAMS+2,x
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
@ -61,7 +61,7 @@ K.FStat jsr PFT.CheckNodeA
|
||||
K.Stat jsr PFT.CheckPathYA
|
||||
K.Stat.I jsr STDIO.SetMLIPathYA
|
||||
|
||||
>PULLW K.Stat.StoreY+1
|
||||
>PULLW ZPPtr1
|
||||
|
||||
>MLICALL MLIGETFILEINFO
|
||||
bcs .9
|
||||
@ -79,44 +79,41 @@ K.Stat.I jsr STDIO.SetMLIPathYA
|
||||
lda #0
|
||||
|
||||
.2 ldy #S.STAT.MODE
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
|
||||
ldx #K.Stat.DST-K.Stat.SRC
|
||||
|
||||
.3 ldy K.Stat.SRC-1,x
|
||||
lda K.MLI.PARAMS,y
|
||||
ldy K.Stat.DST-1,x
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
dex
|
||||
bne .3
|
||||
|
||||
ldy #S.STAT.SIZE
|
||||
lda #0
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda K.MLI.PARAMS+S.FI.UBLKS
|
||||
asl
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda K.MLI.PARAMS+S.FI.UBLKS+1
|
||||
rol
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny
|
||||
|
||||
lda #0
|
||||
rol
|
||||
jsr K.Stat.StoreY
|
||||
sta (ZPPtr1),y
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
K.Stat.StoreY sta $ffff,y
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.Stat.SRC .DA #S.FI.T
|
||||
.DA #S.FI.AUXTYPE,#S.FI.AUXTYPE+1
|
||||
|
@ -31,9 +31,9 @@ A2osX.GP .PH $BD00
|
||||
.EP
|
||||
A2osX.D1 .PH $D000
|
||||
.DA #RRAMWRAMBNK1
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STAT
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STDLIB
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.PFT
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||
|
Loading…
x
Reference in New Issue
Block a user