mirror of https://github.com/A2osX/A2osX.git
KERNEL 0.94-2
This commit is contained in:
parent
3c55ead88e
commit
eceedd72d7
Binary file not shown.
Binary file not shown.
|
@ -109,6 +109,10 @@ RT.GET >SYSCALL GetChar
|
||||||
sta (ZPStrBuf)
|
sta (ZPStrBuf)
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
sta (ZPStrBuf),y
|
||||||
|
|
||||||
bra RT.INPUT.8
|
bra RT.INPUT.8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RT.INPUT lda #0
|
RT.INPUT lda #0
|
||||||
|
|
|
@ -519,7 +519,7 @@ OUT.CLRSCR .DA #C.ESC
|
||||||
.DA #C.ESC
|
.DA #C.ESC
|
||||||
.AZ ")0"
|
.AZ ")0"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FMT.DATE .AZ "%d/%m/%Y"
|
FMT.DATE .AZ "%m/%d/%y"
|
||||||
FMT.TIME .AZ "%H:%M:%S"
|
FMT.TIME .AZ "%H:%M:%S"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OptionList .AS "DdTt"
|
OptionList .AS "DdTt"
|
||||||
|
|
|
@ -656,7 +656,7 @@ DIR.TF >LDA.G ASM.PASS If Pass#1, ignore
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
.7 >PUSHW ZPPtr1
|
.7 >PUSHW ZPPtr1
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -371,7 +371,7 @@ CS.RUN.ARGS ldy #S.PS.ARGC
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
>PUSHW ZPPtr2
|
>PUSHW ZPPtr2
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .99
|
bcs .99
|
||||||
txa
|
txa
|
||||||
|
|
499
BIN/CAT.S.txt
499
BIN/CAT.S.txt
|
@ -1,242 +1,375 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/cat
|
.TF bin/cat
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
.INB inc/kernel.i
|
.INB inc/kernel.i
|
||||||
.INB inc/mli.i
|
.INB inc/mli.i
|
||||||
.INB inc/mli.e.i
|
.INB inc/mli.e.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPPtr1 .BS 2
|
ZPPtr1 .BS 2
|
||||||
ZPBufPtr .BS 2
|
ZPBufPtr .BS 2
|
||||||
ByteIndex .BS 1
|
ByteIndex .BS 1
|
||||||
ArgCount .BS 1
|
ArgCount .BS 1
|
||||||
FileCount .BS 1
|
FileCount .BS 1
|
||||||
bPause .BS 1
|
bPause .BS 1
|
||||||
bDummy .BS 1
|
bPrintAll .BS 1
|
||||||
bIsTTY .BS 1
|
bLineNum .BS 1
|
||||||
ArgIndex .BS 1
|
bSuppressBlankLine .BS 1
|
||||||
hBuf .BS 1
|
ArgIndex .BS 1
|
||||||
hFile .BS 1
|
hBuf .BS 1
|
||||||
ZS.END .ED
|
hFile .BS 1
|
||||||
|
LineNum .BS 2
|
||||||
|
bPrintedBlankLine .BS 1
|
||||||
|
ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA #S.PS.F.EVENT S.PS.F
|
.DA #S.PS.F.EVENT S.PS.F
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA CS.END-CS.START CS
|
.DA CS.END-CS.START CS
|
||||||
.DA DS.END-DS.START DS
|
.DA DS.END-DS.START DS
|
||||||
.DA #64 SS
|
.DA #64 SS
|
||||||
.DA #ZS.END-ZS.START Zero Page Size
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG.USAGE .DA MSG.USAGE
|
L.MSG.USAGE .DA MSG.USAGE
|
||||||
L.MSG.CRLF .DA MSG.CRLF
|
L.MSG.CRLF .DA MSG.CRLF
|
||||||
L.MSG.INIT .DA MSG.INIT
|
L.MSG.INIT .DA MSG.INIT
|
||||||
.DA 0
|
L.MSG.LINENUM .DA MSG.LINENUM
|
||||||
|
L.MSG.CTRLCHAR .DA MSG.CTRLCHAR
|
||||||
|
L.ASCII .DA ASCII
|
||||||
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN
|
CS.RUN
|
||||||
.1 stz bIsTTY
|
.1 inc ArgCount
|
||||||
|
lda ArgCount
|
||||||
inc ArgCount
|
>SYSCALL ArgV
|
||||||
lda ArgCount
|
bcs .7
|
||||||
>SYSCALL ArgV
|
|
||||||
bcs .7
|
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
cmp #'-'
|
cmp #'-'
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
|
|
||||||
ldx #OptionList.Cnt-1
|
ldx #OptionList.Cnt-1
|
||||||
|
|
||||||
.2 cmp OptionList,x
|
.2 cmp OptionList,x
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
.99 >PUSHW L.MSG.USAGE
|
.99 >PUSHW L.MSG.USAGE
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
lda #E.SYN
|
lda #E.SYN
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.3 ldy OptionVars,x
|
.3 ldy OptionVars,x
|
||||||
lda #$80
|
lda #$80
|
||||||
sta 0,y
|
sta 0,y
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.4 inc FileCount
|
.4 inc FileCount
|
||||||
bra .1 scan for any other args
|
bra .1 scan for any other args
|
||||||
|
|
||||||
.7 lda FileCount
|
.7 lda FileCount
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
>LDYAI 256
|
>LDYAI 256
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPBufPtr
|
>STYA ZPBufPtr
|
||||||
stx hBuf
|
stx hBuf
|
||||||
|
|
||||||
ldy #S.PS.hStdOut
|
ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcc CS.RUN.LOOP
|
>SYSCALL GetMemPtr
|
||||||
|
>STYA ZPPtr1
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
|
||||||
beq CS.RUN.LOOP
|
beq CS.RUN.LOOP
|
||||||
|
|
||||||
inc bIsTTY
|
cmp #S.FD.T.PIPE
|
||||||
|
beq CS.RUN.LOOP
|
||||||
>PUSHW L.MSG.INIT
|
|
||||||
>PUSHBI 0
|
>PUSHW L.MSG.INIT
|
||||||
>SYSCALL PrintF
|
>PUSHBI 0
|
||||||
|
>SYSCALL PrintF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP ldy #S.PS.hStdIn
|
CS.RUN.LOOP ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
bcs .90 IO error
|
bcs .90 IO error
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .10 no char
|
bne .10 no char
|
||||||
|
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .9 IO error
|
bcs .9 IO error
|
||||||
|
|
||||||
cmp #$03 Ctrl-C
|
cmp #$03 Ctrl-C
|
||||||
beq .9 Abort....
|
beq .9 Abort....
|
||||||
|
|
||||||
cmp #$13 Ctrl-S
|
cmp #$13 Ctrl-S
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
lda bPause
|
lda bPause
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta bPause
|
sta bPause
|
||||||
bne CS.RUN.LOOP
|
bne CS.RUN.LOOP
|
||||||
|
|
||||||
.10 lda bPause
|
.10 lda bPause
|
||||||
bne CS.RUN.LOOP Pause...
|
bne CS.RUN.LOOP Pause...
|
||||||
|
|
||||||
.11 lda hFile
|
.11 lda hFile
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
.1 inc ArgIndex
|
.1 inc ArgIndex
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
bcs .99 No more arg...the end!
|
bcs .99 No more arg...the end!
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
cmp #'-'
|
cmp #'-'
|
||||||
beq .1 An option, skip...
|
beq .1 An option, skip...
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
jsr CS.RUN.OPEN
|
jsr CS.RUN.OPEN
|
||||||
.90 bcs .9
|
.90 bcs .9
|
||||||
|
|
||||||
sta hFile
|
sta hFile
|
||||||
|
|
||||||
.2 lda hFile
|
.2 >PUSHA
|
||||||
>SYSCALL GetC
|
>PUSHW ZPBufPtr
|
||||||
bcs .7
|
>PUSHWI 254 Leave room for CRLF
|
||||||
|
>SYSCALL FGetS
|
||||||
|
bcs .7
|
||||||
|
|
||||||
pha
|
jsr CS.RUN.PRINT
|
||||||
>SYSCALL PutChar
|
bcc CS.RUN.LOOP
|
||||||
pla
|
rts
|
||||||
|
|
||||||
cmp #C.CR
|
.7 cmp #MLI.E.EOF
|
||||||
bne CS.RUN.LOOP
|
bne .9
|
||||||
|
|
||||||
lda bIsTTY
|
jsr CS.RUN.CLOSE
|
||||||
beq CS.RUN.LOOP
|
jmp CS.RUN.LOOP
|
||||||
|
|
||||||
lda #C.LF
|
.99 lda #0 Exit with no Error
|
||||||
>SYSCALL PutChar
|
.9 sec
|
||||||
|
rts
|
||||||
bra CS.RUN.LOOP
|
|
||||||
|
|
||||||
.7 cmp #MLI.E.EOF
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
jsr CS.RUN.CLOSE
|
|
||||||
jmp CS.RUN.LOOP
|
|
||||||
|
|
||||||
.99 lda #0 Exit with no Error
|
|
||||||
.9 sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.OPEN >PUSHYA
|
CS.RUN.OPEN stz bPrintedBlankLine Reset this flag for the new file
|
||||||
>PUSHBI O.RDONLY+O.TEXT
|
>PUSHYA
|
||||||
>PUSHBI S.FI.T.TXT
|
>PUSHBI O.RDONLY+O.TEXT
|
||||||
>PUSHWZ Aux type
|
>PUSHBI S.FI.T.TXT
|
||||||
>SYSCALL FOpen
|
>PUSHWZ Aux type
|
||||||
rts
|
>SYSCALL FOpen
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hBuf
|
CS.RUN.PRINT inc LineNum
|
||||||
beq CS.RUN.CLOSE
|
bne .10
|
||||||
>SYSCALL FreeMem
|
|
||||||
|
|
||||||
CS.RUN.CLOSE lda hFile
|
inc LineNum+1
|
||||||
beq .8
|
|
||||||
|
|
||||||
stz hFile
|
.10 lda bSuppressBlankLine
|
||||||
|
bpl .2
|
||||||
|
|
||||||
>SYSCALL FClose
|
lda (ZPBufPtr)
|
||||||
.8 clc
|
bne .1 Empty line ?
|
||||||
rts
|
|
||||||
|
lda bPrintedBlankLine
|
||||||
|
bmi .8
|
||||||
|
|
||||||
|
lda #$ff
|
||||||
|
sta bPrintedBlankLine
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.1 stz bPrintedBlankLine
|
||||||
|
|
||||||
|
.2 jsr CS.RUN.PRINTNUM
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
lda bPrintAll
|
||||||
|
bmi .3
|
||||||
|
|
||||||
|
ldy #$ff
|
||||||
|
|
||||||
|
.20 iny
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
beq .21
|
||||||
|
|
||||||
|
cmp #C.SPACE
|
||||||
|
bcs .20
|
||||||
|
|
||||||
|
lda #C.SPACE
|
||||||
|
sta (ZPBufPtr),y
|
||||||
|
bra .20
|
||||||
|
|
||||||
|
.21 >LDYA ZPBufPtr
|
||||||
|
>SYSCALL PutS
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
.3 stz ByteIndex
|
||||||
rts
|
|
||||||
|
.4 ldy ByteIndex
|
||||||
|
lda (ZPBufPtr),y
|
||||||
|
beq .7
|
||||||
|
|
||||||
|
cmp #C.SPACE
|
||||||
|
bcc .5
|
||||||
|
|
||||||
|
>SYSCALL PutChar
|
||||||
|
.99 bcs .9
|
||||||
|
|
||||||
|
bra .62
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.5 tax
|
||||||
|
|
||||||
|
>LDYA L.ASCII
|
||||||
|
>STYA ZPPtr1
|
||||||
|
.6 dex
|
||||||
|
bmi .61
|
||||||
|
|
||||||
|
lda ZPPtr1
|
||||||
|
sec
|
||||||
|
adc (ZPPtr1)
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .6
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
|
bra .6
|
||||||
|
|
||||||
|
.61 >PUSHW L.MSG.CTRLCHAR
|
||||||
|
>PUSHW ZPPtr1
|
||||||
|
>PUSHBI 2
|
||||||
|
>SYSCALL PrintF
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.62 inc ByteIndex
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
.7 >PUSHW L.MSG.CRLF
|
||||||
|
>PUSHBI 0
|
||||||
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.PRINTNUM clc
|
||||||
|
lda bLineNum
|
||||||
|
bpl .8
|
||||||
|
|
||||||
|
>PUSHW L.MSG.LINENUM
|
||||||
|
>PUSHW LineNum
|
||||||
|
>PUSHBI 2
|
||||||
|
>SYSCALL PrintF
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.QUIT lda hBuf
|
||||||
|
beq CS.RUN.CLOSE
|
||||||
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
|
CS.RUN.CLOSE lda hFile
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
stz hFile
|
||||||
|
|
||||||
|
>SYSCALL FClose
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CS.DOEVENT sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OptionList .AS "x"
|
OptionList .AS "ANSans"
|
||||||
OptionList.Cnt .EQ *-OptionList
|
OptionList.Cnt .EQ *-OptionList
|
||||||
OptionVars .DA #bDummy
|
OptionVars .DA #bPrintAll,#bLineNum,#bSuppressBlankLine,#bPrintAll,#bLineNum,#bSuppressBlankLine
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.USAGE .AS "Usage : CAT File1 [File2...]"
|
MSG.USAGE .AS "Usage : CAT File1 [File2...]\r\n"
|
||||||
MSG.CRLF .AZ "\r\n"
|
.AS " -A : Show All non printable characters\r\n"
|
||||||
MSG.INIT .AZ "\e[?7h" Enable Line Wrap
|
.AS " -N : Number all output lines\r\n"
|
||||||
|
.AS " -S : Suppress repeated empty output lines"
|
||||||
|
MSG.CRLF .AZ "\r\n"
|
||||||
|
MSG.INIT .AZ "\e[?7h" Enable Line Wrap
|
||||||
|
MSG.LINENUM .AZ "%5D:"
|
||||||
|
MSG.CTRLCHAR .AZ "[%S]"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
ASCII >PSTR "NUL"
|
||||||
.OR 0
|
>PSTR "SOH"
|
||||||
|
>PSTR "STX"
|
||||||
|
>PSTR "ETX"
|
||||||
|
>PSTR "EOT"
|
||||||
|
>PSTR "ENQ"
|
||||||
|
>PSTR "ACK"
|
||||||
|
>PSTR "BEL"
|
||||||
|
>PSTR "BS"
|
||||||
|
>PSTR "TAB"
|
||||||
|
>PSTR "LF"
|
||||||
|
>PSTR "VT"
|
||||||
|
>PSTR "FF"
|
||||||
|
>PSTR "CR"
|
||||||
|
>PSTR "SO"
|
||||||
|
>PSTR "SI"
|
||||||
|
>PSTR "DLE"
|
||||||
|
>PSTR "DC1"
|
||||||
|
>PSTR "DC2"
|
||||||
|
>PSTR "DC3"
|
||||||
|
>PSTR "DC4"
|
||||||
|
>PSTR "NAK"
|
||||||
|
>PSTR "SYN"
|
||||||
|
>PSTR "ETB"
|
||||||
|
>PSTR "CAN"
|
||||||
|
>PSTR "EM"
|
||||||
|
>PSTR "SUB"
|
||||||
|
>PSTR "ESC"
|
||||||
|
>PSTR "FS"
|
||||||
|
>PSTR "GS"
|
||||||
|
>PSTR "RS"
|
||||||
|
>PSTR "US"
|
||||||
|
*--------------------------------------
|
||||||
|
.DUMMY
|
||||||
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/cat.s
|
SAVE usr/src/bin/cat.s
|
||||||
|
|
|
@ -228,7 +228,7 @@ CS.RUN.FILE clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetGID >SYSCALL ArgV
|
CS.RUN.GetGID >SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>SYSCALL GetGRName
|
>SYSCALL GetGRName
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -230,7 +230,7 @@ CS.RUN.FILE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetUID >SYSCALL ArgV
|
CS.RUN.GetUID >SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>SYSCALL GetPWName
|
>SYSCALL GetPWName
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -881,7 +881,7 @@ CSH.GetVarDef phy
|
||||||
|
|
||||||
>PUSHWI ZPVarDef
|
>PUSHWI ZPVarDef
|
||||||
>PUSHWI 8 8 bytes
|
>PUSHWI 8 8 bytes
|
||||||
>PUSHWI 0 From Start
|
>PUSHWZ From Start
|
||||||
>SYSCALL SListGetData
|
>SYSCALL SListGetData
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -283,7 +283,7 @@ CSH.VarLookup >PUSHB.G CSH.hSymbols
|
||||||
|
|
||||||
>PUSHEA.G CSH.VarDef
|
>PUSHEA.G CSH.VarDef
|
||||||
>PUSHWI 8 8 bytes
|
>PUSHWI 8 8 bytes
|
||||||
>PUSHWI 0 From Start
|
>PUSHWZ From Start
|
||||||
>SYSCALL SListGetData
|
>SYSCALL SListGetData
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -141,10 +141,7 @@ CS.RUN lda #C.SPACE
|
||||||
.80 ldy #S.PS.hStdIn
|
.80 ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcs .97
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ FILE.New jsr FILE.Reset
|
||||||
>LDYA L.MSG.NEWFILE
|
>LDYA L.MSG.NEWFILE
|
||||||
|
|
||||||
FILE.RealPath >PUSHYA
|
FILE.RealPath >PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -365,7 +365,7 @@ CS.RUN.LL.DISKII
|
||||||
>PUSHB VolNum
|
>PUSHB VolNum
|
||||||
>PUSHB CurHead
|
>PUSHB CurHead
|
||||||
>PUSHB CurTrack
|
>PUSHB CurTrack
|
||||||
>PUSHWI 0 Empty track
|
>PUSHWZ Empty track
|
||||||
>LIBCALL hLIBBLKDEV,LIBBLKDEV.D2TrkWrite16s
|
>LIBCALL hLIBBLKDEV,LIBBLKDEV.D2TrkWrite16s
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -38,7 +38,7 @@ GFX.GR ldy #S.PS.hStdIn
|
||||||
|
|
||||||
GFX.IOCTL >PUSHA
|
GFX.IOCTL >PUSHA
|
||||||
>PUSHBI IOCTL.CONTROL
|
>PUSHBI IOCTL.CONTROL
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>SYSCALL IOCTL
|
>SYSCALL IOCTL
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -146,10 +146,7 @@ CS.RUN.CheckArgs
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcs .97
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
|
|
@ -311,7 +311,7 @@ CS.RUN.GET jsr CS.RUN.ENCODE
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHBI O.CREATE+O.WRONLY+O.TRUNC
|
>PUSHBI O.CREATE+O.WRONLY+O.TRUNC
|
||||||
>PUSHBI 0 TYPE
|
>PUSHBI 0 TYPE
|
||||||
>PUSHWI 0 AUXTYPE
|
>PUSHWZ AUXTYPE
|
||||||
>SYSCALL FOpen
|
>SYSCALL FOpen
|
||||||
bcs .9
|
bcs .9
|
||||||
sta hFile
|
sta hFile
|
||||||
|
|
|
@ -229,12 +229,14 @@ CS.RUN.DUMPNIC >PUSHW L.MSG1.DEV
|
||||||
lda IPCFG+S.NETCFG.DevID
|
lda IPCFG+S.NETCFG.DevID
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
ldx IPCFG+S.NETCFG.DevID
|
>SYSCALL GetMemPtr
|
||||||
lda Dev.Table-1,x
|
|
||||||
|
pha
|
||||||
|
tya
|
||||||
clc
|
clc
|
||||||
adc #S.FD.DEV
|
adc #S.FD.DEV
|
||||||
tay
|
tay
|
||||||
lda Dev.Table,x
|
pla
|
||||||
adc /S.FD.DEV
|
adc /S.FD.DEV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
|
|
97
BIN/LS.S.txt
97
BIN/LS.S.txt
|
@ -1,24 +1,24 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF bin/ls
|
.TF bin/ls
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
.INB inc/kernel.i
|
.INB inc/kernel.i
|
||||||
.INB inc/mli.i
|
.INB inc/mli.i
|
||||||
.INB inc/mli.e.i
|
.INB inc/mli.e.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
X.ENTER.SUBDIR .EQ 1
|
X.ENTER.SUBDIR .EQ 1
|
||||||
X.COPY.TO.DEST .EQ 0
|
X.COPY.TO.DEST .EQ 0
|
||||||
X.DELETE.SOURCE .EQ 0
|
X.DELETE.SOURCE .EQ 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAX.COL .EQ 4
|
MAX.COL .EQ 4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPPtr1 .BS 2
|
ZPPtr1 .BS 2
|
||||||
ZPPtr2 .BS 2
|
ZPPtr2 .BS 2
|
||||||
|
@ -45,52 +45,51 @@ ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA #0 S.PS.F.EVENT
|
.DA #0 S.PS.F.EVENT
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA CS.END-CS.START Code Size (without Constants)
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA DS.END-DS.START Data SegmentSize
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #64 Stack Size
|
.DA #64 Stack Size
|
||||||
.DA #ZS.END-ZS.START Zero Page Size
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA CS.INIT
|
.1 .DA CS.INIT
|
||||||
.DA CS.RUN
|
.DA CS.RUN
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG.USAGE .DA MSG.USAGE
|
L.MSG.USAGE .DA MSG.USAGE
|
||||||
L.MSG.REG .DA MSG.REG
|
L.MSG.REG .DA MSG.REG
|
||||||
L.MSG.REGEXT .DA MSG.REGEXT
|
L.MSG.REGEXT .DA MSG.REGEXT
|
||||||
L.MSG.DIR .DA MSG.DIR
|
L.MSG.DIR .DA MSG.DIR
|
||||||
L.MSG.DIREXT .DA MSG.DIREXT
|
L.MSG.DIREXT .DA MSG.DIREXT
|
||||||
L.MSG.BDEV .DA MSG.BDEV
|
L.MSG.BDEV .DA MSG.BDEV
|
||||||
L.MSG.BDEVEXT .DA MSG.BDEVEXT
|
L.MSG.BDEVEXT .DA MSG.BDEVEXT
|
||||||
L.MSG.ENTER .DA MSG.ENTER
|
L.MSG.ENTER .DA MSG.ENTER
|
||||||
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||||
L.FMT.Date .DA FMT.Date
|
L.FMT.Date .DA FMT.Date
|
||||||
L.FMT.Time .DA FMT.Time
|
L.FMT.Time .DA FMT.Time
|
||||||
L.FMT.string6 .DA FMT.string6
|
L.FMT.string6 .DA FMT.string6
|
||||||
L.FMT.int16 .DA FMT.int16
|
L.FMT.int16 .DA FMT.int16
|
||||||
J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG
|
J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG
|
||||||
.DA CS.RUN.PRINT.DIR
|
.DA CS.RUN.PRINT.DIR
|
||||||
.DA CS.RUN.PRINT.CDEV
|
.DA CS.RUN.PRINT.CDEV
|
||||||
.DA CS.RUN.PRINT.BDEV
|
.DA CS.RUN.PRINT.BDEV
|
||||||
.DA CS.RUN.PRINT.CDEV
|
.DA CS.RUN.PRINT.CDEV
|
||||||
.DA CS.RUN.PRINT.CDEV
|
.DA CS.RUN.PRINT.CDEV
|
||||||
.DA CS.RUN.PRINT.CDEV
|
.DA CS.RUN.PRINT.CDEV
|
||||||
.DA CS.RUN.PRINT.CDEV
|
.DA CS.RUN.PRINT.CDEV
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN
|
CS.RUN stz bIsTTY
|
||||||
stz bIsTTY
|
|
||||||
jsr CS.RUN.ISATTY
|
jsr CS.RUN.ISATTY
|
||||||
|
|
||||||
.1 inc ArgCount
|
.1 inc ArgCount
|
||||||
|
@ -705,14 +704,14 @@ CS.RUN.NewLine.8
|
||||||
CS.RUN.ISATTY ldy #S.PS.hStdOut
|
CS.RUN.ISATTY ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcc .9
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
inc bIsTTY
|
inc bIsTTY
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
|
|
222
BIN/LSDEV.S.txt
222
BIN/LSDEV.S.txt
|
@ -38,14 +38,21 @@ CS.START cld
|
||||||
.DA CS.EVENT
|
.DA CS.EVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG0 .DA MSG0
|
L.MSG0 .DA MSG0
|
||||||
L.MSG1 .DA MSG1
|
L.MSG.DEV .DA MSG.DEV
|
||||||
L.MSG2.ERR .DA MSG2.ERR
|
L.MSG.DEV.ERR .DA MSG.DEV.ERR
|
||||||
L.MSG2 .DA MSG2
|
L.MSG.DEV.DIB .DA MSG.DEV.DIB
|
||||||
L.MSG2.C .DA MSG2.C
|
L.MSG.DEV.C .DA MSG.DEV.C
|
||||||
L.MSG2.B .DA MSG2.B
|
L.MSG.DEV.B .DA MSG.DEV.B
|
||||||
L.MSG3 .DA MSG3
|
L.MSG.PIPE .DA MSG.PIPE
|
||||||
L.MSG4 .DA MSG4
|
|
||||||
L.NO.PATH .DA NO.PATH
|
L.NO.PATH .DA NO.PATH
|
||||||
|
J.FD .DA DumpFD.REG
|
||||||
|
.DA DumpFD.DIR
|
||||||
|
.DA DumpFD.CDEV
|
||||||
|
.DA DumpFD.CDEV
|
||||||
|
.DA DumpFD.LNK
|
||||||
|
.DA DumpFD.DSOCK
|
||||||
|
.DA DumpFD.SSOCK
|
||||||
|
.DA DumpFD.PIPE
|
||||||
L.FD.T .DA FD.T.REG
|
L.FD.T .DA FD.T.REG
|
||||||
.DA FD.T.DIR
|
.DA FD.T.DIR
|
||||||
.DA FD.T.CDEV
|
.DA FD.T.CDEV
|
||||||
|
@ -59,73 +66,44 @@ L.FD.T .DA FD.T.REG
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN jsr DumpDev
|
CS.RUN >LDYA L.MSG0
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr DumpNod
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
.8 lda #0 tell TSKMGR that all done ok, but
|
|
||||||
sec we do not want to stay in memory
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
DumpDev >LDYA L.MSG0
|
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
|
||||||
ldx #1
|
ldx #0
|
||||||
stx Index
|
|
||||||
|
|
||||||
.1 lda Dev.Table-1,x
|
.1 stx Index
|
||||||
sta ZPFDPtr
|
lda hFDs,x
|
||||||
lda Dev.Table,x
|
|
||||||
sta ZPFDPtr+1
|
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
jsr DumpDevFD
|
>SYSCALL GetMemPtr
|
||||||
|
>STYA ZPFDPtr
|
||||||
|
|
||||||
|
jsr DumpFD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldy #DEV.DIB+S.DIB-1
|
|
||||||
ldx #S.DIB-1
|
|
||||||
|
|
||||||
.2 lda BLANK.DIB,x
|
|
||||||
sta (pData),y
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
>PUSHB Index
|
|
||||||
>PUSHEA.G DEV.DIB
|
|
||||||
>SYSCALL GetDevStatus
|
|
||||||
bcc .6
|
|
||||||
|
|
||||||
pha
|
|
||||||
>PUSHW L.MSG2.ERR
|
|
||||||
pla
|
|
||||||
>PUSHA
|
|
||||||
>PUSHBI 1
|
|
||||||
>SYSCALL PrintF
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
bra .7
|
|
||||||
|
|
||||||
.6 jsr DumpDevDIB
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
.7 inc Index
|
|
||||||
inc Index
|
|
||||||
|
|
||||||
ldx Index
|
ldx Index
|
||||||
cpx #K.DEV.MAX*2+1
|
|
||||||
|
.7 inx
|
||||||
|
cpx #K.hFD.MAX
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.8 clc
|
lda #0
|
||||||
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DumpDevFD >PUSHW L.MSG1
|
DumpFD lda (ZPFDPtr)
|
||||||
|
tax
|
||||||
|
jmp (J.FD,x)
|
||||||
|
*--------------------------------------
|
||||||
|
DumpFD.REG
|
||||||
|
DumpFD.DIR
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DumpFD.CDEV
|
||||||
|
DumpFD.BDEV >PUSHW L.MSG.DEV
|
||||||
|
|
||||||
>PUSHB Index
|
jsr DumpFD.T
|
||||||
|
|
||||||
>PUSHB (ZPFDPtr) S.FD.T
|
|
||||||
|
|
||||||
lda ZPFDPtr
|
lda ZPFDPtr
|
||||||
clc
|
clc
|
||||||
|
@ -137,16 +115,39 @@ DumpDevFD >PUSHW L.MSG1
|
||||||
|
|
||||||
ldy #S.FD.DEV.DRVPTR+1
|
ldy #S.FD.DEV.DRVPTR+1
|
||||||
>PUSHB (ZPFDPtr),y
|
>PUSHB (ZPFDPtr),y
|
||||||
|
|
||||||
dey
|
dey
|
||||||
>PUSHB (ZPFDPtr),y
|
>PUSHB (ZPFDPtr),y
|
||||||
|
|
||||||
>PUSHBI 6
|
>PUSHBI 7
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
rts
|
bcs .9
|
||||||
|
|
||||||
|
ldy #DEV.DIB+S.DIB-1
|
||||||
|
ldx #S.DIB-1
|
||||||
|
|
||||||
|
.1 lda BLANK.DIB,x
|
||||||
|
sta (pData),y
|
||||||
|
dey
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
ldx Index
|
||||||
|
>PUSHB hFDs,x
|
||||||
|
>PUSHEA.G DEV.DIB
|
||||||
|
>SYSCALL GetDevStatus
|
||||||
|
bcc DumpFD.DevDIB
|
||||||
|
|
||||||
|
pha
|
||||||
|
>PUSHW L.MSG.DEV.ERR
|
||||||
|
pla
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI 1
|
||||||
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DumpDevDIB >PUSHW L.MSG2
|
DumpFD.DevDIB >PUSHW L.MSG.DEV.DIB
|
||||||
|
|
||||||
>LDA.G DEV.DIB+S.DIB.S
|
>LDA.G DEV.DIB+S.DIB.S
|
||||||
|
|
||||||
|
@ -181,7 +182,7 @@ DumpDevDIB >PUSHW L.MSG2
|
||||||
>LDA.G DEV.DIB+S.DIB.S
|
>LDA.G DEV.DIB+S.DIB.S
|
||||||
bpl .4 char device...
|
bpl .4 char device...
|
||||||
|
|
||||||
>PUSHW L.MSG2.B
|
>PUSHW L.MSG.DEV.B
|
||||||
|
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>PUSHB.G DEV.DIB+S.DIB.SIZE+2
|
>PUSHB.G DEV.DIB+S.DIB.SIZE+2
|
||||||
|
@ -190,59 +191,46 @@ DumpDevDIB >PUSHW L.MSG2
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.4 >PUSHW L.MSG2.C
|
.4 >PUSHW L.MSG.DEV.C
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
|
|
||||||
.8 >SYSCALL PrintF
|
.8 >SYSCALL PrintF
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DumpNod >LDYA L.MSG3
|
DumpFD.LNK
|
||||||
>SYSCALL PutS
|
DumpFD.DSOCK
|
||||||
|
DumpFD.SSOCK clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DumpFD.PIPE >PUSHW L.MSG.PIPE
|
||||||
|
|
||||||
ldx #2
|
jsr DumpFD.T
|
||||||
|
|
||||||
.1 stx Index
|
jsr DumpFD.Name
|
||||||
|
|
||||||
|
>PUSHBI 5
|
||||||
|
>SYSCALL PrintF
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DumpFD.T ldx Index
|
||||||
|
>PUSHB hFDs,x
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
lda (ZPFDPtr) S.FD.T
|
||||||
beq .7
|
|
||||||
|
|
||||||
>PUSHW L.MSG4
|
|
||||||
|
|
||||||
txa
|
|
||||||
>PUSHA
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>PUSHA
|
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPFDPtr
|
|
||||||
lda (ZPFDPtr)
|
|
||||||
tax
|
tax
|
||||||
>PUSHW L.FD.T,x
|
>PUSHW L.FD.T,x
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
DumpFD.Name ldx Index
|
||||||
|
lda hFDs.hName,x
|
||||||
|
beq .1
|
||||||
|
|
||||||
ldx Index
|
>SYSCALL GetMemPtr
|
||||||
lda Nod.Table.hName-2,x
|
>PUSHYA
|
||||||
bne .2
|
rts
|
||||||
|
|
||||||
>LDYA L.NO.PATH
|
|
||||||
bra .3
|
|
||||||
|
|
||||||
.2 >SYSCALL GetMemPtr
|
.1 >PUSHYA L.NO.PATH
|
||||||
|
rts
|
||||||
.3 >PUSHYA
|
|
||||||
>PUSHBI 6
|
|
||||||
|
|
||||||
>SYSCALL PrintF
|
|
||||||
|
|
||||||
ldx Index
|
|
||||||
|
|
||||||
.7 inx
|
|
||||||
inx
|
|
||||||
cpx #K.NOD.MAX+2
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.EVENT sec
|
CS.EVENT sec
|
||||||
rts
|
rts
|
||||||
|
@ -251,16 +239,16 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .AZ "hDev Tp Name Addr. Status Typ/Sub IDString Version Size (BLK)"
|
MSG0 .AZ "hFD Type Name Addr Status Typ/Sub IDString Version Size (BLK)"
|
||||||
MSG1 .AZ "%03d %h %12s $%H "
|
MSG.DEV .AZ "%3d %5s %12s %H "
|
||||||
MSG2.ERR .AZ "Device Error : $%h\r\n"
|
MSG.DEV.ERR .AZ "Device Error : $%h\r\n"
|
||||||
MSG2 .AZ "%s $%h/$%h %16S %03d.%03d "
|
MSG.DEV.DIB .AZ "%s $%h/$%h %16S %03d.%03d "
|
||||||
MSG2.B .AZ "%10u\r\n"
|
MSG.DEV.B .AZ "%10u\r\n"
|
||||||
MSG2.C .AZ "n/a\r\n"
|
MSG.DEV.C .AZ "n/a\r\n"
|
||||||
MSG.SFLAGS .AS "bwrlneio"
|
|
||||||
|
MSG.PIPE .AZ "%3d %5s %s\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG3 .AZ "hNod hFD Type Filepath"
|
MSG.SFLAGS .AS "bwrlneio"
|
||||||
MSG4 .AZ "%03d $%h %5s %s\r\n"
|
|
||||||
NO.PATH .AZ "(no path)"
|
NO.PATH .AZ "(no path)"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FD.T.REG .AZ "REG"
|
FD.T.REG .AZ "REG"
|
||||||
|
|
|
@ -38,6 +38,7 @@ CS.START cld
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG0 .DA MSG0
|
L.MSG0 .DA MSG0
|
||||||
L.MSG1 .DA MSG1
|
L.MSG1 .DA MSG1
|
||||||
|
L.MSG.NA .DA MSG.NA
|
||||||
L.FD.T .DA FD.T.REG
|
L.FD.T .DA FD.T.REG
|
||||||
.DA FD.T.DIR
|
.DA FD.T.DIR
|
||||||
.DA FD.T.CDEV
|
.DA FD.T.CDEV
|
||||||
|
@ -54,40 +55,50 @@ CS.INIT clc
|
||||||
CS.RUN >LDYA L.MSG0
|
CS.RUN >LDYA L.MSG0
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
|
||||||
ldx #2
|
ldx #1
|
||||||
|
|
||||||
.1 stx FILE.ID
|
.1 stx FILE.ID
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
lda hFDs-1,x
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
>PUSHW L.MSG1
|
>PUSHW L.MSG1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
>PUSHA
|
>PUSHA
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
|
lda hFDs-1,x
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPFDPtr
|
>STYA ZPFDPtr
|
||||||
|
|
||||||
|
ldx FILE.ID
|
||||||
|
lda hFDs.oCnt-1,x
|
||||||
|
>PUSHA
|
||||||
|
|
||||||
lda (ZPFDPtr)
|
lda (ZPFDPtr)
|
||||||
tax
|
tax
|
||||||
>PUSHW L.FD.T,x
|
>PUSHW L.FD.T,x
|
||||||
|
|
||||||
ldx FILE.ID
|
ldx FILE.ID
|
||||||
lda Nod.Table.hName-2,x
|
lda hFDs.hName-1,x
|
||||||
>SYSCALL GetMemPtr
|
bne .5
|
||||||
>PUSHYA
|
|
||||||
|
>LDYA L.MSG.NA
|
||||||
|
bra .6
|
||||||
|
|
||||||
|
.5 >SYSCALL GetMemPtr
|
||||||
|
|
||||||
>PUSHBI 6
|
.6 >PUSHYA
|
||||||
|
|
||||||
|
>PUSHBI 7
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
.7 ldx FILE.ID
|
.7 ldx FILE.ID
|
||||||
inx
|
inx
|
||||||
inx
|
cpx #K.hFD.MAX+1
|
||||||
cpx #K.NOD.MAX*2+2
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
@ -101,8 +112,9 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .AZ "hFILE hFD Type Filepath"
|
MSG0 .AZ "hFILE hFD Cnt Type Filepath"
|
||||||
MSG1 .AZ "%3d %3d %5s %s\r\n"
|
MSG1 .AZ "%3d %3d %3d %5s %s\r\n"
|
||||||
|
MSG.NA .AZ "n/a"
|
||||||
FD.T.REG .AZ "REG"
|
FD.T.REG .AZ "REG"
|
||||||
FD.T.DIR .AZ "DIR"
|
FD.T.DIR .AZ "DIR"
|
||||||
FD.T.CDEV .AZ "CDEV"
|
FD.T.CDEV .AZ "CDEV"
|
||||||
|
|
|
@ -116,13 +116,10 @@ CS.RUN
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcs .71
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
cmp #S.FD.T.PIPE
|
cmp #S.FD.T.PIPE
|
||||||
bne .71
|
bne .71
|
||||||
|
|
|
@ -159,10 +159,7 @@ CS.RUN.CheckArgs jsr CS.RUN.NextArg
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcs .97
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -216,9 +213,7 @@ CS.RUN.OPEN >PUSHYA
|
||||||
CS.RUN.ISATTY ldy #S.PS.hStdOut
|
CS.RUN.ISATTY ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcc .9
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
|
|
@ -263,8 +263,8 @@ NSC.Write php
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NSC.Select
|
NSC.Select
|
||||||
* sta $C100
|
sta $C100
|
||||||
lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda $C104 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
|
|
|
@ -202,7 +202,7 @@ CheckArgs.A lda iArg
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>SYSCALL AToL
|
>SYSCALL AToL
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>PUSHWI 3600
|
>PUSHWI 3600
|
||||||
>FPU uMUL
|
>FPU uMUL
|
||||||
>PULLL Adjust
|
>PULLL Adjust
|
||||||
|
|
|
@ -160,10 +160,7 @@ CS.RUN.CheckArgs jsr CS.RUN.NextArg
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcs .97
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -217,9 +214,7 @@ CS.RUN.OPEN >PUSHYA
|
||||||
CS.RUN.ISATTY ldy #S.PS.hStdOut
|
CS.RUN.ISATTY ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcc .9
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
|
|
@ -276,7 +276,7 @@ CS.RUN.FILE jsr CS.RUN.BuildFilePath
|
||||||
>PUSHW ZPFullPath
|
>PUSHW ZPFullPath
|
||||||
>LDA.G hArcFile
|
>LDA.G hArcFile
|
||||||
tay
|
tay
|
||||||
lda Nod.Table.hName-2,y
|
lda hFDs.hName-1,y
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>SYSCALL StrCmp
|
>SYSCALL StrCmp
|
||||||
|
|
|
@ -147,10 +147,7 @@ CS.RUN.CheckArgs
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcs .97
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
|
|
@ -13,7 +13,7 @@ CL.Init >LDYAI 256
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CL.PrintPrompt >PUSHW L.PS1
|
CL.PrintPrompt >PUSHW L.PS1
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>SYSCALL Expand
|
>SYSCALL Expand
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ CMD.CD.0 >LDYA ZPArgVBufPtr
|
||||||
CMD.CD.HOME >LDYA L.HOME
|
CMD.CD.HOME >LDYA L.HOME
|
||||||
|
|
||||||
CMD.CD.YA >PUSHYA
|
CMD.CD.YA >PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs CMD.POPD.RTS
|
bcs CMD.POPD.RTS
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
@ -449,7 +449,7 @@ CMD.REN lda (ZPArgVBufPtr)
|
||||||
beq CMD.REN.CSYN
|
beq CMD.REN.CSYN
|
||||||
|
|
||||||
>PUSHW ZPArgVBufPrev old path
|
>PUSHW ZPArgVBufPrev old path
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs CMD.REN.CSYN
|
bcs CMD.REN.CSYN
|
||||||
|
|
||||||
|
|
|
@ -469,7 +469,7 @@ CORE.ArgV.Add lda #C.SPACE
|
||||||
>LDYA ZPArgVBufPtr
|
>LDYA ZPArgVBufPtr
|
||||||
>STYA ZPArgVBufPrev
|
>STYA ZPArgVBufPrev
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>SYSCALL Expand
|
>SYSCALL Expand
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -51,16 +51,7 @@ IO.Reset.In sec
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IO.Pipe.Out ldy #IO.DEVFIFO+4
|
IO.Pipe.Out >PUSHEA.G IO.DEVFIFO
|
||||||
ldx #4
|
|
||||||
|
|
||||||
.1 lda DEV,x
|
|
||||||
sta (pData),y
|
|
||||||
dey
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
>PUSHEA.G IO.DEVFIFO+5 leave room for /dev/
|
|
||||||
>PUSHWZ mode
|
>PUSHWZ mode
|
||||||
>SYSCALL MKFIFO
|
>SYSCALL MKFIFO
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
|
@ -586,8 +586,6 @@ EscChars .AS 'DBAC'
|
||||||
EscChars.Cnt .EQ *-EscChars
|
EscChars.Cnt .EQ *-EscChars
|
||||||
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
|
EscChars.Remap .DA #C.BS,#C.VT,#C.LF,#C.FS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV .AS "/dev/"
|
|
||||||
*--------------------------------------
|
|
||||||
CD.. .AZ ".."
|
CD.. .AZ ".."
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IN .AZ "IN"
|
IN .AZ "IN"
|
||||||
|
|
|
@ -258,15 +258,16 @@ CS.RUN.KILL >PUSHW L.MSG.PS
|
||||||
>SYSCALL Kill
|
>SYSCALL Kill
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.DEV ldx #1
|
CS.RUN.DEV ldx #K.hFD.MAX
|
||||||
|
|
||||||
|
.1 dex
|
||||||
stx Index
|
stx Index
|
||||||
|
lda hFDs,x
|
||||||
.1 lda Dev.Table-1,x
|
|
||||||
sta ZPPtr1
|
|
||||||
lda Dev.Table,x
|
|
||||||
sta ZPPtr1+1
|
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
|
>SYSCALL GetMemPtr
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
>PUSHW L.MSG.DEV
|
>PUSHW L.MSG.DEV
|
||||||
>PUSHB Index
|
>PUSHB Index
|
||||||
|
|
||||||
|
@ -280,12 +281,14 @@ CS.RUN.DEV ldx #1
|
||||||
|
|
||||||
>PUSHBI 3
|
>PUSHBI 3
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
.7 inc Index
|
|
||||||
inc Index
|
|
||||||
|
|
||||||
ldx Index
|
ldx Index
|
||||||
cpx #K.DEV.MAX*2+1
|
>PUSHB hFDs,x
|
||||||
|
>PUSHBI IOCTL.CLOSE
|
||||||
|
>PUSHWZ
|
||||||
|
>SYSCALL IOCTL
|
||||||
|
|
||||||
|
.7 ldx Index
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -198,7 +198,7 @@ CS.RUN.PRINT.RTS
|
||||||
CS.RUN.DUMP lda ArgFile
|
CS.RUN.DUMP lda ArgFile
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs CS.RUN.PRINT.RTS
|
bcs CS.RUN.PRINT.RTS
|
||||||
|
|
||||||
|
|
|
@ -119,7 +119,7 @@ CS.RUN inc ArgIndex
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
lda Nod.Table.hFD-2,x
|
lda hFDs-1,x
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
|
|
@ -135,10 +135,7 @@ CS.RUN.CheckArgs
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
|
|
||||||
lsr
|
lda hFDs-1,x
|
||||||
bcs .97
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
|
|
@ -1,26 +1,6 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.VER .EQ $5E00 94.0
|
|
||||||
K.ENV.SIZE .EQ 256
|
|
||||||
*--------------------------------------
|
|
||||||
K.MEM.ALIGN .EQ 16
|
|
||||||
K.MEM.nALIGNm1 .EQ $F0
|
|
||||||
*K.MEM.ALIGN .EQ 64
|
|
||||||
*K.MEM.nALIGNm1 .EQ $C0
|
|
||||||
*--------------------------------------
|
|
||||||
K.DEV.MAX .EQ 32
|
|
||||||
K.NOD.MAX .EQ 32
|
|
||||||
K.OF.MAX .EQ 32
|
|
||||||
K.PS.MAX .EQ 32
|
|
||||||
|
|
||||||
K.USR.MAX .EQ 16
|
|
||||||
K.FLT.MAX .EQ 4
|
|
||||||
|
|
||||||
K.EVT.MAX .EQ 4
|
|
||||||
K.TTY.MAX .EQ 8
|
|
||||||
K.IRQDEV.MAX .EQ 4
|
|
||||||
*--------------------------------------
|
|
||||||
ZPDRV .EQ $20 32 bytes
|
ZPDRV .EQ $20 32 bytes
|
||||||
ZPLIB .EQ $40 32 bytes
|
ZPLIB .EQ $40 32 bytes
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -1,27 +1,44 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
K.VER .EQ $5E00 94.0
|
||||||
|
K.ENV.SIZE .EQ 256
|
||||||
|
*--------------------------------------
|
||||||
|
K.MEM.ALIGN .EQ 16
|
||||||
|
K.MEM.nALIGNm1 .EQ $F0
|
||||||
|
*K.MEM.ALIGN .EQ 64
|
||||||
|
*K.MEM.nALIGNm1 .EQ $C0
|
||||||
|
*--------------------------------------
|
||||||
|
K.hFD.MAX .EQ 32
|
||||||
|
K.FLT.MAX .EQ 4
|
||||||
|
K.USR.MAX .EQ 8
|
||||||
|
|
||||||
|
K.PS.MAX .EQ 32
|
||||||
|
|
||||||
|
K.EVT.MAX .EQ 4
|
||||||
|
K.TTY.MAX .EQ 8
|
||||||
|
K.IRQDEV.MAX .EQ 4
|
||||||
|
*--------------------------------------
|
||||||
Mem.Table .EQ $0800
|
Mem.Table .EQ $0800
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Dev.Table .EQ $1300 K.DEV.MAX*2
|
hFDs .EQ $1300 K.hFD.MAX
|
||||||
|
hFDs.hName .EQ $1320 K.hFD.MAX
|
||||||
|
hFDs.oCnt .EQ $1340 K.hFD.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Nod.Table.hName .EQ $1340 K.NOD.MAX*2
|
Flt.Table.pftLO .EQ $1360 K.FLT.MAX
|
||||||
Nod.Table.hFD .EQ $1341
|
Flt.Table.pftHI .EQ $1364 K.FLT.MAX
|
||||||
|
Flt.Table.cbLO .EQ $1368 K.FLT.MAX
|
||||||
|
Flt.Table.cbHI .EQ $136C K.FLT.MAX
|
||||||
|
*--------------------------------------
|
||||||
|
S.Table.hSID .EQ $1370 K.USR.MAX
|
||||||
|
S.Table.hFile .EQ $1278 K.USR.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.Table.PID .EQ $1380 K.PS.MAX
|
PS.Table.PID .EQ $1380 K.PS.MAX
|
||||||
PS.Table.hPS .EQ $13A0 K.PS.MAX
|
PS.Table.hPS .EQ $13A0 K.PS.MAX
|
||||||
PS.Table.Hits .EQ $13C0 K.PS.MAX
|
PS.Table.Hits .EQ $13C0 K.PS.MAX
|
||||||
PS.Table.Stats .EQ $13E0 K.PS.MAX
|
PS.Table.Stats .EQ $13E0 K.PS.MAX
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.Table.hSID .EQ $1400 K.USR.MAX
|
A2osX.EndTables .EQ $1400
|
||||||
S.Table.hFile .EQ $1410 K.USR.MAX
|
|
||||||
*--------------------------------------
|
|
||||||
Flt.Table.pftLO .EQ $1420 K.FLT.MAX
|
|
||||||
Flt.Table.pftHI .EQ $1424 K.FLT.MAX
|
|
||||||
Flt.Table.cbLO .EQ $1428 K.FLT.MAX
|
|
||||||
Flt.Table.cbHI .EQ $142C K.FLT.MAX
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.EndTables .EQ $1430
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE inc/kernel.i
|
SAVE inc/kernel.i
|
||||||
|
|
|
@ -147,7 +147,7 @@ CIFS.OpenDir >STYA pPath resolved path
|
||||||
sta (ZPPtr2),y
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
>PUSHW pPath
|
>PUSHW pPath
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>PUSHB hFD
|
>PUSHB hFD
|
||||||
>SYSCALL2 mknod
|
>SYSCALL2 mknod
|
||||||
bcc .9
|
bcc .9
|
||||||
|
@ -480,18 +480,18 @@ CIFS2.ReadDir.FillBuf
|
||||||
CIFS.CloseReg
|
CIFS.CloseReg
|
||||||
CIFS.CloseDir tax
|
CIFS.CloseDir tax
|
||||||
|
|
||||||
lda Nod.Table.hName-2,x
|
lda hFDs.hName-1,x
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
phx
|
phx
|
||||||
|
|
||||||
stz Nod.Table.hName-2,x
|
stz hFDs.hName-1,x
|
||||||
>SYSCALL2 FreeMem
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
plx
|
plx
|
||||||
|
|
||||||
.1 lda Nod.Table.hFD-2,x
|
.1 lda hFDs-1,x
|
||||||
stz Nod.Table.hFD-2,x
|
stz hFDs-1,x
|
||||||
>SYSCALL2 FreeMem
|
>SYSCALL2 FreeMem
|
||||||
|
|
||||||
stz CIFS.Status
|
stz CIFS.Status
|
||||||
|
|
|
@ -524,12 +524,12 @@ CIFS.CallBack bit CIFS.Status
|
||||||
GetPFD tax
|
GetPFD tax
|
||||||
phx
|
phx
|
||||||
|
|
||||||
lda Nod.Table.hName-2,x
|
lda hFDs.hName-1,x
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA pPath
|
>STYA pPath
|
||||||
|
|
||||||
plx
|
plx
|
||||||
lda Nod.Table.hFD-2,x
|
lda hFDs-1,x
|
||||||
>SYSCALL2 GetMemPtr
|
>SYSCALL2 GetMemPtr
|
||||||
>STYA pFD
|
>STYA pFD
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -378,8 +378,8 @@ LDR.ClkDevScan php
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* sta $C300
|
sta $C100
|
||||||
lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda $C104 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
|
@ -1085,6 +1085,7 @@ LDR.PrintX bit RROMBNK2
|
||||||
|
|
||||||
pla
|
pla
|
||||||
sta INVFLG
|
sta INVFLG
|
||||||
|
sta CLRPAGE2 for screen holes proper access
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PALETTE.MAIN .HS 00.02.04.06.08.0A.0C.0E
|
PALETTE.MAIN .HS 00.02.04.06.08.0A.0C.0E
|
||||||
|
|
|
@ -15,8 +15,8 @@ NCLK.START php
|
||||||
|
|
||||||
sta SETCXROM
|
sta SETCXROM
|
||||||
|
|
||||||
* sta $C300
|
sta $C100
|
||||||
lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda $C104 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
|
|
|
@ -363,7 +363,7 @@ CS.RUN.CONF.COMLISTEN
|
||||||
rts
|
rts
|
||||||
CS.RUN.CONF.MSGFILE
|
CS.RUN.CONF.MSGFILE
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -374,7 +374,7 @@ CS.RUN.CONF.MSGFILE
|
||||||
|
|
||||||
CS.RUN.CONF.STARTUPFILE
|
CS.RUN.CONF.STARTUPFILE
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -104,8 +104,8 @@ CS.RUN lda hSocket
|
||||||
|
|
||||||
>PUSHB hSocket
|
>PUSHB hSocket
|
||||||
>PUSHB hSMBContext
|
>PUSHB hSMBContext
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>LIBCALL hLIBCIFS,LIBCIFS.SessionSetup
|
>LIBCALL hLIBCIFS,LIBCIFS.SessionSetup
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
|
@ -307,7 +307,7 @@ CS.RUN.CONF.LISTEN
|
||||||
.9 rts
|
.9 rts
|
||||||
CS.RUN.CONF.DOCUMENTROOT
|
CS.RUN.CONF.DOCUMENTROOT
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ NEW
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF sbin/initd
|
.TF sbin/initd
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
INITDDBG .EQ 1
|
INITDDBG .EQ 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB inc/macros.i
|
.INB inc/macros.i
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
|
@ -64,6 +64,8 @@ CS.RUN ldy #S.PS.PID
|
||||||
cmp #1
|
cmp #1
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
|
* bra .55
|
||||||
|
|
||||||
ldy #S.PS.hStdIn
|
ldy #S.PS.hStdIn
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL FEOF
|
>SYSCALL FEOF
|
||||||
|
@ -78,7 +80,7 @@ CS.RUN ldy #S.PS.PID
|
||||||
cmp #18 CTRL-R for Root mode
|
cmp #18 CTRL-R for Root mode
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
>LDYA L.MSG.CTRLR
|
.55 >LDYA L.MSG.CTRLR
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
|
@ -292,7 +292,7 @@ CS.RUN.DumpFile >PUSHYA
|
||||||
bcs .7
|
bcs .7
|
||||||
|
|
||||||
>PUSHW ZPBufPtr
|
>PUSHW ZPBufPtr
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>SYSCALL Expand
|
>SYSCALL Expand
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
|
|
|
@ -136,7 +136,7 @@ FilterMatch.NextPtr2
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
InitSrcDirYA >PUSHYA
|
InitSrcDirYA >PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs FilterMatch.RTS
|
bcs FilterMatch.RTS
|
||||||
|
|
||||||
|
@ -288,7 +288,7 @@ ResetSrcDir jsr GethDIR
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DO X.COPY.TO.DEST=1
|
.DO X.COPY.TO.DEST=1
|
||||||
InitDstDirYA >PUSHYA
|
InitDstDirYA >PUSHYA
|
||||||
>PUSHWI 0 Allocate
|
>PUSHWZ Allocate
|
||||||
>SYSCALL RealPath
|
>SYSCALL RealPath
|
||||||
bcs InitSrcDirYA.RTS
|
bcs InitSrcDirYA.RTS
|
||||||
|
|
||||||
|
|
|
@ -89,7 +89,7 @@ K.ArgV tax save requested arg#
|
||||||
* A = Arg count
|
* A = Arg count
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
|
K.Arg2ArgV >PULLW ZPPtr2 Get target buffer
|
||||||
>PUSHWI 0 allocate a new buffer
|
>PUSHWZ allocate a new buffer
|
||||||
jsr K.Expand args on stack
|
jsr K.Expand args on stack
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
|
|
@ -115,14 +115,16 @@ CORE.Events jsr CORE.GetEvents
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
sta KBDSTROBE
|
sta KBDSTROBE
|
||||||
|
|
||||||
and #$0F
|
and #$0F
|
||||||
tax
|
|
||||||
lda A2osX.SCRNDEVS,x Get DevID
|
|
||||||
beq .8 No device claimed this screen
|
|
||||||
|
|
||||||
cmp A2osX.ASCREEN Same as active screen...nothing to do
|
cmp A2osX.ASCREEN Same as active screen...nothing to do
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
|
tax
|
||||||
|
lda A2osX.SCRNDEVS,x Get DevID
|
||||||
|
beq .8 No device claimed this screen
|
||||||
|
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI IOCTL.CONTROL request
|
>PUSHBI IOCTL.CONTROL request
|
||||||
>PUSHWZ Param
|
>PUSHWZ Param
|
||||||
|
@ -216,8 +218,8 @@ CORE.GetEvents lda #Evt.Table
|
||||||
lda IRQ.Mode
|
lda IRQ.Mode
|
||||||
eor #$C0
|
eor #$C0
|
||||||
sta IRQ.Mode
|
sta IRQ.Mode
|
||||||
ldx A2osX.ASCREEN
|
|
||||||
cpx #3 devID 3 is /DEV/CONSOLE
|
ldx A2osX.ASCREEN /DEV/CONSOLE
|
||||||
bne .22
|
bne .22
|
||||||
|
|
||||||
sta SYS.BASL0+38
|
sta SYS.BASL0+38
|
||||||
|
|
|
@ -116,7 +116,7 @@ IO.Open.FLAGS .BS 1
|
||||||
IO.Open.TYPE .BS 1
|
IO.Open.TYPE .BS 1
|
||||||
IO.Open.AUXTYPE .BS 2
|
IO.Open.AUXTYPE .BS 2
|
||||||
IO.hFD .BS 1
|
IO.hFD .BS 1
|
||||||
IO.hDevNod .BS 1
|
IO.hFILE .BS 1
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SaveSM .EQ $100 Aux
|
SaveSM .EQ $100 Aux
|
||||||
|
@ -159,9 +159,9 @@ Mem.LastSlot .EQ $0806
|
||||||
Z80CODE .EQ $1000 (00000h) Up To $10FF
|
Z80CODE .EQ $1000 (00000h) Up To $10FF
|
||||||
Z80STACK .EQ $10FF (000FFh) Down to $1000
|
Z80STACK .EQ $10FF (000FFh) Down to $1000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.Buf256 .EQ $1100
|
K.Buf256 .EQ $1100 512 bytes....
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IOBuf .EQ $1200
|
K.IOBuf .EQ $1200 ....for ReadDir
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mem.MHiMem .EQ A2osX.SYSCALL
|
Mem.MHiMem .EQ A2osX.SYSCALL
|
||||||
Mem.XLoMem .EQ $1000
|
Mem.XLoMem .EQ $1000
|
||||||
|
|
|
@ -6,84 +6,63 @@ NEW
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* CC = OK, CS = ERROR
|
* CC = OK, CS = ERROR
|
||||||
* Y,A = FD
|
* Y,A = FD
|
||||||
* X = hDev
|
* X = hFD
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.GetDevByName >STYA ZPPtr1 requested dev name
|
K.GetDevByName >STYA ZPPtr1 requested dev name
|
||||||
|
|
||||||
ldx #1
|
ldx #1
|
||||||
|
|
||||||
.1 lda Dev.Table,x
|
.1 lda hFDs-1,x
|
||||||
beq .4
|
beq .7
|
||||||
|
|
||||||
sta pFD+1
|
sta IO.hFD
|
||||||
pha
|
jsr K.GetMemPtr
|
||||||
|
>STYA pFD
|
||||||
|
|
||||||
lda Dev.Table-1,x
|
lda hFDs.hName-1,x
|
||||||
sta pFD
|
bne .2
|
||||||
|
|
||||||
clc
|
|
||||||
adc #S.FD.DEV
|
|
||||||
tay
|
|
||||||
|
|
||||||
pla
|
|
||||||
|
|
||||||
adc /S.FD.DEV
|
|
||||||
|
|
||||||
jsr .8
|
|
||||||
bcs .3
|
|
||||||
|
|
||||||
jsr DEV.GetPDrv
|
jsr DEV.GetPDrv
|
||||||
|
|
||||||
>LDYA pFD X = hDevNod
|
lda pFD
|
||||||
|
clc
|
||||||
|
adc #S.FD.DEV
|
||||||
|
sta ZPPtr2
|
||||||
|
|
||||||
* clc
|
lda pFD+1
|
||||||
rts
|
adc /S.FD.DEV
|
||||||
|
sta ZPPtr2+1
|
||||||
|
bra .3
|
||||||
|
|
||||||
|
.2 jsr K.GetMemPtr
|
||||||
|
>STYA ZPPtr2
|
||||||
|
|
||||||
.3 inx no....loop
|
lda (ZPPtr2)
|
||||||
inx
|
cmp #'/' REG/DIR
|
||||||
cpx #K.DEV.MAX*2+1
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.4 ldx #2
|
|
||||||
|
|
||||||
.5 lda Nod.Table.hFD-2,x
|
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
lda Nod.Table.hName-2,x
|
.3 ldy #$ff
|
||||||
beq .7
|
|
||||||
jsr K.GetMemPtr
|
|
||||||
|
|
||||||
jsr .8
|
.4 iny
|
||||||
bcs .7
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x
|
|
||||||
jmp K.GetMemPtr Y,A = pPD, X = hDevNod
|
|
||||||
|
|
||||||
.7 inx
|
|
||||||
inx
|
|
||||||
cpx #K.NOD.MAX*2+2
|
|
||||||
bne .5
|
|
||||||
|
|
||||||
lda #MLI.E.NODEV
|
|
||||||
* sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
.8 >STYA ZPPtr2
|
|
||||||
|
|
||||||
ldy #$ff
|
|
||||||
|
|
||||||
.80 iny
|
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp (ZPPtr2),y
|
cmp (ZPPtr2),y
|
||||||
bne .89
|
bne .7
|
||||||
|
|
||||||
eor #0
|
eor #0
|
||||||
bne .80
|
bne .4
|
||||||
|
|
||||||
|
stx IO.hFILE
|
||||||
|
>LDYA pFD
|
||||||
|
ldx IO.hFD
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.89 sec
|
.7 inx no....loop
|
||||||
|
cpx #K.hFD.MAX+1
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #MLI.E.NODEV
|
||||||
|
* sec
|
||||||
|
|
||||||
K.GetDev.9 rts
|
K.GetDev.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -116,20 +95,21 @@ DEV.GetStatus sta K.S.IOCTL+S.IOCTL.S
|
||||||
>LDYAI K.S.IOCTL
|
>LDYAI K.S.IOCTL
|
||||||
ldx #IOCTL.STATUS
|
ldx #IOCTL.STATUS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.pDrvJmp jmp (pDrv)
|
jmp (pDrv)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.OPEN ldx #IOCTL.OPEN
|
DEV.OPEN ldx #IOCTL.OPEN
|
||||||
lda IO.hDevNod
|
lda IO.hFD
|
||||||
jsr DEV.pDrvJmp
|
jsr DEV.pDrvJmp
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda IO.hDevNod
|
lda IO.hFD
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.CLOSE ldx #IOCTL.CLOSE
|
DEV.CLOSE ldx #IOCTL.CLOSE
|
||||||
lda IO.hDevNod
|
lda IO.hFD
|
||||||
jmp (pDrv)
|
|
||||||
|
DEV.pDrvJmp jmp (pDrv)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.READ ldx #IOCTL.READ
|
DEV.READ ldx #IOCTL.READ
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
|
@ -162,19 +142,10 @@ DEV.WRITE ldx #IOCTL.WRITE
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
|
|
||||||
ldx #1
|
jsr DEV.GetFreeFD
|
||||||
|
bcs .9
|
||||||
|
|
||||||
.10 lda Dev.Table,x
|
stx IO.hFILE
|
||||||
beq .11
|
|
||||||
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
cpx #K.DEV.MAX*2+1
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
bra .9
|
|
||||||
|
|
||||||
.11 stx IO.hDevNod
|
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
ldx #S.FD.DEV
|
ldx #S.FD.DEV
|
||||||
|
@ -188,16 +159,19 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
tay
|
tay
|
||||||
lda #0
|
lda #0
|
||||||
|
|
||||||
jsr MEM.GetKBuf
|
jsr K.GetMem
|
||||||
bcs .99
|
bcs .9
|
||||||
|
|
||||||
>STYA pFD
|
>STYA pFD
|
||||||
>STYA .4+1
|
>STYA .4+1
|
||||||
|
|
||||||
ldx IO.hDevNod
|
stx IO.hFD
|
||||||
sta Dev.Table,x
|
|
||||||
tya
|
txa
|
||||||
sta Dev.Table-1,x
|
|
||||||
|
ldx IO.hFILE
|
||||||
|
sta hFDs-1,x
|
||||||
|
stz hFDs.hName-1,x
|
||||||
|
|
||||||
ldy #S.FD.DEV-1
|
ldy #S.FD.DEV-1
|
||||||
|
|
||||||
|
@ -222,7 +196,7 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
|
|
||||||
lda #S.IOCTL.S.STATUS
|
lda #S.IOCTL.S.STATUS
|
||||||
jsr DEV.GetStatus
|
jsr DEV.GetStatus
|
||||||
bcs .99
|
bcs .9
|
||||||
|
|
||||||
lda K.IOBuf Get Status byte
|
lda K.IOBuf Get Status byte
|
||||||
bit #S.DIB.S.IRQ
|
bit #S.DIB.S.IRQ
|
||||||
|
@ -238,9 +212,9 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
cpx #K.IRQDEV.MAX*2+1
|
cpx #K.IRQDEV.MAX*2+1
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
.9 lda #E.OOH
|
|
||||||
* sec
|
* sec
|
||||||
.99 rts
|
|
||||||
|
.9 rts
|
||||||
|
|
||||||
.7 ldy #IOCTL.IRQ+4
|
.7 ldy #IOCTL.IRQ+4
|
||||||
lda (pDRV),y
|
lda (pDRV),y
|
||||||
|
@ -249,13 +223,13 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
lda (pDRV),y
|
lda (pDRV),y
|
||||||
sta IRQ.Vectors+1,x
|
sta IRQ.Vectors+1,x
|
||||||
|
|
||||||
.8 lda IO.hDevNod
|
.8 lda IO.hFD
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # IOCTL
|
* # IOCTL
|
||||||
* ## C
|
* ## C
|
||||||
* `int ioctl(short int DevID, short int request, void *param);`
|
* `int ioctl(short int hFD, short int request, void *param);`
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* `>PUSHB hDEV`
|
* `>PUSHB hDEV`
|
||||||
* `>PUSHB request`
|
* `>PUSHB request`
|
||||||
|
@ -264,11 +238,10 @@ K.MKDev jsr SHARED.PullP2P1 ptr2=name,tr1=fd
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
* Y,A = ...
|
* Y,A = ...
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.IOCTL ldy #3 hDev
|
K.IOCTL ldy #3 hFD
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
|
||||||
jsr DEV.GetPFD
|
jsr DEV.GetPFD
|
||||||
bcs .9
|
|
||||||
|
|
||||||
ldy #2 request
|
ldy #2 request
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
@ -279,35 +252,12 @@ K.IOCTL ldy #3 hDev
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
jmp (pDrv)
|
jmp (pDrv)
|
||||||
|
|
||||||
.9 >RET 4
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DEV.GetPFD sta IO.hDevNod
|
DEV.GetPFD sta IO.hFD
|
||||||
|
|
||||||
tax
|
|
||||||
|
|
||||||
lsr
|
|
||||||
bcs .1
|
|
||||||
|
|
||||||
lda Nod.Table.hFD-2,x empty slot ?
|
|
||||||
beq DEV.GetPFD.9
|
|
||||||
|
|
||||||
sta IO.hFD
|
|
||||||
|
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
>STYA pFD
|
>STYA pFD
|
||||||
|
|
||||||
* clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 stz IO.hFD
|
|
||||||
|
|
||||||
ldy Dev.Table-1,x
|
|
||||||
lda Dev.Table,x
|
|
||||||
beq DEV.GetPFD.9
|
|
||||||
|
|
||||||
>STYA pFD
|
|
||||||
|
|
||||||
DEV.GetPDrv ldy #S.FD.DEV.DRVPTR
|
DEV.GetPDrv ldy #S.FD.DEV.DRVPTR
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta pDRV
|
sta pDRV
|
||||||
|
@ -315,20 +265,17 @@ DEV.GetPDrv ldy #S.FD.DEV.DRVPTR
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
sta pDRV+1
|
sta pDRV+1
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
DEV.GetPFD.9 lda #E.INVH
|
|
||||||
sec
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* X = 0 > REG
|
DEV.MkFD sta .8+1 S.FD.T
|
||||||
* X = 1 > DIR
|
|
||||||
* X = 2 > PIPE
|
|
||||||
*--------------------------------------
|
|
||||||
DEV.MkFD stx .8+1
|
|
||||||
|
|
||||||
ldy DEV.MkFD.Y,x
|
jsr DEV.GetFreeFD
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
stx IO.hFILE
|
||||||
|
|
||||||
|
ldy #16 MAX=16 for S.FD.DIR
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
ldx #S.MEM.F.INIT0+S.MEM.F.FD
|
ldx #S.MEM.F.INIT0+S.MEM.F.FD
|
||||||
jsr MEM.GetMem.YAX
|
jsr MEM.GetMem.YAX
|
||||||
|
@ -336,16 +283,43 @@ DEV.MkFD stx .8+1
|
||||||
|
|
||||||
>STYA pFD
|
>STYA pFD
|
||||||
stx IO.hFD
|
stx IO.hFD
|
||||||
|
|
||||||
|
txa
|
||||||
|
|
||||||
|
.7 ldx IO.hFILE
|
||||||
|
|
||||||
.8 ldx #$ff SELF MODIFIED
|
sta hFDs-1,x
|
||||||
lda DEV.MkFD.T,x
|
stz hFDs.hName-1,x
|
||||||
|
|
||||||
|
.8 lda #$ff SELF MODIFIED
|
||||||
sta (pFD) X = hFD, A = T
|
sta (pFD) X = hFD, A = T
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
DEV.GetFreeFD ldx #1
|
||||||
|
|
||||||
DEV.MkFD.Y .DA #S.FD.REG,#S.FD.DIR,#S.FD.PIPE
|
clc
|
||||||
DEV.MkFD.T .DA #S.FD.T.REG,#S.FD.T.DIR,#S.FD.T.PIPE
|
|
||||||
|
.1 lda hFDs-1,x
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
inx
|
||||||
|
cpx #K.hFD.MAX+1
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #E.OOH
|
||||||
|
* sec
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
DEV.hFDFree lda IO.hFD
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
jmp K.FreeMem
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.dev
|
SAVE usr/src/sys/kernel.s.dev
|
||||||
|
|
|
@ -16,7 +16,10 @@ NEW
|
||||||
K.OpenDir jsr PFT.CheckPathYA
|
K.OpenDir jsr PFT.CheckPathYA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp FS.OPEN.DIR
|
jsr FS.OPEN.DIR
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jmp K.FOpen.REGDIR
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -82,9 +85,6 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||||
jsr K.ReadDir.GetBufYA
|
jsr K.ReadDir.GetBufYA
|
||||||
bcs DIRENT.RTS
|
bcs DIRENT.RTS
|
||||||
|
|
||||||
lda #16
|
|
||||||
sta K.ReadDir.EC
|
|
||||||
|
|
||||||
.1 lda (ZPPtr2)
|
.1 lda (ZPPtr2)
|
||||||
and #$0F
|
and #$0F
|
||||||
beq .4
|
beq .4
|
||||||
|
@ -144,10 +144,6 @@ K.ReadDir.ROOT ldy #S.FD.DIR.FC did we already returned something ?
|
||||||
clc
|
clc
|
||||||
adc #16
|
adc #16
|
||||||
sta ZPPtr2
|
sta ZPPtr2
|
||||||
bcc .5
|
|
||||||
inc ZPPtr2+1
|
|
||||||
|
|
||||||
.5 dec K.ReadDir.EC
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr FS.ClrStat
|
jsr FS.ClrStat
|
||||||
|
@ -190,27 +186,22 @@ K.ReadDir.DEV jmp DIRENT.EOF TODO : /dev
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||||
|
|
||||||
>LDYAI 512 Get a 512 bytes buffer for reading dir...
|
lda /K.Buf256 read in
|
||||||
jsr K.GetMem
|
|
||||||
bcs .99
|
stz K.MLI.PARAMS+2 For reading
|
||||||
|
sta K.MLI.PARAMS+3 For reading
|
||||||
|
|
||||||
|
ldy #4 Skip 4 bytes linked list
|
||||||
|
sty ZPPtr2 PTR to Buffer for PASS #1
|
||||||
|
sty ZPPtr3 PTR to Buffer for PASS #2
|
||||||
|
|
||||||
stx K.ReadDir.hBlk
|
|
||||||
>STYA K.MLI.PARAMS+2 For reading
|
|
||||||
pha
|
|
||||||
tya
|
|
||||||
* clc CC from K.GetMem
|
|
||||||
adc #4 Skip 4 bytes linked list
|
|
||||||
sta ZPPtr2 PTR to Buffer for PASS #1
|
|
||||||
sta ZPPtr3 PTR to Buffer for PASS #2
|
|
||||||
pla
|
|
||||||
adc #0
|
|
||||||
sta ZPPtr2+1 PTR to Buffer for PASS #1
|
sta ZPPtr2+1 PTR to Buffer for PASS #1
|
||||||
sta ZPPtr3+1 PTR to Buffer for PASS #2
|
sta ZPPtr3+1 PTR to Buffer for PASS #2
|
||||||
|
|
||||||
>LDYAI 512
|
>LDYAI 512
|
||||||
>STYA K.MLI.PARAMS+4
|
>STYA K.MLI.PARAMS+4
|
||||||
>MLICALL MLIREAD Read A block from directory
|
>MLICALL MLIREAD Read A block from directory
|
||||||
bcs .98
|
bcs .99
|
||||||
|
|
||||||
ldy #S.FD.DIR.EL Check if first run....
|
ldy #S.FD.DIR.EL Check if first run....
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
|
@ -256,8 +247,6 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||||
inc K.ReadDir.EC+1 ...and ProDOS does NOT include header entry in EC
|
inc K.ReadDir.EC+1 ...and ProDOS does NOT include header entry in EC
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.98 jmp K.ReadDir.FreeBlk
|
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
||||||
.2 ldy #S.FD.DIR.EL+3
|
.2 ldy #S.FD.DIR.EL+3
|
||||||
|
@ -281,8 +270,11 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||||
bne .5
|
bne .5
|
||||||
|
|
||||||
iny
|
iny
|
||||||
beq .98 no...exit
|
clc
|
||||||
|
beq .99 no...exit
|
||||||
|
*--------------------------------------
|
||||||
* pass #1 compute BufSize...
|
* pass #1 compute BufSize...
|
||||||
|
*--------------------------------------
|
||||||
.5 lda K.ReadDir.EPB
|
.5 lda K.ReadDir.EPB
|
||||||
sta K.ReadDir.ECIB
|
sta K.ReadDir.ECIB
|
||||||
|
|
||||||
|
@ -332,13 +324,17 @@ K.ReadDir.DIR1 lda (ZPPtr2) X = EntryCount In This Block
|
||||||
|
|
||||||
.8 dec K.ReadDir.ECIB
|
.8 dec K.ReadDir.ECIB
|
||||||
bne K.ReadDir.DIR1
|
bne K.ReadDir.DIR1
|
||||||
|
*--------------------------------------
|
||||||
* pass #2 Fill Buffer...(ZPPtr1 & Ptr2 can now be trashed)
|
* pass #2 Fill Buffer...(ZPPtr1 & Ptr2 can now be trashed)
|
||||||
K.ReadDir.DIR2 jsr K.ReadDir.GetBuf
|
*--------------------------------------
|
||||||
bcs K.ReadDir.FreeBlk
|
K.ReadDir.DIR2 lda K.ReadDir.EPB
|
||||||
|
|
||||||
lda K.ReadDir.EPB
|
|
||||||
sta K.ReadDir.ECIB
|
sta K.ReadDir.ECIB
|
||||||
|
|
||||||
|
jsr K.ReadDir.GetBuf
|
||||||
|
bcc .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
beq .7 Empty slot, skip
|
beq .7 Empty slot, skip
|
||||||
|
|
||||||
|
@ -393,27 +389,19 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf
|
||||||
dex
|
dex
|
||||||
bpl .81
|
bpl .81
|
||||||
|
|
||||||
jsr K.ReadDir.FreeBlk
|
|
||||||
|
|
||||||
K.ReadDir.EXIT ldx K.ReadDir.hBuf
|
K.ReadDir.EXIT ldx K.ReadDir.hBuf
|
||||||
txa
|
txa
|
||||||
jmp K.GetMemPtr
|
jmp K.GetMemPtr
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.FreeBlk
|
|
||||||
pha
|
|
||||||
lda K.ReadDir.hBlk
|
|
||||||
jsr K.FreeMem
|
|
||||||
pla
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
K.ReadDir.GetBuf
|
K.ReadDir.GetBuf
|
||||||
>LDYA K.ReadDir.BufSize Get a BufSize bytes buffer for storing results
|
>LDYA K.ReadDir.BufSize Get a BufSize bytes buffer for storing results
|
||||||
K.ReadDir.GetBufYA
|
K.ReadDir.GetBufYA
|
||||||
jsr K.GetMem0 make sure 0 filled
|
jsr K.GetMem0 make sure 0 filled
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx K.ReadDir.hBuf
|
stx K.ReadDir.hBuf
|
||||||
>STYA ZPPtr4
|
>STYA ZPPtr4
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ReadDir.ADD. ldx #1 filename="1."
|
K.ReadDir.ADD. ldx #1 filename="1."
|
||||||
|
|
|
@ -3,13 +3,13 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FS.OPEN.REG >MLICALL MLIGETFILEINFO
|
FS.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||||
bcs .10
|
bcs .10
|
||||||
|
|
||||||
lda IO.Open.TYPE Already Exists
|
lda IO.Open.TYPE Already Exists
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
cmp K.MLI.PARAMS+S.FI.T
|
cmp K.MLI.PARAMS+S.FI.T
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
lda #MLI.E.INCFF
|
lda #MLI.E.INCFF
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
@ -28,12 +28,12 @@ FS.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||||
jsr FS.CREATE
|
jsr FS.CREATE
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.2 ldx #0
|
.2 lda #S.FD.T.REG
|
||||||
jsr DEV.MkFD
|
jsr DEV.MkFD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr FS.MLIOPEN
|
jsr FS.MLIOPEN
|
||||||
bcs .99
|
bcs FS.OPEN.ERR
|
||||||
|
|
||||||
lda IO.Open.FLAGS
|
lda IO.Open.FLAGS
|
||||||
bit #O.WRONLY
|
bit #O.WRONLY
|
||||||
|
@ -49,37 +49,33 @@ FS.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.3 >MLICALL MLIGETEOF
|
.3 >MLICALL MLIGETEOF
|
||||||
bcs .99
|
bcs FS.OPEN.ERR
|
||||||
|
|
||||||
>MLICALL MLISETMARK
|
>MLICALL MLISETMARK
|
||||||
.4 bcs .99
|
.4 bcs FS.OPEN.ERR
|
||||||
|
|
||||||
.5 lda IO.Open.FLAGS
|
.5 lda IO.Open.FLAGS
|
||||||
and #O.TEXT Text Mode ?
|
and #O.TEXT Text Mode ?
|
||||||
beq .6
|
beq .8
|
||||||
|
|
||||||
lda #$FF
|
lda #$FF
|
||||||
sta K.MLI.PARAMS+2
|
sta K.MLI.PARAMS+2
|
||||||
lda #C.CR
|
lda #C.CR
|
||||||
sta K.MLI.PARAMS+3
|
sta K.MLI.PARAMS+3
|
||||||
>MLICALL MLINEWLINE
|
>MLICALL MLINEWLINE
|
||||||
bcs .99
|
bcs FS.OPEN.ERR
|
||||||
|
|
||||||
.6 >LDYAI K.MLI.PATH+1
|
|
||||||
>STYA ZPPtr1
|
|
||||||
jsr K.MkNod.I
|
|
||||||
bcc .8
|
|
||||||
|
|
||||||
.99 pha Save Error Code
|
|
||||||
jsr FS.CLOSE.REG
|
|
||||||
pla
|
|
||||||
sec
|
|
||||||
|
|
||||||
.8
|
|
||||||
|
|
||||||
|
.8 lda IO.hFD
|
||||||
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FS.OPEN.DIR ldx #1
|
FS.OPEN.ERR pha Save Error Code
|
||||||
|
jsr FS.CLOSE.REGDIR
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
FS.OPEN.DIR lda #S.FD.T.DIR
|
||||||
jsr DEV.MkFD
|
jsr DEV.MkFD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -88,31 +84,23 @@ FS.OPEN.DIR ldx #1
|
||||||
|
|
||||||
>MLICALL MLIGETFILEINFO
|
>MLICALL MLIGETFILEINFO
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda K.MLI.PARAMS+S.FI.T
|
lda K.MLI.PARAMS+S.FI.T
|
||||||
cmp #S.FI.T.DIR
|
cmp #S.FI.T.DIR
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
jsr FS.MLIOPEN
|
|
||||||
bcs .98
|
|
||||||
|
|
||||||
.8 >LDYAI K.MLI.PATH+1
|
|
||||||
>STYA ZPPtr1
|
|
||||||
jsr K.MkNod.I
|
|
||||||
bcc .9
|
|
||||||
|
|
||||||
.98 pha Save Error Code
|
jsr FS.MLIOPEN
|
||||||
jsr FS.CLOSE.DIR
|
bcs FS.OPEN.ERR
|
||||||
pla
|
|
||||||
sec
|
.8 lda IO.hFD
|
||||||
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #MLI.E.UNSUPST
|
.99 lda #MLI.E.UNSUPST
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FS.CLOSE.REG
|
FS.CLOSE.REGDIR ldy #S.FD.REG.REF
|
||||||
FS.CLOSE.DIR ldy #S.FD.REG.REF
|
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
|
@ -122,11 +110,11 @@ FS.CLOSE.DIR ldy #S.FD.REG.REF
|
||||||
|
|
||||||
.1 ldy #S.FD.REG.IOBUF
|
.1 ldy #S.FD.REG.IOBUF
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
beq .2
|
beq .8
|
||||||
|
|
||||||
jsr K.FreeMem
|
jsr K.FreeMem
|
||||||
|
|
||||||
.2 jmp DEV.Destroy
|
.8 jmp DEV.hFDFree
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FS.READ.REG ldx #MLIREAD
|
FS.READ.REG ldx #MLIREAD
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
|
@ -138,7 +126,7 @@ FS.WRITE.REG ldx #MLIWRITE
|
||||||
sta K.MLI.PARAMS+1
|
sta K.MLI.PARAMS+1
|
||||||
>PULLW K.MLI.PARAMS+4
|
>PULLW K.MLI.PARAMS+4
|
||||||
>PULLW K.MLI.PARAMS+2
|
>PULLW K.MLI.PARAMS+2
|
||||||
|
|
||||||
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
|
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
|
||||||
jsr GP.MLICall
|
jsr GP.MLICall
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -284,16 +272,16 @@ FS.DirEnt2Stat jsr FS.ClrStat
|
||||||
ldy #S.FIEX.AUXTYPE
|
ldy #S.FIEX.AUXTYPE
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
sta K.S.STAT+S.STAT.BLOCKS
|
sta K.S.STAT+S.STAT.BLOCKS
|
||||||
asl
|
asl
|
||||||
sta K.S.STAT+S.STAT.SIZE+1
|
sta K.S.STAT+S.STAT.SIZE+1
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
sta K.S.STAT+S.STAT.BLOCKS+1
|
sta K.S.STAT+S.STAT.BLOCKS+1
|
||||||
rol
|
rol
|
||||||
sta K.S.STAT+S.STAT.SIZE+2
|
sta K.S.STAT+S.STAT.SIZE+2
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
rol K.S.STAT+S.STAT.SIZE+3
|
rol K.S.STAT+S.STAT.SIZE+3
|
||||||
|
|
||||||
|
|
|
@ -155,7 +155,7 @@ Kernel.Init3 sta SETALTZP
|
||||||
jsr SysScrInit
|
jsr SysScrInit
|
||||||
bcs *
|
bcs *
|
||||||
|
|
||||||
sta CLRMIXED
|
* sta CLRMIXED
|
||||||
|
|
||||||
>PUSHWI DEV.CONSOLE
|
>PUSHWI DEV.CONSOLE
|
||||||
>PUSHBI O.RDWR
|
>PUSHBI O.RDWR
|
||||||
|
@ -287,18 +287,14 @@ MemMgrInit >LDYAI Mem.MHiMem
|
||||||
stz Mem.LastSlot Reserve Slot #0
|
stz Mem.LastSlot Reserve Slot #0
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
|
|
||||||
ldx #K.DEV.MAX*2-1
|
ldx #K.hFD.MAX-1
|
||||||
|
|
||||||
.1 stz Dev.Table,x
|
.1 stz hFDs,x
|
||||||
|
stz hFDs.hName,x
|
||||||
|
stz hFDs.oCnt,x
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
ldx #K.NOD.MAX*2-1
|
|
||||||
|
|
||||||
.2 stz Nod.Table.hName,x
|
|
||||||
dex
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
ldx #K.PS.MAX*4-1
|
ldx #K.PS.MAX*4-1
|
||||||
|
|
||||||
.3 stz PS.Table.PID,x
|
.3 stz PS.Table.PID,x
|
||||||
|
@ -361,24 +357,30 @@ SysScrInit.TTYPtrs
|
||||||
sec
|
sec
|
||||||
sbc #80*24+S.DCB.TTY
|
sbc #80*24+S.DCB.TTY
|
||||||
sta FD.TTY+S.FD.DEV.DCBPTR
|
sta FD.TTY+S.FD.DEV.DCBPTR
|
||||||
sta .1+1
|
sta ZPPtr1
|
||||||
tay
|
tay
|
||||||
|
|
||||||
lda FD.TTY+S.FD.DEV.DCBPTR+1
|
lda FD.TTY+S.FD.DEV.DCBPTR+1
|
||||||
sbc /80*24+S.DCB.TTY
|
sbc /80*24+S.DCB.TTY
|
||||||
sta FD.TTY+S.FD.DEV.DCBPTR+1
|
sta FD.TTY+S.FD.DEV.DCBPTR+1
|
||||||
sta .1+2
|
sta ZPPtr1+1
|
||||||
|
|
||||||
ldx #S.DCB.TTY-1
|
|
||||||
|
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
.1 stz $ffff,x SELF MODIFIED
|
|
||||||
dex
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
>STYA Mem.HiMem
|
>STYA Mem.HiMem
|
||||||
>STYA Mem.Free
|
>STYA Mem.Free
|
||||||
|
|
||||||
|
ldy #S.DCB.TTY-1
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.1 sta (ZPPtr1),y
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda FD.TTY+S.FD.DEV.DEVID
|
||||||
|
sta (ZPPtr1)
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
@ -1123,8 +1125,8 @@ TskMgrInit >LDYAI MSG.TSK
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
|
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
>SYSCALL OpenSession
|
>SYSCALL OpenSession
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -1321,12 +1323,13 @@ FD.NULL .DA #S.FD.T.CDEV
|
||||||
.DA DRV.NULL
|
.DA DRV.NULL
|
||||||
.DA 0 DCBPTR
|
.DA 0 DCBPTR
|
||||||
.DA 0 BUFPTR
|
.DA 0 BUFPTR
|
||||||
|
*--------------------------------------
|
||||||
FD.NULL.NAME .AZ "null" NAME
|
FD.NULL.NAME .AZ "null" NAME
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
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 #1 DEVID
|
.DA #0 DEVID
|
||||||
.DA 0 BUSPTR
|
.DA 0 BUSPTR
|
||||||
.DA DRV.TERM
|
.DA DRV.TERM
|
||||||
.BS 2 DCBPTR
|
.BS 2 DCBPTR
|
||||||
|
@ -1343,6 +1346,7 @@ FD.BDEV .DA #S.FD.T.BDEV
|
||||||
.BS 2 DRVPTR
|
.BS 2 DRVPTR
|
||||||
.DA 0 DCBPTR
|
.DA 0 DCBPTR
|
||||||
.DA 0 BUFPTR
|
.DA 0 BUFPTR
|
||||||
|
*--------------------------------------
|
||||||
FD.BDEV.NAME .AZ "s1d1"
|
FD.BDEV.NAME .AZ "s1d1"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -428,7 +428,7 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA #$C0 NewStkObj
|
.DA #$C0 NewStkObj
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA #0 LoadStkObj
|
.DA #RRAMWRAMBNK2 LoadStkObj
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA #$C0 GetStkObjPtr
|
.DA #$C0 GetStkObjPtr
|
||||||
.DA #0
|
.DA #0
|
||||||
|
|
|
@ -472,42 +472,6 @@ Mem.IncRefCnt ldy #S.MEM.REFCNT
|
||||||
* A = EC
|
* A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # LoadStkObj
|
|
||||||
* Load a file in AUX memory (Stock Objects)
|
|
||||||
* PUSHW = PATH (Handled by....
|
|
||||||
* PUSHB = MODE ...
|
|
||||||
* PUSHB = TYPE ...
|
|
||||||
* PUSHW = AUXTYPE ...FOpen)
|
|
||||||
* ## RETURN VALUE
|
|
||||||
* Y,A = File Length
|
|
||||||
* X = hMem of Loaded Object in AUX mem
|
|
||||||
*\--------------------------------------
|
|
||||||
K.LoadStkObj >SYSCALL2 LoadTxtFile To get ending \0
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
stx .90+1
|
|
||||||
sty .81+1 Save File Len
|
|
||||||
sta .82+1
|
|
||||||
|
|
||||||
iny
|
|
||||||
bne .1
|
|
||||||
inc +1 for ending 0
|
|
||||||
|
|
||||||
.1 jsr MEM.MoveToAux X = AUX hMem
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
.81 ldy #$ff and file len in Y,A
|
|
||||||
.82 lda #$ff
|
|
||||||
* clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 pha
|
|
||||||
.90 lda #$ff SELF MODIFIED
|
|
||||||
jsr K.freemem
|
|
||||||
pla
|
|
||||||
sec
|
|
||||||
.99 rts
|
|
||||||
*/--------------------------------------
|
|
||||||
* # GetStkObjPtr
|
* # GetStkObjPtr
|
||||||
* ## ASM
|
* ## ASM
|
||||||
* `lda hStkObj`
|
* `lda hStkObj`
|
||||||
|
|
|
@ -96,16 +96,22 @@ PFT.YAToMLIPATH >STYA .1+1
|
||||||
PFT.RTS rts
|
PFT.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PFT.CheckNode4 ldy #4
|
PFT.CheckNode4 ldy #4
|
||||||
.HS 2C BIT ABS
|
|
||||||
PFT.CheckNode2 ldy #2
|
|
||||||
|
|
||||||
PFT.CheckNodeY lda (pStack),y
|
PFT.CheckNodeY lda (pStack),y
|
||||||
|
|
||||||
PFT.CheckNodeA stx .80+1 Save SYSCALL #
|
PFT.CheckNodeA stx .80+1 Save SYSCALL #
|
||||||
sta .81+1 Save hFILE
|
sta IO.hFILE
|
||||||
|
|
||||||
|
tax
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
cpx #K.hFD.MAX+1
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
lda hFDs-1,x
|
||||||
|
beq .9
|
||||||
|
|
||||||
jsr DEV.GetPFD
|
jsr DEV.GetPFD
|
||||||
bcs .99
|
|
||||||
|
|
||||||
ldy #S.FD.PFT
|
ldy #S.FD.PFT
|
||||||
lda (pFD),y
|
lda (pFD),y
|
||||||
|
@ -124,7 +130,7 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
|
||||||
pla discard JSR return @
|
pla discard JSR return @
|
||||||
pla
|
pla
|
||||||
ldx .80+1 restore SYSCALL #
|
ldx .80+1 restore SYSCALL #
|
||||||
lda .81+1 restore passed hFILE
|
lda IO.hFILE
|
||||||
|
|
||||||
.7 jmp $ffff SELF MODIFIED
|
.7 jmp $ffff SELF MODIFIED
|
||||||
|
|
||||||
|
@ -137,10 +143,14 @@ PFT.CheckNodeA stx .80+1 Save SYSCALL #
|
||||||
sta K.MLI.PARAMS+1
|
sta K.MLI.PARAMS+1
|
||||||
|
|
||||||
.80 ldx #$ff SELF MODIFIED
|
.80 ldx #$ff SELF MODIFIED
|
||||||
.81 lda #$ff SELF MODIFIED
|
.81 lda IO.hFILE
|
||||||
clc
|
clc
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
|
|
||||||
|
.9 lda #E.INVH
|
||||||
|
sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.pft
|
SAVE usr/src/sys/kernel.s.pft
|
||||||
|
|
|
@ -13,7 +13,7 @@ PIPE.OPEN ldy #S.FD.PIPE.S
|
||||||
inc
|
inc
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
|
|
||||||
lda IO.hDevNod
|
lda IO.hFD
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -23,7 +23,6 @@ PIPE.CLOSE ldy #S.FD.PIPE.S
|
||||||
|
|
||||||
lda #$80
|
lda #$80
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
clc
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 ldy #S.FD.PIPE.hMem
|
.1 ldy #S.FD.PIPE.hMem
|
||||||
|
@ -32,7 +31,7 @@ PIPE.CLOSE ldy #S.FD.PIPE.S
|
||||||
|
|
||||||
>SYSCALL2 FreeStkObj
|
>SYSCALL2 FreeStkObj
|
||||||
|
|
||||||
.2 jmp DEV.Destroy
|
.2 jmp DEV.hFDFree
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* (pStack)+2 buf
|
* (pStack)+2 buf
|
||||||
* (pStack)+0 count
|
* (pStack)+0 count
|
||||||
|
|
|
@ -747,6 +747,46 @@ K.Kill.2 ldy #S.PS.hSession
|
||||||
.10 .DA #S.PS.hSS,#S.PS.hDS,#S.PS.hCS
|
.10 .DA #S.PS.hSS,#S.PS.hDS,#S.PS.hCS
|
||||||
.DA #S.PS.hARGV,#S.PS.hCWD
|
.DA #S.PS.hARGV,#S.PS.hCWD
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
* # LoadStkObj
|
||||||
|
* Load a file in AUX memory (Stock Objects)
|
||||||
|
* PUSHW = PATH (Handled by....
|
||||||
|
* PUSHB = MODE ...
|
||||||
|
* PUSHB = TYPE ...
|
||||||
|
* PUSHW = AUXTYPE ...FOpen)
|
||||||
|
* ## RETURN VALUE
|
||||||
|
* Y,A = File Length
|
||||||
|
* X = hMem of Loaded Object in AUX mem
|
||||||
|
*\--------------------------------------
|
||||||
|
K.LoadStkObj >PUSHYA
|
||||||
|
>PUSHBI O.RDONLY
|
||||||
|
>PUSHBI 0 any type...
|
||||||
|
|
||||||
|
jsr K.LoadFile.1 ... ending \0
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
stx .90+1
|
||||||
|
sty .81+1 Save File Len
|
||||||
|
sta .82+1
|
||||||
|
|
||||||
|
iny
|
||||||
|
bne .1
|
||||||
|
inc +1 for ending 0
|
||||||
|
|
||||||
|
.1 jsr MEM.MoveToAux X = AUX hMem
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.81 ldy #$ff and file len in Y,A
|
||||||
|
.82 lda #$ff
|
||||||
|
* clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 pha
|
||||||
|
.90 lda #$ff SELF MODIFIED
|
||||||
|
jsr K.freemem
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
.99 rts
|
||||||
|
*/--------------------------------------
|
||||||
* # LoadTxtFile
|
* # LoadTxtFile
|
||||||
* Load TXT a file in memory (with ending 0)
|
* Load TXT a file in memory (with ending 0)
|
||||||
* ## C
|
* ## C
|
||||||
|
@ -762,7 +802,8 @@ K.Kill.2 ldy #S.PS.hSession
|
||||||
K.LoadTxtFile >PUSHYA
|
K.LoadTxtFile >PUSHYA
|
||||||
>PUSHBI O.RDONLY
|
>PUSHBI O.RDONLY
|
||||||
>PUSHBI S.FI.T.TXT
|
>PUSHBI S.FI.T.TXT
|
||||||
>PUSHWZ Aux type
|
|
||||||
|
K.LoadFile.1 >PUSHWZ Aux type
|
||||||
|
|
||||||
sec
|
sec
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
|
@ -925,10 +966,10 @@ PS.Find.DRV ldx #2
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
PS.Find.PATH ldx #4
|
PS.Find.PATH ldx #4
|
||||||
|
|
||||||
>STYA PS.Find.4+1 filename to find
|
>STYA PS.Find.4+1 filename to find
|
||||||
|
|
||||||
>PUSHW PS.VARS,x
|
>PUSHW PS.VARS,x
|
||||||
>PUSHWI 0 allocate...
|
>PUSHWZ allocate...
|
||||||
>SYSCALL2 GetEnv get value for Search Path
|
>SYSCALL2 GetEnv get value for Search Path
|
||||||
bcs PS.Find.RTS
|
bcs PS.Find.RTS
|
||||||
|
|
||||||
|
@ -943,7 +984,7 @@ PS.Find.1 ldy #0 Self Modified Index in Search list string
|
||||||
|
|
||||||
PS.Find.2 lda $ffff,y SELF MODIFIED
|
PS.Find.2 lda $ffff,y SELF MODIFIED
|
||||||
|
|
||||||
beq PS.Find.3 end of string, try it....
|
beq PS.Find.3 end of string, try it....
|
||||||
|
|
||||||
iny
|
iny
|
||||||
cmp #':'
|
cmp #':'
|
||||||
|
@ -1005,7 +1046,6 @@ PS.STAT.YA >PUSHYA
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.SHUTDOWN .AZ "shutdown"
|
PS.SHUTDOWN .AZ "shutdown"
|
||||||
*PS.T .AZ " -T 3"
|
|
||||||
PS.VARS .DA .1
|
PS.VARS .DA .1
|
||||||
.DA .2
|
.DA .2
|
||||||
.DA .3
|
.DA .3
|
||||||
|
@ -1029,8 +1069,11 @@ K.GetMemStat >STYA ZPPtr1
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
|
|
||||||
jsr .2
|
jsr .2
|
||||||
|
|
||||||
sta CLRREADAUX
|
sta CLRREADAUX
|
||||||
|
|
||||||
.2 ldx #7
|
.2 ldx #7
|
||||||
|
|
|
@ -121,12 +121,6 @@ SHARED.P3gY sta CLRREADAUX
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SHARED.GetScrnDevX
|
|
||||||
sta CLRREADAUX
|
|
||||||
lda A2osX.SCRNDEVS,x
|
|
||||||
sta SETREADAUX
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.shared
|
SAVE usr/src/sys/kernel.s.shared
|
||||||
LOAD usr/src/sys/kernel.s
|
LOAD usr/src/sys/kernel.s
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
NEW
|
NEW
|
||||||
AUTO 3,1
|
AUTO 3,1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SOCK.OPEN lda IO.hDevNod
|
SOCK.OPEN lda IO.hFD
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -88,14 +88,15 @@ K.ChMod.RET3 inc pStack
|
||||||
* `>SYSCALL fstat`
|
* `>SYSCALL fstat`
|
||||||
* ## RETURN VALUE
|
* ## RETURN VALUE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.FStat jsr PFT.CheckNode2
|
K.FStat ldy #2
|
||||||
|
jsr PFT.CheckNodeY
|
||||||
bcs K.ChMod.RET3
|
bcs K.ChMod.RET3
|
||||||
|
|
||||||
>PULLW K.Stat.Store.2+1
|
>PULLW K.Stat.Store.2+1
|
||||||
|
|
||||||
>PULLA
|
>PULLA
|
||||||
tax
|
tax
|
||||||
lda Nod.Table.hName-2,x get path
|
lda hFDs.hName-1,x get path
|
||||||
jsr K.GetMemPtr
|
jsr K.GetMemPtr
|
||||||
jsr PFT.YAToMLIPATH
|
jsr PFT.YAToMLIPATH
|
||||||
|
|
||||||
|
@ -193,10 +194,11 @@ K.MKFIFO jsr STAT.PM
|
||||||
bcs STAT.RTS
|
bcs STAT.RTS
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.1 lda STAT.FIFO,y
|
.1 lda STAT.FIFO,y
|
||||||
sta (ZPPtr1),y fill pathname buffer
|
sta (ZPPtr1),y fill pathname buffer
|
||||||
iny
|
iny
|
||||||
cpy #4
|
cpy #9
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda IO.hFD
|
lda IO.hFD
|
||||||
|
@ -208,7 +210,17 @@ K.MKFIFO jsr STAT.PM
|
||||||
iny
|
iny
|
||||||
lda #0
|
lda #0
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
lda ZPPtr1
|
||||||
|
clc
|
||||||
|
adc #5 skip /dev/
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc K.MkNod.I
|
||||||
|
|
||||||
|
inc ZPPtr1+1
|
||||||
bra K.MkNod.I
|
bra K.MkNod.I
|
||||||
|
*--------------------------------------
|
||||||
|
STAT.FIFO .AS "/dev/fifo"
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # MkNod
|
* # MkNod
|
||||||
* Create a special or ordinary file.
|
* Create a special or ordinary file.
|
||||||
|
@ -228,21 +240,21 @@ K.MkNod >PULLB IO.hFD
|
||||||
|
|
||||||
jsr STAT.PM
|
jsr STAT.PM
|
||||||
|
|
||||||
K.MkNod.I ldx #2
|
K.MkNod.I ldx #1
|
||||||
|
|
||||||
.1 lda Nod.Table.hFD-2,x empty slot ?
|
.1 lda hFDs-1,x
|
||||||
|
cmp IO.hFD
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
inx
|
inx
|
||||||
inx
|
cpx #K.hFD.MAX+1
|
||||||
cpx #K.Nod.MAX+2
|
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda #E.OOH
|
lda #MLI.E.IO
|
||||||
* sec
|
* sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 stx IO.hDevNod
|
.2 stx IO.hFILE
|
||||||
|
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
>SYSCALL2 StrDup
|
>SYSCALL2 StrDup
|
||||||
|
@ -250,13 +262,10 @@ K.MkNod.I ldx #2
|
||||||
|
|
||||||
txa
|
txa
|
||||||
|
|
||||||
.3 ldx IO.hDevNod
|
ldx IO.hFILE
|
||||||
sta Nod.Table.hName-2,x store path
|
sta hFDs.hName-1,x store path
|
||||||
|
|
||||||
.4 lda IO.hFD
|
txa hFILE
|
||||||
sta Nod.Table.hFD-2,x store hFD
|
|
||||||
|
|
||||||
txa hDevNod
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -277,7 +286,7 @@ K.Pipe sta .1+1 SIZE HI
|
||||||
|
|
||||||
stx .8+1 save PIPE buffer
|
stx .8+1 save PIPE buffer
|
||||||
|
|
||||||
ldx #2
|
lda #S.FD.T.PIPE
|
||||||
jsr DEV.MkFD
|
jsr DEV.MkFD
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -292,7 +301,7 @@ K.Pipe sta .1+1 SIZE HI
|
||||||
|
|
||||||
.8 lda #$ff Self Modified
|
.8 lda #$ff Self Modified
|
||||||
sta (pFD),y
|
sta (pFD),y
|
||||||
txa hFD
|
lda IO.hFD
|
||||||
* clc
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -303,15 +312,12 @@ K.Pipe sta .1+1 SIZE HI
|
||||||
|
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
.99
|
.99 rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STAT.PM >PULLW K.S.STAT+S.STAT.MODE
|
STAT.PM >PULLW K.S.STAT+S.STAT.MODE
|
||||||
>PULLW ZPPtr1 pathname
|
>PULLW ZPPtr1 pathname
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STAT.FIFO .AS "fifo"
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/sys/kernel.s.stat
|
SAVE usr/src/sys/kernel.s.stat
|
||||||
LOAD usr/src/sys/kernel.s
|
LOAD usr/src/sys/kernel.s
|
||||||
|
|
|
@ -359,7 +359,7 @@ K.UngetC clc
|
||||||
* CS : A = EC
|
* CS : A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FOpen jsr PFT.CheckPath4
|
K.FOpen jsr PFT.CheckPath4
|
||||||
bcs .9
|
bcs K.FOpen.9
|
||||||
|
|
||||||
>PULLW IO.Open.AUXTYPE
|
>PULLW IO.Open.AUXTYPE
|
||||||
>PULLB IO.Open.TYPE
|
>PULLB IO.Open.TYPE
|
||||||
|
@ -368,10 +368,35 @@ K.FOpen jsr PFT.CheckPath4
|
||||||
inc pStack discard filename
|
inc pStack discard filename
|
||||||
inc pStack
|
inc pStack
|
||||||
|
|
||||||
jmp UNISTD.Open
|
jsr UNISTD.Open
|
||||||
|
bcs K.FOpen.99
|
||||||
|
|
||||||
.9 >POP 6
|
ldx IO.hFILE
|
||||||
|
|
||||||
|
lda (pFD)
|
||||||
|
bne K.FOpen.8
|
||||||
|
|
||||||
|
K.FOpen.REGDIR >LDYAI K.Buf256
|
||||||
|
>SYSCALL2 StrDup
|
||||||
|
bcs K.FOpen.90
|
||||||
|
|
||||||
|
txa
|
||||||
|
ldx IO.hFILE
|
||||||
|
sta hFDs.hName-1,x
|
||||||
|
|
||||||
|
K.FOpen.8 inc hFDs.oCnt-1,x
|
||||||
|
txa
|
||||||
|
* clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
K.FOpen.90 pha
|
||||||
|
jsr UNISTD.Close
|
||||||
|
pla
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
|
||||||
|
K.FOpen.9 >POP 6
|
||||||
|
K.FOpen.99 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FClose
|
* # FClose
|
||||||
* Close a file
|
* Close a file
|
||||||
|
@ -386,21 +411,17 @@ K.FOpen jsr PFT.CheckPath4
|
||||||
K.FClose jsr PFT.CheckNodeA
|
K.FClose jsr PFT.CheckNodeA
|
||||||
bcs K.FRead.RTS
|
bcs K.FRead.RTS
|
||||||
|
|
||||||
jmp UNISTD.Close
|
jsr UNISTD.Close
|
||||||
*--------------------------------------
|
|
||||||
DEV.Destroy ldx IO.hDevNod
|
|
||||||
lda Nod.Table.hName-2,x
|
|
||||||
beq .1
|
|
||||||
|
|
||||||
stz Nod.Table.hName-2,x
|
ldx IO.hFILE
|
||||||
jsr K.FreeMem
|
dec hFDs.oCnt-1,x
|
||||||
|
bne .8
|
||||||
ldx IO.hDevNod
|
|
||||||
|
lda hFDs.hName-1,x its a DEV, don't clear FD
|
||||||
.1 lda Nod.Table.hFD-2,x
|
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
stz Nod.Table.hFD-2,x
|
stz hFDs-1,x
|
||||||
|
stz hFDs.hName-1,x
|
||||||
jmp K.FreeMem
|
jmp K.FreeMem
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
|
@ -444,8 +465,8 @@ K.FWrite jsr PFT.CheckNode4
|
||||||
bcs K.FWrite.RET5
|
bcs K.FWrite.RET5
|
||||||
|
|
||||||
jsr UNISTD.Write
|
jsr UNISTD.Write
|
||||||
bcc K.FRead.RTS
|
|
||||||
|
|
||||||
|
bcc K.FRead.RTS
|
||||||
K.FWrite.9 cmp #E.NODATA
|
K.FWrite.9 cmp #E.NODATA
|
||||||
sec
|
sec
|
||||||
bne K.FRead.RTS IO Error
|
bne K.FRead.RTS IO Error
|
||||||
|
|
|
@ -152,7 +152,7 @@ K.realpath ldy #3
|
||||||
>PUSHA
|
>PUSHA
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHWI 0
|
>PUSHWZ
|
||||||
jsr K.expand
|
jsr K.expand
|
||||||
bcs K.realpath.RET4
|
bcs K.realpath.RET4
|
||||||
|
|
||||||
|
|
|
@ -22,13 +22,14 @@ TERM.STATUS jsr TERM.GetIOCTLBufCntDCB
|
||||||
lda (ZPIOCTL),y
|
lda (ZPIOCTL),y
|
||||||
tay
|
tay
|
||||||
bra TERM.TOAUX
|
bra TERM.TOAUX
|
||||||
|
*--------------------------------------
|
||||||
|
TERM.OPEN sta ZPhFD hFD in A for OPEN
|
||||||
|
|
||||||
TERM.OPEN sta ZPDevID DEV.ID in A for OPEN
|
|
||||||
TERM.CONTROL
|
TERM.CONTROL
|
||||||
TERM.CLOSE jsr TERM.GetDCB
|
TERM.CLOSE jsr TERM.GetDCB
|
||||||
|
|
||||||
bra TERM.TOAUX
|
bra TERM.TOAUX
|
||||||
|
*--------------------------------------
|
||||||
TERM.READ
|
TERM.READ
|
||||||
TERM.WRITE jsr TERM.GetIOCTLBufCntDCB
|
TERM.WRITE jsr TERM.GetIOCTLBufCntDCB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -90,14 +91,15 @@ TERM.GetBufByte sta CLRREADAUX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERM.GetDevName sta CLRREADAUX
|
TERM.GetDevName sta CLRREADAUX
|
||||||
|
|
||||||
lda Dev.Table-1,x
|
lda pFD
|
||||||
clc
|
clc
|
||||||
adc #S.FD.DEV
|
adc #S.FD.DEV
|
||||||
tay
|
sta TXTPTR
|
||||||
|
|
||||||
lda Dev.Table,x
|
lda pFD+1
|
||||||
adc /S.FD.DEV
|
adc /S.FD.DEV
|
||||||
|
sta TXTPTR+1
|
||||||
|
|
||||||
sta SETREADAUX
|
sta SETREADAUX
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -8,7 +8,6 @@ CURSOR.BLINK.SPEED .EQ 2
|
||||||
ZPIOCTL .BS 2
|
ZPIOCTL .BS 2
|
||||||
ZPBufPtr .BS 2
|
ZPBufPtr .BS 2
|
||||||
ZPDCBPtr .BS 2
|
ZPDCBPtr .BS 2
|
||||||
|
|
||||||
ZPCnt .BS 2
|
ZPCnt .BS 2
|
||||||
|
|
||||||
ZPBufBL1 .BS 2
|
ZPBufBL1 .BS 2
|
||||||
|
@ -17,7 +16,7 @@ ZPScrBL1 .BS 2
|
||||||
ZPScrBL2 .BS 2
|
ZPScrBL2 .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
bActive .BS 1
|
bActive .BS 1
|
||||||
ZPDevID .BS 1
|
ZPhFD .BS 1
|
||||||
|
|
||||||
ZPTmpBool .BS 1
|
ZPTmpBool .BS 1
|
||||||
ZPTmpChar .BS 1
|
ZPTmpChar .BS 1
|
||||||
|
@ -73,7 +72,7 @@ TERMX.STATUS tya
|
||||||
iny
|
iny
|
||||||
* sec
|
* sec
|
||||||
eor (ZPDCBPtr),y OUTHEAD
|
eor (ZPDCBPtr),y OUTHEAD
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
bit bActive
|
bit bActive
|
||||||
bpl .7
|
bpl .7
|
||||||
|
@ -99,27 +98,14 @@ TERMX.OPEN.E lda #MLI.E.OPEN
|
||||||
TERMX.OPEN jsr TERMX.ISOPENED
|
TERMX.OPEN jsr TERMX.ISOPENED
|
||||||
bne TERMX.OPEN.E
|
bne TERMX.OPEN.E
|
||||||
|
|
||||||
ldx #0
|
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
|
tax
|
||||||
.2 jsr SHARED.GetScrnDevX
|
lda ZPhFD
|
||||||
beq .3
|
|
||||||
|
|
||||||
inx
|
|
||||||
cpx #K.TTY.MAX+1
|
|
||||||
bne .2
|
|
||||||
|
|
||||||
lda #E.OOH
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.3 lda ZPDevID
|
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
sta A2osX.SCRNDEVS,x
|
sta A2osX.SCRNDEVS,x
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
sta (ZPDCBPtr) #S.DCB.TTY.DEVID
|
|
||||||
|
|
||||||
ldy #S.DCB.TTY.S
|
ldy #S.DCB.TTY.S
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
ora #S.DIB.S.OPENED
|
ora #S.DIB.S.OPENED
|
||||||
|
@ -128,44 +114,39 @@ TERMX.OPEN jsr TERMX.ISOPENED
|
||||||
jsr RESET
|
jsr RESET
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
TERMX.CONTROL lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
sta A2osX.ASCREEN
|
sta A2osX.ASCREEN
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
sta SETTEXT
|
sta SETTEXT
|
||||||
|
sta CLRMIXED
|
||||||
|
|
||||||
jsr TERMX.SCRCPY
|
jsr TERMX.SCRCPY
|
||||||
lda #0
|
|
||||||
|
|
||||||
|
lda #0
|
||||||
ldy #S.DCB.TTY.bCURON
|
ldy #S.DCB.TTY.bCURON
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
iny #S.DCB.TTY.bTITLE
|
iny #S.DCB.TTY.bTITLE
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.CLOSE jsr TERMX.ISOPENED
|
TERMX.CLOSE jsr TERMX.ISOPENED
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
lda TERMX.DIB+S.DIB.S
|
lda TERMX.DIB+S.DIB.S
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
ldx #0
|
|
||||||
|
|
||||||
.1 jsr SHARED.GetScrnDevX
|
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
||||||
cmp (ZPDCBPtr) #S.DCB.TTY.DEVID
|
tax
|
||||||
bne .2
|
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
stz A2osX.SCRNDEVS,x
|
stz A2osX.SCRNDEVS,x
|
||||||
sta SETWRITEAUX
|
sta SETWRITEAUX
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.2 inx
|
|
||||||
cpx #K.TTY.MAX+1
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
.9 lda #MLI.E.IO
|
.9 lda #MLI.E.IO
|
||||||
sec
|
sec
|
||||||
|
@ -197,7 +178,7 @@ TERMX.READ bit bActive is screen active?
|
||||||
and #$7F
|
and #$7F
|
||||||
cmp #C.ESC
|
cmp #C.ESC
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
lda #3
|
lda #3
|
||||||
|
|
||||||
.10 ldx #3
|
.10 ldx #3
|
||||||
|
@ -205,7 +186,7 @@ TERMX.READ bit bActive is screen active?
|
||||||
.2 cmp KeyMap,x
|
.2 cmp KeyMap,x
|
||||||
beq .3
|
beq .3
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
|
@ -229,7 +210,7 @@ TERMX.READ bit bActive is screen active?
|
||||||
pla
|
pla
|
||||||
jsr TERMX.COUT
|
jsr TERMX.COUT
|
||||||
bra .7
|
bra .7
|
||||||
|
|
||||||
.6 ldy #S.DCB.TTY.OUTTAIL
|
.6 ldy #S.DCB.TTY.OUTTAIL
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
iny
|
iny
|
||||||
|
@ -256,9 +237,9 @@ TERMX.READ bit bActive is screen active?
|
||||||
bra .70
|
bra .70
|
||||||
|
|
||||||
.8 lda #$ff SELF MODIFIED
|
.8 lda #$ff SELF MODIFIED
|
||||||
|
|
||||||
sta CLRWRITEAUX
|
sta CLRWRITEAUX
|
||||||
|
|
||||||
ldy #S.IOCTL.BYTECNT
|
ldy #S.IOCTL.BYTECNT
|
||||||
sta (ZPIOCTL),y
|
sta (ZPIOCTL),y
|
||||||
iny
|
iny
|
||||||
|
@ -353,9 +334,9 @@ TERMX.OUT.FS ldy #S.DCB.TTY.CH
|
||||||
ldy #S.DCB.TTY.bLINEWRAP
|
ldy #S.DCB.TTY.bLINEWRAP
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
bpl TERMX.OUT.BS.8
|
bpl TERMX.OUT.BS.8
|
||||||
|
|
||||||
jsr TERMX.OUT.CR
|
jsr TERMX.OUT.CR
|
||||||
|
|
||||||
jmp TERMX.OUT.LF.1
|
jmp TERMX.OUT.LF.1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.OUT.BS ldy #S.DCB.TTY.CH
|
TERMX.OUT.BS ldy #S.DCB.TTY.CH
|
||||||
|
@ -453,7 +434,7 @@ TERMX.ESC jsr TERM.GetBufByte y = #S.DCB.TTY.M
|
||||||
.DA TERMX.RTS [
|
.DA TERMX.RTS [
|
||||||
.DA TERMX.RTS (
|
.DA TERMX.RTS (
|
||||||
.DA TERMX.RTS )
|
.DA TERMX.RTS )
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.SETM0 lda #0
|
TERMX.SETM0 lda #0
|
||||||
TERMX.SETM ldy #S.DCB.TTY.M
|
TERMX.SETM ldy #S.DCB.TTY.M
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
@ -468,9 +449,9 @@ TERMX.CSI ldy #S.DCB.TTY.INBUF
|
||||||
inc
|
inc
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
jsr TERM.GetBufByte
|
jsr TERM.GetBufByte
|
||||||
|
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
cmp #64 End of Seq ?
|
cmp #64 End of Seq ?
|
||||||
bcs TERMX.CSI.Exec
|
bcs TERMX.CSI.Exec
|
||||||
|
@ -527,10 +508,10 @@ TERMX.CSI.Exec stz CsiH
|
||||||
|
|
||||||
.6 cmp CsiCodes,x
|
.6 cmp CsiCodes,x
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .6
|
bpl .6
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -553,16 +534,16 @@ TERMX.CSI.Exec stz CsiH
|
||||||
.DA Csi.Home H
|
.DA Csi.Home H
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Csi.SetM sec
|
Csi.SetM sec
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Csi.ResetM clc
|
Csi.ResetM clc
|
||||||
|
|
||||||
ldx CsiPCnt
|
ldx CsiPCnt
|
||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
ldx CsiH
|
ldx CsiH
|
||||||
|
|
||||||
lda CsiP
|
lda CsiP
|
||||||
|
@ -576,7 +557,7 @@ Csi.ResetM clc
|
||||||
|
|
||||||
ldy #S.DCB.TTY.bCRLF
|
ldy #S.DCB.TTY.bCRLF
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.1 cmp #7
|
.1 cmp #7
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
|
@ -597,7 +578,7 @@ Csi.ResetM clc
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Csi.DispAttr ldx CsiPCnt
|
Csi.DispAttr ldx CsiPCnt
|
||||||
bne .10
|
bne .10
|
||||||
|
|
||||||
jmp RESETATTR
|
jmp RESETATTR
|
||||||
|
|
||||||
.10 ldx #0
|
.10 ldx #0
|
||||||
|
@ -639,11 +620,11 @@ Csi.Query ldx CsiPCnt
|
||||||
jsr DecOut
|
jsr DecOut
|
||||||
lda #';'
|
lda #';'
|
||||||
jsr TERMX.COUT
|
jsr TERMX.COUT
|
||||||
|
|
||||||
ldy #S.DCB.TTY.CH
|
ldy #S.DCB.TTY.CH
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
inc
|
inc
|
||||||
jsr DecOut
|
jsr DecOut
|
||||||
lda #'R'
|
lda #'R'
|
||||||
jsr TERMX.COUT
|
jsr TERMX.COUT
|
||||||
.8 clc
|
.8 clc
|
||||||
|
@ -673,7 +654,7 @@ Csi.CUU sec
|
||||||
Csi.CUD clc
|
Csi.CUD clc
|
||||||
ldy #S.DCB.TTY.CV
|
ldy #S.DCB.TTY.CV
|
||||||
bra Csi.CU
|
bra Csi.CU
|
||||||
|
|
||||||
Csi.CUF clc
|
Csi.CUF clc
|
||||||
.HS B0 BCS
|
.HS B0 BCS
|
||||||
Csi.CUB sec
|
Csi.CUB sec
|
||||||
|
@ -681,22 +662,22 @@ Csi.CUB sec
|
||||||
|
|
||||||
Csi.CU lda CsiPCnt
|
Csi.CU lda CsiPCnt
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
dec
|
dec
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
lda (ZPDCBPtr),y
|
lda (ZPDCBPtr),y
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
adc CsiP
|
adc CsiP
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 sbc CsiP
|
.1 sbc CsiP
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -705,7 +686,7 @@ Csi.CLRSCR ldx CsiPCnt
|
||||||
|
|
||||||
.1 lda CsiP
|
.1 lda CsiP
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #1
|
cmp #1
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
|
@ -780,7 +761,7 @@ HOME lda #0
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.G0 ldx #$80
|
TERMX.G0 ldx #$80
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
TERMX.G1 ldx #$40
|
TERMX.G1 ldx #$40
|
||||||
|
@ -790,12 +771,12 @@ TERMX.G1 ldx #$40
|
||||||
jsr TERM.GetBufByte
|
jsr TERM.GetBufByte
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
eor #$ff
|
eor #$ff
|
||||||
and (ZPDCBPtr),y
|
and (ZPDCBPtr),y
|
||||||
bra .8
|
bra .8
|
||||||
|
|
||||||
.1 txa
|
.1 txa
|
||||||
ora (ZPDCBPtr),y
|
ora (ZPDCBPtr),y
|
||||||
.8 sta (ZPDCBPtr),y
|
.8 sta (ZPDCBPtr),y
|
||||||
|
@ -807,9 +788,9 @@ TERMX.IAC ldy #S.DCB.TTY.INBUF
|
||||||
inc
|
inc
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
tay
|
tay
|
||||||
|
|
||||||
jsr TERM.GetBufByte
|
jsr TERM.GetBufByte
|
||||||
|
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
cpy #S.DCB.TTY.INBUF+1 CMD ?
|
cpy #S.DCB.TTY.INBUF+1 CMD ?
|
||||||
beq Csi.Home.8 yes, wait for additional bytes
|
beq Csi.Home.8 yes, wait for additional bytes
|
||||||
|
@ -1008,20 +989,20 @@ CLR.8 clc
|
||||||
SaveCurPos ldy #S.DCB.TTY.CH
|
SaveCurPos ldy #S.DCB.TTY.CH
|
||||||
|
|
||||||
jsr .1
|
jsr .1
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
.1 lda (ZPDCBPtr),y
|
.1 lda (ZPDCBPtr),y
|
||||||
iny
|
iny
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
RestoreCurPos jsr TERMX.CUROFF
|
RestoreCurPos jsr TERMX.CUROFF
|
||||||
|
|
||||||
ldy #S.DCB.TTY.CV.SAVE
|
ldy #S.DCB.TTY.CV.SAVE
|
||||||
|
|
||||||
jsr .1
|
jsr .1
|
||||||
|
|
||||||
dey
|
dey
|
||||||
|
|
||||||
.1 lda (ZPDCBPtr),y
|
.1 lda (ZPDCBPtr),y
|
||||||
|
@ -1058,7 +1039,7 @@ SCROLL.DN ldy #S.DCB.TTY.SCROLLBOT
|
||||||
txa
|
txa
|
||||||
ldy #S.DCB.TTY.SCROLLTOP
|
ldy #S.DCB.TTY.SCROLLTOP
|
||||||
cmp (ZPDCBPtr),y
|
cmp (ZPDCBPtr),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
@ -1096,7 +1077,7 @@ TERMX.CBLNK.SET
|
||||||
eor #CURSOR.BLINK.SPEED
|
eor #CURSOR.BLINK.SPEED
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
rts
|
rts
|
||||||
|
|
||||||
TERMX.CBLNK.OFF
|
TERMX.CBLNK.OFF
|
||||||
jsr GetCharAtCurPos
|
jsr GetCharAtCurPos
|
||||||
bcc TERMX.CBLNK.SET if not Out of screen
|
bcc TERMX.CBLNK.SET if not Out of screen
|
||||||
|
@ -1160,7 +1141,7 @@ TERMX.SETUP.L1X lda ZPDCBPtr
|
||||||
clc
|
clc
|
||||||
adc BUF.BL,x
|
adc BUF.BL,x
|
||||||
sta ZPBufBL1
|
sta ZPBufBL1
|
||||||
|
|
||||||
lda ZPDCBPtr+1
|
lda ZPDCBPtr+1
|
||||||
adc BUF.BH,x
|
adc BUF.BH,x
|
||||||
sta ZPBufBL1+1
|
sta ZPBufBL1+1
|
||||||
|
@ -1200,7 +1181,7 @@ TERMX.CLRSCR.2 sty .1+1
|
||||||
|
|
||||||
bit bActive
|
bit bActive
|
||||||
bpl .4
|
bpl .4
|
||||||
|
|
||||||
sta SETPAGE2
|
sta SETPAGE2
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
|
@ -1208,7 +1189,7 @@ TERMX.CLRSCR.2 sty .1+1
|
||||||
jsr .7
|
jsr .7
|
||||||
|
|
||||||
.4 ldy #79
|
.4 ldy #79
|
||||||
|
|
||||||
.5 sta (ZPBufBL1),y
|
.5 sta (ZPBufBL1),y
|
||||||
dey
|
dey
|
||||||
bpl .5
|
bpl .5
|
||||||
|
@ -1219,7 +1200,7 @@ TERMX.CLRSCR.2 sty .1+1
|
||||||
.7 ldy #39
|
.7 ldy #39
|
||||||
.8 sta (ZPScrBL1),y
|
.8 sta (ZPScrBL1),y
|
||||||
dey
|
dey
|
||||||
bpl .8
|
bpl .8
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||||||
|
@ -1229,11 +1210,8 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||||||
lda #$ff
|
lda #$ff
|
||||||
sta (ZPDCBPtr),y
|
sta (ZPDCBPtr),y
|
||||||
|
|
||||||
lda (ZPDCBPtr) #S.DCB.TTY.DEVID
|
|
||||||
tax
|
|
||||||
jsr TERM.GetDevName
|
jsr TERM.GetDevName
|
||||||
>STYA TXTPTR
|
|
||||||
|
|
||||||
ldx #0
|
ldx #0
|
||||||
jsr TERMX.SETUP.L1X.SCR
|
jsr TERMX.SETUP.L1X.SCR
|
||||||
|
|
||||||
|
@ -1262,7 +1240,7 @@ TERMX.Title.ON ldy #S.DCB.TTY.bTITLE
|
||||||
iny
|
iny
|
||||||
cpy #80
|
cpy #80
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
TERMX.RTS2 rts
|
TERMX.RTS2 rts
|
||||||
|
|
||||||
TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE
|
TERMX.Title.OFF ldy #S.DCB.TTY.bTITLE
|
||||||
|
@ -1307,7 +1285,7 @@ TERMX.SCRCPY ldx #23
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.8 ldy #39
|
.8 ldy #39
|
||||||
|
|
||||||
.80 lda $ffff,x SELF MODIFIED
|
.80 lda $ffff,x SELF MODIFIED
|
||||||
|
@ -1333,7 +1311,7 @@ TERMX.COPY.XtoL1
|
||||||
ldy #79
|
ldy #79
|
||||||
|
|
||||||
.1 lda (ZPBufBL2),y
|
.1 lda (ZPBufBL2),y
|
||||||
sta (ZPBufBL1),y
|
sta (ZPBufBL1),y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
@ -1351,7 +1329,7 @@ TERMX.COPY.XtoL1
|
||||||
|
|
||||||
.6 ldy #39
|
.6 ldy #39
|
||||||
.7 lda (ZPScrBL2),y
|
.7 lda (ZPScrBL2),y
|
||||||
sta (ZPScrBL1),y
|
sta (ZPScrBL1),y
|
||||||
dey
|
dey
|
||||||
bpl .7
|
bpl .7
|
||||||
|
|
||||||
|
@ -1399,13 +1377,13 @@ SetCharAtYX cmp #$40
|
||||||
bcc .3
|
bcc .3
|
||||||
|
|
||||||
tay
|
tay
|
||||||
lda REMAP.E0.FF-$E0,y
|
lda REMAP.E0.FF-$E0,y
|
||||||
sta ZPTmpChar
|
sta ZPTmpChar
|
||||||
|
|
||||||
.3 jsr TERMX.SETUP.L1X
|
.3 jsr TERMX.SETUP.L1X
|
||||||
ply
|
ply
|
||||||
lda ZPTmpChar
|
lda ZPTmpChar
|
||||||
sta (ZPBufBL1),y
|
sta (ZPBufBL1),y
|
||||||
|
|
||||||
bit bActive
|
bit bActive
|
||||||
bpl SetCharAtYX.8
|
bpl SetCharAtYX.8
|
||||||
|
@ -1440,11 +1418,11 @@ GetCharAtCurPos ldy #S.DCB.TTY.CV
|
||||||
bcs .9 Out of screen
|
bcs .9 Out of screen
|
||||||
|
|
||||||
tay
|
tay
|
||||||
lda (ZPBufBL1),y
|
lda (ZPBufBL1),y
|
||||||
cmp #$20
|
cmp #$20
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
adc #40 remap $00-$1F uppercase
|
adc #40 remap $00-$1F uppercase
|
||||||
.8 clc
|
.8 clc
|
||||||
|
|
||||||
|
@ -1502,7 +1480,7 @@ RESET.VALUES .DA #0 MODE
|
||||||
|
|
||||||
.DA #S.DCB.TTY.OUTBUF OUTTAIL
|
.DA #S.DCB.TTY.OUTBUF OUTTAIL
|
||||||
.DA #S.DCB.TTY.OUTBUF OUTHEAD
|
.DA #S.DCB.TTY.OUTBUF OUTHEAD
|
||||||
.DA #S.DCB.TTY.INBUF INBUFFER
|
.DA #S.DCB.TTY.INBUF INBUFFER
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
TERMX.DIB .DA #S.DIB.S.WRITE+S.DIB.S.READ
|
||||||
.DA #0,#0,#0
|
.DA #0,#0,#0
|
||||||
|
|
|
@ -32,20 +32,15 @@ UNISTD.Open ldx #5 /dev/
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* /DEV/xxxxxx (CDEV,BDEV,DSOCK,SSOCK,PIPE)
|
* /dev/xxxxxx (CDEV,BDEV,DSOCK,SSOCK,PIPE)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
>LDYAI K.MLI.PATH+6 skip $/dev/
|
>LDYAI K.MLI.PATH+6 skip $/dev/
|
||||||
|
|
||||||
jsr K.GetDevByName
|
jsr K.GetDevByName
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA pFD
|
|
||||||
|
|
||||||
stx IO.hDevNod
|
|
||||||
|
|
||||||
lda (pFD) #S.FD.T
|
lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
|
|
||||||
jmp (.2-2,x)
|
jmp (.2-2,x)
|
||||||
.2
|
.2
|
||||||
* .DA STDIO.IOERR REG
|
* .DA STDIO.IOERR REG
|
||||||
|
@ -74,8 +69,9 @@ K.Close jsr DEV.GetPFD
|
||||||
UNISTD.Close lda (pFD) #S.FD.T
|
UNISTD.Close lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.1 .DA FS.CLOSE.REG
|
|
||||||
.DA FS.CLOSE.DIR
|
.1 .DA FS.CLOSE.REGDIR
|
||||||
|
.DA FS.CLOSE.REGDIR
|
||||||
.DA DEV.CLOSE
|
.DA DEV.CLOSE
|
||||||
.DA DEV.CLOSE
|
.DA DEV.CLOSE
|
||||||
.DA STDIO.IOERR LNK
|
.DA STDIO.IOERR LNK
|
||||||
|
@ -96,7 +92,7 @@ UNISTD.Close lda (pFD) #S.FD.T
|
||||||
* CC: Y,A = bytes read
|
* CC: Y,A = bytes read
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Read ldy #4 hDev
|
K.Read ldy #4 hFD
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
|
||||||
jsr DEV.GetPFD
|
jsr DEV.GetPFD
|
||||||
|
@ -104,6 +100,7 @@ K.Read ldy #4 hDev
|
||||||
UNISTD.Read lda (pFD) #S.FD.T
|
UNISTD.Read lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
|
||||||
.1 .DA FS.READ.REG
|
.1 .DA FS.READ.REG
|
||||||
.DA STDIO.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA DEV.READ
|
.DA DEV.READ
|
||||||
|
@ -126,14 +123,15 @@ UNISTD.Read lda (pFD) #S.FD.T
|
||||||
* CC: Y,A = bytes written
|
* CC: Y,A = bytes written
|
||||||
* CS: A = EC
|
* CS: A = EC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Write ldy #4 hDev
|
K.Write ldy #4 hFD
|
||||||
lda (pStack),y
|
lda (pStack),y
|
||||||
|
|
||||||
jsr DEV.GetPFD
|
jsr DEV.GetPFD
|
||||||
|
|
||||||
UNISTD.Write lda (pFD) #S.FD.T
|
UNISTD.Write lda (pFD) #S.FD.T
|
||||||
tax
|
tax
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
|
|
||||||
.1 .DA FS.WRITE.REG
|
.1 .DA FS.WRITE.REG
|
||||||
.DA STDIO.IOERR DIR
|
.DA STDIO.IOERR DIR
|
||||||
.DA DEV.WRITE
|
.DA DEV.WRITE
|
||||||
|
|
|
@ -60,8 +60,8 @@ NSC.Detect php
|
||||||
|
|
||||||
sta SETCXROM
|
sta SETCXROM
|
||||||
|
|
||||||
* sta $C300
|
sta $C100
|
||||||
lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
ldx #8
|
ldx #8
|
||||||
|
|
||||||
|
@ -76,8 +76,8 @@ NSC.Detect php
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
* sta $C300
|
sta $C100
|
||||||
lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda $C104 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
|
@ -210,8 +210,8 @@ NSCDRV php
|
||||||
|
|
||||||
sta SETCXROM
|
sta SETCXROM
|
||||||
|
|
||||||
* sta $C300
|
sta $C100
|
||||||
lda $C00B Workaround for Ultrawarp bug
|
* lda $C00B Workaround for Ultrawarp bug
|
||||||
|
|
||||||
lda $C104 Reset DS1216E comparison register with READ A2=1
|
lda $C104 Reset DS1216E comparison register with READ A2=1
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue