Kernel 0.92

This commit is contained in:
Rémy GIBERT 2018-12-11 17:41:25 +01:00
parent 9a68bac570
commit 140f312d12
16 changed files with 1294 additions and 89 deletions

View File

@ -109,13 +109,10 @@ DumpDevFD ldy #S.FD.DEV.DRVPTR+1
dey dey
>PUSHB (ZPFDPtr),y >PUSHB (ZPFDPtr),y
lda #S.FD.DEV.NAME >LDA.G Table.Index
clc tax
adc ZPFDPtr lda Dev.Table.hPath,x
tay >SYSCALL GetMemPtr
lda /S.FD.DEV.NAME
adc ZPFDPtr+1
>PUSHYA >PUSHYA
>PUSHB.G DEV.FD >PUSHB.G DEV.FD

View File

@ -29,6 +29,7 @@ CS.START cld
L.MSG.DETECT .DA MSG.DETECT L.MSG.DETECT .DA MSG.DETECT
L.DRV.CS.START .DA DRV.CS.START L.DRV.CS.START .DA DRV.CS.START
L.FD.DEV .DA FD.DEV L.FD.DEV .DA FD.DEV
L.FD.DEV.NAME .DA FD.DEV.NAME
.DA 0 End Of Reloc Table .DA 0 End Of Reloc Table
*-------------------------------------- *--------------------------------------
Dev.Detect >LDYA L.MSG.DETECT Dev.Detect >LDYA L.MSG.DETECT
@ -42,6 +43,7 @@ Dev.Detect >LDYA L.MSG.DETECT
bcs .9 bcs .9
>STYA FD.DEV+S.FD.DEV.DRVPTR >STYA FD.DEV+S.FD.DEV.DRVPTR
>PUSHW L.FD.DEV.NAME
>LDYA L.FD.DEV >LDYA L.FD.DEV
>SYSCALL MKDEV >SYSCALL MKDEV
@ -55,8 +57,8 @@ FD.DEV .DA #S.FD.T.CDEV
.DA #0 DEVID .DA #0 DEVID
.DA 0 BUSPTR .DA 0 BUSPTR
.BS 2 DRVPTR .BS 2 DRVPTR
.AZ "CON" NAME .DA 0 BUFPTR
.HS 00000000 FD.DEV.NAME .AZ "CON" NAME
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------

View File

@ -94,6 +94,7 @@ Dev.Detect >STYA ARGS
bcs .9 bcs .9
>STYA FD.DEV+S.FD.DEV.DRVPTR >STYA FD.DEV+S.FD.DEV.DRVPTR
>PUSHW L.FD.DEV.NAME
>LDYA L.FD.DEV >LDYA L.FD.DEV
>SYSCALL MKDEV >SYSCALL MKDEV
@ -143,8 +144,8 @@ FD.DEV .DA #S.FD.T.CDEV
.DA #0 DEVID .DA #0 DEVID
.DA 0 BUSPTR .DA 0 BUSPTR
.BS 2 DRVPTR .BS 2 DRVPTR
FD.DEV.NAME .AZ "ETH7" NAME .DA 0 BUFPTR
.HS 000000 FD.DEV.NAME .AZ "ETH7"
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
@ -561,5 +562,5 @@ DCB .DA #S.DCB.T.NIC
*-------------------------------------- *--------------------------------------
DRV.END DRV.END
MAN MAN
SAVE USR/SRC/BIN/DRV/LANCEGS.DRV.S SAVE USR/SRC/DRV/LANCEGS.DRV.S
ASM ASM

View File

@ -10,8 +10,8 @@ SSCIRQ .EQ 0
.INB INC/MLI.E.I .INB INC/MLI.E.I
.INB INC/COM.I .INB INC/COM.I
.INB INC/COM.6551.I .INB INC/COM.6551.I
.INB USR/SRC/BIN/DRV/X.SSC.DRV.S .INB USR/SRC/DRV/X.SSC.DRV.S
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/DRV/SSC.DRV.S SAVE USR/SRC/DRV/SSC.DRV.S
ASM ASM

View File

@ -10,8 +10,8 @@ SSCIRQ .EQ 1
.INB INC/MLI.E.I .INB INC/MLI.E.I
.INB INC/COM.I .INB INC/COM.I
.INB INC/COM.6551.I .INB INC/COM.6551.I
.INB USR/SRC/BIN/DRV/X.SSC.DRV.S .INB USR/SRC/DRV/X.SSC.DRV.S
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/DRV/SSC.I.DRV.S SAVE USR/SRC/DRV/SSC.I.DRV.S
ASM ASM

View File

@ -12,8 +12,8 @@ U2AI .EQ 1
.INB INC/NIC.W5100.I .INB INC/NIC.W5100.I
.INB INC/ETH.I .INB INC/ETH.I
.INB INC/LIBTCPIP.I .INB INC/LIBTCPIP.I
.INB USR/SRC/BIN/DRV/X.U2.DRV.S .INB USR/SRC/DRV/X.U2.DRV.S
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/DRV/UTHER2.AI.DRV.S SAVE USR/SRC/DRV/UTHER2.AI.DRV.S
ASM ASM

View File

@ -113,6 +113,7 @@ Dev.Detect >STYA ARGS
bcs .9 bcs .9
>STYA FD.DEV+S.FD.DEV.DRVPTR >STYA FD.DEV+S.FD.DEV.DRVPTR
>PUSHW L.FD.DEV.NAME
>LDYA L.FD.DEV >LDYA L.FD.DEV
>SYSCALL MKDEV >SYSCALL MKDEV
@ -162,8 +163,8 @@ FD.DEV .DA #S.FD.T.CDEV
.DA #0 DEVID .DA #0 DEVID
.DA 0 BUSPTR .DA 0 BUSPTR
.BS 2 DRVPTR .BS 2 DRVPTR
FD.DEV.NAME .AZ "ETH7" NAME .DA 0 BUFPTR
.HS 000000 FD.DEV.NAME .AZ "ETH7"
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
@ -552,5 +553,5 @@ DCB .DA #S.DCB.T.NIC
*-------------------------------------- *--------------------------------------
DRV.END DRV.END
MAN MAN
SAVE USR/SRC/BIN/DRV/UTHERNET.DRV.S SAVE USR/SRC/DRV/UTHERNET.DRV.S
ASM ASM

View File

@ -11,8 +11,8 @@ U2AI .EQ 0
.INB INC/NIC.I .INB INC/NIC.I
.INB INC/NIC.W5100.I .INB INC/NIC.W5100.I
.INB INC/ETH.I .INB INC/ETH.I
.INB USR/SRC/BIN/DRV/X.U2.DRV.S .INB USR/SRC/DRV/X.U2.DRV.S
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE USR/SRC/BIN/DRV/UTHERNET2.DRV.S SAVE USR/SRC/DRV/UTHERNET2.DRV.S
ASM ASM

View File

@ -116,6 +116,7 @@ Dev.Detect >STYA ARGS
bcs .9 bcs .9
>STYA FD.DEV+S.FD.DEV.DRVPTR >STYA FD.DEV+S.FD.DEV.DRVPTR
>PUSHW L.FD.DEV.NAME
>LDYA L.FD.DEV >LDYA L.FD.DEV
>SYSCALL MKDEV >SYSCALL MKDEV
@ -187,8 +188,8 @@ FD.DEV .DA #S.FD.T.CDEV
.DA #0 DEVID .DA #0 DEVID
.DA 0 BUSPTR .DA 0 BUSPTR
.BS 2 DRVPTR .BS 2 DRVPTR
FD.DEV.NAME .AZ "COM1" NAME .DA 0 BUFPTR
.HS 000000 FD.DEV.NAME .AZ "COM1"
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
@ -593,6 +594,6 @@ DCB .DA #S.DCB.T.COM
*-------------------------------------- *--------------------------------------
DRV.END DRV.END
MAN MAN
SAVE USR/SRC/BIN/DRV/X.SSC.DRV.S SAVE USR/SRC/DRV/X.SSC.DRV.S
LOAD USR/SRC/BIN/DRV/SSC.I.DRV.S LOAD USR/SRC/DRV/SSC.I.DRV.S
ASM ASM

View File

@ -114,6 +114,7 @@ Dev.Detect >STYA ARGS
bcs .9 bcs .9
>STYA FD.DEV+S.FD.DEV.DRVPTR >STYA FD.DEV+S.FD.DEV.DRVPTR
>PUSHW L.FD.DEV.NAME
>LDYA L.FD.DEV >LDYA L.FD.DEV
>SYSCALL MKDEV >SYSCALL MKDEV
@ -167,8 +168,8 @@ FD.DEV .DA #S.FD.T.CDEV
.DA #0 DEVID .DA #0 DEVID
.DA 0 BUSPTR .DA 0 BUSPTR
.BS 2 DRVPTR .BS 2 DRVPTR
FD.DEV.NAME .AZ "ETH7" NAME .DA 0 BUFPTR
.HS 000000 FD.DEV.NAME .AZ "ETH7"
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------
@ -677,6 +678,6 @@ DCB .DA #S.DCB.T.NIC
*-------------------------------------- *--------------------------------------
DRV.END DRV.END
MAN MAN
SAVE USR/SRC/BIN/DRV/X.U2.DRV.S SAVE USR/SRC/DRV/X.U2.DRV.S
LOAD USR/SRC/BIN/DRV/UTHER2.AI.DRV.S LOAD USR/SRC/DRV/UTHER2.AI.DRV.S
ASM ASM

View File

@ -322,9 +322,6 @@ S.MSTAT .EQ 24
*-------------------------------------- *--------------------------------------
* IOCTL device API * IOCTL device API
*-------------------------------------- *--------------------------------------
DEVID.NULL .EQ 0
DEVID.SYS .EQ 1
*--------------------------------------
IOCTL.STATUS .EQ 0 X,Y = byte count returned IOCTL.STATUS .EQ 0 X,Y = byte count returned
IOCTL.READBLOCK .EQ 2 IOCTL.READBLOCK .EQ 2
IOCTL.WRITEBLOCK .EQ 4 IOCTL.WRITEBLOCK .EQ 4
@ -434,9 +431,9 @@ S.FD.DEV.BUSID .EQ 2
S.FD.DEV.DEVID .EQ 3 S.FD.DEV.DEVID .EQ 3
S.FD.DEV.BUSPTR .EQ 4 word S.FD.DEV.BUSPTR .EQ 4 word
S.FD.DEV.DRVPTR .EQ 6 word S.FD.DEV.DRVPTR .EQ 6 word
S.FD.DEV.NAME .EQ 8 C-String S.FD.DEV.BUFPTR .EQ 8 word
* *
S.FD.DEV .EQ 16 S.FD.DEV .EQ 10
*-------------------------------------- *--------------------------------------
* S.FD.LNK * S.FD.LNK
*-------------------------------------- *--------------------------------------

View File

@ -10,8 +10,8 @@ ZPPtr2 .EQ ZPKERNEL+2
ZPPtr3 .EQ ZPKERNEL+4 ZPPtr3 .EQ ZPKERNEL+4
ZPPtr4 .EQ ZPKERNEL+6 ZPPtr4 .EQ ZPKERNEL+6
pFD .EQ ZPKERNEL+10 pFD .EQ ZPKERNEL+8
pDRV .EQ ZPKERNEL+12 pDRV .EQ ZPKERNEL+10
pIOCTL .EQ ZPKERNEL+12 pIOCTL .EQ ZPKERNEL+12
pIOBuf .EQ ZPKERNEL+14 pIOBuf .EQ ZPKERNEL+14
*-------------------------------------- *--------------------------------------
@ -140,8 +140,11 @@ H.BIN.EXE.REL.TABLE .EQ 16
* *
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
*-------------------------------------- *--------------------------------------
S.TTY.DEVID .EQ 0
S.TTY.STATUS .EQ 0
S.TTY.TITLE .EQ 48 S.TTY.TITLE .EQ 48
S.TTY.FRBUF .EQ 128 S.TTY.SCRBUF .EQ 128
* *
S.TTY .EQ 2048 S.TTY .EQ 2048
*-------------------------------------- *--------------------------------------

View File

@ -31,35 +31,24 @@ K.GetDevByName >STYA ZPPtr1
ldx #0 ldx #0
.1 lda Dev.Table.hFD,x .1 lda Dev.Table.hPath,x
beq K.GetDev.NODEV beq K.GetDev.NODEV
jsr K.GetMemPtr jsr K.GetMemPtr
>STYA ZPPtr2 >STYA ZPPtr2
lda ZPPtr2
clc
adc #S.FD.DEV.NAME
sta ZPPtr3
lda ZPPtr2+1
adc /S.FD.DEV.NAME
sta ZPPtr3+1
ldy #$ff ldy #$ff
.2 iny .2 iny
lda (ZPPtr1),y lda (ZPPtr1),y
cmp (ZPPtr3),y cmp (ZPPtr2),y
bne .4 bne .4
ora (ZPPtr3),y Both char are 0 ? ora (ZPPtr2),y Both char are 0 ?
bne .2 no....loop bne .2 no....loop
ldy ZPPtr2 lda Dev.Table.hFD,x
lda ZPPtr2+1 jmp K.GetMemPtr
clc
rts
.4 inx .4 inx
cpx DevMgr.DevCnt cpx DevMgr.DevCnt
@ -97,14 +86,15 @@ K.GetDevStatus.I
* # MKDev * # MKDev
* Create a hDEV * Create a hDEV
* ## C * ## C
* `hDEV mkdev (S.FD * fd)` * `hDEV mkdev (S.FD * fd, const char *devname)`
* ## ASM * ## ASM
* `>LDYA FD.DEV` * `>PUSHW devname`
* `>LDYA fd`
* `>SYSCALL mkdev * `>SYSCALL mkdev
* ## RETURN VALUE * ## RETURN VALUE
* A = hDEV * A = hDEV
*\-------------------------------------- *\--------------------------------------
K.MKDev >STYA .1+1 K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
ldx DevMgr.DevCnt ldx DevMgr.DevCnt
cmp #K.DEV.MAX cmp #K.DEV.MAX
@ -122,7 +112,7 @@ K.MKDev >STYA .1+1
ldy #S.FD.DEV-1 ldy #S.FD.DEV-1
.1 lda $ffff,y SELF MODIFIED .1 lda (ZPPtr1),y
sta (pFD),y sta (pFD),y
dey dey
bpl .1 bpl .1
@ -141,23 +131,33 @@ K.MKDev >STYA .1+1
ldx #0 ldx #0
.2 lda IRQ.Vectors+1,x .3 lda IRQ.Vectors+1,x
beq .3 beq .7
inx inx
inx inx
cpx #K.IRQDEV.MAX*2 cpx #K.IRQDEV.MAX*2
bne .2 bne .3
.9 lda #E.OOH .9 lda #E.OOH
* sec * sec
.99 rts .99 rts
.3 lda pFD .7 lda pFD
sta IRQ.Vectors,x sta IRQ.Vectors,x
lda pFD+1 lda pFD+1
sta IRQ.Vectors+1,x sta IRQ.Vectors+1,x
.8 lda DevMgr.DevCnt .8 >LDYA ZPPtr2
jsr K.NewStr
bcs .99
txa
ldx DevMgr.DevCnt
sta Dev.Table.hPath,x
txa
inc DevMgr.DevCnt inc DevMgr.DevCnt
clc clc
rts rts

View File

@ -103,6 +103,7 @@ Kernel.Init3 sta SETALTZP
jsr MemMgrInit jsr MemMgrInit
>PUSHWI FD.NULL.NAME
>LDYAI FD.NULL >LDYAI FD.NULL
>SYSCALL MKDev >SYSCALL MKDev
@ -302,18 +303,20 @@ MemMgrInit >LDYAI Mem.MHiMem
rts rts
*-------------------------------------- *--------------------------------------
SysScrInit >LDYAI FD.SYS SysScrInit >PUSHWI FD.CONSOLE.NAME
>LDYAI FD.CONSOLE
>SYSCALL MKDev >SYSCALL MKDev
lda A2osX.TTYDEVS lda A2osX.TTYDEVS
.1 pha .1 pha
inc FD.TTY+S.FD.DEV.DEVID inc FD.TTY+S.FD.DEV.DEVID
inc FD.TTY+S.FD.DEV.NAME+3 inc FD.TTY.NAME+3
lda FD.TTY+S.FD.DEV.BUSPTR+1 lda FD.TTY+S.FD.DEV.BUFPTR+1
sec sec
sbc /2048 sbc /2048
sta FD.TTY+S.FD.DEV.BUSPTR+1 sta FD.TTY+S.FD.DEV.BUFPTR+1
>PUSHWI FD.TTY.NAME
>LDYAI FD.TTY >LDYAI FD.TTY
>SYSCALL MKDev >SYSCALL MKDev
@ -380,7 +383,7 @@ PS0.Init >LDYAI CORE.S.PS0 Select Process 0 (Kernel)
>PUSHBI S.FI.T.TXT >PUSHBI S.FI.T.TXT
>PUSHBI O.RDWR >PUSHBI O.RDWR
>LDYAI DEV.SYS >LDYAI DEV.CONSOLE
>SYSCALL fopen >SYSCALL fopen
bcs .9 bcs .9
@ -950,19 +953,19 @@ DevMgrInit.AddBDev
lda FD.BDEV+S.FD.DEV.BUSID lda FD.BDEV+S.FD.DEV.BUSID
ora #$30 ora #$30
sta FD.BDEV+S.FD.DEV.NAME+1 SnDy sta FD.BDEV.NAME+1 SnDy
lda FD.BDEV+S.FD.DEV.DEVID lda FD.BDEV+S.FD.DEV.DEVID
ora #$30 ora #$30
sta FD.BDEV+S.FD.DEV.NAME+3 SxDn sta FD.BDEV.NAME+3 SxDn
>PUSHWI FD.BDEV+S.FD.DEV.NAME >PUSHWI FD.BDEV.NAME
>PUSHBI 2 >PUSHBI 2
>LDYAI MSG.BLKDEV >LDYAI MSG.BLKDEV
>SYSCALL printf >SYSCALL printf
>PUSHWI FD.BDEV.NAME
>LDYAI FD.BDEV >LDYAI FD.BDEV
>SYSCALL MKDev >SYSCALL MKDev
rts rts
*-------------------------------------- *--------------------------------------
@ -1106,7 +1109,7 @@ MSG.Z80 .AZ "Checking Z80 CPU..."
MSG.Z80.OK .AZ "Detected In Slot %d.\r\n" MSG.Z80.OK .AZ "Detected In Slot %d.\r\n"
MSG.Z80.KO .AZ "Not Detected." MSG.Z80.KO .AZ "Not Detected."
*-------------------------------------- *--------------------------------------
DEV.SYS .AZ "/DEV/SYS" DEV.CONSOLE .AZ "/DEV/CONSOLE"
I.ENV.ROOT .AZ "ROOT" I.ENV.ROOT .AZ "ROOT"
I.ENV.PATH .AZ "PATH=${ROOT}SBIN/:${ROOT}BIN/" I.ENV.PATH .AZ "PATH=${ROOT}SBIN/:${ROOT}BIN/"
I.ENV.LIB .AZ "LIB=${ROOT}LIB/" I.ENV.LIB .AZ "LIB=${ROOT}LIB/"
@ -1132,29 +1135,29 @@ MLICLOSE00 .DA #1
FD.NULL .DA #S.FD.T.CDEV FD.NULL .DA #S.FD.T.CDEV
.DA #0 HANDLER .DA #0 HANDLER
.DA #0 BUSID .DA #0 BUSID
.DA #DEVID.NULL .DA #0 DEVID
.DA 0 BUSPTR .DA 0 BUSPTR
.DA DRV.NULL .DA DRV.NULL
.AZ "NULL" NAME .DA 0 BUFPTR
.HS 000000 FD.NULL.NAME .AZ "NULL" NAME
*-------------------------------------- *--------------------------------------
FD.SYS .DA #S.FD.T.CDEV FD.CONSOLE .DA #S.FD.T.CDEV
.DA #0 HANDLER .DA #0 HANDLER
.DA #0 BUSID .DA #0 BUSID
.DA #DEVID.SYS .DA #1 DEVID
.DA $B800 BUSPTR .DA 0 BUSPTR
.DA DRV.SYS .DA DRV.SYS
.AZ "SYS" NAME .DA $B800 BUFPTR
.HS 00000000 FD.CONSOLE.NAME .AZ "CONSOLE"
*-------------------------------------- *--------------------------------------
FD.TTY .DA #S.FD.T.CDEV FD.TTY .DA #S.FD.T.CDEV
.DA #0 HANDLER .DA #0 HANDLER
.DA #0 BUSID .DA #0 BUSID
.DA #DEVID.SYS DEVID .DA #1 DEVID
.DA $B800 BUSPTR .DA 0 BUSPTR
.DA DRV.SYS .DA DRV.SYS
.AZ "TTY0" NAME .DA $B800 BUFPTR
.HS 000000 FD.TTY.NAME .AZ "TTY0"
*-------------------------------------- *--------------------------------------
FD.BDEV .DA #S.FD.T.BDEV FD.BDEV .DA #S.FD.T.BDEV
.DA #0 HANDLER .DA #0 HANDLER
@ -1162,8 +1165,8 @@ FD.BDEV .DA #S.FD.T.BDEV
.DA #0 DEVID .DA #0 DEVID
.BS 2 BUSPTR .BS 2 BUSPTR
.BS 2 DRVPTR .BS 2 DRVPTR
.AZ "S1D1" NAME .DA 0 BUFPTR
.HS 000000 FD.BDEV.NAME .AZ "S1D1"
*-------------------------------------- *--------------------------------------
SmartPort.OFS .HS 010305 SmartPort.OFS .HS 010305
SmartPort.SIG .HS 200003 SmartPort.SIG .HS 200003

1197
SYS/KERNEL.S.TERM.txt Normal file

File diff suppressed because it is too large Load Diff

View File

@ -11,6 +11,7 @@ AUTO 4,1
.INB INC/IO.I .INB INC/IO.I
.INB INC/MLI.I .INB INC/MLI.I
.INB INC/MLI.E.I .INB INC/MLI.E.I
.INB INC/NET.TELNET.I
.INB INC/XY.MOUSE.I .INB INC/XY.MOUSE.I
.INB INC/GUI.I .INB INC/GUI.I
@ -52,6 +53,7 @@ A2osX.E0 .PH $E000
.INB USR/SRC/SYS/KERNEL.S.JMP .INB USR/SRC/SYS/KERNEL.S.JMP
.INB USR/SRC/SYS/KERNEL.S.IRQ .INB USR/SRC/SYS/KERNEL.S.IRQ
.INB USR/SRC/SYS/KERNEL.S.MEM .INB USR/SRC/SYS/KERNEL.S.MEM
.INB USR/SRC/SYS/KERNEL.S.TERM
********* TMP ***** go to A2osX.D1 ********* TMP ***** go to A2osX.D1
.INB USR/SRC/SYS/KERNEL.S.PFT .INB USR/SRC/SYS/KERNEL.S.PFT
.INB USR/SRC/SYS/KERNEL.S.FIO .INB USR/SRC/SYS/KERNEL.S.FIO