mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-19 23:29:29 +00:00
Kernel 0.9.1 : Code reorganization & move to CSTR
This commit is contained in:
parent
7cecefb477
commit
e7825666a6
Binary file not shown.
Binary file not shown.
@ -61,7 +61,7 @@ CS.RUN >SYSCALL GetArgC
|
|||||||
.1 >PUSHW L.DST.IP
|
.1 >PUSHW L.DST.IP
|
||||||
>PUSHW L.SSCANF.IP
|
>PUSHW L.SSCANF.IP
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>SYSCALL SSCANF
|
>SYSCALL SSCANF
|
||||||
|
@ -154,7 +154,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
beq .99 No arg, new file....
|
beq .99 No arg, new file....
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>SYSCALL GetFullPathYA
|
>SYSCALL GetFullPathYA
|
||||||
|
|
||||||
txa
|
txa
|
||||||
|
@ -47,7 +47,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
lda ArgCount
|
lda ArgCount
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
@ -121,7 +121,7 @@ CS.RUN >SYSCALL GetC
|
|||||||
lda (pData),y
|
lda (pData),y
|
||||||
inc
|
inc
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
bcs .99 No more arg...the end!
|
bcs .99 No more arg...the end!
|
||||||
|
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
@ -58,7 +58,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
|
|
||||||
inc ArgIndex
|
inc ArgIndex
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -41,7 +41,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
|
|
||||||
>SYSCALL GetDevByNameYA
|
>SYSCALL GetDevByNameYA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -60,14 +60,14 @@ CS.RUN.ADD cmp #3
|
|||||||
>PUSHW L.IP
|
>PUSHW L.IP
|
||||||
>PUSHW L.SSCANF.IP
|
>PUSHW L.SSCANF.IP
|
||||||
lda #3
|
lda #3
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>SYSCALL SSCANF
|
>SYSCALL SSCANF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>PUSHW L.IP
|
>PUSHW L.IP
|
||||||
lda #2
|
lda #2
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD
|
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD
|
||||||
bcs .99
|
bcs .99
|
||||||
|
@ -108,7 +108,7 @@ CS.INIT lda #$ff
|
|||||||
beq .1 No arg, new file....
|
beq .1 No arg, new file....
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
|
|
||||||
>SYSCALL GetFullPathYA
|
>SYSCALL GetFullPathYA
|
||||||
txa
|
txa
|
||||||
|
@ -53,7 +53,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
|
|
||||||
inc ArgIndex
|
inc ArgIndex
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -60,7 +60,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
lda ArgCount
|
lda ArgCount
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -41,7 +41,7 @@ CS.RUN >SYSCALL GetArgC
|
|||||||
beq .99
|
beq .99
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>SYSCALL GetFullPathYA
|
>SYSCALL GetFullPathYA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -76,7 +76,7 @@ CS.RUN.READ jsr NSC.Init
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
CS.RUN.SET lda #1
|
CS.RUN.SET lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -80,7 +80,7 @@ CS.RUN.IPOK >SYSCALL GetArgC
|
|||||||
|
|
||||||
.2 >PUSHW pData DST.IP
|
.2 >PUSHW pData DST.IP
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||||
bcc CS.RUN.HOSTOK
|
bcc CS.RUN.HOSTOK
|
||||||
@ -89,7 +89,7 @@ CS.RUN.IPOK >SYSCALL GetArgC
|
|||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA L.MSG.UNKNOWN
|
>LDYA L.MSG.UNKNOWN
|
||||||
bra .99
|
bra .99
|
||||||
@ -101,7 +101,7 @@ CS.RUN.IPOK >SYSCALL GetArgC
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
CS.RUN.HOSTOK lda #1
|
CS.RUN.HOSTOK lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
ldy #DST.IP+3
|
ldy #DST.IP+3
|
||||||
|
@ -83,7 +83,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
|
|
||||||
.1 >PUSHW L.Socket.Dst.Addr
|
.1 >PUSHW L.Socket.Dst.Addr
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||||
bcc .2
|
bcc .2
|
||||||
@ -93,7 +93,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA L.MSG.UNKNOWN
|
>LDYA L.MSG.UNKNOWN
|
||||||
>SYSCALL PrintFYA
|
>SYSCALL PrintFYA
|
||||||
@ -155,7 +155,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.99 lda #1
|
.99 lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LDYA L.MSG.TIMEOUT
|
>LDYA L.MSG.TIMEOUT
|
||||||
>SYSCALL PrintFYA
|
>SYSCALL PrintFYA
|
||||||
|
@ -54,7 +54,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
|
|
||||||
inc ArgIndex
|
inc ArgIndex
|
||||||
lda ArgIndex
|
lda ArgIndex
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
|
@ -63,8 +63,9 @@ K.MLI.PATH .EQ $03B0 64+1 -> $03D0
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*UsrBuf256 .EQ $0C00 Main
|
*UsrBuf256 .EQ $0C00 Main
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KrnBuf256 .EQ $0D00 Main
|
K.Buf256 .EQ $0D00 Main
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
K.STACK .EQ $0F00 Up to $0FFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*** Z80 Reserved $0F00-10FF***
|
*** Z80 Reserved $0F00-10FF***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -172,7 +173,7 @@ SYS.ChGrp .EQ $0E
|
|||||||
SYS.LoadDrvYA .EQ $10
|
SYS.LoadDrvYA .EQ $10
|
||||||
SYS.LoadLibYA .EQ $12
|
SYS.LoadLibYA .EQ $12
|
||||||
SYS.UnloadLibA .EQ $14
|
SYS.UnloadLibA .EQ $14
|
||||||
SYS.LoadExeYA .EQ $16
|
SYS.LoadBin.YA .EQ $16
|
||||||
SYS.TimeYA .EQ $18
|
SYS.TimeYA .EQ $18
|
||||||
SYS.CTime2Time .EQ $1A
|
SYS.CTime2Time .EQ $1A
|
||||||
SYS.PTime2Time .EQ $1C
|
SYS.PTime2Time .EQ $1C
|
||||||
@ -231,7 +232,7 @@ SYS.Sleep .EQ $6C
|
|||||||
* .EQ $6E
|
* .EQ $6E
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.GetArgC .EQ $70
|
SYS.GetArgC .EQ $70
|
||||||
SYS.GetArgA .EQ $72
|
SYS.GetArg.A .EQ $72
|
||||||
SYS.ExpandPStrYA .EQ $74
|
SYS.ExpandPStrYA .EQ $74
|
||||||
* .EQ $76
|
* .EQ $76
|
||||||
SYS.PutEnvYA .EQ $78
|
SYS.PutEnvYA .EQ $78
|
||||||
|
@ -51,7 +51,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.1 lda #1
|
.1 lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
|
|
||||||
>SYSCALL MkNodYA
|
>SYSCALL MkNodYA
|
||||||
bcs .9
|
bcs .9
|
||||||
@ -64,7 +64,7 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
|
||||||
lda #2
|
lda #2
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>SYSCALL ExpandPStrYA
|
>SYSCALL ExpandPStrYA
|
||||||
|
@ -48,14 +48,14 @@ CS.INIT >SYSCALL GetArgC
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.1 lda #1 get PTR to ARG[1] (Driver name)
|
.1 lda #1 get PTR to ARG[1] (Driver name)
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>LDYA L.MSG.LOAD
|
>LDYA L.MSG.LOAD
|
||||||
>SYSCALL PrintFYA
|
>SYSCALL PrintFYA
|
||||||
|
|
||||||
lda #1 get PTR to ARG[1] (Driver name)
|
lda #1 get PTR to ARG[1] (Driver name)
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
|
|
||||||
>SYSCALL LoadDrvYA YA = PTR to ARG[1...n]
|
>SYSCALL LoadDrvYA YA = PTR to ARG[1...n]
|
||||||
bcs .99
|
bcs .99
|
||||||
|
@ -210,7 +210,7 @@ Cmd.Exec.EXT ldy #1
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Cmd.Exec.EXT.TXT
|
Cmd.Exec.EXT.TXT
|
||||||
lda #0 Get arg[0] = /PATH/SHELL
|
lda #0 Get arg[0] = /PATH/SHELL
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI UsrBuf256
|
>PUSHWI UsrBuf256
|
||||||
>SYSCALL PStrCpy
|
>SYSCALL PStrCpy
|
||||||
|
@ -113,7 +113,7 @@ CS.INIT jsr SetPWD
|
|||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
|
|
||||||
lda #1
|
lda #1
|
||||||
>SYSCALL GetArgA
|
>SYSCALL GetArg.A
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>SYSCALL LoadFile
|
>SYSCALL LoadFile
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -25,7 +25,7 @@ K.GetArgC jsr ARG.InitArgPtr1
|
|||||||
.8 txa
|
.8 txa
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetArgA
|
* # GetArg.A
|
||||||
* ## In:
|
* ## In:
|
||||||
* A = argument index.
|
* A = argument index.
|
||||||
* ## Out:
|
* ## Out:
|
||||||
@ -33,7 +33,7 @@ K.GetArgC jsr ARG.InitArgPtr1
|
|||||||
* Y,A = CStr To Arg[A]
|
* Y,A = CStr To Arg[A]
|
||||||
* CS : Out Of Bound
|
* CS : Out Of Bound
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.GetArgA sta .2+1
|
K.GetArg.A sta .2+1
|
||||||
jsr ARG.InitArgPtr1
|
jsr ARG.InitArgPtr1
|
||||||
|
|
||||||
lda .2+1
|
lda .2+1
|
||||||
|
@ -4,17 +4,151 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BIN.LoadExeYA
|
* K.LoadDrv.YA
|
||||||
|
* in :
|
||||||
|
* Y,A = PTR To Full Cmd Line PStrArray
|
||||||
|
* out :
|
||||||
|
* none
|
||||||
|
*--------------------------------------
|
||||||
|
K.LoadDrv.YA >STYA K.LoadDrv.CmdArray
|
||||||
|
|
||||||
|
>LDYAI ENV.DRV push ENVNAME=DRV
|
||||||
|
>SYSCALL GetEnvYA get value for ENV=DRV
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHYA Push $DRV value
|
||||||
|
|
||||||
|
>PUSHW K.LoadDrv.CmdArray (ARG[0] = DRVNAME)
|
||||||
|
|
||||||
|
jsr K.FileSearch.I find Driver in $DRV
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDYAI K.Buf256
|
||||||
|
jsr K.LoadBin.YA Y,A =filename full path
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA pDrv
|
||||||
|
stx .97+1
|
||||||
|
|
||||||
|
>LDYA K.LoadDrv.CmdArray
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
.1 lda (ZPPtr1) Advance to ARG[1]
|
||||||
|
beq .2
|
||||||
|
inc ZPPtr1
|
||||||
|
bne .1
|
||||||
|
inc ZPPtr1+1
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.2 >LDYA ZPPtr1
|
||||||
|
|
||||||
|
jsr pDrvJmp call Dev.Detect
|
||||||
|
bcs .96
|
||||||
|
|
||||||
|
jsr BIN.InstallDRV
|
||||||
|
bcs .96
|
||||||
|
|
||||||
|
jsr .96 Cleanup...
|
||||||
|
|
||||||
|
lda #0 Make sure RC = 0 if success
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
|
||||||
|
.96 pha
|
||||||
|
.97 lda #$ff
|
||||||
|
jsr K.FreeMemA
|
||||||
|
pla
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
K.LoadDrv.CmdArray .BS 2
|
||||||
|
*--------------------------------------
|
||||||
|
* K.LoadLib.YA
|
||||||
|
* in :
|
||||||
|
* Y,A = PTR To Lib Name
|
||||||
|
* out :
|
||||||
|
* A = hMem To loaded LIB
|
||||||
|
*--------------------------------------
|
||||||
|
K.LoadLib.YA >STYA K.LoadLib.Name SAVE LIBname for K.FileSearch
|
||||||
|
>LDYAI ENV.LIB push ENVNAME=LIB
|
||||||
|
>SYSCALL GetEnvYA get value for ENV=LIB
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>PUSHYA Push $LIB value
|
||||||
|
|
||||||
|
>PUSHW K.LoadLib.Name
|
||||||
|
|
||||||
|
jsr K.FileSearch.I find libname in $LIB
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDYAI K.Buf256
|
||||||
|
jsr K.LoadBin.YA Y,A=filename full path
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
stx .8+1
|
||||||
|
>STYA LIB.Jump+1
|
||||||
|
|
||||||
|
txa Pass hLib to LibLoad
|
||||||
|
ldx #LIBMGR.LOAD
|
||||||
|
jsr LIB.Jump Call LIB.LOAD function
|
||||||
|
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
.8 lda #$ff hLib
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
|
||||||
|
.99 pha
|
||||||
|
lda .8+1
|
||||||
|
jsr K.FreeMemA
|
||||||
|
pla
|
||||||
|
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
K.LoadLib.Name .BS 2
|
||||||
|
*--------------------------------------
|
||||||
|
* K.UnloadLib.A
|
||||||
|
* in :
|
||||||
|
* A = hMem To Lib
|
||||||
|
* out :
|
||||||
|
*--------------------------------------
|
||||||
|
K.UnloadLib.A pha
|
||||||
|
jsr K.GetMemByIDA
|
||||||
|
>STYA ZPPtr1
|
||||||
|
ldy #S.MEM.REFCNT
|
||||||
|
lda (ZPPtr1),y Get count of those referencing this lib
|
||||||
|
dec only one left ?
|
||||||
|
beq .1
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
pla
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 ldy #S.MEM.PTR
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sta LIB.Jump+1
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sta LIB.Jump+2
|
||||||
|
|
||||||
|
ldx #LIBMGR.UNLOAD
|
||||||
|
jsr LIB.Jump Call LIB.UNLOAD function
|
||||||
|
pla
|
||||||
|
jmp K.FreeMemA
|
||||||
|
LIB.Jump jmp $ffff Self Modiied
|
||||||
|
*--------------------------------------
|
||||||
|
* K.LoadBin.YA
|
||||||
* in :
|
* in :
|
||||||
* A = hMem of FilePath (PSTR)
|
* A = hMem of FilePath (PSTR)
|
||||||
* out :
|
* out :
|
||||||
* Y,A = MEMPTR
|
* Y,A = MEMPTR
|
||||||
* X = hMem of Code Segment
|
* X = hMem of Code Segment
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.LoadEXEYA >STYA K.LoadEXEYA.Filename
|
K.LoadBin.YA >STYA K.LoadBin.YA.Filename
|
||||||
>SYSCALL StrUprYA Y,A unmodified
|
|
||||||
jsr MEM.GetMemByNameYA
|
jsr MEM.GetMemByNameYA
|
||||||
bcs K.LoadEXEYA.1 not already loaded
|
bcs K.LoadBin.YA.1 not already loaded
|
||||||
|
|
||||||
>STYA ZPPtr1 Save base address
|
>STYA ZPPtr1 Save base address
|
||||||
ldy #S.MEM.REFCNT
|
ldy #S.MEM.REFCNT
|
||||||
@ -25,8 +159,8 @@ K.LoadEXEYA >STYA K.LoadEXEYA.Filename
|
|||||||
txa
|
txa
|
||||||
jmp K.GetMemPtrA X=hMem from K.GetMemByNameA
|
jmp K.GetMemPtrA X=hMem from K.GetMemByNameA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
K.LoadBin.YA.1 >PUSHWI K.S.STAT
|
||||||
>PUSHW K.LoadEXEYA.Filename
|
>PUSHW K.LoadBin.YA.Filename
|
||||||
jsr K.STAT Look for AUXTYPE
|
jsr K.STAT Look for AUXTYPE
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -36,12 +170,12 @@ K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
|||||||
>PUSHYA Push AUXTYPE
|
>PUSHYA Push AUXTYPE
|
||||||
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
>PUSHW K.LoadEXEYA.Filename
|
>PUSHW K.LoadBin.YA.Filename
|
||||||
|
|
||||||
jsr K.LoadFile
|
jsr K.LoadFile
|
||||||
.9 bcs .99 Error Loading file
|
.9 bcs .99 Error Loading file
|
||||||
|
|
||||||
stx K.LoadEXEYA.hMem save hMem
|
stx K.LoadBin.YA.hMem save hMem
|
||||||
|
|
||||||
pha YA=CODE+DATA size
|
pha YA=CODE+DATA size
|
||||||
tya
|
tya
|
||||||
@ -78,11 +212,11 @@ K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
|||||||
|
|
||||||
jsr BIN.RelocateEXE
|
jsr BIN.RelocateEXE
|
||||||
|
|
||||||
>LDYA K.LoadEXEYA.Filename get back bin path
|
>LDYA K.LoadBin.YA.Filename get back bin path
|
||||||
>SYSCALL NewPStrYA make a copy of this string
|
>SYSCALL NewPStrYA make a copy of this string
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
lda K.LoadEXEYA.hMem Keep X=hMem
|
lda K.LoadBin.YA.hMem Keep X=hMem
|
||||||
jsr K.GetMemByIDA X unmodified
|
jsr K.GetMemByIDA X unmodified
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
@ -94,28 +228,28 @@ K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
|||||||
ldy #S.MEM.BIN
|
ldy #S.MEM.BIN
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
lda K.LoadEXEYA.hMem
|
lda K.LoadBin.YA.hMem
|
||||||
tax return hMEM to Caller...
|
tax return hMEM to Caller...
|
||||||
jsr K.GetMemPtrA
|
jsr K.GetMemPtrA
|
||||||
clc ...and Y,A=PTR to CS
|
clc ...and Y,A=PTR to CS
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.98 pha
|
.98 pha
|
||||||
lda K.LoadEXEYA.hMem
|
lda K.LoadBin.YA.hMem
|
||||||
jsr K.FreeMemA Discard Loaded Code
|
jsr K.FreeMemA Discard Loaded Code
|
||||||
pla
|
pla
|
||||||
|
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.LoadEXEYA.Filename .BS 2
|
K.LoadBin.YA.Filename .BS 2
|
||||||
K.LoadEXEYA.hMem .BS 1
|
K.LoadBin.YA.hMem .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BIN.InstallDRV
|
* BIN.InstallDRV
|
||||||
* In:
|
* In:
|
||||||
* pDrv = .DRV File Loaded Address
|
* pDrv = .DRV File Loaded Address
|
||||||
* Note:
|
* Note:
|
||||||
* K.LoadEXEYA called from K.LoadDrvYA
|
* K.LoadBin.YA called from K.LoadDrvYA
|
||||||
* Already setup correctly pDrv,
|
* Already setup correctly pDrv,
|
||||||
* BIN.Relocate.Start,End
|
* BIN.Relocate.Start,End
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
LOMEM $A00
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.CHR
|
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
|
||||||
ASM
|
|
@ -1,10 +0,0 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
LOMEM $A00
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.CIO
|
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
|
||||||
ASM
|
|
@ -1,10 +0,0 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
LOMEM $A00
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.CNV
|
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
|
||||||
ASM
|
|
@ -38,7 +38,7 @@ K.OpenDirYA jsr PFT.CheckPathYA
|
|||||||
cmp #$0F Directory ?
|
cmp #$0F Directory ?
|
||||||
bne .98
|
bne .98
|
||||||
|
|
||||||
jsr FILE.SetIOBUF
|
jsr STDIO.SetIOBUF
|
||||||
|
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
@ -102,7 +102,7 @@ K.ReadDirA.ROOT ldy #S.NODE.DIR.FC did we already returned something ?
|
|||||||
|
|
||||||
stz K.MLI.PARAMS+1 All Volumes
|
stz K.MLI.PARAMS+1 All Volumes
|
||||||
|
|
||||||
>LDYAI KrnBuf256
|
>LDYAI K.Buf256
|
||||||
>STYA K.MLI.PARAMS+2
|
>STYA K.MLI.PARAMS+2
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
>MLICALL MLIONLINE
|
>MLICALL MLIONLINE
|
||||||
|
@ -4,64 +4,6 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* K.LoadDrvYA
|
|
||||||
* in :
|
|
||||||
* Y,A = PTR To Full Cmd Line PStrArray
|
|
||||||
* out :
|
|
||||||
* none
|
|
||||||
*--------------------------------------
|
|
||||||
K.LoadDrvYA >STYA K.LoadDrv.CmdArray
|
|
||||||
|
|
||||||
>LDYAI ENV.DRV push ENVNAME=DRV
|
|
||||||
>SYSCALL GetEnvYA get value for ENV=DRV
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>PUSHYA Push $DRV value
|
|
||||||
|
|
||||||
>PUSHW K.LoadDrv.CmdArray (ARG[0] = DRVNAME)
|
|
||||||
|
|
||||||
jsr K.FileSearch.I find Driver in $DRV
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDYAI KrnBuf256
|
|
||||||
jsr K.LoadExeYA Y,A =filename full path
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA pDrv
|
|
||||||
stx .97+1
|
|
||||||
|
|
||||||
>LDYA K.LoadDrv.CmdArray Advance to ARG[1]
|
|
||||||
>STYA ZPPtr1
|
|
||||||
|
|
||||||
lda ZPPtr1
|
|
||||||
sec
|
|
||||||
adc (ZPPtr1)
|
|
||||||
sta ZPPtr1
|
|
||||||
bcc .1
|
|
||||||
inc ZPPtr1+1
|
|
||||||
|
|
||||||
.1 >LDYA ZPPtr1
|
|
||||||
|
|
||||||
jsr pDrvJmp call Dev.Detect
|
|
||||||
bcs .96
|
|
||||||
|
|
||||||
jsr BIN.InstallDRV
|
|
||||||
bcs .96
|
|
||||||
|
|
||||||
jsr .96 Cleanup...
|
|
||||||
|
|
||||||
lda #0 Make sure RC = 0 if success
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
|
|
||||||
.96 pha
|
|
||||||
.97 lda #$ff
|
|
||||||
jsr K.FreeMemA
|
|
||||||
pla
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
K.LoadDrv.CmdArray .BS 2
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DRV
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.DRV
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
@ -4,18 +4,54 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ExpandPStrYA
|
* # NewPStrYA
|
||||||
|
* Create a new copy of PSTR
|
||||||
|
* ## In:
|
||||||
|
* Y,A = PTR to buffer
|
||||||
|
* ## Out:
|
||||||
|
* CC : success
|
||||||
|
* Y,A = PTR to String
|
||||||
|
* X = hMem (PSTR)
|
||||||
|
* CS : error
|
||||||
|
* A = SYS error code
|
||||||
|
*\--------------------------------------
|
||||||
|
K.NewPStr.YA >STYA ZPPtr2
|
||||||
|
lda (ZPPtr2)
|
||||||
|
inc
|
||||||
|
tay
|
||||||
|
lda #0 Y,A = len of new string
|
||||||
|
jsr K.GetMemYA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA ZPPtr1
|
||||||
|
|
||||||
|
lda (ZPPtr2)
|
||||||
|
sta (ZPPtr1)
|
||||||
|
tay
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
.1 lda (ZPPtr2),y
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
dey
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.2 >LDYA ZPPtr1
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # ExpandPStr.YA
|
||||||
* ## In:
|
* ## In:
|
||||||
* Y,A = PTR to String to Expand (PSTR)
|
* Y,A = PTR to String to Expand (PSTR)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* X = hMem to Expanded String (PSTR)
|
* X = hMem to Expanded String (PSTR)
|
||||||
* Y,A = PTR to Expanded String
|
* Y,A = PTR to Expanded String
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
K.ExpandPStr.YA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
||||||
|
|
||||||
.1 >STYA ZPPtr2
|
.1 >STYA ZPPtr2
|
||||||
|
|
||||||
stz KrnBuf256 init Expanded String len=0
|
stz K.Buf256 init Expanded String len=0
|
||||||
stz K.ExpandPStr.bFound No var found yet
|
stz K.ExpandPStr.bFound No var found yet
|
||||||
|
|
||||||
stz K.ExpandPStr.bNoExp Reset no expand flag
|
stz K.ExpandPStr.bNoExp Reset no expand flag
|
||||||
@ -43,11 +79,11 @@ K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
|||||||
.21 bit K.ExpandPStr.bNoExp
|
.21 bit K.ExpandPStr.bNoExp
|
||||||
bpl .23
|
bpl .23
|
||||||
|
|
||||||
.22 ldx KrnBuf256
|
.22 ldx K.Buf256
|
||||||
inx
|
inx
|
||||||
beq .8
|
beq .8
|
||||||
sta KrnBuf256,x
|
sta K.Buf256,x
|
||||||
stx KrnBuf256
|
stx K.Buf256
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.23 ldx K.ExpandPStr.bInVar already in a var?
|
.23 ldx K.ExpandPStr.bInVar already in a var?
|
||||||
@ -110,8 +146,8 @@ K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
|||||||
|
|
||||||
jsr K.FreeMemA yes, discard....
|
jsr K.FreeMemA yes, discard....
|
||||||
|
|
||||||
.81 >LDYAI KrnBuf256
|
.81 >LDYAI K.Buf256
|
||||||
jsr K.NewPStrYA
|
jsr K.NewPStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
stx K.ExpandPStr.hPStr save this as temp string, in case of recurse
|
stx K.ExpandPStr.hPStr save this as temp string, in case of recurse
|
||||||
ldx K.ExpandPStr.bFound Did we expand something ?
|
ldx K.ExpandPStr.bFound Did we expand something ?
|
||||||
@ -147,7 +183,7 @@ K.ExpandPStrGetValue
|
|||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
>LDYAI K.ExpandPStr.Name
|
>LDYAI K.ExpandPStr.Name
|
||||||
jsr K.GetEnvYA
|
jsr K.GetEnv.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
@ -162,52 +198,52 @@ K.ExpandPStr.bFound .BS 1
|
|||||||
K.ExpandPStr.hPStr .BS 1
|
K.ExpandPStr.hPStr .BS 1
|
||||||
K.ExpandPStr.Name .BS 16
|
K.ExpandPStr.Name .BS 16
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # PutEnvYA
|
* # PutEnv.YA
|
||||||
* ## In:
|
* ## In:
|
||||||
* Y,A = PTR to String NAME=VALUE (PSTR)
|
* Y,A = PTR to String NAME=VALUE (PSTR)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.PutEnvYA >STYA ZPPtr1 NAME=VALUE
|
K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
|
||||||
|
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
beq .9
|
beq .9
|
||||||
sta KrnBuf256
|
sta K.Buf256
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.1 lda (ZPPtr1),y copy PSTR to KrnBuf256
|
.1 lda (ZPPtr1),y copy PSTR to K.Buf256
|
||||||
sta KrnBuf256,y
|
sta K.Buf256,y
|
||||||
dey
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
cpy KrnBuf256 last char ?
|
cpy K.Buf256 last char ?
|
||||||
beq .9 no "=" found
|
beq .9 no "=" found
|
||||||
|
|
||||||
lda KrnBuf256,y
|
lda K.Buf256,y
|
||||||
cmp #'='
|
cmp #'='
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
cpy #1 String like "=value" ?
|
cpy #1 String like "=value" ?
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
cpy KrnBuf256 last char ?
|
cpy K.Buf256 last char ?
|
||||||
beq .9 we have "VAR="
|
beq .9 we have "VAR="
|
||||||
|
|
||||||
lda KrnBuf256 get actual string len
|
lda K.Buf256 get actual string len
|
||||||
|
|
||||||
sty KrnBuf256 set length of VAR string
|
sty K.Buf256 set length of VAR string
|
||||||
dec KrnBuf256 ...without "="
|
dec K.Buf256 ...without "="
|
||||||
|
|
||||||
clc Substract VAR len+1 from whole len to get
|
clc Substract VAR len+1 from whole len to get
|
||||||
sbc KrnBuf256 VALUE len
|
sbc K.Buf256 VALUE len
|
||||||
sta KrnBuf256,y save it at "=" POS
|
sta K.Buf256,y save it at "=" POS
|
||||||
|
|
||||||
stz ZPPtr1 #KrnBuf256
|
stz ZPPtr1 #K.Buf256
|
||||||
sty ZPPtr2
|
sty ZPPtr2
|
||||||
|
|
||||||
lda /KrnBuf256
|
lda /K.Buf256
|
||||||
sta ZPPtr1+1
|
sta ZPPtr1+1
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
@ -295,14 +331,14 @@ K.SetEnvPtr1Ptr2
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # GetEnvYA
|
* # GetEnv.YA
|
||||||
* ## In:
|
* ## In:
|
||||||
* Y,A = PTR to NAME (PSTR)
|
* Y,A = PTR to NAME (PSTR)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* CC : Y,A = PTR to VALUE (PSTR)
|
* CC : Y,A = PTR to VALUE (PSTR)
|
||||||
* CS : not found
|
* CS : not found
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.GetEnvYA >STYA ZPPtr1
|
K.GetEnv.YA >STYA ZPPtr1
|
||||||
jsr ENV.FindVarPtr1
|
jsr ENV.FindVarPtr1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -314,12 +350,12 @@ K.GetEnvYA >STYA ZPPtr1
|
|||||||
.9 >LDYAI EmptyPSTR
|
.9 >LDYAI EmptyPSTR
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # UnsetEnvYA
|
* # UnsetEnv.YA
|
||||||
* ## In:
|
* ## In:
|
||||||
* Y,A = PTR To Name (PSTR)
|
* Y,A = PTR To Name (PSTR)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.UnsetEnvYA >STYA ZPPtr1 Store VAR Name
|
K.UnsetEnv.YA >STYA ZPPtr1 Store VAR Name
|
||||||
S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
||||||
bcs .8 not found, quit
|
bcs .8 not found, quit
|
||||||
|
|
||||||
@ -335,7 +371,7 @@ S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
|||||||
* K.ExpandPStr.Name
|
* K.ExpandPStr.Name
|
||||||
* Out:
|
* Out:
|
||||||
* CC: Found
|
* CC: Found
|
||||||
* Append VALUE to KrnBuf256
|
* Append VALUE to K.Buf256
|
||||||
* CS: Not Found
|
* CS: Not Found
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.ExpandSysVar
|
ENV.ExpandSysVar
|
||||||
@ -350,7 +386,7 @@ ENV.ExpandSysVar
|
|||||||
cmp #'9'+1
|
cmp #'9'+1
|
||||||
bcs .1
|
bcs .1
|
||||||
and #$0F
|
and #$0F
|
||||||
jsr K.GetArgA
|
jsr K.GetArg.A
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
@ -383,7 +419,7 @@ ENV.SysVarsJmp .DA ENV.SysVarsArgs
|
|||||||
.DA ENV.SysVarsCPID
|
.DA ENV.SysVarsCPID
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.SysVarsArgs lda #1
|
ENV.SysVarsArgs lda #1
|
||||||
jsr K.GetArgA
|
jsr K.GetArg.A
|
||||||
bcs ENV.SysVarsExit2
|
bcs ENV.SysVarsExit2
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
@ -396,12 +432,12 @@ ENV.SysVarsArgs lda #1
|
|||||||
lda (ZPPtr3)
|
lda (ZPPtr3)
|
||||||
beq ENV.SysVarsExit2
|
beq ENV.SysVarsExit2
|
||||||
|
|
||||||
ldx KrnBuf256
|
ldx K.Buf256
|
||||||
inx
|
inx
|
||||||
beq ENV.SysVarsExit2 make sure not overlapping buf 256
|
beq ENV.SysVarsExit2 make sure not overlapping buf 256
|
||||||
stx KrnBuf256
|
stx K.Buf256
|
||||||
lda #' '
|
lda #' '
|
||||||
sta KrnBuf256,x
|
sta K.Buf256,x
|
||||||
|
|
||||||
jsr ENV.AppendPtr3ToBuf
|
jsr ENV.AppendPtr3ToBuf
|
||||||
bra .2
|
bra .2
|
||||||
@ -434,12 +470,12 @@ ENV.SysVarsA sta HEXBUF
|
|||||||
cpy #9 Print always last char
|
cpy #9 Print always last char
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.2 ldx KrnBuf256
|
.2 ldx K.Buf256
|
||||||
|
|
||||||
.3 inx
|
.3 inx
|
||||||
beq ENV.SysVarsExit2
|
beq ENV.SysVarsExit2
|
||||||
|
|
||||||
sta KrnBuf256,x
|
sta K.Buf256,x
|
||||||
iny
|
iny
|
||||||
cpy #10
|
cpy #10
|
||||||
beq ENV.SysVarsExit
|
beq ENV.SysVarsExit
|
||||||
@ -447,7 +483,7 @@ ENV.SysVarsA sta HEXBUF
|
|||||||
lda ASCBUF,y
|
lda ASCBUF,y
|
||||||
bra .3
|
bra .3
|
||||||
|
|
||||||
ENV.SysVarsExit stx KrnBuf256
|
ENV.SysVarsExit stx K.Buf256
|
||||||
ENV.SysVarsExit2
|
ENV.SysVarsExit2
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
@ -539,19 +575,19 @@ ENV.NextEnvPtr3 lda ZPPtr3
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.AppendPtr3ToBuf
|
ENV.AppendPtr3ToBuf
|
||||||
ldy #0
|
ldy #0
|
||||||
ldx KrnBuf256
|
ldx K.Buf256
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
inx
|
inx
|
||||||
beq .9
|
beq .9
|
||||||
sta KrnBuf256,x
|
sta K.Buf256,x
|
||||||
|
|
||||||
tya
|
tya
|
||||||
cmp (ZPPtr3) last char?
|
cmp (ZPPtr3) last char?
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
stx KrnBuf256
|
stx K.Buf256
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
LOMEM $A00
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.FILE
|
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
|
||||||
ASM
|
|
@ -22,12 +22,12 @@ K.FileSearch >PULLW ZPPtr2 DstBuf
|
|||||||
jsr K.FileSearch.I
|
jsr K.FileSearch.I
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda KrnBuf256
|
lda K.Buf256
|
||||||
sta (ZPPtr2)
|
sta (ZPPtr2)
|
||||||
|
|
||||||
tay
|
tay
|
||||||
|
|
||||||
.1 lda KrnBuf256,y
|
.1 lda K.Buf256,y
|
||||||
sta (ZPPtr2),y
|
sta (ZPPtr2),y
|
||||||
dey
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
@ -44,7 +44,7 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
|||||||
|
|
||||||
stz .11+1
|
stz .11+1
|
||||||
|
|
||||||
.1 stz KrnBuf256 reset String
|
.1 stz K.Buf256 reset String
|
||||||
ldx #0
|
ldx #0
|
||||||
|
|
||||||
.11 ldy #$ff Self Modified
|
.11 ldy #$ff Self Modified
|
||||||
@ -57,7 +57,7 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
|||||||
cmp #';'
|
cmp #';'
|
||||||
beq .3
|
beq .3
|
||||||
inx
|
inx
|
||||||
sta KrnBuf256,x
|
sta K.Buf256,x
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.3 txa
|
.3 txa
|
||||||
@ -70,15 +70,15 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
|||||||
.4 iny
|
.4 iny
|
||||||
lda (ZPPtr4),y Append Fiename...
|
lda (ZPPtr4),y Append Fiename...
|
||||||
inx
|
inx
|
||||||
sta KrnBuf256,x
|
sta K.Buf256,x
|
||||||
tya
|
tya
|
||||||
cmp (ZPPtr4)
|
cmp (ZPPtr4)
|
||||||
bne .4
|
bne .4
|
||||||
|
|
||||||
stx KrnBuf256 set string length
|
stx K.Buf256 set string length
|
||||||
|
|
||||||
>PUSHWI K.S.STAT
|
>PUSHWI K.S.STAT
|
||||||
>PUSHWI KrnBuf256
|
>PUSHWI K.Buf256
|
||||||
jsr K.STAT
|
jsr K.STAT
|
||||||
bcs .1 Failed...retry next path...
|
bcs .1 Failed...retry next path...
|
||||||
|
|
||||||
@ -106,7 +106,7 @@ K.GetFullPathYA >STYA ZPPtr3 Ptr1 & 2 used by StrCpy
|
|||||||
lda (ZPPtr3)
|
lda (ZPPtr3)
|
||||||
beq K.GetFullPathYA.9
|
beq K.GetFullPathYA.9
|
||||||
|
|
||||||
stz KrnBuf256
|
stz K.Buf256
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr3),y
|
lda (ZPPtr3),y
|
||||||
@ -117,14 +117,14 @@ K.GetFullPathYA >STYA ZPPtr3 Ptr1 & 2 used by StrCpy
|
|||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
jsr K.GetMemPtrA
|
jsr K.GetMemPtrA
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
>PUSHWI KrnBuf256
|
>PUSHWI K.Buf256
|
||||||
>SYSCALL PStrCpy
|
>SYSCALL PStrCpy
|
||||||
|
|
||||||
.1 >PUSHW ZPPtr3
|
.1 >PUSHW ZPPtr3
|
||||||
>PUSHWI KrnBuf256
|
>PUSHWI K.Buf256
|
||||||
>SYSCALL PStrCat
|
>SYSCALL PStrCat
|
||||||
K.GetFullPathYA.NewStr
|
K.GetFullPathYA.NewStr
|
||||||
>LDYAI KrnBuf256
|
>LDYAI K.Buf256
|
||||||
>SYSCALL NewPStrYA
|
>SYSCALL NewPStrYA
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -76,8 +76,8 @@ Kernel.Init2 >LDAXI MSG.Init2
|
|||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
jsr Kernel.Move
|
jsr Kernel.Move
|
||||||
|
|
||||||
>LDYAI D.STACK.TOP
|
>LDYAI K.STACK
|
||||||
>STYA pStack init Soft Stack
|
>STYA pStack init Soft Stack
|
||||||
|
|
||||||
sta CLRALTZP Make MAIN ZP is enabled for X.PRINT.F
|
sta CLRALTZP Make MAIN ZP is enabled for X.PRINT.F
|
||||||
|
|
||||||
@ -775,12 +775,12 @@ TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0
|
|||||||
ldy #S.PS.hENV
|
ldy #S.PS.hENV
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
|
||||||
>LDYAI UsrBuf256
|
>LDYAI K.Buf256
|
||||||
>STYA K.MLI.PARAMS+1
|
>STYA K.MLI.PARAMS+1
|
||||||
>MLICALL MLIGETPREFIX
|
>MLICALL MLIGETPREFIX
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYAI UsrBuf256
|
>LDYAI K.Buf256
|
||||||
>SYSCALL NewPStrYA
|
>SYSCALL NewPStrYA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
@ -788,7 +788,7 @@ TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0
|
|||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
sta (pPs),y
|
sta (pPs),y
|
||||||
|
|
||||||
>PUSHWI UsrBuf256 push ENV value
|
>PUSHWI K.Buf256 push ENV value
|
||||||
>PUSHWI I.ENV.A2osX push ENV name
|
>PUSHWI I.ENV.A2osX push ENV name
|
||||||
>SYSCALL SetEnv
|
>SYSCALL SetEnv
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -17,11 +17,11 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
|||||||
.DA K.ChOwn
|
.DA K.ChOwn
|
||||||
.DA K.ChGrp
|
.DA K.ChGrp
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA K.LoadDrvYA $10
|
.DA K.LoadDrv.YA $10
|
||||||
.DA K.LoadLibYA
|
.DA K.LoadLib.YA
|
||||||
.DA K.UnloadLibA
|
.DA K.UnloadLib.A
|
||||||
.DA K.LoadExeYA
|
.DA K.LoadBin.YA
|
||||||
.DA K.TimeYA
|
.DA K.Time.YA
|
||||||
.DA K.CTime2Time
|
.DA K.CTime2Time
|
||||||
.DA K.PTime2Time
|
.DA K.PTime2Time
|
||||||
.DA 0
|
.DA 0
|
||||||
@ -49,18 +49,18 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
|||||||
.DA 0 $40
|
.DA 0 $40
|
||||||
.DA K.SScanF
|
.DA K.SScanF
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA K.PrintFYA
|
.DA K.PrintF.YA
|
||||||
.DA K.SPrintFYA
|
.DA K.SPrintF.YA
|
||||||
.DA K.FPrintFYA
|
.DA K.FPrintF.YA
|
||||||
.DA K.AToI
|
.DA K.AToI
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA K.NewPStrYA $50
|
.DA 0 $50
|
||||||
.DA K.PStrCpy
|
.DA K.StrCpy
|
||||||
.DA K.PStrCat
|
.DA K.StrCat
|
||||||
.DA K.PStrMatch
|
.DA K.StrMatch
|
||||||
.DA K.PStrUprYA
|
.DA K.StrUpr.YA
|
||||||
.DA K.PStrLwrYA
|
.DA K.StrLwr.YA
|
||||||
.DA K.StrFTime
|
.DA K.StrFTime
|
||||||
.DA 0 K.PStr2StrArrayYA
|
.DA 0 K.PStr2StrArrayYA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -74,13 +74,13 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
|||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA K.GetArgC $70
|
.DA K.GetArgC $70
|
||||||
.DA K.GetArgA
|
.DA K.GetArg.A
|
||||||
.DA K.ExpandPStrYA
|
.DA K.ExpandPStr.YA
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA K.PutEnvYA
|
.DA K.PutEnv.YA
|
||||||
.DA K.SetEnv
|
.DA K.SetEnv
|
||||||
.DA K.GetEnvYA
|
.DA K.GetEnv.YA
|
||||||
.DA K.UnsetEnvYA
|
.DA K.UnsetEnv.YA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA K.GetDevByIDA $80
|
.DA K.GetDevByIDA $80
|
||||||
.DA K.GetDevByNameYA
|
.DA K.GetDevByNameYA
|
||||||
|
@ -4,82 +4,6 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* K.LoadLibYA
|
|
||||||
* in :
|
|
||||||
* Y,A = PTR To Lib Name
|
|
||||||
* out :
|
|
||||||
* A = hMem To loaded LIB
|
|
||||||
*--------------------------------------
|
|
||||||
K.LoadLibYA >STYA K.LoadLib.Name SAVE LIBname for K.FileSearch
|
|
||||||
>LDYAI ENV.LIB push ENVNAME=LIB
|
|
||||||
>SYSCALL GetEnvYA get value for ENV=LIB
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>PUSHYA Push $LIB value
|
|
||||||
|
|
||||||
>PUSHW K.LoadLib.Name
|
|
||||||
|
|
||||||
jsr K.FileSearch.I find libname in $LIB
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDYAI KrnBuf256
|
|
||||||
jsr K.LoadExeYA Y,A=filename full path
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
stx .8+1
|
|
||||||
>STYA LIB.Jump+1
|
|
||||||
|
|
||||||
txa Pass hLib to LibLoad
|
|
||||||
ldx #LIBMGR.LOAD
|
|
||||||
jsr LIB.Jump Call LIB.LOAD function
|
|
||||||
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
.8 lda #$ff hLib
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
|
|
||||||
.99 pha
|
|
||||||
lda .8+1
|
|
||||||
jsr K.FreeMemA
|
|
||||||
pla
|
|
||||||
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
K.LoadLib.Name .BS 2
|
|
||||||
*--------------------------------------
|
|
||||||
* K.UnloadLibA
|
|
||||||
* in :
|
|
||||||
* A = hMem To Lib
|
|
||||||
* out :
|
|
||||||
*--------------------------------------
|
|
||||||
K.UnloadLibA pha
|
|
||||||
jsr K.GetMemByIDA
|
|
||||||
>STYA ZPPtr1
|
|
||||||
ldy #S.MEM.REFCNT
|
|
||||||
lda (ZPPtr1),y Get count of those referencing this lib
|
|
||||||
dec only one left ?
|
|
||||||
beq .1
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
pla
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.1 ldy #S.MEM.PTR
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sta LIB.Jump+1
|
|
||||||
|
|
||||||
iny
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sta LIB.Jump+2
|
|
||||||
|
|
||||||
ldx #LIBMGR.UNLOAD
|
|
||||||
jsr LIB.Jump Call LIB.UNLOAD function
|
|
||||||
pla
|
|
||||||
jmp K.FreeMemA
|
|
||||||
LIB.Jump jmp $ffff Self Modiied
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.LIB
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.LIB
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
@ -365,7 +365,7 @@ K.FreeMemA phy
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
||||||
>LDYAI K.FreeMemA.ERR
|
>LDYAI K.FreeMemA.ERR
|
||||||
jsr K.PrintFYA
|
jsr K.PrintF.YA
|
||||||
|
|
||||||
.91 ldx #$ff
|
.91 ldx #$ff
|
||||||
bit $C000,x
|
bit $C000,x
|
||||||
|
@ -175,7 +175,7 @@ PS.CreateChild >LDYAI TskMgr.Table+S.PS
|
|||||||
ldy #S.PS.hPREFIX copy hPREFIX...
|
ldy #S.PS.hPREFIX copy hPREFIX...
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
jsr K.GetMemPtrA
|
jsr K.GetMemPtrA
|
||||||
jsr K.NewPStrYA
|
jsr K.NewPStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
txa
|
txa
|
||||||
@ -232,7 +232,7 @@ PS.CreateChild >LDYAI TskMgr.Table+S.PS
|
|||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.Init >LDYA K.CreateProcess.CmdLine
|
PS.Init >LDYA K.CreateProcess.CmdLine
|
||||||
jsr PS.PStr2StrArrayYA
|
jsr PS.Str2StrArrayYA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
phy save PTR to StrArray...
|
phy save PTR to StrArray...
|
||||||
@ -244,7 +244,7 @@ PS.Init >LDYA K.CreateProcess.CmdLine
|
|||||||
|
|
||||||
pla Restore PTR...
|
pla Restore PTR...
|
||||||
ply
|
ply
|
||||||
>SYSCALL LoadExeYA Y,A=filename full path
|
>SYSCALL LoadBin.YA Y,A=filename full path
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPPtr4 save PTR to Code Segment
|
>STYA ZPPtr4 save PTR to Code Segment
|
||||||
|
@ -92,7 +92,7 @@ RUN.DumpEvent ldy #S.EVT-1
|
|||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
>LDYAI MSG.DumpEvent
|
>LDYAI MSG.DumpEvent
|
||||||
jmp K.PrintFYA
|
jmp K.PrintF.YA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.DumpEvent >CSTR "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n"
|
MSG.DumpEvent >CSTR "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n"
|
||||||
SYS.CPULOADI .BS 1
|
SYS.CPULOADI .BS 1
|
||||||
|
79
SYS/KERNEL.S.STAT.txt
Normal file
79
SYS/KERNEL.S.STAT.txt
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
LOMEM $A00
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
*/--------------------------------------
|
||||||
|
* # Stat
|
||||||
|
* Return information about a file
|
||||||
|
* ## In :
|
||||||
|
* PUSHW = PTR to S.STAT buffer
|
||||||
|
* PUSHW = PTR to Filename (PSTR)
|
||||||
|
* ## Out :
|
||||||
|
*\--------------------------------------
|
||||||
|
K.Stat jsr PFT.CheckPathSTK
|
||||||
|
jsr STDIO.PullMLIPath
|
||||||
|
>PULLW ZPPtr2
|
||||||
|
>MLICALL MLIGETFILEINFO
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
ldx K.MLI.PARAMS+S.FILEINFO.ACCESS
|
||||||
|
|
||||||
|
lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO
|
||||||
|
cpx #S.FILEINFO.ACCESS.FULL
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
lda #S.STAT.MODE.XO+S.STAT.MODE.RO
|
||||||
|
cpx #S.FILEINFO.ACCESS.R
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.2 ldy #S.STAT.MODE
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
ldx #K.Stat.DST-K.Stat.SRC
|
||||||
|
|
||||||
|
.3 ldy K.Stat.SRC-1,x
|
||||||
|
lda K.MLI.PARAMS,y
|
||||||
|
ldy K.Stat.DST-1,x
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
dex
|
||||||
|
bne .3
|
||||||
|
|
||||||
|
ldy #S.STAT.SIZE
|
||||||
|
lda #0
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda K.MLI.PARAMS+S.FILEINFO.BLOCKSUSED
|
||||||
|
asl
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda K.MLI.PARAMS+S.FILEINFO.BLOCKSUSED+1
|
||||||
|
rol
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
rol
|
||||||
|
sta (ZPPtr2),y
|
||||||
|
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
K.Stat.SRC .DA #S.FILEINFO.TYPE
|
||||||
|
.DA #S.FILEINFO.AUXTYPE,#S.FILEINFO.AUXTYPE+1
|
||||||
|
.DA #S.FILEINFO.BLOCKSUSED,#S.FILEINFO.BLOCKSUSED+1
|
||||||
|
K.Stat.DST .DA #S.STAT.P.TYPE
|
||||||
|
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
||||||
|
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.STAT
|
||||||
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
ASM
|
@ -4,6 +4,402 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
* # FOpen
|
||||||
|
* Open a file
|
||||||
|
* ## In :
|
||||||
|
* PUSHW = AUXTYPE
|
||||||
|
* PUSHB = TYPE
|
||||||
|
* PUSHB = MODE
|
||||||
|
* SYS.FOpen.R : if R and !exists -> ERROR
|
||||||
|
* SYS.FOpen.W : if W and !exists -> CREATE
|
||||||
|
* SYS.FOpen.A : Append
|
||||||
|
* SYS.FOpen.T : Open/Append in Text mode
|
||||||
|
* SYS.FOpen.X : Create if not exists
|
||||||
|
* PUSHW = PATH (PSTR)
|
||||||
|
* ## Out :
|
||||||
|
* CC : A = hFILE
|
||||||
|
* CS : A = EC
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FOpen jsr PFT.CheckPathSTK
|
||||||
|
jsr STDIO.PullMLIPath
|
||||||
|
>PULLB K.FOpen.MODE
|
||||||
|
>PULLB K.FOpen.TYPE
|
||||||
|
>PULLW K.FOpen.AUXTYPE
|
||||||
|
|
||||||
|
>MLICALL MLIGETFILEINFO
|
||||||
|
bcc K.FOpen.10 Already Exists
|
||||||
|
|
||||||
|
bit K.FOpen.MODE Create if not exists ?
|
||||||
|
bpl K.FOpen.9 No, return MLI error
|
||||||
|
|
||||||
|
lda #S.FILEINFO.ACCESS.FULL Yes, Create...
|
||||||
|
sta K.MLI.PARAMS+3 Access
|
||||||
|
lda K.FOpen.TYPE
|
||||||
|
sta K.MLI.PARAMS+4 File type
|
||||||
|
>LDYA K.FOpen.AUXTYPE
|
||||||
|
>STYA K.MLI.PARAMS+5 Aux type
|
||||||
|
lda #S.FILEINFO.STORETYPE.STD
|
||||||
|
sta K.MLI.PARAMS+7
|
||||||
|
|
||||||
|
ldx #3
|
||||||
|
|
||||||
|
.1 lda DATELO,x
|
||||||
|
sta K.MLI.PARAMS+8,x
|
||||||
|
dex
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
>MLICALL MLICREATE
|
||||||
|
bcc K.FOpen.10
|
||||||
|
K.FOpen.9 rts
|
||||||
|
|
||||||
|
K.FOpen.10 >LDYAI S.NODE.REG
|
||||||
|
jsr K.GetMem0YA
|
||||||
|
bcs K.FOpen.9
|
||||||
|
|
||||||
|
>STYA ZPPtr1
|
||||||
|
stx hFILE
|
||||||
|
|
||||||
|
jsr STDIO.SetIOBUF
|
||||||
|
bcs .98
|
||||||
|
|
||||||
|
>MLICALL MLIOPEN
|
||||||
|
bcs .98
|
||||||
|
|
||||||
|
lda K.MLI.PARAMS+5 get ref_num
|
||||||
|
ldy #S.NODE.REG.REF
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
|
sta K.MLI.PARAMS+1 Next MLI Calls are REF_NUM based
|
||||||
|
|
||||||
|
lda K.FOpen.MODE
|
||||||
|
bit #SYS.FOpen.W
|
||||||
|
beq .20 Write mode ?
|
||||||
|
|
||||||
|
and #SYS.FOpen.A Append ?
|
||||||
|
bne .11 yes, go to end of file
|
||||||
|
|
||||||
|
stz K.MLI.PARAMS+2
|
||||||
|
stz K.MLI.PARAMS+3
|
||||||
|
stz K.MLI.PARAMS+4
|
||||||
|
>MLICALL MLISETEOF no, reset size to 0
|
||||||
|
bcs .98
|
||||||
|
bra .20
|
||||||
|
|
||||||
|
.11 >MLICALL MLIGETEOF
|
||||||
|
bcs .98
|
||||||
|
|
||||||
|
>MLICALL MLISETMARK
|
||||||
|
bcs .98
|
||||||
|
|
||||||
|
.20 lda K.FOpen.MODE
|
||||||
|
and #SYS.FOpen.T Text Mode ?
|
||||||
|
beq .30
|
||||||
|
|
||||||
|
lda #$FF
|
||||||
|
sta K.MLI.PARAMS+2
|
||||||
|
lda #$0D
|
||||||
|
sta K.MLI.PARAMS+3
|
||||||
|
>MLICALL MLINEWLINE
|
||||||
|
|
||||||
|
.30 ldy #S.NODE.T
|
||||||
|
lda #S.NODE.T.REG
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
lda hFILE
|
||||||
|
clc
|
||||||
|
rts CC
|
||||||
|
|
||||||
|
.98 pha save MLI error
|
||||||
|
lda hFILE
|
||||||
|
jsr K.FCloseA.1
|
||||||
|
pla get back MLI error
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
K.FOpen.MODE .BS 1
|
||||||
|
K.FOpen.TYPE .BS 1
|
||||||
|
K.FOpen.AUXTYPE .BS 2
|
||||||
|
hFILE .BS 1
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FCloseA
|
||||||
|
* Close a file
|
||||||
|
* ## In :
|
||||||
|
* A = hFILE
|
||||||
|
* ## Out :
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FCloseA jsr PFT.CheckNodeA
|
||||||
|
pha
|
||||||
|
jsr K.GetMemPtrA
|
||||||
|
>STYA ZPPtr1
|
||||||
|
pla
|
||||||
|
|
||||||
|
K.FCloseA.1 sta K.FCloseA.2+1
|
||||||
|
ldy #S.NODE.REG.REF
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
beq .1
|
||||||
|
sta K.MLI.PARAMS+1
|
||||||
|
>MLICALL MLICLOSE
|
||||||
|
|
||||||
|
.1 ldy #S.NODE.REG.IOBUF
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
beq K.FCloseA.2
|
||||||
|
jsr K.FreeMemA
|
||||||
|
|
||||||
|
K.FCloseA.2 lda #$ff Self Modified
|
||||||
|
jmp K.FreeMemA
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FReadA
|
||||||
|
* Read ONE byte from file
|
||||||
|
* ## In :
|
||||||
|
* A = hFILE
|
||||||
|
* ## Out :
|
||||||
|
* A = Byte Read
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FReadA jsr PFT.CheckNodeA
|
||||||
|
ldx #MLIREAD
|
||||||
|
bra K.FReadWrite.0
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FWriteAY
|
||||||
|
* ## In:
|
||||||
|
* A = hFILE
|
||||||
|
* Y = char
|
||||||
|
* # Out:
|
||||||
|
* Y,A = Bytes Written
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FWriteAY jsr PFT.CheckNodeA
|
||||||
|
sty K.FWriteAY.Buf
|
||||||
|
ldx #MLIWRITE
|
||||||
|
K.FReadWrite.0 jsr STDIO.GetRefNum
|
||||||
|
>LDYAI K.FWriteAY.Buf
|
||||||
|
>STYA K.MLI.PARAMS+2
|
||||||
|
lda #1
|
||||||
|
sta K.MLI.PARAMS+4
|
||||||
|
stz K.MLI.PARAMS+5
|
||||||
|
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
|
||||||
|
jsr A2osX.MLICALL
|
||||||
|
bcs .9
|
||||||
|
lda K.FWriteAY.Buf
|
||||||
|
.9 rts
|
||||||
|
K.FWriteAY.Buf .BS 1
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FRead
|
||||||
|
* Read bytes from file
|
||||||
|
* ## In :
|
||||||
|
* PUSHW = Dest Ptr
|
||||||
|
* PUSHW = Bytes To Read
|
||||||
|
* PUSHB = hFILE
|
||||||
|
* ## Out :
|
||||||
|
* Y,A = Bytes Read
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FRead jsr PFT.CheckNodeSTK
|
||||||
|
ldx #MLIREAD
|
||||||
|
bra K.FReadWrite.1
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FWrite
|
||||||
|
* ## In:
|
||||||
|
* PUSHW = Src Ptr
|
||||||
|
* PUSHW = Bytes To Write
|
||||||
|
* PUSHB = hFILE
|
||||||
|
* # Out:
|
||||||
|
* Y,A = Bytes Written
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FWrite jsr PFT.CheckNodeSTK
|
||||||
|
ldx #MLIWRITE
|
||||||
|
K.FReadWrite.1 >PULLA
|
||||||
|
jsr STDIO.GetRefNum
|
||||||
|
>PULLW K.MLI.PARAMS+4
|
||||||
|
>PULLW K.MLI.PARAMS+2
|
||||||
|
|
||||||
|
lda #4 Param Count = 4 for MLIREAD & MLIWRITE
|
||||||
|
jsr A2osX.MLICALL
|
||||||
|
bcs .9
|
||||||
|
>LDYA K.MLI.PARAMS+6
|
||||||
|
.9 rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FFlushA
|
||||||
|
* ## In:
|
||||||
|
* A = hFILE
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FFlushA jsr PFT.CheckNodeA
|
||||||
|
jsr STDIO.GetRefNum
|
||||||
|
>MLICALL MLIFLUSH
|
||||||
|
rts
|
||||||
|
*/-------------------------------------
|
||||||
|
* # FSeek
|
||||||
|
* ## In:
|
||||||
|
* PUSHW = OffsetHi
|
||||||
|
* PUSHW = OffsetLo
|
||||||
|
* PUSHB = From
|
||||||
|
* PUSHB = hFILE
|
||||||
|
*\-------------------------------------
|
||||||
|
K.FSeek jsr PFT.CheckNodeSTK
|
||||||
|
>PULLA
|
||||||
|
jsr STDIO.GetRefNum
|
||||||
|
>PULLA FROM
|
||||||
|
tax
|
||||||
|
>PULLW K.FSeek.OFFSET
|
||||||
|
>PULLW K.FSeek.OFFSET+2
|
||||||
|
|
||||||
|
cpx #SYS.FSeek.SET
|
||||||
|
|
||||||
|
bne .1
|
||||||
|
stz K.MLI.PARAMS+2
|
||||||
|
stz K.MLI.PARAMS+3
|
||||||
|
stz K.MLI.PARAMS+4
|
||||||
|
bra .8
|
||||||
|
|
||||||
|
.1 cpx #SYS.FSeek.CUR
|
||||||
|
bne .2
|
||||||
|
>MLICALL MLIGETMARK
|
||||||
|
bcc .8
|
||||||
|
rts
|
||||||
|
|
||||||
|
.2 cpx #SYS.FSeek.END
|
||||||
|
bne .98
|
||||||
|
>MLICALL MLIGETEOF
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.8 ldx #0
|
||||||
|
ldy #3
|
||||||
|
|
||||||
|
clc
|
||||||
|
|
||||||
|
.81 lda K.MLI.PARAMS+2,x
|
||||||
|
adc K.FSeek.OFFSET,x
|
||||||
|
sta K.MLI.PARAMS+2,x
|
||||||
|
|
||||||
|
inx
|
||||||
|
dey
|
||||||
|
bne .81
|
||||||
|
|
||||||
|
bcs .99 Offset out of range!
|
||||||
|
|
||||||
|
>MLICALL MLISETMARK
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
|
||||||
|
.98 lda #SYSMGR.ERRSYN
|
||||||
|
.HS 2C bit abs
|
||||||
|
.99 lda #SYSMGR.ERRFTB
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
K.FSeek.OFFSET .BS 4
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FTellA
|
||||||
|
* ## In:
|
||||||
|
* A = hFILE
|
||||||
|
* ## Out:
|
||||||
|
* Y,A,X = Offset
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FTellA jsr PFT.CheckNodeA
|
||||||
|
K.FTellA.1 jsr STDIO.GetRefNum
|
||||||
|
>MLICALL MLIGETMARK
|
||||||
|
bcs .9
|
||||||
|
>LDYA K.MLI.PARAMS+2
|
||||||
|
ldx K.MLI.PARAMS+4
|
||||||
|
.9 rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # FEOFA
|
||||||
|
* ## In:
|
||||||
|
* A = hFILE
|
||||||
|
* ## Out:
|
||||||
|
* CC :
|
||||||
|
* A=0 EOF
|
||||||
|
* A !=0 NOT EOF
|
||||||
|
* CS :
|
||||||
|
*\--------------------------------------
|
||||||
|
K.FEOFA jsr PFT.CheckNodeA
|
||||||
|
jsr STDIO.GetRefNum
|
||||||
|
jsr K.FTellA.1
|
||||||
|
bcs .9
|
||||||
|
>STYA K.FEOFA.MARK
|
||||||
|
stx K.FEOFA.MARK+2
|
||||||
|
|
||||||
|
>MLICALL MLIGETEOF
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
sec
|
||||||
|
lda K.MLI.PARAMS+2
|
||||||
|
sbc K.FEOFA.MARK
|
||||||
|
bne .8
|
||||||
|
lda K.MLI.PARAMS+3
|
||||||
|
sbc K.FEOFA.MARK+1
|
||||||
|
bne .8
|
||||||
|
lda K.MLI.PARAMS+4
|
||||||
|
sbc K.FEOFA.MARK+2
|
||||||
|
.8 clc
|
||||||
|
.9 rts
|
||||||
|
K.FEOFA.MARK .BS 3
|
||||||
|
*/--------------------------------------
|
||||||
|
* # RemoveYA
|
||||||
|
*\--------------------------------------
|
||||||
|
K.RemoveYA jsr PFT.CheckPathYA
|
||||||
|
jsr STDIO.PullMLIPath
|
||||||
|
>MLICALL MLIDESTROY
|
||||||
|
rts
|
||||||
|
*/--------------------------------------
|
||||||
|
* # Rename
|
||||||
|
* Rename a file
|
||||||
|
* ## In :
|
||||||
|
* PUSHW = New Name
|
||||||
|
* PUSHW = Old Name
|
||||||
|
* ## Out :
|
||||||
|
*\--------------------------------------
|
||||||
|
K.Rename jsr PFT.CheckPathSTK
|
||||||
|
jsr STDIO.PullMLIPath
|
||||||
|
>PULLW .1+1
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 lda $ffff,y Self Modified
|
||||||
|
beq .8
|
||||||
|
iny
|
||||||
|
sta K.Buf256,y
|
||||||
|
cpy #MLI.MAXPATH
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.8 sty K.Buf256
|
||||||
|
>LDYAI K.Buf256
|
||||||
|
>STYA K.MLI.PARAMS+3
|
||||||
|
|
||||||
|
>MLICALL MLIRename
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
STDIO.PullMLIPath
|
||||||
|
>PULLW .1+1
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 lda $ffff,y Self Modified
|
||||||
|
beq .8
|
||||||
|
iny
|
||||||
|
sta K.MLI.PATH,y
|
||||||
|
cpy #MLI.MAXPATH
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.8 sty K.MLI.PATH
|
||||||
|
>LDYAI K.MLI.PATH
|
||||||
|
>STYA K.MLI.PARAMS+1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
STDIO.SetIOBUF >PUSHWI 1024 get a ProDOS IOBUF
|
||||||
|
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
|
||||||
|
jsr K.GetMem
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
|
||||||
|
txa
|
||||||
|
ldy #S.NODE.REG.IOBUF
|
||||||
|
sta (ZPPtr1),y
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
STDIO.GetRefNum jsr K.GetMemPtrA
|
||||||
|
>STYA ZPPtr1
|
||||||
|
ldy #S.NODE.REG.REF
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
sta K.MLI.PARAMS+1
|
||||||
|
rts
|
||||||
|
*/--------------------------------------
|
||||||
* # FPutCAY
|
* # FPutCAY
|
||||||
* Print A (char) to File
|
* Print A (char) to File
|
||||||
* ## In:
|
* ## In:
|
||||||
@ -331,15 +727,15 @@ K.SScanF.IsDigit
|
|||||||
.1 sec
|
.1 sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # PrintFYA/SPrintFYA/FPrintFYA
|
* # PrintF.YA/SPrintF.YA/FPrintF.YA
|
||||||
* Prints C-Style String
|
* Prints C-Style String
|
||||||
* ## In:
|
* ## In:
|
||||||
* PrintFYA :
|
* PrintF.YA :
|
||||||
* Y,A = PTR to CStr
|
* Y,A = PTR to CStr
|
||||||
* SPrintFYA :
|
* SPrintF.YA :
|
||||||
* Y,A = PTR to CStr
|
* Y,A = PTR to CStr
|
||||||
* PULLW = Ptr to Dst Buffer
|
* PULLW = Ptr to Dst Buffer
|
||||||
* FPrintFYA :
|
* FPrintF.YA :
|
||||||
* Y,A = PTR to CStr
|
* Y,A = PTR to CStr
|
||||||
* PULLB = hNode
|
* PULLB = hNode
|
||||||
* ## Out:
|
* ## Out:
|
||||||
@ -378,12 +774,12 @@ K.SScanF.IsDigit
|
|||||||
* %011s : 'ABCDEFGH000'
|
* %011s : 'ABCDEFGH000'
|
||||||
* %2f : '3.14'
|
* %2f : '3.14'
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.SPrintFYA >STYA ZPPtr1
|
K.SPrintF.YA >STYA ZPPtr1
|
||||||
>PULLW Printf.Cout.Ptr+1
|
>PULLW Printf.Cout.Ptr+1
|
||||||
|
|
||||||
K.FPrintFYA >STYA ZPPtr1
|
K.FPrintF.YA >STYA ZPPtr1
|
||||||
|
|
||||||
K.PrintFYA >STYA ZPPtr1
|
K.PrintF.YA >STYA ZPPtr1
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
@ -730,24 +1126,6 @@ Printf.Cout jmp K.PutCharA
|
|||||||
|
|
||||||
Printf.Cout.Ptr sta $ffff Self modified
|
Printf.Cout.Ptr sta $ffff Self modified
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FILE.SetIOBUF >PUSHWI 1024 get a ProDOS IOBUF
|
|
||||||
>PUSHBI S.MEM.F.ALIGN+S.MEM.F.NOMOVE
|
|
||||||
jsr K.GetMem
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>STYA K.MLI.PARAMS+3 Save Ptr to IOBUF for MLIOPEN call
|
|
||||||
txa
|
|
||||||
ldy #S.NODE.REG.IOBUF
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
FILE.SetupPrt1A jsr K.GetMemPtrA
|
|
||||||
>STYA ZPPtr1
|
|
||||||
ldy #S.NODE.REG.REF
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
sta K.MLI.PARAMS+1
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
@ -1,10 +0,0 @@
|
|||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
LOMEM $A00
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.STR
|
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
|
||||||
ASM
|
|
@ -143,16 +143,16 @@ K.StrMatch jsr PullPtr1Ptr2
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # StrUprYA/StrLwrYA
|
* # StrUpr.YA/StrLwr.YA
|
||||||
* Convert string to UPPERCASE/lowercase
|
* Convert string to UPPERCASE/lowercase
|
||||||
* ## In:
|
* ## In:
|
||||||
* Y,A = PTR to String (CSTR)
|
* Y,A = PTR to String (CSTR)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* Uppercased/lowercased String in Buffer
|
* Uppercased/lowercased String in Buffer
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrUprYA ldx #0
|
K.StrUpr.YA ldx #0
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
K.StrLwrYA ldx #2
|
K.StrLwr.YA ldx #2
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
pha save Y,A to restore them at exit
|
pha save Y,A to restore them at exit
|
||||||
@ -163,9 +163,9 @@ K.StrLwrYA ldx #2
|
|||||||
.1 lda (ZPPtr1),y
|
.1 lda (ZPPtr1),y
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp K.PStrUprLwr,x
|
cmp .9,x
|
||||||
bcc .2
|
bcc .2
|
||||||
cmp K.PStrUprLwr+1,x
|
cmp .9+1,x
|
||||||
bcs .2
|
bcs .2
|
||||||
eor #$20
|
eor #$20
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
@ -178,7 +178,7 @@ K.StrLwrYA ldx #2
|
|||||||
pla
|
pla
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.PStrUprLwr .AS "azAZ"
|
.9 .AS "azAZ"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.STRING
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.STRING
|
||||||
|
@ -11,13 +11,13 @@ CENTURY0 .EQ 19
|
|||||||
YEAR0 .EQ 70
|
YEAR0 .EQ 70
|
||||||
DAY0 .EQ 4 day 0 was a thursday
|
DAY0 .EQ 4 day 0 was a thursday
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* K.TimeYA get System Time
|
* K.Time.YA get System Time
|
||||||
* In :
|
* In :
|
||||||
* Y,A = PTR to S.TIME
|
* Y,A = PTR to S.TIME
|
||||||
* Out :
|
* Out :
|
||||||
* S.TIME filled with System date/time
|
* S.TIME filled with System date/time
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.TimeYA >STYA ZPPtr2
|
K.Time.YA >STYA ZPPtr2
|
||||||
>MLICALL MLIGETTIME
|
>MLICALL MLIGETTIME
|
||||||
>LDYAI DATELO
|
>LDYAI DATELO
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
@ -618,6 +618,6 @@ K.StrFTime.BIN .BS 1
|
|||||||
K.StrFTime.DEC .BS 1 always < 100
|
K.StrFTime.DEC .BS 1 always < 100
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.Time
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.TIME
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -28,24 +28,22 @@ A2osX.GP .PH $BD00
|
|||||||
.EP
|
.EP
|
||||||
A2osX.D1 .PH $D000
|
A2osX.D1 .PH $D000
|
||||||
.DA #RRAMWRAMBNK1
|
.DA #RRAMWRAMBNK1
|
||||||
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
||||||
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STAT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.FIO
|
.INB /A2OSX.SRC/SYS/KERNEL.S.FIO
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DRV
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.LIB
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.TIME
|
.INB /A2OSX.SRC/SYS/KERNEL.S.TIME
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.FILE
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DIR
|
.INB /A2OSX.SRC/SYS/KERNEL.S.DIR
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.PFT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.PFT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.BIN
|
.INB /A2OSX.SRC/SYS/KERNEL.S.BIN
|
||||||
.EP
|
.EP
|
||||||
A2osX.D2 .PH $D000
|
A2osX.D2 .PH $D000
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #RRAMWRAMBNK2
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CIO
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STRING
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STR
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STDLIB
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DEV
|
.INB /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.PS
|
.INB /A2OSX.SRC/SYS/KERNEL.S.PS
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.ARG
|
.INB /A2OSX.SRC/SYS/KERNEL.S.ARG
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.ENV
|
.INB /A2OSX.SRC/SYS/KERNEL.S.ENV
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CNV
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.RUN
|
.INB /A2OSX.SRC/SYS/KERNEL.S.RUN
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.EVT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.EVT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.TSK
|
.INB /A2OSX.SRC/SYS/KERNEL.S.TSK
|
||||||
@ -55,7 +53,6 @@ A2osX.E0 .PH $E000
|
|||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DAT
|
.INB /A2OSX.SRC/SYS/KERNEL.S.DAT
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.IRQ
|
.INB /A2OSX.SRC/SYS/KERNEL.S.IRQ
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CHR
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||||
.EP
|
.EP
|
||||||
A2osX.E0.E .EQ *
|
A2osX.E0.E .EQ *
|
||||||
|
Loading…
x
Reference in New Issue
Block a user