Kernel 0.93

This commit is contained in:
Rémy GIBERT 2019-06-24 17:32:22 +02:00
parent 8fd68d5d39
commit facad7dd06
9 changed files with 164 additions and 229 deletions

Binary file not shown.

View File

@ -91,18 +91,16 @@ K.ReadDir.ROOT
lda (pFD),y lda (pFD),y
bne K.ReadDir.NoMore bne K.ReadDir.NoMore
stz K.MLI.PARAMS+1 All Volumes stz K.MLI.PARAMS+1 All Volumes
>LDYAI K.Buf256 >LDYAI K.Buf256
>STYA K.MLI.PARAMS+2 >STYA K.MLI.PARAMS+2
>STYA ZPPtr2 >STYA ZPPtr2
>MLICALL MLIONLINE >MLICALL MLIONLINE
bcc .10 bcs K.ReadDir.RTS
sec
.99 rts
* pass #1 compute BufSize..... * pass #1 compute BufSize.....
.10 lda #1 +1 for Ending 0 lda #1 +1 for Ending 0
sta K.ReadDir.BufSize sta K.ReadDir.BufSize
stz K.ReadDir.BufSize+1 stz K.ReadDir.BufSize+1
@ -131,7 +129,7 @@ K.ReadDir.ROOT
* pass #2 Fill Buffer... * pass #2 Fill Buffer...
jsr K.ReadDir.GetBuf jsr K.ReadDir.GetBuf
bcs .99 bcs K.ReadDir.RTS
.3 lda (ZPPtr2) .3 lda (ZPPtr2)
and #$0F and #$0F
@ -206,7 +204,7 @@ K.ReadDir.ROOT
jmp K.ReadDir.EXIT jmp K.ReadDir.EXIT
*-------------------------------------- *--------------------------------------
K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF K.ReadDir.DIR sta K.MLI.PARAMS+1 A=#S.DIR.PRODOS.REF
>LDYAI 512 Get a 512 bytes buffer for reading dir... >LDYAI 512 Get a 512 bytes buffer for reading dir...
jsr K.GetMem jsr K.GetMem
@ -422,7 +420,7 @@ K.ReadDir.GetBuf
>STYA ZPPtr4 >STYA ZPPtr4
.9 rts .9 rts
*-------------------------------------- *--------------------------------------
K.ReadDir.ADD. ldx #1 filename="1." K.ReadDir.ADD. ldx #1 filename="1."
.HS 2C bit abs .HS 2C bit abs
K.ReadDir.ADD.. K.ReadDir.ADD..
ldx #2 filename="2.." ldx #2 filename="2.."
@ -560,9 +558,9 @@ K.ReadDir.AddFNToBuf
bne .8 bne .8
txa txa
jsr K.ReadDir.AddToBuf * jsr K.ReadDir.AddToBuf
rts * rts
*-------------------------------------- *--------------------------------------
K.ReadDir.AddToBuf K.ReadDir.AddToBuf
sta (ZPPtr4) sta (ZPPtr4)

View File

@ -599,52 +599,22 @@ ENV.SysVarsPPID ldy #S.PS.PPID
ENV.SysVarsPID ldy #S.PS.PID ENV.SysVarsPID ldy #S.PS.PID
.HS 2C .HS 2C
ENV.SysVarsCPID ldy #S.PS.CPID ENV.SysVarsCPID ldy #S.PS.CPID
lda (pPS),y lda (pPS),y
ENV.SysVarsNum stz .2+1 ENV.SysVarsNum jsr MEM.Byte2Str102
stz .3+1
ldx #8 ldy #0
sed
.1 asl .1 lda $102,y
pha beq .8
.2 lda #$ff Self Modified
adc .2+1
sta .2+1
.3 lda #$ff Self Modified iny
adc .3+1
sta .3+1
pla jsr ENV.AddAToBuf
dex bra .1
bne .1
cld .8 clc
lda .3+1
beq .4
jsr ENV.AddAToBuf30
.4 lda .2+1
pha
lsr
lsr
lsr
lsr
beq .5
jsr ENV.AddAToBuf30
.5 pla
and #$0f
.8 jsr ENV.AddAToBuf30
clc
rts rts
*-------------------------------------- *--------------------------------------
ENV.SysVarsArgs lda #1 ENV.SysVarsArgs lda #1
@ -762,8 +732,6 @@ ENV.NextEnvP4Y tya
inc ZPPtr4+1 inc ZPPtr4+1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
ENV.AddAToBuf30 ora #$30
ENV.AddAToBuf ldx ENV.BufLen ENV.AddAToBuf ldx ENV.BufLen
sta K.Buf256,x sta K.Buf256,x
inc ENV.BufLen inc ENV.BufLen

View File

@ -717,13 +717,15 @@ MEM.SPtr2PPtr1 >STYA ZPPtr2
rts rts
*-------------------------------------- *--------------------------------------
MEM.GetCharPtr1 lda (ZPPtr1) MEM.GetCharPtr1 lda (ZPPtr1)
beq MEM.GetCharPtr1.8 bne MEM.NextCharPtr1
rts
MEM.PutCharPtr1 sta (ZPPtr1)
MEM.NextCharPtr1 MEM.NextCharPtr1
inc ZPPtr1 inc ZPPtr1
bne MEM.GetCharPtr1.8 bne .8
inc ZPPtr1+1 never Z inc ZPPtr1+1 never Z
MEM.GetCharPtr1.8 .8 rts
rts
*-------------------------------------- *--------------------------------------
MEM.AddYp1ToPtr1 MEM.AddYp1ToPtr1
sec sec
@ -742,38 +744,72 @@ MEM.NextCharPtr2
bne .8 bne .8
inc ZPPtr2+1 inc ZPPtr2+1
.8 rts .8 rts
*/-------------------------------------- *--------------------------------------
* # GetMemStat * Convert A to CSTR at $102
* **In:** *--------------------------------------
* Y,A = Ptr to 24 bytes buffer MEM.Byte2Str102 stz .2+1 0xx
* ## RETURN VALUE stz .3+1 x00
* Buffer filled with memory stats
*\--------------------------------------
K.GetMemStat >STYA ZPPtr1
ldy #23 phx
ldx #7
.1 lda DevMgr.Stat,x ldx #8
sta (ZPPtr1),y
dey sed
.1 asl
pha
.2 lda #$ff Self Modified
adc .2+1
sta .2+1
.3 lda #$ff Self Modified
adc .3+1
sta .3+1
pla
dex dex
bpl .1 bne .1
sta SETREADAUX cld
jsr .2 ldx #0
sta CLRREADAUX lda .3+1 x00
beq .4
.2 ldx #7 jsr .8
.3 lda Mem.Table,x .4 lda .2+1
sta (ZPPtr1),y pha
dey
dex
bpl .3
lsr
lsr
lsr
lsr 0x0
bne .5
cpx #0
beq .6
.5 jsr .8
.6 pla
and #$0f 00x
jsr .8
stz $102,x
plx
rts
.8 ora #$30
sta $102,x
inx
rts rts
*-------------------------------------- *--------------------------------------
MAN MAN

View File

@ -490,71 +490,33 @@ PWD.GetRecordLen
jsr PWD.StoreChar jsr PWD.StoreChar
txa txa
PWD.GetRecordLen.RTS
rts rts
*-------------------------------------- *--------------------------------------
PWD.StoreString iny PWD.StoreString iny
jsr MEM.TXTPTR.GetY jsr MEM.TXTPTR.GetY
beq .8 beq PWD.GetRecordLen.RTS
jsr PWD.StoreChar jsr PWD.StoreChar
bra PWD.StoreString bra PWD.StoreString
.8 rts
*-------------------------------------- *--------------------------------------
PWD.StoreByte php PWD.StoreByte php
phx phx
stz .2+1 jsr MEM.Byte2Str102
stz .3+1
ldx #8
sed
.1 asl
pha
.2 lda #$ff Self Modified
adc .2+1
sta .2+1
.3 lda #$ff Self Modified
adc .3+1
sta .3+1
pla
dex
bne .1
cld
plx plx
plp plp
lda .3+1 ldy #0
beq .4
jsr PWD.StoreChar30 .1 lda $102,y
beq PWD.GetRecordLen.RTS
.4 lda .2+1 iny
beq PWD.StoreChar30
php jsr PWD.StoreChar
lsr bra .1
lsr
lsr
lsr
plp
and #$0f plp corrupt Z
beq .5
jsr PWD.StoreChar30
.5 lda .2+1
and #$0f
*-------------------------------------- *--------------------------------------
PWD.StoreChar30 ora #$30
PWD.StoreChar inx PWD.StoreChar inx
bcc .9 Dry run, no store bcc .9 Dry run, no store

View File

@ -1,5 +1,38 @@
NEW NEW
AUTO 3,1 AUTO 3,1
*/--------------------------------------
* # GetMemStat
* **In:**
* Y,A = Ptr to 24 bytes buffer
* ## RETURN VALUE
* Buffer filled with memory stats
*\--------------------------------------
K.GetMemStat >STYA ZPPtr1
ldy #23
ldx #7
.1 lda DevMgr.Stat,x
sta (ZPPtr1),y
dey
dex
bpl .1
sta SETREADAUX
jsr .2
sta CLRREADAUX
.2 ldx #7
.3 lda Mem.Table,x
sta (ZPPtr1),y
dey
dex
bpl .3
rts
*-------------------------------------- *--------------------------------------
* # ChMod * # ChMod
* change permissions of a file * change permissions of a file

View File

@ -657,7 +657,7 @@ PrintF.F clc
cmp (pStack) cmp (pStack)
bcc .1 bcc .1
bne .9 bne .9 CS
.1 tya .1 tya
sec +1 sec +1
@ -684,17 +684,15 @@ PrintF.F clc
.2 lda $102,y .2 lda $102,y
beq .8 beq .8
jsr PrintF.COut
bcs .99
iny iny
bne .2
jsr PrintF.COut
bcc .2
.9 rts
.8 clc .8 clc
rts rts
.9 sec
.99 rts
*-------------------------------------- *--------------------------------------
PrintF.S ldy #$ff CSTR PrintF.S ldy #$ff CSTR
.HS 2C bit abs .HS 2C bit abs
@ -1017,16 +1015,12 @@ K.SScanF jsr MEM.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format
cmp (ZPPtr2) Same char in string? cmp (ZPPtr2) Same char in string?
bne .9 bne .9
inc ZPPtr2 jsr MEM.NextCharPtr2
bne .1
inc ZPPtr2+1
bra .1 bra .1
.12 inc ZPPtr2 Space.... .12 jsr MEM.NextCharPtr2 Space....
bne .14
inc ZPPtr2+1
.14 cmp (ZPPtr2) another one ? cmp (ZPPtr2) another one ?
beq .12 beq .12
bne .1 bne .1

View File

@ -1133,55 +1133,18 @@ DRV.TERM.CURBLNK.SET
DRV.TERM.CURBLNK.RTS DRV.TERM.CURBLNK.RTS
rts rts
*-------------------------------------- *--------------------------------------
Decimal.Out stz ZPTmpWord Decimal.Out jsr MEM.Byte2Str102
stz ZPTmpWord+1
ldx #8 ldx #0
sed
tay .1 lda $102,x
.1 tya beq DRV.TERM.CURBLNK.RTS
asl
tay
lda ZPTmpWord
adc ZPTmpWord
sta ZPTmpWord
lda ZPTmpWord+1
adc ZPTmpWord+1
sta ZPTmpWord+1
dex
bne .1
cld inx
jsr Char.Out.Put
stz ZPTmpBool No leading 0 bra .1
lda ZPTmpWord+1
and #$0f
beq .2
dec ZPTmpBool non zero, print everything
jsr Char.Out.Put30
.2 lda ZPTmpWord
lsr
lsr
lsr
lsr
bne .3
bit ZPTmpBool Print this digit ?
bpl .4
.3 jsr Char.Out.Put30
.4 lda ZPTmpWord
and #$0f
*-------------------------------------- *--------------------------------------
Char.Out.Put30 ora #$30
Char.Out.Put pha save char Char.Out.Put pha save char
ldy #S.DCB.TTY.OUTHEAD ldy #S.DCB.TTY.OUTHEAD

View File

@ -426,7 +426,7 @@ K.StrFTime jsr MEM.SPtr1PPtr2
cmp #'%' cmp #'%'
beq .2 beq .2
jsr K.StrFTime.addChar jsr MEM.PutCharPtr1
bra .1 bra .1
.2 ldx #K.StrFTime.JMP-K.StrFTime.Tbl-1 .2 ldx #K.StrFTime.JMP-K.StrFTime.Tbl-1
@ -507,7 +507,7 @@ K.StrFTime.STR lda (ZPPtr3),y get required S.Time field value
.3 iny .3 iny
lda (ZPPtr4),y lda (ZPPtr4),y
jsr K.StrFTime.addChar jsr MEM.PutCharPtr1
tya tya
cmp (ZPPtr4) cmp (ZPPtr4)
beq .8 beq .8
@ -518,7 +518,7 @@ K.StrFTime.STR lda (ZPPtr3),y get required S.Time field value
.9 ldx #3 .9 ldx #3
lda #'?' lda #'?'
.99 jsr K.StrFTime.addChar .99 jsr MEM.PutCharPtr1
dex dex
bne .99 bne .99
rts rts
@ -526,9 +526,10 @@ K.StrFTime.STR lda (ZPPtr3),y get required S.Time field value
K.StrFTime.II ldy #S.Time.HOUR K.StrFTime.II ldy #S.Time.HOUR
lda (ZPPtr3),y lda (ZPPtr3),y
cmp #12 cmp #12
bcc .1 bcc K.StrFTime.addDecA
sbc #12 sbc #12
.1 bra K.StrFTime.addDecA bra K.StrFTime.addDecA
K.StrFTime.P ldy #S.Time.HOUR K.StrFTime.P ldy #S.Time.HOUR
lda (ZPPtr3),y lda (ZPPtr3),y
cmp #12 cmp #12
@ -536,11 +537,13 @@ K.StrFTime.P ldy #S.Time.HOUR
lda #'p' lda #'p'
.HS 2C bit abs .HS 2C bit abs
.1 lda #'a' .1 lda #'a'
jsr K.StrFTime.addChar jsr MEM.PutCharPtr1
lda #'m' lda #'m'
bra K.StrFTime.addChar jmp MEM.PutCharPtr1
K.StrFTime.YY ldy #S.Time.CENTURY K.StrFTime.YY ldy #S.Time.CENTURY
jsr K.StrFTime.addDecPtr1Y jsr K.StrFTime.addDecPtr1Y
K.StrFTime.Y ldy #S.Time.YEAR K.StrFTime.Y ldy #S.Time.YEAR
.HS 2C bit abs .HS 2C bit abs
K.StrFTime.D ldy #S.Time.DAY K.StrFTime.D ldy #S.Time.DAY
@ -558,40 +561,18 @@ K.StrFTime.MM ldy #S.Time.MINUTE
K.StrFTime.addDecPtr1Y K.StrFTime.addDecPtr1Y
lda (ZPPtr3),y lda (ZPPtr3),y
K.StrFTime.addDecA K.StrFTime.addDecA
jsr MEM.Byte2Str102
stz .2+1 lda $102
ldx $103
ldx #8
sed
.1 asl
pha
.2 lda #$ff Self Modified
adc .2+1
sta .2+1
pla
dex
bne .1 bne .1
tax
lda #$30
cld .1 jsr MEM.PutCharPtr1
txa
lda .2+1 jmp MEM.PutCharPtr1
pha
lsr
lsr
lsr
lsr
ora #$30
jsr K.StrFTime.addChar
pla
and #$0f
ora #$30
*--------------------------------------
K.StrFTime.addChar
sta (ZPPtr1)
jmp MEM.NextCharPtr1
*-------------------------------------- *--------------------------------------
K.StrFTime.DAY >PSTR "Monday" K.StrFTime.DAY >PSTR "Monday"
>PSTR "Tuesday" >PSTR "Tuesday"