Kernel 0.9.1 : Code reorganization & move to CSTR (PS switcher, LS, IRQ & VBL)

This commit is contained in:
Rémy GIBERT 2017-09-21 17:29:45 +02:00
parent 38c8649e23
commit c85f3c62c4
15 changed files with 241 additions and 190 deletions

Binary file not shown.

Binary file not shown.

View File

@ -29,9 +29,10 @@ CS.START cld
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA 0 .DA 0
.DA CS.END-CS.START Code Length To Relocate .DA CS.END-CS.START CS
.DA DS.END-DS.START Data Segment to Allocate .DA DS.END-DS.START DS
.DA 0 .DA #16 SS
.DA #8 ZP
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Relocation Table * Relocation Table
@ -47,20 +48,15 @@ L.MSG.DIREXT .DA MSG.DIREXT
L.MSG.FILE .DA MSG.FILE L.MSG.FILE .DA MSG.FILE
L.MSG.FILEEXT .DA MSG.FILEEXT L.MSG.FILEEXT .DA MSG.FILEEXT
L.PRODOS.FT.TXT .DA PRODOS.FT.TXT L.PRODOS.FT.TXT .DA PRODOS.FT.TXT
L.STAT .DA STAT
L.TIME.Format .DA TIME.Format L.TIME.Format .DA TIME.Format
L.TIME.Create .DA TIME.Create
L.TIME.Mod .DA TIME.Mod
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT >SYSCALL GetArgC CS.INIT ldy #S.PS.ARGC
sta ArgCount lda (pPs),y
>STA.G ArgCount
beq .7
.1 dec ArgCount .1 >SYSCALL GetArg.A
beq .5
lda ArgCount
>SYSCALL GetArg.A
>STYA ZPPtr1 >STYA ZPPtr1
lda (ZPPtr1) lda (ZPPtr1)
@ -89,15 +85,18 @@ CS.INIT >SYSCALL GetArgC
.3 ldy OptionVars-1,x .3 ldy OptionVars-1,x
lda #$80 lda #$80
sta (pData),y sta (pData),y
bra .1 bra .7
.4 >LDYA ZPPtr1 .4 >LDYA ZPPtr1
jsr InitSrcDirYA jsr InitSrcDirYA
bcs .9 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 lda (pData),y
bne .8 bne .8
@ -217,17 +216,14 @@ CS.RUN.DEV ldy #bLong
clc clc
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
CS.RUN.DIR ldy #bAllmostAll CS.RUN.DIR >LDA.G bAllmostAll
lda (pData),y
bpl .10 bpl .10
ldy #1 lda (ZPFileName)
lda (ZPFileName),y
cmp #'.' cmp #'.'
beq .5 beq .5
.10 ldy #bLong .10 >LDA.G bLong
lda (pData),y
bmi .4 bmi .4
>PUSHW ZPFileName >PUSHW ZPFileName
@ -235,19 +231,19 @@ CS.RUN.DIR ldy #bAllmostAll
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
bcs .9 bcs .9
lda #80/MAX.COL-2 ldy #0
sec
sbc (ZPFileName)
beq .2
tax
.1 lda #' ' .1 lda (ZPFileName),y
phx beq .11
.11 lda #' '
phy
>SYSCALL PutChar.A >SYSCALL PutChar.A
plx ply
bcs .9 bcs .9
dex iny
bne .1 cpy #16
bne .11
.2 jsr CS.RUN.UpdateColCnt .2 jsr CS.RUN.UpdateColCnt
bcc .5 bcc .5
@ -271,8 +267,7 @@ CS.RUN.DIR ldy #bAllmostAll
lda (pData),y lda (pData),y
bpl .8 bpl .8
ldy #1 lda (ZPFileName)
lda (ZPFileName),y
cmp #'.' cmp #'.'
beq .8 beq .8
@ -354,7 +349,8 @@ CS.RUN.PUSHEXTRA
lda (ZPFileStat),y lda (ZPFileStat),y
beq .1 Month=0.....invalid date/time beq .1 Month=0.....invalid date/time
>PUSHW L.TIME.Mod >LEA.G TIME.Mod
>PUSHYA
>PUSHW L.TIME.Format >PUSHW L.TIME.Format
lda ZPFileStat lda ZPFileStat
clc clc
@ -369,7 +365,8 @@ CS.RUN.PUSHEXTRA
lda (ZPFileStat),y lda (ZPFileStat),y
beq .2 Month=0.....invalid date/time beq .2 Month=0.....invalid date/time
>PUSHW L.TIME.Create >LEA.G TIME.Create
>PUSHYA
>PUSHW L.TIME.Format >PUSHW L.TIME.Format
lda ZPFileStat lda ZPFileStat
clc clc
@ -380,8 +377,10 @@ CS.RUN.PUSHEXTRA
>PUSHYA >PUSHYA
>SYSCALL StrFTime >SYSCALL StrFTime
.2 >PUSHW L.TIME.Mod ModTime .2 >LEA.G TIME.Mod
>PUSHW L.TIME.Create Create Time >PUSHYA
>LEA.G TIME.Create
>PUSHYA
rts rts
*-------------------------------------- *--------------------------------------
CS.RUN.UpdateColCnt CS.RUN.UpdateColCnt
@ -472,12 +471,12 @@ CS.END
OptionList >PSTR "ALRalr" OptionList >PSTR "ALRalr"
OptionVars .DA #bAllmostAll,#bLong,#bRecurse,#bAllmostAll,#bLong,#bRecurse OptionVars .DA #bAllmostAll,#bLong,#bRecurse,#bAllmostAll,#bLong,#bRecurse
*-------------------------------------- *--------------------------------------
MSG.DEVEXT >CSTR "%15S S%d,D%d Blocks Used:%5D,Total:%5D\r\n" MSG.DEVEXT >CSTR "%15s S%d,D%d Blocks Used:%5D Total:%5D\r\n"
MSG.DIR >CSTR "%S/" MSG.DIR >CSTR "%s/"
MSG.ENTER >CSTR "Directory:%S\r\n" MSG.ENTER >CSTR "Directory:%s\r\n"
MSG.DIREXT >CSTR "%16S <dir> %a %s %s\r\n" MSG.DIREXT >CSTR "%16s <dir> %a %s %s\r\n"
MSG.FILE >CSTR "%19S" MSG.FILE >CSTR "%19s"
MSG.FILEEXT >CSTR "%15S %S $%H %a %10u %s %s\r\n" MSG.FILEEXT >CSTR "%15s %S $%H %a %10u %s %s\r\n"
*-------------------------------------- *--------------------------------------
PRODOS.FT.HEX .HS 0406FAFCFDE2FF PRODOS.FT.HEX .HS 0406FAFCFDE2FF
PRODOS.FT.TXT >PSTR "TXT" PRODOS.FT.TXT >PSTR "TXT"
@ -490,16 +489,19 @@ PRODOS.FT.TXT >PSTR "TXT"
PRODOS.FT.DFLT >PSTR "$ " PRODOS.FT.DFLT >PSTR "$ "
TIME.NODATE >CSTR " <No-Date> " TIME.NODATE >CSTR " <No-Date> "
TIME.Format >CSTR "%d-%b-%y %H:%M" TIME.Format >CSTR "%d-%b-%y %H:%M"
TIME.Create .BS 20
TIME.Mod .BS 20
HEXDIGIT .AS '0123456789ABCDEF' HEXDIGIT .AS '0123456789ABCDEF'
STAT .BS S.STAT
ArgCount .BS 1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR 0 .OR 0
DS.START DS.START
ArgCount .BS 1
Index .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 hDIRs .BS X.MAX.RECURSE
hDIRENTs .BS X.MAX.RECURSE hDIRENTs .BS X.MAX.RECURSE
oDIRENTs .BS X.MAX.RECURSE*2 oDIRENTs .BS X.MAX.RECURSE*2

View File

@ -22,9 +22,10 @@ CS.START cld
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA 0 .DA 0
.DA CS.END-CS.START Code Length To Relocate .DA CS.END-CS.START CS
.DA 0 Data Segment to Allocate .DA DS.END-DS.START DS
.DA 0 .DA #16 SS
.DA #4 ZP
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Relocation Table * Relocation Table
@ -37,7 +38,6 @@ L.MSG0 .DA MSG0
L.MSG1 .DA MSG1 L.MSG1 .DA MSG1
L.MSG2.C .DA MSG2.C L.MSG2.C .DA MSG2.C
L.MSG2.B .DA MSG2.B L.MSG2.B .DA MSG2.B
L.DEV.SIZE .DA DEV.SIZE
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT clc CS.INIT clc
@ -46,11 +46,9 @@ CS.INIT clc
CS.RUN >LDYA L.MSG0 CS.RUN >LDYA L.MSG0
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
stz DEV.ID >LDA.G DEV.ID
lda DEV.ID .1 >SYSCALL GetDevByID.A
.1 >SYSCALL GetDevByIDA
bcs .7 bcs .7
>STYA ZPPTR1 >STYA ZPPTR1
@ -59,8 +57,8 @@ CS.RUN >LDYA L.MSG0
bcs .9 bcs .9
lda DEV.ID >LDA.G DEV.ID
>SYSCALL GetDevByIDA >SYSCALL GetDevByID.A
>STYA pDev >STYA pDev
ldx #DEVMGR.STATUS ldx #DEVMGR.STATUS
@ -77,8 +75,9 @@ CS.RUN >LDYA L.MSG0
lda #10 lda #10
>SYSCALL PutChar.A >SYSCALL PutChar.A
.7 inc DEV.ID .7 >LDA.G DEV.ID
lda DEV.ID inc
sta (pData),y
cmp #K.DEV.MAX cmp #K.DEV.MAX
bne .1 bne .1
@ -106,28 +105,51 @@ DumpHeader ldy #S.DEV.DRV.JMP+1
>PUSHB (ZPPTR1),y >PUSHB (ZPPTR1),y
ldy #S.DEV.S ldy #S.DEV.S
>PUSHB (ZPPTR1),y lda (ZPPTR1),y
sta DEV.S >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 >LDYA L.MSG1
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
rts rts
*-------------------------------------- *--------------------------------------
DumpStatus bit DEV.S DumpStatus >LDA.G DEV.S
bpl .1 bpl .1
ldy #S.DEVSTAT.SIZE ldy #S.DEVSTAT.SIZE
lda (ZPPTR2),y lda (ZPPTR2),y
sta DEV.SIZE >STA.G DEV.SIZE
iny
ldy #S.DEVSTAT.SIZE+1
lda (ZPPTR2),y lda (ZPPTR2),y
sta DEV.SIZE+1 >STA.G DEV.SIZE+1
iny
ldy #S.DEVSTAT.SIZE+2
lda (ZPPTR2),y lda (ZPPTR2),y
sta DEV.SIZE+2 >STA.G DEV.SIZE+2
>PUSHW L.DEV.SIZE
>LEA.G DEV.SIZE
>PUSHYA
.1 ldy #S.DEVSTAT.VERSION+1 .1 ldy #S.DEVSTAT.VERSION+1
>PUSHB (ZPPTR2),y >PUSHB (ZPPTR2),y
@ -148,7 +170,7 @@ DumpStatus bit DEV.S
dey dey
>PUSHB (ZPPTR2),y >PUSHB (ZPPTR2),y
bit DEV.S >LDA.G DEV.S
bpl .2 bpl .2
>LDYA L.MSG2.B >LDYA L.MSG2.B
@ -166,13 +188,21 @@ CS.QUIT clc
*-------------------------------------- *--------------------------------------
CS.END CS.END
MSG0 >CSTR "ID Status Flags Name Addr. Typ/Sub IDString Version Size (BLK)\r\n" 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.B >CSTR "$%h/$%h %16S %03d.%03d %10u"
MSG2.C >CSTR "$%h/$%h %16S %03d.%03d n/a" MSG2.C >CSTR "$%h/$%h %16S %03d.%03d n/a"
MSG.SFLAGS .AS "BWRLNEIO"
*-------------------------------------- *--------------------------------------
.DUMMY
.OR 0
DS.START
DEV.ID .BS 1 DEV.ID .BS 1
DEV.S .BS 1 DEV.S .BS 1
DEV.SIZE .BS 4 DEV.SIZE .BS 4
DEV.SFLAGS .BS 9
DS.END
.ED
*--------------------------------------
MAN MAN
SAVE /A2OSX.SRC/BIN/LSDEV.S SAVE /A2OSX.SRC/BIN/LSDEV.S
ASM ASM

View File

@ -20,9 +20,10 @@ CS.START cld
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA 0 .DA 0
.DA CS.END-CS.START Code Length To Relocate .DA CS.END-CS.START CS
.DA 0 Data Segment to Allocate .DA DS.END-DS.START DS
.DA 0 .DA #16 SS
.DA #2 ZP
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Relocation Table * Relocation Table
@ -47,14 +48,15 @@ CS.RUN >LDYA pData
lda (pData) PS.COUNT 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 lda (pData),y PID
>SYSCALL GetMemPtr.A
>STYA ZPPTR1
ldy #S.PS.hARGS ldy #S.PS.hARGS
lda (ZPPTR1),y lda (ZPPTR1),y
@ -74,13 +76,6 @@ CS.RUN >LDYA pData
>LDYA L.MSG1 >LDYA L.MSG1
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
.4 lda ZPPTR1
clc
adc #S.PS
sta ZPPTR1
bcc .5
inc ZPPTR1+1
.7 lda (pData) PS.COUNT .7 lda (pData) PS.COUNT
dec dec
sta (pData) sta (pData)
@ -104,7 +99,8 @@ MSG1 >CSTR "%03d %b %03d %S\r\n"
.OR 0 .OR 0
DS.START DS.START
PS.COUNT .BS 1 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 DS.END
.ED .ED
*-------------------------------------- *--------------------------------------

View File

@ -17,27 +17,33 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
bcc .10 bcc .10
rts rts
.10 stx .90+1 .10 >STYA ZPPtr1
>STYA ZPPtr1 txa
>STA.G hFullPath
lda (ZPPtr1) ldy #1
cmp #1 lda (ZPPtr1),y
beq .5 we have '/' beq .5 we have '/'
>PUSHW L.STAT >LEA.G STAT
>PUSHYA
>PUSHW ZPPtr1 >PUSHW ZPPtr1
>SYSCALL Stat >SYSCALL Stat
ror 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 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 cmp #$0f
beq .5 TYPE=DIR, do not extract wildcard beq .5 TYPE=DIR, do not extract wildcard
.1 lda (ZPPtr1) Get Src Path Len ldy #0
tay
.1 iny
lda (ZPPtr1),y Get Src Path Len
bne .1
dey
ldx #0 Init Wildcard count ldx #0 Init Wildcard count
.2 lda (ZPPtr1),y search backward for a / .2 lda (ZPPtr1),y search backward for a /
@ -53,36 +59,29 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
bne .2 bne .2
.3 tya .3 tya
cmp (ZPPtr1) * cmp (ZPPtr1)
beq .5 Make sure at least one char * beq .5 Make sure at least one char
txa txa
bne .31 we have wc, go extract.... bne .4 we have wc, go extract....
.30 lda #$ff no wc, remember if file exists? .30 lda #$ff no wc, remember if file exists?
bmi .91 no, file not found.... bmi .91 no, file not found....
.31 ldx #0 .4 tya save / pos to trunk string later
phy save / pos to trunk string later >STA.G index
.4 iny
inx
lda (ZPPtr1),y
sta UsrBuf256,x
tya tya
cmp (ZPPtr1) clc
bne .4 adc ZPPtr1
tay
lda ZPPtr1+1
adc #0
pla get back / pos >SYSCALL Newstr.YA
sta (ZPPtr1) trunk it for Opendir
stx UsrBuf256 set pattern len
>LDYAI UsrBuf256
>SYSCALL NewPstrYA
bcs .9 bcs .9
txa txa
ldy #hFilter >STA.G hFilter
sta (pData),y
.5 >LDYAI 256 .5 >LDYAI 256
>SYSCALL GetMem.YA Get a 256 buffer to store BasePath >SYSCALL GetMem.YA Get a 256 buffer to store BasePath
@ -90,28 +89,26 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
>STYA ZPPtr2 >STYA ZPPtr2
txa txa
ldy #hSrcBasePath >STA.G hSrcBasePath
sta (pData),y
lda (ZPPtr1) >LDA.G index
pha
tay tay
.6 lda (ZPPtr1),y
sta (ZPPtr2),y
dey dey
bne .6
ply
lda #'/' lda #'/'
cmp (ZPPtr1),y cmp (ZPPtr1),y
beq .7 beq .51
iny iny
sta (ZPPtr2),y sta (ZPPtr1),y
.7 tya .51 lda #0
sta (ZPPtr2) sta (ZPPtr1),y Trunk before filter string
ldy #$ff
.6 iny
lda (ZPPtr1),y
sta (ZPPtr2),y
bne .6
>LDYA ZPPtr2 >LDYA ZPPtr2
>SYSCALL OpenDir.YA >SYSCALL OpenDir.YA
@ -132,7 +129,7 @@ InitSrcDirYA >SYSCALL GetFullPath.YA
.91 lda #MLI.ERR.FNOTFND .91 lda #MLI.ERR.FNOTFND
.9 pha .9 pha
.90 lda #$ff self modified .90 >LDA.G hFullPath
>SYSCALL FreeMem.A >SYSCALL FreeMem.A
pla pla
sec sec
@ -146,12 +143,13 @@ InitDstDirYA >SYSCALL GetFullPath.YA
stx .90+1 stx .90+1
>STYA ZPPtr1 >STYA ZPPtr1
>PUSHW L.STAT >LEA.G STAT
>PUSHYA
>PUSHW ZPPtr1 >PUSHW ZPPtr1
>SYSCALL Stat >SYSCALL Stat
bcs .1 File/DIR does not exists, go extract DstFileName 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 cmp #$0f
beq .5 Dst is a directory...no destfilename beq .5 Dst is a directory...no destfilename
@ -236,8 +234,12 @@ InitDstDirYA >SYSCALL GetFullPath.YA
GetNextEntry jsr GetEntry GetNextEntry jsr GetEntry
bcs .9 bcs .9
lda (ZPFileName) Save actual file len for setting up ldy #0
tax new offset later
.10 iny
lda (ZPFileName),y Save actual file len for setting up
bne .10
phy new offset later
lda ZPFileStat lda ZPFileStat
clc clc
@ -265,7 +267,7 @@ GetNextEntry jsr GetEntry
adc #oDIRENTs-1 adc #oDIRENTs-1
tay tay
txa Get back previous file len pla Get back previous file len
sec sec
adc (pData),y adc (pData),y
@ -290,17 +292,26 @@ GetNextEntry jsr GetEntry
clc clc
rts rts
.1 jsr GetEntry.ReadDir .1 pla
jsr GetEntry.ReadDir
bcs .9 bcs .9
lda (ZPFileName) lda (ZPFileName)
beq .99 beq .99
ldy #0
.2 iny
lda (ZPFileName),y
bne .2
tya
sec sec
adc ZPFileName adc ZPFileName
sta ZPFileStat sta ZPFileStat
lda ZPFileName+1 lda ZPFileName+1
adc #0 adc #0
sta ZPFileStat+1 sta ZPFileStat+1
clc clc
.9 rts .9 rts
@ -451,7 +462,7 @@ EnterSubDirYA.1 lda (pData),y
>PUSHW ZPPtr2 >PUSHW ZPPtr2
>PUSHW ZPPtr1 >PUSHW ZPPtr1
>SYSCALL PStrCat >SYSCALL StrCat
lda (ZPPtr1) lda (ZPPtr1)
inc inc
@ -541,3 +552,5 @@ BasePath..1 lda (pData),y
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE /A2OSX.SRC/BIN/X.FILEENUM.S SAVE /A2OSX.SRC/BIN/X.FILEENUM.S
LOAD /A2OSX.SRC/BIN/LS.S
ASM

View File

@ -372,7 +372,7 @@ S.DEV.BUSID .EQ 6
S.DEV.DEVID .EQ 7 S.DEV.DEVID .EQ 7
S.DEV.ROM.JMP .EQ 8 word 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 S.DEV .EQ 16
*----------- Smartport ---------------- *----------- Smartport ----------------

View File

@ -73,10 +73,7 @@ Several subprojects are now indentified :
## General Information: ## General Information:
** Kernel 0.9.1 rewrite in progress ** Kernel API is confined in Aux LC Bank 1 & 2 to leave enough room at $EOOO for Drivers.
(Kernel 0.9 has been archived)
It 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. 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. 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 | | Name | Status | Comment | K.Ver |
| ---- | ------ | ------- | ------| | ---- | ------ | ------- | ------|
| INSDRV | Working | | 0.9 | | INSDRV | Working | | 0.9.1 |
| GETTY | Working | | 0.9 | | GETTY | Working | | 0.9.1 |
| LOGIN | In Progress | no auth using /etc/passd yet | 0.9 | | LOGIN | In Progress | no auth using /etc/passd yet | 0.9.1 |
| SHELL | Working | (See Internal Shell commands) | 0.9 | | SHELL | Working | (See Internal Shell commands) | 0.9.1 |
| KCONFIG | Working | Kernel Configuration Utility | 0.9 | | KCONFIG | Working | Kernel Configuration Utility | 0.9.1 |
| ---- | ------ | ------- | ----- | | ---- | ------ | ------- | ----- |
| TCPIP | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.9 | | TCPIP | Working | Socket API.ARP,IP,ICMP,UDP & TCP ok | 0.9 |
| DHCPCLNT| Working | rewritten to use new Socket API | 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 | | 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.DRV | Working | Apple "Super Serial Card" Driver | 0.9 |
| SSC.I.DRV | Working | Apple "Super Serial Card" Driver (IRQ enabled) | 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 | | 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: ## BIN,External Shell commands:
| Name | Status | Comment | K.Ver | | Name | Status | Comment | K.Ver |
| ---- | ------ | ------- | ----- | | ---- | ------ | ------- | ----- |
| MEM | Working | Old dump behavior is now MEMDUMP. New MEM command displays MEMSTAT (Main, Aux & Kernel Memory) | 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 | | LSDEV | Working | | 0.9.1 |
| PS | Working | | 0.9 | | PS | Working | | 0.9.1 |
| MD | Working | | 0.9 | | MD | Working | | 0.9 |
| LS | Working | -A : Do Not Print . & .. | 0.9 | | LS | Working | -A : Do Not Print . & .. | 0.9 |
| | | -L : long listing with size/date... | | | | | -L : long listing with size/date... | |
@ -182,7 +179,7 @@ note : '$VAR' does NOT expand Variable
| | | -Q : Quiet | | | | | -Q : Quiet | |
| | | -R : Recurse subdirectories | | | | | -R : Recurse subdirectories | |
| | | -Y : Dont't Prompt For Override | | | | | -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 | | | | | -N : Number all output lines | |
| | | -S : Suppress repeated empty output lines | | | | | -S : Suppress repeated empty output lines | |
| CHTYP | In Progress | -C : Continue On Error | 0.9 | | CHTYP | In Progress | -C : Continue On Error | 0.9 |
@ -207,7 +204,7 @@ note : '$VAR' does NOT expand Variable
| Name | Status | Comment | K.Ver | | Name | Status | Comment | K.Ver |
| ---- | ------ | ------- | ----- | | ---- | ------ | ------- | ----- |
| ASM | In Progress | S-C MASM based multi CPU assembler | 0.9 | | 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 | | RPCDUMP | Working | tool based on UDP socket API, renamed from RPCINFO | 0.9 |
## Misc ## Misc

View File

@ -212,6 +212,9 @@ Cmd.Exec.EXT.TXT
* BIN : Launch "/PATH/CMD ARGS" * BIN : Launch "/PATH/CMD ARGS"
*-------------------------------------- *--------------------------------------
Cmd.Exec.EXT.BIN Cmd.Exec.EXT.BIN
lda (ZPPTR2) Some ARGS ?
beq .1
jsr Cmd.Exec.EXT.SEP Add a space.... jsr Cmd.Exec.EXT.SEP Add a space....
>PUSHW ZPPTR2 >PUSHW ZPPTR2

View File

@ -163,7 +163,7 @@ CSH.Run jsr CSH.GetBuf
>STA.G bCmdBufexec >STA.G bCmdBufexec
>LDA.G bEcho >LDA.G bEcho
* beq .80 beq .80
>PUSHW ZPCMDBuf >PUSHW ZPCMDBuf
>LDYA L.MSG.ECHO >LDYA L.MSG.ECHO

View File

@ -156,7 +156,7 @@ CS.RUN >LDA.G bReadMode READ Command ?
jsr CMD.Parse jsr CMD.Parse
>LDA.G CmdBuflen >LDA.G CmdBuflen
beq .8 Empty line beq .10 Empty line
jsr HIS.Add jsr HIS.Add
@ -539,7 +539,7 @@ CSHCMDS >PSTR "IF"
>PSTR "FLOAT" >PSTR "FLOAT"
.HS 00 .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.PROMPT >CSTR "%s$ "
MSG.ECHO >CSTR ">%s\r\n" MSG.ECHO >CSTR ">%s\r\n"
MSG.ERROR >CSTR "[$%h]:%S.\r\n" MSG.ERROR >CSTR "[$%h]:%S.\r\n"

View File

@ -514,8 +514,6 @@ IrqMgrInit >LDYAI MSG.IRQ
lda (ZPPtr1),y lda (ZPPtr1),y
sta K.IrqMgrVBL.MRM+1 sta K.IrqMgrVBL.MRM+1
bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly
ldy #SETMOUSE ldy #SETMOUSE
lda (ZPPtr1),y lda (ZPPtr1),y
sta .7+1 sta .7+1
@ -526,15 +524,19 @@ IrqMgrInit >LDYAI MSG.IRQ
stx .7+2 stx .7+2
ldy K.IrqMgrVBL.n0 ldy K.IrqMgrVBL.n0
bit RROMBNK2 Renable ROM to allow MOUSE II firmware works properly
.7 jsr $ffff self Modified, CALL SETMOUSE .7 jsr $ffff self Modified, CALL SETMOUSE
bcs * bcs *
bit RRAMWRAMBNK1 Back To LC Ram bit RRAMWRAMBNK1 Back To LC Ram
bit RRAMWRAMBNK1 bit RRAMWRAMBNK1
inc K.IrkMgr.VBL set=1 awaiting IrqMgr confirmation inc K.IrkMgr.VBL set=1 awaiting IrqMgr confirmation
plp plp
lda #"V"
sta SYS.BASL0+37
>LDYAI MSG.IRQ.VBL >LDYAI MSG.IRQ.VBL
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
clc clc
@ -674,11 +676,11 @@ DevMgrInit.AddDev
lda DEV.HEADER+S.DEV.BUSID lda DEV.HEADER+S.DEV.BUSID
ora #$30 ora #$30
sta DEV.HEADER+S.DEV.NAME+2 SnDy sta DEV.HEADER+S.DEV.NAME+1 SnDy
lda DEV.HEADER+S.DEV.DEVID lda DEV.HEADER+S.DEV.DEVID
ora #$30 ora #$30
sta DEV.HEADER+S.DEV.NAME+4 SxDn sta DEV.HEADER+S.DEV.NAME+3 SxDn
ldy #S.DEV-1 ldy #S.DEV-1
@ -702,7 +704,7 @@ DEV.HEADER clc
.BS 1 DEV.ID .BS 1 DEV.ID
.BS 2 ROM.JMP .BS 2 ROM.JMP
.BS 1 .BS 1
>PSTR "S1D1" 5 bytes >CSTR "S1D1" 5 bytes
*-------------------------------------- *--------------------------------------
SmartPort.OFS .HS 010305 SmartPort.OFS .HS 010305
SmartPort.SIG .HS 200003 SmartPort.SIG .HS 200003

View File

@ -60,15 +60,16 @@ K.IrkMgr.VBLINT .BS 1
* ProDOS IRQ Manager (GP) * ProDOS IRQ Manager (GP)
*-------------------------------------- *--------------------------------------
K.IrqHandler lda K.IrkMgr.VBL 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 jsr K.IrqMgrVBL.MSM SERVEMOUSE
bcs .10 Not From Mouse bcs K.IrqHandler.DEV Not From Mouse
ldx K.IrqMgrVBL.0n ldx K.IrqMgrVBL.0n
lda $778,x lda $778,x
and #$08 IRQ was caused by VBL ? and #$08 IRQ was caused by VBL ?
beq .10 beq K.IrqHandler.DEV
ldx K.IrqMgrVBL.MRM+2 $Cn ldx K.IrqMgrVBL.MRM+2 $Cn
ldy K.IrqMgrVBL.n0 ldy K.IrqMgrVBL.n0
@ -77,13 +78,16 @@ K.IrqHandler lda K.IrkMgr.VBL
inc K.IrkMgr.VBLINT inc K.IrkMgr.VBLINT
lda SYS.BASL0+37 lda SYS.BASL0+37
eor #'V' eor #$80
sta SYS.BASL0+37 Confirm VBL signal valid for EvtMgr sta SYS.BASL0+37
sec
ror K.IrkMgr.VBL Confirm VBL signal valid for EvtMgr
clc clc
rts rts
*--------------------------------------
.10 >LDYAI DevMgr.Table K.IrqHandler.DEV
>LDYAI DevMgr.Table
>STYA $fe >STYA $fe
ldx DevMgr.Count ldx DevMgr.Count

View File

@ -173,12 +173,11 @@ PS.CreateChild ldx #0
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
PS.CmdLine2Args >STYA ZPPtr1 PS.CmdLine2Args >STYA ZPPtr1
ldy #0 ldy #0
.1 lda (ZPPtr1),y compute strlen in Y,X .1 lda (ZPPtr1),y compute strlen in Y,X
beq .2 beq .2
cmp #'"' skip "" in computation.... cmp #'"' skip " in computation....
beq .1 beq .1
iny iny
bne .1 max 255 bne .1 max 255
@ -227,9 +226,11 @@ PS.CmdLine2Args >STYA ZPPtr1
lda #0 lda #0
.70 sta (ZPPtr2) yes, set this token len .70 sta (ZPPtr2) yes, set this token len
.71 inc ZPPtr2 .71 inc ZPPtr2
bne .72 bne .72
inc ZPPtr2+1 inc ZPPtr2+1
.72 iny .72 iny
bne .4 bne .4
@ -358,21 +359,22 @@ PS.DupEnv.A jsr K.GetMemPtr.A
*-------------------------------------- *--------------------------------------
K.GetPSList.YA >STYA ZPPtr1 K.GetPSList.YA >STYA ZPPtr1
lda CORE.PSCount
sta (ZPPtr1)
ldx #0 ldx #0
ldy #1 ldy #0
.1 lda PS.Table.PID,x .1 lda PS.Table.PID,x
sta (ZPPtr1),y beq .2
iny
lda PS.Table.hMem,x lda PS.Table.hMem,x
sta (ZPPtr1),y
iny iny
inx sta (ZPPtr1),y
.2 inx
cpx CORE.PSCount cpx CORE.PSCount
bne .1 bne .1
.9 tya
sta (ZPPtr1)
rts rts
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -1073,11 +1073,13 @@ PrintF.SS ldy #$00 PSTR
.2 lda PADLEN .2 lda PADLEN
beq .8 beq .8
.3 lda PADCHAR .3 cpy PADLEN
beq .8
lda PADCHAR
jsr Printf.Cout jsr Printf.Cout
bcs .9 bcs .9
iny iny
cpy PADLEN
bne .3 bne .3
.8 clc .8 clc