Kernel 0.94

This commit is contained in:
Rémy GIBERT 2020-05-04 22:46:21 +02:00
parent 32afec7335
commit 719f016c18
22 changed files with 380 additions and 279 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -3,7 +3,7 @@ NEW
.LIST OFF
.OP 65C02
.OR $2000
.TF BIN/ETCONFIG
.TF bin/etconfig
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
@ -24,9 +24,8 @@ ZS.START
pETKCFG .BS 2
ZPFrameBase .BS 2
ZPFramePtr .BS 2
ZPTmpPtr1 .BS 2
ZPTmpPtr2 .BS 2
ZPTmpPtr3 .BS 2
BufPtr .BS 2
ZS.END .ED
*--------------------------------------
* File Header (16 Bytes)
@ -106,11 +105,21 @@ CS.RUN >LIBCALL hLIBETALK,LIBETALK.GETCFG
sec
rts
CS.RUN.SETUP jsr CFG.EtcFiles
CS.RUN.SETUP lda ETKCFG+S.NETCFG.STATUS
bne .7
jsr CFG.EtcFiles
jsr CS.RUN.PROBE
jsr CS.RUN.GETNETINFO
jsr CS.RUN.DUMP
lda #$80
sta ETKCFG+S.NETCFG.STATUS
>PUSHW L.ETKCFG
>LIBCALL hLIBETALK,LIBETALK.SETCFG
.7 jsr CS.RUN.DUMP
.8 lda #0
sec
@ -261,34 +270,31 @@ CS.RUN.PROBE >LDYA L.MSG.PROBE
sta AARP.PRB.SHA,x
dex
bpl .20
lda #0
* lda #$58
lda A2osX.RANDOM16
sta AARP.PRB.SPA+2
sta AARP.PRB.TPA+2
sta ETKCFG+S.ETKCFG.NetID
* lda A2osX.RANDOM16+1
* lda #$06
lda A2osX.RANDOM16+1
sta AARP.PRB.SPA+1
sta AARP.PRB.TPA+1
sta ETKCFG+S.ETKCFG.NetID+1
lda A2osX.RANDOM16
eor A2osX.RANDOM16+1
* lda #$3A
lda A2osX.TIMER16
eor A2osX.TIMER16+1
bne .1
inc
.1 cmp #$FE
bcc .2
eor #$80
bne .2
inc
.2 sta AARP.PRB.SPA+3
sta AARP.PRB.TPA+3
sta ETKCFG+S.ETKCFG.NodID
lda #PROBE.MAX
>STA.G PROBE.CNT
.3 >LDYA L.AARP.PRB
>STYA IOCTL+S.IOCTL.BUFPTR
>LDYAI AARP.PRB.LEN
@ -302,6 +308,24 @@ CS.RUN.PROBE >LDYA L.MSG.PROBE
>SLEEP
>DEC.G PROBE.CNT
bne .3
lda AARP.PRB.SPA+2
sta ETKCFG+S.ETKCFG.NetID
sta DDP.GetNetInfo+S.DDP2.SRC.NET
lda AARP.PRB.SPA+1
sta ETKCFG+S.ETKCFG.NetID+1
sta DDP.GetNetInfo+S.DDP2.SRC.NET+1
lda AARP.PRB.SPA+3
sta ETKCFG+S.ETKCFG.NodID
sta DDP.GetNetInfo+S.DDP2.SRC.NOD
* clc
rts
*--------------------------------------
CS.RUN.GETNETINFO
>LDYA L.DDP.GetNetInfo
>STYA IOCTL+S.IOCTL.BUFPTR
>LDYAI DDP.GetNetInfo.LEN
@ -314,15 +338,14 @@ CS.RUN.PROBE >LDYA L.MSG.PROBE
>LDYA L.MSG.PROBE.OK
>SYSCALL PutS
* clc
CS.RUN.PROBE.RTS
CS.RUN.GETNETINFO.RTS
rts
*--------------------------------------
CFG.EtcFiles >LDYAI 256
>SYSCALL GetMem
bcs CS.RUN.PROBE.RTS
bcs CS.RUN.GETNETINFO.RTS
>STYA ZPTmpPtr1
>STYA BufPtr
stx CFG.hBuf1
>LDYA L.HOSTNAME
jsr CFG.Read.PrintF
@ -331,21 +354,23 @@ CFG.EtcFiles >LDYAI 256
lda ETKCFG+S.ETKCFG.OBJECT
bne .4
>PUSHW L.ETKCFG.OBJECT
>LDYA L.ETKCFG.OBJECT
iny
bne .1
inc
.1 >PUSHYA
>PUSHW L.CFG.DefaultHost
>PUSHW A2osX.TIMER16
>PUSHBI 2
>SYSCALL sprintf
lda #11
lda #10
sta ETKCFG+S.ETKCFG.OBJECT
.4 >PUSHW L.ETKCFG
>LIBCALL hLIBETALK,LIBETALK.SETCFG
lda CFG.hBuf1
.4 lda CFG.hBuf1
>SYSCALL FreeMem
.9 rts
rts
*--------------------------------------
CFG.Read.PrintF pha
>PUSHW L.MSG.CFG
@ -359,28 +384,30 @@ CFG.Read.HOSTNAME
>LDYA L.HOSTNAME
jsr CFG.Read.Open
bcs .9
jsr CFG.Read.Result
bcs .9
.1 jsr CFG.Read.GetS
bcs .8
lda (ZPTmpPtr1)
lda (BufPtr)
beq .1 empty line...
cmp #'#
beq .1 comment...
ldy #0
.2 lda (ZPTmpPtr1),y
.2 lda (BufPtr),y
beq .8 end of name
sta ETKCFG+S.ETKCFG.OBJECT+1,y
iny
sta ETKCFG+S.ETKCFG.OBJECT,y
cpy #32
bne .2
.8 sty ETKCFG+S.ETKCFG.OBJECT
clc
.HS B0 BCS
.9 sec
@ -423,7 +450,7 @@ CFG.Read.Close2 lda CFG.hCfgFile
rts
*--------------------------------------
CFG.Read.GetS >PUSHWI 255
>PUSHW ZPTmpPtr1
>PUSHW BufPtr
lda CFG.hCfgFile
>SYSCALL fgets
rts
@ -515,24 +542,30 @@ AARP.PRB.LEN .EQ 60
*--------------------------------------
DDP.GetNetInfo .HS 090007FFFFFF S.ETH.DSTMAC
.BS 6
.DA #0,#36
.DA #0,#DDP.GetNetInfo.DEND-DDP.GetNetInfo.LLC
*--------------------------------------
DDP.GetNetInfo.LLC
.HS AA
.HS AA
.HS 03
.HS 08.00.07.80.9B
.DA #0,#6 S.DDP2.DATALEN
*--------------------------------------
DDP.GetNetInfo.DDP
.DA #0,#DDP.GetNetInfo.DEND-DDP.GetNetInfo.DDP
.DA 0 S.DDP2.CHECKSUM
.DA $FF00
.DA $1234
.DA #$FF
.DA #$FF
.DA 0 S.DDP2.DST.NET
.DA 0 S.DDP2.SRC.NET
.DA #$FF S.DDP2.DST.NOD
.DA #0 S.DDP2.SRC.NOD
.DA #6 S.DDP2.DST.SKT
.DA #0
.DA #6 S.DDP2.SRC.SKT
.DA #6 S.DDP2.TYPE
*--------------------------------------
.DA #5 ZIP.GetNetInfoReg
.DA #5 ZIP.GetNetInfoReq
.HS 00
.HS 00.00.00.00
.HS 00 Zone Len
DDP.GetNetInfo.DEND .EQ *
.BS DDP.GetNetInfo+60-*
DDP.GetNetInfo.LEN .EQ 60
*--------------------------------------

View File

@ -1,6 +1,5 @@
NEW
PREFIX
AUTO 4,1
AUTO 3,1
.LIST OFF
.OP 65C02
.OR $2000
@ -27,20 +26,23 @@ hTrackBuf .BS 1
DSSS0000 .BS 1
CurTrack .BS 1
CurQTrack .BS 1
Counter .BS 1
BlkCnt .BS 2
TrkCnt .BS 1
VolNum .BS 1
Stepping .BS 1
QTrkCnt .BS 1
VolNum .BS 1
CatSize .BS 1
CatBlkCnt .BS 1
CatOptions .BS 1
bLL .BS 1
bCustomBlkSize .BS 1
bHighDensity .BS 1
bExtraTrack .BS 1
ZS.END
.ED
*--------------------------------------
@ -273,18 +275,26 @@ CS.RUN.LL >LDA.G DIB+S.DIB.T
CS.RUN.LL.RTS rts
*--------------------------------------
CS.RUN.LL.DISKII
ldx #5
ldy #0
bit bHighDensity
lda #0
bit bExtraTrack
bpl .10
ldy #5
.10 lda Disk2.Default,y
sta BlkCnt,y
ora #8
.10 bit bHighDensity
bpl .11
ora #16
.11 tay
ldx #0
.12 lda Disk2.Default,y
sta BlkCnt,x
iny
dex
bne .10
inx
cpx #6
bne .12
>LDYAI 4096
>SYSCALL GetMem
@ -294,7 +304,7 @@ CS.RUN.LL.DISKII
>STYA ZPPtr1
jsr CS.RUN.MotorOn
bcs .9
bcs CS.RUN.LL.RTS
>SLEEP
@ -303,17 +313,23 @@ CS.RUN.LL.DISKII
stz CurTrack
lda #144 36*4....or 48*3
lda #160
sta CurQTrack
ldx #0
jsr CS.RUN.SeekToX
lda TrkCnt
sta Counter
.1 >SLEEP
>PUSHW L.MSG.LLDISK2
>PUSHB CurTrack
>PUSHBI 1
inc
>PUSHA
>PUSHB TrkCnt
>PUSHBI 3
>SYSCALL PrintF
bcs .9
@ -325,7 +341,7 @@ CS.RUN.LL.DISKII
bcs .9
inc CurTrack
dec TrkCnt
dec Counter
beq .8
lda CurQTrack
@ -339,7 +355,10 @@ CS.RUN.LL.DISKII
.9 rts
.8 ldx #0
.8 lda #160
sta CurQTrack
ldx #0
jsr CS.RUN.SeekToX
jsr CS.RUN.MotorOff
@ -524,23 +543,41 @@ MSG.ERR .AS "[%h]"
MSG.CRLF .AZ "\r\n"
MSG.NOSIZE .AZ "Unable to get media size."
MSG.INIT .AZ "Formatting %s (%D Blks), Volname:%s\r\n"
MSG.LLDISK2 .AZ "\rWriting Track %02d..."
MSG.LLDISK2 .AZ "\rWriting Track %02d (%02d/%02d)..."
MSG.LL .AZ "\rLow Level Format..."
MSG.WRITECAT .AZ "Writing Catalog..."
FMT.BLANK .AZ "BLANK%H%H"
*--------------------------------------
OptionList .AS "LlBbHs"
OptionVars .DA #bLL,#bLL,#bCustomBlkSize,#bCustomBlkSize,bHighDensity
OptionList .AS "LlBbHhXx"
OptionVars .DA #bLL,#bLL,#bCustomBlkSize,#bCustomBlkSize,bHighDensity,bHighDensity,bExtraTrack,bExtraTrack
*--------------------------------------
Disk2.Default .DA 280 BlkCnt
.DA #35 TrkCnt
.DA #254 VolNum
.DA #4 Stepping
.DA #140 QTrkCnt
.DA #254 VolNum
.BS 2
*--------------------------------------
Disk2.X .DA 320 BlkCnt
.DA #40 TrkCnt
.DA #4 Stepping
.DA #160 QTrkCnt
.DA #1 VolNum
.BS 2
*--------------------------------------
Disk2.H .DA 384 BlkCnt
.DA #48 TrkCnt
.DA #126 VolNum
.DA #3 Stepping
.DA #192 QTrkCnt
.DA #2 VolNum
.BS 2
*--------------------------------------
Disk2.HX .DA 432 BlkCnt
.DA #54 TrkCnt
.DA #3 Stepping
.DA #216 QTrkCnt
.DA #3 VolNum
.BS 2
*--------------------------------------
.DUMMY
.OR 0

View File

@ -75,7 +75,9 @@ CS.INIT clc
rts
*--------------------------------------
CS.RUN >PUSHW L.MSG.TOPBAR
>PUSHBI 0
>PUSHB #K.VER
>PUSHB /K.VER
>PUSHBI 2
>SYSCALL PrintF
jsr CS.RUN.Load
bcs .1
@ -187,8 +189,8 @@ CS.RUN.ToggleAatY
sta (ZPCfgPtr),y
rts
*--------------------------------------
CS.RUN.Load >PUSHEA.G StatBuf
>LDYA L.FILENAME
CS.RUN.Load >PUSHW L.FILENAME
>PUSHEA.G StatBuf
>SYSCALL Stat
bcs .99
@ -367,10 +369,10 @@ SLOTS .DA #0
SLOTS.MAX .EQ *-SLOTS
*--------------------------------------
FILENAME .AZ "${ROOT}A2osX.kconfig"
MSG.TOPBAR .AZ "\e[40;37m\e[7m\e[1;1HA2osX Kernel Config Utility : "
MSG.TOPBAR .AZ "\e[40;37m\e[7m\e[1;1HA2osX %d.%d Kernel Config Utility : "
MSG.TOPBAR.OK .AZ "KCONFIG File Successfully Loaded. \e[0m"
MSG.TOPBAR.KO .AZ "Invalid/missing KCONFIG File. \e[0m"
MSG.STATUSBAR .AZ "\e[40;37m\e[7m\e[24;1HSlot 1-7:En/Dis Ctrl:(Q)uit,(S)ave,(T)iming,(C)HRoot,(P)reemptive,TT(Y)s \e[0m"
MSG.STATUSBAR .AZ "\e[40;37m\e[7m\e[24;1H(1-7):En/Dis Slot, Ctrl:(Q)uit,(S)ave,(T)iming,(C)HRoot,(P)reemptive,TT(Y)s \e[0m"
MSG.KCONF .AZ "\e[93;44m\e[2;1H------ Actual Kernel Configuration ------\e[K\r\n"
MSG.FCONF .AZ "\e[93;44m\e[13;1H------ KCONFIG File Configuration -------\e[K\r\n"
MSG.HZ .AZ " Machine Timing : %d0 Hz\e[K\r\n"

View File

@ -3,7 +3,7 @@ NEW
.LIST OFF
.OP 65C02
.OR $2000
.TF BIN/TELNET
.TF bin/telnet
*--------------------------------------
.INB INC/MACROS.I
.INB INC/A2OSX.I
@ -103,11 +103,11 @@ CS.RUN.IPOK ldy #S.PS.ARGC
lda TimeOut
bne .2
>PUSHW L.MSG.UNKNOWN
lda #1
>SYSCALL ArgV
>PUSHYA
>PUSHBI 2
>LDYA L.MSG.UNKNOWN
>SYSCALL PrintF
bra .99
@ -124,19 +124,20 @@ CS.RUN.HOSTOK lda #2
>SYSCALL atoi
>STYA SA.REMOTE+S.SOCKADDR.PORT
CS.RUN.PORTOK lda #1
>SYSCALL ArgV
>PUSHYA
>PUSHW SA.REMOTE+S.SOCKADDR.PORT
ldx #3
CS.RUN.PORTOK >PUSHW L.MSG.HOSTOK
ldx #0
.1 >PUSHB SA.REMOTE+S.SOCKADDR.ADDR,x
dex
bpl .1
inx
cpx #4
bne .1
>PUSHW SA.REMOTE+S.SOCKADDR.PORT
lda #1
>SYSCALL ArgV
>PUSHYA
>PUSHBI 8
>LDYA L.MSG.HOSTOK
>SYSCALL PrintF
CS.RUN.OPENSKT >PUSHBI 0 no protocol
@ -177,9 +178,10 @@ CS.RUN.OPENSKT >PUSHBI 0 no protocol
lda #ERR.SKT.NOCONN
bra .9
.4 >PUSHBI 0
>LDYA L.MSG.SKTOK
.4 >PUSHW L.MSG.SKTOK
>PUSHBI 0
>SYSCALL PrintF
>LDYAI BUFSIZE
>SYSCALL GetMem
bcs .99
@ -199,8 +201,8 @@ CS.RUN.LOOP >SLEEP
>PUSHW ZPBufPtr
lda hSocket
>LIBCALL hLIBTCPIP,LIBTCPIP.Read
.99 bcs .9
>PUSHYA len
>PUSHW ZPBufPtr
ldy #S.PS.hStdOut
@ -237,18 +239,22 @@ CS.RUN.LOOP >SLEEP
jmp CS.RUN.LOOP
*--------------------------------------
CS.RUN.SKTERR pha
>PUSHW L.MSG.SKTERR
pla
pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.SKTERR
>SYSCALL PrintF
pla
sec
rts
*--------------------------------------
CS.RUN.IOERR pha
>PUSHW L.MSG.IOERR
pla
pha
>PUSHA
>PUSHBI 1
>LDYA L.MSG.IOERR
>SYSCALL PrintF
pla
sec

View File

@ -357,7 +357,8 @@ D2MoveHead >PULLB MoveTo
.4 jsr XRW.Wait100msA Trash X
jsr XRW.AllPhaseOff
lda #28
jsr XRW.Wait100msA Trash X
bra .1
.8 clc

View File

@ -3,7 +3,9 @@ NEW
.LIST OFF
*--------------------------------------
CFG.SET >PULLW ZPTmpPtr1 ETKCFG
ldy #S.ETKCFG-1
.1 lda (ZPTmpPtr1),y
sta ETKCFG,y
dey
@ -18,6 +20,7 @@ CFG.SET >PULLW ZPTmpPtr1 ETKCFG
sta AARP.REP.SHA,x
dex
bpl .2
clc
rts
*--------------------------------------

View File

@ -922,15 +922,17 @@ bufaddrh .HS 00
delflag .HS 00 used by 'detree' to know if called from delete (destroy).
* variables used by SP remap & XRW Disk ][ to store last track used
XRW.D2Trk .EQ *
XDOS.SPUnit .HS 00000000000000 14+1 for S0D2
.HS 00
.HS 00000000000000
XRW.D2TrkCnt .EQ *
XDOS.SPVectLo .HS 00000000000000 storage for low byte of smartport entry.
.HS 00
.HS 00000000000000
XRW.D2Stepping .EQ *
XDOS.SPVectHi .HS 00000000000000 storage for high byte of smartport entry.
.HS 00
.HS 00000000000000

View File

@ -53,13 +53,14 @@ L59BD jsr XRW.AllPhaseOff make sure all motor phases are off.
lda bloknml
ldx bloknml+1
stx XRW.ReqTrack calculate block's track and sector.
beq .10 branch if block # is in range,
dex else test further.
bne .9 taken if bad range.
* beq .10 branch if block # is in range,
cmp #$18 must be < $118
bcs .9 branch if block # is out of range
* dex else test further.
* bne .9 taken if bad range.
* cmp #$18 must be < $118
* bcs .9 branch if block # is out of range
.10 ldy #$05
@ -180,9 +181,9 @@ L53A4 dec XRW.RetryCnt one less chance.
lda XRW.CurrentTrack
pha save track
asl
asl
adc #32 pretend track is 8 > curtrk
clc
adc #8 pretend track is 8 > curtrk
ldy #64
sty XRW.RetryCnt reset retries to 64 max.
@ -200,11 +201,9 @@ L53BE ldy XRW.AddrField.T
lda XRW.CurrentTrack preserve destination track
pha
tya
asl
asl
L53CC ldy XRW.UnitIndex get index to drive #
sta XDOS.SPUnit-1,y set the slot dependent track location
sta XRW.D2Trk-1,y set the slot dependent track location
pla
jsr XRW.Seek
@ -799,13 +798,21 @@ L56E6 lda IO.D2.RData,x first bit-slip nibl
cmp #$DE
bne rderr
nop delay
ldx XRW.AddrField.V
L56F0 lda IO.D2.RData,x second bit-slip nible
bpl L56F0 *** no page cross ***
cpx #254
bne .8
cmp #$AA
bne rderr
inx
inx
.8 ldy XRW.UnitIndex
lda XRW.Vol2TrkCnt,x
sta XRW.D2TrkCnt-1,y
lda XRW.Vol2Stepping,x
sta XRW.D2Stepping-1,y
ldx A2L restore X=0SSS0000
clc normal read ok
rts
@ -824,29 +831,31 @@ nbuf2 .BS $56 nibl buffer for read/write of low 2-bits of each byte.
*--------------------------------------
* fast seek subroutine
* A = desired track
* XRW.CurrentTrack = current 1/4 track
* XRW.CurrentTrack = current rack
*
* montimel,h are incremented by the # of 100us quantums required by seek for motor on time overlap.
* variables used: XRW.CurrentTrack, A2L, montimel, montimeh
*--------------------------------------
XRW.Seek asl transform into 1/4 tracks
asl
XRW.Seek pha save target track
pha
ldy XRW.UnitIndex get index to previous track
lda XDOS.SPUnit-1,y for current drive.
sta XRW.CurrentTrack current position.
ldx XRW.UnitIndex
jsr XRW.Trk2Qtrk
sta XRW.TargetQTrack
lda XRW.D2Trk-1,x
jsr XRW.Trk2Qtrk
sta XRW.CurrentQTrack
pla
sta XDOS.SPUnit-1,y
sta XRW.CurrentTrack will be current track at the end
sta XRW.D2Trk-1,x
.1 lda XDOS.SPUnit-1,y
.1 lda XRW.TargetQTrack
sec
sbc XRW.CurrentTrack
sbc XRW.CurrentQTrack
beq .8
bcc .2
@ -865,8 +874,8 @@ XRW.Seek asl transform into 1/4 tracks
.3 bit #1 remember 1/4 or 2/4
php
clc
adc XRW.CurrentTrack
sta XRW.CurrentTrack
adc XRW.CurrentQTrack
sta XRW.CurrentQTrack
jsr XRW.PhaseOn
@ -880,11 +889,12 @@ XRW.Seek asl transform into 1/4 tracks
jsr XRW.AllPhaseOff
lda #28
jsr XRW.Wait100msA Trash X
bra .1
.8 lsr XRW.CurrentTrack convert back to track#
lsr XRW.CurrentTrack
rts
.8 rts
XRW.PhaseOn pha
jsr .7
@ -912,6 +922,20 @@ XRW.AllPhaseOff ldx A2L
bne .1
rts
*--------------------------------------
XRW.Trk2Qtrk asl x2
sta .1+1
bit XRW.D2Stepping-1,x
bpl .1 x4
lsr x3
.1 adc #$ff SELF MODIFIED
rts
*--------------------------------------
XRW.Vol2TrkCnt .DA #35,#40,#48,#54
XRW.Vol2Stepping .DA #0,#0,#$ff,#$ff 4,4,3,3
*--------------------------------------
.LIST ON
XRW.FREE2 .EQ $D596-*
@ -970,9 +994,11 @@ XRW.CheckSum .HS 00 used for address header cksum
XRW.RetryCnt .HS 00
.HS 888C9094989CA0
XRW.0000XX00 .HS 0008040C used in fast prenib.
.HS FF
* .HS FF
XRW.CurrentQTrack .HS 00
.HS A4A8AC
.HS FF
* .HS FF
XRW.TargetQTrack .HS 00
.HS B0B4B8BCC0C4C8
.HS FFFF
.HS CCD0D4D8DCE0

View File

@ -11,12 +11,15 @@ NEW
K.GetDevByName >STYA ZPPtr1 requested dev name
ldx #1
.1 lda Dev.Table-1,x
clc
.1 jsr SHARED.GetDevFD
bcs K.GetDev.NODEV
pha
tya
* clc
adc #S.FD.DEV
sta ZPPtr2
lda Dev.Table,x
beq K.GetDev.NODEV
pla
adc /S.FD.DEV
sta ZPPtr2+1
@ -29,14 +32,11 @@ K.GetDevByName >STYA ZPPtr1 requested dev name
bne .7
ora (ZPPtr2),y Both char are 0 ?
bne .2 no....loop
bne .2
beq SHARED.GetDevFD yes, get Ptr
ldy Dev.Table-1,x
lda Dev.Table,x
clc
rts
.7 inx
.7 inx no....loop
inx
cpx #K.DEV.MAX*2+1
bne .1
@ -58,9 +58,8 @@ K.GetDevStatus >PULLW K.S.IOCTL+S.IOCTL.BUFPTR
>PULLA
tax
lda Dev.Table,x
beq K.GetDev.NODEV
ldy Dev.Table-1,x
jsr SHARED.GetDevFD
bcs K.GetDev.9
>STYA pFD
lda #S.IOCTL.STATCODE.GETDIB
@ -79,12 +78,10 @@ SHARED.GetDevStatus
*--------------------------------------
SHARED.pDrvJmp jmp (pDrv)
*--------------------------------------
SHARED.GetPDrv ldy #S.FD.DEV.DRVPTR
lda (pFD),y
sta pDRV
iny
lda (pFD),y
sta pDRV+1
SHARED.GetDevFD lda Dev.Table,x
beq K.GetDev.NODEV
ldy Dev.Table-1,x
clc
rts
*/--------------------------------------
* # MKDev
@ -197,10 +194,8 @@ K.IOCTL ldy #3 hDev
lda (pStack),y
tax
lda Dev.Table,x
beq .9
ldy Dev.Table-1,x
jsr SHARED.GetDevFD
bcs .9
>STYA pFD
jsr SHARED.GetPDrv
@ -215,9 +210,7 @@ K.IOCTL ldy #3 hDev
jmp (pDrv)
.9 sec
lda #MLI.E.NODEV
>RET 4
.9 >RET 4
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.DEV

View File

@ -174,8 +174,7 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
sta (pFD),y Flag that we returned something for next time
jmp K.ReadDir.EXIT
*--------------------------------------
K.ReadDir.DEV >DEBUG
K.ReadDir.DEV
jmp K.ReadDir.NoMore
*--------------------------------------
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF

View File

@ -316,7 +316,7 @@ MemMgrInit >LDYAI Mem.MHiMem
rts
*--------------------------------------
SysScrInit >LDYAI Mem.XHiMem
>STYA FD.TTY+S.FD.DEV.BUFPTR
>STYA FD.TTY+S.FD.DEV.DCBPTR
jsr SysScrInit.TTYPtrs
@ -347,36 +347,26 @@ SysScrInit >LDYAI Mem.XHiMem
.9 rts
*--------------------------------------
SysScrInit.TTYPtrs
lda DevMgr.Free
lda FD.TTY+S.FD.DEV.DCBPTR
sec
sbc #TTY.BUF.SIZE+S.DCB.TTY
sta FD.TTY+S.FD.DEV.DCBPTR
sta .1+1
clc
adc #S.DCB.TTY
sta DevMgr.Free
lda DevMgr.Free+1
tay
lda FD.TTY+S.FD.DEV.DCBPTR+1
sbc /TTY.BUF.SIZE+S.DCB.TTY
sta FD.TTY+S.FD.DEV.DCBPTR+1
sta .1+2
adc /S.DCB.TTY
sta DevMgr.Free+1
ldx #S.DCB.TTY-1
sta SETWRITEAUX
.1 stz $ffff,x SELF MODIFIED
dex
bpl .1
lda FD.TTY+S.FD.DEV.BUFPTR
sec
sbc #TTY.BUF.SIZE
sta FD.TTY+S.FD.DEV.BUFPTR
tay
lda FD.TTY+S.FD.DEV.BUFPTR+1
sbc /TTY.BUF.SIZE
sta FD.TTY+S.FD.DEV.BUFPTR+1
sta SETWRITEAUX
>STYA Mem.HiMem
>STYA Mem.Free
sta CLRWRITEAUX

View File

@ -358,10 +358,7 @@ K.FreeMem tay
bne K.FreeMem.ERR
.10 * cmp #$3D
* bne .11
* >DEBUG
.11 jsr MEM.GetMemByID X,Y unmodified
.10 jsr MEM.GetMemByID X,Y unmodified
lda (ZPMemMgrSPtr) In use ?
bpl K.FreeMem.ERR

View File

@ -155,6 +155,16 @@ SHARED.GetScrnDevX
sta SETREADAUX
rts
*--------------------------------------
SHARED.GetPDrv ldy #S.FD.DEV.DRVPTR
lda (pFD),y
sta pDRV
iny
lda (pFD),y
sta pDRV+1
rts
*--------------------------------------
DEV.FIFO .AS "/dev/fifo" STAT,UNISTD
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.SHARED
LOAD USR/SRC/SYS/KERNEL.S

View File

@ -320,19 +320,26 @@ PrintF.SS ldy #$00 PSTR
jsr STDIO.GetStackByte
bcs .9
sta ZPPtr1+1
jsr STDIO.GetStackByte
bcs .9
sta ZPPtr1
lda (ZPPtr1) if CSTR:last char=0, if PSTR:len=0
beq .8
ldy .1+1
.1 lda #$ff Self Modified
bne .11 CSTR
tya PSTR
cmp (ZPPtr1) len check
beq .2
.11 iny
lda (ZPPtr1),y
beq .2
@ -349,8 +356,10 @@ PrintF.SS ldy #$00 PSTR
.2 lda K.PrintF.PadL
beq .8
.3 cpy K.PrintF.PadL
beq .8
lda K.PrintF.PadC
jsr PrintF.PutC
bcs .9

View File

@ -20,26 +20,39 @@ TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
ldy #S.IOCTL.STATCODE
lda (ZPIOCTL),y
tay
bra TERM.TOAUX
TERM.OPEN sta ZPDevID DEV.ID in A for OPEN
TERM.CONTROL
TERM.OPEN
TERM.CLOSE pha DEV.ID in A for OPEN
jsr TERM.GetDCB
pla
TERM.CLOSE jsr TERM.GetDCB
bra TERM.TOAUX
TERM.READ
TERM.WRITE jsr TERM.GetIOCTLBufCntDCB
*--------------------------------------
TERM.TOAUX sta SETREADAUX
TERM.TOAUX lda A2osX.ASCREEN
sta SETREADAUX
sta SETWRITEAUX
jsr .1
cmp (ZPDCBPtr) #S.DCB.TTY.DEVID
beq .1 CS
clc
.1 ror bActive
jsr .8
sta CLRREADAUX
sta CLRWRITEAUX
rts
.1 jmp (TERMX,x)
.8 jmp (TERMX,x)
*--------------------------------------
TERM.GetIOCTLBufCntDCB
>STYA ZPIOCTL
@ -52,6 +65,7 @@ TERM.GetIOCTLBufCntDCB
sta ZPBufPtr+1
iny #S.IOCTL.BYTECNT
lda (ZPIOCTL),y
eor #$ff
sta ZPCount
@ -61,6 +75,7 @@ TERM.GetIOCTLBufCntDCB
sta ZPCount+1
*--------------------------------------
TERM.GetDCB ldy #S.FD.DEV.DCBPTR
lda (pFD),y
sta ZPDCBPtr
@ -68,22 +83,6 @@ TERM.GetDCB ldy #S.FD.DEV.DCBPTR
lda (pFD),y
sta ZPDCBPtr+1
iny S.FD.DEV.BUFPTR
lda (pFD),y
sta ZPBufBase
iny
lda (pFD),y
sta ZPBufBase+1
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
cmp A2osX.ASCREEN
beq .1 CS
clc
.1 ror bActive
rts
*--------------------------------------
TERM.GetBufByte sta CLRREADAUX
@ -93,17 +92,14 @@ TERM.GetBufByte sta CLRREADAUX
*--------------------------------------
TERM.GetDevName sta CLRREADAUX
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
tax
lda Dev.Table-1,x
clc
adc #S.FD.DEV
sta TXTPTR
tay
lda Dev.Table,x
adc /S.FD.DEV
sta TXTPTR+1
sta SETREADAUX
rts
*--------------------------------------

View File

@ -6,21 +6,22 @@ CURSOR.BLINK.SPEED .EQ 2
.DUMMY
.OR ZPDRV
ZPIOCTL .BS 2
ZPDCBPtr .BS 2
ZPBufPtr .BS 2
ZPBufBase .BS 2
ZPDCBPtr .BS 2
ZPCount .BS 2
ZPBufBaseL1 .BS 2
ZPBufBaseL2 .BS 2
ZPScrBaseL1 .BS 2
ZPScrBaseL2 .BS 2
*--------------------------------------
ZPCount .BS 2
bActive .BS 1
ZPDevID .BS 1
ZPTmpBool .BS 1
ZPTmpChar .BS 1
bActive .BS 1
CsiHeader .BS 1
CsiParamCnt .BS 1
CsiParams .BS 4
@ -37,7 +38,8 @@ TERMX .DA TERMX.STATUS
.DA TERMX.READ
.DA TERMX.WRITE
*--------------------------------------
TERMX.STATUS beq .1
TERMX.STATUS tya
beq .1
cmp #S.IOCTL.STATCODE.GETDIB
bne .3
@ -94,12 +96,9 @@ TERMX.OPEN.E lda #MLI.E.OPEN
sec
rts
*--------------------------------------
TERMX.OPEN tax
jsr TERMX.ISOPENED
TERMX.OPEN jsr TERMX.ISOPENED
bne TERMX.OPEN.E
phx
ldx #0
.2 jsr SHARED.GetScrnDevX
@ -109,13 +108,11 @@ TERMX.OPEN tax
cpx #K.TTY.MAX+1
bne .2
plx
lda #E.OOH
sec
rts
.3 pla
.3 lda ZPDevID
sta CLRWRITEAUX
sta A2osX.SCRNDEVS,x
@ -1106,12 +1103,12 @@ Char.Out.Get ldy #S.DCB.TTY.OUTTAIL
clc
.9 rts
*--------------------------------------
TERMX.SETUP.L1X lda ZPBufBase
TERMX.SETUP.L1X lda ZPDCBPtr
clc
adc BUF.BASEL,x
sta ZPBufBaseL1
lda ZPBufBase+1
lda ZPDCBPtr+1
adc BUF.BASEH,x
sta ZPBufBaseL1+1
@ -1182,7 +1179,10 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
lda #$ff
sta (ZPDCBPtr),y
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
tax
jsr TERM.GetDevName
>STYA TXTPTR
ldx #0
jsr TERMX.SETUP.L1X.SCR
@ -1227,12 +1227,12 @@ TERMX.SCRCPY ldx #23
sta SET80STORE
.1 lda ZPBufBase
.1 lda ZPDCBPtr
clc
adc BUF.BASEL,x
sta .80+1
lda ZPBufBase+1
lda ZPDCBPtr+1
adc BUF.BASEH,x
sta .80+2
jsr TERMX.SETUP.L1X.SCR
@ -1272,12 +1272,12 @@ TERMX.SCRCPY ldx #23
rts
*--------------------------------------
TERMX.COPY.XtoL1
lda ZPBufBase
lda ZPDCBPtr
clc
adc BUF.BASEL,x
sta ZPBufBaseL2
lda ZPBufBase+1
lda ZPDCBPtr+1
adc BUF.BASEH,x
sta ZPBufBaseL2+1
@ -1470,54 +1470,54 @@ REMAP.E0.FF .HS 5B4142434445464748495FA0DF544e4f
SCR.BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
*SCR.BASEH .HS 04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07.04.04.05.05.06.06.07.07
*--------------------------------------
BUF.BASEL .DA #0
.DA #80
.DA #160
.DA #240
.DA #320
.DA #400
.DA #480
.DA #560
.DA #640
.DA #720
.DA #800
.DA #880
.DA #960
.DA #1040
.DA #1120
.DA #1200
.DA #1280
.DA #1360
.DA #1440
.DA #1520
.DA #1600
.DA #1680
.DA #1760
.DA #1840
BUF.BASEH .DA /0
.DA /80
.DA /160
.DA /240
.DA /320
.DA /400
.DA /480
.DA /560
.DA /640
.DA /720
.DA /800
.DA /880
.DA /960
.DA /1040
.DA /1120
.DA /1200
.DA /1280
.DA /1360
.DA /1440
.DA /1520
.DA /1600
.DA /1680
.DA /1760
.DA /1840
BUF.BASEL .DA #S.DCB.TTY+0
.DA #S.DCB.TTY+80
.DA #S.DCB.TTY+160
.DA #S.DCB.TTY+240
.DA #S.DCB.TTY+320
.DA #S.DCB.TTY+400
.DA #S.DCB.TTY+480
.DA #S.DCB.TTY+560
.DA #S.DCB.TTY+640
.DA #S.DCB.TTY+720
.DA #S.DCB.TTY+800
.DA #S.DCB.TTY+880
.DA #S.DCB.TTY+960
.DA #S.DCB.TTY+1040
.DA #S.DCB.TTY+1120
.DA #S.DCB.TTY+1200
.DA #S.DCB.TTY+1280
.DA #S.DCB.TTY+1360
.DA #S.DCB.TTY+1440
.DA #S.DCB.TTY+1520
.DA #S.DCB.TTY+1600
.DA #S.DCB.TTY+1680
.DA #S.DCB.TTY+1760
.DA #S.DCB.TTY+1840
BUF.BASEH .DA /S.DCB.TTY+0
.DA /S.DCB.TTY+80
.DA /S.DCB.TTY+160
.DA /S.DCB.TTY+240
.DA /S.DCB.TTY+320
.DA /S.DCB.TTY+400
.DA /S.DCB.TTY+480
.DA /S.DCB.TTY+560
.DA /S.DCB.TTY+640
.DA /S.DCB.TTY+720
.DA /S.DCB.TTY+800
.DA /S.DCB.TTY+880
.DA /S.DCB.TTY+960
.DA /S.DCB.TTY+1040
.DA /S.DCB.TTY+1120
.DA /S.DCB.TTY+1200
.DA /S.DCB.TTY+1280
.DA /S.DCB.TTY+1360
.DA /S.DCB.TTY+1440
.DA /S.DCB.TTY+1520
.DA /S.DCB.TTY+1600
.DA /S.DCB.TTY+1680
.DA /S.DCB.TTY+1760
.DA /S.DCB.TTY+1840
*--------------------------------------
MAN
SAVE USR/SRC/SYS/KERNEL.S.TERMX

View File

@ -74,6 +74,7 @@ UNISTD.Open jsr UNISTD.CheckDev
.71 lda (pFD) #S.FD.T
tax
jmp (.8-2,x)
.8
* .DA STDIO.IOERR REG
@ -286,6 +287,10 @@ IO.OPEN.BDEV jsr SHARED.GetPDrv
jsr SHARED.pDrvJmp
bcs IO.WRITE.REG.RTS
*--------------------------------------
IO.OPEN.DSOCK
*--------------------------------------
IO.OPEN.SSOCK
lda IO.hFD
*--------------------------------------
IO.CLOSE.CDEV
@ -300,7 +305,7 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
>PULLW K.S.IOCTL+S.IOCTL.BUFPTR
>PULLW K.S.IOCTL+S.IOCTL.BYTECNT
jsr SHARED.GetPDRV
jsr SHARED.GetPDrv
>LDYAI K.S.IOCTL
jsr SHARED.pDrvJmp
bcs .9
@ -309,12 +314,6 @@ IO.WRITE.CDEV ldx #IOCTL.WRITE
.9 rts
*--------------------------------------
IO.OPEN.DSOCK
*--------------------------------------
IO.OPEN.SSOCK lda IO.hFD
clc
rts
*--------------------------------------
IO.CLOSE.DSOCK
IO.CLOSE.SSOCK
ldy #S.FD.SSOCK.CLOSE
@ -442,8 +441,6 @@ IO.CLOSE.NOD ldx #2
lda #E.INVH
* sec
rts
*--------------------------------------
DEV.FIFO .AS "/dev/fifo" STAT,UNISTD
*/--------------------------------------
* # ChOwn
* ## C

View File

@ -75,6 +75,7 @@ A2osX.D1.B .PH $D000
.INB USR/SRC/SYS/KERNEL.S.UNISTD
.INB USR/SRC/SYS/KERNEL.S.STDIO
.INB USR/SRC/SYS/KERNEL.S.STDIO2
.INB USR/SRC/SYS/KERNEL.S.DEV
.EP
A2osX.D1.S .EQ *-A2osX.D1.B
@ -113,7 +114,6 @@ A2osX.E0.B .PH $E000
* go to A2osX.D1
.INB USR/SRC/SYS/KERNEL.S.PIPE
.INB USR/SRC/SYS/KERNEL.S.PFT
.INB USR/SRC/SYS/KERNEL.S.DEV
DevMgr.Timer .BS 1
DevMgr.Stat .DA DevMgr.FreeMem