mirror of https://github.com/A2osX/A2osX.git
Kernel version 0.8 : Preparing 0.9 Kernel API
This commit is contained in:
parent
75750babe2
commit
68c61c225f
|
@ -13,8 +13,8 @@ SET
|
|||
INSDRV CONSOLE.DRV
|
||||
STARTPROC GETTY CON ${A2OSX}SBIN/LOGIN
|
||||
# Serial Login
|
||||
#INSDRV SSC.DRV 9600 N 8 1 X
|
||||
#STARTPROC GETTY COM2 LOGIN
|
||||
#INSDRV SSC.DRV 9600,N,8,1,X
|
||||
#STARTPROC GETTY COM2 ${A2OSX}SBIN/LOGIN
|
||||
#INSDRV PIC.DRV
|
||||
# Network Section
|
||||
INSDRV UTHERNET.DRV 000E3A123456
|
||||
|
|
160
INC/A2osX.I.txt
160
INC/A2osX.I.txt
|
@ -206,10 +206,10 @@ SYS.SScanF .EQ $42
|
|||
SYS.PPrintFYA .EQ $44
|
||||
SYS.CPrintFYA .EQ $46
|
||||
|
||||
* .EQ $48 SYS.FPUTCA
|
||||
* .EQ $4A SYS.FGETC
|
||||
* .EQ $4C SYS.FPUTSYA
|
||||
* .EQ $4E SYS.FGETS
|
||||
SYS.FPUTCA .EQ $48
|
||||
SYS.FGETC .EQ $4A
|
||||
SYS.FPUTSYA .EQ $4C
|
||||
SYS.FGETS .EQ $4E
|
||||
*--------------------------------------
|
||||
SYS.NewPStrYA .EQ $50
|
||||
SYS.PStrCpy .EQ $52
|
||||
|
@ -245,11 +245,10 @@ SYS.GetDevByIDA .EQ $80
|
|||
SYS.GetDevByNameYA .EQ $82
|
||||
SYS.GetDevInfoA .EQ $84
|
||||
* .EQ $86
|
||||
|
||||
*--------------------------------------
|
||||
SYS.MKNOD .EQ $88
|
||||
SYS.MKFIFO .EQ $8A
|
||||
* .EQ $8C
|
||||
SYS.MKNodYA .EQ $88
|
||||
SYS.MKNodA .EQ $8A
|
||||
SYS.MKFIFO .EQ $8C
|
||||
* .EQ $8E
|
||||
*--------------------------------------
|
||||
SYS.GetMem .EQ $90
|
||||
|
@ -305,6 +304,20 @@ S.MEM.LEN .EQ 6
|
|||
*
|
||||
S.MEM .EQ 8
|
||||
*--------------------------------------
|
||||
S.MEMSTAT.ML .EQ 0
|
||||
S.MEMSTAT.MF .EQ 2
|
||||
S.MEMSTAT.MH .EQ 4
|
||||
*
|
||||
S.MEMSTAT.XL .EQ 8
|
||||
S.MEMSTAT.XF .EQ 10
|
||||
S.MEMSTAT.XH .EQ 12
|
||||
*
|
||||
S.MEMSTAT.DL .EQ 16
|
||||
S.MEMSTAT.DF .EQ 18
|
||||
S.MEMSTAT.DH .EQ 20
|
||||
*
|
||||
S.MEMSTAT .EQ 24
|
||||
*--------------------------------------
|
||||
* DEVMGR (old API)
|
||||
*--------------------------------------
|
||||
S.DEV.CODE .EQ 0 cld,jmp...
|
||||
|
@ -395,15 +408,15 @@ DEVMGR..CLOSE .EQ 7
|
|||
DEVMGR..READ .EQ 8
|
||||
DEVMGR..WRITE .EQ 9
|
||||
*--------------------------------------
|
||||
S.DEVSTAT.STATUS .EQ 0
|
||||
S.DEVSTAT.STATUS.BLOCK .EQ %10000000
|
||||
S.DEVSTAT.STATUS.WRITE .EQ %01000000
|
||||
S.DEVSTAT.STATUS.READ .EQ %00100000
|
||||
S.DEVSTAT.STATUS.ONLINE .EQ %00010000
|
||||
S.DEVSTAT.STATUS.NOFMT .EQ %00001000
|
||||
S.DEVSTAT.STATUS.WENABL .EQ %00000100
|
||||
S.DEVSTAT.STATUS.IRQ .EQ %00000010
|
||||
S.DEVSTAT.STATUS.OPENED .EQ %00000001
|
||||
S.DEVSTAT.S .EQ 0
|
||||
S.DEVSTAT.S.BLOCK .EQ %10000000
|
||||
S.DEVSTAT.S.WRITE .EQ %01000000
|
||||
S.DEVSTAT.S.READ .EQ %00100000
|
||||
S.DEVSTAT.S.ONLINE .EQ %00010000
|
||||
S.DEVSTAT.S.NOFMT .EQ %00001000
|
||||
S.DEVSTAT.S.WENABL .EQ %00000100
|
||||
S.DEVSTAT.S.IRQ .EQ %00000010
|
||||
S.DEVSTAT.S.OPENED .EQ %00000001
|
||||
S.DEVSTAT.SIZE .EQ 1
|
||||
S.DEVSTAT.IDSTRING .EQ 4 1 (LEN) + 16 MAX
|
||||
S.DEVSTAT.TYPE .EQ 21
|
||||
|
@ -528,24 +541,89 @@ S.STAT .EQ 64
|
|||
*--------------------------------------
|
||||
* S.FILE for FOPEN,FREAD......
|
||||
*--------------------------------------
|
||||
S.FILE.HANDLER .EQ 0 0=KRNL,!0=hDEV,hLIB (LIBNFS,LIBTCPIP.....)
|
||||
S.FILE.TYPE .EQ 1
|
||||
S.FILE.TYPE.REG .EQ 1
|
||||
S.FILE.TYPE.DIR .EQ 2
|
||||
S.FILE.TYPE.BLK .EQ 3
|
||||
S.FILE.TYPE.CHR .EQ 4
|
||||
S.FILE.TYPE.LNK .EQ 5
|
||||
S.FILE.TYPE.SOCK .EQ 6
|
||||
S.FILE.TYPE.FIFO .EQ 7
|
||||
|
||||
S.FILE.PRODOS.REF .EQ 2
|
||||
S.FILE.PRODOS.IOBUF .EQ 3
|
||||
*
|
||||
S.FILE.PRODOS .EQ 4
|
||||
*
|
||||
* no S.FILE,Variable size
|
||||
S.FILE.HANDLER .EQ 0 0=KRNL,!0=hLIB (LIBNFS,LIBTCPIP.....)
|
||||
S.FILE.T .EQ 1
|
||||
S.FILE.T.REG .EQ 1
|
||||
S.FILE.T.DIR .EQ 2
|
||||
S.FILE.T.BDEV .EQ 3
|
||||
S.FILE.T.CDEV .EQ 4
|
||||
S.FILE.T.LNK .EQ 5
|
||||
S.FILE.T.DSOCK .EQ 6
|
||||
S.FILE.T.SSOCK .EQ 7
|
||||
S.FILE.T.FIFO .EQ 8
|
||||
*--------------------------------------
|
||||
* S.DIR for OpenDir,ReadDir,CloseDir
|
||||
S.FILE.REG.REF .EQ 2
|
||||
S.FILE.REG.IOBUF .EQ 3
|
||||
*
|
||||
S.FILE.REG .EQ 4
|
||||
*--------------------------------------
|
||||
S.FILE.DIR.REF .EQ 2
|
||||
S.FILE.DIR.IOBUF .EQ 3
|
||||
S.FILE.DIR.EL .EQ 4
|
||||
S.FILE.DIR.EPB .EQ 5
|
||||
S.FILE.DIR.FC .EQ 6 word
|
||||
*
|
||||
S.FILE.DIR .EQ 8
|
||||
*--------------------------------------
|
||||
S.FILE.DEV
|
||||
*--------------------------------------
|
||||
* S.FILE.LNK
|
||||
*--------------------------------------
|
||||
S.FILE.SOCK.SO .EQ 2
|
||||
S.FILE.SOCK.SO.DEBUG .EQ $01
|
||||
S.FILE.SOCK.SO.ACCEPTCONN .EQ $02
|
||||
S.FILE.SOCK.SO.REUSEADDR .EQ $04
|
||||
S.FILE.SOCK.SO.KEEPALIVE .EQ $08
|
||||
S.FILE.SOCK.SO.DONTROUTE .EQ $10
|
||||
S.FILE.SOCK.SO.BROADCAST .EQ $20
|
||||
S.FILE.SOCK.SO.USELOOPBACK .EQ $40
|
||||
S.FILE.SOCK.SO.LINGER .EQ $80
|
||||
|
||||
S.FILE.SOCK.S .EQ 3
|
||||
S.FILE.SOCK.S.CLOSED .EQ 0
|
||||
S.FILE.SOCK.S.LISTEN .EQ 1
|
||||
S.FILE.SOCK.S.SYNSENT .EQ 2
|
||||
S.FILE.SOCK.S.SYNRCVD .EQ 3
|
||||
S.FILE.SOCK.S.ESTBLSH .EQ 4
|
||||
S.FILE.SOCK.S.CLWAIT .EQ 5
|
||||
S.FILE.SOCK.S.LASTACK .EQ 6
|
||||
S.FILE.SOCK.S.FINWT1 .EQ 7
|
||||
S.FILE.SOCK.S.FINWT2 .EQ 8
|
||||
S.FILE.SOCK.S.CLOSING .EQ 9
|
||||
S.FILE.SOCK.S.TIMEWT .EQ 10
|
||||
|
||||
S.FILE.SOCK.SRC.ADDR .EQ 4
|
||||
S.FILE.SOCK.SRC.PORT .EQ 8
|
||||
S.FILE.SOCK.DST.ADDR .EQ 10
|
||||
S.FILE.SOCK.DST.PORT .EQ 14
|
||||
* Listen type Queue
|
||||
S.FILE.SOCK.LQ.HEAD .EQ 16
|
||||
S.FILE.SOCK.LQ.TAIL .EQ 17
|
||||
S.FILE.SOCK.LQ .EQ 18
|
||||
S.FILE.SOCK.LQ.MAX .EQ 14 14 hSocket
|
||||
* Datagram type Queue
|
||||
S.FILE.SOCK.DQ.HEAD .EQ 16
|
||||
S.FILE.SOCK.DQ.TAIL .EQ 17
|
||||
S.FILE.SOCK.DQ .EQ 18
|
||||
S.FILE.SOCK.DQ.MAX .EQ 14 14 hMem (frames)
|
||||
* Stream type Queue
|
||||
S.FILE.SOCK.SQ.hInMem .EQ 16
|
||||
S.FILE.SOCK.SQ.hOutMem .EQ 17
|
||||
S.FILE.SOCK.SQ.SIZE .EQ 18
|
||||
S.FILE.SOCK.SQ.HEAD .EQ 20
|
||||
S.FILE.SOCK.SQ.TAIL .EQ 22
|
||||
S.FILE.SOCK.SQ.SEQNUM .EQ 24
|
||||
S.FILE.SOCK.SQ.ACKNUM .EQ 28
|
||||
*
|
||||
S.FILE.SOCK .EQ 32
|
||||
*--------------------------------------
|
||||
S.FILE.FIFO.hMem .EQ 2
|
||||
S.FILE.FIFO.InPtr .EQ 3
|
||||
S.FILE.FIFO.OutPtr .EQ 4
|
||||
*
|
||||
S.FILE.FIFO .EQ 5
|
||||
*--------------------------------------
|
||||
* OLD API: S.DIR for OpenDir,ReadDir,CloseDir
|
||||
*--------------------------------------
|
||||
S.DIR.HANDLER .EQ 0
|
||||
S.DIR.F .EQ 1
|
||||
|
@ -565,19 +643,5 @@ S.PFT.DATA .EQ 24 8 bytes OPAQUE data for handler
|
|||
*
|
||||
S.PFT .EQ 32
|
||||
*--------------------------------------
|
||||
S.MEMSTAT.ML .EQ 0
|
||||
S.MEMSTAT.MF .EQ 2
|
||||
S.MEMSTAT.MH .EQ 4
|
||||
*
|
||||
S.MEMSTAT.XL .EQ 8
|
||||
S.MEMSTAT.XF .EQ 10
|
||||
S.MEMSTAT.XH .EQ 12
|
||||
*
|
||||
S.MEMSTAT.DL .EQ 16
|
||||
S.MEMSTAT.DF .EQ 18
|
||||
S.MEMSTAT.DH .EQ 20
|
||||
*
|
||||
S.MEMSTAT .EQ 24
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.DEV/INC/A2OSX.I
|
||||
|
|
|
@ -461,20 +461,6 @@ PrintF.SS >PULLW ZPQuickPtr2
|
|||
.8 clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
K.COutA phx
|
||||
phy
|
||||
cmp #13
|
||||
bne .1
|
||||
ldx #DEVMGR.COUT
|
||||
jsr pDevJmp
|
||||
bcs .2
|
||||
lda #10
|
||||
.1 ldx #DEVMGR.COUT
|
||||
jsr pDevJmp
|
||||
.2 ply
|
||||
plx
|
||||
rts
|
||||
*--------------------------------------
|
||||
CIO.GetCharAtPtr1Y
|
||||
lda #$ff Self Modified PSTR/CSTR
|
||||
bne .1
|
||||
|
@ -496,6 +482,39 @@ CIO.GetCharAtPtr1Y
|
|||
.9 clc no error, but end of string
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.COutA phx
|
||||
phy
|
||||
cmp #13
|
||||
bne .1
|
||||
ldx #DEVMGR.COUT
|
||||
jsr pDevJmp
|
||||
bcs .2
|
||||
lda #10
|
||||
.1 ldx #DEVMGR.COUT
|
||||
jsr pDevJmp
|
||||
.2 ply
|
||||
plx
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* #PutCA
|
||||
* Print A (char) to StdOut
|
||||
* ##In:
|
||||
* A : char to print
|
||||
* none.
|
||||
* ##Out:
|
||||
* CC = success
|
||||
*\--------------------------------------
|
||||
K.FPutCA
|
||||
|
||||
K.PutCA
|
||||
ldx #DEVMGR..WRITE
|
||||
*--------------------------------------
|
||||
K.FGetC
|
||||
*--------------------------------------
|
||||
K.FPutSYA
|
||||
*--------------------------------------
|
||||
K.FGetS
|
||||
*--------------------------------------
|
||||
PRINTDEC lda PADLEN any Len format ?
|
||||
beq .1 no
|
||||
|
||||
|
|
|
@ -101,27 +101,66 @@ K.GetDevInfoA jsr K.GetDevByIDA
|
|||
jmp (ZPQuickPtr1)
|
||||
*/--------------------------------------
|
||||
* #MkNodYA
|
||||
* return a S.FILE from a given device
|
||||
* return a S.FILE from a given Device
|
||||
* ##IN:
|
||||
* Y,A=DevName
|
||||
* ##OUT:
|
||||
* CC = OK, CS = ERROR
|
||||
* A = hFILE
|
||||
*\--------------------------------------
|
||||
K.MkNodYA
|
||||
K.MkNodYA jsr K.GetDevByNameYA
|
||||
bcs .9
|
||||
|
||||
>PUSHWI S.FILE.DEV
|
||||
>PUSHBI S.MEM.F.INIT0
|
||||
jsr K.GetMem
|
||||
bcs
|
||||
|
||||
|
||||
clc
|
||||
rts
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* #MkFIFO
|
||||
* return a S.FILE
|
||||
* #MKFIFO
|
||||
* return a S.FILE to a new FIFO
|
||||
* ##IN:
|
||||
* ##OUT:
|
||||
* CC = OK, CS = ERROR
|
||||
* A = hFILE
|
||||
*\--------------------------------------
|
||||
K.MkFIFO
|
||||
K.MKFIFO >PUSHWI 256
|
||||
>PUSHBI S.MEM.F.INIT0
|
||||
jsr K.GetMem
|
||||
bcs .99
|
||||
|
||||
phx save FIFO buffer
|
||||
|
||||
>PUSHWI S.FILE.FIFO
|
||||
>PUSHBI S.MEM.F.INIT0
|
||||
jsr K.GetMem
|
||||
|
||||
bcs .9
|
||||
|
||||
>STYA ZPQuickPtr1
|
||||
|
||||
ldy #S.FILE.T
|
||||
lda #S.FILE.T.FIFO
|
||||
sta (ZPQuickPtr1),y
|
||||
|
||||
iny S.FILE.FIFO.hMem
|
||||
pla
|
||||
sta (ZPQuickPtr1),y
|
||||
txa
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 plx get back FIFO buffer
|
||||
pha save error code
|
||||
txa
|
||||
jsr K.FreeMemA
|
||||
pla
|
||||
sec
|
||||
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE SYS/KERNEL.S.DEV
|
||||
|
|
|
@ -58,7 +58,7 @@ K.FOPEN jsr PFT.CheckPathSTK
|
|||
bcc K.FOPEN.10
|
||||
K.FOPEN.9 rts
|
||||
|
||||
K.FOPEN.10 >PUSHWI S.FILE.PRODOS
|
||||
K.FOPEN.10 >PUSHWI S.FILE.T.REG
|
||||
>PUSHBI S.MEM.F.INIT0
|
||||
jsr K.GetMem
|
||||
bcs K.FOPEN.9
|
||||
|
@ -73,14 +73,14 @@ K.FOPEN.10 >PUSHWI S.FILE.PRODOS
|
|||
|
||||
>STYA MLICALL.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
|
||||
txa
|
||||
ldy #S.FILE.PRODOS.IOBUF
|
||||
ldy #S.FILE.REG.IOBUF
|
||||
sta (ZPQuickPtr1),y
|
||||
|
||||
>MLICALL MLIOPEN
|
||||
bcs .98
|
||||
|
||||
lda MLICALL.PARAMS+5 get ref_num
|
||||
ldy #S.FILE.PRODOS.REF
|
||||
ldy #S.FILE.REG.REF
|
||||
sta (ZPQuickPtr1),y
|
||||
|
||||
sta MLICALL.PARAMS+1 Next MLI Calls are REF_NUM based
|
||||
|
@ -115,7 +115,10 @@ K.FOPEN.10 >PUSHWI S.FILE.PRODOS
|
|||
sta MLICALL.PARAMS+3
|
||||
>MLICALL MLINEWLINE
|
||||
|
||||
.30 lda hFILE
|
||||
.30 ldy #S.FILE.T
|
||||
lda #S.FILE.T.REG
|
||||
sta (ZPQuickPtr1),y
|
||||
lda hFILE
|
||||
clc
|
||||
rts CC
|
||||
|
||||
|
@ -141,13 +144,13 @@ K.FCloseA jsr PFT.CheckFileA
|
|||
jsr K.GetMemPtrA
|
||||
>STYA ZPQuickPtr1
|
||||
|
||||
K.FCloseA.1 ldy #S.FILE.PRODOS.REF
|
||||
K.FCloseA.1 ldy #S.FILE.REG.REF
|
||||
lda (ZPQuickPtr1),y
|
||||
beq .1
|
||||
sta MLICALL.PARAMS+1
|
||||
>MLICALL MLICLOSE
|
||||
|
||||
.1 ldy #S.FILE.PRODOS.IOBUF
|
||||
.1 ldy #S.FILE.REG.IOBUF
|
||||
lda (ZPQuickPtr1),y
|
||||
beq .2
|
||||
jsr K.FreeMemA
|
||||
|
|
Loading…
Reference in New Issue