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