mirror of
https://github.com/A2osX/A2osX.git
synced 2024-12-31 14:29:28 +00:00
Kernel 0.9.2
This commit is contained in:
parent
4294752153
commit
ad49295e8f
@ -41,7 +41,7 @@ Dev.Detect >LDYA L.MSG.DETECT
|
||||
>SYSCALL InsDrv
|
||||
bcs .9
|
||||
|
||||
>STYA DEV.NODE+S.NODE.DEV.DRVPTR
|
||||
>STYA DEV.NODE+S.FD.DEV.DRVPTR
|
||||
|
||||
>LDYA L.NODE
|
||||
>SYSCALL MKNOD
|
||||
@ -50,7 +50,7 @@ Dev.Detect >LDYA L.MSG.DETECT
|
||||
CS.END
|
||||
MSG.DETECT .AZ "Apple IIe/IIc 80 Col Driver.\r\n"
|
||||
*--------------------------------------
|
||||
NODE .DA #S.NODE.T.CDEV
|
||||
NODE .DA #S.FD.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #0 DEVID
|
||||
|
@ -282,7 +282,7 @@ S.MSTAT .EQ 24
|
||||
C.EOF .EQ 4
|
||||
*--------------------------------------
|
||||
DEVID.NULL .EQ 0
|
||||
DEVID.SYS .EQ 2
|
||||
DEVID.SYS .EQ 1
|
||||
*--------------------------------------
|
||||
IOCTL.STATUS .EQ 0 X,Y = byte count returned
|
||||
IOCTL.READBLOCK .EQ 2
|
||||
@ -359,59 +359,59 @@ S.DSTAT.VERSION .EQ 23
|
||||
*
|
||||
S.DSTAT .EQ 25
|
||||
*--------------------------------------
|
||||
* S.NODE
|
||||
* S.FD
|
||||
*--------------------------------------
|
||||
S.NODE.T .EQ 0
|
||||
S.NODE.T.REG .EQ 0
|
||||
S.NODE.T.DIR .EQ 2
|
||||
S.NODE.T.CDEV .EQ 4
|
||||
S.NODE.T.BDEV .EQ 6
|
||||
S.NODE.T.LNK .EQ 8
|
||||
S.NODE.T.DSOCK .EQ 10
|
||||
S.NODE.T.SSOCK .EQ 12
|
||||
S.NODE.T.FIFO .EQ 14
|
||||
S.NODE.HANDLER .EQ 1 0=KRNL,!0=hLIB (LIBNFS,LIBTCPIP.....)
|
||||
S.FD.T .EQ 0
|
||||
S.FD.T.REG .EQ 0
|
||||
S.FD.T.DIR .EQ 2
|
||||
S.FD.T.CDEV .EQ 4
|
||||
S.FD.T.BDEV .EQ 6
|
||||
S.FD.T.LNK .EQ 8
|
||||
S.FD.T.DSOCK .EQ 10
|
||||
S.FD.T.SSOCK .EQ 12
|
||||
S.FD.T.FIFO .EQ 14
|
||||
S.FD.HANDLER .EQ 1 0=KRNL,!0=hLIB (LIBNFS,LIBTCPIP.....)
|
||||
*--------------------------------------
|
||||
S.NODE.REG.REF .EQ 2
|
||||
S.NODE.REG.IOBUF .EQ 3
|
||||
S.FD.REG.REF .EQ 2
|
||||
S.FD.REG.IOBUF .EQ 3
|
||||
*
|
||||
S.NODE.REG .EQ 4
|
||||
S.FD.REG .EQ 4
|
||||
*--------------------------------------
|
||||
S.NODE.DIR.REF .EQ 2
|
||||
S.NODE.DIR.IOBUF .EQ 3
|
||||
S.NODE.DIR.EL .EQ 4
|
||||
S.NODE.DIR.EPB .EQ 5
|
||||
S.NODE.DIR.FC .EQ 6 word
|
||||
S.FD.DIR.REF .EQ 2
|
||||
S.FD.DIR.IOBUF .EQ 3
|
||||
S.FD.DIR.EL .EQ 4
|
||||
S.FD.DIR.EPB .EQ 5
|
||||
S.FD.DIR.FC .EQ 6 word
|
||||
*
|
||||
S.NODE.DIR .EQ 8
|
||||
S.FD.DIR .EQ 8
|
||||
*--------------------------------------
|
||||
S.NODE.DEV.BUSID .EQ 2
|
||||
S.NODE.DEV.DEVID .EQ 3
|
||||
S.NODE.DEV.BUSPTR .EQ 4 word
|
||||
S.NODE.DEV.DRVPTR .EQ 6 word
|
||||
S.NODE.DEV.NAME .EQ 8 C-String
|
||||
S.FD.DEV.BUSID .EQ 2
|
||||
S.FD.DEV.DEVID .EQ 3
|
||||
S.FD.DEV.BUSPTR .EQ 4 word
|
||||
S.FD.DEV.DRVPTR .EQ 6 word
|
||||
S.FD.DEV.NAME .EQ 8 C-String
|
||||
*
|
||||
S.NODE.DEV .EQ 16
|
||||
S.FD.DEV .EQ 16
|
||||
*--------------------------------------
|
||||
* S.NODE.LNK
|
||||
* S.FD.LNK
|
||||
*--------------------------------------
|
||||
S.NODE.SSOCK.HSKT .EQ 2
|
||||
S.NODE.SSOCK.OPEN .EQ 3
|
||||
S.NODE.SSOCK.CLOSE .EQ 4
|
||||
S.NODE.SSOCK.READ .EQ 5
|
||||
S.NODE.SSOCK.WRITE .EQ 6
|
||||
S.NODE.SSOCK.STATUS .EQ 7
|
||||
S.FD.SSOCK.HSKT .EQ 2
|
||||
S.FD.SSOCK.OPEN .EQ 3
|
||||
S.FD.SSOCK.CLOSE .EQ 4
|
||||
S.FD.SSOCK.READ .EQ 5
|
||||
S.FD.SSOCK.WRITE .EQ 6
|
||||
S.FD.SSOCK.STATUS .EQ 7
|
||||
*
|
||||
S.NODE.SSOCK .EQ 8
|
||||
S.FD.SSOCK .EQ 8
|
||||
*--------------------------------------
|
||||
S.NODE.FIFO.S .EQ 2
|
||||
S.NODE.FIFO.S.Opened .EQ 1
|
||||
S.NODE.FIFO.S.Closed .EQ 2
|
||||
S.NODE.FIFO.hMem .EQ 3
|
||||
S.NODE.FIFO.Tail .EQ 4
|
||||
S.NODE.FIFO.Head .EQ 5
|
||||
S.FD.FIFO.S .EQ 2
|
||||
S.FD.FIFO.S.Opened .EQ 1
|
||||
S.FD.FIFO.S.Closed .EQ 2
|
||||
S.FD.FIFO.hMem .EQ 3
|
||||
S.FD.FIFO.Tail .EQ 4
|
||||
S.FD.FIFO.Head .EQ 5
|
||||
*
|
||||
S.NODE.FIFO .EQ 6
|
||||
S.FD.FIFO .EQ 6
|
||||
*--------------------------------------
|
||||
* PS STRUCT
|
||||
*--------------------------------------
|
||||
|
@ -21,7 +21,7 @@ ZPPtr4 .EQ ZPKERNEL+6
|
||||
|
||||
pIOCTL .EQ ZPKERNEL+8
|
||||
pDev .EQ ZPKERNEL+10
|
||||
pNode .EQ ZPKERNEL+12
|
||||
pFD .EQ ZPKERNEL+12
|
||||
pIOBuf .EQ ZPKERNEL+14
|
||||
*--------------------------------------
|
||||
SYS.BASL0 .EQ $800
|
||||
@ -102,22 +102,25 @@ K.STACKTOP .EQ $03ED XFer !!! down to $3E0
|
||||
*--------------------------------------
|
||||
*** $3F0-$3FF IRQ Handler.... ***
|
||||
*--------------------------------------
|
||||
* Main/Aux $400 -> $7FF : TXT PAGE1 System Screen
|
||||
* Main/Aux $800 -> $BFF : TXT PAGE2 Console Screen
|
||||
* Main/Aux $400 -> $7FF : TXT PAGE1 Console Screen
|
||||
* Main/Aux $800 -> $BFF : TXT PAGE2 System Screen
|
||||
*--------------------------------------
|
||||
* free $0C00->$17FF = $C00 (3072) Aux
|
||||
*--------------------------------------
|
||||
K.Buf256 .EQ $0C00 Main
|
||||
Dev.Table.hMem .EQ $0C00 K.Dev.MAX
|
||||
Dev.Table.F .EQ $0C20 K.Dev.MAX
|
||||
Dev.Table.PTRLO .EQ $0C40 K.Dev.MAX
|
||||
Dev.Table.PTRHI .EQ $0C60 K.Dev.MAX
|
||||
*--------------------------------------
|
||||
PS.Table.PID .EQ $0D00 K.PS.MAX
|
||||
PS.Table.hMem .EQ $0D20 K.PS.MAX
|
||||
PS.Table.hMem .EQ $0D00 K.PS.MAX
|
||||
PS.Table.PID .EQ $0D20 K.PS.MAX
|
||||
PS.Table.Stat .EQ $0D40 K.PS.MAX
|
||||
*--------------------------------------
|
||||
Evt.Table .EQ $0D60 K.EVT.MAX*S.EVT.SIZE=4*8=32b
|
||||
*--------------------------------------
|
||||
Flt.Table .EQ $0D80 K.FLT.MAX*S.FLT.SIZE=4*32=128b
|
||||
*--------------------------------------
|
||||
Dev.Table .EQ $0E00 K.Dev.MAX*2=32*2=64b
|
||||
K.Buf256 .EQ $0E00
|
||||
*--------------------------------------
|
||||
K.IOBuf .EQ $0F00
|
||||
*--------------------------------------
|
||||
|
@ -301,17 +301,17 @@ SKT.AcceptA jsr SKT.GetA.I
|
||||
* A = hFile
|
||||
*\--------------------------------------
|
||||
SKT.MkNodA sta .1+1
|
||||
>LDYAI S.NODE.SSOCK
|
||||
>LDYAI S.FD.SSOCK
|
||||
>SYSCALL GetMem0.YA
|
||||
bcs .9
|
||||
|
||||
>STYA ZPTmpPtr1
|
||||
|
||||
ldy #S.NODE.T
|
||||
lda #S.NODE.T.SSOCK
|
||||
ldy #S.FD.T
|
||||
lda #S.FD.T.SSOCK
|
||||
sta (ZPTmpPtr1),y
|
||||
|
||||
ldy #S.NODE.SSOCK.HSKT
|
||||
ldy #S.FD.SSOCK.HSKT
|
||||
.1 lda #$ff
|
||||
|
||||
sta (ZPTmpPtr1),y
|
||||
@ -325,9 +325,9 @@ SKT.MkNodA sta .1+1
|
||||
|
||||
>STYA ZPTmpPtr1
|
||||
|
||||
ldy #S.NODE.SSOCK-1
|
||||
ldy #S.FD.SSOCK-1
|
||||
|
||||
.2 lda NODE.SSOCK,y
|
||||
.2 lda FD.SSOCK,y
|
||||
sta (ZPTmpPtr1),y
|
||||
dey
|
||||
bpl .2
|
||||
|
@ -112,7 +112,7 @@ L.TCP.IN.JMP .DA TCP.IN.JMP.CLOSED
|
||||
LIB.LOAD ldx RefCount
|
||||
bne .8
|
||||
|
||||
sta NODE.SSOCK+S.NODE.HANDLER
|
||||
sta FD.SSOCK+S.FD.HANDLER
|
||||
jsr ARP.CLEAR
|
||||
jsr DNS.CLEAR
|
||||
|
||||
@ -292,14 +292,14 @@ bTextMode .BS 1
|
||||
HST.SScanF .AZ "%d.%d.%d.%d"
|
||||
IP.ID .BS 2
|
||||
IP.CHECKSUM .BS 4
|
||||
NODE.SSOCK .BS 1 S.NODE.HANDLER
|
||||
.DA #S.NODE.T.SSOCK
|
||||
.BS 1 S.NODE.SSOCK.HSKT
|
||||
.DA #0 S.NODE.SSOCK.OPEN
|
||||
.DA #0 S.NODE.SSOCK.CLOSE
|
||||
FD.SSOCK .BS 1 S.FD.HANDLER
|
||||
.DA #S.FD.T.SSOCK
|
||||
.BS 1 S.FD.SSOCK.HSKT
|
||||
.DA #0 S.FD.SSOCK.OPEN
|
||||
.DA #0 S.FD.SSOCK.CLOSE
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #0 S.NODE.SSOCK.STATUS
|
||||
.DA #0 S.FD.SSOCK.STATUS
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBTCPIP.S
|
||||
|
@ -14,8 +14,8 @@ K.GetDevByID cmp DevMgr.DevCnt
|
||||
|
||||
tax
|
||||
|
||||
lda Dev.Table,x
|
||||
jmp K.GetMemPtr
|
||||
ldy Dev.Table.PTRLO,x
|
||||
lda Dev.Table.PTRHI,x
|
||||
|
||||
* clc
|
||||
|
||||
@ -33,14 +33,14 @@ K.GetDevByName >STYA ZPPtr1
|
||||
|
||||
ldx #0
|
||||
|
||||
ldy Dev.Table,x
|
||||
jsr K.GetMemPtr
|
||||
ldy Dev.Table.PTRLO,x
|
||||
lda Dev.Table.PTRHI,x
|
||||
|
||||
>STYA ZPPtr2
|
||||
|
||||
lda (ZPPtr2)
|
||||
clc
|
||||
adc #S.NODE.DEV.NAME
|
||||
adc #S.FD.DEV.NAME
|
||||
sta ZPPtr3
|
||||
ldy #1
|
||||
lda (ZPPtr2)
|
||||
@ -78,8 +78,6 @@ K.GetDev.NODEV lda #MLI.E.NODEV
|
||||
* **Out:**
|
||||
* Y,A = S.DSTAT
|
||||
*\--------------------------------------
|
||||
K.DevClose ldx #IOCTL.CLOSE
|
||||
.HS 2C BIT ABS
|
||||
K.GetDevStatus ldx #IOCTL.STATUS
|
||||
jsr K.GetDevByID
|
||||
bcs K.IOCTL.9
|
||||
@ -90,12 +88,12 @@ K.GetDevStatus ldx #IOCTL.STATUS
|
||||
*/--------------------------------------
|
||||
* # IOCTL
|
||||
* ## C
|
||||
* `int ioctl ( short int id, short int op, void *param);`
|
||||
* `int ioctl(int fd, unsigned long request, ...);`
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* `PUSHWI param`
|
||||
* `lda #op`
|
||||
* `ldy id`
|
||||
* `lda #request`
|
||||
* `ldy fd`
|
||||
* `>SYSCALL IOCTL`
|
||||
* **Out:**
|
||||
* Y,A = ...
|
||||
|
@ -15,15 +15,15 @@ K.OpenDir jsr PFT.CheckPathYA
|
||||
>STYA ZPPtr2
|
||||
jsr STDIO.SetMLIPathYA For GETFILEINFO,MLIOPEN
|
||||
|
||||
>LDYAI S.NODE.DIR
|
||||
>LDYAI S.FD.DIR
|
||||
jsr K.GetMem0
|
||||
bcs .99
|
||||
|
||||
>STYA ZPPtr1
|
||||
stx .8+1
|
||||
|
||||
ldy #S.NODE.T Done by GetMem0
|
||||
lda #S.NODE.T.DIR
|
||||
ldy #S.FD.T Done by GetMem0
|
||||
lda #S.FD.T.DIR
|
||||
sta (ZPPtr1),y
|
||||
|
||||
ldy #1
|
||||
@ -44,7 +44,7 @@ K.OpenDir jsr PFT.CheckPathYA
|
||||
bcs .98
|
||||
|
||||
lda K.MLI.PARAMS+5 get ref_num
|
||||
ldy #S.NODE.DIR.REF
|
||||
ldy #S.FD.DIR.REF
|
||||
sta (ZPPtr1),y
|
||||
|
||||
.8 lda #$ff Self Modified
|
||||
@ -83,7 +83,7 @@ K.ReadDir jsr PFT.CheckNodeA
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #S.NODE.DIR.REF
|
||||
ldy #S.FD.DIR.REF
|
||||
lda (ZPPtr1),y
|
||||
beq K.ReadDir.ROOT
|
||||
jmp K.ReadDir.DIR
|
||||
@ -94,7 +94,7 @@ K.ReadDir.NoMore
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.ReadDir.ROOT
|
||||
ldy #S.NODE.DIR.FC did we already returned something ?
|
||||
ldy #S.FD.DIR.FC did we already returned something ?
|
||||
lda (ZPPtr1),y
|
||||
bne K.ReadDir.NoMore
|
||||
|
||||
@ -207,7 +207,7 @@ K.ReadDir.ROOT
|
||||
* lda #0 done by S.MEM.F.INIT0
|
||||
* sta (ZPPtr4) Ending 0
|
||||
|
||||
.5 ldy #S.NODE.DIR.FC
|
||||
.5 ldy #S.FD.DIR.FC
|
||||
lda #16
|
||||
sta (ZPPtr1),y Flag that we returned somthing for next time
|
||||
|
||||
@ -239,7 +239,7 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||
>MLICALL MLIREAD Read A block from directory
|
||||
bcs .98
|
||||
|
||||
ldy #S.NODE.DIR.EL Check if first run....
|
||||
ldy #S.FD.DIR.EL Check if first run....
|
||||
lda (ZPPtr1),y
|
||||
bne .2 no, we have all we need....
|
||||
|
||||
@ -261,7 +261,7 @@ K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
|
||||
sec
|
||||
.99 rts
|
||||
|
||||
.2 ldy #S.NODE.DIR.EL+3
|
||||
.2 ldy #S.FD.DIR.EL+3
|
||||
ldx #3
|
||||
|
||||
.3 lda (ZPPtr1),y get this session parameters from S.DIR
|
||||
@ -404,7 +404,7 @@ K.ReadDir.DIR2 jsr K.ReadDir.GetBuf
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldx #3
|
||||
ldy #S.NODE.DIR.EL+3
|
||||
ldy #S.FD.DIR.EL+3
|
||||
|
||||
.81 lda K.ReadDir.EL,x Store back this session prameters to S.DIR
|
||||
sta (ZPPtr1),y
|
||||
|
@ -104,13 +104,13 @@ DRV.BLK txa
|
||||
lsr
|
||||
sta DRV.BLK.PARAMS CMD
|
||||
|
||||
ldy #S.NODE.DEV.DEVID Drive 1, or 2
|
||||
ldy #S.FD.DEV.DEVID Drive 1, or 2
|
||||
lda (pDev),y
|
||||
dec O or 1
|
||||
lsr in Carry
|
||||
php
|
||||
|
||||
ldy #S.NODE.DEV.BUSID
|
||||
ldy #S.FD.DEV.BUSID
|
||||
lda (pDev),y
|
||||
asl
|
||||
asl
|
||||
@ -132,12 +132,12 @@ DRV.BLK txa
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
ldy #S.NODE.DEV.BUSPTR
|
||||
ldy #S.FD.DEV.BUSPTR
|
||||
|
||||
lda (pNode),y
|
||||
lda (pFD),y
|
||||
sta .3+1
|
||||
iny
|
||||
lda (pNode),y
|
||||
lda (pFD),y
|
||||
sta .3+2
|
||||
|
||||
jsr GO.ProDOS
|
||||
@ -169,11 +169,11 @@ DRV.SmartPort cld
|
||||
lda DRV.SmartPort.Cnt,x
|
||||
sta DRV.SmartPort.Go.Cmd
|
||||
|
||||
ldy #S.NODE.DEV.BUSPTR
|
||||
lda (pNode),y
|
||||
ldy #S.FD.DEV.BUSPTR
|
||||
lda (pFD),y
|
||||
sta .8+1
|
||||
iny
|
||||
lda (pNode),y
|
||||
lda (pFD),y
|
||||
sta .8+2
|
||||
|
||||
.8 jsr $ffff
|
||||
|
@ -2,7 +2,7 @@ NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
Kernel.Init sei
|
||||
Kernel.Init2 sei
|
||||
ldx #$FF
|
||||
txs
|
||||
sta SETALTZP
|
||||
@ -11,8 +11,8 @@ Kernel.Init sei
|
||||
stx A2osX.SaveSX
|
||||
|
||||
sta CLRALTZP Make sure MAIN ZP is enabled for X.PRINT.F
|
||||
*--------------------------------------
|
||||
Kernel.Init2 >LDAXI MSG.Init2
|
||||
|
||||
>LDAXI MSG.Init2
|
||||
jsr PrintFAX
|
||||
|
||||
>LDAXI MSG.MAIN
|
||||
@ -23,7 +23,7 @@ Kernel.Init2 >LDAXI MSG.Init2
|
||||
>LDYAI CORE.Run
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.MAIN.S^$FFFF
|
||||
>STYA ZPPtr3
|
||||
|
||||
jsr Kernel.Move
|
||||
|
||||
>LDAXI MSG.AUX
|
||||
@ -48,7 +48,7 @@ Kernel.Init2 >LDAXI MSG.Init2
|
||||
>LDYAI A2osX.SYSCALL
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.GP.S^$FFFF
|
||||
>STYA ZPPtr3
|
||||
|
||||
jsr Kernel.Move
|
||||
|
||||
sta CLRALTZP
|
||||
@ -65,7 +65,7 @@ Kernel.Init2 >LDAXI MSG.Init2
|
||||
>LDYAI $D000
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.D2.S^$FFFF
|
||||
>STYA ZPPtr3
|
||||
|
||||
jsr Kernel.Move
|
||||
|
||||
sta CLRALTZP
|
||||
@ -82,7 +82,7 @@ Kernel.Init2 >LDAXI MSG.Init2
|
||||
>LDYAI $D000
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.D1.S^$FFFF
|
||||
>STYA ZPPtr3
|
||||
|
||||
jsr Kernel.Move
|
||||
|
||||
sta CLRALTZP
|
||||
@ -99,7 +99,7 @@ Kernel.Init2 >LDAXI MSG.Init2
|
||||
>LDYAI $E000
|
||||
>STYA ZPPtr2
|
||||
>LDYAI A2osX.E0.S^$FFFF
|
||||
>STYA ZPPtr3
|
||||
|
||||
jsr Kernel.Move
|
||||
|
||||
sta CLRALTZP Make MAIN ZP is enabled for X.PRINT.F
|
||||
@ -136,10 +136,10 @@ Kernel.Init3 sta SETALTZP
|
||||
|
||||
jsr MemMgrInit
|
||||
|
||||
>LDYAI NODE.NULL
|
||||
>LDYAI FD.NULL
|
||||
jsr DevMgrInit.AddCDev
|
||||
|
||||
>LDYAI NODE.SYS
|
||||
>LDYAI FD.SYS
|
||||
jsr DevMgrInit.AddCDev
|
||||
|
||||
jsr PS0Init
|
||||
@ -219,7 +219,10 @@ IsDigit.9 sec
|
||||
.EP
|
||||
Kernel.ZP.S .EQ *-Kernel.ZP
|
||||
*--------------------------------------
|
||||
Kernel.Move ldy #0
|
||||
Kernel.Move >STYA ZPPtr3
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 inc ZPPtr3
|
||||
bne .2
|
||||
inc ZPPtr3+1
|
||||
@ -233,8 +236,41 @@ Kernel.Move ldy #0
|
||||
inc ZPPtr1+1
|
||||
inc ZPPtr2+1
|
||||
bne .1
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KConfigLoad >LDAXI MSG.KCREAD
|
||||
jsr PrintFAX
|
||||
|
||||
jsr MLI
|
||||
.DA #MLIOPEN
|
||||
.DA MLIOPEN00
|
||||
bcs .9
|
||||
|
||||
lda MLIOPEN00+5
|
||||
sta MLIREAD00+1
|
||||
sta MLICLOSE00+1
|
||||
|
||||
jsr MLI
|
||||
.DA #MLIREAD
|
||||
.DA MLIREAD00
|
||||
php
|
||||
pha
|
||||
jsr MLI
|
||||
.DA #MLICLOSE
|
||||
.DA MLICLOSE00
|
||||
pla
|
||||
plp
|
||||
bcs .9
|
||||
|
||||
>LDAXI MSG.KCREAD.OK
|
||||
jsr PrintFAX
|
||||
rts
|
||||
|
||||
.9 >LDAXI MSG.KCREAD.KO
|
||||
jsr PrintFAX
|
||||
rts
|
||||
*--------------------------------------
|
||||
CPU.Init >LDAXI MSG.CPU
|
||||
jsr PrintFAX
|
||||
|
||||
@ -399,38 +435,6 @@ DetectZ80 ldx #Z80Code.Size
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
KConfigLoad >LDAXI MSG.KCREAD
|
||||
jsr PrintFAX
|
||||
|
||||
jsr MLI
|
||||
.DA #MLIOPEN
|
||||
.DA MLIOPEN00
|
||||
bcs .9
|
||||
|
||||
lda MLIOPEN00+5
|
||||
sta MLIREAD00+1
|
||||
sta MLICLOSE00+1
|
||||
|
||||
jsr MLI
|
||||
.DA #MLIREAD
|
||||
.DA MLIREAD00
|
||||
php
|
||||
pha
|
||||
jsr MLI
|
||||
.DA #MLICLOSE
|
||||
.DA MLICLOSE00
|
||||
pla
|
||||
plp
|
||||
bcs .9
|
||||
|
||||
>LDAXI MSG.KCREAD.OK
|
||||
jsr PrintFAX
|
||||
rts
|
||||
|
||||
.9 >LDAXI MSG.KCREAD.KO
|
||||
jsr PrintFAX
|
||||
rts
|
||||
*--------------------------------------
|
||||
Z80Code.Start .HS 31FF00 START: LD SP,000FFH Init Stack
|
||||
.HS 3EFF LD A,0FFH Set Flag
|
||||
.HS 320D00 LD (FLAG),A
|
||||
@ -780,13 +784,13 @@ DevMgrInit >LDYAI MSG.DEV
|
||||
tax 000DSSS0
|
||||
lsr 0000DSSS
|
||||
and #$7
|
||||
sta NODE.BDEV+S.NODE.DEV.BUSID
|
||||
sta FD.BDEV+S.FD.DEV.BUSID
|
||||
|
||||
lda DEVPTRS,x
|
||||
sta NODE.BDEV+S.NODE.DEV.BUSPTR
|
||||
sta FD.BDEV+S.FD.DEV.BUSPTR
|
||||
|
||||
lda DEVPTRS+1,x
|
||||
sta NODE.BDEV+S.NODE.DEV.BUSPTR+1
|
||||
sta FD.BDEV+S.FD.DEV.BUSPTR+1
|
||||
|
||||
sta ZPPtr1+1
|
||||
stz ZPPtr1
|
||||
@ -794,7 +798,7 @@ DevMgrInit >LDYAI MSG.DEV
|
||||
plp
|
||||
lda #0
|
||||
adc #1 Make DevID 1 or 2
|
||||
sta NODE.BDEV+S.NODE.DEV.DEVID
|
||||
sta FD.BDEV+S.FD.DEV.DEVID
|
||||
|
||||
lda ZPPtr1+1
|
||||
|
||||
@ -832,11 +836,11 @@ DevMgrInit >LDYAI MSG.DEV
|
||||
|
||||
lda ZPPtr1 get $Cn
|
||||
and #$f get $0n
|
||||
cmp NODE.BDEV+S.NODE.DEV.DEVID same as SSS ?
|
||||
cmp FD.BDEV+S.FD.DEV.DEVID same as SSS ?
|
||||
beq .51
|
||||
|
||||
inc NODE.BDEV+S.NODE.DEV.DEVID Remapped SP devices....
|
||||
inc NODE.BDEV+S.NODE.DEV.DEVID Add 2 to DEVID (2 & 3)
|
||||
inc FD.BDEV+S.FD.DEV.DEVID Remapped SP devices....
|
||||
inc FD.BDEV+S.FD.DEV.DEVID Add 2 to DEVID (2 & 3)
|
||||
|
||||
.51 jsr DevMgrInit.SP
|
||||
lda #A2osX.S.SP
|
||||
@ -845,7 +849,7 @@ DevMgrInit >LDYAI MSG.DEV
|
||||
.6 jsr DevMgrInit.BLK
|
||||
lda #A2osX.S.BLK
|
||||
|
||||
.7 ldx NODE.BDEV+S.NODE.DEV.DEVID
|
||||
.7 ldx FD.BDEV+S.FD.DEV.DEVID
|
||||
sta A2osX.S,x
|
||||
|
||||
.8 dec DevMgrInit.DEVCNT
|
||||
@ -868,7 +872,7 @@ DevMgrInit.USR >LDYAI DRV.BlkDevice
|
||||
*--------------------------------------
|
||||
DevMgrInit.BLK ldy #$ff
|
||||
lda (ZPPtr1),y
|
||||
sta NODE.BDEV+S.NODE.DEV.BUSPTR
|
||||
sta FD.BDEV+S.FD.DEV.BUSPTR
|
||||
|
||||
>LDYAI DRV.BlkDevice
|
||||
jmp DevMgrInit.AddBDev
|
||||
@ -878,11 +882,11 @@ DevMgrInit.SP ldy #$ff
|
||||
clc
|
||||
adc #3 Compute smartport entry point
|
||||
sta .1+1
|
||||
sta NODE.BDEV+S.NODE.DEV.BUSPTR
|
||||
sta FD.BDEV+S.FD.DEV.BUSPTR
|
||||
lda ZPPtr1+1
|
||||
sta .1+2
|
||||
|
||||
lda NODE.BDEV+S.NODE.DEV.DEVID
|
||||
lda FD.BDEV+S.FD.DEV.DEVID
|
||||
sta SP.DEV.STATUS.DEVID
|
||||
|
||||
.1 jsr $ffff Self Modified
|
||||
@ -890,43 +894,55 @@ DevMgrInit.SP ldy #$ff
|
||||
.DA SP.DEV.STATUS
|
||||
bcs .9
|
||||
|
||||
ldx SP.DEV.STATUS.DATA+S.DSTAT.S
|
||||
|
||||
>LDYAI DRV.SmartPort
|
||||
jsr DevMgrInit.AddBDev
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
DevMgrInit.AddBDev
|
||||
>STYA NODE.BDEV+S.NODE.DEV.DRVPTR
|
||||
>STYA FD.BDEV+S.FD.DEV.DRVPTR
|
||||
|
||||
lda NODE.BDEV+S.NODE.DEV.BUSID
|
||||
lda FD.BDEV+S.FD.DEV.BUSID
|
||||
ora #$30
|
||||
sta NODE.BDEV+S.NODE.DEV.NAME+1 SnDy
|
||||
sta FD.BDEV+S.FD.DEV.NAME+1 SnDy
|
||||
|
||||
lda NODE.BDEV+S.NODE.DEV.DEVID
|
||||
lda FD.BDEV+S.FD.DEV.DEVID
|
||||
ora #$30
|
||||
sta NODE.BDEV+S.NODE.DEV.NAME+3 SxDn
|
||||
sta FD.BDEV+S.FD.DEV.NAME+3 SxDn
|
||||
|
||||
>LDYAI DEV.BDEV
|
||||
>LDYAI FD.BDEV
|
||||
|
||||
DevMgrInit.AddCDev
|
||||
>STYA .1+1
|
||||
stx .10+1
|
||||
|
||||
>LDYAI S.FD.DEV
|
||||
jsr K.GetMem
|
||||
>STYA .2+1
|
||||
|
||||
txa
|
||||
phx
|
||||
|
||||
ldx DevMgr.DevCnt
|
||||
sta Dev.Table,x
|
||||
inx
|
||||
stx DevMgr.DevCnt
|
||||
sta Dev.Table.PTRHI,x
|
||||
tya
|
||||
sta Dev.Table.PTRLO,x
|
||||
pla
|
||||
sta Dev.Table.hMem,x
|
||||
.10+1 lda #$ff SELF MODIFIED
|
||||
sta Dev.Table.F,x
|
||||
|
||||
ldx #S.NODE.DEV-1
|
||||
ldx #S.FD.DEV-1
|
||||
|
||||
.1 lda $ffff,x SELF MODIFIED
|
||||
.2 sta $ffff,x SELF MODIFIED
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
|
||||
jsr $ffff
|
||||
|
||||
inc DevMgr.DevCnt
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -934,7 +950,7 @@ DevMgrInit.AddCDev
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
DEV.NULL .DA #S.NODE.T.CDEV
|
||||
FD.NULL .DA #S.FD.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.NULL
|
||||
@ -943,7 +959,7 @@ DEV.NULL .DA #S.NODE.T.CDEV
|
||||
.AZ "NULL" NAME
|
||||
.HS 000000
|
||||
*--------------------------------------
|
||||
DEV.SYS .DA #S.NODE.T.CDEV
|
||||
FD.SYS .DA #S.FD.T.CDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #DEVID.SYS
|
||||
@ -952,7 +968,7 @@ DEV.SYS .DA #S.NODE.T.CDEV
|
||||
.AZ "SYS" NAME
|
||||
.HS 00000000
|
||||
*--------------------------------------
|
||||
DEV.BDEV .DA #S.NODE.T.BDEV
|
||||
FD.BDEV .DA #S.FD.T.BDEV
|
||||
.DA #0 HANDLER
|
||||
.DA #0 BUSID
|
||||
.DA #0 DEVID
|
||||
@ -968,7 +984,7 @@ SP.DEV.STATUS .DA #3
|
||||
SP.DEV.STATUS.DEVID
|
||||
.BS 1
|
||||
.DA SP.DEV.STATUS.DATA
|
||||
.DA #3 return DIB
|
||||
.DA S.IOCTL.STATCODE.GETDIB
|
||||
SP.DEV.STATUS.DATA
|
||||
.BS S.DSTAT
|
||||
*--------------------------------------
|
||||
|
@ -2,13 +2,21 @@ NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
IO.OPEN
|
||||
* int open(const char *pathname, int flags);
|
||||
*--------------------------------------
|
||||
IO.SELECT jsr K.GetMemPtr
|
||||
>STYA pNode
|
||||
rts
|
||||
IO.OPEN jsr IO.SELECT
|
||||
*--------------------------------------
|
||||
IO.WRITE lda (pNode) #S.NODE.T
|
||||
* int close(int fd);
|
||||
*--------------------------------------
|
||||
IO.CLOSE
|
||||
*--------------------------------------
|
||||
* int read(int fd, void *buf, size_t count);
|
||||
*--------------------------------------
|
||||
IO.READ
|
||||
*--------------------------------------
|
||||
* int write(int fd, const void *buf, size_t count);
|
||||
*--------------------------------------
|
||||
IO.WRITE lda (pFD) #S.FD.T
|
||||
tax
|
||||
*--------------------------------------
|
||||
jmp (.1,x)
|
||||
@ -23,54 +31,54 @@ IO.WRITE lda (pNode) #S.NODE.T
|
||||
*--------------------------------------
|
||||
IO.WRITE.REG >PUSHW K.S.IOCTL+S.IOCTL.BUFPTR
|
||||
>PUSHW K.S.IOCTL+S.IOCTL.BYTECNT
|
||||
ldy #S.NODE.REG.REF
|
||||
>PUSHB (pNode),y
|
||||
ldy #S.FD.REG.REF
|
||||
>PUSHB (pFD),y
|
||||
|
||||
jmp K.FWrite
|
||||
*--------------------------------------
|
||||
IO.WRITE.CDEV ldy #S.NODE.DEV.DRVPTR
|
||||
lda (pNode),y
|
||||
IO.WRITE.CDEV ldy #S.FD.DEV.DRVPTR
|
||||
lda (pFD),y
|
||||
sta .1+1
|
||||
iny
|
||||
lda (pNode),y
|
||||
lda (pFD),y
|
||||
sta .1+2
|
||||
|
||||
lda K.IOBuf
|
||||
ldx #IOCTL.WRITE
|
||||
.1 jmp $ffff
|
||||
*--------------------------------------
|
||||
IO.WRITE.SSOCK lda (pNode) #S.NODE.HANDLER
|
||||
IO.WRITE.SSOCK lda (pFD) #S.FD.HANDLER
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1
|
||||
|
||||
ldy #S.NODE.SSOCK.HSKT
|
||||
>PUSHB (pNode),y
|
||||
ldy #S.FD.SSOCK.HSKT
|
||||
>PUSHB (pFD),y
|
||||
>PUSHB K.IOBuf
|
||||
|
||||
ldy #S.NODE.SSOCK.WRITE
|
||||
lda (pNode),y
|
||||
ldy #S.FD.SSOCK.WRITE
|
||||
lda (pFD),y
|
||||
tax Function Offset for write
|
||||
.1 jmp $ffff
|
||||
*--------------------------------------
|
||||
IO.WRITE.FIFO ldy #S.NODE.FIFO.S
|
||||
lda (pNode),y
|
||||
IO.WRITE.FIFO ldy #S.FD.FIFO.S
|
||||
lda (pFD),y
|
||||
beq .9 Remote PS did not opened yet the pipe
|
||||
cmp #S.NODE.FIFO.S.Closed
|
||||
cmp #S.FD.FIFO.S.Closed
|
||||
beq .99 Remote PS closed the Pipe
|
||||
|
||||
ldy #S.NODE.FIFO.hMem
|
||||
lda (pNode),y
|
||||
ldy #S.FD.FIFO.hMem
|
||||
lda (pFD),y
|
||||
jsr K.GetMemPtr
|
||||
>STYA .1+2
|
||||
|
||||
ldy #S.NODE.FIFO.Head
|
||||
lda (pNode),y
|
||||
ldy #S.FD.FIFO.Head
|
||||
lda (pFD),y
|
||||
inc
|
||||
dey #S.NODE.FIFO.Tail
|
||||
cmp (pNode),y
|
||||
dey #S.FD.FIFO.Tail
|
||||
cmp (pFD),y
|
||||
beq .9 FIFO is full
|
||||
iny
|
||||
sta (pNode),y
|
||||
sta (pFD),y
|
||||
tay
|
||||
lda K.IOBuf
|
||||
.1 sta $ffff,y
|
||||
@ -83,6 +91,10 @@ IO.WRITE.FIFO ldy #S.NODE.FIFO.S
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
IO.SELECT jsr K.GetMemPtr
|
||||
>STYA pFD
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.IO
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
|
@ -190,40 +190,31 @@ K.IrqH.Switch inc IRQ.Tick
|
||||
*--------------------------------------
|
||||
K.IrqH.DEV ldx #0
|
||||
|
||||
.1 lda Dev.Table+1,x
|
||||
.1 lda Dev.Table.F,x
|
||||
and #S.DSTAT.S.IRQ
|
||||
beq .2
|
||||
|
||||
sta $ff
|
||||
lda Dev.Table,x
|
||||
lda Dev.Table.PTRLO,x
|
||||
sta $fe
|
||||
lda Dev.Table.PTRHI,x
|
||||
sta $ff
|
||||
|
||||
ldy #S.NODE.DEV.DRVPTR
|
||||
ldy #S.FD.DEV.DRVPTR
|
||||
lda ($fe),y
|
||||
pha
|
||||
|
||||
sta .10+1
|
||||
iny
|
||||
lda ($fe),y
|
||||
sta $ff
|
||||
pla
|
||||
sta $fe
|
||||
|
||||
ldy #IOCTL.IRQ+4+1
|
||||
lda ($fe),y
|
||||
cmp /A2osX.BADCALL
|
||||
beq .2
|
||||
|
||||
sta .10+2
|
||||
dey
|
||||
lda ($fe),y
|
||||
sta .10+1
|
||||
|
||||
phx
|
||||
ldx #IOCTL.IRQ
|
||||
.10 jsr $ffff SELF MODIFIED
|
||||
|
||||
plx
|
||||
bcc .8 CC, IRQ cleared by device
|
||||
|
||||
.2 inx
|
||||
inx
|
||||
|
||||
.3 cpx DevMgr.DevCnt
|
||||
bne .1
|
||||
|
@ -126,9 +126,9 @@ K.MkNod jsr K.GetDevByName Y,A=NAME
|
||||
>STYA .1+1
|
||||
stx .2+1
|
||||
|
||||
ldy #S.NODE.T
|
||||
ldy #S.FD.T
|
||||
lda (pDev),y
|
||||
cmp #S.NODE.T.CDEV
|
||||
cmp #S.FD.T.CDEV
|
||||
bne .99
|
||||
|
||||
txa Pass DEV.ID to OPEN
|
||||
@ -136,22 +136,22 @@ K.MkNod jsr K.GetDevByName Y,A=NAME
|
||||
.1 jsr $FFFF SELF MODIFIED
|
||||
bcs .9
|
||||
|
||||
>LDYAI S.NODE.DEV
|
||||
>LDYAI S.FD.DEV
|
||||
jsr K.GetMem0
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr3 Ptr3=S.NODE
|
||||
>STYA ZPPtr3 Ptr3=S.FD
|
||||
|
||||
ldy #S.NODE.T
|
||||
lda #S.NODE.T.CDEV
|
||||
ldy #S.FD.T
|
||||
lda #S.FD.T.CDEV
|
||||
sta (ZPPtr3),y
|
||||
|
||||
ldy #S.NODE.DEV.DEVID
|
||||
ldy #S.FD.DEV.DEVID
|
||||
|
||||
.2 lda #$ff Self Modified
|
||||
sta (ZPPtr3),y
|
||||
|
||||
ldy #S.NODE.DEV.DRVPTR
|
||||
ldy #S.FD.DEV.DRVPTR
|
||||
lda .1+1
|
||||
sta (ZPPtr3),y
|
||||
|
||||
@ -180,18 +180,18 @@ K.MKFIFO >LDYAI 256
|
||||
|
||||
stx .1+1 save FIFO buffer
|
||||
|
||||
>LDYAI S.NODE.FIFO
|
||||
>LDYAI S.FD.FIFO
|
||||
jsr K.GetMem0
|
||||
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #S.NODE.T
|
||||
lda #S.NODE.T.FIFO
|
||||
ldy #S.FD.T
|
||||
lda #S.FD.T.FIFO
|
||||
sta (ZPPtr1),y
|
||||
|
||||
iny S.NODE.FIFO.hMem
|
||||
iny S.FD.FIFO.hMem
|
||||
.1 lda #$ff Self Modified
|
||||
sta (ZPPtr1),y
|
||||
txa
|
||||
|
@ -596,7 +596,7 @@ K.GetChar ldy #S.PS.hStdIn
|
||||
K.GetC jsr K.GetMemPtr
|
||||
>STYA pDev
|
||||
|
||||
ldy #S.NODE.T
|
||||
ldy #S.FD.T
|
||||
lda (pDev),y
|
||||
asl
|
||||
tax
|
||||
@ -613,7 +613,7 @@ K.GetC jsr K.GetMemPtr
|
||||
*--------------------------------------
|
||||
K.GetC.REG >PUSHWI K.IOBuf
|
||||
>PUSHWI 1
|
||||
ldy #S.NODE.REG.REF
|
||||
ldy #S.FD.REG.REF
|
||||
>PUSHB (pDev),y
|
||||
|
||||
jsr K.FRead
|
||||
@ -622,7 +622,7 @@ K.GetC.REG >PUSHWI K.IOBuf
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
K.GetC.CDEV ldx #IOCTL.READ
|
||||
ldy #S.NODE.DEV.DRVPTR
|
||||
ldy #S.FD.DEV.DRVPTR
|
||||
lda (pDev),y
|
||||
sta .1+1
|
||||
iny
|
||||
@ -630,15 +630,15 @@ K.GetC.CDEV ldx #IOCTL.READ
|
||||
sta .1+2
|
||||
.1 jmp $ffff
|
||||
*--------------------------------------
|
||||
K.GetC.SSOCK lda (pDev) #S.NODE.HANDLER
|
||||
K.GetC.SSOCK lda (pDev) #S.FD.HANDLER
|
||||
* jsr K.GetMemPtr
|
||||
* >STYA .1+1
|
||||
|
||||
* ldy #S.NODE.SSOCK.READ
|
||||
* ldy #S.FD.SSOCK.READ
|
||||
* lda (pDev),y
|
||||
* tax Function Offset for READ
|
||||
|
||||
* ldy #S.NODE.SSOCK.HSKT
|
||||
* ldy #S.FD.SSOCK.HSKT
|
||||
* lda (pDev),y
|
||||
|
||||
*.1 jmp $ffff
|
||||
@ -840,15 +840,15 @@ K.FOpen jsr PFT.CheckPathSTK
|
||||
bcc K.FOpen.10
|
||||
K.FOpen.9 rts
|
||||
|
||||
K.FOpen.10 >LDYAI S.NODE.REG
|
||||
K.FOpen.10 >LDYAI S.FD.REG
|
||||
jsr K.GetMem0
|
||||
bcs K.FOpen.9
|
||||
|
||||
>STYA ZPPtr1
|
||||
stx .8+1
|
||||
|
||||
* ldy #S.NODE.T Done by GetMem0
|
||||
* lda #S.NODE.T.REG
|
||||
* ldy #S.FD.T Done by GetMem0
|
||||
* lda #S.FD.T.REG
|
||||
* sta (ZPPtr1),y
|
||||
|
||||
jsr STDIO.SetIOBUF
|
||||
@ -858,7 +858,7 @@ K.FOpen.10 >LDYAI S.NODE.REG
|
||||
bcs .98
|
||||
|
||||
lda K.MLI.PARAMS+5 get ref_num
|
||||
ldy #S.NODE.REG.REF
|
||||
ldy #S.FD.REG.REF
|
||||
sta (ZPPtr1),y
|
||||
|
||||
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
||||
@ -909,48 +909,34 @@ K.FOpen.AUXTYPE .BS 2
|
||||
*/--------------------------------------
|
||||
* # FClose
|
||||
* Close a file
|
||||
* ## C
|
||||
* int fclose ( FILE * stream );
|
||||
* ## ASM
|
||||
* **In:**
|
||||
* A = hFILE
|
||||
* **Out:**
|
||||
*\--------------------------------------
|
||||
K.FClose jsr PFT.CheckNodeA
|
||||
sta K.FClose.8+1
|
||||
sta .8+1
|
||||
|
||||
jsr K.GetMemPtr
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #S.NODE.T
|
||||
lda (ZPPtr1),y
|
||||
asl
|
||||
tax
|
||||
jmp (.1,x)
|
||||
|
||||
.1 .DA K.FClose.REG
|
||||
.DA K.FClose.DIR
|
||||
.DA K.FClose.CDEV
|
||||
|
||||
K.FClose.REG
|
||||
K.FClose.DIR ldy #S.NODE.REG.REF
|
||||
ldy #S.FD.REG.REF
|
||||
lda (ZPPtr1),y
|
||||
beq .1
|
||||
sta K.MLI.PARAMS+1
|
||||
>MLICALL MLICLOSE
|
||||
|
||||
.1 ldy #S.NODE.REG.IOBUF
|
||||
.1 ldy #S.FD.REG.IOBUF
|
||||
lda (ZPPtr1),y
|
||||
beq K.FClose.8
|
||||
beq .8
|
||||
|
||||
jsr K.FreeMem
|
||||
bra K.FClose.8
|
||||
|
||||
K.FClose.CDEV ldy #S.NODE.DEV.DEVID
|
||||
lda (ZPPtr1),y
|
||||
jsr K.DevClose
|
||||
bcs K.FClose.9
|
||||
|
||||
K.FClose.8 lda #$ff Self Modified
|
||||
.8 lda #$ff Self Modified
|
||||
jmp K.FreeMem
|
||||
K.FClose.9 rts
|
||||
.9 rts
|
||||
*/--------------------------------------
|
||||
* # FRead
|
||||
* int fread ( void * ptr, int count, FILE * stream );
|
||||
@ -1197,13 +1183,13 @@ STDIO.SetIOBUF >LDYAI 1024 get a ProDOS IOBUF
|
||||
|
||||
>STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
|
||||
txa
|
||||
ldy #S.NODE.REG.IOBUF
|
||||
ldy #S.FD.REG.IOBUF
|
||||
sta (ZPPtr1),y
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
STDIO.GetRefNum jsr K.GetMemPtr
|
||||
>STYA ZPPtr1
|
||||
ldy #S.NODE.REG.REF
|
||||
ldy #S.FD.REG.REF
|
||||
lda (ZPPtr1),y
|
||||
sta K.MLI.PARAMS+1
|
||||
rts
|
||||
|
Loading…
Reference in New Issue
Block a user