mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-19 20:29:34 +00:00
Kernel 0.93+
This commit is contained in:
parent
0a0c267939
commit
1eaef24566
Binary file not shown.
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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"
|
||||||
|
|
Loading…
Reference in New Issue
Block a user