mirror of https://github.com/A2osX/A2osX.git
Kernel 0.92+
This commit is contained in:
parent
673b0f0873
commit
585972348f
Binary file not shown.
|
@ -10,6 +10,9 @@ CSH.BufPtrSave .BS 2
|
||||||
CSH.hSymbols .BS 1
|
CSH.hSymbols .BS 1
|
||||||
CSH.SymbolsPtr .BS 1
|
CSH.SymbolsPtr .BS 1
|
||||||
|
|
||||||
|
CSH.hConst .BS 1
|
||||||
|
CSH.ConstPtr .BS 1
|
||||||
|
|
||||||
CSH.hData .BS 1
|
CSH.hData .BS 1
|
||||||
CSH.DataPtr .BS 1
|
CSH.DataPtr .BS 1
|
||||||
|
|
||||||
|
|
|
@ -84,15 +84,17 @@ CSH.TSIZE .HS 0001020401020405 00,CHAR,INT,LONG,UCHAR,UINT,ULONG,FLOAT....
|
||||||
* int printf ( const char * format, ... );
|
* int printf ( const char * format, ... );
|
||||||
CSH.FN >PSTR "printf"
|
CSH.FN >PSTR "printf"
|
||||||
.DA #CSH.T.INT returned value
|
.DA #CSH.T.INT returned value
|
||||||
.DA #CSH.Q.CONST+CSH.Q.POINTER1
|
.DA #CSH.Q.CONST
|
||||||
.DA #CSH.T.CHAR
|
.DA #CSH.T.CHAR
|
||||||
|
.DA #CSH.Q.POINTER
|
||||||
.DA #CSH.T.VARIADIC
|
.DA #CSH.T.VARIADIC
|
||||||
.DA #0
|
.DA #0
|
||||||
* int puts ( const char * str );
|
* int puts ( const char * str );
|
||||||
>PSTR "puts"
|
>PSTR "puts"
|
||||||
.DA #CSH.T.INT returned value
|
.DA #CSH.T.INT returned value
|
||||||
.DA #CSH.Q.CONST+CSH.Q.POINTER1
|
.DA #CSH.Q.CONST
|
||||||
.DA #CSH.T.CHAR
|
.DA #CSH.T.CHAR
|
||||||
|
.DA #CSH.Q.POINTER
|
||||||
.DA #0
|
.DA #0
|
||||||
* float cos ( float x );
|
* float cos ( float x );
|
||||||
>PSTR "cos"
|
>PSTR "cos"
|
||||||
|
|
|
@ -3,11 +3,8 @@ PREFIX
|
||||||
AUTO 4,1
|
AUTO 4,1
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.Q.CONST .EQ %11000000
|
CSH.Q.CONST .EQ %10000000
|
||||||
CSH.Q.ARRAY .EQ %10001100 max 3 bounds
|
CSH.Q.POINTER .EQ %10000001
|
||||||
CSH.Q.POINTER1 .EQ %10000001 max 3 depth
|
|
||||||
CSH.Q.POINTER2 .EQ %10000010
|
|
||||||
CSH.Q.POINTER3 .EQ %10000011
|
|
||||||
CSH.T.CHAR .EQ 1
|
CSH.T.CHAR .EQ 1
|
||||||
CSH.T.INT .EQ 2
|
CSH.T.INT .EQ 2
|
||||||
CSH.T.LONG .EQ 3
|
CSH.T.LONG .EQ 3
|
||||||
|
@ -17,34 +14,44 @@ CSH.T.ULONG .EQ 6
|
||||||
CSH.T.FLOAT .EQ 7
|
CSH.T.FLOAT .EQ 7
|
||||||
CSH.T.VARIADIC .EQ $F
|
CSH.T.VARIADIC .EQ $F
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.Init lda #$0
|
CSH.Init >LDYAI 256
|
||||||
|
>SYSCALL GetMem0
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPCSHSymbols
|
||||||
|
txa
|
||||||
|
>STA.G CSH.hSymbols
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL GetMem
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPCSHConst
|
||||||
|
txa
|
||||||
|
>STA.G CSH.hConst
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL GetMem
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPCSHData
|
||||||
|
txa
|
||||||
|
>STA.G CSH.hData
|
||||||
|
|
||||||
|
>LDYAI 256
|
||||||
|
>SYSCALL GetMem
|
||||||
|
bcs .9
|
||||||
|
>STYA ZPCSHStack
|
||||||
|
txa
|
||||||
|
>STA.G CSH.hStack
|
||||||
|
|
||||||
|
lda #$0
|
||||||
>STA.G CSH.SymbolsPtr
|
>STA.G CSH.SymbolsPtr
|
||||||
|
>STA.G CSH.ConstPtr
|
||||||
>STA.G CSH.DataPtr
|
>STA.G CSH.DataPtr
|
||||||
>STA.G CSH.StackPtr
|
>STA.G CSH.StackPtr
|
||||||
|
|
||||||
>LDYAI 256
|
sta (ZPCSHSymbols)
|
||||||
>SYSCALL GetMem0
|
sta (ZPCSHConst)
|
||||||
bcs .9
|
sta (ZPCSHData)
|
||||||
txa
|
sta (ZPCSHStack)
|
||||||
>STA.G CSH.hSymbols
|
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPCSHSymbols
|
|
||||||
|
|
||||||
>LDYAI 256
|
|
||||||
>SYSCALL GetMem
|
|
||||||
bcs .9
|
|
||||||
txa
|
|
||||||
>STA.G CSH.hData
|
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPCSHData
|
|
||||||
|
|
||||||
>LDYAI 256
|
|
||||||
>SYSCALL GetMem
|
|
||||||
bcs .9
|
|
||||||
txa
|
|
||||||
>STA.G CSH.hStack
|
|
||||||
>SYSCALL GetMemPtr
|
|
||||||
>STYA ZPCSHStack
|
|
||||||
|
|
||||||
* clc
|
* clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -62,13 +69,13 @@ CSH.Quit >LDA.G hFileBuf
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
.3 >LDA.G CSH.hSymbols
|
.3 >LDA.G CSH.hSymbols
|
||||||
beq .8
|
beq CSH.Quit.RTS
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
.8 rts
|
CSH.Quit.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.Run jsr CSH.GetCharNB
|
CSH.Run jsr CSH.GetCharNB
|
||||||
bcs .9
|
bcs CSH.Quit.RTS
|
||||||
|
|
||||||
cmp #'}' End of block ?
|
cmp #'}' End of block ?
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -107,9 +114,8 @@ CSH.Run jsr CSH.GetCharNB
|
||||||
jmp (J.CSH.KW,x)
|
jmp (J.CSH.KW,x)
|
||||||
|
|
||||||
.4 jsr CSH.GetVar
|
.4 jsr CSH.GetVar
|
||||||
bcs .9
|
bcs .5
|
||||||
|
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
cmp #'='
|
cmp #'='
|
||||||
|
@ -130,6 +136,16 @@ CSH.Run jsr CSH.GetCharNB
|
||||||
|
|
||||||
jmp CSH.GetNextCharNB Skip ;
|
jmp CSH.GetNextCharNB Skip ;
|
||||||
|
|
||||||
|
.5 >LDYA L.CSH.FN
|
||||||
|
jsr CSH.LookupFn
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
>STZ.G CSH.ACCT no retrun value type check required
|
||||||
|
|
||||||
|
jsr CSH.FnEval
|
||||||
|
bcs .9
|
||||||
|
jmp CSH.GetNextCharNB Skip ;
|
||||||
|
|
||||||
.99 lda #CSH.E.SYNTAX
|
.99 lda #CSH.E.SYNTAX
|
||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -349,23 +365,165 @@ CSH.TYPE >STA.G CSH.ACCT
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.FnEval >STYA ZPFnDefPtr
|
CSH.ExpEval jsr CSH.ZeroACC
|
||||||
|
|
||||||
|
.10 lda #$ff
|
||||||
|
>STA.G CSH.EXPBOP1 Reset BOP1
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
jsr CSH.GetCharNB
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr CSH.IsLetter Fnc or Var ?
|
||||||
|
bcs .2
|
||||||
|
|
||||||
|
jsr CSH.GetVar
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
jsr CSH.LoadACCFromVar
|
||||||
|
bcs .9
|
||||||
|
bra .11
|
||||||
|
|
||||||
|
.1 >LDYA L.CSH.FN
|
||||||
|
jsr CSH.LookupFn
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr CSH.FnEval
|
||||||
|
bcs .99
|
||||||
|
bra .11
|
||||||
|
|
||||||
|
.2 jsr CSH.IsDigit10 number ?
|
||||||
|
bcs .3
|
||||||
|
|
||||||
|
jsr CSH.GetNumInACC
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
.11 jsr CSH.GetCharNB
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
cmp #')'
|
||||||
|
beq .8
|
||||||
|
cmp #';'
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
jsr CSH.IsOPChar
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDYA L.CSH.BOPS
|
||||||
|
jsr CSH.LookupOP
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
>LDA.G CSH.EXPBOP1 previous OP...
|
||||||
|
bpl .5 go check precedence
|
||||||
|
|
||||||
|
txa
|
||||||
|
>STA.G CSH.EXPBOP1
|
||||||
|
jsr CSH.ACC2ARG
|
||||||
|
jsr CSH.GetCharNB
|
||||||
|
bcc .10 go check for an ARG
|
||||||
|
bra .9
|
||||||
|
|
||||||
|
.3 >DEBUG
|
||||||
|
|
||||||
|
cmp #'"' String litteral
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jsr CSH.AddContCharP
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
jmp .11
|
||||||
|
|
||||||
|
|
||||||
|
.9 lda #CSH.E.SYNTAX
|
||||||
|
sec
|
||||||
|
.99 rts
|
||||||
|
|
||||||
|
.5 txa
|
||||||
|
>STA.G CSH.EXPBOP2
|
||||||
|
>CMP.G CSH.EXPBOP1
|
||||||
|
bcs .6
|
||||||
|
|
||||||
|
* new OP has precedence, stack ACC
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
jmp .10
|
||||||
|
|
||||||
|
* Old OP has precedence, compute ACC=ARG <BOP> ACC
|
||||||
|
.6 >LDA.G CSH.EXPBOP1
|
||||||
|
jsr CSH.Compute
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr CSH.GetCharNB
|
||||||
|
bcs .9
|
||||||
|
jmp .10
|
||||||
|
|
||||||
|
.8 >LDA.G CSH.EXPBOP1
|
||||||
|
bmi .80
|
||||||
|
|
||||||
|
jmp CSH.Compute
|
||||||
|
|
||||||
|
.80 clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.AddContCharP
|
||||||
|
ldy #0
|
||||||
|
|
||||||
|
.1 jsr CSH.GetNextChar
|
||||||
|
bcs .9
|
||||||
|
cmp #C.CR
|
||||||
|
beq .9
|
||||||
|
|
||||||
|
cmp #'"'
|
||||||
|
beq .2
|
||||||
|
sta (ZPCSHConst),y
|
||||||
|
iny
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.2 lda #0
|
||||||
|
sta (ZPCSHConst),y
|
||||||
|
|
||||||
|
lda ZPCSHConst
|
||||||
|
pha
|
||||||
|
lda ZPCSHConst+1
|
||||||
|
pha
|
||||||
|
|
||||||
|
tya
|
||||||
|
sec
|
||||||
|
adc ZPCSHConst
|
||||||
|
sta ZPCSHConst
|
||||||
|
bcc .3
|
||||||
|
|
||||||
|
inc ZPCSHConst+1
|
||||||
|
|
||||||
|
.3 pla
|
||||||
|
ply
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 lda #CSH.E.SYNTAX
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
CSH.FnEval jsr CSH.GetCharNB
|
||||||
|
|
||||||
bcs .9
|
bcs .9
|
||||||
cmp #'('
|
cmp #'('
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda (ZPFnDefPtr) Get Return value Type
|
>LDA.G CSH.ACCT Match with ACC ?
|
||||||
>CMP.G CSH.ACCT Match with ACC ?
|
beq .10 ACC is VOID
|
||||||
|
|
||||||
|
cmp (ZPFnDefPtr) Get Return value Type
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
jsr CSH.GetNextCharNB skip '('
|
.10 jsr CSH.GetNextCharNB skip '('
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr CSH.PushACCT Save Acc & T on stack
|
jsr CSH.PushACCT Save Acc & T on stack
|
||||||
|
|
||||||
.1 inc ZPFnDefPtr advance to arg list type
|
.1 inc ZPFnDefPtr advance to arg list type
|
||||||
bne .2
|
bne .2
|
||||||
inc ZPFnDefPtr+1
|
inc ZPFnDefPtr+1
|
||||||
|
|
||||||
|
@ -384,10 +542,10 @@ CSH.FnEval >STYA ZPFnDefPtr
|
||||||
.3 >CMP.G CSH.ACCT Match with ACC ?
|
.3 >CMP.G CSH.ACCT Match with ACC ?
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
inc ZPFnDefPtr advance to next arg
|
inc ZPFnDefPtr advance to next arg
|
||||||
bne .4
|
bne .4
|
||||||
inc ZPFnDefPtr+1
|
inc ZPFnDefPtr+1
|
||||||
.4 lda (ZPFnDefPtr) no more arg in fn definition
|
.4 lda (ZPFnDefPtr) no more arg in fn definition
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
jsr CSH.GetNextCharNB
|
jsr CSH.GetNextCharNB
|
||||||
|
@ -419,94 +577,6 @@ CSH.FnEval >STYA ZPFnDefPtr
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.ExpEval jsr CSH.ZeroACC
|
|
||||||
|
|
||||||
.10 lda #$ff
|
|
||||||
>STA.G CSH.EXPBOP1 Reset BOP1
|
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr CSH.IsLetter Fnc or Var ?
|
|
||||||
bcs .2
|
|
||||||
|
|
||||||
jsr CSH.GetVar
|
|
||||||
bcs .1
|
|
||||||
|
|
||||||
jsr CSH.LoadACCFromVar
|
|
||||||
bcs .9
|
|
||||||
bra .11
|
|
||||||
|
|
||||||
.1 >LDYA L.CSH.FN
|
|
||||||
jsr CSH.LookupFn
|
|
||||||
bcs .9
|
|
||||||
>LDYA ZPPtr1
|
|
||||||
jsr CSH.FnEval
|
|
||||||
bcs .99
|
|
||||||
bra .11
|
|
||||||
|
|
||||||
.2 jsr CSH.IsDigit10 number ?
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr CSH.GetNumInACC
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
.11 jsr CSH.GetCharNB
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
cmp #')'
|
|
||||||
beq .8
|
|
||||||
cmp #';'
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
jsr CSH.IsOPChar
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDYA L.CSH.BOPS
|
|
||||||
jsr CSH.LookupOP
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
>LDA.G CSH.EXPBOP1 previous OP...
|
|
||||||
bpl .5 go check precedence
|
|
||||||
|
|
||||||
txa
|
|
||||||
>STA.G CSH.EXPBOP1
|
|
||||||
jsr CSH.ACC2ARG
|
|
||||||
jsr CSH.GetCharNB
|
|
||||||
bcc .10 go check for an ARG
|
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
|
||||||
sec
|
|
||||||
.99 rts
|
|
||||||
|
|
||||||
.5 txa
|
|
||||||
>STA.G CSH.EXPBOP2
|
|
||||||
>CMP.G CSH.EXPBOP1
|
|
||||||
bcs .3
|
|
||||||
|
|
||||||
* new OP has precedence, stack ACC
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
bra .10
|
|
||||||
|
|
||||||
* Old OP has precedence, compute ACC=ARG <BOP> ACC
|
|
||||||
.3 >LDA.G CSH.EXPBOP1
|
|
||||||
jsr CSH.Compute
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr CSH.GetCharNB
|
|
||||||
bcs .9
|
|
||||||
jmp .10
|
|
||||||
|
|
||||||
.8 >LDA.G CSH.EXPBOP1
|
|
||||||
bmi .80
|
|
||||||
|
|
||||||
jmp CSH.Compute
|
|
||||||
|
|
||||||
.80 clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.SavePtr >LDYA ZPFileBufPtr
|
CSH.SavePtr >LDYA ZPFileBufPtr
|
||||||
>STYA.G CSH.BufPtrSave
|
>STYA.G CSH.BufPtrSave
|
||||||
rts
|
rts
|
||||||
|
@ -563,9 +633,10 @@ CSH.Lookup phy Y = len
|
||||||
.31 lda ZPPtr1
|
.31 lda ZPPtr1
|
||||||
sec
|
sec
|
||||||
adc (ZPPtr1)
|
adc (ZPPtr1)
|
||||||
sta ZPPtr1
|
sta ZPFnDefPtr
|
||||||
bcc .8
|
lda ZPPtr1+1
|
||||||
inc ZPPtr1+1
|
adc #0
|
||||||
|
inc ZPFnDefPtr+1
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.8 rts
|
.8 rts
|
||||||
|
@ -600,6 +671,14 @@ CSH.Lookup phy Y = len
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.ZPPtr1AddAp1
|
||||||
|
sec
|
||||||
|
adc ZPPtr1
|
||||||
|
sta ZPPtr1
|
||||||
|
bcc .1
|
||||||
|
inc ZPPtr1+1
|
||||||
|
.1 rts
|
||||||
|
*--------------------------------------
|
||||||
CSH.GetNumInACC >LDA.G CSH.ACCT
|
CSH.GetNumInACC >LDA.G CSH.ACCT
|
||||||
cmp #CSH.T.FLOAT
|
cmp #CSH.T.FLOAT
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
|
@ -26,6 +26,7 @@ ZPFileBufPtr .BS 2
|
||||||
ZPFnDefPtr .BS 2
|
ZPFnDefPtr .BS 2
|
||||||
|
|
||||||
ZPCSHSymbols .BS 2
|
ZPCSHSymbols .BS 2
|
||||||
|
ZPCSHConst .BS 2
|
||||||
ZPCSHData .BS 2
|
ZPCSHData .BS 2
|
||||||
ZPCSHValue .BS 2
|
ZPCSHValue .BS 2
|
||||||
ZPCSHStack .BS 2
|
ZPCSHStack .BS 2
|
||||||
|
@ -129,7 +130,8 @@ CS.QUIT jsr CSH.Quit
|
||||||
PrintErrMsg >LDYA ZPFileBuf
|
PrintErrMsg >LDYA ZPFileBuf
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
|
|
||||||
stz ZPPtr3
|
lda #1
|
||||||
|
sta ZPPtr3
|
||||||
stz ZPPtr3+1
|
stz ZPPtr3+1
|
||||||
|
|
||||||
.1 >LDYA ZPPtr1
|
.1 >LDYA ZPPtr1
|
||||||
|
@ -154,13 +156,14 @@ PrintErrMsg >LDYA ZPFileBuf
|
||||||
sbc ZPFileBufPtr+1
|
sbc ZPFileBufPtr+1
|
||||||
bcc .1 not this line....
|
bcc .1 not this line....
|
||||||
|
|
||||||
.4 ldy #0
|
ldy #$ff
|
||||||
|
|
||||||
.5 lda (ZPPtr2),y
|
.5 iny
|
||||||
|
lda (ZPPtr2),y
|
||||||
beq .6
|
beq .6
|
||||||
iny
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
phy
|
phy
|
||||||
>PUSHA
|
>PUSHA
|
||||||
ldy #S.PS.hStdErr
|
ldy #S.PS.hStdErr
|
||||||
|
@ -169,17 +172,14 @@ PrintErrMsg >LDYA ZPFileBuf
|
||||||
ply
|
ply
|
||||||
bra .5
|
bra .5
|
||||||
|
|
||||||
.6 >PUSHBI 0
|
.6 phy
|
||||||
|
>PUSHBI 0
|
||||||
>PUSHW L.MSG.ECHOCRLF
|
>PUSHW L.MSG.ECHOCRLF
|
||||||
ldy #S.PS.hStdErr
|
ldy #S.PS.hStdErr
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL fprintf
|
>SYSCALL fprintf
|
||||||
|
ply
|
||||||
lda ZPFileBufPtr
|
|
||||||
sec
|
|
||||||
sbc ZPPtr2
|
|
||||||
beq .8
|
beq .8
|
||||||
tay
|
|
||||||
|
|
||||||
.7 phy
|
.7 phy
|
||||||
>PUSHBI '-'
|
>PUSHBI '-'
|
||||||
|
|
|
@ -886,17 +886,27 @@ DevMgrInit >LDYAI MSG.DEV
|
||||||
|
|
||||||
ldy #7
|
ldy #7
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
bne .6 $Cn07=00 : SmartPort
|
beq .51 $Cn07=00 : SmartPort
|
||||||
|
bne .6
|
||||||
|
|
||||||
lda ZPPtr1 get $Cn
|
ldx #AWSmartPort.SIG-AWSmartPort.OFS-1
|
||||||
|
|
||||||
|
.50 ldy AWSmartPort.OFS,x Check if there is a AWsmartport firmware
|
||||||
|
lda (ZPPtr1),y
|
||||||
|
cmp AWSmartPort.SIG,x
|
||||||
|
bne .6 not on AW
|
||||||
|
dex
|
||||||
|
bpl .50
|
||||||
|
|
||||||
|
.51 lda ZPPtr1+1 get $Cn
|
||||||
and #$f get $0n
|
and #$f get $0n
|
||||||
cmp FD.BDEV+S.FD.DEV.DEVID same as SSS ?
|
cmp FD.BDEV+S.FD.DEV.BUSID same as SSS ?
|
||||||
beq .51
|
beq .52
|
||||||
|
|
||||||
inc FD.BDEV+S.FD.DEV.DEVID Remapped SP devices....
|
inc FD.BDEV+S.FD.DEV.DEVID Remapped SP devices....
|
||||||
inc FD.BDEV+S.FD.DEV.DEVID Add 2 to DEVID (2 & 3)
|
inc FD.BDEV+S.FD.DEV.DEVID Add 2 to DEVID (2 & 3)
|
||||||
|
|
||||||
.51 jsr DevMgrInit.SP
|
.52 jsr DevMgrInit.SP
|
||||||
lda #A2osX.S.SP
|
lda #A2osX.S.SP
|
||||||
bra .7
|
bra .7
|
||||||
|
|
||||||
|
@ -941,14 +951,14 @@ DevMgrInit.SP ldy #$ff
|
||||||
sta .1+2
|
sta .1+2
|
||||||
|
|
||||||
lda FD.BDEV+S.FD.DEV.DEVID
|
lda FD.BDEV+S.FD.DEV.DEVID
|
||||||
sta SP.DEV.STATUS.DEVID
|
sta SP.IOCTL.STATUS+S.IOCTL.UNITNUM
|
||||||
|
|
||||||
.1 jsr $ffff Self Modified
|
.1 jsr $ffff Self Modified
|
||||||
.DA #0 Status
|
.DA #0 Status
|
||||||
.DA SP.DEV.STATUS
|
.DA SP.IOCTL.STATUS
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldx SP.DEV.STATUS.DATA+S.DIB.S
|
ldx SP.IOCTL.STATUS.DIB+S.DIB.S
|
||||||
|
|
||||||
>LDYAI DRV.SmartPort
|
>LDYAI DRV.SmartPort
|
||||||
jsr DevMgrInit.AddBDev
|
jsr DevMgrInit.AddBDev
|
||||||
|
@ -1184,13 +1194,14 @@ FD.BDEV.NAME .AZ "S1D1"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SmartPort.OFS .HS 010305
|
SmartPort.OFS .HS 010305
|
||||||
SmartPort.SIG .HS 200003
|
SmartPort.SIG .HS 200003
|
||||||
|
AWSmartPort.OFS .HS 12131415161718191A1B
|
||||||
|
AWSmartPort.SIG .HS A9008DF2C0A9708DF3C0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SP.DEV.STATUS .DA #3
|
SP.IOCTL.STATUS .DA #3
|
||||||
SP.DEV.STATUS.DEVID
|
.BS 1 UNITNUM
|
||||||
.BS 1
|
.DA SP.IOCTL.STATUS.DIB
|
||||||
.DA SP.DEV.STATUS.DATA
|
.DA #S.IOCTL.STATCODE.GETDIB
|
||||||
.DA S.IOCTL.STATCODE.GETDIB
|
SP.IOCTL.STATUS.DIB
|
||||||
SP.DEV.STATUS.DATA
|
|
||||||
.BS S.DIB
|
.BS S.DIB
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
Loading…
Reference in New Issue