From 75750babe23f4ae9c7ed28a9f7260524929c6cbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9my=20GIBERT?= Date: Tue, 6 Dec 2016 17:57:00 +0100 Subject: [PATCH] Kernel version 0.8 : DevMgr, moving to SmartPort, cont. --- INC/A2osX.I.txt | 62 ++++++++++++++++++++++++++++++++++++++------ SYS/KERNEL.S.DEV.txt | 23 ++++++++++++++++ 2 files changed, 77 insertions(+), 8 deletions(-) diff --git a/INC/A2osX.I.txt b/INC/A2osX.I.txt index ef858a40..a9142de5 100644 --- a/INC/A2osX.I.txt +++ b/INC/A2osX.I.txt @@ -128,6 +128,7 @@ A2osX.RANDOM16 .EQ $BEEE * $BEF0->$BEFF : Kernel Config Block *-------------------------------------- A2osX.HZ .EQ $BEF0 +A2osX.RAMDRVDIS .EQ $BEF8 If $80, prevent CHrooting to /RAMx A2osX.SLOTS .EQ $BEF8 $BEF9->$BEFF, 7 slots *-------------------------------------- H.BIN.HEADER .EQ 0 @@ -245,8 +246,9 @@ SYS.GetDevByNameYA .EQ $82 SYS.GetDevInfoA .EQ $84 * .EQ $86 -* .EQ $88 -* .EQ $8A +*-------------------------------------- +SYS.MKNOD .EQ $88 +SYS.MKFIFO .EQ $8A * .EQ $8C * .EQ $8E *-------------------------------------- @@ -263,11 +265,6 @@ SYS.FreeStockObject .EQ $9E SYS.SetLoMem .EQ $A0 SYS.GetMemStatYA .EQ $A2 *-------------------------------------- -* TO DO : -*-------------------------------------- -SYS.MKNOD .EQ $FF -SYS.MKFIFO .EQ $FF -*-------------------------------------- * ProDOS ERROR CODES : $00->$5F * Lib ERROR CODES : $80->$BF * Kernel ERROR CODES : $C0->$FF @@ -308,7 +305,7 @@ S.MEM.LEN .EQ 6 * S.MEM .EQ 8 *-------------------------------------- -* DEV STRUCT +* DEVMGR (old API) *-------------------------------------- S.DEV.CODE .EQ 0 cld,jmp... S.DEV.JMP .EQ 2 ...(code,x) @@ -365,6 +362,55 @@ DEVMGR.GFX.GETPIXEL .EQ 16 DEVMGR.GFX.HLINE .EQ 18 DEVMGR.GFX.VLINE .EQ 20 DEVMGR.GFX.BITBLT .EQ 22 +*-------------------------------------- +* DEVMGR (new API) = Smartport DIB +*-------------------------------------- +* JMP : +* DEVID : +* 00->0F : NUL,SYS & loadable drivers +* X0 : X=Slot : Controller +* XY : X=Slot, Y=Device (<$80) +* > $80 : IDs for PIPE,SOCK.... +*-------------------------------------- +S..DEV.JMP .EQ 0 +S..DEV.DEVID .EQ 2 +S..DEV.FLAGS .EQ 3 +S..DEV.FLAGS.IRQ .EQ %10000000 +S..DEV.FLAGS.TYPE .EQ %00110000 +S..DEV.FLAGS.TYPE.DRV .EQ %00000000 +S..DEV.FLAGS.TYPE.BLK .EQ %00010000 +S..DEV.FLAGS.TYPE.SP .EQ %00100000 +S..DEV.FLAGS.NAMELEN .EQ %00001111 +S..DEV.NAME .EQ 4 +S..DEV .EQ 8 +*-------------------------------------- +DEVMGR..STATUS .EQ 0 +DEVMGR..READBLOCK .EQ 1 +DEVMGR..READBLOCK .EQ 2 +DEVMGR..FORMAT .EQ 3 +DEVMGR..CONTROL .EQ 4 +DEVMGR..INIT .EQ 5 +DEVMGR..OPEN .EQ 6 +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.SIZE .EQ 1 +S.DEVSTAT.IDSTRING .EQ 4 1 (LEN) + 16 MAX +S.DEVSTAT.TYPE .EQ 21 +S.DEVSTAT.SUBTYPE .EQ 22 +S.DEVSTAT.VERSION .EQ 23 +*-------------------------------------- + *-------------------------------------- * PS STRUCT *-------------------------------------- diff --git a/SYS/KERNEL.S.DEV.txt b/SYS/KERNEL.S.DEV.txt index b23a1d58..0ca83de3 100644 --- a/SYS/KERNEL.S.DEV.txt +++ b/SYS/KERNEL.S.DEV.txt @@ -99,6 +99,29 @@ K.GetDevInfoA jsr K.GetDevByIDA >STYA ZPQuickPtr1 ldx #DEVMGR.GETINFO jmp (ZPQuickPtr1) +*/-------------------------------------- +* #MkNodYA +* return a S.FILE from a given device +* ##IN: +* Y,A=DevName +* ##OUT: +* CC = OK, CS = ERROR +* A = hFILE +*\-------------------------------------- +K.MkNodYA + clc + rts +*/-------------------------------------- +* #MkFIFO +* return a S.FILE +* ##IN: +* ##OUT: +* CC = OK, CS = ERROR +* A = hFILE +*\-------------------------------------- +K.MkFIFO + clc + rts *-------------------------------------- MAN SAVE SYS/KERNEL.S.DEV