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

View File

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

View File

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

View File

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

View File

@ -2,11 +2,12 @@ NEW
AUTO 3,1 AUTO 3,1
*-------------------------------------- *--------------------------------------
.DUMMY .DUMMY
.OR FAC 15 Bytes .OR FAC 13 Bytes
BIN.hMem .BS 1 BIN.hMem .BS 1
BIN.R.CS.Start .BS 2 BIN.R.CS.Start .BS 2
BIN.R.CS.End .BS 2 BIN.R.CS.End .BS 2
BIN.R.End .BS 2 BIN.R.End .BS 2
BIN.R.Size .BS 2
BIN.R.Offset .BS 2 BIN.R.Offset .BS 2
BIN.R.Stop .BS 2 BIN.R.Stop .BS 2
.ED .ED
@ -222,12 +223,19 @@ BIN.Load.1 >LDYA K.S.STAT+S.STAT.P.AUXTYPE
* Y,A = Ptr to installed driver * Y,A = Ptr to installed driver
*\-------------------------------------- *\--------------------------------------
K.InsDrv >STYA ZPPtr3 SRC PTR for move K.InsDrv >STYA ZPPtr3 SRC PTR for move
>PULLW BIN.R.CS.Start >PULLW BIN.R.CS.Start
>PULLYA CS Len >PULLYA DRV.CS.SIZE
jsr BIN.ComputeCSEndYA 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 jsr MEM.GetKrnlBuf Y,A = CODE + DATA
bcs .9 No More Room to load Driver bcs .9 No More Room to load Driver
@ -238,15 +246,11 @@ K.InsDrv >STYA ZPPtr3 SRC PTR for move
jsr BIN.ComputeOffsetYA jsr BIN.ComputeOffsetYA
lda BIN.R.End lda BIN.R.Size
sec
sbc BIN.R.CS.Start
tay
eor #$ff eor #$ff
tax tax
lda BIN.R.End+1 lda BIN.R.Size+1
sbc BIN.R.CS.Start+1
eor #$ff eor #$ff
pha pha
@ -306,7 +310,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
bra .1 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 * + 1 to skip last 00 from beq .2
* ZPPtr1=Current Code PTR * ZPPtr1=Current Code PTR
lda BIN.R.CS.End lda BIN.R.CS.End
@ -341,7 +345,7 @@ BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
pla get back Opcode length... pla get back Opcode length...
.5 tay A = OPCODE length .5 tay A = OPCODE length
jsr MEM.AddYToPtr1 jsr SHARED.AddYToPtr1
.6 cmp BIN.R.Stop A = ZPPtr1 .6 cmp BIN.R.Stop A = ZPPtr1
bne .3 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.Cmd .EQ $42
DRV.BLK.UnitNum .EQ $43 DRV.BLK.UnitNum .EQ $43
DRV.BLK.Buf .EQ $44 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) * $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 * ## RETURN VALUE
* A = hDEV * A = hDEV
*\-------------------------------------- *\--------------------------------------
K.MKDev jsr MEM.SPtr1PPtr2 ptr1=fd, ptr2=name K.MKDev jsr SHARED.SPtr1PPtr2 ptr1=fd, ptr2=name
ldx DevMgr.DevIdx ldx DevMgr.DevIdx
cpx #K.DEV.MAX*2+1 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? .31 cmp #'}' end of var?
beq .50 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 bcc .32 yes, add to varname
ldx ENV.VarLen ldx ENV.VarLen
@ -282,7 +282,7 @@ K.PutEnv >STYA ZPPtr2 NAME=VALUE
.2 lda #0 .2 lda #0
sta K.Buf256,y sta K.Buf256,y
jsr MEM.AddYp1ToPtr2 jsr SHARED.AddYp1ToPtr2
>LDYAI K.Buf256 >LDYAI K.Buf256
>STYA ZPPtr1 >STYA ZPPtr1
@ -299,7 +299,7 @@ K.PutEnv >STYA ZPPtr2 NAME=VALUE
* `>SYSCALL setenv` * `>SYSCALL setenv`
* ## RETURN VALUE * ## RETURN VALUE
*\-------------------------------------- *\--------------------------------------
K.SetEnv jsr MEM.SPtr1PPtr2 K.SetEnv jsr SHARED.SPtr1PPtr2
K.SetEnv.I jsr K.UnsetEnv.I K.SetEnv.I jsr K.UnsetEnv.I
@ -463,7 +463,7 @@ ENV.ExpandSysVar
bne .4 bne .4
lda ENV.VarName lda ENV.VarName
jsr IsDigit $0...$9 ?? jsr ZP.IsDigit $0...$9 ??
bcs .1 bcs .1
and #$0F and #$0F

View File

@ -171,6 +171,23 @@ GP.AtkCall dec IRQ.InKernel
inc IRQ.InKernel inc IRQ.InKernel
rts 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 * # FAdd,FSub,FMult,FDiv,FPwr
* Return X+Y, X-Y, X*Y, X/Y, X^Y * Return X+Y, X-Y, X*Y, X/Y, X^Y
@ -186,6 +203,14 @@ GP.AtkCall dec IRQ.InKernel
* ## RETURN VALUE * ## RETURN VALUE
* On stack (float) * On stack (float)
*\-------------------------------------- *\--------------------------------------
lda pStack
clc
adc #5
sta pStack
phx
jsr GP.SetARG
plx
*/-------------------------------------- */--------------------------------------
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan * # Log,Sqr,Exp,Cos,Sin,Tan,ATan
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x) * 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 * ## RETURN VALUE
* On stack (Float) * 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 .2 jsr GP.ROMCALL
GP.GETFAC.ON.STACK GP.GETFAC.ON.STACK
@ -458,17 +254,17 @@ GP.RomCall phx
bit $C000,x bit $C000,x
rts rts
*--------------------------------------
GP.RomCall.JmpX jmp (.1,x) GP.RomCall.JmpX jmp (.1,x)
.1 .DA MATH.ADD32 .1 .DA GP.ADD32
.DA MATH.SUB32 .DA GP.SUB32
.DA MATH.UMUL32 .DA GP.UMUL32
.DA MATH.IMUL32 .DA GP.IMUL32
.DA MATH.UDIV32 .DA GP.UDIV32
.DA MATH.IDIV32 .DA GP.IDIV32
.DA MATH.UMOD32 .DA GP.UMOD32
.DA MATH.IMOD32 .DA GP.IMOD32
* http://www.txbobsc.com/scsc/scdocumentor/E7A0.html * http://www.txbobsc.com/scsc/scdocumentor/E7A0.html
@ -505,6 +301,170 @@ GP.SetFAC ldx #FPU.SETFAC
>LDYA pStack >LDYA pStack
bra GP.ROMCALL 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 K.Float ldy #3
.1 lda (pStack),y .1 lda (pStack),y
@ -520,10 +480,21 @@ K.Float ldy #3
ldx #FPU.LTOF ldx #FPU.LTOF
MATH.RomCallPushFAC GP.RomCallPushFAC
jsr GP.ROMCALL jsr GP.ROMCALL
jmp GP.GETFAC.ON.STACK 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 K.lrintf jsr GP.SetFAC
inc pStack keep 4 bytes on stack inc pStack keep 4 bytes on stack

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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