mirror of
https://github.com/A2osX/A2osX.git
synced 2024-11-26 13:49:18 +00:00
Kernel 0.92
This commit is contained in:
parent
52f5193415
commit
c5ff44ac93
@ -225,8 +225,8 @@ CS.QUIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
MSG0 .AZ "ID hFD Name Addr. Status Typ/Sub IDString Version Size (BLK)"
|
||||
MSG1 .AZ "%03d $%h %7s $%H "
|
||||
MSG0 .AZ "ID hFD Name Addr. Status Typ/Sub IDString Version Size (BLK)"
|
||||
MSG1 .AZ "%03d $%h %12s $%H "
|
||||
MSG2.ERR .AZ "Device Error : $%h\r\n"
|
||||
MSG2 .AZ "%s $%h/$%h %16S %03d.%03d "
|
||||
MSG2.B .AZ "%10u\r\n"
|
||||
|
@ -146,8 +146,21 @@ STATUS >STYA ZPIOCTL
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
OPEN sta A2osX.SCRNDEVS DEV.ID in A
|
||||
OPEN ldx #0
|
||||
|
||||
.1 ldy A2osX.SCRNDEVS,x
|
||||
beq .2
|
||||
|
||||
inx
|
||||
cpx #K.SCR.MAX
|
||||
bne .1
|
||||
|
||||
lda #E.OOH
|
||||
sec
|
||||
rts
|
||||
|
||||
.2 sta A2osX.SCRNDEVS,x DEV.ID in A
|
||||
sta DEVID
|
||||
lda #S.DIB.S.OPENED
|
||||
tsb DIB+S.DIB.S
|
||||
|
||||
@ -161,7 +174,7 @@ CONTROL sta SETTEXT
|
||||
sta SET80DISP
|
||||
sta CLR80STORE
|
||||
sta CLRPAGE2
|
||||
lda #1
|
||||
lda DEVID
|
||||
sta A2osX.ASCREEN
|
||||
|
||||
clc
|
||||
@ -1116,6 +1129,7 @@ SB.IS.NAWS .DA #IAC,#SB,#TELOPT.NAWS,#SB.IS
|
||||
.DA #IAC,#SE
|
||||
SB.IS.NAWS.LEN .EQ *-SB.IS.NAWS
|
||||
*--------------------------------------
|
||||
DEVID .BS 1
|
||||
CH .BS 1
|
||||
CV .BS 1
|
||||
LWFLG .BS 1
|
||||
|
@ -13,6 +13,7 @@ K.PS.MAX .EQ 32
|
||||
K.OF.MAX .EQ 32
|
||||
K.FLT.MAX .EQ 4
|
||||
K.EVT.MAX .EQ 4
|
||||
K.SCR.MAX .EQ 6
|
||||
*--------------------------------------
|
||||
ZPDRV .EQ $20 32 bytes
|
||||
ZPLIB .EQ $40 32 bytes
|
||||
@ -44,15 +45,13 @@ A2osX.SLEEP .EQ $BD10
|
||||
* $BEE0->$BEEF : Public Variables
|
||||
*--------------------------------------
|
||||
A2osX.ASCREEN .EQ $BEE0 Active Screen
|
||||
A2osX.SCRNDEVS .EQ $BEE1 -> $BEE4 (4 screen devices)
|
||||
A2osX.SCRNDEVS .EQ $BEE1 -> $BEE4 (5 screen devices)
|
||||
|
||||
A2osX.CPUTYPE .EQ $BEE5
|
||||
A2osX.CPUSPEED .EQ $BEE6 WORD, (->255.99 Mhz)
|
||||
A2osX.CPUTYPE .EQ $BEE6
|
||||
A2osX.CPUSPEED .EQ $BEE7 WORD, (->255.99 Mhz)
|
||||
|
||||
A2osX.Z80SLOT .EQ $BEE8
|
||||
A2osX.Z80SPEED .EQ $BEE9 WORD
|
||||
|
||||
* .EQ $BEEB
|
||||
A2osX.Z80SLOT .EQ $BEE9
|
||||
A2osX.Z80SPEED .EQ $BEEA WORD
|
||||
|
||||
A2osX.TIMER16 .EQ $BEEC WORD
|
||||
A2osX.RANDOM16 .EQ $BEEE WORD
|
||||
@ -61,6 +60,7 @@ A2osX.RANDOM16 .EQ $BEEE WORD
|
||||
*--------------------------------------
|
||||
A2osX.KCONFIG .EQ $BEF0
|
||||
A2osX.HZ .EQ $BEF0 5/6 for 50/60Hz
|
||||
A2osX.TTYDEVS .EQ $BEF1 K.SCR.MAX = 6 !
|
||||
A2osX.F .EQ $BEF8
|
||||
A2osX.F.CHROOT .EQ %10000000 ChRooting to /RAMx
|
||||
A2osX.F.PMODE .EQ %01000000 Preemptive Mode
|
||||
|
@ -120,9 +120,9 @@ CORE.Events jsr CORE.GetEvents
|
||||
|
||||
bpl .8
|
||||
|
||||
cmp #"1"
|
||||
cmp #"0"
|
||||
bcc .8
|
||||
cmp #"5"
|
||||
cmp #"6"
|
||||
bcs .8
|
||||
|
||||
sta KBDSTROBE
|
||||
@ -380,7 +380,7 @@ CORE.ScrSel and #$0F
|
||||
|
||||
tax
|
||||
|
||||
lda A2osX.SCRNDEVS-1,x Get DevID
|
||||
lda A2osX.SCRNDEVS,x Get DevID
|
||||
beq .8 No device claimed this screen
|
||||
|
||||
stx A2osX.ASCREEN set active screen
|
||||
|
@ -140,6 +140,11 @@ H.BIN.EXE.REL.TABLE .EQ 16
|
||||
*
|
||||
H.BIN.DRV.REL.TABLE .EQ 2 Including main jmp
|
||||
*--------------------------------------
|
||||
S.TTY.TITLE .EQ 48
|
||||
S.TTY.FRBUF .EQ 128
|
||||
*
|
||||
S.TTY .EQ 2048
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.DEF
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
|
@ -23,7 +23,7 @@ DRV.DiskII.STATUS
|
||||
DRV.DiskII.DIB .DA #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
||||
.DA 280
|
||||
.DA #0
|
||||
>PSTR "Disk II 5.25"
|
||||
>PSTR "Disk ][ 5.25"
|
||||
.BS 4
|
||||
.DA #S.DIB.T.DISKII
|
||||
.DA #0
|
||||
@ -239,13 +239,25 @@ DRV.SYS cld
|
||||
.DA DRV.SYS.CLOSE
|
||||
.DA DRV.SYS.Read
|
||||
.DA DRV.SYS.Write
|
||||
.DA A2osX.BADCALL IRQ
|
||||
*--------------------------------------
|
||||
DRV.SYS.STATUS >LDYAI DRV.SYS.DIB
|
||||
jmp DRV.STATUS.YA
|
||||
*--------------------------------------
|
||||
DRV.SYS.Open lda #DEVID.SYS
|
||||
sta A2osX.SCRNDEVS+1
|
||||
DRV.SYS.Open ldx #0
|
||||
|
||||
.1 ldy A2osX.SCRNDEVS,x
|
||||
beq .2
|
||||
|
||||
inx
|
||||
cpx #K.SCR.MAX
|
||||
bne .1
|
||||
|
||||
lda #E.OOH
|
||||
sec
|
||||
rts
|
||||
|
||||
.2 sta A2osX.SCRNDEVS,x DEV.ID in A
|
||||
sta DRV.SYS.DEVID
|
||||
jsr DRV.SYS.FF
|
||||
*--------------------------------------
|
||||
DRV.SYS.Control sta SETTEXT
|
||||
@ -253,7 +265,7 @@ DRV.SYS.Control sta SETTEXT
|
||||
sta SET80DISP
|
||||
sta CLR80STORE
|
||||
sta SETPAGE2
|
||||
lda #2
|
||||
lda DRV.SYS.DEVID
|
||||
sta A2osX.ASCREEN
|
||||
DRV.SYS.CLOSE
|
||||
clc
|
||||
@ -515,13 +527,14 @@ DRV.SYS.SetBaseX
|
||||
sta ZPDRV+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
DRV.SYS.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ+S.DIB.S.OPENED
|
||||
DRV.SYS.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||||
.DA #0,#0,#0
|
||||
>PSTR "A2osX SYS Screen"
|
||||
>PSTR "A2osX VT100 TERM"
|
||||
.DA #S.DIB.T.CHAR
|
||||
.DA #0
|
||||
.DA K.VER
|
||||
*--------------------------------------
|
||||
DRV.SYS.DEVID .BS 1
|
||||
DRV.SYS.CH .BS 1
|
||||
DRV.SYS.CV .BS 1
|
||||
*--------------------------------------
|
||||
|
@ -343,7 +343,8 @@ GP.CodeEnd .BS $BEE0-*
|
||||
* $BEF0->$BEFF : Kernel Config Block
|
||||
*--------------------------------------
|
||||
.DA #6 A2osX.HZ=60hz
|
||||
.HS 00000000000000
|
||||
.DA #4 A2osX.TTYDEVS=4
|
||||
.HS 000000000000
|
||||
.DA #0 ChRoot/Preemptive Disabled
|
||||
.HS 00000000000000 All Slots marked as "Free"
|
||||
*--------------------------------------
|
||||
|
@ -101,14 +101,12 @@ Kernel.Init3 sta SETALTZP
|
||||
lda #$ff Make sure we are in Kernel Mode during setup
|
||||
sta IRQ.InKernel
|
||||
|
||||
jsr SysScrInit
|
||||
|
||||
jsr MemMgrInit
|
||||
|
||||
>LDYAI FD.NULL
|
||||
>SYSCALL MKDev
|
||||
|
||||
>LDYAI FD.SYS
|
||||
>SYSCALL MKDev
|
||||
jsr SysScrInit
|
||||
|
||||
jsr PS0.Init
|
||||
bcs *
|
||||
@ -130,7 +128,6 @@ Kernel.Init3 sta SETALTZP
|
||||
jsr TskMgrInit
|
||||
bcs *
|
||||
|
||||
|
||||
ldy #S.PS.hPREFIX
|
||||
lda (pPs),y
|
||||
jsr K.GetMemPtr
|
||||
@ -238,7 +235,94 @@ KConfigLoad >LDYAI MSG.KCREAD
|
||||
*--------------------------------------
|
||||
* INIT3 Subs
|
||||
*--------------------------------------
|
||||
SysScrInit ldx #0
|
||||
MemMgrInit >LDYAI Mem.MHiMem
|
||||
>STYA Mem.HiMem
|
||||
>STYA Mem.Free
|
||||
>LDYAI Mem.MLoMem
|
||||
>STYA Mem.LoMem
|
||||
stz Mem.LastSlot Reserve Slot #0
|
||||
|
||||
* reserve AUXmem for TTY Frame bufers
|
||||
|
||||
lda A2osX.TTYDEVS
|
||||
inc +1 for /DEV/CONSOLE
|
||||
asl
|
||||
asl
|
||||
asl 8 pages (2k)
|
||||
sta .10+1
|
||||
|
||||
sta SETWRITEAUX
|
||||
|
||||
ldy #Mem.XHiMem
|
||||
sty Mem.HiMem
|
||||
|
||||
lda /Mem.XHiMem
|
||||
sec
|
||||
.10 sbc #$FF SELF MODIFIED
|
||||
sta Mem.HiMem+1
|
||||
|
||||
>STYA Mem.Free
|
||||
>LDYAI Mem.XLoMem
|
||||
>STYA Mem.LoMem
|
||||
stz Mem.LastSlot Reserve Slot #0
|
||||
|
||||
sta CLRWRITEAUX
|
||||
|
||||
ldx #K.DEV.MAX*2-1
|
||||
|
||||
.1 stz Dev.Table.hPath,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldx #K.NOD.MAX*2-1
|
||||
|
||||
.2 stz Nod.Table.hPath,x
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
ldx #K.PS.MAX*4-1
|
||||
|
||||
.3 stz PS.Table.PID,x
|
||||
dex
|
||||
bpl .3
|
||||
|
||||
ldx #K.OF.MAX*2-1
|
||||
|
||||
.4 stz OF.Table.hPath,x
|
||||
dex
|
||||
bpl .4
|
||||
|
||||
ldx #K.EVT.MAX*S.EVT-1
|
||||
|
||||
.5 stz Evt.Table,x
|
||||
dex
|
||||
bpl .5
|
||||
|
||||
stz Flt.Table
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
SysScrInit >LDYAI FD.SYS
|
||||
>SYSCALL MKDev
|
||||
|
||||
lda A2osX.TTYDEVS
|
||||
|
||||
.1 pha
|
||||
inc FD.TTY+S.FD.DEV.DEVID
|
||||
inc FD.TTY+S.FD.DEV.NAME+3
|
||||
lda FD.TTY+S.FD.DEV.BUSPTR+1
|
||||
sec
|
||||
sbc /2048
|
||||
sta FD.TTY+S.FD.DEV.BUSPTR+1
|
||||
>LDYAI FD.TTY
|
||||
>SYSCALL MKDev
|
||||
|
||||
pla
|
||||
dec
|
||||
bne .1
|
||||
|
||||
|
||||
SysScrInit.OLD ldx #0
|
||||
|
||||
ldy #0
|
||||
|
||||
@ -491,58 +575,6 @@ DetectZ80 ldx #Z80Code.Size
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
MemMgrInit >LDYAI Mem.MHiMem
|
||||
>STYA Mem.HiMem
|
||||
>STYA Mem.Free
|
||||
>LDYAI Mem.MLoMem
|
||||
>STYA Mem.LoMem
|
||||
stz Mem.LastSlot Reserve Slot #0
|
||||
|
||||
sta SETWRITEAUX
|
||||
|
||||
>LDYAI Mem.XHiMem
|
||||
>STYA Mem.HiMem
|
||||
>STYA Mem.Free
|
||||
>LDYAI Mem.XLoMem
|
||||
>STYA Mem.LoMem
|
||||
stz Mem.LastSlot Reserve Slot #0
|
||||
|
||||
sta CLRWRITEAUX
|
||||
|
||||
ldx #K.DEV.MAX*2-1
|
||||
|
||||
.1 stz Dev.Table.hPath,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldx #K.NOD.MAX*2-1
|
||||
|
||||
.2 stz Nod.Table.hPath,x
|
||||
dex
|
||||
bpl .2
|
||||
|
||||
ldx #K.PS.MAX*4-1
|
||||
|
||||
.3 stz PS.Table.PID,x
|
||||
dex
|
||||
bpl .3
|
||||
|
||||
ldx #K.OF.MAX*2-1
|
||||
|
||||
.4 stz OF.Table.hPath,x
|
||||
dex
|
||||
bpl .4
|
||||
|
||||
ldx #K.EVT.MAX*S.EVT-1
|
||||
|
||||
.5 stz Evt.Table,x
|
||||
dex
|
||||
bpl .5
|
||||
|
||||
stz Flt.Table
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
* Setup AuxLC $FFFE->Kernel IRQ Handler
|
||||
* if irq not handled, jmp (S.IrqMgrOldFFFE)
|
||||
*--------------------------------------
|
||||
@ -1110,11 +1142,20 @@ FD.SYS .DA #S.FD.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.SYS
|
||||
.DA 0 BUSPTR
|
||||
.DA $B800 BUSPTR
|
||||
.DA DRV.SYS
|
||||
.AZ "SYS" NAME
|
||||
.HS 00000000
|
||||
*--------------------------------------
|
||||
FD.TTY .DA #S.FD.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.SYS DEVID
|
||||
.DA $B800 BUSPTR
|
||||
.DA DRV.SYS
|
||||
.AZ "TTY0" NAME
|
||||
.HS 000000
|
||||
*--------------------------------------
|
||||
FD.BDEV .DA #S.FD.T.BDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
|
Loading…
Reference in New Issue
Block a user