mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-11 12:29:35 +00:00
Kernel version 0.9 : KERNEL.S.ENV.txt, MAJOR bur fix in $?,$$...system vars
This commit is contained in:
parent
14275e29d2
commit
bf22885600
BIN
A2OSX.BUILD.po
BIN
A2OSX.BUILD.po
Binary file not shown.
BIN
A2OSX.SRC.po
BIN
A2OSX.SRC.po
Binary file not shown.
|
@ -62,7 +62,7 @@ D.STACK.TOP .EQ $03F0 ...Down to $0300
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KrnBuf256 .EQ $0C00 Main
|
KrnBuf256 .EQ $0C00 Main
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KrnOut256 .EQ $0D00 Used to return Values to User Space
|
* .EQ $0D00
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.MLI.PARAMS .EQ $0E00 Main, 18 bytes min for GetFileInfo
|
K.MLI.PARAMS .EQ $0E00 Main, 18 bytes min for GetFileInfo
|
||||||
K.MLI.PATH .EQ K.MLI.PARAMS+18
|
K.MLI.PATH .EQ K.MLI.PARAMS+18
|
||||||
|
|
|
@ -100,8 +100,9 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
|
||||||
| Name | Status | Comment |
|
| Name | Status | Comment |
|
||||||
| ---- | ------ | ------- |
|
| ---- | ------ | ------- |
|
||||||
| $PWD | Working | 'Working Directory' |
|
| $PWD | Working | 'Working Directory' |
|
||||||
| $* | Working | All Args |
|
| $0 | Working | Command Full Path |
|
||||||
| $1-$9 | Working | Arg[n] |
|
| $1-$9 | Working | Arg[n] |
|
||||||
|
| $* | Working | All Args |
|
||||||
| $# | Working | Arg Count |
|
| $# | Working | Arg Count |
|
||||||
| $? | Working | Return Code |
|
| $? | Working | Return Code |
|
||||||
| $@ | Working | Parent PID |
|
| $@ | Working | Parent PID |
|
||||||
|
|
|
@ -12,13 +12,6 @@ Cmd.ExecYA.1 >SYSCALL ExpandPStrYA
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
phx
|
phx
|
||||||
|
|
||||||
lda #'('
|
|
||||||
>SYSCALL PutCA
|
|
||||||
>LDYA ZPPtr1
|
|
||||||
>SYSCALL PPRintFYA
|
|
||||||
lda #')'
|
|
||||||
>SYSCALL PutCA
|
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
ldx #0 ARGS len
|
ldx #0 ARGS len
|
||||||
|
|
||||||
|
|
|
@ -13,19 +13,21 @@ AUTO 6
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
||||||
|
|
||||||
.11 >STYA ZPPtr2
|
.1 >STYA ZPPtr2
|
||||||
|
|
||||||
stz KrnBuf256 init Expanded String len=0
|
stz KrnBuf256 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
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.10 stz K.ExpandPStr.Start
|
.10 stz K.ExpandPStr.Name
|
||||||
|
stz K.ExpandPStr.bInVar
|
||||||
|
|
||||||
.1 tya
|
.11 tya
|
||||||
cmp (ZPPtr2) End of PSTR?
|
cmp (ZPPtr2) End of PSTR?
|
||||||
beq .6
|
beq .8
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (ZPPtr2),y
|
lda (ZPPtr2),y
|
||||||
|
@ -36,55 +38,75 @@ K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
||||||
lda K.ExpandPStr.bNoExp
|
lda K.ExpandPStr.bNoExp
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta K.ExpandPStr.bNoExp toggle flag
|
sta K.ExpandPStr.bNoExp toggle flag
|
||||||
bra .1
|
bra .11
|
||||||
|
|
||||||
.21 bit K.ExpandPStr.bNoExp
|
.21 bit K.ExpandPStr.bNoExp
|
||||||
bmi .22
|
bpl .23
|
||||||
|
|
||||||
ldx K.ExpandPStr.Start
|
.22 ldx KrnBuf256
|
||||||
bne .3 already in a var?
|
inx
|
||||||
|
beq .8
|
||||||
|
sta KrnBuf256,x
|
||||||
|
stx KrnBuf256
|
||||||
|
bra .11
|
||||||
|
|
||||||
|
.23 ldx K.ExpandPStr.bInVar already in a var?
|
||||||
|
bne .3 yes....
|
||||||
|
|
||||||
cmp #'$' no, found one ?
|
cmp #'$' no, found one ?
|
||||||
beq .2
|
bne .22 no, store....
|
||||||
|
|
||||||
.22 inc KrnBuf256 no, copy char
|
sta K.ExpandPStr.bFound Toggle flag
|
||||||
ldx KrnBuf256
|
sta K.ExpandPStr.bInVar
|
||||||
sta KrnBuf256,x
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.2 sec
|
bra .11 skip this char
|
||||||
ror K.ExpandPStr.bFound Toggle flag
|
|
||||||
|
|
||||||
sty K.ExpandPStr.Start save var start
|
|
||||||
stz K.ExpandPStr.End
|
|
||||||
bra .1 skip this char
|
|
||||||
|
|
||||||
.3 cmp #'{' we are in var, "{" after "$"?
|
.3 cmp #'{' we are in var, "{" after "$"?
|
||||||
beq .2
|
bne .31
|
||||||
|
ldx K.ExpandPStr.Name No char in var yet ?
|
||||||
cmp #'}' end of var?
|
beq .11 normal, "${" syntax is ok,skip
|
||||||
beq .5
|
|
||||||
|
|
||||||
jsr K.ExpandPStr.VC we are in var, is char valid?
|
|
||||||
bcs .5 no, end here
|
|
||||||
sty K.ExpandPStr.End yes, save end
|
|
||||||
bra .1
|
|
||||||
|
|
||||||
.5 lda K.ExpandPStr.End get end
|
bne .5 not allowed char in varname, end of var
|
||||||
beq .1 empty {} or $/
|
|
||||||
|
|
||||||
phy save current index
|
.31 cmp #'}' end of var?
|
||||||
jsr K.ExpandPStr.AV
|
beq .50
|
||||||
|
|
||||||
|
jsr K.ExpandPStrValidChar
|
||||||
|
bcc .32 yes, add to varname
|
||||||
|
|
||||||
|
ldx K.ExpandPStr.Name
|
||||||
|
bne .5 varname has already chars...end of var
|
||||||
|
|
||||||
|
inx must be a $? or ?x.....go expand
|
||||||
|
stx K.ExpandPStr.Name
|
||||||
|
sta K.ExpandPStr.Name+1
|
||||||
|
bra .51
|
||||||
|
|
||||||
|
.32 ldx K.ExpandPStr.Name
|
||||||
|
inx
|
||||||
|
cpx #16
|
||||||
|
beq .11 varname longer than 15....ignore
|
||||||
|
sta K.ExpandPStr.Name,x
|
||||||
|
stx K.ExpandPStr.Name
|
||||||
|
bra .11
|
||||||
|
|
||||||
|
.5 dey last char was invalid...move back
|
||||||
|
|
||||||
|
.50 ldx K.ExpandPStr.Name
|
||||||
|
bne .51
|
||||||
|
jmp .1 var name is empty...start over
|
||||||
|
|
||||||
|
.51 phy save current index
|
||||||
|
jsr K.ExpandPStrGetValue
|
||||||
ply restore index in string...
|
ply restore index in string...
|
||||||
bra .10 reset start flag and continue
|
jmp .10 reset start flag and continue
|
||||||
|
|
||||||
.6 sty K.ExpandPStr.End end of PSTR
|
.8 ldx K.ExpandPStr.Name end of PSTR,are we in a var?
|
||||||
lda K.ExpandPStr.Start are we in a var?
|
beq .80 no...exit...
|
||||||
beq .8 no...exit...
|
|
||||||
|
|
||||||
jsr K.ExpandPStr.AV yes, expand and add to STR
|
jsr K.ExpandPStrGetValue yes, expand and add to STR
|
||||||
|
|
||||||
.8 lda K.ExpandPStr.hPStr working from our temp string ?
|
.80 lda K.ExpandPStr.hPStr working from our temp string ?
|
||||||
beq .81 no...
|
beq .81 no...
|
||||||
|
|
||||||
jsr K.FreeMemA yes, discard....
|
jsr K.FreeMemA yes, discard....
|
||||||
|
@ -93,63 +115,31 @@ K.ExpandPStrYA stz K.ExpandPStr.hPStr Reset Intermediate string...
|
||||||
jsr K.NewPStrYA
|
jsr K.NewPStrYA
|
||||||
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
|
||||||
bit K.ExpandPStr.bFound Did we expand something ?
|
ldx K.ExpandPStr.bFound Did we expand something ?
|
||||||
bpl .82
|
beq .82
|
||||||
jmp .11 Yes, start over with hPStr
|
jmp .1 Yes, start over with hPStr
|
||||||
|
|
||||||
.82
|
.82 ldx K.ExpandPStr.hPStr
|
||||||
* or exit with Y,A & X from K.NewPStrYA
|
* or exit with Y,A from K.NewPStrYA
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ExpandPStr.AV lda K.ExpandPStr.End
|
K.ExpandPStrGetValue
|
||||||
sec
|
jsr ENV.ExpandSysVar
|
||||||
sbc K.ExpandPStr.Start compute len of VAR End-Start+1
|
bcc .9
|
||||||
|
|
||||||
ldx KrnBuf256
|
>LDYAI K.ExpandPStr.Name
|
||||||
inx
|
jsr K.GetEnvYA
|
||||||
sta KrnBuf256,x
|
|
||||||
|
|
||||||
stx ZPPtr1 Make Ptr1 -> Var NAME
|
|
||||||
lda /KrnBuf256
|
|
||||||
sta ZPPtr1+1
|
|
||||||
|
|
||||||
ldy K.ExpandPStr.Start
|
|
||||||
|
|
||||||
.1 iny
|
|
||||||
inx
|
|
||||||
lda (ZPPtr2),y
|
|
||||||
sta KrnBuf256,x
|
|
||||||
cpy K.ExpandPStr.End
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
jsr ENV.CheckSysVarPtr1
|
|
||||||
bcc .2 Ptr3=VALUE
|
|
||||||
|
|
||||||
jsr ENV.FindVarPtr1
|
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr ENV.NextEnvPtr3 Skip NAME
|
|
||||||
|
|
||||||
.2 lda (ZPPtr3)
|
>STYA ZPPtr3
|
||||||
beq .9 in case CheckSysVarPtr1 returned a NUL string
|
|
||||||
|
|
||||||
ldy #0
|
jsr ENV.AppendPtr3ToBuf
|
||||||
ldx KrnBuf256
|
|
||||||
|
|
||||||
.3 iny
|
|
||||||
lda (ZPPtr3),y
|
|
||||||
inx
|
|
||||||
sta KrnBuf256,x
|
|
||||||
|
|
||||||
tya
|
|
||||||
cmp (ZPPtr3) last char?
|
|
||||||
bne .3
|
|
||||||
stx KrnBuf256
|
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ExpandPStr.VC cmp #'0'
|
K.ExpandPStrValidChar
|
||||||
|
cmp #'0'
|
||||||
bcc .9
|
bcc .9
|
||||||
cmp #'9'+1
|
cmp #'9'+1
|
||||||
bcc .8
|
bcc .8
|
||||||
|
@ -167,10 +157,9 @@ K.ExpandPStr.VC cmp #'0'
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ExpandPStr.Start .BS 1
|
|
||||||
K.ExpandPStr.End .BS 1
|
|
||||||
K.ExpandPStr.bFound .BS 1
|
|
||||||
K.ExpandPStr.bNoExp .BS 1
|
K.ExpandPStr.bNoExp .BS 1
|
||||||
|
K.ExpandPStr.bInVar .BS 1
|
||||||
|
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
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
@ -315,11 +304,9 @@ K.SetEnvPtr1Ptr2
|
||||||
* CS : not found
|
* CS : not found
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.GetEnvYA >STYA ZPPtr1
|
K.GetEnvYA >STYA ZPPtr1
|
||||||
jsr ENV.CheckSysVarPtr1
|
|
||||||
bcc .8
|
|
||||||
|
|
||||||
jsr ENV.FindVarPtr1
|
jsr ENV.FindVarPtr1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr ENV.NextEnvPtr3 Skip NAME
|
jsr ENV.NextEnvPtr3 Skip NAME
|
||||||
>LDYA ZPPtr3
|
>LDYA ZPPtr3
|
||||||
clc just in case ADC in NextEnvPtr1 disturb CC
|
clc just in case ADC in NextEnvPtr1 disturb CC
|
||||||
|
@ -344,28 +331,33 @@ S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PRIVATE
|
* PRIVATE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ENV.CheckSysVarPtr1
|
* ENV.ExpandSysVar
|
||||||
* In:
|
* In:
|
||||||
* ZPPtr1 -> NAME
|
* K.ExpandPStr.Name
|
||||||
* Out:
|
* Out:
|
||||||
* CC: Found
|
* CC: Found
|
||||||
* ZPPtr3=YA -> VALUE
|
* Append VALUE to KrnBuf256
|
||||||
* CS: Not Found
|
* CS: Not Found
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.CheckSysVarPtr1
|
ENV.ExpandSysVar
|
||||||
lda (ZPPtr1)
|
ldx K.ExpandPStr.Name
|
||||||
cmp #1 is name 1 char?
|
cpx #1 is name 1 char?
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr1),y
|
lda K.ExpandPStr.Name+1
|
||||||
cmp #'0'-1 $0...$9 ??
|
cmp #'0'-1 $0...$9 ??
|
||||||
bcc .1
|
bcc .1
|
||||||
cmp #'9'+1
|
cmp #'9'+1
|
||||||
bcs .1
|
bcs .1
|
||||||
and #$0F
|
and #$0F
|
||||||
jsr K.GetArgA
|
jsr K.GetArgA
|
||||||
|
bcs .8
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
|
jmp ENV.AppendPtr3ToBuf
|
||||||
|
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.1 ldx #ENV.SysVarsJmp-ENV.SysVars-1
|
.1 ldx #ENV.SysVarsJmp-ENV.SysVars-1
|
||||||
|
@ -391,22 +383,25 @@ ENV.SysVarsJmp .DA ENV.SysVarsArgs
|
||||||
.DA ENV.SysVarsPID
|
.DA ENV.SysVarsPID
|
||||||
.DA ENV.SysVarsCPID
|
.DA ENV.SysVarsCPID
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.SysVarsArgs lda #1
|
ENV.SysVarsArgs
|
||||||
jsr K.GetArgA Trash Ptr1
|
|
||||||
|
|
||||||
stz KrnOut256
|
lda #1
|
||||||
|
jsr K.GetArgA Trash Ptr1
|
||||||
ldx #0
|
bcs ENV.SysVarsExit2
|
||||||
|
|
||||||
|
ldx KrnBuf256
|
||||||
|
|
||||||
.1 lda (ZPPtr1)
|
.1 lda (ZPPtr1)
|
||||||
beq ENV.SysVarsExit
|
bcs ENV.SysVarsExit
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.2 iny
|
.2 iny
|
||||||
inx
|
inx
|
||||||
|
beq ENV.SysVarsExit make sure not overlapping buf 256
|
||||||
|
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta KrnOut256,x
|
sta KrnBuf256,x
|
||||||
tya
|
tya
|
||||||
cmp (ZPPtr1)
|
cmp (ZPPtr1)
|
||||||
bne .2
|
bne .2
|
||||||
|
@ -418,7 +413,7 @@ ENV.SysVarsArgs lda #1
|
||||||
.3 lda #' '
|
.3 lda #' '
|
||||||
inx
|
inx
|
||||||
beq ENV.SysVarsExit make sure not overlapping buf 256
|
beq ENV.SysVarsExit make sure not overlapping buf 256
|
||||||
sta KrnOut256,x
|
sta KrnBuf256,x
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
ENV.SysVarsArgC jsr K.GetArgC Trash Ptr1
|
ENV.SysVarsArgC jsr K.GetArgC Trash Ptr1
|
||||||
|
@ -432,7 +427,7 @@ ENV.SysVarsPID ldy #S.PS.PID
|
||||||
.HS 2C
|
.HS 2C
|
||||||
ENV.SysVarsCPID ldy #S.PS.CPID
|
ENV.SysVarsCPID ldy #S.PS.CPID
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
|
||||||
ENV.SysVarsA sta HEXBUF
|
ENV.SysVarsA sta HEXBUF
|
||||||
stz HEXBUF+1
|
stz HEXBUF+1
|
||||||
stz HEXBUF+2
|
stz HEXBUF+2
|
||||||
|
@ -440,32 +435,30 @@ ENV.SysVarsA sta HEXBUF
|
||||||
jsr HEX2DEC
|
jsr HEX2DEC
|
||||||
|
|
||||||
ldy #6 Start at 0000000xxx
|
ldy #6 Start at 0000000xxx
|
||||||
ldx #4 len is 4 for now
|
|
||||||
|
|
||||||
.1 dex
|
.1 iny
|
||||||
lda ASCBUF+1,y
|
lda ASCBUF,y
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
bne .2
|
bne .2
|
||||||
iny
|
|
||||||
cpy #8 Print always ast char
|
cpy #9 Print always last char
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.2 txa
|
.2 ldx KrnBuf256
|
||||||
sta ASCBUF,y
|
|
||||||
|
.3 inx
|
||||||
|
beq ENV.SysVarsExit2
|
||||||
|
|
||||||
tya
|
sta KrnBuf256,x
|
||||||
clc
|
iny
|
||||||
adc #ASCBUF
|
cpy #10
|
||||||
tay
|
beq ENV.SysVarsExit
|
||||||
lda /ASCBUF
|
|
||||||
adc #0
|
|
||||||
|
|
||||||
bra ENV.SysVarsExit2
|
lda ASCBUF,y
|
||||||
|
bra .3
|
||||||
ENV.SysVarsExit stx KrnOut256
|
|
||||||
>LDYAI KrnOut256
|
ENV.SysVarsExit stx KrnBuf256
|
||||||
ENV.SysVarsExit2
|
ENV.SysVarsExit2
|
||||||
>STYA ZPPtr3
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -554,6 +547,23 @@ ENV.NextEnvPtr3 lda ZPPtr3
|
||||||
inc ZPPtr3+1
|
inc ZPPtr3+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ENV.AppendPtr3ToBuf
|
||||||
|
ldy #0
|
||||||
|
ldx KrnBuf256
|
||||||
|
|
||||||
|
.1 iny
|
||||||
|
lda (ZPPtr3),y
|
||||||
|
inx
|
||||||
|
beq .9
|
||||||
|
sta KrnBuf256,x
|
||||||
|
|
||||||
|
tya
|
||||||
|
cmp (ZPPtr3) last char?
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
stx KrnBuf256
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.ENV
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.ENV
|
||||||
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
LOAD /A2OSX.SRC/SYS/KERNEL.S
|
||||||
|
|
|
@ -14,7 +14,7 @@ Kernel.Init2 sei
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
>LDYAI A2osX.SYSCALL
|
>LDYAI A2osX.SYSCALL
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
>LDYAI A2osX.GP.SIZE^$FFFF
|
>LDYAI A2osX.GP.S^$FFFF
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
jsr Kernel.Move
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ Kernel.Init2 sei
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
>LDYAI $D000
|
>LDYAI $D000
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
>LDYAI A2osX.D2.SIZE^$FFFF
|
>LDYAI A2osX.D2.S^$FFFF
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
jsr Kernel.Move
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ Kernel.Init2 sei
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
>LDYAI $D000
|
>LDYAI $D000
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
>LDYAI A2osX.D1.SIZE^$FFFF
|
>LDYAI A2osX.D1.S^$FFFF
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
jsr Kernel.Move
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ Kernel.Init2 sei
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
>LDYAI $E000
|
>LDYAI $E000
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
>LDYAI A2osX.E0.SIZE^$FFFF
|
>LDYAI A2osX.E0.S^$FFFF
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
jsr Kernel.Move
|
jsr Kernel.Move
|
||||||
|
|
||||||
|
|
|
@ -15,13 +15,13 @@ AUTO 6
|
||||||
.INB /A2OSX.BUILD/INC/MLI.ERR.I
|
.INB /A2OSX.BUILD/INC/MLI.ERR.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TmpPtr1 .EQ $0 for X.PRINTF.S
|
TmpPtr1 .EQ $0 for X.PRINTF.S
|
||||||
ZPPtr1 .EQ ZPKERNEL Temp Ptrs for use in very limited scope
|
ZPPtr1 .EQ ZPKERNEL
|
||||||
ZPPtr2 .EQ ZPKERNEL+2 (could be trashed by any JSR)
|
ZPPtr2 .EQ ZPKERNEL+2
|
||||||
ZPPtr3 .EQ ZPKERNEL+4
|
ZPPtr3 .EQ ZPKERNEL+4
|
||||||
ZPPtr4 .EQ ZPKERNEL+6
|
ZPPtr4 .EQ ZPKERNEL+6
|
||||||
|
|
||||||
sei
|
sei
|
||||||
ldx #$FF init 6502 stack to highest
|
ldx #$FF
|
||||||
txs
|
txs
|
||||||
sta SETALTZP
|
sta SETALTZP
|
||||||
|
|
||||||
|
@ -41,16 +41,14 @@ ZPPtr4 .EQ ZPKERNEL+6
|
||||||
|
|
||||||
* Global Page
|
* Global Page
|
||||||
|
|
||||||
A2osX.GP .EQ *
|
A2osX.GP .PH $BD00
|
||||||
.PH $BD00
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.GP
|
.INB /A2OSX.SRC/SYS/KERNEL.S.GP
|
||||||
.EP
|
.EP
|
||||||
A2osX.GP.SIZE .EQ *-A2osX.GP
|
A2osX.GP.E .EQ *
|
||||||
|
|
||||||
* LC AUX $D000 BANK1 API Calls $00-$3E
|
* LC AUX $D000 BANK1 API Calls $00-$3E
|
||||||
|
|
||||||
A2osX.D1 .EQ *
|
A2osX.D1 .PH $D000
|
||||||
.PH $D000
|
|
||||||
.DA #RRAMWRAMBNK1
|
.DA #RRAMWRAMBNK1
|
||||||
.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.DRV
|
||||||
|
@ -62,12 +60,11 @@ A2osX.D1 .EQ *
|
||||||
.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.D1.SIZE .EQ *-A2osX.D1
|
A2osX.D1.E .EQ *
|
||||||
|
|
||||||
* LC AUX $D000 BANK2 API Calls $40-$8E
|
* LC AUX $D000 BANK2 API Calls $40-$8E
|
||||||
|
|
||||||
A2osX.D2 .EQ *
|
A2osX.D2 .PH $D000
|
||||||
.PH $D000
|
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #RRAMWRAMBNK2
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.CIO
|
.INB /A2OSX.SRC/SYS/KERNEL.S.CIO
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.STR
|
.INB /A2OSX.SRC/SYS/KERNEL.S.STR
|
||||||
|
@ -80,12 +77,11 @@ A2osX.D2 .EQ *
|
||||||
.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
|
||||||
.EP
|
.EP
|
||||||
A2osX.D2.SIZE .EQ *-A2osX.D2
|
A2osX.D2.E .EQ *
|
||||||
|
|
||||||
* LC AUX $E000 API Calls $80-$FE
|
* LC AUX $E000 API Calls $80-$FE
|
||||||
|
|
||||||
A2osX.E0 .EQ *
|
A2osX.E0 .PH $E000
|
||||||
.PH $E000
|
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.JMP
|
.INB /A2OSX.SRC/SYS/KERNEL.S.JMP
|
||||||
.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
|
||||||
|
@ -95,18 +91,22 @@ A2osX.E0 .EQ *
|
||||||
* Make sure KERNEL.S.D01 is the last one
|
* Make sure KERNEL.S.D01 is the last one
|
||||||
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
.INB /A2OSX.SRC/SYS/KERNEL.S.D01
|
||||||
.EP
|
.EP
|
||||||
A2osX.E0.SIZE .EQ *-A2osX.E0
|
A2osX.E0.E .EQ *
|
||||||
|
|
||||||
* CONTROL SECTION :
|
* CONTROL SECTION :
|
||||||
.LIST ON
|
.LIST ON
|
||||||
.DO A2osX.GP.SIZE>$1E0
|
A2osX.GP.S .EQ A2osX.GP.E-A2osX.GP
|
||||||
* !!!!!!!!! ERROR:GP too big !!!!!!!!!!
|
A2osX.D1.S .EQ A2osX.D1.E-A2osX.D1
|
||||||
|
A2osX.D2.S .EQ A2osX.D2.E-A2osX.D2
|
||||||
|
A2osX.E0.S .EQ A2osX.E0.E-A2osX.E0
|
||||||
|
.DO A2osX.GP.S>$1E0
|
||||||
|
* ERROR:GP too big
|
||||||
.FIN
|
.FIN
|
||||||
.DO A2osX.D1.SIZE>$1000
|
.DO A2osX.D1.S>$1000
|
||||||
* !!!!!!!!! ERROR:BNK1 too big !!!!!!!!
|
* ERROR:BNK1 too big
|
||||||
.FIN
|
.FIN
|
||||||
.DO A2osX.D2.SIZE>$1000
|
.DO A2osX.D2.S>$1000
|
||||||
* !!!!!!!!! ERROR:BNK2 too big !!!!!!!!
|
* ERROR:BNK2 too big
|
||||||
.FIN
|
.FIN
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
MAN
|
MAN
|
||||||
|
|
Loading…
Reference in New Issue
Block a user