mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 18:30:26 +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
|
||||
>PUSHW L.SSCANF.IP
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
|
||||
>SYSCALL SSCANF
|
||||
|
@ -154,7 +154,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
beq .99 No arg, new file....
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>SYSCALL GetFullPathYA
|
||||
|
||||
txa
|
||||
|
@ -47,7 +47,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
beq .5
|
||||
|
||||
lda ArgCount
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>STYA ZPPtr1
|
||||
|
||||
ldy #1
|
||||
@ -121,7 +121,7 @@ CS.RUN >SYSCALL GetC
|
||||
lda (pData),y
|
||||
inc
|
||||
sta (pData),y
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
bcs .99 No more arg...the end!
|
||||
|
||||
>STYA ZPPtr1
|
||||
|
@ -58,7 +58,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
|
||||
inc ArgIndex
|
||||
lda ArgIndex
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
@ -41,7 +41,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
beq .9
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
|
||||
>SYSCALL GetDevByNameYA
|
||||
bcs .9
|
||||
|
@ -60,14 +60,14 @@ CS.RUN.ADD cmp #3
|
||||
>PUSHW L.IP
|
||||
>PUSHW L.SSCANF.IP
|
||||
lda #3
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>SYSCALL SSCANF
|
||||
bcs .9
|
||||
|
||||
>PUSHW L.IP
|
||||
lda #2
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.DNS.ADD
|
||||
bcs .99
|
||||
|
@ -108,7 +108,7 @@ CS.INIT lda #$ff
|
||||
beq .1 No arg, new file....
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
|
||||
>SYSCALL GetFullPathYA
|
||||
txa
|
||||
|
@ -53,7 +53,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
|
||||
inc ArgIndex
|
||||
lda ArgIndex
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
@ -60,7 +60,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
beq .5
|
||||
|
||||
lda ArgCount
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
@ -41,7 +41,7 @@ CS.RUN >SYSCALL GetArgC
|
||||
beq .99
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>SYSCALL GetFullPathYA
|
||||
bcs .9
|
||||
|
||||
|
@ -76,7 +76,7 @@ CS.RUN.READ jsr NSC.Init
|
||||
rts
|
||||
|
||||
CS.RUN.SET lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
@ -80,7 +80,7 @@ CS.RUN.IPOK >SYSCALL GetArgC
|
||||
|
||||
.2 >PUSHW pData DST.IP
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||
bcc CS.RUN.HOSTOK
|
||||
@ -89,7 +89,7 @@ CS.RUN.IPOK >SYSCALL GetArgC
|
||||
bcc .2
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>LDYA L.MSG.UNKNOWN
|
||||
bra .99
|
||||
@ -101,7 +101,7 @@ CS.RUN.IPOK >SYSCALL GetArgC
|
||||
rts
|
||||
|
||||
CS.RUN.HOSTOK lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
|
||||
ldy #DST.IP+3
|
||||
|
@ -83,7 +83,7 @@ CS.RUN jsr Init.Timeout
|
||||
|
||||
.1 >PUSHW L.Socket.Dst.Addr
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||
bcc .2
|
||||
@ -93,7 +93,7 @@ CS.RUN jsr Init.Timeout
|
||||
bcc .1
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>LDYA L.MSG.UNKNOWN
|
||||
>SYSCALL PrintFYA
|
||||
@ -155,7 +155,7 @@ CS.RUN jsr Init.Timeout
|
||||
rts
|
||||
|
||||
.99 lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>LDYA L.MSG.TIMEOUT
|
||||
>SYSCALL PrintFYA
|
||||
|
@ -54,7 +54,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
|
||||
inc ArgIndex
|
||||
lda ArgIndex
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
@ -63,8 +63,9 @@ K.MLI.PATH .EQ $03B0 64+1 -> $03D0
|
||||
*--------------------------------------
|
||||
*UsrBuf256 .EQ $0C00 Main
|
||||
*--------------------------------------
|
||||
KrnBuf256 .EQ $0D00 Main
|
||||
K.Buf256 .EQ $0D00 Main
|
||||
*--------------------------------------
|
||||
K.STACK .EQ $0F00 Up to $0FFF
|
||||
*--------------------------------------
|
||||
*** Z80 Reserved $0F00-10FF***
|
||||
*--------------------------------------
|
||||
@ -172,7 +173,7 @@ SYS.ChGrp .EQ $0E
|
||||
SYS.LoadDrvYA .EQ $10
|
||||
SYS.LoadLibYA .EQ $12
|
||||
SYS.UnloadLibA .EQ $14
|
||||
SYS.LoadExeYA .EQ $16
|
||||
SYS.LoadBin.YA .EQ $16
|
||||
SYS.TimeYA .EQ $18
|
||||
SYS.CTime2Time .EQ $1A
|
||||
SYS.PTime2Time .EQ $1C
|
||||
@ -231,7 +232,7 @@ SYS.Sleep .EQ $6C
|
||||
* .EQ $6E
|
||||
*--------------------------------------
|
||||
SYS.GetArgC .EQ $70
|
||||
SYS.GetArgA .EQ $72
|
||||
SYS.GetArg.A .EQ $72
|
||||
SYS.ExpandPStrYA .EQ $74
|
||||
* .EQ $76
|
||||
SYS.PutEnvYA .EQ $78
|
||||
|
@ -51,7 +51,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
rts
|
||||
|
||||
.1 lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
|
||||
>SYSCALL MkNodYA
|
||||
bcs .9
|
||||
@ -64,7 +64,7 @@ CS.INIT >SYSCALL GetArgC
|
||||
sta (pPs),y
|
||||
|
||||
lda #2
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
bcs .9
|
||||
|
||||
>SYSCALL ExpandPStrYA
|
||||
|
@ -48,14 +48,14 @@ CS.INIT >SYSCALL GetArgC
|
||||
rts
|
||||
|
||||
.1 lda #1 get PTR to ARG[1] (Driver name)
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
|
||||
>LDYA L.MSG.LOAD
|
||||
>SYSCALL PrintFYA
|
||||
|
||||
lda #1 get PTR to ARG[1] (Driver name)
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
|
||||
>SYSCALL LoadDrvYA YA = PTR to ARG[1...n]
|
||||
bcs .99
|
||||
|
@ -210,7 +210,7 @@ Cmd.Exec.EXT ldy #1
|
||||
*--------------------------------------
|
||||
Cmd.Exec.EXT.TXT
|
||||
lda #0 Get arg[0] = /PATH/SHELL
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>PUSHWI UsrBuf256
|
||||
>SYSCALL PStrCpy
|
||||
|
@ -113,7 +113,7 @@ CS.INIT jsr SetPWD
|
||||
>PUSHBI SYS.FOpen.R
|
||||
|
||||
lda #1
|
||||
>SYSCALL GetArgA
|
||||
>SYSCALL GetArg.A
|
||||
>PUSHYA
|
||||
>SYSCALL LoadFile
|
||||
bcs .9
|
||||
|
@ -25,7 +25,7 @@ K.GetArgC jsr ARG.InitArgPtr1
|
||||
.8 txa
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # GetArgA
|
||||
* # GetArg.A
|
||||
* ## In:
|
||||
* A = argument index.
|
||||
* ## Out:
|
||||
@ -33,7 +33,7 @@ K.GetArgC jsr ARG.InitArgPtr1
|
||||
* Y,A = CStr To Arg[A]
|
||||
* CS : Out Of Bound
|
||||
*\--------------------------------------
|
||||
K.GetArgA sta .2+1
|
||||
K.GetArg.A sta .2+1
|
||||
jsr ARG.InitArgPtr1
|
||||
|
||||
lda .2+1
|
||||
|
@ -4,17 +4,151 @@ LOMEM $A00
|
||||
INC 1
|
||||
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 :
|
||||
* A = hMem of FilePath (PSTR)
|
||||
* out :
|
||||
* Y,A = MEMPTR
|
||||
* X = hMem of Code Segment
|
||||
*--------------------------------------
|
||||
K.LoadEXEYA >STYA K.LoadEXEYA.Filename
|
||||
>SYSCALL StrUprYA Y,A unmodified
|
||||
K.LoadBin.YA >STYA K.LoadBin.YA.Filename
|
||||
|
||||
jsr MEM.GetMemByNameYA
|
||||
bcs K.LoadEXEYA.1 not already loaded
|
||||
bcs K.LoadBin.YA.1 not already loaded
|
||||
|
||||
>STYA ZPPtr1 Save base address
|
||||
ldy #S.MEM.REFCNT
|
||||
@ -25,8 +159,8 @@ K.LoadEXEYA >STYA K.LoadEXEYA.Filename
|
||||
txa
|
||||
jmp K.GetMemPtrA X=hMem from K.GetMemByNameA
|
||||
*--------------------------------------
|
||||
K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
||||
>PUSHW K.LoadEXEYA.Filename
|
||||
K.LoadBin.YA.1 >PUSHWI K.S.STAT
|
||||
>PUSHW K.LoadBin.YA.Filename
|
||||
jsr K.STAT Look for AUXTYPE
|
||||
bcs .9
|
||||
|
||||
@ -36,12 +170,12 @@ K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
||||
>PUSHYA Push AUXTYPE
|
||||
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
||||
>PUSHBI SYS.FOpen.R
|
||||
>PUSHW K.LoadEXEYA.Filename
|
||||
>PUSHW K.LoadBin.YA.Filename
|
||||
|
||||
jsr K.LoadFile
|
||||
.9 bcs .99 Error Loading file
|
||||
|
||||
stx K.LoadEXEYA.hMem save hMem
|
||||
stx K.LoadBin.YA.hMem save hMem
|
||||
|
||||
pha YA=CODE+DATA size
|
||||
tya
|
||||
@ -78,11 +212,11 @@ K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
||||
|
||||
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
|
||||
bcs .98
|
||||
|
||||
lda K.LoadEXEYA.hMem Keep X=hMem
|
||||
lda K.LoadBin.YA.hMem Keep X=hMem
|
||||
jsr K.GetMemByIDA X unmodified
|
||||
>STYA ZPPtr1
|
||||
|
||||
@ -94,28 +228,28 @@ K.LoadEXEYA.1 >PUSHWI K.S.STAT
|
||||
ldy #S.MEM.BIN
|
||||
sta (ZPPtr1),y
|
||||
|
||||
lda K.LoadEXEYA.hMem
|
||||
lda K.LoadBin.YA.hMem
|
||||
tax return hMEM to Caller...
|
||||
jsr K.GetMemPtrA
|
||||
clc ...and Y,A=PTR to CS
|
||||
rts
|
||||
|
||||
.98 pha
|
||||
lda K.LoadEXEYA.hMem
|
||||
lda K.LoadBin.YA.hMem
|
||||
jsr K.FreeMemA Discard Loaded Code
|
||||
pla
|
||||
|
||||
sec
|
||||
.99 rts
|
||||
*--------------------------------------
|
||||
K.LoadEXEYA.Filename .BS 2
|
||||
K.LoadEXEYA.hMem .BS 1
|
||||
K.LoadBin.YA.Filename .BS 2
|
||||
K.LoadBin.YA.hMem .BS 1
|
||||
*--------------------------------------
|
||||
* BIN.InstallDRV
|
||||
* In:
|
||||
* pDrv = .DRV File Loaded Address
|
||||
* Note:
|
||||
* K.LoadEXEYA called from K.LoadDrvYA
|
||||
* K.LoadBin.YA called from K.LoadDrvYA
|
||||
* Already setup correctly pDrv,
|
||||
* 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 ?
|
||||
bne .98
|
||||
|
||||
jsr FILE.SetIOBUF
|
||||
jsr STDIO.SetIOBUF
|
||||
|
||||
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
|
||||
|
||||
>LDYAI KrnBuf256
|
||||
>LDYAI K.Buf256
|
||||
>STYA K.MLI.PARAMS+2
|
||||
>STYA ZPPtr2
|
||||
>MLICALL MLIONLINE
|
||||
|
@ -4,64 +4,6 @@ LOMEM $A00
|
||||
INC 1
|
||||
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
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.DRV
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
|
@ -4,18 +4,54 @@ LOMEM $A00
|
||||
INC 1
|
||||
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:
|
||||
* Y,A = PTR to String to Expand (PSTR)
|
||||
* ## Out:
|
||||
* X = hMem to Expanded String (PSTR)
|
||||
* 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
|
||||
|
||||
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.bNoExp Reset no expand flag
|
||||
@ -43,11 +79,11 @@ K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
||||
.21 bit K.ExpandPStr.bNoExp
|
||||
bpl .23
|
||||
|
||||
.22 ldx KrnBuf256
|
||||
.22 ldx K.Buf256
|
||||
inx
|
||||
beq .8
|
||||
sta KrnBuf256,x
|
||||
stx KrnBuf256
|
||||
sta K.Buf256,x
|
||||
stx K.Buf256
|
||||
bra .11
|
||||
|
||||
.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....
|
||||
|
||||
.81 >LDYAI KrnBuf256
|
||||
jsr K.NewPStrYA
|
||||
.81 >LDYAI K.Buf256
|
||||
jsr K.NewPStr.YA
|
||||
bcs .9
|
||||
stx K.ExpandPStr.hPStr save this as temp string, in case of recurse
|
||||
ldx K.ExpandPStr.bFound Did we expand something ?
|
||||
@ -147,7 +183,7 @@ K.ExpandPStrGetValue
|
||||
bcc .9
|
||||
|
||||
>LDYAI K.ExpandPStr.Name
|
||||
jsr K.GetEnvYA
|
||||
jsr K.GetEnv.YA
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr3
|
||||
@ -162,52 +198,52 @@ K.ExpandPStr.bFound .BS 1
|
||||
K.ExpandPStr.hPStr .BS 1
|
||||
K.ExpandPStr.Name .BS 16
|
||||
*/--------------------------------------
|
||||
* # PutEnvYA
|
||||
* # PutEnv.YA
|
||||
* ## In:
|
||||
* Y,A = PTR to String NAME=VALUE (PSTR)
|
||||
* ## Out:
|
||||
*\--------------------------------------
|
||||
K.PutEnvYA >STYA ZPPtr1 NAME=VALUE
|
||||
K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
|
||||
|
||||
lda (ZPPtr1)
|
||||
beq .9
|
||||
sta KrnBuf256
|
||||
sta K.Buf256
|
||||
tay
|
||||
|
||||
.1 lda (ZPPtr1),y copy PSTR to KrnBuf256
|
||||
sta KrnBuf256,y
|
||||
.1 lda (ZPPtr1),y copy PSTR to K.Buf256
|
||||
sta K.Buf256,y
|
||||
dey
|
||||
bne .1
|
||||
|
||||
ldy #0
|
||||
|
||||
.2 iny
|
||||
cpy KrnBuf256 last char ?
|
||||
cpy K.Buf256 last char ?
|
||||
beq .9 no "=" found
|
||||
|
||||
lda KrnBuf256,y
|
||||
lda K.Buf256,y
|
||||
cmp #'='
|
||||
bne .2
|
||||
|
||||
cpy #1 String like "=value" ?
|
||||
beq .9
|
||||
|
||||
cpy KrnBuf256 last char ?
|
||||
cpy K.Buf256 last char ?
|
||||
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
|
||||
dec KrnBuf256 ...without "="
|
||||
sty K.Buf256 set length of VAR string
|
||||
dec K.Buf256 ...without "="
|
||||
|
||||
clc Substract VAR len+1 from whole len to get
|
||||
sbc KrnBuf256 VALUE len
|
||||
sta KrnBuf256,y save it at "=" POS
|
||||
sbc K.Buf256 VALUE len
|
||||
sta K.Buf256,y save it at "=" POS
|
||||
|
||||
stz ZPPtr1 #KrnBuf256
|
||||
stz ZPPtr1 #K.Buf256
|
||||
sty ZPPtr2
|
||||
|
||||
lda /KrnBuf256
|
||||
lda /K.Buf256
|
||||
sta ZPPtr1+1
|
||||
sta ZPPtr2+1
|
||||
|
||||
@ -295,14 +331,14 @@ K.SetEnvPtr1Ptr2
|
||||
sec
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # GetEnvYA
|
||||
* # GetEnv.YA
|
||||
* ## In:
|
||||
* Y,A = PTR to NAME (PSTR)
|
||||
* ## Out:
|
||||
* CC : Y,A = PTR to VALUE (PSTR)
|
||||
* CS : not found
|
||||
*\--------------------------------------
|
||||
K.GetEnvYA >STYA ZPPtr1
|
||||
K.GetEnv.YA >STYA ZPPtr1
|
||||
jsr ENV.FindVarPtr1
|
||||
bcs .9
|
||||
|
||||
@ -314,12 +350,12 @@ K.GetEnvYA >STYA ZPPtr1
|
||||
.9 >LDYAI EmptyPSTR
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # UnsetEnvYA
|
||||
* # UnsetEnv.YA
|
||||
* ## In:
|
||||
* Y,A = PTR To Name (PSTR)
|
||||
* ## Out:
|
||||
*\--------------------------------------
|
||||
K.UnsetEnvYA >STYA ZPPtr1 Store VAR Name
|
||||
K.UnsetEnv.YA >STYA ZPPtr1 Store VAR Name
|
||||
S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
||||
bcs .8 not found, quit
|
||||
|
||||
@ -335,7 +371,7 @@ S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
||||
* K.ExpandPStr.Name
|
||||
* Out:
|
||||
* CC: Found
|
||||
* Append VALUE to KrnBuf256
|
||||
* Append VALUE to K.Buf256
|
||||
* CS: Not Found
|
||||
*--------------------------------------
|
||||
ENV.ExpandSysVar
|
||||
@ -350,7 +386,7 @@ ENV.ExpandSysVar
|
||||
cmp #'9'+1
|
||||
bcs .1
|
||||
and #$0F
|
||||
jsr K.GetArgA
|
||||
jsr K.GetArg.A
|
||||
bcs .99
|
||||
|
||||
>STYA ZPPtr3
|
||||
@ -383,7 +419,7 @@ ENV.SysVarsJmp .DA ENV.SysVarsArgs
|
||||
.DA ENV.SysVarsCPID
|
||||
*--------------------------------------
|
||||
ENV.SysVarsArgs lda #1
|
||||
jsr K.GetArgA
|
||||
jsr K.GetArg.A
|
||||
bcs ENV.SysVarsExit2
|
||||
|
||||
>STYA ZPPtr3
|
||||
@ -396,12 +432,12 @@ ENV.SysVarsArgs lda #1
|
||||
lda (ZPPtr3)
|
||||
beq ENV.SysVarsExit2
|
||||
|
||||
ldx KrnBuf256
|
||||
ldx K.Buf256
|
||||
inx
|
||||
beq ENV.SysVarsExit2 make sure not overlapping buf 256
|
||||
stx KrnBuf256
|
||||
stx K.Buf256
|
||||
lda #' '
|
||||
sta KrnBuf256,x
|
||||
sta K.Buf256,x
|
||||
|
||||
jsr ENV.AppendPtr3ToBuf
|
||||
bra .2
|
||||
@ -434,12 +470,12 @@ ENV.SysVarsA sta HEXBUF
|
||||
cpy #9 Print always last char
|
||||
bne .1
|
||||
|
||||
.2 ldx KrnBuf256
|
||||
.2 ldx K.Buf256
|
||||
|
||||
.3 inx
|
||||
beq ENV.SysVarsExit2
|
||||
|
||||
sta KrnBuf256,x
|
||||
sta K.Buf256,x
|
||||
iny
|
||||
cpy #10
|
||||
beq ENV.SysVarsExit
|
||||
@ -447,7 +483,7 @@ ENV.SysVarsA sta HEXBUF
|
||||
lda ASCBUF,y
|
||||
bra .3
|
||||
|
||||
ENV.SysVarsExit stx KrnBuf256
|
||||
ENV.SysVarsExit stx K.Buf256
|
||||
ENV.SysVarsExit2
|
||||
clc
|
||||
rts
|
||||
@ -539,19 +575,19 @@ ENV.NextEnvPtr3 lda ZPPtr3
|
||||
*--------------------------------------
|
||||
ENV.AppendPtr3ToBuf
|
||||
ldy #0
|
||||
ldx KrnBuf256
|
||||
ldx K.Buf256
|
||||
|
||||
.1 iny
|
||||
lda (ZPPtr3),y
|
||||
inx
|
||||
beq .9
|
||||
sta KrnBuf256,x
|
||||
sta K.Buf256,x
|
||||
|
||||
tya
|
||||
cmp (ZPPtr3) last char?
|
||||
bne .1
|
||||
|
||||
stx KrnBuf256
|
||||
stx K.Buf256
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
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
|
||||
bcs .9
|
||||
|
||||
lda KrnBuf256
|
||||
lda K.Buf256
|
||||
sta (ZPPtr2)
|
||||
|
||||
tay
|
||||
|
||||
.1 lda KrnBuf256,y
|
||||
.1 lda K.Buf256,y
|
||||
sta (ZPPtr2),y
|
||||
dey
|
||||
bne .1
|
||||
@ -44,7 +44,7 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
||||
|
||||
stz .11+1
|
||||
|
||||
.1 stz KrnBuf256 reset String
|
||||
.1 stz K.Buf256 reset String
|
||||
ldx #0
|
||||
|
||||
.11 ldy #$ff Self Modified
|
||||
@ -57,7 +57,7 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
||||
cmp #';'
|
||||
beq .3
|
||||
inx
|
||||
sta KrnBuf256,x
|
||||
sta K.Buf256,x
|
||||
bra .2
|
||||
|
||||
.3 txa
|
||||
@ -70,15 +70,15 @@ K.FileSearch.I >PULLW ZPPtr4 ZPPtr1 trashed by ExpandPStrYA
|
||||
.4 iny
|
||||
lda (ZPPtr4),y Append Fiename...
|
||||
inx
|
||||
sta KrnBuf256,x
|
||||
sta K.Buf256,x
|
||||
tya
|
||||
cmp (ZPPtr4)
|
||||
bne .4
|
||||
|
||||
stx KrnBuf256 set string length
|
||||
stx K.Buf256 set string length
|
||||
|
||||
>PUSHWI K.S.STAT
|
||||
>PUSHWI KrnBuf256
|
||||
>PUSHWI K.Buf256
|
||||
jsr K.STAT
|
||||
bcs .1 Failed...retry next path...
|
||||
|
||||
@ -106,7 +106,7 @@ K.GetFullPathYA >STYA ZPPtr3 Ptr1 & 2 used by StrCpy
|
||||
lda (ZPPtr3)
|
||||
beq K.GetFullPathYA.9
|
||||
|
||||
stz KrnBuf256
|
||||
stz K.Buf256
|
||||
|
||||
ldy #1
|
||||
lda (ZPPtr3),y
|
||||
@ -117,14 +117,14 @@ K.GetFullPathYA >STYA ZPPtr3 Ptr1 & 2 used by StrCpy
|
||||
lda (pPs),y
|
||||
jsr K.GetMemPtrA
|
||||
>PUSHYA
|
||||
>PUSHWI KrnBuf256
|
||||
>PUSHWI K.Buf256
|
||||
>SYSCALL PStrCpy
|
||||
|
||||
.1 >PUSHW ZPPtr3
|
||||
>PUSHWI KrnBuf256
|
||||
>PUSHWI K.Buf256
|
||||
>SYSCALL PStrCat
|
||||
K.GetFullPathYA.NewStr
|
||||
>LDYAI KrnBuf256
|
||||
>LDYAI K.Buf256
|
||||
>SYSCALL NewPStrYA
|
||||
rts
|
||||
|
||||
|
@ -76,8 +76,8 @@ Kernel.Init2 >LDAXI MSG.Init2
|
||||
>STYA ZPPtr3
|
||||
jsr Kernel.Move
|
||||
|
||||
>LDYAI D.STACK.TOP
|
||||
>STYA pStack init Soft Stack
|
||||
>LDYAI K.STACK
|
||||
>STYA pStack init Soft Stack
|
||||
|
||||
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
|
||||
sta (pPs),y
|
||||
|
||||
>LDYAI UsrBuf256
|
||||
>LDYAI K.Buf256
|
||||
>STYA K.MLI.PARAMS+1
|
||||
>MLICALL MLIGETPREFIX
|
||||
bcs .9
|
||||
|
||||
>LDYAI UsrBuf256
|
||||
>LDYAI K.Buf256
|
||||
>SYSCALL NewPStrYA
|
||||
bcs .9
|
||||
|
||||
@ -788,7 +788,7 @@ TskMgrInit >LDYAI TskMgr.Table+S.PS Clear whole process table except PS0
|
||||
ldy #S.PS.hPREFIX
|
||||
sta (pPs),y
|
||||
|
||||
>PUSHWI UsrBuf256 push ENV value
|
||||
>PUSHWI K.Buf256 push ENV value
|
||||
>PUSHWI I.ENV.A2osX push ENV name
|
||||
>SYSCALL SetEnv
|
||||
bcs .9
|
||||
|
@ -17,11 +17,11 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
||||
.DA K.ChOwn
|
||||
.DA K.ChGrp
|
||||
*--------------------------------------
|
||||
.DA K.LoadDrvYA $10
|
||||
.DA K.LoadLibYA
|
||||
.DA K.UnloadLibA
|
||||
.DA K.LoadExeYA
|
||||
.DA K.TimeYA
|
||||
.DA K.LoadDrv.YA $10
|
||||
.DA K.LoadLib.YA
|
||||
.DA K.UnloadLib.A
|
||||
.DA K.LoadBin.YA
|
||||
.DA K.Time.YA
|
||||
.DA K.CTime2Time
|
||||
.DA K.PTime2Time
|
||||
.DA 0
|
||||
@ -49,18 +49,18 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
||||
.DA 0 $40
|
||||
.DA K.SScanF
|
||||
.DA 0
|
||||
.DA K.PrintFYA
|
||||
.DA K.SPrintFYA
|
||||
.DA K.FPrintFYA
|
||||
.DA K.PrintF.YA
|
||||
.DA K.SPrintF.YA
|
||||
.DA K.FPrintF.YA
|
||||
.DA K.AToI
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
.DA K.NewPStrYA $50
|
||||
.DA K.PStrCpy
|
||||
.DA K.PStrCat
|
||||
.DA K.PStrMatch
|
||||
.DA K.PStrUprYA
|
||||
.DA K.PStrLwrYA
|
||||
.DA 0 $50
|
||||
.DA K.StrCpy
|
||||
.DA K.StrCat
|
||||
.DA K.StrMatch
|
||||
.DA K.StrUpr.YA
|
||||
.DA K.StrLwr.YA
|
||||
.DA K.StrFTime
|
||||
.DA 0 K.PStr2StrArrayYA
|
||||
*--------------------------------------
|
||||
@ -74,13 +74,13 @@ K.SYSCALL.JMP .DA K.FileSearch $00
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
.DA K.GetArgC $70
|
||||
.DA K.GetArgA
|
||||
.DA K.ExpandPStrYA
|
||||
.DA K.GetArg.A
|
||||
.DA K.ExpandPStr.YA
|
||||
.DA 0
|
||||
.DA K.PutEnvYA
|
||||
.DA K.PutEnv.YA
|
||||
.DA K.SetEnv
|
||||
.DA K.GetEnvYA
|
||||
.DA K.UnsetEnvYA
|
||||
.DA K.GetEnv.YA
|
||||
.DA K.UnsetEnv.YA
|
||||
*--------------------------------------
|
||||
.DA K.GetDevByIDA $80
|
||||
.DA K.GetDevByNameYA
|
||||
|
@ -4,82 +4,6 @@ LOMEM $A00
|
||||
INC 1
|
||||
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
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.LIB
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
|
@ -365,7 +365,7 @@ K.FreeMemA phy
|
||||
>PUSHYA
|
||||
|
||||
>LDYAI K.FreeMemA.ERR
|
||||
jsr K.PrintFYA
|
||||
jsr K.PrintF.YA
|
||||
|
||||
.91 ldx #$ff
|
||||
bit $C000,x
|
||||
|
@ -175,7 +175,7 @@ PS.CreateChild >LDYAI TskMgr.Table+S.PS
|
||||
ldy #S.PS.hPREFIX copy hPREFIX...
|
||||
lda (pPs),y
|
||||
jsr K.GetMemPtrA
|
||||
jsr K.NewPStrYA
|
||||
jsr K.NewPStr.YA
|
||||
bcs .9
|
||||
|
||||
txa
|
||||
@ -232,7 +232,7 @@ PS.CreateChild >LDYAI TskMgr.Table+S.PS
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
PS.Init >LDYA K.CreateProcess.CmdLine
|
||||
jsr PS.PStr2StrArrayYA
|
||||
jsr PS.Str2StrArrayYA
|
||||
bcs .9
|
||||
|
||||
phy save PTR to StrArray...
|
||||
@ -244,7 +244,7 @@ PS.Init >LDYA K.CreateProcess.CmdLine
|
||||
|
||||
pla Restore PTR...
|
||||
ply
|
||||
>SYSCALL LoadExeYA Y,A=filename full path
|
||||
>SYSCALL LoadBin.YA Y,A=filename full path
|
||||
bcs .9
|
||||
|
||||
>STYA ZPPtr4 save PTR to Code Segment
|
||||
|
@ -92,7 +92,7 @@ RUN.DumpEvent ldy #S.EVT-1
|
||||
bpl .1
|
||||
|
||||
>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"
|
||||
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
|
||||
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
|
||||
* Print A (char) to File
|
||||
* ## In:
|
||||
@ -331,15 +727,15 @@ K.SScanF.IsDigit
|
||||
.1 sec
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # PrintFYA/SPrintFYA/FPrintFYA
|
||||
* # PrintF.YA/SPrintF.YA/FPrintF.YA
|
||||
* Prints C-Style String
|
||||
* ## In:
|
||||
* PrintFYA :
|
||||
* PrintF.YA :
|
||||
* Y,A = PTR to CStr
|
||||
* SPrintFYA :
|
||||
* SPrintF.YA :
|
||||
* Y,A = PTR to CStr
|
||||
* PULLW = Ptr to Dst Buffer
|
||||
* FPrintFYA :
|
||||
* FPrintF.YA :
|
||||
* Y,A = PTR to CStr
|
||||
* PULLB = hNode
|
||||
* ## Out:
|
||||
@ -378,12 +774,12 @@ K.SScanF.IsDigit
|
||||
* %011s : 'ABCDEFGH000'
|
||||
* %2f : '3.14'
|
||||
*\--------------------------------------
|
||||
K.SPrintFYA >STYA ZPPtr1
|
||||
K.SPrintF.YA >STYA ZPPtr1
|
||||
>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
|
||||
|
||||
@ -730,24 +1126,6 @@ Printf.Cout jmp K.PutCharA
|
||||
|
||||
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
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.STDIO
|
||||
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
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # StrUprYA/StrLwrYA
|
||||
* # StrUpr.YA/StrLwr.YA
|
||||
* Convert string to UPPERCASE/lowercase
|
||||
* ## In:
|
||||
* Y,A = PTR to String (CSTR)
|
||||
* ## Out:
|
||||
* Uppercased/lowercased String in Buffer
|
||||
*\--------------------------------------
|
||||
K.StrUprYA ldx #0
|
||||
K.StrUpr.YA ldx #0
|
||||
.HS 2C bit abs
|
||||
K.StrLwrYA ldx #2
|
||||
K.StrLwr.YA ldx #2
|
||||
>STYA ZPPtr1
|
||||
|
||||
pha save Y,A to restore them at exit
|
||||
@ -163,9 +163,9 @@ K.StrLwrYA ldx #2
|
||||
.1 lda (ZPPtr1),y
|
||||
beq .8
|
||||
|
||||
cmp K.PStrUprLwr,x
|
||||
cmp .9,x
|
||||
bcc .2
|
||||
cmp K.PStrUprLwr+1,x
|
||||
cmp .9+1,x
|
||||
bcs .2
|
||||
eor #$20
|
||||
sta (ZPPtr1),y
|
||||
@ -178,7 +178,7 @@ K.StrLwrYA ldx #2
|
||||
pla
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.PStrUprLwr .AS "azAZ"
|
||||
.9 .AS "azAZ"
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.STRING
|
||||
|
@ -11,13 +11,13 @@ CENTURY0 .EQ 19
|
||||
YEAR0 .EQ 70
|
||||
DAY0 .EQ 4 day 0 was a thursday
|
||||
*--------------------------------------
|
||||
* K.TimeYA get System Time
|
||||
* K.Time.YA get System Time
|
||||
* In :
|
||||
* Y,A = PTR to S.TIME
|
||||
* Out :
|
||||
* S.TIME filled with System date/time
|
||||
*--------------------------------------
|
||||
K.TimeYA >STYA ZPPtr2
|
||||
K.Time.YA >STYA ZPPtr2
|
||||
>MLICALL MLIGETTIME
|
||||
>LDYAI DATELO
|
||||
>STYA ZPPtr1
|
||||
@ -618,6 +618,6 @@ K.StrFTime.BIN .BS 1
|
||||
K.StrFTime.DEC .BS 1 always < 100
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.Time
|
||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.TIME
|
||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||
ASM
|
||||
|
@ -28,24 +28,22 @@ A2osX.GP .PH $BD00
|
||||
.EP
|
||||
A2osX.D1 .PH $D000
|
||||
.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.DRV
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.LIB
|
||||
.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.PFT
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.BIN
|
||||
.EP
|
||||
A2osX.D2 .PH $D000
|
||||
.DA #RRAMWRAMBNK2
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CIO
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STR
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STRING
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STDLIB
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.DEV
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.PS
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.ARG
|
||||
.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.EVT
|
||||
.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.IRQ
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.MEM
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CHR
|
||||
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||
.EP
|
||||
A2osX.E0.E .EQ *
|
||||
|
Loading…
x
Reference in New Issue
Block a user