mirror of https://github.com/A2osX/A2osX.git
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
|
||||
*--------------------------------------
|
||||
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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
*--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
NEW
|
||||
AUTO 3,1
|
||||
|
||||
*--------------------------------------
|
||||
IO.OPEN.REG >MLICALL MLIGETFILEINFO
|
||||
bcc IO.OPEN.REG.E Already Exists
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -21,7 +21,7 @@ K.GetPWUID
|
|||
* `>SYSCALL getpwname`
|
||||
* ## RETURN VALUE
|
||||
*\--------------------------------------
|
||||
K.GetPWName jsr MEM.SPtr1PPtr2
|
||||
K.GetPWName jsr SHARED.SPtr1PPtr2
|
||||
|
||||
bra K.PutPW.1
|
||||
*/--------------------------------------
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Reference in New Issue