mirror of https://github.com/A2osX/A2osX.git
bugfix: DU, EDIT, LSDEV, LSOF, WC, WHO, XMASTREE
Enh : UNAME
This commit is contained in:
parent
7aa3860a58
commit
f7681deebe
Binary file not shown.
Binary file not shown.
|
@ -4,7 +4,7 @@ NEW
|
||||||
CODE.Init stz ZPCCConst
|
CODE.Init stz ZPCCConst
|
||||||
stz ZPCCConst+1
|
stz ZPCCConst+1
|
||||||
|
|
||||||
stz bInitCode
|
>STZ.G CC.bInitCode
|
||||||
|
|
||||||
>LDYAI PCC.FH.CS
|
>LDYAI PCC.FH.CS
|
||||||
>STYA ZPCCCode
|
>STYA ZPCCCode
|
||||||
|
|
|
@ -60,7 +60,7 @@ DECL.X jsr TYPE.GetTQInYA
|
||||||
|
|
||||||
jsr CC.IsLetter
|
jsr CC.IsLetter
|
||||||
bcs .98
|
bcs .98
|
||||||
* >DEBUG
|
|
||||||
.1 clc reuse buffer
|
.1 clc reuse buffer
|
||||||
ldy #SYM.T.SU
|
ldy #SYM.T.SU
|
||||||
txa restore Q
|
txa restore Q
|
||||||
|
@ -105,12 +105,15 @@ DECL.YAC ldx #SYM.SC.STATIC Y,A = Type/Qual
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
cmp #';'
|
cmp #';'
|
||||||
beq .8
|
|
||||||
|
|
||||||
cmp #'{'
|
|
||||||
bne .26
|
bne .26
|
||||||
|
|
||||||
jmp CORE.GetNCharNBNL Skip '{'
|
ldy #SYM.Q
|
||||||
|
lda (ZPSymBufPtr),y
|
||||||
|
and #SYM.Q.FUNC
|
||||||
|
beq .28 no initializer...store SYM
|
||||||
|
|
||||||
|
clc function are already stored
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Initializer
|
* Initializer
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -614,7 +614,7 @@ EXP.Idx ldy #SYM.Q
|
||||||
jsr EXP.array.getIdx ...int16 on stack...
|
jsr EXP.array.getIdx ...int16 on stack...
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr EXP.GetSymSizeOfInAXC
|
jsr EXP.GetSymSizeOfInAX
|
||||||
cmp #1
|
cmp #1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
|
@ -675,7 +675,7 @@ EXP.array ldy #SYM.Def
|
||||||
.2 jsr EXP.array.getIdx ...int16 on stack...
|
.2 jsr EXP.array.getIdx ...int16 on stack...
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr EXP.GetSymSizeOfInAXC
|
jsr EXP.GetSymSizeOfInAX
|
||||||
jsr CODE.PUSHAXI ...sizeof on stack...
|
jsr CODE.PUSHAXI ...sizeof on stack...
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -714,7 +714,7 @@ EXP.array ldy #SYM.Def
|
||||||
ldx #FPU.wMUL
|
ldx #FPU.wMUL
|
||||||
jsr CODE.FPUCALL [][SIZE] * int16 on stack
|
jsr CODE.FPUCALL [][SIZE] * int16 on stack
|
||||||
|
|
||||||
jsr EXP.GetSymSizeOfInAXC
|
jsr EXP.GetSymSizeOfInAX
|
||||||
jsr CODE.PUSHAXI ...sizeof on stack...
|
jsr CODE.PUSHAXI ...sizeof on stack...
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -1112,7 +1112,7 @@ EXP.GetAddr2 ldy #SYM.SC
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.PushValue jsr EXP.GetSymSizeOfInAXC
|
EXP.PushValue jsr EXP.GetSymSizeOfInAX
|
||||||
tay
|
tay
|
||||||
dey
|
dey
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -1134,9 +1134,9 @@ EXP.PushValue jsr EXP.GetSymSizeOfInAXC
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* out : A,X,C = size
|
* out : A,X = size
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
EXP.GetSymSizeOfInAXC
|
EXP.GetSymSizeOfInAX
|
||||||
ldy #SYM.Q
|
ldy #SYM.Q
|
||||||
lda (ZPLookupSymPtr),y
|
lda (ZPLookupSymPtr),y
|
||||||
pha
|
pha
|
||||||
|
@ -1144,7 +1144,7 @@ EXP.GetSymSizeOfInAXC
|
||||||
tay
|
tay
|
||||||
pla
|
pla
|
||||||
|
|
||||||
EXP.GetYASizeOfInAXC
|
EXP.GetYASizeOfInAX
|
||||||
|
|
||||||
bit #SYM.Q.PPPOINTER+SYM.Q.AAARRAY
|
bit #SYM.Q.PPPOINTER+SYM.Q.AAARRAY
|
||||||
bne .1
|
bne .1
|
||||||
|
|
|
@ -51,13 +51,25 @@ F.Decl ldy #SYM.Q
|
||||||
jsr CC.IsLetter
|
jsr CC.IsLetter
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
jsr F.NewArg
|
jsr F.NewArg will update LocalPtr
|
||||||
bcs .99
|
bcc .3
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
.2 >LDYA ZPPtr2
|
||||||
|
jsr EXP.GetYASizeOfInAX
|
||||||
|
clc
|
||||||
|
adc LocalPtr
|
||||||
|
sta LocalPtr
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
txa
|
||||||
|
bne .9
|
||||||
|
|
||||||
jsr CC.GetCharNB
|
.3 jsr CC.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.2 cmp #')'
|
cmp #')'
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
cmp #','
|
cmp #','
|
||||||
|
@ -73,51 +85,40 @@ F.Decl ldy #SYM.Q
|
||||||
.6 jsr SYM.Add0000 definition End
|
.6 jsr SYM.Add0000 definition End
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
ldy #SYM.ArgSize
|
||||||
|
lda LocalPtr
|
||||||
|
sta (ZPSymBufPtr),y
|
||||||
|
|
||||||
jsr CORE.GetNCharNBNL Skip ')'
|
jsr CORE.GetNCharNBNL Skip ')'
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #';'
|
cmp #';'
|
||||||
bne .7
|
bne .7
|
||||||
|
|
||||||
jsr SYM.Update
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
jsr SCOPE.Close discard local scope
|
jsr SCOPE.Close discard local scope
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
stz LocalPtr reset for DEBUG Message
|
jmp SYM.Update Store this declaration & exit
|
||||||
* clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.7 cmp #'{'
|
.7 cmp #'{'
|
||||||
bne .9
|
bne .9
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
F.Def bit bInitCode
|
F.Def >LDA.G CC.bInitCode
|
||||||
bmi .1
|
bmi .1
|
||||||
|
|
||||||
lda #$60 RTS
|
lda #$60 RTS
|
||||||
jsr CODE.EmitByte Close INIT code
|
jsr CODE.EmitByte Close INIT code
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
dec bInitCode
|
lda #$FF
|
||||||
|
>STA.G CC.bInitCode
|
||||||
|
|
||||||
.1 jsr SYM.SetAddrCCode f() Code starts HERE
|
.1 jsr SYM.SetAddrCCode f() Code starts HERE
|
||||||
|
|
||||||
jsr SYM.Update
|
jsr SYM.Update
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda #$ff
|
lda LocalPtr
|
||||||
>STA.G CC.CmdSave
|
|
||||||
|
|
||||||
jsr STMT.NewCPS00
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
lda #'F'
|
|
||||||
jsr SYM.LookupLabelA
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
txa
|
|
||||||
|
|
||||||
jsr CODE.LDAI A = f() ARGS size
|
jsr CODE.LDAI A = f() ARGS size
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -134,10 +135,10 @@ F.Def.END lda #'X' define EXIT Label
|
||||||
jsr CODE.EmitPCC
|
jsr CODE.EmitPCC
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr SCOPE.Close
|
jsr STMT.Close
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp STMT.Close
|
jmp SCOPE.Close
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -220,6 +221,8 @@ F.NewArg >LDYA.G CC.SymID
|
||||||
jsr SYM.Store
|
jsr SYM.Store
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
stz LocalFrame DONT ADD TO LOCAL
|
||||||
|
|
||||||
>LDA.G CC.hSymBuf
|
>LDA.G CC.hSymBuf
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPSymBufPtr
|
>STYA ZPSymBufPtr
|
||||||
|
@ -271,13 +274,13 @@ F.CallRetV sec
|
||||||
|
|
||||||
lda #0 Expected T/Q = 0 if VARIADIC
|
lda #0 Expected T/Q = 0 if VARIADIC
|
||||||
tay
|
tay
|
||||||
* >DEBUG
|
|
||||||
.4 and #$F0 CONST+VOLATILE+FUNC+FASTCALL
|
.4 and #$F0 CONST+VOLATILE+FUNC+FASTCALL
|
||||||
* >DEBUG
|
|
||||||
jsr EXP.Eval
|
jsr EXP.Eval
|
||||||
bcs .93
|
bcs .93
|
||||||
|
|
||||||
jsr EXP.GetYASizeOfInAXC
|
jsr EXP.GetYASizeOfInAX
|
||||||
tax save Sizeof in X
|
tax save Sizeof in X
|
||||||
|
|
||||||
jsr F.GetTQ
|
jsr F.GetTQ
|
||||||
|
|
|
@ -124,10 +124,10 @@ FIO.FGetS >LDYA.G LineBufPtr
|
||||||
>SYSCALL FGetS
|
>SYSCALL FGetS
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDA.G bTrace
|
>LDA.G bVerbose
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
jsr PrintTraceMsg
|
jsr PrintVerboseMsg
|
||||||
|
|
||||||
.8
|
.8
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@ NEW
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Built in Keywords
|
* Built in Keywords
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.IF jsr SCOPE.New
|
KW.IF jsr STMT.NewCPS00
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr CC.GetCharNB
|
jsr CC.GetCharNB
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -34,9 +34,6 @@ KW.IF jsr SCOPE.New
|
||||||
cmp #')'
|
cmp #')'
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
jsr STMT.NewCPS00
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
jmp STMT.SetCPSType
|
jmp STMT.SetCPSType
|
||||||
|
|
||||||
.9 lda #E.CSYN
|
.9 lda #E.CSYN
|
||||||
|
@ -57,9 +54,6 @@ KW.IF.END jsr CORE.GetCharNBNL
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr SCOPE.Close
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
jmp STMT.Close
|
jmp STMT.Close
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
@ -94,17 +88,11 @@ KW.ELSE.END lda #'X' define EXIT Label
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr SCOPE.Close
|
jmp STMT.Close
|
||||||
bcs .99
|
|
||||||
|
|
||||||
clv pop context
|
|
||||||
* clc
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.WHILE jsr SCOPE.New
|
KW.WHILE lda #'C' define CONT Label
|
||||||
bcs .99
|
|
||||||
|
|
||||||
lda #'C' define CONT Label
|
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -358,10 +346,10 @@ KW.FOR.END lda #$60
|
||||||
jsr SYM.NewLabelA
|
jsr SYM.NewLabelA
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr SCOPE.Close
|
jsr STMT.Close
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jmp STMT.Close
|
jmp SCOPE.Close
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -400,7 +388,7 @@ KW.SWITCH jsr CC.GetCharNB
|
||||||
jsr CC.Push push CPS.hMEM
|
jsr CC.Push push CPS.hMEM
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
jsr CC.Push push CPS.Ptr
|
jsr CC.Push push CPS.MemPtr
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr STMT.NewCPS
|
jsr STMT.NewCPS
|
||||||
|
@ -446,7 +434,7 @@ KW.SWITCH.END lda #'J' define JMP Label
|
||||||
|
|
||||||
lda CStackPtr
|
lda CStackPtr
|
||||||
clc
|
clc
|
||||||
adc #CPS.Ptr
|
adc #CPS.MemPtr
|
||||||
tay
|
tay
|
||||||
lda (ZPCCStack),y
|
lda (ZPCCStack),y
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
@ -538,7 +526,7 @@ KW.CASE ldy CStackPtr
|
||||||
|
|
||||||
lda CStackPtr
|
lda CStackPtr
|
||||||
clc
|
clc
|
||||||
adc #CPS.Ptr
|
adc #CPS.MemPtr
|
||||||
tay
|
tay
|
||||||
lda (ZPCCStack),y
|
lda (ZPCCStack),y
|
||||||
tay
|
tay
|
||||||
|
@ -562,7 +550,7 @@ KW.CASE ldy CStackPtr
|
||||||
|
|
||||||
lda CStackPtr
|
lda CStackPtr
|
||||||
clc
|
clc
|
||||||
adc #CPS.Ptr
|
adc #CPS.MemPtr
|
||||||
tay
|
tay
|
||||||
pla
|
pla
|
||||||
sta (ZPCCStack),y
|
sta (ZPCCStack),y
|
||||||
|
@ -659,21 +647,23 @@ KW.RETURN ldx ZPLineBufPtr
|
||||||
jsr EXP.Eval
|
jsr EXP.Eval
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
jsr SYM.GetYASizeOfInAXC Y,A=T/Q
|
jsr SYM.GetYASizeOfInAX Y,A=T/Q
|
||||||
tax X = sizeof
|
tax X = sizeof
|
||||||
jsr CODE.SetRetValue
|
jsr CODE.SetRetValue
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
jsr SYM.LookupFree
|
||||||
|
bcs .99
|
||||||
|
|
||||||
lda #'X'
|
lda #'X'
|
||||||
jsr SYM.LookupLabelA
|
jsr SYM.LookupLabelA
|
||||||
bcs .9
|
bcs .99
|
||||||
|
|
||||||
lda #$4C emit JMP exit
|
lda #$4C emit JMP exit
|
||||||
jmp CODE.TOABSYX
|
jmp CODE.TOABSYX
|
||||||
|
|
||||||
.9 lda #E.CSYN
|
.9 lda #E.CSYN
|
||||||
sec
|
sec
|
||||||
rts
|
|
||||||
|
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -684,7 +674,7 @@ KW.SIZEOF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Input : Value on Stack, Y,A = Type/Qual
|
* Input : Value on Stack, Y,A = Type/Qual
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.TestZero jsr EXP.GetYASizeOfInAXC
|
KW.TestZero jsr EXP.GetYASizeOfInAX
|
||||||
tax
|
tax
|
||||||
cpx #1
|
cpx #1
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -708,7 +698,7 @@ KW.TestZero jsr EXP.GetYASizeOfInAXC
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Input : Value on Stack, Y,A = Type/Qual
|
* Input : Value on Stack, Y,A = Type/Qual
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
KW.TestnZero jsr EXP.GetYASizeOfInAXC
|
KW.TestnZero jsr EXP.GetYASizeOfInAX
|
||||||
tax
|
tax
|
||||||
cpx #1
|
cpx #1
|
||||||
bne .1
|
bne .1
|
||||||
|
|
|
@ -26,7 +26,7 @@ CC.Link >LDYA L.MSG.LINKING
|
||||||
>SYSCALL SListGetData
|
>SYSCALL SListGetData
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>LDA.G bTrace
|
>LDA.G bVerbose
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
jsr CC.Link.Dump
|
jsr CC.Link.Dump
|
||||||
|
@ -53,7 +53,7 @@ CC.Link >LDYA L.MSG.LINKING
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.9 >LDA.G bTrace
|
.9 >LDA.G bVerbose
|
||||||
bmi .90
|
bmi .90
|
||||||
|
|
||||||
jsr CC.Link.Dump
|
jsr CC.Link.Dump
|
||||||
|
|
|
@ -24,11 +24,14 @@ SCOPE.New ldy ScopeIdx
|
||||||
|
|
||||||
dec bLocalScope
|
dec bLocalScope
|
||||||
|
|
||||||
|
stz LocalFrame
|
||||||
|
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
>PUSHW L.MSG.DEBUG.SCIN
|
>PUSHW L.MSG.DEBUG.SCIN
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
>PUSHB LocalPtr
|
>PUSHB LocalPtr
|
||||||
>PUSHBI 3
|
>PUSHB LocalFrame
|
||||||
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
|
@ -39,11 +42,7 @@ SCOPE.New ldy ScopeIdx
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SCOPE.Close lda #'F' define FRAME SIZE
|
SCOPE.Close .DO _DBG_SCOPE=1
|
||||||
jsr SYM.NewLabelA
|
|
||||||
bcs .99
|
|
||||||
|
|
||||||
.DO _DBG_SCOPE=1
|
|
||||||
>PUSHW L.MSG.DEBUG.SCOUT
|
>PUSHW L.MSG.DEBUG.SCOUT
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -61,10 +60,11 @@ SCOPE.Close lda #'F' define FRAME SIZE
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
|
|
||||||
>PUSHB LocalPtr
|
>PUSHB LocalPtr
|
||||||
|
>PUSHB LocalFrame
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
>PUSHBI 5
|
>PUSHBI 6
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
* >DEBUG
|
>DEBUG
|
||||||
.FIN
|
.FIN
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
|
@ -145,10 +145,10 @@ STMT.POP.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STMT.CPStmt.END ldy CStackPtr
|
STMT.CPStmt.END ldy CStackPtr
|
||||||
beq STMT.POP.9
|
beq STMT.POP.9
|
||||||
|
|
||||||
lda (ZPCCStack),y
|
lda (ZPCCStack),y
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
jmp F.Def.END local F context
|
jmp F.Def.END local F context
|
||||||
|
|
||||||
.1 iny
|
.1 iny
|
||||||
|
@ -156,38 +156,24 @@ STMT.CPStmt.END ldy CStackPtr
|
||||||
|
|
||||||
cmp #'}' must be '}' on stack....
|
cmp #'}' must be '}' on stack....
|
||||||
bne STMT.POP.9
|
bne STMT.POP.9
|
||||||
|
|
||||||
jsr SCOPE.Close
|
|
||||||
bcs STMT.POP.99
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STMT.End ldy CStackPtr CPS.KW
|
STMT.End ldy CStackPtr CPS.KW
|
||||||
lda (ZPCCStack),y
|
lda (ZPCCStack),y
|
||||||
tax
|
tax
|
||||||
jmp (J.CC.KW.END,x)
|
jmp (J.CC.KW.END,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STMT.Close ldy CStackPtr
|
|
||||||
iny
|
|
||||||
iny CPS.LOCAL
|
|
||||||
lda (ZPCCStack),y
|
|
||||||
sta LocalPtr
|
|
||||||
|
|
||||||
lda CStackPtr
|
|
||||||
clc
|
|
||||||
adc #CPS
|
|
||||||
sta CStackPtr
|
|
||||||
|
|
||||||
.8 clc
|
|
||||||
.99 rts
|
|
||||||
*--------------------------------------
|
|
||||||
STMT.NewCPS00 lda #0
|
STMT.NewCPS00 lda #0
|
||||||
jsr CC.Push
|
jsr CC.Push CPS.hMEM
|
||||||
bcs STMT.NewCPS.RTS
|
bcs STMT.NewCPS.RTS
|
||||||
|
|
||||||
jsr CC.Push
|
jsr CC.Push CPS.MemPtr
|
||||||
bcs STMT.NewCPS.RTS
|
bcs STMT.NewCPS.RTS
|
||||||
|
|
||||||
STMT.NewCPS lda LocalPtr Locals
|
STMT.NewCPS lda LocalFrame
|
||||||
|
jsr CC.Push
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
lda LocalPtr
|
||||||
jsr CC.Push
|
jsr CC.Push
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
@ -215,6 +201,15 @@ STMT.SetCPSType jsr CORE.GetNCharNBNL
|
||||||
jsr SCOPE.New
|
jsr SCOPE.New
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
|
lda #'F'
|
||||||
|
jsr SYM.LookupLabelA
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
txa
|
||||||
|
|
||||||
|
jsr CODE.nAddLocal
|
||||||
|
bcs .99
|
||||||
|
|
||||||
ldx #'}'
|
ldx #'}'
|
||||||
|
|
||||||
.1 txa
|
.1 txa
|
||||||
|
@ -229,6 +224,38 @@ STMT.SetCPSType jsr CORE.GetNCharNBNL
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
STMT.Close ldy CStackPtr CPS.KW
|
||||||
|
iny CPS.TERM
|
||||||
|
lda (ZPCCStack),y
|
||||||
|
cmp #'}'
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
lda #'F' define FRAME SIZE
|
||||||
|
jsr SYM.NewLabelA
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
lda CStackPtr
|
||||||
|
clc
|
||||||
|
adc #CPS.LocalPtr
|
||||||
|
tay
|
||||||
|
lda (ZPCCStack),y
|
||||||
|
sta LocalPtr
|
||||||
|
|
||||||
|
iny CPS.LocalFrame
|
||||||
|
lda (ZPCCStack),y
|
||||||
|
sta LocalFrame
|
||||||
|
|
||||||
|
jsr SCOPE.Close
|
||||||
|
bcs .99
|
||||||
|
|
||||||
|
.1 lda CStackPtr
|
||||||
|
clc
|
||||||
|
adc #CPS
|
||||||
|
sta CStackPtr
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
.99 rts
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE usr/src/bin/cc.s.stmt
|
SAVE usr/src/bin/cc.s.stmt
|
||||||
LOAD usr/src/bin/cc.s
|
LOAD usr/src/bin/cc.s
|
||||||
|
|
|
@ -138,7 +138,7 @@ SYM.SetAddr ldy #SYM.SizeOf
|
||||||
ora (ZPSymBufPtr),y
|
ora (ZPSymBufPtr),y
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
jsr SYM.GetSymSizeOfInAXC
|
jsr SYM.GetSymSizeOfInAX
|
||||||
jsr SYM.SetSizeOf
|
jsr SYM.SetSizeOf
|
||||||
|
|
||||||
.1 ldy #SYM.Q
|
.1 ldy #SYM.Q
|
||||||
|
@ -187,9 +187,9 @@ SYM.SetAddrL ldy #SYM.SizeOf+1
|
||||||
|
|
||||||
lda LocalPtr
|
lda LocalPtr
|
||||||
tax
|
tax
|
||||||
|
|
||||||
clc
|
clc
|
||||||
|
|
||||||
dey SYM.SizeOf
|
dey SYM.SizeOf
|
||||||
adc (ZPSymBufPtr),y
|
adc (ZPSymBufPtr),y
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -200,6 +200,13 @@ SYM.SetAddrL ldy #SYM.SizeOf+1
|
||||||
ldy #SYM.Addr
|
ldy #SYM.Addr
|
||||||
sta (ZPSymBufPtr),y
|
sta (ZPSymBufPtr),y
|
||||||
|
|
||||||
|
ldy #SYM.SizeOf
|
||||||
|
lda (ZPSymBufPtr),y
|
||||||
|
|
||||||
|
clc
|
||||||
|
adc LocalFrame
|
||||||
|
sta LocalFrame
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -602,9 +609,13 @@ SYM.NewLabelA bit bPass2
|
||||||
cmp #'F'
|
cmp #'F'
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
lda LocalPtr
|
lda LocalFrame
|
||||||
ldy #SYM.Addr
|
ldy #SYM.Addr
|
||||||
sta (ZPSymBufPtr),y
|
sta (ZPSymBufPtr),y
|
||||||
|
|
||||||
|
lda #SYM.SC.AUTO
|
||||||
|
ldy #SYM.SC
|
||||||
|
sta (ZPSymBufPtr),y
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.1 jsr SYM.SetAddrCCode
|
.1 jsr SYM.SetAddrCCode
|
||||||
|
@ -623,6 +634,10 @@ SYM.NewLabelA bit bPass2
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>SYSCALL SListAddData
|
>SYSCALL SListAddData
|
||||||
|
|
||||||
|
.DO _DBG_SYM=1
|
||||||
|
bcs .99
|
||||||
|
jsr SYM.DEBUG2
|
||||||
|
.FIN
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYM.LookupLabelA
|
SYM.LookupLabelA
|
||||||
|
@ -765,7 +780,7 @@ SYM.LookupCheckTQ
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* on RT stack : Addr,value
|
* on RT stack : Addr,value
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYM.PopValue jsr SYM.GetYASizeOfInAXC
|
SYM.PopValue jsr SYM.GetYASizeOfInAX
|
||||||
tax
|
tax
|
||||||
dex
|
dex
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -797,9 +812,9 @@ SYM.GetTypeInYA ldy #SYM.Q
|
||||||
pla
|
pla
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* out : A,X,C = size
|
* out : A,X = size
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYM.GetSymSizeOfInAXC
|
SYM.GetSymSizeOfInAX
|
||||||
ldy #SYM.Q
|
ldy #SYM.Q
|
||||||
lda (ZPSymBufPtr),y
|
lda (ZPSymBufPtr),y
|
||||||
pha
|
pha
|
||||||
|
@ -807,7 +822,7 @@ SYM.GetSymSizeOfInAXC
|
||||||
tay
|
tay
|
||||||
pla
|
pla
|
||||||
|
|
||||||
SYM.GetYASizeOfInAXC
|
SYM.GetYASizeOfInAX
|
||||||
|
|
||||||
bit #SYM.Q.PPPOINTER
|
bit #SYM.Q.PPPOINTER
|
||||||
beq .1
|
beq .1
|
||||||
|
@ -888,7 +903,7 @@ SYM.SetAddrYA phy
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DO _DBG_SYM=1
|
.DO _DBG_SYM=1
|
||||||
SYM.DEBUG0 >PUSHW L.MSG.DEBUG.SYM0
|
SYM.DEBUG0 >PUSHW L.MSG.DEBUG.SYMN
|
||||||
>PUSHW.G CC.SymID
|
>PUSHW.G CC.SymID
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
lda (ZPSymBufPtr)
|
lda (ZPSymBufPtr)
|
||||||
|
@ -898,17 +913,28 @@ SYM.DEBUG0 >PUSHW L.MSG.DEBUG.SYM0
|
||||||
>PUSHA
|
>PUSHA
|
||||||
>PUSHBI 6
|
>PUSHBI 6
|
||||||
>SYSCALL Printf
|
>SYSCALL Printf
|
||||||
|
>DEBUG
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SYM.DEBUG1 >PUSHW L.MSG.DEBUG.SYM1
|
SYM.DEBUG1 >PUSHW L.MSG.DEBUG.SYMU
|
||||||
>PUSHW.G CC.SymID
|
>PUSHW.G CC.SymID
|
||||||
>PUSHBI 2
|
lda (ZPSymBufPtr)
|
||||||
|
>PUSHA
|
||||||
|
ldy #1
|
||||||
|
lda (ZPSymBufPtr),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI 4
|
||||||
>SYSCALL Printf
|
>SYSCALL Printf
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SYM.DEBUG2 >PUSHW L.MSG.DEBUG.SYM2
|
SYM.DEBUG2 >PUSHW L.MSG.DEBUG.SYMS
|
||||||
>PUSHW.G CC.SymID
|
>PUSHW.G CC.SymID
|
||||||
>PUSHBI 2
|
lda (ZPSymBufPtr)
|
||||||
|
>PUSHA
|
||||||
|
ldy #1
|
||||||
|
lda (ZPSymBufPtr),y
|
||||||
|
>PUSHA
|
||||||
|
>PUSHBI 4
|
||||||
>SYSCALL Printf
|
>SYSCALL Printf
|
||||||
rts
|
rts
|
||||||
.FIN
|
.FIN
|
||||||
|
|
62
BIN/CC.S.txt
62
BIN/CC.S.txt
|
@ -11,7 +11,7 @@ NEW
|
||||||
.INB inc/mli.e.i
|
.INB inc/mli.e.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
_DBG_SYM .EQ 0
|
_DBG_SYM .EQ 0
|
||||||
_DBG_SCOPE .EQ 1
|
_DBG_SCOPE .EQ 0
|
||||||
_DBG_OUT .EQ 0
|
_DBG_OUT .EQ 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
FILES.MAX .EQ 4
|
FILES.MAX .EQ 4
|
||||||
|
@ -55,7 +55,7 @@ SYM.SizeOf .EQ 4
|
||||||
SYM.Addr .EQ 6
|
SYM.Addr .EQ 6
|
||||||
SYM.BitO .EQ 8
|
SYM.BitO .EQ 8
|
||||||
SYM.BitW .EQ 9
|
SYM.BitW .EQ 9
|
||||||
*
|
SYM.ArgSize .EQ 10
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
SYM.Def .EQ 14 Funtions : fTQ,a1TQ,a2TQ....
|
SYM.Def .EQ 14 Funtions : fTQ,a1TQ,a2TQ....
|
||||||
|
@ -70,13 +70,14 @@ SU.F.BitO .EQ 4
|
||||||
SU.F.BitW .EQ 5
|
SU.F.BitW .EQ 5
|
||||||
SU.F.Name .EQ 6
|
SU.F.Name .EQ 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CPS.hMEM .EQ 4 switch/case
|
CPS.hMEM .EQ 5 switch/case
|
||||||
CPS.Ptr .EQ 3
|
CPS.MemPtr .EQ 4
|
||||||
CPS.LOCAL .EQ 2
|
CPS.LocalFrame .EQ 3
|
||||||
|
CPS.LocalPtr .EQ 2
|
||||||
CPS.TERM .EQ 1
|
CPS.TERM .EQ 1
|
||||||
CPS.KW .EQ 0
|
CPS.KW .EQ 0
|
||||||
*
|
*
|
||||||
CPS .EQ 5
|
CPS .EQ 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -100,13 +101,13 @@ ZPLineBufPtr .BS 2
|
||||||
ZPLookupPtr .BS 2
|
ZPLookupPtr .BS 2
|
||||||
CStackPtr .BS 1
|
CStackPtr .BS 1
|
||||||
LocalPtr .BS 1
|
LocalPtr .BS 1
|
||||||
|
LocalFrame .BS 1
|
||||||
ScopeIdx .BS 1
|
ScopeIdx .BS 1
|
||||||
bLocalScope .BS 1
|
|
||||||
|
|
||||||
ZPSymBufPtr .BS 2
|
ZPSymBufPtr .BS 2
|
||||||
ZPLookupSymPtr .BS 2
|
ZPLookupSymPtr .BS 2
|
||||||
|
|
||||||
bInitCode .BS 1
|
bLocalScope .BS 1
|
||||||
StmtPreOp .BS 1
|
StmtPreOp .BS 1
|
||||||
ExpState .BS 1
|
ExpState .BS 1
|
||||||
*ExpState.VinYA .EQ $10
|
*ExpState.VinYA .EQ $10
|
||||||
|
@ -145,9 +146,9 @@ L.MSG.LINKING2 .DA MSG.LINKING2
|
||||||
L.MSG.GENERATING .DA MSG.GENERATING
|
L.MSG.GENERATING .DA MSG.GENERATING
|
||||||
L.MSG.DEBUG .DA MSG.DEBUG
|
L.MSG.DEBUG .DA MSG.DEBUG
|
||||||
.DO _DBG_SYM=1
|
.DO _DBG_SYM=1
|
||||||
L.MSG.DEBUG.SYM0 .DA MSG.DEBUG.SYM0
|
L.MSG.DEBUG.SYMN .DA MSG.DEBUG.SYMN
|
||||||
L.MSG.DEBUG.SYM1 .DA MSG.DEBUG.SYM1
|
L.MSG.DEBUG.SYMU .DA MSG.DEBUG.SYMU
|
||||||
L.MSG.DEBUG.SYM2 .DA MSG.DEBUG.SYM2
|
L.MSG.DEBUG.SYMS .DA MSG.DEBUG.SYMS
|
||||||
.FIN
|
.FIN
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
L.MSG.DEBUG.SCIN .DA MSG.DEBUG.SCIN
|
L.MSG.DEBUG.SCIN .DA MSG.DEBUG.SCIN
|
||||||
|
@ -158,7 +159,7 @@ L.MSG.DEBUG.SCOUT .DA MSG.DEBUG.SCOUT
|
||||||
L.MSG.DEBUG.CSOUT .DA MSG.DEBUG.CSOUT
|
L.MSG.DEBUG.CSOUT .DA MSG.DEBUG.CSOUT
|
||||||
L.MSG.DEBUG.OUT .DA MSG.DEBUG.OUT
|
L.MSG.DEBUG.OUT .DA MSG.DEBUG.OUT
|
||||||
.FIN
|
.FIN
|
||||||
L.MSG.TRACE .DA MSG.TRACE
|
L.MSG.VERBOSE .DA MSG.VERBOSE
|
||||||
L.MSG.RTSTK .DA MSG.RTSTK
|
L.MSG.RTSTK .DA MSG.RTSTK
|
||||||
L.MSG.ERROR .DA MSG.ERROR
|
L.MSG.ERROR .DA MSG.ERROR
|
||||||
L.MSG.SUMMARY .DA MSG.SUMMARY
|
L.MSG.SUMMARY .DA MSG.SUMMARY
|
||||||
|
@ -532,12 +533,13 @@ CS.QUIT jsr CODE.Quit
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PrintTraceMsg
|
PrintVerboseMsg
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
>PUSHW L.MSG.DEBUG.SC
|
>PUSHW L.MSG.DEBUG.SC
|
||||||
jsr SCOPE.Push
|
jsr SCOPE.Push
|
||||||
>PUSHB LocalPtr
|
>PUSHB LocalPtr
|
||||||
>PUSHBI 3
|
>PUSHB LocalFrame
|
||||||
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
* >DEBUG
|
* >DEBUG
|
||||||
.FIN
|
.FIN
|
||||||
|
@ -547,7 +549,7 @@ PrintTraceMsg
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
|
|
||||||
>PUSHW L.MSG.TRACE
|
>PUSHW L.MSG.VERBOSE
|
||||||
|
|
||||||
>LDA.G LineCntPtr
|
>LDA.G LineCntPtr
|
||||||
inc
|
inc
|
||||||
|
@ -612,10 +614,10 @@ PrintErrorMsg >LDA.G CC.hDefineBuf
|
||||||
>LDYA.G CC.SaveDefine
|
>LDYA.G CC.SaveDefine
|
||||||
>STYA ZPLineBufPtr
|
>STYA ZPLineBufPtr
|
||||||
|
|
||||||
.10 >LDA.G bTrace
|
.10 >LDA.G bVerbose
|
||||||
bmi .1
|
bmi .1
|
||||||
|
|
||||||
jsr PrintTraceMsg
|
jsr PrintVerboseMsg
|
||||||
|
|
||||||
.1 lda ZPLineBufPtr
|
.1 lda ZPLineBufPtr
|
||||||
|
|
||||||
|
@ -683,8 +685,8 @@ CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.GREETINGS .CZ "\r\nA2osX C Compiler %d.%d\r\n\r\n"
|
MSG.GREETINGS .CZ "\r\nA2osX C Compiler %d.%d\r\n\r\n"
|
||||||
MSG.USAGE .CS "Usage : CC <option> srcfile.c dstfile\r\n"
|
MSG.USAGE .CS "Usage : CC <option> srcfile.c dstfile\r\n"
|
||||||
.CS " -D : Debug Mode\r\n"
|
.CS " -D : Debug mode\r\n"
|
||||||
.CS " -T : Trace On\r\n"
|
.CS " -V : Verbose output\r\n"
|
||||||
.CZ " -L Libname1 -L Libname2 ...\r\n"
|
.CZ " -L Libname1 -L Libname2 ...\r\n"
|
||||||
MSG.READING .CZ "*** Reading file: %s\r\n"
|
MSG.READING .CZ "*** Reading file: %s\r\n"
|
||||||
MSG.LINKING .CZ "*** Linking..."
|
MSG.LINKING .CZ "*** Linking..."
|
||||||
|
@ -693,28 +695,28 @@ MSG.GENERATING .CZ "*** Generating: %s\r\n"
|
||||||
MSG.DEBUG .CS "*** pCode=%H, pConst=%H, pData=%H, pStack=%H\r\n"
|
MSG.DEBUG .CS "*** pCode=%H, pConst=%H, pData=%H, pStack=%H\r\n"
|
||||||
.CZ " LSP=%h, CSP=%H:%h>%h:%h, ScopeIdx=%h\r\n"
|
.CZ " LSP=%h, CSP=%H:%h>%h:%h, ScopeIdx=%h\r\n"
|
||||||
.DO _DBG_SYM=1
|
.DO _DBG_SYM=1
|
||||||
MSG.DEBUG.SYM0 .CZ "New SymID=%H[%H],T=%h,Q=%h "
|
MSG.DEBUG.SYMN .CZ "New SymID=%H[%H],T=%h,Q=%h "
|
||||||
MSG.DEBUG.SYM1 .CZ "Upd SymID=%H\r\n"
|
MSG.DEBUG.SYMU .CZ "Upd SymID=%H,T=%h,Q=%h\r\n"
|
||||||
MSG.DEBUG.SYM2 .CZ "Sto SymID=%H\r\n"
|
MSG.DEBUG.SYMS .CZ "Sto SymID=%H,T=%h,Q=%h\r\n"
|
||||||
.FIN
|
.FIN
|
||||||
.DO _DBG_SCOPE=1
|
.DO _DBG_SCOPE=1
|
||||||
MSG.DEBUG.SCIN .CZ "Scope { %H (%h)\r\n"
|
MSG.DEBUG.SCIN .CZ "Scope { %H (%h:%h)\r\n"
|
||||||
MSG.DEBUG.SC .CZ "Scope = %H (%h)\r\n"
|
MSG.DEBUG.SC .CZ "Scope = %H (%h:%h)\r\n"
|
||||||
MSG.DEBUG.SCOUT .CZ "Scope } %H (%h) -> %H\r\n"
|
MSG.DEBUG.SCOUT .CZ "Scope } %H (%h:%h) -> %H\r\n"
|
||||||
.FIN
|
.FIN
|
||||||
.DO _DBG_OUT=1
|
.DO _DBG_OUT=1
|
||||||
MSG.DEBUG.CSOUT .CZ "\r\n%H-"
|
MSG.DEBUG.CSOUT .CZ "\r\n%H-"
|
||||||
MSG.DEBUG.OUT .CZ "%h"
|
MSG.DEBUG.OUT .CZ "%h"
|
||||||
.FIN
|
.FIN
|
||||||
MSG.TRACE .CZ "%5D> %s\r\n"
|
MSG.VERBOSE .CZ "%5D> %s\r\n"
|
||||||
MSG.RTSTK .CZ "<pBase=%H, pVar=%H, (pVar)=%H, pStack=%H>\r\n"
|
MSG.RTSTK .CZ "<pBase=%H, pVar=%H, (pVar)=%H, pStack=%H>\r\n"
|
||||||
MSG.ERROR .CZ " %s^\r\n"
|
MSG.ERROR .CZ " %s^\r\n"
|
||||||
MSG.SUMMARY .CZ "*** Compilation OK : Code size=%5D, Const size=%5D, Data size=%5D\r\n"
|
MSG.SUMMARY .CZ "*** Compilation OK : Code size=%5D, Const size=%5D, Data size=%5D\r\n"
|
||||||
MSG.NOMAIN .CZ "*** No 'main()' function defined."
|
MSG.NOMAIN .CZ "*** No 'main()' function defined."
|
||||||
MSG.ALLDONE .CZ "*** All Done."
|
MSG.ALLDONE .CZ "*** All Done."
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OptionList .AS "DdTtLl"
|
OptionList .AS "DdVvLl"
|
||||||
OptionVars .DA #bDebug,#bDebug,#bTrace,#bTrace
|
OptionVars .DA #bDebug,#bDebug,#bVerbose,#bVerbose
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.INCLUDE .AZ "INCLUDE"
|
ENV.INCLUDE .AZ "INCLUDE"
|
||||||
ENV.LIB .AZ "LIB"
|
ENV.LIB .AZ "LIB"
|
||||||
|
@ -1139,7 +1141,7 @@ DS.START
|
||||||
PathBuf .BS MLI.MAXPATH+1
|
PathBuf .BS MLI.MAXPATH+1
|
||||||
|
|
||||||
bDebug .BS 1
|
bDebug .BS 1
|
||||||
bTrace .BS 1
|
bVerbose .BS 1
|
||||||
|
|
||||||
LibCount .BS 1
|
LibCount .BS 1
|
||||||
hLibNs .BS LIBS.MAX
|
hLibNs .BS LIBS.MAX
|
||||||
|
@ -1174,6 +1176,8 @@ CC.hSyms .BS 1
|
||||||
CC.ScopeID .BS 2
|
CC.ScopeID .BS 2
|
||||||
CC.ScopeIDs .BS 2+SCOPE.MAX*2 2 bytes Global+ MAX locals
|
CC.ScopeIDs .BS 2+SCOPE.MAX*2 2 bytes Global+ MAX locals
|
||||||
|
|
||||||
|
CC.bInitCode .BS 1
|
||||||
|
|
||||||
CC.Label .BS 3 _X\0
|
CC.Label .BS 3 _X\0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CC.hSymBuf .BS 1
|
CC.hSymBuf .BS 1
|
||||||
|
|
349
BIN/DU.S.txt
349
BIN/DU.S.txt
|
@ -15,19 +15,26 @@ X.ENTER.SUBDIR .EQ 1
|
||||||
X.COPY.TO.DEST .EQ 0
|
X.COPY.TO.DEST .EQ 0
|
||||||
X.DELETE.SOURCE .EQ 0
|
X.DELETE.SOURCE .EQ 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR ZPBIN
|
.OR ZPBIN
|
||||||
ZS.START
|
ZS.START
|
||||||
ZPPtr1 .BS 2
|
ZPPtr1 .BS 2
|
||||||
ZPPtr2 .BS 2
|
ZPPtr2 .BS 2
|
||||||
ZPFileName .BS 2
|
ZPFileName .BS 2
|
||||||
ZPFileStat .BS 2
|
ZPFileStat .BS 2
|
||||||
ZPPW .BS 2
|
|
||||||
hLineBuf .BS 1
|
bPass2 .BS 1
|
||||||
ZPLineBuf .BS 2
|
|
||||||
bPass2 .BS 1
|
bDirLevel .BS 1
|
||||||
bDirLevel .BS 1
|
bCRLF .BS 1
|
||||||
bIsTTY .BS 1
|
|
||||||
|
bPause .BS 1
|
||||||
|
bSummary .BS 1
|
||||||
|
bAllFiles .BS 1
|
||||||
|
|
||||||
|
ArgCount .BS 1
|
||||||
|
ArgDir .BS 1
|
||||||
|
|
||||||
ZS.END
|
ZS.END
|
||||||
.ED
|
.ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -35,14 +42,14 @@ ZS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.START cld
|
CS.START cld
|
||||||
jmp (.1,x)
|
jmp (.1,x)
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
.DA #$61 6502,Level 1 (65c02)
|
||||||
.DA #1 BIN Layout Version 1
|
.DA #1 BIN Layout Version 1
|
||||||
.DA #0 S.PS.F.EVENT
|
.DA #0 S.PS.F.EVENT
|
||||||
.DA #0
|
.DA #0
|
||||||
.DA CS.END-CS.START Code Size (without Constants)
|
.DA CS.END-CS.START Code Size (without Constants)
|
||||||
.DA DS.END-DS.START Data SegmentSize
|
.DA DS.END-DS.START Data SegmentSize
|
||||||
.DA #64 Stack Size
|
.DA #64 Stack Size
|
||||||
.DA #ZS.END-ZS.START Zero Page Size
|
.DA #ZS.END-ZS.START Zero Page Size
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
|
@ -71,65 +78,66 @@ J.CS.RUN.PRINT .DA CS.RUN.PRINT.REG
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN stz bIsTTY
|
CS.RUN jsr CS.RUN.SetCRLF
|
||||||
jsr CS.RUN.ISATTY
|
|
||||||
|
|
||||||
.1 stz bDirLevel
|
.1 inc ArgCount
|
||||||
>INC.G ArgCount
|
lda ArgCount
|
||||||
>SYSCALL ArgV
|
>SYSCALL ArgV
|
||||||
bcs .6
|
bcs .6
|
||||||
>STYA ZPPtr1
|
|
||||||
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1)
|
||||||
cmp #'-'
|
cmp #'-'
|
||||||
bne .4
|
bne .4
|
||||||
ldy #1
|
|
||||||
|
ldy #1
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
|
beq .9
|
||||||
|
|
||||||
ldx #OptionVars-OptionList-1
|
ldy #OptionVars-OptionList-1
|
||||||
|
|
||||||
.2 cmp OptionList,x
|
.2 cmp OptionList,y
|
||||||
beq .3
|
beq .3
|
||||||
dex
|
|
||||||
|
dey
|
||||||
bpl .2
|
bpl .2
|
||||||
|
|
||||||
>PUSHW L.MSG.USAGE
|
.9 >LDYA L.MSG.USAGE
|
||||||
>PUSHBI 0
|
>SYSCALL PutS
|
||||||
>SYSCALL PrintF
|
|
||||||
lda #E.SYN
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.3 ldy OptionVars,x
|
lda #E.SYN
|
||||||
lda #$80
|
sec
|
||||||
sta (pData),y
|
.99 rts
|
||||||
|
|
||||||
|
.3 ldx OptionVars,y
|
||||||
|
|
||||||
|
sec
|
||||||
|
ror $0,x
|
||||||
bra .1
|
bra .1
|
||||||
.4 >LDYA ZPPtr1
|
|
||||||
|
.4 lda ArgDir
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda ArgCount
|
||||||
|
sta ArgDir
|
||||||
|
|
||||||
|
>LDYA ZPPtr1
|
||||||
jsr InitSrcDirYA
|
jsr InitSrcDirYA
|
||||||
bcc .1 scan for any other args
|
bcc .1 scan for any other args
|
||||||
.9 rts
|
|
||||||
.6 >LDA.G index do we have a Source dir ?
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
.6 lda ArgDir do we have a Source dir ?
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
ldy #S.PS.hCWD
|
ldy #S.PS.hCWD
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
jsr InitSrcDirYA
|
jsr InitSrcDirYA
|
||||||
bcs .9
|
bcs .99
|
||||||
|
|
||||||
.8 >PUSHEA.G TIME.SysTime
|
.8 >PUSHEA.G TIME.SysTime
|
||||||
>SYSCALL Time
|
>SYSCALL Time
|
||||||
|
|
||||||
>LDYAI S.PW
|
|
||||||
>SYSCALL GetMem
|
|
||||||
bcs .9
|
|
||||||
>STYA ZPPW
|
|
||||||
txa
|
|
||||||
>STA.G hPW
|
|
||||||
|
|
||||||
>LDYAI 256
|
|
||||||
>SYSCALL GetMem
|
|
||||||
bcs .9
|
|
||||||
>STYA ZPLineBuf
|
|
||||||
stx hLineBuf
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.LOOP stz bPass2
|
CS.RUN.LOOP stz bPass2
|
||||||
|
|
||||||
|
@ -149,13 +157,13 @@ CS.RUN.LOOP stz bPass2
|
||||||
cmp #$13 Ctrl-S
|
cmp #$13 Ctrl-S
|
||||||
bne .3
|
bne .3
|
||||||
|
|
||||||
>LDA.G bPause
|
lda bPause
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta (pData),y
|
sta bPause
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.3 >LDA.G bPause
|
.3 bit bPause
|
||||||
bne .1
|
bmi .1
|
||||||
|
|
||||||
jsr GetEntry First entry
|
jsr GetEntry First entry
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -190,8 +198,8 @@ CS.RUN.LOOP stz bPass2
|
||||||
dec bPass2
|
dec bPass2
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 >LDA.G bSummary
|
.9 bit bSummary
|
||||||
bne .91
|
bmi .91
|
||||||
|
|
||||||
jsr CS.RUN.PrintDirSumm
|
jsr CS.RUN.PrintDirSumm
|
||||||
jsr CS.RUN.PrintCwd
|
jsr CS.RUN.PrintCwd
|
||||||
|
@ -206,12 +214,14 @@ CS.RUN.LOOP stz bPass2
|
||||||
jsr GetNextEntry Get next entry
|
jsr GetNextEntry Get next entry
|
||||||
jmp CS.RUN.LOOP Go again
|
jmp CS.RUN.LOOP Go again
|
||||||
|
|
||||||
.97 >LDA.G bSummary
|
.97 bit bSummary
|
||||||
beq .98
|
bpl .98
|
||||||
|
|
||||||
inc bDirLevel
|
inc bDirLevel
|
||||||
jsr CS.RUN.PrintDirSumm
|
jsr CS.RUN.PrintDirSumm
|
||||||
jsr CS.RUN.PrintCwd
|
jsr CS.RUN.PrintBaseDir
|
||||||
jsr CS.RUN.NewLine
|
jsr CS.RUN.NewLine
|
||||||
|
|
||||||
.98 lda #0
|
.98 lda #0
|
||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
|
@ -221,69 +231,75 @@ CS.RUN.PRINT.JMP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PRINT.REG
|
CS.RUN.PRINT.REG
|
||||||
bit bPass2
|
bit bPass2
|
||||||
bmi .1
|
bmi .1
|
||||||
clc
|
|
||||||
rts
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 ldx bDirLevel X is loop ctr bDirLevel..0
|
||||||
|
|
||||||
.1 ldx bDirLevel X is loop ctr bDirLevel..0
|
|
||||||
.2 >LEA.G BlkCounters
|
.2 >LEA.G BlkCounters
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
ldy #S.STAT.BLOCKS+3 Read 32-bit number of blocks
|
ldy #S.STAT.BLOCKS+3 Read 32-bit number of blocks
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
pha And push to stack
|
pha And push to stack
|
||||||
dey
|
dey
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
pha
|
pha
|
||||||
dey
|
dey
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
pha
|
pha
|
||||||
dey
|
dey
|
||||||
lda (ZPFileStat),y
|
lda (ZPFileStat),y
|
||||||
pha
|
pha
|
||||||
txa Get loop counter
|
txa Get loop counter
|
||||||
asl x2
|
asl x2
|
||||||
asl x2 again
|
asl x2 again
|
||||||
tay
|
tay
|
||||||
pla Do 32-bit add
|
pla Do 32-bit add
|
||||||
clc
|
clc
|
||||||
adc (ZPPtr1),y LSB
|
adc (ZPPtr1),y LSB
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
pla
|
pla
|
||||||
iny
|
iny
|
||||||
adc (ZPPtr1),y
|
adc (ZPPtr1),y
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
pla
|
pla
|
||||||
iny
|
iny
|
||||||
adc (ZPPtr1),y
|
adc (ZPPtr1),y
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
pla
|
pla
|
||||||
iny
|
iny
|
||||||
adc (ZPPtr1),y MSB
|
adc (ZPPtr1),y MSB
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
dex Decrement loop counter
|
dex Decrement loop counter
|
||||||
cpx #$ff Stop if -1
|
cpx #$ff Stop if -1
|
||||||
bne .2
|
bne .2
|
||||||
|
|
||||||
>LDA.G bAllFiles
|
bit bAllFiles
|
||||||
beq .8
|
bpl .8
|
||||||
|
|
||||||
|
>PUSHW L.MSG.REG1
|
||||||
|
ldy #S.STAT.BLOCKS+3
|
||||||
|
ldx #4
|
||||||
|
|
||||||
>PUSHW L.MSG.REG1
|
|
||||||
ldy #S.STAT.BLOCKS+3
|
|
||||||
ldx #4
|
|
||||||
.3 lda (ZPFileStat),y
|
.3 lda (ZPFileStat),y
|
||||||
>PUSHA
|
>PUSHA
|
||||||
dey
|
dey
|
||||||
dex
|
dex
|
||||||
bne .3 (4)
|
bne .3
|
||||||
|
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr CS.RUN.PrintCwd
|
jsr CS.RUN.PrintCwd
|
||||||
>PUSHW L.MSG.REG2
|
>PUSHW L.MSG.REG2
|
||||||
>PUSHW ZPFileName (2)
|
>PUSHW ZPFileName
|
||||||
>PUSHBI 2
|
>PUSHBI 2
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jmp CS.RUN.NewLine
|
jmp CS.RUN.NewLine
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
|
@ -344,46 +360,45 @@ CS.RUN.PRINT.BDEV
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PrintDirSumm
|
CS.RUN.PrintDirSumm
|
||||||
>LEA.G BlkCounters
|
>PUSHW L.MSG.DIRSUMM
|
||||||
>STYA ZPPtr1
|
|
||||||
lda bDirLevel
|
lda bDirLevel
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
ora #3
|
||||||
clc
|
clc
|
||||||
adc ZPPtr1
|
adc #BlkCounters
|
||||||
sta ZPPtr1
|
tay
|
||||||
lda #$00
|
|
||||||
adc ZPPtr1+1
|
ldx #3
|
||||||
sta ZPPtr1+1
|
|
||||||
>PUSHW L.MSG.DIRSUMM
|
.1 >PUSHB (pData),y
|
||||||
ldy #$03
|
lda #0
|
||||||
lda (ZPPtr1),y
|
sta (pData),y
|
||||||
>PUSHA
|
dey
|
||||||
dey
|
dex
|
||||||
lda (ZPPtr1),y
|
bpl .1
|
||||||
>PUSHA
|
|
||||||
dey
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
>PUSHA
|
|
||||||
dey
|
|
||||||
lda (ZPPtr1),y
|
|
||||||
>PUSHA
|
|
||||||
>PUSHBI 4
|
>PUSHBI 4
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
ldy #$03
|
|
||||||
lda #$00
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
dey
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
dey
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
dey
|
|
||||||
sta (ZPPtr1),y
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.PrintBaseDir
|
||||||
|
lda ArgDir
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
>SYSCALL ArgV
|
||||||
|
>SYSCALL PutS
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 ldy #S.PS.hCWD
|
||||||
|
lda (pPS),y
|
||||||
|
>SYSCALL GetMemPtr
|
||||||
|
>SYSCALL PutS
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CS.RUN.PrintCwd >PUSHW L.MSG.CWD
|
CS.RUN.PrintCwd >PUSHW L.MSG.CWD
|
||||||
ldy #hSrcBasePath
|
ldy #hSrcBasePath
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
@ -395,39 +410,38 @@ CS.RUN.PrintCwd >PUSHW L.MSG.CWD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.NewLine lda #C.CR
|
CS.RUN.NewLine lda #C.CR
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
lda bIsTTY
|
lda bCRLF
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
lda #C.LF
|
lda #C.LF
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.ISATTY ldy #S.PS.hStdOut
|
CS.RUN.SetCRLF ldy #S.PS.hStdOut
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
tax
|
tax
|
||||||
lda hFDs-1,x
|
lda hFDs-1,x
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
lda (ZPPtr1)
|
lda (ZPPtr1) #S.FD.T.REG ?
|
||||||
beq .9
|
beq .9 no CRLF if REG
|
||||||
inc bIsTTY
|
|
||||||
.9 rts
|
inc bCRLF
|
||||||
|
|
||||||
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT jsr LeaveSubDir
|
CS.QUIT jsr LeaveSubDir
|
||||||
bcc CS.QUIT
|
bcc CS.QUIT
|
||||||
>LDA.G hFilter
|
|
||||||
beq .3
|
|
||||||
>SYSCALL FreeMem
|
|
||||||
.3 >LDA.G hPW
|
|
||||||
beq .4
|
|
||||||
>SYSCALL FreeMem
|
|
||||||
.4 lda hLineBuf
|
|
||||||
beq .8
|
|
||||||
>SYSCALL FreeMem
|
|
||||||
|
|
||||||
.8 clc
|
>LDA.G hFilter
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB usr/src/shared/x.fileenum.s
|
.INB usr/src/shared/x.fileenum.s
|
||||||
|
@ -450,12 +464,7 @@ MSG.BDEV .CZ "\e[32m%s/\e[0m"
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
ArgCount .BS 1
|
|
||||||
TIME.SysTime .BS S.TIME
|
TIME.SysTime .BS S.TIME
|
||||||
bPause .BS 1
|
|
||||||
bSummary .BS 1
|
|
||||||
bAllFiles .BS 1
|
|
||||||
hPW .BS 1
|
|
||||||
BlkCounters .BS 64 Array of 32 bit integers, size 16
|
BlkCounters .BS 64 Array of 32 bit integers, size 16
|
||||||
.INB usr/src/shared/x.fileenum.g
|
.INB usr/src/shared/x.fileenum.g
|
||||||
DS.END .ED
|
DS.END .ED
|
||||||
|
|
|
@ -59,7 +59,7 @@ Ctrl.A >STZ.G bUpdateStatus
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda (ZPPTR1)
|
lda (ZPPTR1)
|
||||||
beq .8
|
beq .7
|
||||||
|
|
||||||
>PUSHW L.MSG.HELPLINE
|
>PUSHW L.MSG.HELPLINE
|
||||||
>PUSHW ZPPTR1
|
>PUSHW ZPPTR1
|
||||||
|
@ -74,10 +74,11 @@ Ctrl.A >STZ.G bUpdateStatus
|
||||||
adc ZPPTR1
|
adc ZPPTR1
|
||||||
sta ZPPTR1
|
sta ZPPTR1
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
inc ZPPTR1+1
|
inc ZPPTR1+1
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.8 jsr SCRN.ResetStatusBar
|
.7 jsr SCRN.ResetStatusBar
|
||||||
|
|
||||||
>PUSHW LineBufPtr
|
>PUSHW LineBufPtr
|
||||||
>PUSHW L.MSG.STATUSBAR.H
|
>PUSHW L.MSG.STATUSBAR.H
|
||||||
|
@ -88,8 +89,10 @@ Ctrl.A >STZ.G bUpdateStatus
|
||||||
jsr SCRN.LineBufOut
|
jsr SCRN.LineBufOut
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr GetCh
|
.8 jsr GetCh
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
beq .8
|
||||||
|
|
||||||
jmp SCRN.Repaint
|
jmp SCRN.Repaint
|
||||||
|
|
||||||
|
|
|
@ -705,6 +705,9 @@ DLG.CTRL.CharIn.TB
|
||||||
cmp #C.DEL
|
cmp #C.DEL
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
|
cmp #C.SPACE
|
||||||
|
bcc .9
|
||||||
|
|
||||||
pha
|
pha
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
@ -777,6 +780,9 @@ DLG.CTRL.CharIn.TB
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.9 sec
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DLG.CTRL.CharIn.OL
|
DLG.CTRL.CharIn.OL
|
||||||
cmp #C.SPACE
|
cmp #C.SPACE
|
||||||
|
|
|
@ -35,12 +35,10 @@ FILE.Load jsr FILE.RealPath
|
||||||
.1 ldx #S.FI.T.ASM
|
.1 ldx #S.FI.T.ASM
|
||||||
lda #O.RDONLY
|
lda #O.RDONLY
|
||||||
jsr FILE.OpenAX
|
jsr FILE.OpenAX
|
||||||
bcs .8
|
bcs .9
|
||||||
|
|
||||||
jsr FILE.Load.ASM
|
jsr FILE.Load.ASM
|
||||||
jmp FILE.Close
|
jmp FILE.Close
|
||||||
|
|
||||||
.8 clc
|
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
103
BIN/EDIT.S.txt
103
BIN/EDIT.S.txt
|
@ -150,10 +150,14 @@ CS.RUN >PUSHW L.MSG.TERMCAP
|
||||||
>SYSCALL PrintF Send Query for term W & H
|
>SYSCALL PrintF Send Query for term W & H
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
.1 >SYSCALL GetChar
|
.1 jsr GetCh
|
||||||
bcs CS.INIT.RTS
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
jsr CharIn
|
beq .1
|
||||||
|
|
||||||
|
>SYSCALL PutChar
|
||||||
|
bcs CS.INIT.RTS
|
||||||
|
|
||||||
>LDA.G ScreenW Wait for Response from terminal for W & H
|
>LDA.G ScreenW Wait for Response from terminal for W & H
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
|
@ -196,10 +200,12 @@ CS.RUN >PUSHW L.MSG.TERMCAP
|
||||||
CS.RUN.LOOP jsr GetCh
|
CS.RUN.LOOP jsr GetCh
|
||||||
bcs CS.RUN.RTS I/O error
|
bcs CS.RUN.RTS I/O error
|
||||||
|
|
||||||
jsr CharIn
|
beq .8
|
||||||
|
|
||||||
|
jsr CS.RUN.LOOP.CharIn
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDA.G bExit
|
.8 >LDA.G bExit
|
||||||
bpl CS.RUN.LOOP
|
bpl CS.RUN.LOOP
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
@ -212,6 +218,29 @@ CS.RUN.LOOP jsr GetCh
|
||||||
sec
|
sec
|
||||||
CS.RUN.RTS rts
|
CS.RUN.RTS rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.LOOP.CharIn
|
||||||
|
cmp #C.DEL
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
jmp Ctrl.DEL
|
||||||
|
|
||||||
|
.1 cmp #C.SPACE
|
||||||
|
bcc .2
|
||||||
|
|
||||||
|
jsr BUF.InsertA
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jsr SCRN.UpdateCurrentEOL
|
||||||
|
bcs .9
|
||||||
|
|
||||||
|
jmp Ctrl.FS
|
||||||
|
|
||||||
|
.2 asl
|
||||||
|
tax
|
||||||
|
jmp (J.CTRL,x)
|
||||||
|
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
CS.RUN.GetBuf64 >LDYAI 64
|
CS.RUN.GetBuf64 >LDYAI 64
|
||||||
>SYSCALL GetMem
|
>SYSCALL GetMem
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -238,39 +267,38 @@ CS.DOEVENT lda (pEvent)
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT ldy #hLineBuf
|
CS.QUIT ldy #hLineBuf
|
||||||
jsr .8
|
jsr .7
|
||||||
|
|
||||||
ldy #hBuf
|
ldy #hBuf
|
||||||
jsr .8
|
jsr .7
|
||||||
|
|
||||||
ldy #hBufBackup
|
ldy #hBufBackup
|
||||||
jsr .8
|
jsr .7
|
||||||
|
|
||||||
ldy #hClipBoard
|
ldy #hClipBoard
|
||||||
jsr .8
|
jsr .7
|
||||||
|
|
||||||
ldy #hFileName
|
ldy #hFileName
|
||||||
jsr .8
|
jsr .7
|
||||||
|
|
||||||
ldy #hFind
|
ldy #hFind
|
||||||
jsr .8
|
jsr .7
|
||||||
|
|
||||||
ldy #hReplace
|
ldy #hReplace
|
||||||
|
|
||||||
.8 lda (pData),y
|
.7 lda (pData),y
|
||||||
beq .9
|
beq .8
|
||||||
|
|
||||||
>SYSCALL FreeMem
|
>SYSCALL FreeMem
|
||||||
|
|
||||||
.9
|
.8 clc
|
||||||
CS.QUIT.CLCRTS clc
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
GetCh >SYSCALL GetChar
|
GetCh >SYSCALL GetChar
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
cmp #C.CR
|
cmp #C.CR
|
||||||
bne CS.QUIT.CLCRTS
|
bne GetChTranslate
|
||||||
|
|
||||||
ldy #S.PS.hStdIn Check for any extra LF
|
ldy #S.PS.hStdIn Check for any extra LF
|
||||||
lda (pPS),y
|
lda (pPS),y
|
||||||
|
@ -279,14 +307,17 @@ GetCh >SYSCALL GetChar
|
||||||
|
|
||||||
tay
|
tay
|
||||||
bne .8
|
bne .8
|
||||||
|
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.8 lda #C.CR
|
.8 lda #C.CR
|
||||||
|
|
||||||
|
* clc
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CharIn tax
|
GetChTranslate tax
|
||||||
|
|
||||||
>LDA.G bEscMode
|
>LDA.G bEscMode
|
||||||
bpl .1 Not in ESC mode
|
bpl .1 Not in ESC mode
|
||||||
|
@ -296,6 +327,7 @@ CharIn tax
|
||||||
|
|
||||||
lda (pData) #EscBufferPtr
|
lda (pData) #EscBufferPtr
|
||||||
bne .19 buffer not empty...bad SEQ
|
bne .19 buffer not empty...bad SEQ
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
@ -316,46 +348,28 @@ CharIn tax
|
||||||
sta (pData),y
|
sta (pData),y
|
||||||
cmp #64
|
cmp #64
|
||||||
|
|
||||||
bcc .8 not a letter...SEQ is incomplete
|
bcc .7 not a letter...SEQ is incomplete
|
||||||
|
|
||||||
jsr CharIn.Esc
|
jsr GetCh.Esc
|
||||||
bcs .8 Not translated, exit
|
bcs .8 Not translated, exit
|
||||||
.HS B0 BCS
|
.HS B0 BCS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 txa
|
.1 txa
|
||||||
|
|
||||||
cmp #C.ESC
|
cmp #C.ESC
|
||||||
bne .2
|
bne .8
|
||||||
|
|
||||||
lda #$ff
|
lda #$ff
|
||||||
>STA.G bEscMode
|
>STA.G bEscMode
|
||||||
inc
|
inc
|
||||||
sta (pData) #EscBufferPtr
|
sta (pData) #EscBufferPtr
|
||||||
|
|
||||||
|
.7 lda #0
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
.2 cmp #C.DEL
|
|
||||||
bne .22
|
|
||||||
|
|
||||||
jmp Ctrl.DEL
|
|
||||||
|
|
||||||
.22 cmp #C.SPACE
|
|
||||||
bcc .3
|
|
||||||
|
|
||||||
jsr BUF.InsertA
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jsr SCRN.UpdateCurrentEOL
|
|
||||||
bcs .9
|
|
||||||
|
|
||||||
jmp Ctrl.FS
|
|
||||||
|
|
||||||
.3 asl
|
|
||||||
tax
|
|
||||||
jmp (J.CTRL,x)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CharIn.Esc >STZ.G bEscMode
|
GetCh.Esc >STZ.G bEscMode
|
||||||
|
|
||||||
lda (pData) #EscBufferPtr
|
lda (pData) #EscBufferPtr
|
||||||
tay
|
tay
|
||||||
|
@ -372,6 +386,7 @@ CharIn.Esc >STZ.G bEscMode
|
||||||
|
|
||||||
.1 cmp EscChars,x
|
.1 cmp EscChars,x
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
dex
|
dex
|
||||||
bpl .1
|
bpl .1
|
||||||
|
|
||||||
|
@ -400,7 +415,7 @@ CharIn.Esc >STZ.G bEscMode
|
||||||
cmp #';'
|
cmp #';'
|
||||||
beq .5
|
beq .5
|
||||||
|
|
||||||
jsr CharIn.TmpByte10pA
|
jsr GetCh.TmpByte10pA
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.5 phy
|
.5 phy
|
||||||
|
@ -426,7 +441,7 @@ CharIn.Esc >STZ.G bEscMode
|
||||||
cmp #'R'
|
cmp #'R'
|
||||||
beq .7
|
beq .7
|
||||||
|
|
||||||
jsr CharIn.TmpByte10pA
|
jsr GetCh.TmpByte10pA
|
||||||
bra .6
|
bra .6
|
||||||
|
|
||||||
.7 lda TmpByte
|
.7 lda TmpByte
|
||||||
|
@ -435,7 +450,7 @@ CharIn.Esc >STZ.G bEscMode
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CharIn.TmpByte10pA
|
GetCh.TmpByte10pA
|
||||||
and #$0f
|
and #$0f
|
||||||
pha
|
pha
|
||||||
lda TmpByte
|
lda TmpByte
|
||||||
|
|
|
@ -246,8 +246,8 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .CZ "hFD Type Name Addr Status Typ/Sub IDString Version Size (BLK)"
|
MSG0 .CZ "hFD Type Name Addr Status Typ/Sub IDString Version Size (BLK)"
|
||||||
MSG.DEV .CZ "%3d %5s %12s %H "
|
MSG.DEV .CZ "%3d %4s %12s %H "
|
||||||
MSG.DEV.ERR .CZ "[%h] Device Error.\r\n"
|
MSG.DEV.ERR .CZ "[%h] Device Error.\r\n"
|
||||||
MSG.DEV.DIB .CZ "%s $%h/$%h %16S %03d.%03d "
|
MSG.DEV.DIB .CZ "%s $%h/$%h %16S %03d.%03d "
|
||||||
MSG.DEV.B .CZ "%10u\r\n"
|
MSG.DEV.B .CZ "%10u\r\n"
|
||||||
|
@ -262,8 +262,8 @@ FD.T.DIR .AZ "DIR"
|
||||||
FD.T.CDEV .AZ "CDEV"
|
FD.T.CDEV .AZ "CDEV"
|
||||||
FD.T.BDEV .AZ "BDEV"
|
FD.T.BDEV .AZ "BDEV"
|
||||||
FD.T.LNK .AZ "LNK"
|
FD.T.LNK .AZ "LNK"
|
||||||
FD.T.DSOCK .AZ "DSOCK"
|
FD.T.DSOCK .AZ "DSCK"
|
||||||
FD.T.SSOCK .AZ "SSOCK"
|
FD.T.SSOCK .AZ "SSCK"
|
||||||
FD.T.PIPE .AZ "PIPE"
|
FD.T.PIPE .AZ "PIPE"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BLANK.DIB .DA #0 #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
BLANK.DIB .DA #0 #S.DIB.S.BLOCK+S.DIB.S.WRITE+S.DIB.S.READ
|
||||||
|
|
|
@ -112,16 +112,16 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .CZ "hFILE hFD Cnt Type Filepath"
|
MSG0 .CZ "hFILE hFD Cnt Type Filepath"
|
||||||
MSG1 .CZ "%3d %3d %3d %5s %s\r\n"
|
MSG1 .CZ "%3d %3d %3d %4s %s\r\n"
|
||||||
MSG.NA .CZ "n/a"
|
MSG.NA .CZ "n/a"
|
||||||
FD.T.REG .CZ "REG"
|
FD.T.REG .CZ "REG"
|
||||||
FD.T.DIR .CZ "DIR"
|
FD.T.DIR .CZ "DIR"
|
||||||
FD.T.CDEV .CZ "CDEV"
|
FD.T.CDEV .CZ "CDEV"
|
||||||
FD.T.BDEV .CZ "BDEV"
|
FD.T.BDEV .CZ "BDEV"
|
||||||
FD.T.LNK .CZ "LNK"
|
FD.T.LNK .CZ "LNK"
|
||||||
FD.T.DSOCK .CZ "DSOCK"
|
FD.T.DSOCK .CZ "DSCK"
|
||||||
FD.T.SSOCK .CZ "SSOCK"
|
FD.T.SSOCK .CZ "SSCK"
|
||||||
FD.T.PIPE .CZ "PIPE"
|
FD.T.PIPE .CZ "PIPE"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
|
|
117
BIN/UNAME.S.txt
117
BIN/UNAME.S.txt
|
@ -30,6 +30,7 @@ bKernelVersion .BS 1
|
||||||
bKernelBuild .BS 1
|
bKernelBuild .BS 1
|
||||||
bKernelMode .BS 1
|
bKernelMode .BS 1
|
||||||
bKernelClk .BS 1
|
bKernelClk .BS 1
|
||||||
|
bFSID .BS 1
|
||||||
ZS.END .ED
|
ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
|
@ -71,6 +72,8 @@ L.KERNEL.VER .DA KERNEL.VER
|
||||||
L.KERNEL.MODES .DA KERNEL.POLLING
|
L.KERNEL.MODES .DA KERNEL.POLLING
|
||||||
.DA KERNEL.IRQ
|
.DA KERNEL.IRQ
|
||||||
.DA KERNEL.PREEMPT
|
.DA KERNEL.PREEMPT
|
||||||
|
L.FSID .DA FSID.PRODOS
|
||||||
|
.DA FSID.FX
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
|
@ -111,6 +114,7 @@ CS.RUN ldy #S.PS.ARGC
|
||||||
sta bMachineType
|
sta bMachineType
|
||||||
sta bCPUType
|
sta bCPUType
|
||||||
sta bCPUSpeed
|
sta bCPUSpeed
|
||||||
|
sta bFSID
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.PRINT bit bHostName
|
CS.RUN.PRINT bit bHostName
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -129,22 +133,12 @@ CS.RUN.PRINT bit bHostName
|
||||||
.2 bit bCPUType
|
.2 bit bCPUType
|
||||||
bpl .3
|
bpl .3
|
||||||
|
|
||||||
lda A2osX.CPUTYPE
|
jsr CS.RUN.CPUType
|
||||||
|
|
||||||
asl
|
|
||||||
and #$0F
|
|
||||||
tax
|
|
||||||
|
|
||||||
>LDYA L.CPUS-2,x
|
|
||||||
jsr CS.RUN.PRINTYA
|
|
||||||
|
|
||||||
.3 bit bCPUSpeed
|
.3 bit bCPUSpeed
|
||||||
bpl .4
|
bpl .4
|
||||||
|
|
||||||
>PUSHW L.CPU.SPEED
|
jsr CS.RUN.CPUSpeed
|
||||||
>PUSHW A2osX.CPUSPEED
|
|
||||||
>PUSHBI 2
|
|
||||||
jsr CS.RUN.PRINTF
|
|
||||||
|
|
||||||
.4 bit bAltCPU
|
.4 bit bAltCPU
|
||||||
bpl .5
|
bpl .5
|
||||||
|
@ -156,16 +150,13 @@ CS.RUN.PRINT bit bHostName
|
||||||
.5 bit bKernelVersion
|
.5 bit bKernelVersion
|
||||||
bpl .6
|
bpl .6
|
||||||
|
|
||||||
>PUSHW L.KERNEL.VER
|
jsr CS.RUN.KVER
|
||||||
>PUSHW A2osX.KVER
|
|
||||||
>PUSHBI 2
|
|
||||||
jsr CS.RUN.PRINTF
|
|
||||||
|
|
||||||
.6 bit bKernelBuild
|
.6 bit bKernelBuild
|
||||||
bpl .60
|
bpl .7
|
||||||
|
|
||||||
jsr CS.RUN.GetBuild
|
jsr CS.RUN.GetBuild
|
||||||
bcs .60
|
bcs .7
|
||||||
|
|
||||||
>LDYA pData
|
>LDYA pData
|
||||||
jsr CS.RUN.PRINTYA
|
jsr CS.RUN.PRINTYA
|
||||||
|
@ -173,29 +164,28 @@ CS.RUN.PRINT bit bHostName
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.60 bit bKernelMode
|
.7 bit bKernelMode
|
||||||
bpl .7
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
bit A2osX.IRQMode
|
|
||||||
bpl .61
|
|
||||||
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
bit A2osX.F
|
|
||||||
bvc .61
|
|
||||||
|
|
||||||
inx
|
|
||||||
inx
|
|
||||||
|
|
||||||
.61 >LDYA L.KERNEL.MODES,x
|
|
||||||
jsr CS.RUN.PRINTYA
|
|
||||||
|
|
||||||
.7 bit bKernelClk
|
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
|
jsr CS.RUN.KMode
|
||||||
|
|
||||||
.8 >PUSHW L.MSG.CRLF
|
.8 bit bKernelClk
|
||||||
|
bpl .9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.9 bit bFSID
|
||||||
|
bpl .10
|
||||||
|
|
||||||
|
jsr CS.RUN.FSID
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.10 >PUSHW L.MSG.CRLF
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
@ -291,6 +281,49 @@ CS.RUN.TYPESUBT lda A2osX.HWType
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CS.RUN.FSID ldx #0
|
||||||
|
bit A2osX.FSID
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
|
||||||
|
.1 >LDYA L.FSID,x
|
||||||
|
jmp CS.RUN.PRINTYA
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.KVER >PUSHW L.KERNEL.VER
|
||||||
|
>PUSHW A2osX.KVER
|
||||||
|
>PUSHBI 2
|
||||||
|
jmp CS.RUN.PRINTF
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.KMode ldx #0
|
||||||
|
bit A2osX.IRQMode
|
||||||
|
bpl .1
|
||||||
|
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
bit A2osX.F
|
||||||
|
bvc .1
|
||||||
|
|
||||||
|
inx
|
||||||
|
inx
|
||||||
|
|
||||||
|
.1 >LDYA L.KERNEL.MODES,x
|
||||||
|
jmp CS.RUN.PRINTYA
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.CPUSpeed >PUSHW L.CPU.SPEED
|
||||||
|
>PUSHW A2osX.CPUSPEED
|
||||||
|
>PUSHBI 2
|
||||||
|
jmp CS.RUN.PRINTF
|
||||||
|
*--------------------------------------
|
||||||
|
CS.RUN.CPUType lda A2osX.CPUTYPE
|
||||||
|
|
||||||
|
asl
|
||||||
|
and #$0F
|
||||||
|
tax
|
||||||
|
|
||||||
|
>LDYA L.CPUS-2,x
|
||||||
|
*--------------------------------------
|
||||||
CS.RUN.PRINTYA >PUSHYA
|
CS.RUN.PRINTYA >PUSHYA
|
||||||
>PUSHBI 0
|
>PUSHBI 0
|
||||||
|
|
||||||
|
@ -333,7 +366,7 @@ CS.RUN.CheckOpt ldy #1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
OptionList .AS "HhMmCcSsAaVvBbKkZz"
|
OptionList .AS "HhMmCcSsAaVvBbKkZzXx"
|
||||||
OptionVars .DA #bHostName,#bHostName
|
OptionVars .DA #bHostName,#bHostName
|
||||||
.DA #bMachineType,#bMachineType
|
.DA #bMachineType,#bMachineType
|
||||||
.DA #bCPUType,#bCPUType
|
.DA #bCPUType,#bCPUType
|
||||||
|
@ -343,6 +376,7 @@ OptionVars .DA #bHostName,#bHostName
|
||||||
.DA #bKernelBuild,#bKernelBuild
|
.DA #bKernelBuild,#bKernelBuild
|
||||||
.DA #bKernelMode,#bKernelMode
|
.DA #bKernelMode,#bKernelMode
|
||||||
.DA #bKernelClk,#bKernelClk
|
.DA #bKernelClk,#bKernelClk
|
||||||
|
.DA #bFSID,#bFSID
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MSG.USAGE .CS "Usage : UNAME\r\n"
|
MSG.USAGE .CS "Usage : UNAME\r\n"
|
||||||
.CS " -H : Hostname\r\n"
|
.CS " -H : Hostname\r\n"
|
||||||
|
@ -354,6 +388,7 @@ MSG.USAGE .CS "Usage : UNAME\r\n"
|
||||||
.CS " -B : Kernel Build\r\n"
|
.CS " -B : Kernel Build\r\n"
|
||||||
.CS " -K : Kernel Mode\r\n"
|
.CS " -K : Kernel Mode\r\n"
|
||||||
.CS " -Z : Kernel Timing\r\n"
|
.CS " -Z : Kernel Timing\r\n"
|
||||||
|
.CS " -X : ProDOS | FX"
|
||||||
MSG.CRLF .CZ "\r\n"
|
MSG.CRLF .CZ "\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ETCHOSTNAME .AZ "${ROOT}etc/hostname"
|
ETCHOSTNAME .AZ "${ROOT}etc/hostname"
|
||||||
|
@ -374,6 +409,10 @@ KERNEL.VER .AZ "A2osX_%d.%02d"
|
||||||
KERNEL.POLLING .AZ "Polling_Mode"
|
KERNEL.POLLING .AZ "Polling_Mode"
|
||||||
KERNEL.IRQ .AZ "IRQ_Mode"
|
KERNEL.IRQ .AZ "IRQ_Mode"
|
||||||
KERNEL.PREEMPT .AZ "Preemptive_Mode"
|
KERNEL.PREEMPT .AZ "Preemptive_Mode"
|
||||||
|
KERNEL.50 .AZ "50hz"
|
||||||
|
KERNEL.60 .AZ "60hz"
|
||||||
|
FSID.PRODOS .AZ "ProDOS"
|
||||||
|
FSID.FX .AZ "FX"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
|
16
BIN/WC.S.txt
16
BIN/WC.S.txt
|
@ -65,6 +65,7 @@ CS.START cld
|
||||||
.DA CS.DOEVENT
|
.DA CS.DOEVENT
|
||||||
.DA CS.QUIT
|
.DA CS.QUIT
|
||||||
L.MSG.USAGE .DA MSG.USAGE
|
L.MSG.USAGE .DA MSG.USAGE
|
||||||
|
L.MSG.CRLF .DA MSG.CRLF
|
||||||
L.MSG.ERR .DA MSG.ERR
|
L.MSG.ERR .DA MSG.ERR
|
||||||
L.MSG.LONGTAB .DA MSG.LONGTAB
|
L.MSG.LONGTAB .DA MSG.LONGTAB
|
||||||
L.MSG.LONG .DA MSG.LONG
|
L.MSG.LONG .DA MSG.LONG
|
||||||
|
@ -467,10 +468,12 @@ CS.RUN.PrintFstat
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.11 bit bChar
|
.11 bit bChar
|
||||||
|
bpl .12
|
||||||
|
|
||||||
inx
|
inx
|
||||||
|
|
||||||
.12 cpx #2
|
.12 cpx #2
|
||||||
|
|
||||||
.19 ror bTabbed
|
.19 ror bTabbed
|
||||||
|
|
||||||
bit bWord
|
bit bWord
|
||||||
|
@ -500,8 +503,16 @@ CS.RUN.PrintFstat
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.3 >LDYA ZPRelPath
|
.3 bit bTabbed
|
||||||
|
bpl .4
|
||||||
|
|
||||||
|
>LDYA ZPRelPath
|
||||||
>SYSCALL PutS
|
>SYSCALL PutS
|
||||||
|
rts
|
||||||
|
|
||||||
|
.4 >PUSHW L.MSG.CRLF
|
||||||
|
>PUSHBI 0
|
||||||
|
>SYSCALL PrintF
|
||||||
.9
|
.9
|
||||||
CS.RUN.PrintFstat.RTS
|
CS.RUN.PrintFstat.RTS
|
||||||
rts
|
rts
|
||||||
|
@ -606,7 +617,8 @@ MSG.USAGE .CS "Usage : WC File(s) (*,? wildcards allowed)\r\n"
|
||||||
.CS " -R : Recurse subdirectories\r\n"
|
.CS " -R : Recurse subdirectories\r\n"
|
||||||
.CS " -M : Print the CHAR counts\r\n"
|
.CS " -M : Print the CHAR counts\r\n"
|
||||||
.CS " -L : Print the LINE counts\r\n"
|
.CS " -L : Print the LINE counts\r\n"
|
||||||
.CZ " -W : Print the WORD counts\r\n"
|
.CS " -W : Print the WORD counts"
|
||||||
|
MSG.CRLF .CZ "\r\n"
|
||||||
MSG.ERR .CZ "[%h]\r\n"
|
MSG.ERR .CZ "[%h]\r\n"
|
||||||
MSG.LONG .CZ "%L"
|
MSG.LONG .CZ "%L"
|
||||||
MSG.LONGTAB .CZ "%10L "
|
MSG.LONGTAB .CZ "%10L "
|
||||||
|
|
|
@ -17,6 +17,7 @@ ZS.START
|
||||||
SessionID .BS 1
|
SessionID .BS 1
|
||||||
hSession .BS 1
|
hSession .BS 1
|
||||||
ZPSessionPtr .BS 2
|
ZPSessionPtr .BS 2
|
||||||
|
ZPFDPtr .BS 2
|
||||||
ZS.END .ED
|
ZS.END .ED
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
|
@ -81,12 +82,9 @@ CS.RUN >LDYA L.MSG0
|
||||||
adc /S.SESSION.NAME
|
adc /S.SESSION.NAME
|
||||||
>PUSHYA 2 bytes NAME
|
>PUSHYA 2 bytes NAME
|
||||||
|
|
||||||
ldx SessionID
|
jsr CS.RUN.GetDevName 3 bytes hFD DEV
|
||||||
lda S.Table.hFile-1,x
|
|
||||||
jsr CS.RUN.GetDevName
|
|
||||||
>PUSHYA 2 bytes DEV
|
|
||||||
|
|
||||||
>PUSHBI 9 total = 9 ... bytes
|
>PUSHBI 10 total = 10 ... bytes
|
||||||
|
|
||||||
>SYSCALL PrintF
|
>SYSCALL PrintF
|
||||||
|
|
||||||
|
@ -96,34 +94,36 @@ CS.RUN >LDYA L.MSG0
|
||||||
.7 inc SessionID
|
.7 inc SessionID
|
||||||
ldx SessionID
|
ldx SessionID
|
||||||
cpx #K.USR.MAX+1
|
cpx #K.USR.MAX+1
|
||||||
beq .8
|
bcc .1
|
||||||
|
|
||||||
jmp .1
|
|
||||||
|
|
||||||
.8 lda #0 tell TSKMGR that all done ok, but
|
.8 lda #0 tell TSKMGR that all done ok, but
|
||||||
sec we do not want to stay in memory
|
sec we do not want to stay in memory
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.GetDevName
|
CS.RUN.GetDevName
|
||||||
|
lda S.Table.hFile-1,x
|
||||||
|
>PUSHA
|
||||||
tax
|
tax
|
||||||
lda hFDs.hName-1,x
|
lda hFDs.hName-1,x
|
||||||
bne .8
|
bne .1
|
||||||
|
|
||||||
lda hFDs-1,x
|
lda hFDs-1,x
|
||||||
>SYSCALL GetMemPtr
|
>SYSCALL GetMemPtr
|
||||||
|
>STYA ZPFDPtr
|
||||||
pha
|
|
||||||
tya
|
lda ZPFDPtr
|
||||||
clc
|
clc
|
||||||
adc #S.FD.DEV
|
adc #S.FD.DEV
|
||||||
tay
|
tay
|
||||||
|
lda ZPFDPtr+1
|
||||||
pla
|
|
||||||
adc /S.FD.DEV
|
adc /S.FD.DEV
|
||||||
* clc
|
>PUSHYA
|
||||||
rts
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 >SYSCALL GetMemPtr
|
||||||
|
>PUSHYA
|
||||||
|
|
||||||
.8 >SYSCALL GetMemPtr
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.EVENT sec
|
CS.EVENT sec
|
||||||
|
@ -133,8 +133,8 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG0 .CZ "SID hSD Privilege UID GID Name Dev"
|
MSG0 .CZ "SID hSD Privilege UID GID Name hFD Dev"
|
||||||
MSG1 .CZ "%3d $%0h %b %3d %3d %16s %s\r\n"
|
MSG1 .CZ "%3d %3d %b %3d %3d %16s %3d %s\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
|
|
@ -23,7 +23,7 @@ NEW
|
||||||
.INB inc/a2osx.i
|
.INB inc/a2osx.i
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STAR .EQ '*'
|
STAR .EQ '*'
|
||||||
BLANK .EQ '_'
|
BLANK .EQ ' '
|
||||||
MAX .EQ 30
|
MAX .EQ 30
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Zero Page Segment, up to 32 bytes
|
* Zero Page Segment, up to 32 bytes
|
||||||
|
@ -113,10 +113,10 @@ CS.QUIT clc ; nothing to do on exit except clear car
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.Tree lda bSize
|
CS.RUN.Tree lda bSize
|
||||||
cmp #3 ; did they specify a size of 2?
|
cmp #3 ; did they specify a size of 2?
|
||||||
bcs CS.RUN.Start ; if not, go normal tree drawing
|
bcs CS.RUN.Start ; CC if < 3 !!! if not, go normal tree drawing
|
||||||
|
|
||||||
cmp #2 ; did they specify a size of 2?
|
cmp #2 ; did they specify a size of 2?
|
||||||
bcc CS.RUN.Sapling
|
bcc CS.RUN.Sapling ; CC if < 2 !!!
|
||||||
|
|
||||||
lda #'Y'
|
lda #'Y'
|
||||||
>SYSCALL PutChar
|
>SYSCALL PutChar
|
||||||
|
@ -137,7 +137,7 @@ CS.RUN.Start lda #2 ; start from row 2
|
||||||
jsr CS.RUN.Stump ; display a stump first since same as top of tree
|
jsr CS.RUN.Stump ; display a stump first since same as top of tree
|
||||||
|
|
||||||
CS.RUN.Blanks lda #MAX ; calculate number of blanks to tab
|
CS.RUN.Blanks lda #MAX ; calculate number of blanks to tab
|
||||||
sec
|
clc
|
||||||
sbc ROW
|
sbc ROW
|
||||||
sbc MARGIN
|
sbc MARGIN
|
||||||
tax ; put into x register
|
tax ; put into x register
|
||||||
|
@ -147,7 +147,7 @@ CS.RUN.Blanks lda #MAX ; calculate number of blanks to tab
|
||||||
CS.RUN.Stars lda ROW ; calculate number of stars to display
|
CS.RUN.Stars lda ROW ; calculate number of stars to display
|
||||||
asl ; ASL not ROL !!!
|
asl ; ASL not ROL !!!
|
||||||
tax ; put into x register and -2
|
tax ; put into x register and -2
|
||||||
dex
|
* dex ; -1 !!! not -2
|
||||||
dex
|
dex
|
||||||
lda #STAR ; load star character
|
lda #STAR ; load star character
|
||||||
jsr CS.RUN.Disp ; display ́x ́ stars
|
jsr CS.RUN.Disp ; display ́x ́ stars
|
||||||
|
|
Loading…
Reference in New Issue