mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-18 00:30:40 +00:00
Kernel 0.9.1 : KERNEL, Preemtive mode, generalize IOCTL for device access
This commit is contained in:
parent
b2a0584f9d
commit
7ab9405274
@ -288,13 +288,24 @@ Create a new copy of this C-String
|
|||||||
|
|
||||||
## In:
|
## In:
|
||||||
+ PUSHB = hSList
|
+ PUSHB = hSList
|
||||||
+ PUSHW = Key Ptr
|
|
||||||
+ PUSHW = Data Ptr
|
|
||||||
+ PUSHW = KeyID
|
+ PUSHW = KeyID
|
||||||
|
+ PUSHW = Data Ptr
|
||||||
|
+ PUSHW = Key Ptr
|
||||||
|
|
||||||
## Out:
|
## Out:
|
||||||
+ X,Y = Next KeyID
|
+ X,Y = Next KeyID
|
||||||
|
|
||||||
|
# SListUpdateByID
|
||||||
|
|
||||||
|
## In:
|
||||||
|
+ PUSHB = hSList
|
||||||
|
+ PUSHW = KeyID
|
||||||
|
+ PUSHW = Data Ptr
|
||||||
|
|
||||||
|
## Out:
|
||||||
|
+ A = Key Length
|
||||||
|
+ X,Y = KeyID
|
||||||
|
|
||||||
# SListAdd
|
# SListAdd
|
||||||
|
|
||||||
## In:
|
## In:
|
||||||
@ -317,17 +328,6 @@ Create a new copy of this C-String
|
|||||||
+ A = Key Length
|
+ A = Key Length
|
||||||
+ X,Y = KeyID
|
+ X,Y = KeyID
|
||||||
|
|
||||||
# SListUpdateByID
|
|
||||||
|
|
||||||
## In:
|
|
||||||
+ PUSHB = hSList
|
|
||||||
+ PUSHW = KeyID
|
|
||||||
+ PUSHW = Data Ptr
|
|
||||||
|
|
||||||
## Out:
|
|
||||||
+ A = Key Length
|
|
||||||
+ X,Y = KeyID
|
|
||||||
|
|
||||||
# SListNew
|
# SListNew
|
||||||
|
|
||||||
## In:
|
## In:
|
||||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -239,20 +239,20 @@ CS.RUN.WriteCat >PUSHB.G hDev
|
|||||||
>PUSHBI DEVMGR.WRITEBLOCK
|
>PUSHBI DEVMGR.WRITEBLOCK
|
||||||
>PUSHEA.G BlkParams.Ptr
|
>PUSHEA.G BlkParams.Ptr
|
||||||
|
|
||||||
>SYSCALL DevIOCTL
|
>SYSCALL IOCTL
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda #'.'
|
lda #'.'
|
||||||
>SYSCALL PutChar.A
|
>SYSCALL PutChar.A
|
||||||
|
|
||||||
>LDA.G BlkParams.Ptr+1
|
>LDA.G BlkParams.Ptr+1
|
||||||
* clc
|
clc
|
||||||
adc #2
|
adc #2
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
>INC.G BlkParams.Num
|
>INC.G BlkParams.Num
|
||||||
|
|
||||||
* >SLEEP
|
>SLEEP
|
||||||
|
|
||||||
>DEC.G BlkCnt
|
>DEC.G BlkCnt
|
||||||
bne CS.RUN.WriteCat
|
bne CS.RUN.WriteCat
|
||||||
|
@ -55,7 +55,6 @@ L.MSG2.IP .DA MSG2.IP
|
|||||||
L.MSG2.GW .DA MSG2.GW
|
L.MSG2.GW .DA MSG2.GW
|
||||||
L.MSG2.DNS .DA MSG2.DNS
|
L.MSG2.DNS .DA MSG2.DNS
|
||||||
L.MSG2.HOSTNAME .DA MSG2.HOSTNAME
|
L.MSG2.HOSTNAME .DA MSG2.HOSTNAME
|
||||||
L.DevName .DA DevName
|
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
@ -79,13 +78,12 @@ CS.RUN >LDYA L.MSG0
|
|||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
jmp CS.RUN.DONE
|
jmp CS.RUN.DONE
|
||||||
|
|
||||||
CS.RUN.DUMPDEV sta DevID
|
CS.RUN.DUMPDEV >STA.G DevID
|
||||||
>SYSCALL GetDevByID.A
|
>SYSCALL GetDevByID.A
|
||||||
>STYA ZPDevPtr
|
>STYA ZPDevPtr
|
||||||
>STYA NetDevJmp+1
|
|
||||||
|
|
||||||
ldx #DEVMGR.STATUS
|
>LDA.G DevID
|
||||||
jsr NetDevJmp
|
>SYSCALL GetDevStatus.A
|
||||||
>STYA ZPDevStatPtr
|
>STYA ZPDevStatPtr
|
||||||
|
|
||||||
>LDYA L.MSG0.L
|
>LDYA L.MSG0.L
|
||||||
@ -115,7 +113,7 @@ CS.RUN.DUMPDEV sta DevID
|
|||||||
adc /S.DSTAT.IDS
|
adc /S.DSTAT.IDS
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>PUSHB DevID
|
>PUSHB.G DevID
|
||||||
|
|
||||||
>LDYA L.MSG1.DEV
|
>LDYA L.MSG1.DEV
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
@ -255,8 +253,6 @@ CS.QUIT lda hLIBTCPIP
|
|||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
NetDevJmp jmp *
|
|
||||||
*--------------------------------------
|
|
||||||
CS.END
|
CS.END
|
||||||
LIBTCPIP .AZ "libtcpip.o"
|
LIBTCPIP .AZ "libtcpip.o"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -283,12 +279,11 @@ MSG2.GW .AZ " Gateway : %d.%d.%d.%d\r\n"
|
|||||||
MSG2.DNS .AZ " DNS : %d.%d.%d.%d,%d.%d.%d.%d\r\n"
|
MSG2.DNS .AZ " DNS : %d.%d.%d.%d,%d.%d.%d.%d\r\n"
|
||||||
MSG2.HOSTNAME .AZ " Hostname : %S.%S\r\n"
|
MSG2.HOSTNAME .AZ " Hostname : %S.%S\r\n"
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
DevID .BS 1
|
|
||||||
DevName .BS 5
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
|
DevID .BS 1
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -117,7 +117,7 @@ SYS.Rename .EQ $42
|
|||||||
SYS.GetDevByID.A .EQ $48
|
SYS.GetDevByID.A .EQ $48
|
||||||
SYS.GetDevByName.YA .EQ $4A
|
SYS.GetDevByName.YA .EQ $4A
|
||||||
SYS.GetDevStatus.A .EQ $4C
|
SYS.GetDevStatus.A .EQ $4C
|
||||||
SYS.DevIOCTL .EQ $4E
|
SYS.IOCTL .EQ $4E
|
||||||
|
|
||||||
* .EQ $50
|
* .EQ $50
|
||||||
SYS.SScanF .EQ $52
|
SYS.SScanF .EQ $52
|
||||||
|
@ -331,11 +331,7 @@ D2TrkWNIB >PULLB DrvSlt
|
|||||||
|
|
||||||
ldy #TrkWriter.Size
|
ldy #TrkWriter.Size
|
||||||
|
|
||||||
*.7 lda TrkWriter,y
|
|
||||||
* sta UsrBuf256,y
|
|
||||||
* dey
|
|
||||||
* bne .7
|
|
||||||
* jmp UsrBuf256
|
|
||||||
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
@ -35,8 +35,6 @@ L.MSG.USAGE .DA MSG.USAGE
|
|||||||
L.MSG.TELNETOPT .DA MSG.TELNETOPT
|
L.MSG.TELNETOPT .DA MSG.TELNETOPT
|
||||||
L.MSG.GREETINGS .DA MSG.GREETINGS
|
L.MSG.GREETINGS .DA MSG.GREETINGS
|
||||||
L.ENV.TERM .DA ENV.TERM
|
L.ENV.TERM .DA ENV.TERM
|
||||||
L.HEX .DA HEX
|
|
||||||
L.HEX2 .DA HEX2
|
|
||||||
.DA 0 End Of Reloc Table
|
.DA 0 End Of Reloc Table
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT ldy #S.PS.ARGC
|
CS.INIT ldy #S.PS.ARGC
|
||||||
@ -57,6 +55,8 @@ CS.INIT ldy #S.PS.ARGC
|
|||||||
ldy #S.PS.hStdErr
|
ldy #S.PS.hStdErr
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
|
||||||
|
>STA.G hNode
|
||||||
|
|
||||||
lda #2
|
lda #2
|
||||||
>SYSCALL GetArg.A
|
>SYSCALL GetArg.A
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -85,9 +85,7 @@ CS.RUN >SLEEP
|
|||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs CS.RUN
|
bcs CS.RUN
|
||||||
|
|
||||||
.11
|
.11 >SLEEP
|
||||||
* jsr PRINTA2
|
|
||||||
>SLEEP
|
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
|
|
||||||
bcc .11
|
bcc .11
|
||||||
@ -104,17 +102,11 @@ CS.RUN >SLEEP
|
|||||||
cpy #MSG.TELNETOPT.LEN
|
cpy #MSG.TELNETOPT.LEN
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
* >LDYA L.MSG.TELNETOPT
|
|
||||||
* >SYSCALL PrintF.YA
|
|
||||||
* bcs *
|
|
||||||
|
|
||||||
CS.RUN.LOOP
|
CS.RUN.LOOP
|
||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .4
|
bcs .4
|
||||||
|
|
||||||
* jsr PRINTA
|
|
||||||
|
|
||||||
cmp #IAC
|
cmp #IAC
|
||||||
beq CS.RUN.IACMODE
|
beq CS.RUN.IACMODE
|
||||||
@ -143,22 +135,19 @@ CS.RUN.IACMODE >SLEEP Wait for IAC VERB (or SB)
|
|||||||
bcs CS.RUN.IACMODE
|
bcs CS.RUN.IACMODE
|
||||||
|
|
||||||
>STA.G IAC.VERB
|
>STA.G IAC.VERB
|
||||||
* jsr PRINTA
|
|
||||||
|
|
||||||
.1 >SLEEP Wait for IAC OPT
|
.1 >SLEEP Wait for IAC OPT
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
>STA.G IAC.OPT
|
>STA.G IAC.OPT
|
||||||
* jsr PRINTA
|
|
||||||
|
|
||||||
>LDA.G IAC.VERB
|
>LDA.G IAC.VERB
|
||||||
cmp #SB
|
cmp #SB
|
||||||
beq CS.RUN.IACSB
|
beq CS.RUN.IACSB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.IACVERB
|
CS.RUN.IACVERB
|
||||||
* lda #'.'
|
|
||||||
* >SYSCALL PutChar.A
|
|
||||||
jmp CS.RUN.LOOP
|
jmp CS.RUN.LOOP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.IACSB
|
CS.RUN.IACSB
|
||||||
@ -168,8 +157,6 @@ CS.RUN.IACSB
|
|||||||
|
|
||||||
>STA.G IAC.SB
|
>STA.G IAC.SB
|
||||||
|
|
||||||
* jsr PRINTA
|
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sta (pData) reset IAC.SB.DATA
|
sta (pData) reset IAC.SB.DATA
|
||||||
|
|
||||||
@ -181,7 +168,6 @@ CS.RUN.IACSB
|
|||||||
beq .4 end of DATA, go wait SE
|
beq .4 end of DATA, go wait SE
|
||||||
|
|
||||||
pha
|
pha
|
||||||
* jsr PRINTA
|
|
||||||
|
|
||||||
ldy #IAC.SB.DATA-1
|
ldy #IAC.SB.DATA-1
|
||||||
|
|
||||||
@ -215,10 +201,7 @@ CS.RUN.IACSB
|
|||||||
>PUSHW L.ENV.TERM
|
>PUSHW L.ENV.TERM
|
||||||
>SYSCALL SetEnv
|
>SYSCALL SetEnv
|
||||||
|
|
||||||
.8
|
.8 jmp CS.RUN.LOOP
|
||||||
* lda #':'
|
|
||||||
* >SYSCALL PutChar.A
|
|
||||||
jmp CS.RUN.LOOP
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT lda (pEvent)
|
CS.DOEVENT lda (pEvent)
|
||||||
bpl .9 is it a TIMER event?
|
bpl .9 is it a TIMER event?
|
||||||
@ -233,15 +216,21 @@ CS.DOEVENT lda (pEvent)
|
|||||||
.9 sec do not discard TIMER event
|
.9 sec do not discard TIMER event
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT ldy #hBinName
|
CS.QUIT >LDA.G hBinName
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
beq .1
|
beq .1
|
||||||
>SYSCALL FreeMem.A
|
>SYSCALL FreeMem.A
|
||||||
|
|
||||||
.1 ldx #DEVMGR.CLOSE
|
.1 >LDA.G hNode
|
||||||
* jsr pDevJmp
|
beq .8
|
||||||
|
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI DEVMGR.CLOSE
|
||||||
|
>PUSHBI 0
|
||||||
|
|
||||||
clc
|
>SYSCALL IOCTL
|
||||||
|
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Init.Timeout ldy #TimeOut
|
Init.Timeout ldy #TimeOut
|
||||||
@ -256,19 +245,6 @@ Wait.TimeOut sec
|
|||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PRINTA pha
|
|
||||||
>PUSHA
|
|
||||||
>LDYA L.HEX
|
|
||||||
>SYSCALL PrintF.YA
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
PRINTA2 pha
|
|
||||||
>PUSHA
|
|
||||||
>LDYA L.HEX2
|
|
||||||
>SYSCALL PrintF.YA
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
CS.END
|
CS.END
|
||||||
MSG.USAGE .AZ "Usage : GETTY <DEV> <PROGRAM>\r\n"
|
MSG.USAGE .AZ "Usage : GETTY <DEV> <PROGRAM>\r\n"
|
||||||
MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY
|
MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY
|
||||||
@ -284,19 +260,17 @@ MSG.TELNETOPT .DA #IAC,#WILL,#TELOPT.BINARY
|
|||||||
MSG.TELNETOPT.LEN .EQ *-MSG.TELNETOPT
|
MSG.TELNETOPT.LEN .EQ *-MSG.TELNETOPT
|
||||||
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY 0.9.1\r\n"
|
MSG.GREETINGS .AZ "\r\nA2osX-GeTTY 0.9.1\r\n"
|
||||||
ENV.TERM .AZ "TERM"
|
ENV.TERM .AZ "TERM"
|
||||||
HEX .AZ "[%h]"
|
|
||||||
HEX2 .AZ "{%h}"
|
|
||||||
* \e[12h
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
IAC.SB.DATA .BS 64
|
IAC.SB.DATA .BS 64
|
||||||
hBinName .BS 1
|
|
||||||
TimeOut .BS 1
|
|
||||||
IAC.VERB .BS 1
|
IAC.VERB .BS 1
|
||||||
IAC.OPT .BS 1
|
IAC.OPT .BS 1
|
||||||
IAC.SB .BS 1
|
IAC.SB .BS 1
|
||||||
|
hNode .BS 1
|
||||||
|
hBinName .BS 1
|
||||||
|
TimeOut .BS 1
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SBIN/GETTY.S
|
SAVE /A2OSX.SRC/SBIN/GETTY.S
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
NEW
|
NEW
|
||||||
INC 1
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 6
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
@ -17,6 +15,7 @@ CONN.MAX .EQ 16
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPIPCfgPtr .EQ ZPBIN
|
ZPIPCfgPtr .EQ ZPBIN
|
||||||
ZPSktPtr .EQ ZPBIN+2
|
ZPSktPtr .EQ ZPBIN+2
|
||||||
|
ZPLinePtr .EQ ZPBIN+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -25,9 +24,10 @@ CS.START cld
|
|||||||
.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
|
.DA 0
|
||||||
.DA CS.END-CS.START Code Length To Relocate
|
.DA CS.END-CS.START CS
|
||||||
.DA DS.END-DS.START Data Segment to Allocate
|
.DA DS.END-DS.START DS
|
||||||
.DA 0
|
.DA #64 SS
|
||||||
|
.DA #6 ZP
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
@ -48,7 +48,7 @@ L.HTTP.200OK .DA HTTP.200OK
|
|||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>SYSCALL LoadLibYA
|
>SYSCALL LoadLib.YA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
lda (pPs)
|
lda (pPs)
|
||||||
@ -72,20 +72,26 @@ CS.RUN jsr Init.Timeout
|
|||||||
>SLEEP
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .1
|
bcc .1
|
||||||
>SYSCALL GetC
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
cmp #$03
|
cmp #$03
|
||||||
bne .1
|
bne .1
|
||||||
jmp CS.RUN.ABORT
|
|
||||||
|
>LDYA L.MSG.ABORT
|
||||||
|
>SYSCALL PrintF.YA
|
||||||
|
lda #0
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
.99 >LDYA L.MSG.TCPIPERR
|
.99 >LDYA L.MSG.TCPIPERR
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
lda #K.E.SYN
|
lda #K.E.SYN
|
||||||
sec
|
sec
|
||||||
rts
|
CS.RUN.RTS rts
|
||||||
|
|
||||||
CS.RUN.INIT ldx #3
|
CS.RUN.INIT ldx #3
|
||||||
ldy #S.IPCFG.IP+3
|
ldy #S.IPCFG.IP+3
|
||||||
|
|
||||||
.1 lda (ZPIPCfgPtr),y
|
.1 lda (ZPIPCfgPtr),y
|
||||||
sta Socket.Src.Addr,x
|
sta Socket.Src.Addr,x
|
||||||
dey
|
dey
|
||||||
@ -94,15 +100,23 @@ CS.RUN.INIT ldx #3
|
|||||||
|
|
||||||
>PUSHW L.Socket
|
>PUSHW L.Socket
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.New
|
||||||
bcs .9
|
bcs CS.RUN.RTS
|
||||||
txa
|
txa
|
||||||
ldy #hSrvSocket
|
ldy #hSrvSocket
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL GetMem.YA
|
||||||
|
bcs CS.RUN.RTS
|
||||||
|
|
||||||
|
>STYA ZPLinePtr
|
||||||
|
txa
|
||||||
|
>STA.G hLineBuf
|
||||||
|
|
||||||
>LDYA L.MSG.INITOK
|
>LDYA L.MSG.INITOK
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
.2 >SLEEP
|
CS.RUN.LOOP >SLEEP
|
||||||
jsr CS.RUN.SERVER
|
jsr CS.RUN.SERVER
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
@ -124,7 +138,7 @@ CS.RUN.INIT ldx #3
|
|||||||
|
|
||||||
.4 sta (pData),y
|
.4 sta (pData),y
|
||||||
|
|
||||||
bra .2
|
bra CS.RUN.LOOP
|
||||||
|
|
||||||
.9 >LDYA L.MSG.SKTERR
|
.9 >LDYA L.MSG.SKTERR
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
@ -132,10 +146,6 @@ CS.RUN.INIT ldx #3
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
CS.RUN.ABORT >LDYA L.MSG.ABORT
|
|
||||||
>SYSCALL PrintF.YA
|
|
||||||
lda #0
|
|
||||||
|
|
||||||
CS.RUN.ERR sec
|
CS.RUN.ERR sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -183,13 +193,14 @@ CS.RUN.SERVER ldy #hSrvSocket
|
|||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.CLIENT sta hClntSocket
|
CS.RUN.CLIENT sta hClntSocket
|
||||||
|
|
||||||
>PUSHA hSocket
|
>PUSHA hSocket
|
||||||
>PUSHWI UsrBuf256
|
>PUSHW ZPLinePtr
|
||||||
>PUSHWI 256
|
>PUSHWI 256
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetS
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.GetS
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
>LDYAI UsrBuf256
|
>PUSHW ZPLinePtr
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
>PUSHB hClntSocket
|
>PUSHB hClntSocket
|
||||||
@ -222,8 +233,13 @@ CS.QUIT ldx #CONN.MAX
|
|||||||
lda (pData),y
|
lda (pData),y
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.CLOSEA
|
||||||
|
|
||||||
lda hLIBTCPIP
|
>LDA.G hLineBuf
|
||||||
>SYSCALL UnloadLibA
|
beq .3
|
||||||
|
|
||||||
|
>SYSCALL FreeMem.A
|
||||||
|
|
||||||
|
.3 lda hLIBTCPIP
|
||||||
|
>SYSCALL UnloadLib.A
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -241,7 +257,7 @@ Wait.TimeOut sec
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LIBTCPIP >PSTR "libtcpip.o"
|
LIBTCPIP .AZ "libtcpip.o"
|
||||||
MSG.TCPWAIT .AZ "HTTPD:Waiting for TCP/IP initializing...\r\n"
|
MSG.TCPWAIT .AZ "HTTPD:Waiting for TCP/IP initializing...\r\n"
|
||||||
MSG.INITOK .AZ "HTTPD:Init Ok, Listening.\r\n"
|
MSG.INITOK .AZ "HTTPD:Init Ok, Listening.\r\n"
|
||||||
MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly\r\n"
|
MSG.TCPIPERR .AZ "HTTPD:TCP/IP Not initialized properly\r\n"
|
||||||
@ -251,7 +267,7 @@ MSG.INCOMING .AZ "HTTPD:Incoming Connection [SKT=%h] From : %d.%d.%d.%d\r\n"
|
|||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
hClntSocket .BS 1
|
hClntSocket .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HTTP.200OK >PSTR "HTTP/1.1 200 OK\r\n"
|
HTTP.200OK .AZ "HTTP/1.1 200 OK\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Socket .DA #S.SOCKET.SOCK.STREAM
|
Socket .DA #S.SOCKET.SOCK.STREAM
|
||||||
.DA #S.SOCKET.SO.ACCEPTCONN
|
.DA #S.SOCKET.SO.ACCEPTCONN
|
||||||
@ -266,6 +282,7 @@ Socket.Dst.Port .BS 2
|
|||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
hSockets .BS CONN.MAX pData
|
hSockets .BS CONN.MAX pData
|
||||||
|
hLineBuf .BS 1
|
||||||
SktIndex .BS 1
|
SktIndex .BS 1
|
||||||
hSrvSocket .BS 1
|
hSrvSocket .BS 1
|
||||||
TimeOut .BS 1
|
TimeOut .BS 1
|
||||||
|
@ -165,12 +165,16 @@ CS.RUN.Load >PUSHEA.G StatBuf
|
|||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
* sec
|
* sec
|
||||||
* lda UsrBuf256+S.STAT.SIZE
|
* >LDA.G StatBuf+S.STAT.SIZE
|
||||||
* eor #16
|
* eor #16
|
||||||
* bne .99
|
* bne .99
|
||||||
* lda UsrBuf256+S.STAT.SIZE+1
|
|
||||||
* ora UsrBuf256+S.STAT.SIZE+2
|
* iny
|
||||||
* ora UsrBuf256+S.STAT.SIZE+3
|
* lda (pData),y
|
||||||
|
* iny
|
||||||
|
* ora (pData),y
|
||||||
|
* iny
|
||||||
|
* ora (pData),y
|
||||||
* bne .99
|
* bne .99
|
||||||
|
|
||||||
>LDA.G StatBuf+S.STAT.P.TYPE
|
>LDA.G StatBuf+S.STAT.P.TYPE
|
||||||
|
@ -60,8 +60,12 @@ CS.RUN lda #0
|
|||||||
|
|
||||||
.1 >SLEEP
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1 no char
|
bcc .11
|
||||||
jsr INPUT.CHARIN
|
tax
|
||||||
|
beq .1 no char
|
||||||
|
bra .9
|
||||||
|
|
||||||
|
.11 jsr INPUT.CHARIN
|
||||||
jsr INPUT.LINEIN
|
jsr INPUT.LINEIN
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
@ -74,8 +78,12 @@ CS.RUN lda #0
|
|||||||
|
|
||||||
.2 >SLEEP
|
.2 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .2 no char
|
bcc .22
|
||||||
jsr INPUT.CHARIN
|
tax
|
||||||
|
beq .2 no char
|
||||||
|
bra .9
|
||||||
|
|
||||||
|
.22 jsr INPUT.CHARIN
|
||||||
jsr INPUT.LINEIN
|
jsr INPUT.LINEIN
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
@ -90,18 +98,18 @@ CS.RUN lda #0
|
|||||||
>SYSCALL ExpandStr.YA
|
>SYSCALL ExpandStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
stx .3+1
|
phx
|
||||||
>SYSCALL ExecPS.YA
|
>SYSCALL ExecPS.YA
|
||||||
|
|
||||||
|
plx
|
||||||
|
|
||||||
php
|
php
|
||||||
pha
|
pha
|
||||||
.3 lda #$ff Self Modified
|
txa
|
||||||
>SYSCALL FreeMem.A
|
>SYSCALL FreeMem.A
|
||||||
pla
|
pla
|
||||||
plp
|
plp
|
||||||
rts
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT
|
CS.DOEVENT
|
||||||
|
@ -1,8 +1,6 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
NEW
|
NEW
|
||||||
INC 1
|
PREFIX /A2OSX.BUILD
|
||||||
AUTO 6
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
@ -11,9 +9,10 @@ AUTO 6
|
|||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||||
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
||||||
|
.INB /A2OSX.BUILD/INC/MLI.ERR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPIPCfgPtr .EQ ZPBIN
|
ZPIPCfgPtr .EQ ZPBIN
|
||||||
ZPIPDevPtr .EQ ZPBIN+2
|
ZPDevStatusPtr .EQ ZPBIN+2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -97,32 +96,34 @@ CS.INIT.DEV >LDYA L.DEVNAME
|
|||||||
|
|
||||||
>LDYA L.MSG.DEV.KO
|
>LDYA L.MSG.DEV.KO
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
lda #$28 MLI.ERR.NODEV
|
lda #MLI.E.NODEV
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 >STYA ZPIPDevPtr
|
.1 txa
|
||||||
>STYA NetDevJmp+1
|
>STA.G hDev
|
||||||
stx hNetDev
|
sta IPCFG+S.IPCFG.HDEV
|
||||||
stx IPCFG+S.IPCFG.HDEV
|
|
||||||
|
|
||||||
>PUSHW L.DEVNAME
|
>PUSHW L.DEVNAME
|
||||||
>LDYA L.MSG.DEV.OK
|
>LDYA L.MSG.DEV.OK
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
ldx #DEVMGR.OPEN
|
>PUSHB.G hDev
|
||||||
jsr NetDevJmp
|
>PUSHBI DEVMGR.OPEN
|
||||||
|
>PUSHWI 0
|
||||||
|
>SYSCALL IOCTL
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldx #DEVMGR.STATUS
|
>LDA.G hDev
|
||||||
jsr NetDevJmp
|
>SYSCALL GetDevStatus.A
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
>STYA ZPIPDevPtr
|
>STYA ZPDevStatusPtr
|
||||||
|
|
||||||
ldy #S.DSTAT+2 MAC
|
ldy #S.DSTAT+2 MAC
|
||||||
ldx #S.IPCFG.MAC
|
ldx #S.IPCFG.MAC
|
||||||
|
|
||||||
.2 lda (ZPIPDevPtr),y
|
.2 lda (ZPDevStatusPtr),y
|
||||||
sta IPCFG,x
|
sta IPCFG,x
|
||||||
iny
|
iny
|
||||||
inx
|
inx
|
||||||
@ -146,11 +147,14 @@ CS.DOEVENT lda (pEvent)
|
|||||||
.9 sec never discard TIME event
|
.9 sec never discard TIME event
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda IPCFG+S.IPCFG.HDEV
|
CS.QUIT >LDA.G hDev
|
||||||
beq .1
|
beq .1
|
||||||
ldx #DEVMGR.CLOSE
|
|
||||||
jsr NetDevJmp
|
>PUSHA
|
||||||
|
>PUSHBI DEVMGR.CLOSE
|
||||||
|
>PUSHWI 0
|
||||||
|
>SYSCALL IOCTL
|
||||||
|
|
||||||
.1 lda hLIBTCPIP
|
.1 lda hLIBTCPIP
|
||||||
>SYSCALL UnloadLib.A
|
>SYSCALL UnloadLib.A
|
||||||
clc
|
clc
|
||||||
@ -174,8 +178,6 @@ A2CharAX pha
|
|||||||
bcc .8
|
bcc .8
|
||||||
adc #6
|
adc #6
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
|
||||||
NetDevJmp jmp *
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.SRC/SBIN/TCPIPD.S.CFG
|
.INB /A2OSX.SRC/SBIN/TCPIPD.S.CFG
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -206,7 +208,6 @@ CFG.Keyword.Map .DA #0 End Of Keyword table and NA Keyword
|
|||||||
.DA #S.IPCFG.DNS1
|
.DA #S.IPCFG.DNS1
|
||||||
.DA #S.IPCFG.DNS2
|
.DA #S.IPCFG.DNS2
|
||||||
hLIBTCPIP .BS 1
|
hLIBTCPIP .BS 1
|
||||||
hNetDev .BS 1
|
|
||||||
IPCFG .BS S.IPCFG
|
IPCFG .BS S.IPCFG
|
||||||
CFG.hCfgFile .BS 1
|
CFG.hCfgFile .BS 1
|
||||||
CFG.hCfgPath .BS 1
|
CFG.hCfgPath .BS 1
|
||||||
@ -220,6 +221,7 @@ UsrBuf256 .BS 256
|
|||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
|
hDev .BS 1
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -76,17 +76,18 @@ K.GetDevDNF lda #MLI.E.NODEV CS from cpx/beq
|
|||||||
* ## OUT:
|
* ## OUT:
|
||||||
* Y,A = S.DSTAT
|
* Y,A = S.DSTAT
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
|
K.DevClose.A ldx #DEVMGR.CLOSE
|
||||||
|
.HS 2C BIT ABS
|
||||||
K.GetDevStatus.A
|
K.GetDevStatus.A
|
||||||
|
ldx #DEVMGR.STATUS
|
||||||
jsr K.GetDevByID.A
|
jsr K.GetDevByID.A
|
||||||
bcs .9
|
bcs K.IOCTL.9
|
||||||
|
|
||||||
>STYA pDev
|
>STYA pDev
|
||||||
|
|
||||||
ldx #DEVMGR.STATUS
|
|
||||||
jmp (pDev)
|
jmp (pDev)
|
||||||
.9 rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # K.DevIOCTL
|
* # K.IOCTL
|
||||||
* ## IN:
|
* ## IN:
|
||||||
* PUSHB = DevID
|
* PUSHB = DevID
|
||||||
* PUSHB = Operation
|
* PUSHB = Operation
|
||||||
@ -94,7 +95,7 @@ K.GetDevStatus.A
|
|||||||
* ## OUT:
|
* ## OUT:
|
||||||
* Y,A = ...
|
* Y,A = ...
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.DevIOCTL >PULLB .1+1
|
K.IOCTL >PULLB .1+1
|
||||||
>PULLB .2+1
|
>PULLB .2+1
|
||||||
|
|
||||||
>PULLA
|
>PULLA
|
||||||
@ -102,7 +103,7 @@ K.DevIOCTL >PULLB .1+1
|
|||||||
|
|
||||||
>PULLA
|
>PULLA
|
||||||
jsr K.GetDevByID.A
|
jsr K.GetDevByID.A
|
||||||
bcs .9
|
bcs K.IOCTL.9
|
||||||
|
|
||||||
>STYA pDev
|
>STYA pDev
|
||||||
|
|
||||||
@ -111,7 +112,7 @@ K.DevIOCTL >PULLB .1+1
|
|||||||
|
|
||||||
jmp (pDev)
|
jmp (pDev)
|
||||||
|
|
||||||
.9 rts
|
K.IOCTL.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||||
|
@ -22,6 +22,10 @@ K.OpenDir.YA jsr PFT.CheckPathYA
|
|||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
stx .8+1
|
stx .8+1
|
||||||
|
|
||||||
|
ldy #S.NODE.T Done by GetMem0
|
||||||
|
lda #S.NODE.T.DIR
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr2),y One char ?
|
lda (ZPPtr2),y One char ?
|
||||||
beq .8 No, Go open dir....
|
beq .8 No, Go open dir....
|
||||||
@ -49,7 +53,7 @@ K.OpenDir.YA jsr PFT.CheckPathYA
|
|||||||
|
|
||||||
.98 pha save MLI error
|
.98 pha save MLI error
|
||||||
lda .8+1
|
lda .8+1
|
||||||
jsr K.CloseDir.A.1
|
jsr K.CloseDir.A
|
||||||
pla get back MLI error
|
pla get back MLI error
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
@ -599,7 +603,6 @@ K.ReadDir.A.ConvertTime
|
|||||||
* none, always succeed.
|
* none, always succeed.
|
||||||
*\-------------------------------------
|
*\-------------------------------------
|
||||||
K.CloseDir.A .EQ K.FClose.A
|
K.CloseDir.A .EQ K.FClose.A
|
||||||
K.CloseDir.A.1 .EQ K.FClose.A.1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.DIRENT
|
||||||
|
@ -49,7 +49,7 @@ K.SYSCALL.JMP .DA 0 $00
|
|||||||
.DA K.GetDevByID.A
|
.DA K.GetDevByID.A
|
||||||
.DA K.GetDevByName.YA
|
.DA K.GetDevByName.YA
|
||||||
.DA K.GetDevStatus.A
|
.DA K.GetDevStatus.A
|
||||||
.DA K.DevIOCTL
|
.DA K.IOCTL
|
||||||
|
|
||||||
.DA 0 $50
|
.DA 0 $50
|
||||||
.DA K.SScanF
|
.DA K.SScanF
|
||||||
|
@ -263,17 +263,21 @@ K.FOpen.10 >LDYAI S.NODE.REG
|
|||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
stx .8+1
|
stx .8+1
|
||||||
|
|
||||||
|
* ldy #S.NODE.T Done by GetMem0
|
||||||
|
* lda #S.NODE.T.REG
|
||||||
|
* sta (ZPPtr1),y
|
||||||
|
|
||||||
jsr STDIO.SetIOBUF
|
jsr STDIO.SetIOBUF
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
>MLICALL MLIOPEN
|
>MLICALL MLIOPEN
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
lda K.MLI.PARAMS+5 get ref_num
|
lda K.MLI.PARAMS+5 get ref_num
|
||||||
ldy #S.NODE.REG.REF
|
ldy #S.NODE.REG.REF
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
||||||
|
|
||||||
lda K.FOpen.MODE
|
lda K.FOpen.MODE
|
||||||
bit #SYS.FOpen.W
|
bit #SYS.FOpen.W
|
||||||
@ -297,7 +301,7 @@ K.FOpen.10 >LDYAI S.NODE.REG
|
|||||||
|
|
||||||
.20 lda K.FOpen.MODE
|
.20 lda K.FOpen.MODE
|
||||||
and #SYS.FOpen.T Text Mode ?
|
and #SYS.FOpen.T Text Mode ?
|
||||||
beq .30
|
beq .8
|
||||||
|
|
||||||
lda #$FF
|
lda #$FF
|
||||||
sta K.MLI.PARAMS+2
|
sta K.MLI.PARAMS+2
|
||||||
@ -305,16 +309,13 @@ K.FOpen.10 >LDYAI S.NODE.REG
|
|||||||
sta K.MLI.PARAMS+3
|
sta K.MLI.PARAMS+3
|
||||||
>MLICALL MLINEWLINE
|
>MLICALL MLINEWLINE
|
||||||
|
|
||||||
.30 ldy #S.NODE.T
|
|
||||||
lda #S.NODE.T.REG
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
.8 lda #$ff Self Modified
|
.8 lda #$ff Self Modified
|
||||||
clc
|
clc
|
||||||
rts CC
|
rts CC
|
||||||
|
|
||||||
.98 pha save MLI error
|
.98 pha save MLI error
|
||||||
lda .8+1
|
lda .8+1
|
||||||
jsr K.FClose.A.1
|
jsr K.FClose.A
|
||||||
pla get back MLI error
|
pla get back MLI error
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
@ -330,13 +331,23 @@ K.FOpen.AUXTYPE .BS 2
|
|||||||
* ## Out :
|
* ## Out :
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.FClose.A jsr PFT.CheckNodeA
|
K.FClose.A jsr PFT.CheckNodeA
|
||||||
pha
|
sta K.FClose.A.8+1
|
||||||
|
|
||||||
jsr K.GetMemPtr.A
|
jsr K.GetMemPtr.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
pla
|
|
||||||
|
ldy #S.NODE.T
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
asl
|
||||||
|
tax
|
||||||
|
jmp (.1,x)
|
||||||
|
|
||||||
K.FClose.A.1 sta K.FClose.A.2+1
|
.1 .DA K.FClose.A.REG
|
||||||
ldy #S.NODE.REG.REF
|
.DA K.FClose.A.DIR
|
||||||
|
.DA K.FClose.A.CDEV
|
||||||
|
|
||||||
|
K.FClose.A.REG
|
||||||
|
K.FClose.A.DIR ldy #S.NODE.REG.REF
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
beq .1
|
beq .1
|
||||||
sta K.MLI.PARAMS+1
|
sta K.MLI.PARAMS+1
|
||||||
@ -344,11 +355,19 @@ K.FClose.A.1 sta K.FClose.A.2+1
|
|||||||
|
|
||||||
.1 ldy #S.NODE.REG.IOBUF
|
.1 ldy #S.NODE.REG.IOBUF
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
beq K.FClose.A.2
|
beq K.FClose.A.8
|
||||||
|
|
||||||
jsr K.FreeMem.A
|
jsr K.FreeMem.A
|
||||||
|
bra K.FClose.A.8
|
||||||
K.FClose.A.2 lda #$ff Self Modified
|
|
||||||
|
K.FClose.A.CDEV ldy #S.NODE.DEV.ID
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
jsr K.DevClose.A
|
||||||
|
bcs K.FClose.A.9
|
||||||
|
|
||||||
|
K.FClose.A.8 lda #$ff Self Modified
|
||||||
jmp K.FreeMem.A
|
jmp K.FreeMem.A
|
||||||
|
K.FClose.A.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FRead.A
|
* # FRead.A
|
||||||
* Read ONE byte (A) from file (Y)
|
* Read ONE byte (A) from file (Y)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user