bugfix: DU, EDIT, LSDEV, LSOF, WC, WHO, XMASTREE

Enh : UNAME
This commit is contained in:
burniouf 2022-12-23 17:50:50 +01:00
parent 7aa3860a58
commit f7681deebe
24 changed files with 575 additions and 440 deletions

Binary file not shown.

Binary file not shown.

View File

@ -4,7 +4,7 @@ NEW
CODE.Init stz ZPCCConst
stz ZPCCConst+1
stz bInitCode
>STZ.G CC.bInitCode
>LDYAI PCC.FH.CS
>STYA ZPCCCode

View File

@ -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
*--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
*--------------------------------------

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 "

View File

@ -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

View File

@ -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