Kernel 0.93+

This commit is contained in:
Rémy GIBERT 2019-07-28 22:39:30 +02:00
parent 0a0c267939
commit 1eaef24566
24 changed files with 421 additions and 426 deletions

Binary file not shown.

View File

@ -13,6 +13,7 @@ NEW
.INB INC/ETH.I
*--------------------------------------
ZPArgPtr .EQ ZPDRV
DEVSLOT0x .EQ ZPDRV+2
*--------------------------------------
* File Header (16 Bytes)
*--------------------------------------
@ -80,11 +81,10 @@ Dev.Detect >STYA ARGS
lda #MLI.E.NODEV
sec
rts
.99 rts
.3 stx DEVSLOTx0
lda #A2osX.S.NIC
sta A2osX.S,y
sty DEVSLOT0x
lda /PP.REVISION Get Revision# of ths chip...
sta PacketPagePTR+1,x
@ -97,7 +97,7 @@ Dev.Detect >STYA ARGS
sta DIB+S.DIB.VERSION
jsr Dev.ParseArgs
bcs .9
bcs .99
.8 >PUSHW L.FD.DEV.NAME
>PUSHBI 2
@ -115,7 +115,13 @@ Dev.Detect >STYA ARGS
>PUSHW L.FD.DEV.NAME
>LDYA L.FD.DEV
>SYSCALL MKDEV
bcs .9
ldx DEVSLOT0x
lda #A2osX.S.NIC
sta A2osX.S,x
* clc
.9 rts
*--------------------------------------
Dev.ParseArgs >LDYA ARGS

View File

@ -143,16 +143,16 @@ FPU.TAN .EQ 36
FPU.ATAN .EQ 38
FPU.SETARG .EQ 40
FPU.SETFAC .EQ 42
FPU.SETFAC .EQ 42 PrintF
FPU.GETFAC .EQ 44 Copy FAC to (FORPNT)
FPU.FCOMP .EQ 46
FPU.LTOF .EQ 48
FPU.QINT .EQ 50
FPU.LTOF .EQ 48 Float
FPU.QINT .EQ 50 lrintf
FPU.FIN .EQ 52
FPU.FOUT .EQ 54
FPU.FOUT .EQ 54 PrintF
*--------------------------------------
.MA FPU
ldx #FPU.]1

View File

@ -219,17 +219,10 @@ TCP.IN.JMP.ESTBLSH
* clc
lda SKT.Cache+S.SOCKET.TCP.INSEQNUM+3
adc ZPDataInLen
sta SKT.Cache+S.SOCKET.TCP.INSEQNUM+3
lda SKT.Cache+S.SOCKET.TCP.INSEQNUM+2
adc ZPDataInLen+1
sta SKT.Cache+S.SOCKET.TCP.INSEQNUM+2
bcc .6
inc SKT.Cache+S.SOCKET.TCP.INSEQNUM+1
bne .6
inc SKT.Cache+S.SOCKET.TCP.INSEQNUM
lda ZPDataInLen
ldy ZPDataInLen+1
ldx #S.SOCKET.TCP.INSEQNUM
jsr TCP.AddAYToSktCacheAtX
.6 jsr SKT.StoreTCB update socket
@ -532,20 +525,12 @@ TCP.OUT lda SKT.Cache+S.SOCKET.TCP.OUTTOSEND+1
bcs .9
lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+3
clc
adc ZPDataOutLen
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+3
lda SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+2
adc ZPDataOutLen+1
sta SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+2
bcc .80
inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ+1
bne .80
inc SKT.Cache+S.SOCKET.TCP.OUTNEXTSEQ
.80 jmp SKT.StoreTCB exits with CC
lda ZPDataOutLen
ldy ZPDataOutLen+1
ldx #S.SOCKET.TCP.OUTNEXTSEQ
jsr TCP.AddAYToSktCacheAtX
jmp SKT.StoreTCB exits with CC
*--------------------------------------
TCP.OUT.SendOptA
jsr TCP.SetSocketTCPO
@ -626,6 +611,21 @@ TCP.NewFrame ldx #S.IP.PROTOCOL.TCP
clc
.9 rts
*--------------------------------------
TCP.AddAYToSktCacheAtX
clc
adc SKT.Cache+3,x
sta SKT.Cache+3,x
tya
adc SKT.Cache+2,x
sta SKT.Cache+2,x
bcc .8
inc SKT.Cache+1,x
bne .8
inc SKT.Cache,x
.8 rts
*--------------------------------------
.DO IPDEBUG=1
DEBUG.IPID ldy #S.IP.IDENTIFICATION

View File

@ -27,7 +27,7 @@ K.Args2ArgV jsr K.ExpandStr
stz ARG.bInQuote
.1 jsr MEM.GetCharPtr1
.1 jsr SHARED.GetCharPtr1
beq .8
cmp #C.SPACE
@ -49,17 +49,17 @@ K.Args2ArgV jsr K.ExpandStr
inx Found one arg !!!
lda #0 set this token End
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
bra .1
.6 jsr MEM.PutCharPtr2
.6 jsr SHARED.PutCharPtr2
.7 jsr MEM.GetCharPtr1
.7 jsr SHARED.GetCharPtr1
bne .2
inx
.8 jsr MEM.PutCharPtr2 set Argv[x] Ending 0
.8 jsr SHARED.PutCharPtr2 set Argv[x] Ending 0
sta (ZPPtr2) set Array Ending 0
phx
@ -98,10 +98,10 @@ K.ArgV tax save requested arg#
dex
bmi .7
.3 jsr MEM.GetCharPtr1 skip str
.3 jsr SHARED.GetCharPtr1 skip str
bne .3
jsr MEM.NextCharPtr1 skip \0
jsr SHARED.NextCharPtr1 skip \0
bra .1
.7 >LDYA ZPPtr1

View File

@ -2,11 +2,12 @@ NEW
AUTO 3,1
*--------------------------------------
.DUMMY
.OR FAC 15 Bytes
.OR FAC 13 Bytes
BIN.hMem .BS 1
BIN.R.CS.Start .BS 2
BIN.R.CS.End .BS 2
BIN.R.End .BS 2
BIN.R.Size .BS 2
BIN.R.Offset .BS 2
BIN.R.Stop .BS 2
.ED
@ -222,12 +223,19 @@ BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE
* Y,A = Ptr to installed driver
*\--------------------------------------
K.InsDrv >STYA ZPPtr3 SRC PTR for move
>PULLW BIN.R.CS.Start
>PULLYA CS Len
>PULLYA DRV.CS.SIZE
jsr BIN.ComputeCSEndYA
>PULLW BIN.R.End
>PULLA BIN.R.End
sta BIN.R.End
sec
sbc BIN.R.CS.Start
tay
>PULLA
sta BIN.R.End+1
sbc BIN.R.CS.Start+1
>STYA BIN.R.Size
jsr MEM.GetKrnlBuf Y,A = CODE + DATA
bcs .9 No More Room to load Driver
@ -238,15 +246,11 @@ K.InsDrv >STYA ZPPtr3 SRC PTR for move
jsr BIN.ComputeOffsetYA
lda BIN.R.End
sec
sbc BIN.R.CS.Start
tay
lda BIN.R.Size
eor #$ff
tax
lda BIN.R.End+1
sbc BIN.R.CS.Start+1
lda BIN.R.Size+1
eor #$ff
pha
@ -306,7 +310,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
bra .1
*--------------------------------------
.2 jsr MEM.AddYp1ToPtr1 add current offset in Y to Ptr
.2 jsr SHARED.AddYp1ToPtr1 add current offset in Y to Ptr
* + 1 to skip last 00 from beq .2
* ZPPtr1=Current Code PTR
lda BIN.R.CS.End
@ -341,7 +345,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
pla get back Opcode length...
.5 tay A = OPCODE length
jsr MEM.AddYToPtr1
jsr SHARED.AddYToPtr1
.6 cmp BIN.R.Stop A = ZPPtr1
bne .3

View File

@ -35,7 +35,7 @@ XFer .EQ $C314 CS:M->X, VS:Use Aux ZP
DRV.BLK.Cmd .EQ $42
DRV.BLK.UnitNum .EQ $43
DRV.BLK.Buf .EQ $44
DRV.BLK.BlkNum .EQ $47
DRV.BLK.BlkNum .EQ $46
*--------------------------------------
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
*--------------------------------------

View File

@ -85,7 +85,7 @@ K.GetDevStatus.I
* ## RETURN VALUE
* A = hDEV
*\--------------------------------------
K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name
K.MKDev jsr SHARED.SPtr1PPtr2 ptr1=fd, ptr2=name
ldx DevMgr.DevIdx
cpx #K.DEV.MAX*2+1

View File

@ -73,7 +73,7 @@ K.ExpandStr stz ENV.hMem Reset Intermediate string...
.31 cmp #'}' end of var?
beq .50
jsr MEM.IsIDValid _,.,a-z,A-Z,0-9 ?
jsr SHARED.IsIDValid _,.,a-z,A-Z,0-9 ?
bcc .32 yes, add to varname
ldx ENV.VarLen
@ -282,7 +282,7 @@ K.PutEnv >STYA ZPPtr2 NAME=VALUE
.2 lda #0
sta K.Buf256,y
jsr MEM.AddYp1ToPtr2
jsr SHARED.AddYp1ToPtr2
>LDYAI K.Buf256
>STYA ZPPtr1
@ -299,7 +299,7 @@ K.PutEnv >STYA ZPPtr2 NAME=VALUE
* `>SYSCALL setenv`
* ## RETURN VALUE
*\--------------------------------------
K.SetEnv jsr MEM.SPtr1PPtr2
K.SetEnv jsr SHARED.SPtr1PPtr2
K.SetEnv.I jsr K.UnsetEnv.I
@ -463,7 +463,7 @@ ENV.ExpandSysVar
bne .4
lda ENV.VarName
jsr IsDigit $0...$9 ??
jsr ZP.IsDigit $0...$9 ??
bcs .1
and #$0F

View File

@ -171,6 +171,23 @@ GP.AtkCall dec IRQ.InKernel
inc IRQ.InKernel
rts
*--------------------------------------
GP.FpuCall dec IRQ.InKernel
jsr .1
inc IRQ.InKernel
clc
rts
.1 cpx #FPU.IMOD32+1
bcc GP.RomCall.JmpX INT32
phx
jsr GP.SetFAC Get float from stack
plx
cpx #FPU.PWR+1
bcs .2
*/--------------------------------------
* # FAdd,FSub,FMult,FDiv,FPwr
* Return X+Y, X-Y, X*Y, X/Y, X^Y
@ -186,6 +203,14 @@ GP.AtkCall dec IRQ.InKernel
* ## RETURN VALUE
* On stack (float)
*\--------------------------------------
lda pStack
clc
adc #5
sta pStack
phx
jsr GP.SetARG
plx
*/--------------------------------------
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x)
@ -204,235 +229,6 @@ GP.AtkCall dec IRQ.InKernel
* ## RETURN VALUE
* On stack (Float)
*\--------------------------------------
* >PUSHL ARG
* >PUSHL ACC
* >FPU ADD32
* >PULLL (ARG+ACC)
*--------------------------------------
MATH.ADD32 clc
.HS B0 BCS
MATH.SUB32 sec
php
jsr MATH.PopACC32
ldy #0
ldx #3
plp
bcs .2
.1 lda (pStack),y
adc ACC32,y
sta (pStack),y
iny
dex
bpl .1
rts
.2 lda (pStack),y
sbc ACC32,y
sta (pStack),y
iny
dex
bpl .2
MATH.SUB32.RTS rts
*--------------------------------------
* >PUSHL ARG
* >PUSHL ACC
* >(I)MUL32
* >PULLL (ARG*ACC)
*--------------------------------------
MATH.UMUL32 clc
.HS B0 BCS
MATH.IMUL32 sec
php
jsr MATH.MULDIVMOD.COMMON
jsr MATH.MUL32
plp
bcc MATH.SUB32.RTS
MATH.RETURN.ITMP
lda ACC32.Sign
eor ARG32.Sign
bpl MATH.PutTMP32
bra MATH.PutNotTMP32
*--------------------------------------
* >PUSHL ARG
* >PUSHL ACC
* >(I)DIV32
* >PULLL (ARG / ACC)
*--------------------------------------
* >PUSHL ARG
* >PUSHL ACC
* >(I)MOD32
* >PULLL (ARG mod ACC)
*--------------------------------------
MATH.UDIV32 clc
.HS B0 BCS
MATH.IDIV32 sec
clv
bra MATH.DIVMOD
MATH.UMOD32 clc
.HS B0 BCS
MATH.IMOD32 sec
bit MATH.SUB32.RTS $60
MATH.DIVMOD php
jsr MATH.MULDIVMOD.COMMON
jsr MATH.DIVMOD32
plp
bcc .3
bvs MATH.RETURN.ITMP IMOD
lda ACC32.Sign IDIV
eor ARG32.Sign
bmi MATH.PutARG32
bra MATH.PutNotARG32
.3 bvs MATH.PutARG32 DIV
*--------------------------------------
MATH.PutTMP32 lda #TMP32 MOD
.HS 2C BIT ABS
*--------------------------------------
MATH.PutARG32 lda #ARG32
sta .1+1
ldy #3
.1 lda $ff,y SELF MODIFIED
sta (pStack),y
dey
bpl .1
rts
*--------------------------------------
MATH.PutNotTMP32
lda #TMP32
.HS 2C BIT ABS
*--------------------------------------
MATH.PutNotARG32
lda #ARG32
sta .1+1
ldy #0
ldx #3
sec
.1 lda $ff,y SELF MODIFIED
eor #$ff two's complement of X bytes
adc #0
sta (pStack),y
iny
dex
bpl .1
rts
*--------------------------------------
MATH.PopACC32 ldy #$ff
.1 iny
lda (pStack),y
sta ACC32,y
cpy #3
bne .1
sta ACC32.Sign
tya
* sec Add 3+CS=4
adc pStack
sta pStack
rts
*--------------------------------------
MATH.GetARG32 ldy #0
.1 lda (pStack),y
sta ARG32,y
iny
cpy #4
bne .1
sta ARG32.Sign
rts
*--------------------------------------
MATH.MULDIVMOD.COMMON
php
jsr MATH.PopACC32
jsr MATH.GetARG32
plp
bcc .1
jsr MATH.ACC32ABS
jsr MATH.ARG32ABS
.1 rts
*/--------------------------------------
* # float
* Return 'floated' long
* ## C
* `float f = (float)12345678;
* ## ASM
* **In:**
* `>PUSHL X` (long)
* ## RETURN VALUE
* On stack (float)
*\--------------------------------------
*/--------------------------------------
* # lrintf
* Return float rounded into a long
* ## C
* `long int lrintf (float x);`
* ## ASM
* **In:**
* `>PUSHF x`
* `>SYSCALL lrintf`
* ## RETURN VALUE
* On stack (long)
*\--------------------------------------
*--------------------------------------
GP.FpuCall dec IRQ.InKernel
jsr .1
inc IRQ.InKernel
clc
rts
.1 cpx #16 < FADD ?
bcc GP.RomCall.JmpX INT32
phx
jsr GP.SetFAC Get float from stack
plx
cpx #26 > FPWR ?
bcs .2
*--------------------------------------
* FADD -> FPWR : 2 * float
*--------------------------------------
lda pStack
clc
adc #5
sta pStack
phx
jsr GP.SetARG
plx
*--------------------------------------
* LOG -> ATAN : 1 * float
*--------------------------------------
.2 jsr GP.ROMCALL
GP.GETFAC.ON.STACK
@ -458,17 +254,17 @@ GP.RomCall phx
bit $C000,x
rts
*--------------------------------------
GP.RomCall.JmpX jmp (.1,x)
.1 .DA MATH.ADD32
.DA MATH.SUB32
.DA MATH.UMUL32
.DA MATH.IMUL32
.DA MATH.UDIV32
.DA MATH.IDIV32
.DA MATH.UMOD32
.DA MATH.IMOD32
.1 .DA GP.ADD32
.DA GP.SUB32
.DA GP.UMUL32
.DA GP.IMUL32
.DA GP.UDIV32
.DA GP.IDIV32
.DA GP.UMOD32
.DA GP.IMOD32
* http://www.txbobsc.com/scsc/scdocumentor/E7A0.html
@ -505,6 +301,170 @@ GP.SetFAC ldx #FPU.SETFAC
>LDYA pStack
bra GP.ROMCALL
*--------------------------------------
GP.ADD32 clc
.HS B0 BCS
GP.SUB32 sec
php
jsr GP.PopACC32
ldy #0
ldx #3
plp
bcs .2
.1 lda (pStack),y
adc ACC32,y
sta (pStack),y
iny
dex
bpl .1
rts
.2 lda (pStack),y
sbc ACC32,y
sta (pStack),y
iny
dex
bpl .2
GP.SUB32.RTS rts
*--------------------------------------
GP.UMUL32 clc
.HS B0 BCS
GP.IMUL32 sec
php
jsr GP.MULDIVMOD.COMMON
jsr MATH.MUL32
plp
bcc GP.SUB32.RTS
GP.RETURN.ITMP
lda ACC32.Sign
eor ARG32.Sign
bpl GP.PutTMP32
bra GP.PutNotTMP32
*--------------------------------------
GP.UDIV32 clc
.HS B0 BCS
GP.IDIV32 sec
clv
bra GP.DIVMOD
GP.UMOD32 clc
.HS B0 BCS
GP.IMOD32 sec
bit GP.SUB32.RTS $60
GP.DIVMOD php
jsr GP.MULDIVMOD.COMMON
jsr MATH.DIVMOD32
plp
bcc .3
bvs GP.RETURN.ITMP IMOD
lda ACC32.Sign IDIV
eor ARG32.Sign
bmi GP.PutARG32
bra GP.PutNotARG32
.3 bvs GP.PutARG32 DIV
*--------------------------------------
GP.PutTMP32 lda #TMP32 MOD
.HS 2C BIT ABS
*--------------------------------------
GP.PutARG32 lda #ARG32
sta .1+1
ldy #3
.1 lda $ff,y SELF MODIFIED
sta (pStack),y
dey
bpl .1
rts
*--------------------------------------
GP.PutNotTMP32 lda #TMP32
.HS 2C BIT ABS
*--------------------------------------
GP.PutNotARG32 lda #ARG32
sta .1+1
ldy #0
ldx #3
sec
.1 lda $ff,y SELF MODIFIED
eor #$ff two's complement of X bytes
adc #0
sta (pStack),y
iny
dex
bpl .1
rts
*--------------------------------------
GP.PopACC32 ldy #$ff
.1 iny
lda (pStack),y
sta ACC32,y
cpy #3
bne .1
sta ACC32.Sign
tya
* sec Add 3+CS=4
adc pStack
sta pStack
rts
*--------------------------------------
GP.GetARG32 ldy #0
.1 lda (pStack),y
sta ARG32,y
iny
cpy #4
bne .1
sta ARG32.Sign
rts
*--------------------------------------
GP.MULDIVMOD.COMMON
php
jsr GP.PopACC32
jsr GP.GetARG32
plp
bcc .1
jsr MATH.ACC32ABS
jsr MATH.ARG32ABS
.1 rts
*/--------------------------------------
* # float
* Return 'floated' long
* ## C
* `float f = (float)12345678;
* ## ASM
* **In:**
* `>PUSHL X` (long)
* ## RETURN VALUE
* On stack (float)
*\--------------------------------------
K.Float ldy #3
.1 lda (pStack),y
@ -520,10 +480,21 @@ K.Float ldy #3
ldx #FPU.LTOF
MATH.RomCallPushFAC
GP.RomCallPushFAC
jsr GP.ROMCALL
jmp GP.GETFAC.ON.STACK
*--------------------------------------
*/--------------------------------------
* # lrintf
* Return float rounded into a long
* ## C
* `long int lrintf (float x);`
* ## ASM
* **In:**
* `>PUSHF x`
* `>SYSCALL lrintf`
* ## RETURN VALUE
* On stack (long)
*\--------------------------------------
K.lrintf jsr GP.SetFAC
inc pStack keep 4 bytes on stack

View File

@ -1083,14 +1083,14 @@ CHARGET inc TXTPTR
inc TXTPTR+1
CHARGOT lda $ffff
beq IsDigit.9
beq ZP.IsDigit.9
IsDigit cmp #'0'
bcc IsDigit.9
ZP.IsDigit cmp #'0'
bcc ZP.IsDigit.9
cmp #'9'+1
rts
IsDigit.9 sec
ZP.IsDigit.9 sec
rts
.EP
Kernel.ZP.S .EQ *-Kernel.ZP

View File

@ -1,6 +1,5 @@
NEW
AUTO 3,1
*--------------------------------------
IO.OPEN.REG >MLICALL MLIGETFILEINFO
bcc IO.OPEN.REG.E Already Exists

View File

@ -212,7 +212,7 @@ MATH.ACC322STR10
MATH.Hex2ACC32 lda (ZPPtr2)
beq .9
jsr MEM.IsHexDigit
jsr SHARED.IsHexDigit
bcs .9
jsr MATH.A2ACC32
@ -222,7 +222,7 @@ MATH.Hex2ACC32 lda (ZPPtr2)
.1 iny
lda (ZPPtr2),y
beq .8
jsr MEM.IsHexDigit
jsr SHARED.IsHexDigit
bcs .8
pha
@ -273,7 +273,7 @@ MATH.Dec2ACC32 jsr MATH.ACC32ZERO
eor #'-'
bne .10
jsr MEM.NextCharPtr2 skip '-'
jsr SHARED.NextCharPtr2 skip '-'
sec
.10 ror .80+1 set pos/neg flag
@ -284,7 +284,7 @@ MATH.Dec2ACC32 jsr MATH.ACC32ZERO
lda (ZPPtr2),y
beq .8
jsr IsDigit
jsr ZP.IsDigit
bcs .8
phy Save Y, pointing to next char

View File

@ -16,7 +16,7 @@ X.OSD >STYA TXTPTR
ldy #S.CB-1
.10 jsr MEM.TXTPTR.GetY
.10 jsr SHARED.TXTPTR.GetY
sta CB.Cache,y
dey
bpl .10
@ -207,7 +207,7 @@ GETTEXTSIZE clc
sta CB.Cache+S.CB.SrcH
stz CB.Cache+S.CB.SrcH+1
.3 jsr MEM.TXTPTR.GetNext
.3 jsr SHARED.TXTPTR.GetNext
beq .4
jsr FON.GetChar
@ -246,7 +246,7 @@ GETTEXTSIZE clc
stz GWORD reset Col index in BM
stz GWORD+1 reset Bit index in Col
DRAWTEXT.LOOP jsr MEM.TXTPTR.GetNext
DRAWTEXT.LOOP jsr SHARED.TXTPTR.GetNext
beq DRAWTEXT.END
jsr FON.GetChar

View File

@ -502,7 +502,7 @@ PS.AddArgV ldy #$ff In both cases, remove ARGV[0]
* lda #0
jsr PS.AddYAp12ArgSize
.3 jsr MEM.AddYp1ToPtr1
.3 jsr SHARED.AddYp1ToPtr1
bra .1
.4 txa
@ -555,8 +555,8 @@ PS.AddPtr1ToStrV
sta (ZPPtr2),y
bne .2
jsr MEM.AddYp1ToPtr1
jmp MEM.AddYp1ToPtr2
jsr SHARED.AddYp1ToPtr1
jmp SHARED.AddYp1ToPtr2
*--------------------------------------
PS.AddYAp12ArgSize
pha

View File

@ -21,7 +21,7 @@ K.GetPWUID
* `>SYSCALL getpwname`
* ## RETURN VALUE
*\--------------------------------------
K.GetPWName jsr MEM.SPtr1PPtr2
K.GetPWName jsr SHARED.SPtr1PPtr2
bra K.PutPW.1
*/--------------------------------------

View File

@ -61,7 +61,7 @@ PWD.GetPWName lda PWD.hDB
>STYA TXTPTR
ldy #0
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
beq PWD.GetPW.99
.1 lda (ZPPtr3)
@ -70,7 +70,7 @@ PWD.GetPWName lda PWD.hDB
ldy #$ff
.2 iny
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
beq .4
cmp (ZPPtr3),y
@ -102,7 +102,7 @@ PWD.PutPW >LDYA ZPPtr2
bne .1
ldy #S.PW.UID
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
bne PWD.GetPW.RTS Must be ROOT user
jsr PWD.GetRecordLen
@ -122,7 +122,7 @@ PWD.PutPW >LDYA ZPPtr2
>STYA PWD.DBPtr
ldy #S.PW.PASSWD
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
bne .12
jsr PWD.DeleteRecord
@ -276,7 +276,7 @@ PWD.FindRecord >LDYA PWD.DBPtr
ldy #$ff
.3 iny
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
beq .4
cmp (ZPPtr3),y
beq .3
@ -325,12 +325,12 @@ PWD.Record2PW sta CLRWRITEAUX
cmp #':'
beq .2
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
bra .1
.2 lda #0
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
cpx #S.PW.PASSWD
bne .2
@ -340,21 +340,21 @@ PWD.Record2PW sta CLRWRITEAUX
cmp #':'
beq .4
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
bra .3
.4 lda #0
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
cpx #S.PW.UID
bne .4
jsr PWD.GetByte UID
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
jsr PWD.GetByte GID
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
ldx #S.PW.GECOS
@ -363,12 +363,12 @@ PWD.Record2PW sta CLRWRITEAUX
cmp #':'
beq .6
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
bra .5
.6 lda #0
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
cpx #S.PW.DIR
bne .6
@ -378,12 +378,12 @@ PWD.Record2PW sta CLRWRITEAUX
cmp #':'
beq .8
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
bra .7
.8 lda #0
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
cpx #S.PW.SHELL
bne .8
@ -393,12 +393,12 @@ PWD.Record2PW sta CLRWRITEAUX
cmp #C.CR
beq .10
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
inx
bra .9
.10 lda #0
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
sta SETWRITEAUX
@ -454,7 +454,7 @@ PWD.GetRecordLen
jsr PWD.StoreChar
ldy #S.PW.UID
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
jsr PWD.StoreByte
lda #':'
@ -462,7 +462,7 @@ PWD.GetRecordLen
iny S.PW.UID
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
jsr PWD.StoreByte
lda #':'
@ -494,7 +494,7 @@ PWD.GetRecordLen.RTS
rts
*--------------------------------------
PWD.StoreString iny
jsr MEM.TXTPTR.GetY
jsr SHARED.TXTPTR.GetY
beq PWD.GetRecordLen.RTS
jsr PWD.StoreChar
bra PWD.StoreString

View File

@ -1,47 +1,51 @@
NEW
AUTO 3,1
*--------------------------------------
MEM.GetKeyCharY sta CLRREADAUX
SHARED.GetKeyCharY
sta CLRREADAUX
lda (ZPSListDataPtr),y
sta SETREADAUX
beq MEM.IsDigit.9
MEM.IsIDValid cmp #'.'
beq MEM.IsDigit.8
beq SHARED.IsDigit.9
SHARED.IsIDValid
cmp #'.'
beq SHARED.IsDigit.8
cmp #'_'
beq MEM.IsDigit.8
MEM.IsDigitOrL cmp #'z'+1
bcs MEM.IsDigit.RTS
beq SHARED.IsDigit.8
SHARED.IsDigitOrL
cmp #'z'+1
bcs SHARED.IsDigit.RTS
cmp #'a'
bcs MEM.IsDigit.8
MEM.IsDigitOrUC cmp #'Z'+1
bcs MEM.IsDigit.RTS
bcs SHARED.IsDigit.8
SHARED.IsDigitOrUC
cmp #'Z'+1
bcs SHARED.IsDigit.RTS
cmp #'A'
bcs MEM.IsDigit.8
bcs SHARED.IsDigit.8
jmp IsDigit
MEM.IsDigit.9 sec
jmp ZP.IsDigit
SHARED.IsDigit.9
sec
rts
MEM.IsDigit.8 clc
MEM.IsDigit.RTS rts
SHARED.IsDigit.8
clc
SHARED.IsDigit.RTS
rts
*--------------------------------------
MEM.IsHexDigit jsr IsDigit
SHARED.IsHexDigit
jsr ZP.IsDigit
bcc .8
cmp #'A'
bcc MEM.IsDigit.9
bcc SHARED.IsDigit.9
cmp #'F'+1
bcc .1
cmp #'a'
bcc MEM.IsDigit.9
bcc SHARED.IsDigit.9
cmp #'f'+1
bcs MEM.IsDigit.RTS
bcs SHARED.IsDigit.RTS
eor #$20
.1
@ -52,31 +56,35 @@ MEM.IsHexDigit jsr IsDigit
.8 and #$0F
rts
*--------------------------------------
MEM.SetKeyCharY sta CLRWRITEAUX
SHARED.SetKeyCharY
sta CLRWRITEAUX
sta (ZPSListDataPtr),y
sta SETWRITEAUX
rts
*--------------------------------------
MEM.GetDataByte sta CLRREADAUX
SHARED.GetDataByte
sta CLRREADAUX
lda (ZPSListDataPtr)
sta SETREADAUX
bra MEM.SetDataByte.1
bra SHARED.SetDataByte.1
*--------------------------------------
MEM.SetDataByte sta CLRWRITEAUX
SHARED.SetDataByte
sta CLRWRITEAUX
sta (ZPSListDataPtr)
sta SETWRITEAUX
MEM.SetDataByte.1
SHARED.SetDataByte.1
inc ZPSListDataPtr
bne .8
inc ZPSListDataPtr+1
.8 rts
*--------------------------------------
MEM.TXTPTR.GetY sta CLRREADAUX
SHARED.TXTPTR.GetY
sta CLRREADAUX
lda (TXTPTR),y
sta SETREADAUX
rts
*--------------------------------------
MEM.TXTPTR.GetNext
SHARED.TXTPTR.GetNext
sta CLRREADAUX
lda (TXTPTR)
sta SETREADAUX
@ -86,29 +94,34 @@ MEM.TXTPTR.GetNext
inc TXTPTR+1
.9 rts
*--------------------------------------
MEM.SPtr1PPtr2 >STYA ZPPtr1
SHARED.SPtr1PPtr2
>STYA ZPPtr1
>PULLW ZPPtr2
rts
*--------------------------------------
MEM.SPtr2PPtr1 >STYA ZPPtr2
SHARED.SPtr2PPtr1
>STYA ZPPtr2
>PULLW ZPPtr1
rts
*--------------------------------------
MEM.GetCharPtr1 lda (ZPPtr1)
bne MEM.NextCharPtr1
SHARED.GetCharPtr1
lda (ZPPtr1)
bne SHARED.NextCharPtr1
rts
MEM.PutCharPtr1 sta (ZPPtr1)
MEM.NextCharPtr1
SHARED.PutCharPtr1
sta (ZPPtr1)
SHARED.NextCharPtr1
inc ZPPtr1
bne .8
inc ZPPtr1+1 never Z
.8 rts
*--------------------------------------
MEM.AddYp1ToPtr1
SHARED.AddYp1ToPtr1
sec
.HS 90 BCC
MEM.AddYToPtr1 clc
SHARED.AddYToPtr1
clc
tya
adc ZPPtr1
sta ZPPtr1
@ -116,10 +129,11 @@ MEM.AddYToPtr1 clc
inc ZPPtr1+1
.8 rts
*--------------------------------------
MEM.AddYp1ToPtr2
SHARED.AddYp1ToPtr2
sec
.HS 90 BCC
MEM.AddYToPtr2 clc
SHARED.AddYToPtr2
clc
tya
adc ZPPtr2
sta ZPPtr2
@ -128,12 +142,13 @@ MEM.AddYToPtr2 clc
inc ZPPtr2+1
.8 rts
*--------------------------------------
MEM.GetCharPtr2 lda (ZPPtr2)
bne MEM.NextCharPtr2
SHARED.GetCharPtr2
lda (ZPPtr2)
bne SHARED.NextCharPtr2
rts
MEM.PutCharPtr2 sta (ZPPtr2)
MEM.NextCharPtr2
SHARED.PutCharPtr2
sta (ZPPtr2)
SHARED.NextCharPtr2
inc ZPPtr2
bne .8
inc ZPPtr2+1

View File

@ -76,7 +76,7 @@ SLIST.GetData jsr SLIST.Select
cmp #C.CR
beq .8
.5 jsr MEM.SetDataByte
.5 jsr SHARED.SetDataByte
inc ZPSListDataLen
bne .2
inc ZPSListDataLen+1
@ -90,7 +90,7 @@ SLIST.GetData jsr SLIST.Select
bpl .81
lda #0
jsr MEM.SetDataByte
jsr SHARED.SetDataByte
inc ZPSListDataLen
bne .81
inc ZPSListDataLen+1
@ -143,7 +143,7 @@ SLIST.AddData jsr SLIST.Select
inc ZPSListDataLen+1
beq .8
.2 jsr MEM.GetDataByte
.2 jsr SHARED.GetDataByte
jsr SLIST.AddBlockByte
bcc .1
@ -177,7 +177,7 @@ SLIST.SetData jsr SLIST.Select
inc SLIST.nDataCnt+1
beq .8
.2 jsr MEM.GetDataByte
.2 jsr SHARED.GetDataByte
jsr SLIST.SetBlockByte
bra .1
@ -200,13 +200,13 @@ SLIST.GetByID jsr SLIST.Select
.1 phy
jsr SLIST.GetNextByte
ply
jsr MEM.SetKeyCharY
jsr SHARED.SetKeyCharY
iny
dex
bne .1
txa lda #0
jsr MEM.SetKeyCharY
jsr SHARED.SetKeyCharY
jsr SLIST.SkipData
@ -227,7 +227,7 @@ SLIST.NewKey jsr SLIST.Search
ldy #0
.1 jsr MEM.GetKeyCharY
.1 jsr SHARED.GetKeyCharY
jsr SLIST.AddBlockByte
bcs .9
iny
@ -310,7 +310,7 @@ SLIST.Search jsr K.GetMemPtr
ldy #$ff
.1 iny
jsr MEM.GetKeyCharY
jsr SHARED.GetKeyCharY
bcc .1
sty SLIST.KeyLen
@ -336,7 +336,7 @@ SLIST.Search jsr K.GetMemPtr
jsr SLIST.GetNextByte
sta .4+1
ply
jsr MEM.GetKeyCharY
jsr SHARED.GetKeyCharY
.4 cmp #$ff SELF MODIFIED
bne .5

View File

@ -278,7 +278,7 @@ K.PrintF.1 stz PrintF.Cnt
stz PrintF.LocalGetByte+1
.1 jsr MEM.GetCharPtr2
.1 jsr SHARED.GetCharPtr2
bne .22
jmp .8 end of format..
@ -292,7 +292,7 @@ K.PrintF.1 stz PrintF.Cnt
lda (ZPPtr2)
beq .7 end of format... print % and exit
jsr IsDigit
jsr ZP.IsDigit
bcs .6 no digit....go check specifier
cmp #'0' ...a 0...mmm... padding char?
@ -300,12 +300,12 @@ K.PrintF.1 stz PrintF.Cnt
sta K.PrintF.PadC
jsr MEM.NextCharPtr2 skip 0 ...
jsr SHARED.NextCharPtr2 skip 0 ...
lda (ZPPtr2)
beq .7
jsr IsDigit
jsr ZP.IsDigit
bcs .6 %0x ??????
.4 jsr MATH.Dec2ACC32
@ -319,7 +319,7 @@ K.PrintF.1 stz PrintF.Cnt
lda #C.SPACE
sta K.PrintF.PadC
.5 jsr MEM.AddYToPtr2 skip all processed chars
.5 jsr SHARED.AddYToPtr2 skip all processed chars
lda (ZPPtr2)
beq .7
@ -333,7 +333,7 @@ K.PrintF.1 stz PrintF.Cnt
bra .20 unknown ...
.62 jsr MEM.NextCharPtr2
.62 jsr SHARED.NextCharPtr2
txa yes, jmp to it!
asl
@ -349,7 +349,7 @@ K.PrintF.1 stz PrintF.Cnt
.10 cmp #'\'
bne .20
jsr MEM.GetCharPtr2
jsr SHARED.GetCharPtr2
beq .99
ldx #PrintFTBL2.Cnt-1
@ -365,7 +365,7 @@ K.PrintF.1 stz PrintF.Cnt
jsr MATH.Hex2ACC32
bcs .99
jsr MEM.AddYToPtr2
jsr SHARED.AddYToPtr2
.14 lda ACC32
bra .20
@ -548,7 +548,7 @@ PrintF.F clc
adc #5
sta PrintF.LocalGetByte+1
ldy #A2osX.NumStrBuf+1 In order not to trash A2osX.SaveSM,A2osX.SaveSX
ldy #A2osX.NumStrBuf
ldx #FPU.FOUT
jsr GP.ROMCALL
@ -720,7 +720,7 @@ K.FGetS jsr PFT.CheckNodeA
cmp #C.CR
beq .8 empty string
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
lda ZPPtr1
eor #$ff
@ -742,7 +742,7 @@ K.FGetS jsr PFT.CheckNodeA
cmp #C.CR
beq .8
jsr MEM.PutCharPtr2
jsr SHARED.PutCharPtr2
bra .3
.5 cmp #MLI.E.EOF
@ -848,7 +848,7 @@ STDIO.Read.1 lda #0
* ## RETURN VALUE
* A = Number of arguments filled.
*\--------------------------------------
K.SScanF jsr MEM.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format
K.SScanF jsr SHARED.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format
lda pStack
sta pLocal
@ -856,7 +856,7 @@ K.SScanF jsr MEM.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format
stz .8+1 rest Arg processed
stz PrintF.LocalGetByte+1
.1 jsr MEM.GetCharPtr1 End Of format?
.1 jsr SHARED.GetCharPtr1 End Of format?
beq .8
cmp #'%' Escape ?
@ -868,16 +868,16 @@ K.SScanF jsr MEM.SPtr2PPtr1 ptr2=String to Scan,Ptr1=format
cmp (ZPPtr2) Same char in string?
bne .9
jsr MEM.NextCharPtr2
jsr SHARED.NextCharPtr2
bra .1
.12 jsr MEM.NextCharPtr2 Space....
.12 jsr SHARED.NextCharPtr2 Space....
cmp (ZPPtr2) another one ?
beq .12
bne .1
.2 jsr MEM.GetCharPtr1 Get specifier after %
.2 jsr SHARED.GetCharPtr1 Get specifier after %
beq .9 unexpected End of format after "%" ?
ldx #K.SScanFJMP-K.SScanFTBL-2
@ -937,7 +937,7 @@ K.SScanF.H lda K.SScanFTBL+1,x Get VAR size
jsr MATH.Hex2ACC32
K.SScanF.GetVAL jsr MEM.AddYToPtr2 Y=char count parsed
K.SScanF.GetVAL jsr SHARED.AddYToPtr2 Y=char count parsed
.1 ply get back VAL size
@ -961,7 +961,7 @@ K.SScanF.S ldy #$ff
.2 lda #0 add \0 to param ptr
sta (ZPPtr3),y
K.SScanF.Fwd jmp MEM.AddYToPtr2 Y=char count parsed
K.SScanF.Fwd jmp SHARED.AddYToPtr2 Y=char count parsed
*/--------------------------------------
* # FOpen
* Open a file

View File

@ -41,7 +41,7 @@ K.AToF >STYA TXTPTR Ptr to source string
jsr CHARGOT
ldx #FPU.FIN
jmp MATH.RomCallPushFAC
jmp GP.RomCallPushFAC
*/--------------------------------------
* # StrToL/StrToUL
* Convert String to 32 bits (unsigned) int
@ -60,7 +60,7 @@ K.AToF >STYA TXTPTR Ptr to source string
K.StrToL sec Signed
.HS 90 BCC
K.StrToUL clc Unsigned
jsr MEM.SPtr2PPtr1
jsr SHARED.SPtr2PPtr1
>PULLA Base
jsr K.AToL.I

View File

@ -58,11 +58,11 @@ K.StrCpy clc
pha
phy
jsr MEM.SPtr1PPtr2
jsr SHARED.SPtr1PPtr2
bcc .2
.1 jsr MEM.GetCharPtr1
.1 jsr SHARED.GetCharPtr1
bne .1
.2 ldy #0
@ -202,7 +202,7 @@ K.StrCmp sec
* CS, Y,A > 0 or < 0
*\--------------------------------------
K.StrCaseCmp clc
jsr MEM.SPtr1PPtr2
jsr SHARED.SPtr1PPtr2
ldy #0

View File

@ -528,12 +528,12 @@ DRV.TERM.CSI.Exec
sta CsiHeader
.1 jsr MEM.NextCharPtr2
.1 jsr SHARED.NextCharPtr2
.2 jsr MATH.Dec2ACC32
bcs .5
jsr MEM.AddYToPtr2
jsr SHARED.AddYToPtr2
lda #255
ldx ACC32+1

View File

@ -32,7 +32,7 @@ K.Time >PUSHYA
* `>SYSCALL PTime2Time`
* ## RETURN VALUE
*\--------------------------------------
K.PTime2Time jsr MEM.SPtr1PPtr2
K.PTime2Time jsr SHARED.SPtr1PPtr2
ldy #1
lda (ZPPtr1),y Get Year
@ -166,7 +166,7 @@ K.ComputeWDAY lda #DAY0-1 Thursday : 4 (-1 for mod 7)
* `>SYSCALL CTime2Time`
* ## RETURN VALUE
*\--------------------------------------
K.CTime2Time jsr MEM.SPtr1PPtr2
K.CTime2Time jsr SHARED.SPtr1PPtr2
ldy #3
@ -341,21 +341,21 @@ K.StrFTime.MDAY .DA #3,#0,#3,#2,#3,#2,#3,#3,#2,#3,#2,#3
* ## RETURN VALUE
* none. always succeed.
*\--------------------------------------
K.StrFTime jsr MEM.SPtr1PPtr2
K.StrFTime jsr SHARED.SPtr1PPtr2
>PULLW ZPPtr3 timeptr
.1 jsr MEM.GetCharPtr2
.1 jsr SHARED.GetCharPtr2
beq .8
cmp #'%'
beq .2
jsr MEM.PutCharPtr1
jsr SHARED.PutCharPtr1
bra .1
.2 ldx #K.StrFTime.Cnt-1
jsr MEM.GetCharPtr2
jsr SHARED.GetCharPtr2
beq .8
.3 cmp K.StrFTime.Tbl,x
@ -438,7 +438,7 @@ K.StrFTime.STR sta ZPPtr4
.3 iny
lda (ZPPtr4),y
jsr MEM.PutCharPtr1
jsr SHARED.PutCharPtr1
tya
cmp (ZPPtr4)
beq .8
@ -462,9 +462,9 @@ K.StrFTime.P ldy #S.Time.HOUR
lda #'p'
.HS 2C bit abs
.1 lda #'a'
jsr MEM.PutCharPtr1
jsr SHARED.PutCharPtr1
lda #'m'
jmp MEM.PutCharPtr1
jmp SHARED.PutCharPtr1
K.StrFTime.YY ldy #S.Time.CENTURY
jsr K.StrFTime.addDecPtr1Y
@ -481,9 +481,9 @@ K.StrFTime.addDecA
jsr MATH.A2STR10
lda A2osX.NumStrBuf
jsr MEM.PutCharPtr1
jsr SHARED.PutCharPtr1
lda A2osX.NumStrBuf+1
jmp MEM.PutCharPtr1
jmp SHARED.PutCharPtr1
*--------------------------------------
K.StrFTime.DAY >PSTR "???"
>PSTR "Monday"