mirror of https://github.com/A2osX/A2osX.git
Kernel 0.9.1 : Code reorganization & move to CSTR (PS switcher, LS, IRQ & VBL)
This commit is contained in:
parent
38c8649e23
commit
c85f3c62c4
Binary file not shown.
Binary file not shown.
98
BIN/LS.S.txt
98
BIN/LS.S.txt
|
@ -29,9 +29,10 @@ CS.START cld
|
|||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START Code Length To Relocate
|
||||
.DA DS.END-DS.START Data Segment to Allocate
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #16 SS
|
||||
.DA #8 ZP
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
@ -47,20 +48,15 @@ L.MSG.DIREXT .DA MSG.DIREXT
|
|||
L.MSG.FILE .DA MSG.FILE
|
||||
L.MSG.FILEEXT .DA MSG.FILEEXT
|
||||
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
|
||||
L.STAT .DA STAT
|
||||
L.TIME.Format .DA TIME.Format
|
||||
L.TIME.Create .DA TIME.Create
|
||||
L.TIME.Mod .DA TIME.Mod
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >SYSCALL GetArgC
|
||||
sta ArgCount
|
||||
|
||||
.1 dec ArgCount
|
||||
beq .5
|
||||
CS.INIT ldy #S.PS.ARGC
|
||||
lda (pPs),y
|
||||
>STA.G ArgCount
|
||||
beq .7
|
||||
|
||||
lda ArgCount
|
||||
>SYSCALL GetArg.A
|
||||
.1 >SYSCALL GetArg.A
|
||||
>STYA ZPPtr1
|
||||
|
||||
lda (ZPPtr1)
|
||||
|
@ -89,15 +85,18 @@ CS.INIT >SYSCALL GetArgC
|
|||
.3 ldy OptionVars-1,x
|
||||
lda #$80
|
||||
sta (pData),y
|
||||
bra .1
|
||||
bra .7
|
||||
|
||||
.4 >LDYA ZPPtr1
|
||||
jsr InitSrcDirYA
|
||||
bcs .9
|
||||
|
||||
bra .1 scan for any other args
|
||||
>LDA.G ArgCount
|
||||
dec
|
||||
sta (pData),y
|
||||
bne .1 scan for any other args
|
||||
|
||||
.5 ldy #index
|
||||
.7 ldy #index
|
||||
lda (pData),y
|
||||
bne .8
|
||||
|
||||
|
@ -217,17 +216,14 @@ CS.RUN.DEV ldy #bLong
|
|||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN.DIR ldy #bAllmostAll
|
||||
lda (pData),y
|
||||
CS.RUN.DIR >LDA.G bAllmostAll
|
||||
bpl .10
|
||||
|
||||
ldy #1
|
||||
lda (ZPFileName),y
|
||||
lda (ZPFileName)
|
||||
cmp #'.'
|
||||
beq .5
|
||||
|
||||
.10 ldy #bLong
|
||||
lda (pData),y
|
||||
.10 >LDA.G bLong
|
||||
bmi .4
|
||||
|
||||
>PUSHW ZPFileName
|
||||
|
@ -235,19 +231,19 @@ CS.RUN.DIR ldy #bAllmostAll
|
|||
>SYSCALL PrintF.YA
|
||||
bcs .9
|
||||
|
||||
lda #80/MAX.COL-2
|
||||
sec
|
||||
sbc (ZPFileName)
|
||||
beq .2
|
||||
tax
|
||||
ldy #0
|
||||
|
||||
.1 lda #' '
|
||||
phx
|
||||
.1 lda (ZPFileName),y
|
||||
beq .11
|
||||
|
||||
.11 lda #' '
|
||||
phy
|
||||
>SYSCALL PutChar.A
|
||||
plx
|
||||
ply
|
||||
bcs .9
|
||||
dex
|
||||
bne .1
|
||||
iny
|
||||
cpy #16
|
||||
bne .11
|
||||
|
||||
.2 jsr CS.RUN.UpdateColCnt
|
||||
bcc .5
|
||||
|
@ -271,8 +267,7 @@ CS.RUN.DIR ldy #bAllmostAll
|
|||
lda (pData),y
|
||||
bpl .8
|
||||
|
||||
ldy #1
|
||||
lda (ZPFileName),y
|
||||
lda (ZPFileName)
|
||||
cmp #'.'
|
||||
beq .8
|
||||
|
||||
|
@ -354,7 +349,8 @@ CS.RUN.PUSHEXTRA
|
|||
lda (ZPFileStat),y
|
||||
beq .1 Month=0.....invalid date/time
|
||||
|
||||
>PUSHW L.TIME.Mod
|
||||
>LEA.G TIME.Mod
|
||||
>PUSHYA
|
||||
>PUSHW L.TIME.Format
|
||||
lda ZPFileStat
|
||||
clc
|
||||
|
@ -369,7 +365,8 @@ CS.RUN.PUSHEXTRA
|
|||
lda (ZPFileStat),y
|
||||
beq .2 Month=0.....invalid date/time
|
||||
|
||||
>PUSHW L.TIME.Create
|
||||
>LEA.G TIME.Create
|
||||
>PUSHYA
|
||||
>PUSHW L.TIME.Format
|
||||
lda ZPFileStat
|
||||
clc
|
||||
|
@ -380,8 +377,10 @@ CS.RUN.PUSHEXTRA
|
|||
>PUSHYA
|
||||
>SYSCALL StrFTime
|
||||
|
||||
.2 >PUSHW L.TIME.Mod ModTime
|
||||
>PUSHW L.TIME.Create Create Time
|
||||
.2 >LEA.G TIME.Mod
|
||||
>PUSHYA
|
||||
>LEA.G TIME.Create
|
||||
>PUSHYA
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN.UpdateColCnt
|
||||
|
@ -472,12 +471,12 @@ CS.END
|
|||
OptionList >PSTR "ALRalr"
|
||||
OptionVars .DA #bAllmostAll,#bLong,#bRecurse,#bAllmostAll,#bLong,#bRecurse
|
||||
*--------------------------------------
|
||||
MSG.DEVEXT >CSTR "%15S S%d,D%d Blocks Used:%5D,Total:%5D\r\n"
|
||||
MSG.DIR >CSTR "%S/"
|
||||
MSG.ENTER >CSTR "Directory:%S\r\n"
|
||||
MSG.DIREXT >CSTR "%16S <dir> %a %s %s\r\n"
|
||||
MSG.FILE >CSTR "%19S"
|
||||
MSG.FILEEXT >CSTR "%15S %S $%H %a %10u %s %s\r\n"
|
||||
MSG.DEVEXT >CSTR "%15s S%d,D%d Blocks Used:%5D Total:%5D\r\n"
|
||||
MSG.DIR >CSTR "%s/"
|
||||
MSG.ENTER >CSTR "Directory:%s\r\n"
|
||||
MSG.DIREXT >CSTR "%16s <dir> %a %s %s\r\n"
|
||||
MSG.FILE >CSTR "%19s"
|
||||
MSG.FILEEXT >CSTR "%15s %S $%H %a %10u %s %s\r\n"
|
||||
*--------------------------------------
|
||||
PRODOS.FT.HEX .HS 0406FAFCFDE2FF
|
||||
PRODOS.FT.TXT >PSTR "TXT"
|
||||
|
@ -490,16 +489,19 @@ PRODOS.FT.TXT >PSTR "TXT"
|
|||
PRODOS.FT.DFLT >PSTR "$ "
|
||||
TIME.NODATE >CSTR " <No-Date> "
|
||||
TIME.Format >CSTR "%d-%b-%y %H:%M"
|
||||
TIME.Create .BS 20
|
||||
TIME.Mod .BS 20
|
||||
HEXDIGIT .AS '0123456789ABCDEF'
|
||||
STAT .BS S.STAT
|
||||
ArgCount .BS 1
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
ArgCount .BS 1
|
||||
Index .BS 1
|
||||
STAT .BS S.STAT
|
||||
TIME.Create .BS 20
|
||||
TIME.Mod .BS 20
|
||||
|
||||
hFullPath .BS 1
|
||||
bExists .BS 1
|
||||
hDIRs .BS X.MAX.RECURSE
|
||||
hDIRENTs .BS X.MAX.RECURSE
|
||||
oDIRENTs .BS X.MAX.RECURSE*2
|
||||
|
|
|
@ -22,9 +22,10 @@ CS.START cld
|
|||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START Code Length To Relocate
|
||||
.DA 0 Data Segment to Allocate
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #16 SS
|
||||
.DA #4 ZP
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
@ -37,7 +38,6 @@ L.MSG0 .DA MSG0
|
|||
L.MSG1 .DA MSG1
|
||||
L.MSG2.C .DA MSG2.C
|
||||
L.MSG2.B .DA MSG2.B
|
||||
L.DEV.SIZE .DA DEV.SIZE
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT clc
|
||||
|
@ -46,11 +46,9 @@ CS.INIT clc
|
|||
CS.RUN >LDYA L.MSG0
|
||||
>SYSCALL PrintF.YA
|
||||
|
||||
stz DEV.ID
|
||||
>LDA.G DEV.ID
|
||||
|
||||
lda DEV.ID
|
||||
|
||||
.1 >SYSCALL GetDevByIDA
|
||||
.1 >SYSCALL GetDevByID.A
|
||||
bcs .7
|
||||
|
||||
>STYA ZPPTR1
|
||||
|
@ -59,10 +57,10 @@ CS.RUN >LDYA L.MSG0
|
|||
|
||||
bcs .9
|
||||
|
||||
lda DEV.ID
|
||||
>SYSCALL GetDevByIDA
|
||||
>LDA.G DEV.ID
|
||||
>SYSCALL GetDevByID.A
|
||||
>STYA pDev
|
||||
|
||||
|
||||
ldx #DEVMGR.STATUS
|
||||
jsr pDevJmp
|
||||
bcs .6
|
||||
|
@ -77,8 +75,9 @@ CS.RUN >LDYA L.MSG0
|
|||
lda #10
|
||||
>SYSCALL PutChar.A
|
||||
|
||||
.7 inc DEV.ID
|
||||
lda DEV.ID
|
||||
.7 >LDA.G DEV.ID
|
||||
inc
|
||||
sta (pData),y
|
||||
cmp #K.DEV.MAX
|
||||
bne .1
|
||||
|
||||
|
@ -106,28 +105,51 @@ DumpHeader ldy #S.DEV.DRV.JMP+1
|
|||
>PUSHB (ZPPTR1),y
|
||||
|
||||
ldy #S.DEV.S
|
||||
>PUSHB (ZPPTR1),y
|
||||
sta DEV.S
|
||||
lda (ZPPTR1),y
|
||||
>STA.G DEV.S
|
||||
|
||||
>PUSHB DEV.ID
|
||||
ldy #DEV.SFLAGS+7
|
||||
ldx #7
|
||||
|
||||
.1 lsr
|
||||
pha
|
||||
lda #'-'
|
||||
bcc .2
|
||||
lda MSG.SFLAGS,x
|
||||
|
||||
.2 sta (pData),y
|
||||
pla
|
||||
dey
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
>LEA.G DEV.SFLAGS
|
||||
>PUSHYA
|
||||
|
||||
>LDA.G DEV.ID
|
||||
>PUSHA
|
||||
|
||||
>LDYA L.MSG1
|
||||
>SYSCALL PrintF.YA
|
||||
rts
|
||||
*--------------------------------------
|
||||
DumpStatus bit DEV.S
|
||||
DumpStatus >LDA.G DEV.S
|
||||
bpl .1
|
||||
|
||||
ldy #S.DEVSTAT.SIZE
|
||||
lda (ZPPTR2),y
|
||||
sta DEV.SIZE
|
||||
iny
|
||||
>STA.G DEV.SIZE
|
||||
|
||||
ldy #S.DEVSTAT.SIZE+1
|
||||
lda (ZPPTR2),y
|
||||
sta DEV.SIZE+1
|
||||
iny
|
||||
>STA.G DEV.SIZE+1
|
||||
|
||||
ldy #S.DEVSTAT.SIZE+2
|
||||
lda (ZPPTR2),y
|
||||
sta DEV.SIZE+2
|
||||
>PUSHW L.DEV.SIZE
|
||||
>STA.G DEV.SIZE+2
|
||||
|
||||
>LEA.G DEV.SIZE
|
||||
>PUSHYA
|
||||
|
||||
.1 ldy #S.DEVSTAT.VERSION+1
|
||||
>PUSHB (ZPPTR2),y
|
||||
|
@ -148,9 +170,9 @@ DumpStatus bit DEV.S
|
|||
dey
|
||||
>PUSHB (ZPPTR2),y
|
||||
|
||||
bit DEV.S
|
||||
>LDA.G DEV.S
|
||||
bpl .2
|
||||
|
||||
|
||||
>LDYA L.MSG2.B
|
||||
bra .3
|
||||
.2 >LDYA L.MSG2.C
|
||||
|
@ -166,13 +188,21 @@ CS.QUIT clc
|
|||
*--------------------------------------
|
||||
CS.END
|
||||
MSG0 >CSTR "ID Status Flags Name Addr. Typ/Sub IDString Version Size (BLK)\r\n"
|
||||
MSG1 >CSTR "%03d %b %b %4S $%H "
|
||||
MSG1 >CSTR "%03d %s %b %4s $%H "
|
||||
MSG2.B >CSTR "$%h/$%h %16S %03d.%03d %10u"
|
||||
MSG2.C >CSTR "$%h/$%h %16S %03d.%03d n/a"
|
||||
MSG.SFLAGS .AS "BWRLNEIO"
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
DEV.ID .BS 1
|
||||
DEV.S .BS 1
|
||||
DEV.SIZE .BS 4
|
||||
DEV.SFLAGS .BS 9
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/BIN/LSDEV.S
|
||||
ASM
|
||||
|
|
30
BIN/PS.S.txt
30
BIN/PS.S.txt
|
@ -20,9 +20,10 @@ CS.START cld
|
|||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START Code Length To Relocate
|
||||
.DA 0 Data Segment to Allocate
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #16 SS
|
||||
.DA #2 ZP
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
|
@ -45,17 +46,18 @@ CS.RUN >LDYA pData
|
|||
>SYSCALL PrintF.YA
|
||||
|
||||
lda (pData) PS.COUNT
|
||||
beq .8
|
||||
beq .8
|
||||
|
||||
.1 >LDA.G PS.Index
|
||||
inc
|
||||
sta (pData),y
|
||||
|
||||
.1 dec
|
||||
asl
|
||||
tay
|
||||
|
||||
tay
|
||||
lda (pData),y PID
|
||||
|
||||
>SYSCALL GetMemPtr.A
|
||||
>STYA ZPPTR1
|
||||
|
||||
|
||||
ldy #S.PS.hARGS
|
||||
lda (ZPPTR1),y
|
||||
>SYSCALL GetMemPtr.A
|
||||
|
@ -73,13 +75,6 @@ CS.RUN >LDYA pData
|
|||
>PUSHA PID
|
||||
>LDYA L.MSG1
|
||||
>SYSCALL PrintF.YA
|
||||
|
||||
.4 lda ZPPTR1
|
||||
clc
|
||||
adc #S.PS
|
||||
sta ZPPTR1
|
||||
bcc .5
|
||||
inc ZPPTR1+1
|
||||
|
||||
.7 lda (pData) PS.COUNT
|
||||
dec
|
||||
|
@ -104,7 +99,8 @@ MSG1 >CSTR "%03d %b %03d %S\r\n"
|
|||
.OR 0
|
||||
DS.START
|
||||
PS.COUNT .BS 1
|
||||
PS.DATA .BS K.PS.MAX+K.PS.MAX
|
||||
PS.DATA .BS K.PS.MAX
|
||||
PS.Index .BS 1
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
|
|
|
@ -17,27 +17,33 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
|
|||
bcc .10
|
||||
rts
|
||||
|
||||
.10 stx .90+1
|
||||
>STYA ZPPtr1
|
||||
.10 >STYA ZPPtr1
|
||||
txa
|
||||
>STA.G hFullPath
|
||||
|
||||
lda (ZPPtr1)
|
||||
cmp #1
|
||||
ldy #1
|
||||
lda (ZPPtr1),y
|
||||
beq .5 we have '/'
|
||||
|
||||
>PUSHW L.STAT
|
||||
>LEA.G STAT
|
||||
>PUSHYA
|
||||
>PUSHW ZPPtr1
|
||||
>SYSCALL Stat
|
||||
ror
|
||||
sta .30+1 save file exists for later.....
|
||||
>STA.G bExists save file exists for later.....
|
||||
bmi .1 File/DIR does not exists, go extract pattern
|
||||
|
||||
lda STAT+S.STAT.P.TYPE
|
||||
>LDA.G STAT+S.STAT.P.TYPE
|
||||
cmp #$0f
|
||||
beq .5 TYPE=DIR, do not extract wildcard
|
||||
|
||||
.1 lda (ZPPtr1) Get Src Path Len
|
||||
tay
|
||||
ldy #0
|
||||
|
||||
.1 iny
|
||||
lda (ZPPtr1),y Get Src Path Len
|
||||
bne .1
|
||||
|
||||
dey
|
||||
ldx #0 Init Wildcard count
|
||||
|
||||
.2 lda (ZPPtr1),y search backward for a /
|
||||
|
@ -53,36 +59,29 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
|
|||
bne .2
|
||||
|
||||
.3 tya
|
||||
cmp (ZPPtr1)
|
||||
beq .5 Make sure at least one char
|
||||
* cmp (ZPPtr1)
|
||||
* beq .5 Make sure at least one char
|
||||
|
||||
txa
|
||||
bne .31 we have wc, go extract....
|
||||
bne .4 we have wc, go extract....
|
||||
|
||||
.30 lda #$ff no wc, remember if file exists?
|
||||
bmi .91 no, file not found....
|
||||
|
||||
.31 ldx #0
|
||||
phy save / pos to trunk string later
|
||||
.4 tya save / pos to trunk string later
|
||||
>STA.G index
|
||||
|
||||
.4 iny
|
||||
inx
|
||||
lda (ZPPtr1),y
|
||||
sta UsrBuf256,x
|
||||
tya
|
||||
cmp (ZPPtr1)
|
||||
bne .4
|
||||
|
||||
pla get back / pos
|
||||
sta (ZPPtr1) trunk it for Opendir
|
||||
stx UsrBuf256 set pattern len
|
||||
|
||||
>LDYAI UsrBuf256
|
||||
>SYSCALL NewPstrYA
|
||||
clc
|
||||
adc ZPPtr1
|
||||
tay
|
||||
lda ZPPtr1+1
|
||||
adc #0
|
||||
|
||||
>SYSCALL Newstr.YA
|
||||
bcs .9
|
||||
txa
|
||||
ldy #hFilter
|
||||
sta (pData),y
|
||||
>STA.G hFilter
|
||||
|
||||
.5 >LDYAI 256
|
||||
>SYSCALL GetMem.YA Get a 256 buffer to store BasePath
|
||||
|
@ -90,29 +89,27 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
|
|||
|
||||
>STYA ZPPtr2
|
||||
txa
|
||||
ldy #hSrcBasePath
|
||||
sta (pData),y
|
||||
>STA.G hSrcBasePath
|
||||
|
||||
lda (ZPPtr1)
|
||||
pha
|
||||
>LDA.G index
|
||||
tay
|
||||
|
||||
.6 lda (ZPPtr1),y
|
||||
sta (ZPPtr2),y
|
||||
dey
|
||||
bne .6
|
||||
|
||||
ply
|
||||
lda #'/'
|
||||
cmp (ZPPtr1),y
|
||||
beq .7
|
||||
|
||||
beq .51
|
||||
iny
|
||||
sta (ZPPtr2),y
|
||||
sta (ZPPtr1),y
|
||||
|
||||
.7 tya
|
||||
sta (ZPPtr2)
|
||||
|
||||
.51 lda #0
|
||||
sta (ZPPtr1),y Trunk before filter string
|
||||
|
||||
ldy #$ff
|
||||
|
||||
.6 iny
|
||||
lda (ZPPtr1),y
|
||||
sta (ZPPtr2),y
|
||||
bne .6
|
||||
|
||||
>LDYA ZPPtr2
|
||||
>SYSCALL OpenDir.YA
|
||||
|
||||
|
@ -132,7 +129,7 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
|
|||
|
||||
.91 lda #MLI.ERR.FNOTFND
|
||||
.9 pha
|
||||
.90 lda #$ff self modified
|
||||
.90 >LDA.G hFullPath
|
||||
>SYSCALL FreeMem.A
|
||||
pla
|
||||
sec
|
||||
|
@ -146,12 +143,13 @@ InitDstDirYA >SYSCALL GetFullPath.YA
|
|||
stx .90+1
|
||||
>STYA ZPPtr1
|
||||
|
||||
>PUSHW L.STAT
|
||||
>LEA.G STAT
|
||||
>PUSHYA
|
||||
>PUSHW ZPPtr1
|
||||
>SYSCALL Stat
|
||||
bcs .1 File/DIR does not exists, go extract DstFileName
|
||||
|
||||
lda STAT+S.STAT.P.TYPE
|
||||
>LDA.G STAT+S.STAT.P.TYPE
|
||||
cmp #$0f
|
||||
beq .5 Dst is a directory...no destfilename
|
||||
|
||||
|
@ -236,8 +234,12 @@ InitDstDirYA >SYSCALL GetFullPath.YA
|
|||
GetNextEntry jsr GetEntry
|
||||
bcs .9
|
||||
|
||||
lda (ZPFileName) Save actual file len for setting up
|
||||
tax new offset later
|
||||
ldy #0
|
||||
|
||||
.10 iny
|
||||
lda (ZPFileName),y Save actual file len for setting up
|
||||
bne .10
|
||||
phy new offset later
|
||||
|
||||
lda ZPFileStat
|
||||
clc
|
||||
|
@ -265,7 +267,7 @@ GetNextEntry jsr GetEntry
|
|||
adc #oDIRENTs-1
|
||||
tay
|
||||
|
||||
txa Get back previous file len
|
||||
pla Get back previous file len
|
||||
|
||||
sec
|
||||
adc (pData),y
|
||||
|
@ -290,17 +292,26 @@ GetNextEntry jsr GetEntry
|
|||
clc
|
||||
rts
|
||||
|
||||
.1 jsr GetEntry.ReadDir
|
||||
.1 pla
|
||||
jsr GetEntry.ReadDir
|
||||
bcs .9
|
||||
lda (ZPFileName)
|
||||
beq .99
|
||||
|
||||
ldy #0
|
||||
|
||||
.2 iny
|
||||
lda (ZPFileName),y
|
||||
bne .2
|
||||
tya
|
||||
|
||||
sec
|
||||
adc ZPFileName
|
||||
sta ZPFileStat
|
||||
lda ZPFileName+1
|
||||
adc #0
|
||||
sta ZPFileStat+1
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
|
||||
|
@ -451,7 +462,7 @@ EnterSubDirYA.1 lda (pData),y
|
|||
|
||||
>PUSHW ZPPtr2
|
||||
>PUSHW ZPPtr1
|
||||
>SYSCALL PStrCat
|
||||
>SYSCALL StrCat
|
||||
|
||||
lda (ZPPtr1)
|
||||
inc
|
||||
|
@ -541,3 +552,5 @@ BasePath..1 lda (pData),y
|
|||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/BIN/X.FILEENUM.S
|
||||
LOAD /A2OSX.SRC/BIN/LS.S
|
||||
ASM
|
||||
|
|
|
@ -372,7 +372,7 @@ S.DEV.BUSID .EQ 6
|
|||
S.DEV.DEVID .EQ 7
|
||||
S.DEV.ROM.JMP .EQ 8 word
|
||||
*
|
||||
S.DEV.NAME .EQ 11 L+4 MAX
|
||||
S.DEV.NAME .EQ 11 4+\0 MAX
|
||||
*
|
||||
S.DEV .EQ 16
|
||||
*----------- Smartport ----------------
|
||||
|
|
27
README.md
27
README.md
|
@ -73,10 +73,7 @@ Several subprojects are now indentified :
|
|||
|
||||
## General Information:
|
||||
|
||||
** Kernel 0.9.1 rewrite in progress **
|
||||
|
||||
(Kernel 0.9 has been archived)
|
||||
It is confined in Aux LC Bank 1 & 2 to leave enough room at $EOOO for Drivers.
|
||||
Kernel API is confined in Aux LC Bank 1 & 2 to leave enough room at $EOOO for Drivers.
|
||||
Network drivers, Mouse, DHGR.DRV can load and fit in Aux LC.
|
||||
Now it's time to make all external BINs use new API, then GUI development will resume.
|
||||
|
||||
|
@ -101,11 +98,11 @@ OApple+1,OApple+2,OApple+3 to switch between screens : Kernel Log, text, DHGR.
|
|||
|
||||
| Name | Status | Comment | K.Ver |
|
||||
| ---- | ------ | ------- | ------|
|
||||
| INSDRV | Working | | 0.9 |
|
||||
| GETTY | Working | | 0.9 |
|
||||
| LOGIN | In Progress | no auth using /etc/passd yet | 0.9 |
|
||||
| SHELL | Working | (See Internal Shell commands) | 0.9 |
|
||||
| KCONFIG | Working | Kernel Configuration Utility | 0.9 |
|
||||
| INSDRV | Working | | 0.9.1 |
|
||||
| GETTY | Working | | 0.9.1 |
|
||||
| LOGIN | In Progress | no auth using /etc/passd yet | 0.9.1 |
|
||||
| SHELL | Working | (See Internal Shell commands) | 0.9.1 |
|
||||
| KCONFIG | Working | Kernel Configuration Utility | 0.9.1 |
|
||||
| ---- | ------ | ------- | ----- |
|
||||
| TCPIP | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.9 |
|
||||
| DHCPCLNT| Working | rewritten to use new Socket API | 0.9 |
|
||||
|
@ -149,7 +146,7 @@ note : '$VAR' does NOT expand Variable
|
|||
|
||||
| Name | Status | Comment | K.Ver |
|
||||
| ---- | ------ | ------- | ----- |
|
||||
| Console.DRV | Working | ANSI support in Progress. | 0.9 |
|
||||
| Console.DRV | Working | ANSI support in Progress. | 0.9.1 |
|
||||
| SSC.DRV | Working | Apple "Super Serial Card" Driver | 0.9 |
|
||||
| SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 0.9 |
|
||||
| PIC.DRV | In Progress | Apple "Parallel Interface Card" Driver, renamed from PPIC.DRV | 0.9 |
|
||||
|
@ -164,9 +161,9 @@ note : '$VAR' does NOT expand Variable
|
|||
## BIN,External Shell commands:
|
||||
| Name | Status | Comment | K.Ver |
|
||||
| ---- | ------ | ------- | ----- |
|
||||
| MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 0.9 |
|
||||
| LSDEV | Working | | 0.9 |
|
||||
| PS | Working | | 0.9 |
|
||||
| MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 0.9.1 |
|
||||
| LSDEV | Working | | 0.9.1 |
|
||||
| PS | Working | | 0.9.1 |
|
||||
| MD | Working | | 0.9 |
|
||||
| LS | Working | -A : Do Not Print . & .. | 0.9 |
|
||||
| | | -L : long listing with size/date... | |
|
||||
|
@ -182,7 +179,7 @@ note : '$VAR' does NOT expand Variable
|
|||
| | | -Q : Quiet | |
|
||||
| | | -R : Recurse subdirectories | |
|
||||
| | | -Y : Dont't Prompt For Override | |
|
||||
| CAT | Working | -A : Show All non printable caracters | 0.9 |
|
||||
| CAT | Working | -A : Show All non printable caracters | 0.9.1 |
|
||||
| | | -N : Number all output lines | |
|
||||
| | | -S : Suppress repeated empty output lines | |
|
||||
| CHTYP | In Progress | -C : Continue On Error | 0.9 |
|
||||
|
@ -207,7 +204,7 @@ note : '$VAR' does NOT expand Variable
|
|||
| Name | Status | Comment | K.Ver |
|
||||
| ---- | ------ | ------- | ----- |
|
||||
| ASM | In Progress | S-C MASM based multi CPU assembler | 0.9 |
|
||||
| MEMDUMP | Working | | 0.9 |
|
||||
| MEMDUMP | Working | | 0.9.1 |
|
||||
| RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.9 |
|
||||
|
||||
## Misc
|
||||
|
|
|
@ -212,6 +212,9 @@ Cmd.Exec.EXT.TXT
|
|||
* BIN : Launch "/PATH/CMD ARGS"
|
||||
*--------------------------------------
|
||||
Cmd.Exec.EXT.BIN
|
||||
lda (ZPPTR2) Some ARGS ?
|
||||
beq .1
|
||||
|
||||
jsr Cmd.Exec.EXT.SEP Add a space....
|
||||
|
||||
>PUSHW ZPPTR2
|
||||
|
|
|
@ -163,7 +163,7 @@ CSH.Run jsr CSH.GetBuf
|
|||
>STA.G bCmdBufexec
|
||||
|
||||
>LDA.G bEcho
|
||||
* beq .80
|
||||
beq .80
|
||||
|
||||
>PUSHW ZPCMDBuf
|
||||
>LDYA L.MSG.ECHO
|
||||
|
|
|
@ -156,7 +156,7 @@ CS.RUN >LDA.G bReadMode READ Command ?
|
|||
jsr CMD.Parse
|
||||
|
||||
>LDA.G CmdBuflen
|
||||
beq .8 Empty line
|
||||
beq .10 Empty line
|
||||
|
||||
jsr HIS.Add
|
||||
|
||||
|
@ -539,7 +539,7 @@ CSHCMDS >PSTR "IF"
|
|||
>PSTR "FLOAT"
|
||||
.HS 00
|
||||
*--------------------------------------
|
||||
MSG.GREETINGS >CSTR "\r\nA2osX-Shell\r\n\r\n"
|
||||
MSG.GREETINGS >CSTR "\r\nA2osX-Shell 0.9.1\r\n\r\n"
|
||||
MSG.PROMPT >CSTR "%s$ "
|
||||
MSG.ECHO >CSTR ">%s\r\n"
|
||||
MSG.ERROR >CSTR "[$%h]:%S.\r\n"
|
||||
|
|
|
@ -514,8 +514,6 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||
lda (ZPPtr1),y
|
||||
sta K.IrqMgrVBL.MRM+1
|
||||
|
||||
bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly
|
||||
|
||||
ldy #SETMOUSE
|
||||
lda (ZPPtr1),y
|
||||
sta .7+1
|
||||
|
@ -525,16 +523,20 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||
ldx ZPPtr1+1 DEVSLOTCn
|
||||
stx .7+2
|
||||
ldy K.IrqMgrVBL.n0
|
||||
|
||||
|
||||
bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly
|
||||
|
||||
.7 jsr $ffff self Modified, CALL SETMOUSE
|
||||
bcs *
|
||||
|
||||
bit RRAMWRAMBNK1 Back To LC Ram
|
||||
bit RRAMWRAMBNK1
|
||||
|
||||
inc K.IrkMgr.VBL set=1 awaiting IrqMgr confirmation
|
||||
|
||||
plp
|
||||
lda #"V"
|
||||
sta SYS.BASL0+37
|
||||
|
||||
>LDYAI MSG.IRQ.VBL
|
||||
>SYSCALL PrintF.YA
|
||||
clc
|
||||
|
@ -674,11 +676,11 @@ DevMgrInit.AddDev
|
|||
|
||||
lda DEV.HEADER+S.DEV.BUSID
|
||||
ora #$30
|
||||
sta DEV.HEADER+S.DEV.NAME+2 SnDy
|
||||
sta DEV.HEADER+S.DEV.NAME+1 SnDy
|
||||
|
||||
lda DEV.HEADER+S.DEV.DEVID
|
||||
ora #$30
|
||||
sta DEV.HEADER+S.DEV.NAME+4 SxDn
|
||||
sta DEV.HEADER+S.DEV.NAME+3 SxDn
|
||||
|
||||
ldy #S.DEV-1
|
||||
|
||||
|
@ -702,7 +704,7 @@ DEV.HEADER clc
|
|||
.BS 1 DEV.ID
|
||||
.BS 2 ROM.JMP
|
||||
.BS 1
|
||||
>PSTR "S1D1" 5 bytes
|
||||
>CSTR "S1D1" 5 bytes
|
||||
*--------------------------------------
|
||||
SmartPort.OFS .HS 010305
|
||||
SmartPort.SIG .HS 200003
|
||||
|
|
|
@ -60,15 +60,16 @@ K.IrkMgr.VBLINT .BS 1
|
|||
* ProDOS IRQ Manager (GP)
|
||||
*--------------------------------------
|
||||
K.IrqHandler lda K.IrkMgr.VBL
|
||||
beq .10 0, totally disabled....
|
||||
|
||||
beq K.IrqHandler.DEV 0, totally disabled....
|
||||
|
||||
K.IrqHandler.VBL
|
||||
jsr K.IrqMgrVBL.MSM SERVEMOUSE
|
||||
bcs .10 Not From Mouse
|
||||
bcs K.IrqHandler.DEV Not From Mouse
|
||||
|
||||
ldx K.IrqMgrVBL.0n
|
||||
lda $778,x
|
||||
and #$08 IRQ was caused by VBL ?
|
||||
beq .10
|
||||
beq K.IrqHandler.DEV
|
||||
|
||||
ldx K.IrqMgrVBL.MRM+2 $Cn
|
||||
ldy K.IrqMgrVBL.n0
|
||||
|
@ -77,13 +78,16 @@ K.IrqHandler lda K.IrkMgr.VBL
|
|||
inc K.IrkMgr.VBLINT
|
||||
|
||||
lda SYS.BASL0+37
|
||||
eor #'V'
|
||||
sta SYS.BASL0+37 Confirm VBL signal valid for EvtMgr
|
||||
eor #$80
|
||||
sta SYS.BASL0+37
|
||||
sec
|
||||
ror K.IrkMgr.VBL Confirm VBL signal valid for EvtMgr
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.10 >LDYAI DevMgr.Table
|
||||
*--------------------------------------
|
||||
K.IrqHandler.DEV
|
||||
>LDYAI DevMgr.Table
|
||||
>STYA $fe
|
||||
|
||||
ldx DevMgr.Count
|
||||
|
|
|
@ -173,12 +173,11 @@ PS.CreateChild ldx #0
|
|||
.9 rts
|
||||
*--------------------------------------
|
||||
PS.CmdLine2Args >STYA ZPPtr1
|
||||
|
||||
ldy #0
|
||||
|
||||
.1 lda (ZPPtr1),y compute strlen in Y,X
|
||||
beq .2
|
||||
cmp #'"' skip "" in computation....
|
||||
cmp #'"' skip " in computation....
|
||||
beq .1
|
||||
iny
|
||||
bne .1 max 255
|
||||
|
@ -227,9 +226,11 @@ PS.CmdLine2Args >STYA ZPPtr1
|
|||
lda #0
|
||||
|
||||
.70 sta (ZPPtr2) yes, set this token len
|
||||
|
||||
.71 inc ZPPtr2
|
||||
bne .72
|
||||
inc ZPPtr2+1
|
||||
|
||||
.72 iny
|
||||
bne .4
|
||||
|
||||
|
@ -358,21 +359,22 @@ PS.DupEnv.A jsr K.GetMemPtr.A
|
|||
*--------------------------------------
|
||||
K.GetPSList.YA >STYA ZPPtr1
|
||||
|
||||
lda CORE.PSCount
|
||||
sta (ZPPtr1)
|
||||
|
||||
ldx #0
|
||||
ldy #1
|
||||
ldy #0
|
||||
|
||||
.1 lda PS.Table.PID,x
|
||||
sta (ZPPtr1),y
|
||||
iny
|
||||
beq .2
|
||||
|
||||
lda PS.Table.hMem,x
|
||||
sta (ZPPtr1),y
|
||||
iny
|
||||
inx
|
||||
sta (ZPPtr1),y
|
||||
|
||||
.2 inx
|
||||
cpx CORE.PSCount
|
||||
bne .1
|
||||
|
||||
.9 tya
|
||||
sta (ZPPtr1)
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
|
|
|
@ -1073,11 +1073,13 @@ PrintF.SS ldy #$00 PSTR
|
|||
.2 lda PADLEN
|
||||
beq .8
|
||||
|
||||
.3 lda PADCHAR
|
||||
.3 cpy PADLEN
|
||||
beq .8
|
||||
|
||||
lda PADCHAR
|
||||
jsr Printf.Cout
|
||||
bcs .9
|
||||
iny
|
||||
cpy PADLEN
|
||||
bne .3
|
||||
|
||||
.8 clc
|
||||
|
|
Loading…
Reference in New Issue