mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-14 02:29:33 +00:00
Kernel 0.9.1 : Math API
This commit is contained in:
parent
2f42486dbd
commit
94d9a4393e
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -62,8 +62,8 @@ A2osX.Init1 ldx #$FF init 6502 stack to highest
|
||||||
jsr PrintFAX
|
jsr PrintFAX
|
||||||
|
|
||||||
lda MACHID
|
lda MACHID
|
||||||
and #MACHID.RAM
|
and #MACHID.M
|
||||||
cmp #MACHID.RAM.128
|
cmp #MACHID.M.128
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
>LDAXI MSG.SYSMEM.KO
|
>LDAXI MSG.SYSMEM.KO
|
||||||
|
|
|
@ -261,7 +261,7 @@ FIO.LOAD.ASM.T ldy #ASM.T.hMem
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
>PUSHWI 0 Aux type
|
||||||
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
>PUSHBI 6 S.FI.T.BIN
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
>PUSHW L.ASM.T.FILENAME
|
>PUSHW L.ASM.T.FILENAME
|
||||||
>SYSCALL LoadFile
|
>SYSCALL LoadFile
|
||||||
|
|
|
@ -253,7 +253,7 @@ CS.RUN.OPEN >SYSCALL RealPath.YA
|
||||||
pha
|
pha
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
>PUSHWI 0 Aux type
|
||||||
>PUSHBI 4 S.FILEINFO.TYPE.TXT
|
>PUSHBI 4 S.FI.T.TXT
|
||||||
>PUSHBI SYS.FOpen.R+SYS.FOpen.T
|
>PUSHBI SYS.FOpen.R+SYS.FOpen.T
|
||||||
|
|
||||||
pla
|
pla
|
||||||
|
|
|
@ -341,7 +341,7 @@ CharIn.Esc ldy #bEscMode
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LoadFile >PUSHWI 0 Aux type
|
LoadFile >PUSHWI 0 Aux type
|
||||||
>PUSHBI 4 S.FILEINFO.TYPE.TXT
|
>PUSHBI 4 S.FI.T.TXT
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
ldy #hFileName
|
ldy #hFileName
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
|
@ -413,7 +413,7 @@ LoadFile >PUSHWI 0 Aux type
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SaveFile >PUSHWI 0 Aux type
|
SaveFile >PUSHWI 0 Aux type
|
||||||
>PUSHBI 4 S.FILEINFO.TYPE.TXT
|
>PUSHBI 4 S.FI.T.TXT
|
||||||
>PUSHBI SYS.FOpen.X+SYS.FOpen.W
|
>PUSHBI SYS.FOpen.X+SYS.FOpen.W
|
||||||
>LDA.G hFileName
|
>LDA.G hFileName
|
||||||
>SYSCALL GetMemPtr.A
|
>SYSCALL GetMemPtr.A
|
||||||
|
|
|
@ -16,7 +16,7 @@ AUTO 6
|
||||||
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
.INB /A2OSX.BUILD/INC/LIBTCPIP.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPTmpPTR .EQ ZPDRV
|
ZPTmpPTR .EQ ZPDRV
|
||||||
Size .EQ ZPDRV+2
|
Size .EQ ZPDRV+2
|
||||||
Counter .EQ ZPDRV+4
|
Counter .EQ ZPDRV+4
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
|
|
|
@ -44,6 +44,8 @@ A2osX.CPUSPEED .EQ $BEE6 WORD, (->255.99 Mhz)
|
||||||
A2osX.Z80SLOT .EQ $BEE8
|
A2osX.Z80SLOT .EQ $BEE8
|
||||||
A2osX.Z80SPEED .EQ $BEE9 WORD
|
A2osX.Z80SPEED .EQ $BEE9 WORD
|
||||||
|
|
||||||
|
A2OsX.InKernel .EQ $BEEB
|
||||||
|
|
||||||
A2osX.TIMER16 .EQ $BEEC WORD
|
A2osX.TIMER16 .EQ $BEEC WORD
|
||||||
A2osX.RANDOM16 .EQ $BEEE WORD
|
A2osX.RANDOM16 .EQ $BEEE WORD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -182,27 +184,45 @@ SYS.SetEnv .EQ $BA
|
||||||
SYS.GetEnv.YA .EQ $BC
|
SYS.GetEnv.YA .EQ $BC
|
||||||
SYS.UnsetEnv.YA .EQ $BE
|
SYS.UnsetEnv.YA .EQ $BE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SYS.GetMem .EQ $C0
|
SYS.FAdd .EQ $C0
|
||||||
SYS.FreeMem.A .EQ $C2
|
SYS.FSub .EQ $C2
|
||||||
SYS.GetMemPtr.A .EQ $C4
|
SYS.FMult .EQ $C4
|
||||||
SYS.GetMemByID.A .EQ $C6
|
SYS.FDiv .EQ $C6
|
||||||
|
|
||||||
SYS.GetMem.YA .EQ $C8
|
SYS.FPwr .EQ $C8
|
||||||
SYS.GetMem0.YA .EQ $CA
|
* .EQ $CA
|
||||||
SYS.SetLoMem .EQ $CC
|
* .EQ $CC
|
||||||
SYS.NewStr.YA .EQ $CE
|
* .EQ $CE
|
||||||
|
|
||||||
* .EQ $D0
|
SYS.Log .EQ $D0
|
||||||
* .EQ $D2
|
SYS.Sqr .EQ $D2
|
||||||
* .EQ $D4
|
SYS.Exp .EQ $D4
|
||||||
* .EQ $D6
|
SYS.Cos .EQ $D6
|
||||||
|
|
||||||
SYS.LoadStkObj.YA .EQ $D8
|
SYS.Sin .EQ $D8
|
||||||
SYS.GetStkObj.A .EQ $DA
|
SYS.Tan .EQ $DA
|
||||||
SYS.FreeStkObj.A .EQ $DC
|
SYS.ATan .EQ $DC
|
||||||
SYS.GetMemStat.YA .EQ $DE
|
* .EQ $DF
|
||||||
|
*--------------------------------------
|
||||||
|
SYS.GetMem .EQ $E0
|
||||||
|
SYS.FreeMem.A .EQ $E2
|
||||||
|
SYS.GetMemPtr.A .EQ $E4
|
||||||
|
SYS.GetMemByID.A .EQ $E6
|
||||||
|
|
||||||
SYS.Sleep .EQ $E0
|
SYS.GetMem.YA .EQ $E8
|
||||||
|
SYS.GetMem0.YA .EQ $EA
|
||||||
|
SYS.NewStr.YA .EQ $EC
|
||||||
|
SYS.GetMemStat.YA .EQ $EE
|
||||||
|
|
||||||
|
SYS.Sleep .EQ $F0
|
||||||
|
* .EQ $F2
|
||||||
|
* .EQ $F4
|
||||||
|
* .EQ $F6
|
||||||
|
|
||||||
|
* .EQ $F8
|
||||||
|
SYS.LoadStkObj.YA .EQ $FA
|
||||||
|
SYS.GetStkObj.A .EQ $FC
|
||||||
|
SYS.FreeStkObj.A .EQ $FE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ProDOS ERROR CODES : $00->$5F
|
* ProDOS ERROR CODES : $00->$5F
|
||||||
* Lib ERROR CODES : $80->$BF
|
* Lib ERROR CODES : $80->$BF
|
||||||
|
|
|
@ -55,11 +55,11 @@ ROM.FADD .EQ 2
|
||||||
ROM.LTOF .EQ 4
|
ROM.LTOF .EQ 4
|
||||||
ROM.LOG .EQ 6
|
ROM.LOG .EQ 6
|
||||||
ROM.FMULT .EQ 8
|
ROM.FMULT .EQ 8
|
||||||
ROM.SETARG.AY .EQ 10
|
ROM.SETARG .EQ 10
|
||||||
ROM.FDIV .EQ 12
|
ROM.FDIV .EQ 12
|
||||||
ROM.SETFAC.AY .EQ 14
|
ROM.SETFAC .EQ 14
|
||||||
|
|
||||||
ROM.GETFAC .EQ 16 Get FAC at FORPNT
|
ROM.GETFAC .EQ 16 Copy FAC to (FORPNT)
|
||||||
ROM.FCOMP .EQ 18
|
ROM.FCOMP .EQ 18
|
||||||
ROM.QINT .EQ 20
|
ROM.QINT .EQ 20
|
||||||
ROM.FIN .EQ 22
|
ROM.FIN .EQ 22
|
||||||
|
|
|
@ -17,7 +17,7 @@ S.DSTAT.NET.STATUS.10 .EQ $01
|
||||||
S.DSTAT.NET.STATUS.100 .EQ $02
|
S.DSTAT.NET.STATUS.100 .EQ $02
|
||||||
S.DSTAT.NET.STATUS.1000 .EQ $03
|
S.DSTAT.NET.STATUS.1000 .EQ $03
|
||||||
S.DSTAT.NET.MAC .EQ S.DSTAT+2
|
S.DSTAT.NET.MAC .EQ S.DSTAT+2
|
||||||
S.DSTAT.NET .EQ S.DSTAT+8
|
S.DSTAT.NET .EQ S.DSTAT+8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/INC/NET.I
|
SAVE /A2OSX.BUILD/INC/NET.I
|
||||||
|
|
|
@ -39,29 +39,29 @@ MLIGETEOF .EQ $D1
|
||||||
MLISETBUF .EQ $D2
|
MLISETBUF .EQ $D2
|
||||||
MLIGETBUF .EQ $D3
|
MLIGETBUF .EQ $D3
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.FILEINFO.ACCESS .EQ $03
|
S.FI.A .EQ $03
|
||||||
S.FILEINFO.ACCESS.R .EQ $01
|
S.FI.A.R .EQ $01
|
||||||
S.FILEINFO.ACCESS.W .EQ $02
|
S.FI.A.W .EQ $02
|
||||||
S.FILEINFO.ACCESS.B .EQ $20
|
S.FI.A.B .EQ $20
|
||||||
S.FILEINFO.ACCESS.RN .EQ $40
|
S.FI.A.RN .EQ $40
|
||||||
S.FILEINFO.ACCESS.D .EQ $80
|
S.FI.A.D .EQ $80
|
||||||
S.FILEINFO.ACCESS.FULL .EQ $C3
|
S.FI.A.FULL .EQ $C3
|
||||||
S.FILEINFO.TYPE .EQ $04
|
S.FI.T .EQ $04
|
||||||
S.FILEINFO.TYPE.TXT .EQ $04
|
S.FI.T.TXT .EQ $04
|
||||||
S.FILEINFO.TYPE.DIR .EQ $0F
|
S.FI.T.DIR .EQ $0F
|
||||||
S.FILEINFO.TYPE.SYS .EQ $FF
|
S.FI.T.SYS .EQ $FF
|
||||||
S.FILEINFO.AUXTYPE .EQ $05
|
S.FI.AUXTYPE .EQ $05
|
||||||
S.FILEINFO.TOTALBLOCKS .EQ $05
|
S.FI.TBLKS .EQ $05
|
||||||
S.FILEINFO.STORETYPE .EQ $07
|
S.FI.ST .EQ $07
|
||||||
S.FILEINFO.STORETYPE.STD .EQ $01
|
S.FI.ST.STD .EQ $01
|
||||||
S.FILEINFO.STORETYPE.DIR .EQ $0D
|
S.FI.ST.DIR .EQ $0D
|
||||||
S.FILEINFO.BLOCKSUSED .EQ $08
|
S.FI.UBLKS .EQ $08
|
||||||
S.FILEINFO.MODDATE .EQ $0A
|
S.FI.MDATE .EQ $0A
|
||||||
S.FILEINFO.MODTIME .EQ $0C
|
S.FI.MTIME .EQ $0C
|
||||||
S.FILEINFO.CREATEDATE .EQ $0E
|
S.FI.CDATE .EQ $0E
|
||||||
S.FILEINFO.CREATETIME .EQ $10
|
S.FI.CTIME .EQ $10
|
||||||
*
|
*
|
||||||
S.FILEINFO .EQ $12
|
S.FI .EQ $12
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MLI .EQ $BF00
|
MLI .EQ $BF00
|
||||||
*JSPARE .EQ $BF03
|
*JSPARE .EQ $BF03
|
||||||
|
@ -103,16 +103,16 @@ LEVEL .EQ $BF94
|
||||||
*BUBIT .EQ $BF95
|
*BUBIT .EQ $BF95
|
||||||
*SPARE1 .EQ $BF96
|
*SPARE1 .EQ $BF96
|
||||||
MACHID .EQ $BF98
|
MACHID .EQ $BF98
|
||||||
MACHID.TYPE .EQ %11001000
|
MACHID.T .EQ %11001000
|
||||||
*MACHID.TYPE.II .EQ %00000000
|
*MACHID.T.II .EQ %00000000
|
||||||
*MACHID.TYPE.IIp .EQ %01000000
|
*MACHID.T.IIp .EQ %01000000
|
||||||
MACHID.TYPE.IIe .EQ %10000000
|
MACHID.T.IIe .EQ %10000000
|
||||||
MACHID.TYPE.IIc .EQ %10001000
|
MACHID.T.IIc .EQ %10001000
|
||||||
*MACHID.TYPE.III .EQ %11000000
|
*MACHID.T.III .EQ %11000000
|
||||||
MACHID.RAM .EQ %00110000
|
MACHID.M .EQ %00110000
|
||||||
MACHID.RAM.128 .EQ %00110000
|
MACHID.M.128 .EQ %00110000
|
||||||
*MACHID.RAM.64 .EQ %00100000
|
*MACHID.M.64 .EQ %00100000
|
||||||
*MACHID.RAM.48 .EQ %00010000
|
*MACHID.M.48 .EQ %00010000
|
||||||
*MACHID.SPARE .EQ %00000100
|
*MACHID.SPARE .EQ %00000100
|
||||||
MACHID.COL80 .EQ %00000010
|
MACHID.COL80 .EQ %00000010
|
||||||
MACHID.CLK .EQ %00000001
|
MACHID.CLK .EQ %00000001
|
||||||
|
|
|
@ -1,60 +0,0 @@
|
||||||
PR#3
|
|
||||||
PREFIX /A2OSX.BUILD
|
|
||||||
NEW
|
|
||||||
INC 1
|
|
||||||
AUTO 6
|
|
||||||
.LIST OFF
|
|
||||||
.OP 65C02
|
|
||||||
.OR $2000
|
|
||||||
.TF /A2OSX.BUILD/LIB/LIBMATH.O
|
|
||||||
*--------------------------------------
|
|
||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
|
||||||
.INB /A2OSX.BUILD/INC/APPLESOFT.I
|
|
||||||
* .INB /A2OSX.BUILD/INC/LIBMATH.I
|
|
||||||
*--------------------------------------
|
|
||||||
ZPPtr1 .EQ ZPLIB
|
|
||||||
*--------------------------------------
|
|
||||||
* File Header (16 Bytes)
|
|
||||||
*--------------------------------------
|
|
||||||
CS.START cld
|
|
||||||
jmp (.1,x)
|
|
||||||
.DA #$61 6502,Level 1 (65c02)
|
|
||||||
.DA #1 BIN Layout Version 1
|
|
||||||
.DA 0
|
|
||||||
.DA CS.END-CS.START
|
|
||||||
.DA 0
|
|
||||||
.DA 0
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
* Relocation Table
|
|
||||||
*--------------------------------------
|
|
||||||
.1 .DA LIB.LOAD
|
|
||||||
.DA LIB.UNLOAD
|
|
||||||
.DA COS
|
|
||||||
.DA SIN
|
|
||||||
.DA TAN
|
|
||||||
.DA 0
|
|
||||||
*--------------------------------------
|
|
||||||
COS
|
|
||||||
*--------------------------------------
|
|
||||||
SIN
|
|
||||||
*--------------------------------------
|
|
||||||
TAN
|
|
||||||
*--------------------------------------
|
|
||||||
ACOS
|
|
||||||
*--------------------------------------
|
|
||||||
ASIN
|
|
||||||
*--------------------------------------
|
|
||||||
ATAN
|
|
||||||
*--------------------------------------
|
|
||||||
LIB.LOAD
|
|
||||||
LIB.UNLOAD clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
*--------------------------------------
|
|
||||||
|
|
||||||
*--------------------------------------
|
|
||||||
MAN
|
|
||||||
SAVE /A2OSX.SRC/LIB/LIBMATH.S
|
|
||||||
ASM
|
|
|
@ -178,7 +178,7 @@ CS.RUN.Load >PUSHEA.G StatBuf
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
>PUSHWI 0 Aux type
|
||||||
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
>PUSHBI 6 S.FI.T.BIN
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
>LDA.G hFileName
|
>LDA.G hFileName
|
||||||
|
|
||||||
|
@ -210,7 +210,7 @@ CS.RUN.Load >PUSHEA.G StatBuf
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.Save >PUSHWI 0 AUXTYPE
|
CS.RUN.Save >PUSHWI 0 AUXTYPE
|
||||||
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
>PUSHBI 6 S.FI.T.BIN
|
||||||
>PUSHBI SYS.FOpen.W+SYS.FOpen.X
|
>PUSHBI SYS.FOpen.W+SYS.FOpen.X
|
||||||
|
|
||||||
>LDA.G hFileName
|
>LDA.G hFileName
|
||||||
|
|
|
@ -150,7 +150,7 @@ CFG.Read.LoadFile
|
||||||
pha
|
pha
|
||||||
|
|
||||||
>PUSHWI 0 Aux type
|
>PUSHWI 0 Aux type
|
||||||
>PUSHBI 4 S.FILEINFO.TYPE.TXT
|
>PUSHBI 4 S.FI.T.TXT
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
pla
|
pla
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
|
|
@ -99,7 +99,7 @@ K.LoadDrv.YA jsr BIN.FindDRV
|
||||||
jsr .88 call Dev.Detect
|
jsr .88 call Dev.Detect
|
||||||
bcs .96
|
bcs .96
|
||||||
|
|
||||||
jsr BIN.InstallDRV
|
jsr BIN.InsDrv
|
||||||
bcs .96
|
bcs .96
|
||||||
|
|
||||||
jsr .96 Cleanup...
|
jsr .96 Cleanup...
|
||||||
|
@ -254,10 +254,10 @@ BIN.Load.YA.1 >PUSHWI K.S.STAT
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>LDYA K.S.STAT+S.STAT.P.AUXTYPE
|
>LDYA K.S.STAT+S.STAT.P.AUXTYPE
|
||||||
>STYA BIN.Relocate.Start
|
>STYA BIN.R.Start
|
||||||
|
|
||||||
>PUSHYA Push AUXTYPE
|
>PUSHYA Push AUXTYPE
|
||||||
>PUSHBI 6 S.FILEINFO.TYPE.BIN
|
>PUSHBI 6 S.FI.T.BIN
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
>PUSHW BIN.CmdLine
|
>PUSHW BIN.CmdLine
|
||||||
|
|
||||||
|
@ -270,11 +270,11 @@ BIN.Load.YA.1 >PUSHWI K.S.STAT
|
||||||
tya
|
tya
|
||||||
* clc CC from bcs .99
|
* clc CC from bcs .99
|
||||||
|
|
||||||
adc BIN.Relocate.Start Get AUXTYPE for actual Base Address
|
adc BIN.R.Start Get AUXTYPE for actual Base Address
|
||||||
sta BIN.Relocate.End compute Range End=AUXTYPE+FILELEN
|
sta BIN.R.End compute Range End=AUXTYPE+FILELEN
|
||||||
pla
|
pla
|
||||||
adc BIN.Relocate.Start+1
|
adc BIN.R.Start+1
|
||||||
sta BIN.Relocate.End+1
|
sta BIN.R.End+1
|
||||||
|
|
||||||
txa
|
txa
|
||||||
jsr K.GetMemPtr.A
|
jsr K.GetMemPtr.A
|
||||||
|
@ -283,11 +283,11 @@ BIN.Load.YA.1 >PUSHWI K.S.STAT
|
||||||
pha YA = actual load address
|
pha YA = actual load address
|
||||||
tya
|
tya
|
||||||
sec
|
sec
|
||||||
sbc BIN.Relocate.Start
|
sbc BIN.R.Start
|
||||||
sta BIN.Relocate.Offset Offset=ZPPtr1-AUXTYPE
|
sta BIN.R.Offset Offset=ZPPtr1-AUXTYPE
|
||||||
pla
|
pla
|
||||||
sbc BIN.Relocate.Start+1
|
sbc BIN.R.Start+1
|
||||||
sta BIN.Relocate.Offset+1
|
sta BIN.R.Offset+1
|
||||||
|
|
||||||
ldy #H.BIN.CODE.LEN get Code Len
|
ldy #H.BIN.CODE.LEN get Code Len
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
|
@ -299,7 +299,7 @@ BIN.Load.YA.1 >PUSHWI K.S.STAT
|
||||||
adc ZPPtr1+1
|
adc ZPPtr1+1
|
||||||
sta ZPPtr2+1
|
sta ZPPtr2+1
|
||||||
|
|
||||||
jsr BIN.RelocateEXE
|
jsr BIN.RelExe
|
||||||
|
|
||||||
>LDYA BIN.CmdLine get back bin path
|
>LDYA BIN.CmdLine get back bin path
|
||||||
jsr K.NewStr.YA make a copy of this string
|
jsr K.NewStr.YA make a copy of this string
|
||||||
|
@ -334,51 +334,51 @@ BIN.Load.YA.1 >PUSHWI K.S.STAT
|
||||||
BIN.CmdLine .BS 2
|
BIN.CmdLine .BS 2
|
||||||
BIN.hMem .BS 1
|
BIN.hMem .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BIN.InstallDRV
|
* BIN.InsDrv
|
||||||
* In:
|
* In:
|
||||||
* pDrv = .DRV File Loaded Address
|
* pDrv = .DRV File Loaded Address
|
||||||
* Note:
|
* Note:
|
||||||
* BIN.Load.YA called from K.LoadDrvYA
|
* BIN.Load.YA called from K.LoadDrvYA
|
||||||
* Already setup correctly pDrv,
|
* Already setup correctly pDrv,
|
||||||
* BIN.Relocate.Start,End
|
* BIN.R.Start,End
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.InstallDRV ldy #H.BIN.DRV.CODE.O
|
BIN.InsDrv ldy #H.BIN.DRV.CODE.O
|
||||||
lda (pDrv),y
|
lda (pDrv),y
|
||||||
clc
|
clc
|
||||||
adc BIN.Relocate.Start Advance start From AUXTYPE to AUXTYPE+DRV code offset
|
adc BIN.R.Start Advance start From AUXTYPE to AUXTYPE+DRV code offset
|
||||||
sta BIN.Relocate.Start
|
sta BIN.R.Start
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (pDrv),y
|
lda (pDrv),y
|
||||||
adc BIN.Relocate.Start+1
|
adc BIN.R.Start+1
|
||||||
sta BIN.Relocate.Start+1
|
sta BIN.R.Start+1
|
||||||
|
|
||||||
lda DevMgr.Free Offset = Target DRV address-(AUXTYPE+DRV OFFSET)
|
lda DevMgr.Free Offset = Target DRV address-(AUXTYPE+DRV OFFSET)
|
||||||
sec
|
sec
|
||||||
sbc BIN.Relocate.Start
|
sbc BIN.R.Start
|
||||||
sta BIN.Relocate.Offset
|
sta BIN.R.Offset
|
||||||
|
|
||||||
lda DevMgr.Free+1
|
lda DevMgr.Free+1
|
||||||
sbc BIN.Relocate.Start+1
|
sbc BIN.R.Start+1
|
||||||
sta BIN.Relocate.Offset+1
|
sta BIN.R.Offset+1
|
||||||
|
|
||||||
lda BIN.Relocate.End Compute DRVLen=End-start
|
lda BIN.R.End Compute DRVLen=End-start
|
||||||
sec
|
sec
|
||||||
sbc BIN.Relocate.Start
|
sbc BIN.R.Start
|
||||||
sta BIN.InstallDRV.DRVLen
|
sta BIN.InsDrv.Len
|
||||||
|
|
||||||
lda BIN.Relocate.End+1
|
lda BIN.R.End+1
|
||||||
sbc BIN.Relocate.Start+1
|
sbc BIN.R.Start+1
|
||||||
sta BIN.InstallDRV.DRVLen+1
|
sta BIN.InsDrv.Len+1
|
||||||
|
|
||||||
lda DevMgr.Free
|
lda DevMgr.Free
|
||||||
clc
|
clc
|
||||||
adc BIN.InstallDRV.DRVLen
|
adc BIN.InsDrv.Len
|
||||||
sta BIN.InstallDRV.DRVEnd
|
sta BIN.InsDrv.End
|
||||||
tay Save DRVEnd LO
|
tay Save DRVEnd LO
|
||||||
lda DevMgr.Free+1
|
lda DevMgr.Free+1
|
||||||
adc BIN.InstallDRV.DRVLen+1 A = DRVEnd HI
|
adc BIN.InsDrv.Len+1 A = DRVEnd HI
|
||||||
sta BIN.InstallDRV.DRVEnd+1
|
sta BIN.InsDrv.End+1
|
||||||
|
|
||||||
bcs .9 we crossed $FFFF, out of mem
|
bcs .9 we crossed $FFFF, out of mem
|
||||||
|
|
||||||
|
@ -442,10 +442,10 @@ BIN.InstallDRV ldy #H.BIN.DRV.CODE.O
|
||||||
adc pDrv+1
|
adc pDrv+1
|
||||||
sta ZPPtr1+1 set Ptr1 to Src CODE
|
sta ZPPtr1+1 set Ptr1 to Src CODE
|
||||||
|
|
||||||
lda BIN.InstallDRV.DrvLen+1
|
lda BIN.InsDrv.Len+1
|
||||||
eor #$ff
|
eor #$ff
|
||||||
pha
|
pha
|
||||||
lda BIN.InstallDRV.DrvLen
|
lda BIN.InsDrv.Len
|
||||||
eor #$ff
|
eor #$ff
|
||||||
tax
|
tax
|
||||||
|
|
||||||
|
@ -479,27 +479,27 @@ BIN.InstallDRV ldy #H.BIN.DRV.CODE.O
|
||||||
adc (pDrv),y
|
adc (pDrv),y
|
||||||
sta ZPPtr2+1 Make ZPPtr2 = ZPPtr1 + CodeLen
|
sta ZPPtr2+1 Make ZPPtr2 = ZPPtr1 + CodeLen
|
||||||
|
|
||||||
jsr BIN.RelocateDRV
|
jsr BIN.RelDrv
|
||||||
|
|
||||||
>LDYA BIN.InstallDRV.DrvEnd
|
>LDYA BIN.InsDrv.End
|
||||||
>STYA DevMgr.Free
|
>STYA DevMgr.Free
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.InstallDRV.DrvLen .BS 2
|
BIN.InsDrv.Len .BS 2
|
||||||
BIN.InstallDRV.DrvEnd .BS 2
|
BIN.InsDrv.End .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BIN.Relocate___ :
|
* BIN.Rel___ :
|
||||||
* In :
|
* In :
|
||||||
* ZPPtr1 = Ptr to Code
|
* ZPPtr1 = Ptr to Code
|
||||||
* ZPPtr2 = End Of Code
|
* ZPPtr2 = End Of Code
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.Relocate.Start .BS 2
|
BIN.R.Start .BS 2
|
||||||
BIN.Relocate.End .BS 2
|
BIN.R.End .BS 2
|
||||||
BIN.Relocate.Offset .BS 2
|
BIN.R.Offset .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.RelocateEXE ldy #H.BIN.T+1
|
BIN.RelExe ldy #H.BIN.T+1
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
cmp /H.BIN.T.BIN65
|
cmp /H.BIN.T.BIN65
|
||||||
beq .1
|
beq .1
|
||||||
|
@ -513,19 +513,19 @@ BIN.RelocateEXE ldy #H.BIN.T+1
|
||||||
.1 ldy #H.BIN.JMP relocate Main JMP
|
.1 ldy #H.BIN.JMP relocate Main JMP
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
clc
|
clc
|
||||||
adc BIN.Relocate.Offset
|
adc BIN.R.Offset
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
adc BIN.Relocate.Offset+1
|
adc BIN.R.Offset+1
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
ldy #H.BIN.EXE.REL.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes)
|
ldy #H.BIN.EXE.REL.TABLE skip Header, CS.SIZE & DS.SIZE... (16 bytes)
|
||||||
|
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BIN.RelocateDRV ldy #H.BIN.DRV.REL.TABLE
|
BIN.RelDrv ldy #H.BIN.DRV.REL.TABLE
|
||||||
|
|
||||||
.1 lda (ZPPtr1),y Start Relocate JMP table
|
.1 lda (ZPPtr1),y Start Relocate JMP table
|
||||||
tax LO in X
|
tax LO in X
|
||||||
|
@ -536,12 +536,12 @@ BIN.RelocateDRV ldy #H.BIN.DRV.REL.TABLE
|
||||||
dey
|
dey
|
||||||
txa get back LO
|
txa get back LO
|
||||||
clc
|
clc
|
||||||
adc BIN.Relocate.Offset
|
adc BIN.R.Offset
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
adc BIN.Relocate.Offset+1
|
adc BIN.R.Offset+1
|
||||||
sta (ZPPtr1),y
|
sta (ZPPtr1),y
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
@ -580,25 +580,25 @@ BIN.RelocateDRV ldy #H.BIN.DRV.REL.TABLE
|
||||||
|
|
||||||
iny make Y point to HI
|
iny make Y point to HI
|
||||||
|
|
||||||
cpx BIN.Relocate.Start
|
cpx BIN.R.Start
|
||||||
lda (ZPPtr1),y Get HI
|
lda (ZPPtr1),y Get HI
|
||||||
sbc BIN.Relocate.Start+1
|
sbc BIN.R.Start+1
|
||||||
bcc .5 addr < BIN.Relocate.Start, out of range
|
bcc .5 addr < BIN.R.Start, out of range
|
||||||
|
|
||||||
txa Get back LO
|
txa Get back LO
|
||||||
cpx BIN.Relocate.End
|
cpx BIN.R.End
|
||||||
lda (ZPPtr1),y Get HI
|
lda (ZPPtr1),y Get HI
|
||||||
sbc BIN.Relocate.End+1
|
sbc BIN.R.End+1
|
||||||
bcs .5 addr > BIN.Relocate.End, out of range
|
bcs .5 addr > BIN.R.End, out of range
|
||||||
|
|
||||||
txa Get back LO
|
txa Get back LO
|
||||||
* clc CC from bcs .6
|
* clc CC from bcs .6
|
||||||
adc BIN.Relocate.Offset add Offset to abs address
|
adc BIN.R.Offset add Offset to abs address
|
||||||
dey
|
dey
|
||||||
sta (ZPPtr1),y store relocated addr LO
|
sta (ZPPtr1),y store relocated addr LO
|
||||||
iny
|
iny
|
||||||
lda (ZPPtr1),y Get HI
|
lda (ZPPtr1),y Get HI
|
||||||
adc BIN.Relocate.Offset+1
|
adc BIN.R.Offset+1
|
||||||
sta (ZPPtr1),y store relocated addr HI
|
sta (ZPPtr1),y store relocated addr HI
|
||||||
|
|
||||||
.5 pla get back Opcode length...
|
.5 pla get back Opcode length...
|
||||||
|
|
|
@ -93,7 +93,7 @@ CORE.Events jsr CORE.GetEvents
|
||||||
|
|
||||||
bcs .4 CS=no event
|
bcs .4 CS=no event
|
||||||
|
|
||||||
jsr CORE.DispatchEvents
|
jsr CORE.Dispatch
|
||||||
bcc .4 CC=All Events Dispatched
|
bcc .4 CC=All Events Dispatched
|
||||||
|
|
||||||
jsr CORE.PSSelect0
|
jsr CORE.PSSelect0
|
||||||
|
@ -144,7 +144,7 @@ CORE.Events jsr CORE.GetEvents
|
||||||
bcs .8
|
bcs .8
|
||||||
|
|
||||||
sta KBDSTROBE
|
sta KBDSTROBE
|
||||||
jsr CORE.ScreenSelect
|
jsr CORE.ScrSel
|
||||||
.8 jmp CORE.Run
|
.8 jmp CORE.Run
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CORE.GetEvents :
|
* CORE.GetEvents :
|
||||||
|
@ -224,14 +224,13 @@ CORE.GetEvents lda #Evt.Table
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* CORE.DispatchEvents
|
* CORE.Dispatch
|
||||||
* IN:
|
* IN:
|
||||||
* OUT:
|
* OUT:
|
||||||
* CS: Not Dispatched
|
* CS: Not Dispatched
|
||||||
* CC: Event Cleared
|
* CC: Event Cleared
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.DispatchEvents
|
CORE.Dispatch lda CORE.PSCount
|
||||||
lda CORE.PSCount
|
|
||||||
sta CORE.Counter
|
sta CORE.Counter
|
||||||
beq .9
|
beq .9
|
||||||
|
|
||||||
|
@ -378,8 +377,7 @@ CORE.DumpEvent ldy #S.EVT-1
|
||||||
|
|
||||||
.2 >CSTR "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n"
|
.2 >CSTR "!Evt:F=%b,Dev=$%h,LO=$%h,HI=$%h,W1=$%H,W2=$%H\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.ScreenSelect
|
CORE.ScrSel and #$0F
|
||||||
and #$0F
|
|
||||||
cmp A2osX.ASCREEN Same as active screen...nothing to do
|
cmp A2osX.ASCREEN Same as active screen...nothing to do
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
|
|
|
@ -11,18 +11,18 @@ AUTO 6
|
||||||
* X = hMem to Expanded String (C-String)
|
* X = hMem to Expanded String (C-String)
|
||||||
* Y,A = PTR to Expanded String
|
* Y,A = PTR to Expanded String
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
K.ExpandStr.YA stz ENV.hStr Reset Intermediate string...
|
||||||
|
|
||||||
.1 >STYA ZPPtr2
|
.1 >STYA ZPPtr2
|
||||||
stz K.ExpandStr.BufLen init Expanded String len=0
|
stz ENV.BufLen init Expanded String len=0
|
||||||
stz K.ExpandStr.bFound No var found yet
|
stz ENV.bFound No var found yet
|
||||||
|
|
||||||
stz K.ExpandStr.bNoExp Reset no expand flag
|
stz ENV.bNoExp Reset no expand flag
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
.10 stz K.ExpandStr.VarLen
|
.10 stz ENV.VarLen
|
||||||
stz K.ExpandStr.bInVar
|
stz ENV.bInVar
|
||||||
|
|
||||||
.11 lda (ZPPtr2),y End of CSTR?
|
.11 lda (ZPPtr2),y End of CSTR?
|
||||||
beq .8
|
beq .8
|
||||||
|
@ -32,34 +32,34 @@ K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
||||||
cmp #'''
|
cmp #'''
|
||||||
bne .21
|
bne .21
|
||||||
|
|
||||||
lda K.ExpandStr.bNoExp
|
lda ENV.bNoExp
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta K.ExpandStr.bNoExp toggle flag
|
sta ENV.bNoExp toggle flag
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.21 bit K.ExpandStr.bNoExp
|
.21 bit ENV.bNoExp
|
||||||
bpl .23
|
bpl .23
|
||||||
|
|
||||||
.22 ldx K.ExpandStr.BufLen
|
.22 ldx ENV.BufLen
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
inx
|
inx
|
||||||
stx K.ExpandStr.BufLen
|
stx ENV.BufLen
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.23 ldx K.ExpandStr.bInVar already in a var?
|
.23 ldx ENV.bInVar already in a var?
|
||||||
bne .3 yes...
|
bne .3 yes...
|
||||||
|
|
||||||
cmp #'$' no, found one ?
|
cmp #'$' no, found one ?
|
||||||
bne .22 no, store...
|
bne .22 no, store...
|
||||||
|
|
||||||
sta K.ExpandStr.bFound Toggle flag
|
sta ENV.bFound Toggle flag
|
||||||
sta K.ExpandStr.bInVar
|
sta ENV.bInVar
|
||||||
|
|
||||||
bra .11 skip this char
|
bra .11 skip this char
|
||||||
|
|
||||||
.3 cmp #'{' we are in var, "{" after "$"?
|
.3 cmp #'{' we are in var, "{" after "$"?
|
||||||
bne .31
|
bne .31
|
||||||
ldx K.ExpandStr.VarLen No char in var yet ?
|
ldx ENV.VarLen No char in var yet ?
|
||||||
beq .11 normal, "${" syntax is ok,skip
|
beq .11 normal, "${" syntax is ok,skip
|
||||||
|
|
||||||
bne .5 not allowed char in varname, end of var
|
bne .5 not allowed char in varname, end of var
|
||||||
|
@ -67,65 +67,64 @@ K.ExpandStr.YA stz K.ExpandStr.hPStr Reset Intermediate string...
|
||||||
.31 cmp #'}' end of var?
|
.31 cmp #'}' end of var?
|
||||||
beq .50
|
beq .50
|
||||||
|
|
||||||
jsr K.ExpandStrValidChar
|
jsr ENV.IsVarChar
|
||||||
bcc .32 yes, add to varname
|
bcc .32 yes, add to varname
|
||||||
|
|
||||||
ldx K.ExpandStr.VarLen
|
ldx ENV.VarLen
|
||||||
bne .5 varname has already chars...end of var
|
bne .5 varname has already chars...end of var
|
||||||
|
|
||||||
inx must be a $? or ?x.....go expand
|
inx must be a $? or ?x.....go expand
|
||||||
stx K.ExpandStr.VarLen
|
stx ENV.VarLen
|
||||||
sta K.ExpandStr.VarName
|
sta ENV.VarName
|
||||||
bra .51 go Expand....
|
bra .51 go Expand....
|
||||||
|
|
||||||
.32 ldx K.ExpandStr.VarLen
|
.32 ldx ENV.VarLen
|
||||||
cpx #16
|
cpx #16
|
||||||
beq .11 varname longer than 15....ignore
|
beq .11 varname longer than 15....ignore
|
||||||
sta K.ExpandStr.VarName,x
|
sta ENV.VarName,x
|
||||||
inx
|
inx
|
||||||
stx K.ExpandStr.VarLen
|
stx ENV.VarLen
|
||||||
bra .11
|
bra .11
|
||||||
|
|
||||||
.5 dey last char was invalid...move back
|
.5 dey last char was invalid...move back
|
||||||
|
|
||||||
.50 ldx K.ExpandStr.VarLen
|
.50 ldx ENV.VarLen
|
||||||
beq .52 var name is empty...start over
|
beq .52 var name is empty...start over
|
||||||
|
|
||||||
.51 stz K.ExpandStr.VarName,x
|
.51 stz ENV.VarName,x
|
||||||
phy save current index
|
phy save current index
|
||||||
jsr K.ExpandStrGetValue
|
jsr ENV.GetValue
|
||||||
ply restore index in string...
|
ply restore index in string...
|
||||||
.52 jmp .10 reset start flag and continue
|
.52 jmp .10 reset start flag and continue
|
||||||
|
|
||||||
.8 ldx K.ExpandStr.VarLen end of STR,are we in a var?
|
.8 ldx ENV.VarLen end of STR,are we in a var?
|
||||||
beq .80 no...exit...
|
beq .80 no...exit...
|
||||||
|
|
||||||
stz K.ExpandStr.VarName,x
|
stz ENV.VarName,x
|
||||||
jsr K.ExpandStrGetValue yes, expand and add to STR
|
jsr ENV.GetValue yes, expand and add to STR
|
||||||
|
|
||||||
.80 lda K.ExpandStr.hPStr working from our temp string ?
|
.80 lda ENV.hStr working from our temp string ?
|
||||||
beq .81 no...
|
beq .81 no...
|
||||||
|
|
||||||
jsr K.FreeMem.A yes, discard....
|
jsr K.FreeMem.A yes, discard....
|
||||||
|
|
||||||
.81 ldx K.ExpandStr.BufLen
|
.81 ldx ENV.BufLen
|
||||||
stz K.Buf256,x
|
stz K.Buf256,x
|
||||||
|
|
||||||
>LDYAI K.Buf256
|
>LDYAI K.Buf256
|
||||||
jsr K.NewStr.YA
|
jsr K.NewStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
stx K.ExpandStr.hPStr save this as temp string, in case of recurse
|
stx ENV.hStr save this as temp string, in case of recurse
|
||||||
ldx K.ExpandStr.bFound Did we expand something ?
|
ldx ENV.bFound Did we expand something ?
|
||||||
beq .82
|
beq .82
|
||||||
jmp .1 Yes, start over with hPStr
|
jmp .1 Yes, start over with hPStr
|
||||||
|
|
||||||
.82 ldx K.ExpandStr.hPStr
|
.82 ldx ENV.hStr
|
||||||
* or exit with Y,A from K.NewStrYA
|
* or exit with Y,A from K.NewStrYA
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ExpandStrValidChar
|
ENV.IsVarChar cmp #'_'
|
||||||
cmp #'_'
|
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
cmp #'0'
|
cmp #'0'
|
||||||
|
@ -146,27 +145,26 @@ K.ExpandStrValidChar
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ExpandStrGetValue
|
ENV.GetValue jsr ENV.ExpandSysVar
|
||||||
jsr ENV.ExpandSysVar
|
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
||||||
>LDYAI K.ExpandStr.VarName
|
>LDYAI ENV.VarName
|
||||||
jsr K.GetEnv.YA
|
jsr K.GetEnv.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
|
|
||||||
jsr ENV.AppendPtr3ToBuf
|
jsr ENV.AddP3ToBuf
|
||||||
|
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.ExpandStr.BufLen .BS 1
|
ENV.BufLen .BS 1
|
||||||
K.ExpandStr.bNoExp .BS 1
|
ENV.bNoExp .BS 1
|
||||||
K.ExpandStr.bInVar .BS 1
|
ENV.bInVar .BS 1
|
||||||
K.ExpandStr.bFound .BS 1
|
ENV.bFound .BS 1
|
||||||
K.ExpandStr.hPStr .BS 1
|
ENV.hStr .BS 1
|
||||||
K.ExpandStr.VarLen .BS 1
|
ENV.VarLen .BS 1
|
||||||
K.ExpandStr.VarName .BS 16
|
ENV.VarName .BS 16
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # PutEnv.YA
|
* # PutEnv.YA
|
||||||
* ## In:
|
* ## In:
|
||||||
|
@ -198,7 +196,7 @@ K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
|
||||||
|
|
||||||
>LDYAI K.Buf256
|
>LDYAI K.Buf256
|
||||||
>STYA ZPPtr1
|
>STYA ZPPtr1
|
||||||
bra K.SetEnvPtr1Ptr2
|
bra K.SetEnv.I
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
|
@ -209,11 +207,10 @@ K.PutEnv.YA >STYA ZPPtr1 NAME=VALUE
|
||||||
* PUSHW = PTR To Name (PSTR)
|
* PUSHW = PTR To Name (PSTR)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.SetEnv jsr PullPtr1Ptr2 Ptr1=NAME,Ptr2=VALUE
|
K.SetEnv jsr PullP1P2 Ptr1=NAME,Ptr2=VALUE
|
||||||
K.SetEnvPtr1Ptr2
|
K.SetEnv.I jsr K.UnsetEnv.I
|
||||||
jsr S.UnsetEnvPtr1
|
|
||||||
|
|
||||||
jsr ENV.InitEnvPtr3 ZPPtr3 -> Env
|
jsr ENV.InitEnvP3 ZPPtr3 -> Env
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
ldx #0
|
ldx #0
|
||||||
|
@ -316,10 +313,10 @@ K.SetEnvPtr1Ptr2
|
||||||
* CS : not found
|
* CS : not found
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.GetEnv.YA >STYA ZPPtr1
|
K.GetEnv.YA >STYA ZPPtr1
|
||||||
jsr ENV.FindVarPtr1
|
jsr ENV.FindVarP1
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr ENV.NextEnvPtr3 Skip NAME
|
jsr ENV.NextEnvP3 Skip NAME
|
||||||
clc just in case ADC in NextEnvPtr1 disturb CC
|
clc just in case ADC in NextEnvPtr1 disturb CC
|
||||||
|
|
||||||
.9 >LDYA ZPPtr3
|
.9 >LDYA ZPPtr3
|
||||||
|
@ -330,11 +327,11 @@ K.GetEnv.YA >STYA ZPPtr1
|
||||||
* Y,A = PTR To Name (PSTR)
|
* Y,A = PTR To Name (PSTR)
|
||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.UnsetEnv.YA >STYA ZPPtr1 Store VAR Name
|
K.UnsetEnv.YA >STYA ZPPtr1 Store VAR Name
|
||||||
S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
K.UnsetEnv.I jsr ENV.FindVarP1
|
||||||
bcs .8 not found, quit
|
bcs .8 not found, quit
|
||||||
|
|
||||||
jsr ENV.DiscardVarPtr3 Ptr3 -> ENVNAME
|
jsr ENV.DelVarP3 Ptr3 -> ENVNAME
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
@ -343,18 +340,18 @@ S.UnsetEnvPtr1 jsr ENV.FindVarPtr1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ENV.ExpandSysVar
|
* ENV.ExpandSysVar
|
||||||
* In:
|
* In:
|
||||||
* K.ExpandStr.VarName
|
* ENV.VarLen,ENV.VarName
|
||||||
* Out:
|
* Out:
|
||||||
* CC: Found
|
* CC: Found
|
||||||
* Append VALUE to K.Buf256
|
* Append VALUE to K.Buf256
|
||||||
* CS: Not Found
|
* CS: Not Found
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.ExpandSysVar
|
ENV.ExpandSysVar
|
||||||
ldx K.ExpandStr.VarLen
|
ldx ENV.VarLen
|
||||||
cpx #1 is name 1 char?
|
cpx #1 is name 1 char?
|
||||||
bne .9
|
bne .9
|
||||||
|
|
||||||
lda K.ExpandStr.VarName
|
lda ENV.VarName
|
||||||
cmp #'0'-1 $0...$9 ??
|
cmp #'0'-1 $0...$9 ??
|
||||||
bcc .1
|
bcc .1
|
||||||
cmp #'9'+1
|
cmp #'9'+1
|
||||||
|
@ -365,7 +362,7 @@ ENV.ExpandSysVar
|
||||||
bcs .8 Arg# is undefined, do not append anything
|
bcs .8 Arg# is undefined, do not append anything
|
||||||
|
|
||||||
>STYA ZPPtr3
|
>STYA ZPPtr3
|
||||||
jmp ENV.AppendPtr3ToBuf
|
jmp ENV.AddP3ToBuf
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
@ -401,9 +398,9 @@ ENV.SysVarsArgs lda #1
|
||||||
|
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
beq .8
|
beq .8
|
||||||
jsr ENV.AppendPtr3ToBuf
|
jsr ENV.AddP3ToBuf
|
||||||
|
|
||||||
.2 jsr ENV.NextEnvPtr3
|
.2 jsr ENV.NextEnvP3
|
||||||
lda (ZPPtr3)
|
lda (ZPPtr3)
|
||||||
beq .8
|
beq .8
|
||||||
|
|
||||||
|
@ -411,16 +408,15 @@ ENV.SysVarsArgs lda #1
|
||||||
beq .8 make sure not overlapping buf 256
|
beq .8 make sure not overlapping buf 256
|
||||||
lda #' '
|
lda #' '
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
stx K.ExpandStr.BufLen
|
stx ENV.BufLen
|
||||||
|
|
||||||
jsr ENV.AppendPtr3ToBuf
|
jsr ENV.AddP3ToBuf
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.AppendPtr3ToBuf
|
ENV.AddP3ToBuf ldx ENV.BufLen
|
||||||
ldx K.ExpandStr.BufLen
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
dex
|
dex
|
||||||
|
|
||||||
|
@ -430,7 +426,7 @@ ENV.AppendPtr3ToBuf
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
stx K.ExpandStr.BufLen
|
stx ENV.BufLen
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.SysVarsArgC ldy #S.PS.ARGC
|
ENV.SysVarsArgC ldy #S.PS.ARGC
|
||||||
|
@ -466,7 +462,7 @@ ENV.SysVarsCPID ldy #S.PS.CPID
|
||||||
|
|
||||||
cld
|
cld
|
||||||
|
|
||||||
ldx K.ExpandStr.BufLen
|
ldx ENV.BufLen
|
||||||
lda .3+1
|
lda .3+1
|
||||||
beq .4
|
beq .4
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
|
@ -489,11 +485,11 @@ ENV.SysVarsCPID ldy #S.PS.CPID
|
||||||
sta K.Buf256,x
|
sta K.Buf256,x
|
||||||
inx
|
inx
|
||||||
|
|
||||||
stx K.ExpandStr.BufLen
|
stx ENV.BufLen
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ENV.FindVarPtr1
|
* ENV.FindVarP1
|
||||||
* In:
|
* In:
|
||||||
* ZPPtr1 -> NAME
|
* ZPPtr1 -> NAME
|
||||||
* Out:
|
* Out:
|
||||||
|
@ -504,7 +500,7 @@ ENV.SysVarsCPID ldy #S.PS.CPID
|
||||||
* ZPPtr1 -> NAME
|
* ZPPtr1 -> NAME
|
||||||
* ZPPtr3 -> PTR to Ending 0
|
* ZPPtr3 -> PTR to Ending 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.FindVarPtr1 jsr ENV.InitEnvPtr3 Store ENV
|
ENV.FindVarP1 jsr ENV.InitEnvP3 Store ENV
|
||||||
|
|
||||||
.1 lda (ZPPtr3)
|
.1 lda (ZPPtr3)
|
||||||
beq .9 end of ENV
|
beq .9 end of ENV
|
||||||
|
@ -524,22 +520,21 @@ ENV.FindVarPtr1 jsr ENV.InitEnvPtr3 Store ENV
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.3 jsr ENV.NextEnvPtr3 Skip NAME
|
.3 jsr ENV.NextEnvP3 Skip NAME
|
||||||
jsr ENV.NextEnvPtr3 Skip VALUE
|
jsr ENV.NextEnvP3 Skip VALUE
|
||||||
bra .1
|
bra .1
|
||||||
|
|
||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ENV.DiscardVarPtr3
|
* ENV.DelVarP3
|
||||||
* In:
|
* In:
|
||||||
* ZPPtr3 -> ENV.NAME to Discard
|
* ZPPtr3 -> ENV.NAME to Discard
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.DiscardVarPtr3
|
ENV.DelVarP3 >LDYA ZPPtr3 save actual Ptr
|
||||||
>LDYA ZPPtr3 save actual Ptr
|
|
||||||
>STYA ZPPtr4
|
>STYA ZPPtr4
|
||||||
jsr ENV.NextEnvPtr3 Skip current NAME....
|
jsr ENV.NextEnvP3 Skip current NAME....
|
||||||
jsr ENV.NextEnvPtr3 Skip current VALUE....
|
jsr ENV.NextEnvP3 Skip current VALUE....
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
|
@ -565,13 +560,13 @@ ENV.DiscardVarPtr3
|
||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.InitEnvPtr3 ldy #S.PS.hENV
|
ENV.InitEnvP3 ldy #S.PS.hENV
|
||||||
lda (pPs),y
|
lda (pPs),y
|
||||||
jsr K.GetMemPtr.A
|
jsr K.GetMemPtr.A
|
||||||
>STYA ZPPtr3 Store ENV
|
>STYA ZPPtr3 Store ENV
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ENV.NextEnvPtr3 ldy #0
|
ENV.NextEnvP3 ldy #0
|
||||||
|
|
||||||
.1 lda (ZPPtr3),y
|
.1 lda (ZPPtr3),y
|
||||||
beq .2
|
beq .2
|
||||||
|
|
|
@ -15,7 +15,7 @@ AUTO 6
|
||||||
K.LoadTxtFile.YA
|
K.LoadTxtFile.YA
|
||||||
pha
|
pha
|
||||||
>PUSHWI 0 Aux type
|
>PUSHWI 0 Aux type
|
||||||
>PUSHBI 4 S.FILEINFO.TYPE.TXT
|
>PUSHBI 4 S.FI.T.TXT
|
||||||
>PUSHBI SYS.FOpen.R
|
>PUSHBI SYS.FOpen.R
|
||||||
pla
|
pla
|
||||||
>PUSHYA
|
>PUSHYA
|
||||||
|
@ -34,18 +34,18 @@ K.LoadTxtFile.YA
|
||||||
* X = hMem of Loaded File
|
* X = hMem of Loaded File
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.LoadFile clc
|
K.LoadFile clc
|
||||||
ror K.LoadFile.bTXT
|
ror FIO.bTXT
|
||||||
|
|
||||||
jsr K.FOpen
|
jsr K.FOpen
|
||||||
bcs .9
|
bcs .9
|
||||||
sta K.LoadFile.hFile
|
sta FIO.hFile
|
||||||
|
|
||||||
jsr K.LoadFile.GetSize
|
jsr FIO.GetSize
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>LDYA K.LoadFile.FSize
|
>LDYA FIO.FSize
|
||||||
|
|
||||||
bit K.LoadFile.bTXT Add 1 to buffer size for ending 0
|
bit FIO.bTXT Add 1 to buffer size for ending 0
|
||||||
bpl .1
|
bpl .1
|
||||||
iny
|
iny
|
||||||
bne .1
|
bne .1
|
||||||
|
@ -56,12 +56,12 @@ K.LoadFile clc
|
||||||
|
|
||||||
.1 jsr K.GetMem.YA
|
.1 jsr K.GetMem.YA
|
||||||
bcs .99
|
bcs .99
|
||||||
>STYA K.LoadFile.Mem
|
>STYA FIO.Mem
|
||||||
stx .8+1
|
stx .8+1
|
||||||
|
|
||||||
>PUSHW K.LoadFile.Mem
|
>PUSHW FIO.Mem
|
||||||
>PUSHW K.LoadFile.FSize
|
>PUSHW FIO.FSize
|
||||||
>PUSHB K.LoadFile.hFile
|
>PUSHB FIO.hFile
|
||||||
jsr K.FRead
|
jsr K.FRead
|
||||||
bcs .98
|
bcs .98
|
||||||
|
|
||||||
|
@ -70,15 +70,15 @@ K.LoadFile clc
|
||||||
|
|
||||||
jsr .99 close file
|
jsr .99 close file
|
||||||
|
|
||||||
bit K.LoadFile.bTXT
|
bit FIO.bTXT
|
||||||
bpl .6
|
bpl .6
|
||||||
|
|
||||||
clc set ending 0
|
clc set ending 0
|
||||||
lda .6+1
|
lda .6+1
|
||||||
adc K.LoadFile.Mem
|
adc FIO.Mem
|
||||||
sta .5+1
|
sta .5+1
|
||||||
lda .7+1
|
lda .7+1
|
||||||
adc K.LoadFile.Mem+1
|
adc FIO.Mem+1
|
||||||
sta .5+2
|
sta .5+2
|
||||||
|
|
||||||
.5 stz $ffff Self Modified
|
.5 stz $ffff Self Modified
|
||||||
|
@ -95,52 +95,51 @@ K.LoadFile clc
|
||||||
pla
|
pla
|
||||||
|
|
||||||
.99 pha
|
.99 pha
|
||||||
lda K.LoadFile.hFile
|
lda FIO.hFile
|
||||||
jsr K.FClose.A
|
jsr K.FClose.A
|
||||||
pla
|
pla
|
||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.LoadFile.GetSize
|
FIO.GetSize stz FIO.FPos
|
||||||
stz K.LoadFile.FPos
|
stz FIO.FPos+1
|
||||||
stz K.LoadFile.FPos+1
|
stz FIO.FPos+2
|
||||||
stz K.LoadFile.FPos+2
|
stz FIO.FPos+3
|
||||||
stz K.LoadFile.FPos+3
|
|
||||||
|
|
||||||
>PUSHWI K.LoadFile.FPos
|
>PUSHWI FIO.FPos
|
||||||
>PUSHBI SYS.FSeek.END
|
>PUSHBI SYS.FSeek.END
|
||||||
>PUSHB K.LoadFile.hFile
|
>PUSHB FIO.hFile
|
||||||
jsr K.FSeek
|
jsr K.FSeek
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>PUSHWI K.LoadFile.FPos
|
>PUSHWI FIO.FPos
|
||||||
>PUSHB K.LoadFile.hFile
|
>PUSHB FIO.hFile
|
||||||
jsr K.FTell
|
jsr K.FTell
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
lda K.LoadFile.FPos+2
|
lda FIO.FPos+2
|
||||||
ora K.LoadFile.FPos+3
|
ora FIO.FPos+3
|
||||||
bne .98 too big!
|
bne .98 too big!
|
||||||
|
|
||||||
>LDYA K.LoadFile.FPos
|
>LDYA FIO.FPos
|
||||||
>STYA K.LoadFile.FSize
|
>STYA FIO.FSize
|
||||||
|
|
||||||
stz K.LoadFile.FPos
|
stz FIO.FPos
|
||||||
stz K.LoadFile.FPos+1
|
stz FIO.FPos+1
|
||||||
|
|
||||||
>PUSHWI K.LoadFile.FPos
|
>PUSHWI FIO.FPos
|
||||||
>PUSHBI SYS.FSeek.SET
|
>PUSHBI SYS.FSeek.SET
|
||||||
>PUSHB K.LoadFile.hFile
|
>PUSHB FIO.hFile
|
||||||
jmp K.FSeek
|
jmp K.FSeek
|
||||||
|
|
||||||
.98 lda #K.E.FTB
|
.98 lda #K.E.FTB
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.LoadFile.bTXT .BS 1
|
FIO.bTXT .BS 1
|
||||||
K.LoadFile.hFile .BS 1
|
FIO.hFile .BS 1
|
||||||
K.LoadFile.FPos .BS 4
|
FIO.FPos .BS 4
|
||||||
K.LoadFile.Mem .BS 2
|
FIO.Mem .BS 2
|
||||||
K.LoadFile.FSize .BS 2
|
FIO.FSize .BS 2
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # ChTyp
|
* # ChTyp
|
||||||
* ## In:
|
* ## In:
|
||||||
|
@ -154,7 +153,7 @@ K.ChTyp jsr PFT.CheckPathSTK
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 lda #$ff
|
.1 lda #$ff
|
||||||
sta K.MLI.PARAMS+S.FILEINFO.TYPE
|
sta K.MLI.PARAMS+S.FI.T
|
||||||
>MLICALL MLISETFILEINFO
|
>MLICALL MLISETFILEINFO
|
||||||
.9 rts
|
.9 rts
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
|
|
|
@ -10,7 +10,7 @@ AUTO 6
|
||||||
* X = SYSfnc.Index
|
* X = SYSfnc.Index
|
||||||
* Y,A = free for Inline param
|
* Y,A = free for Inline param
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
jmp A2osX.SYSCALL1
|
jmp GP.SysCall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* LIBCALL (AUXLC to AUXLC)
|
* LIBCALL (AUXLC to AUXLC)
|
||||||
* Used by user
|
* Used by user
|
||||||
|
@ -19,7 +19,7 @@ AUTO 6
|
||||||
* X = LIBfnc.Index
|
* X = LIBfnc.Index
|
||||||
* A = free for Inline param
|
* A = free for Inline param
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
jmp A2osX.LIBCALL1
|
jmp GP.LibCall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* MLICALL (AUXLC to MAINLC)
|
* MLICALL (AUXLC to MAINLC)
|
||||||
* Used by Kernel
|
* Used by Kernel
|
||||||
|
@ -27,7 +27,7 @@ AUTO 6
|
||||||
* X = MLI Function
|
* X = MLI Function
|
||||||
* A = Param Count
|
* A = Param Count
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
jmp A2osX.MLICALL1
|
jmp GP.MLICall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* MLICALL (AUXLC to MAINLC)
|
* MLICALL (AUXLC to MAINLC)
|
||||||
* Used by Kernel
|
* Used by Kernel
|
||||||
|
@ -35,7 +35,7 @@ AUTO 6
|
||||||
* X = MLI Function
|
* X = MLI Function
|
||||||
* A = Param Count
|
* A = Param Count
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
jmp A2osX.ROMCALL1
|
jmp GP.ROMCall
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* BADCALL
|
* BADCALL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -47,7 +47,7 @@ AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* *** MUST BE REINTRANT ***
|
* *** MUST BE REINTRANT ***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.SYSCALL1 bit K.SYSCALL.BANK,x
|
GP.SysCall bit K.SYSCALL.BANK,x
|
||||||
bpl .8 in $E000, no BNK change
|
bpl .8 in $E000, no BNK change
|
||||||
|
|
||||||
sta .7+1 save A (Func Arg)
|
sta .7+1 save A (Func Arg)
|
||||||
|
@ -78,14 +78,14 @@ A2osX.SYSCALL1 bit K.SYSCALL.BANK,x
|
||||||
.7 lda #$FF Self Modified
|
.7 lda #$FF Self Modified
|
||||||
.8 jmp (K.SYSCALL.JMP,x)
|
.8 jmp (K.SYSCALL.JMP,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.LIBCALL1 pha No need to save X, K.GetMemPtr.A will leave it unmodified
|
GP.LibCall pha No need to save X, K.GetMemPtr.A will leave it unmodified
|
||||||
tya Get LIB hMem in A
|
tya Get LIB hMem in A
|
||||||
jsr K.GetMemPtr.A Get LIB Code Segment (MemMgr in $E000, no BNK change)
|
jsr K.GetMemPtr.A Get LIB Code Segment (MemMgr in $E000, no BNK change)
|
||||||
>STYA .1+1
|
>STYA .1+1
|
||||||
pla
|
pla
|
||||||
.1 jmp $ffff
|
.1 jmp $ffff
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.MLICALL1 stx .1
|
GP.MLICall stx .1
|
||||||
sta K.MLI.PARAMS
|
sta K.MLI.PARAMS
|
||||||
jsr GO.ProDOS
|
jsr GO.ProDOS
|
||||||
jsr MLI
|
jsr MLI
|
||||||
|
@ -94,7 +94,7 @@ A2osX.MLICALL1 stx .1
|
||||||
jsr GO.A2osX
|
jsr GO.A2osX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.ROMCALL1 phx
|
GP.ROMCall phx
|
||||||
ldx $D000
|
ldx $D000
|
||||||
stx .8+1
|
stx .8+1
|
||||||
|
|
||||||
|
@ -117,15 +117,15 @@ A2osX.ROMCALL1 phx
|
||||||
.DA $E82E NORMALIZE.FAC.2 (L->F)
|
.DA $E82E NORMALIZE.FAC.2 (L->F)
|
||||||
.DA $E941 LOG
|
.DA $E941 LOG
|
||||||
.DA $E97F FMULT
|
.DA $E97F FMULT
|
||||||
.DA $E9E3 LOAD.ARG.FROM.YA
|
.DA $E9E7 LOAD.ARG.FROM.INDEX
|
||||||
.DA $EA66 FDIV
|
.DA $EA66 FDIV
|
||||||
.DA $EAF9 LOAD.FAC.FROM.YA
|
.DA $EAFD LOAD.FAC.FROM.INDEX
|
||||||
|
|
||||||
.DA $EB27 SETFOR
|
.DA $EB27 SETFOR GETFAC)
|
||||||
.DA $EBB2 FCOMP
|
.DA $EBB2 FCOMP
|
||||||
.DA $EBF2 QINT (F->L)
|
.DA $EBF2 QINT (F->L)
|
||||||
.DA $EC4A FIN
|
.DA $EC4A FIN StrToF
|
||||||
.DA $ED36 FOUT.1
|
.DA $ED36 FOUT.1 PrintF
|
||||||
.DA $EE8D SQR
|
.DA $EE8D SQR
|
||||||
.DA $EE97 FPWRT
|
.DA $EE97 FPWRT
|
||||||
.DA $EF09 EXP
|
.DA $EF09 EXP
|
||||||
|
@ -216,7 +216,7 @@ GO.EXIT.JMP jmp $FFFF Self Modified
|
||||||
* must exit with RTS
|
* must exit with RTS
|
||||||
* - CC if IRQ cleared, CS if NOT
|
* - CC if IRQ cleared, CS if NOT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IrqHandler cld
|
GP.IrqH cld
|
||||||
lda RDALTZP
|
lda RDALTZP
|
||||||
sta .2+1
|
sta .2+1
|
||||||
|
|
||||||
|
@ -228,7 +228,7 @@ IrqHandler cld
|
||||||
ldx A2osX.SaveSX
|
ldx A2osX.SaveSX
|
||||||
txs
|
txs
|
||||||
|
|
||||||
.1 jsr K.IrqHandler
|
.1 jsr K.IrqH
|
||||||
|
|
||||||
.2 lda #$ff get back ZP status when called
|
.2 lda #$ff get back ZP status when called
|
||||||
bmi .3 we were coming from AuxZP/LC
|
bmi .3 we were coming from AuxZP/LC
|
||||||
|
@ -247,6 +247,12 @@ IrqHandler cld
|
||||||
*BrkHandler bra *
|
*BrkHandler bra *
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.BS $BEE0-*
|
.BS $BEE0-*
|
||||||
|
*--------------------------------------
|
||||||
|
* $BEE0->$BEEF : Public Variables
|
||||||
|
*--------------------------------------
|
||||||
|
.BS 16
|
||||||
|
*--------------------------------------
|
||||||
|
* $BEF0->$BEFF : Kernel Config Block
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA #6 60hz
|
.DA #6 60hz
|
||||||
.BS 7
|
.BS 7
|
||||||
|
|
|
@ -214,8 +214,8 @@ CPU.Init >LDAXI MSG.CPU
|
||||||
jsr PrintFAX
|
jsr PrintFAX
|
||||||
|
|
||||||
lda MACHID
|
lda MACHID
|
||||||
and #MACHID.TYPE
|
and #MACHID.T
|
||||||
cmp #MACHID.TYPE.IIc
|
cmp #MACHID.T.IIc
|
||||||
beq CPU.Init.Z80
|
beq CPU.Init.Z80
|
||||||
|
|
||||||
>LDAXI MSG.CPU.SPEED
|
>LDAXI MSG.CPU.SPEED
|
||||||
|
@ -485,10 +485,10 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||||
sei
|
sei
|
||||||
>LDYA $FFFE
|
>LDYA $FFFE
|
||||||
>STYA IRQ.OldFFFE
|
>STYA IRQ.OldFFFE
|
||||||
>LDYAI K.IrqHandlerAuxLC
|
>LDYAI K.IrqHAuxLC
|
||||||
>STYA $FFFE
|
>STYA $FFFE
|
||||||
|
|
||||||
>LDYAI IrqHandler
|
>LDYAI GP.IrqH
|
||||||
>STYA K.MLI.PARAMS+2
|
>STYA K.MLI.PARAMS+2
|
||||||
>MLICALL MLIALLOCIRQ
|
>MLICALL MLIALLOCIRQ
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -504,8 +504,8 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||||
lda #'v'
|
lda #'v'
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+37
|
||||||
|
|
||||||
>LDYAI K.IrqHandler.VBL
|
>LDYAI K.IrqH.VBL
|
||||||
>STYA K.IrqHandler+1
|
>STYA K.IrqH+1
|
||||||
|
|
||||||
>LDYAI MSG.IRQ.VBL
|
>LDYAI MSG.IRQ.VBL
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
@ -518,8 +518,8 @@ IrqMgrInit >LDYAI MSG.IRQ
|
||||||
lda #'c'
|
lda #'c'
|
||||||
sta SYS.BASL0+37
|
sta SYS.BASL0+37
|
||||||
|
|
||||||
>LDYAI K.IrqHandler.TClock
|
>LDYAI K.IrqH.TClock
|
||||||
>STYA K.IrqHandler+1
|
>STYA K.IrqH+1
|
||||||
|
|
||||||
>LDYAI MSG.IRQ.CLOCK
|
>LDYAI MSG.IRQ.CLOCK
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
@ -581,25 +581,25 @@ IrqMgrInit.Mouse
|
||||||
|
|
||||||
.4 lda ZPPtr1+1
|
.4 lda ZPPtr1+1
|
||||||
|
|
||||||
sta K.IrqMgrVBL.MSM+2
|
sta IRQ.VBL.MSM+2
|
||||||
sta K.IrqMgrVBL.MRM+2
|
sta IRQ.VBL.MRM+2
|
||||||
|
|
||||||
and #$0f
|
and #$0f
|
||||||
sta K.IrqMgrVBL.0n
|
sta IRQ.VBL.0n
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
|
|
||||||
sta K.IrqMgrVBL.n0
|
sta IRQ.VBL.n0
|
||||||
|
|
||||||
ldy #$13 SERVEMOUSE
|
ldy #$13 SERVEMOUSE
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta K.IrqMgrVBL.MSM+1
|
sta IRQ.VBL.MSM+1
|
||||||
|
|
||||||
ldy #$14 READMOUSE
|
ldy #$14 READMOUSE
|
||||||
lda (ZPPtr1),y
|
lda (ZPPtr1),y
|
||||||
sta K.IrqMgrVBL.MRM+1
|
sta IRQ.VBL.MRM+1
|
||||||
|
|
||||||
ldy #$12 SETMOUSE
|
ldy #$12 SETMOUSE
|
||||||
|
|
||||||
|
@ -610,7 +610,7 @@ IrqMgrInit.Mouse
|
||||||
|
|
||||||
ldx ZPPtr1+1 DEVSLOTCn
|
ldx ZPPtr1+1 DEVSLOTCn
|
||||||
stx .7+2
|
stx .7+2
|
||||||
ldy K.IrqMgrVBL.n0
|
ldy IRQ.VBL.n0
|
||||||
|
|
||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
|
@ -665,7 +665,7 @@ IrqMgrInit.TClock
|
||||||
asl
|
asl
|
||||||
asl
|
asl
|
||||||
tay get $n0
|
tay get $n0
|
||||||
sty K.IrqMgrVBL.n0
|
sty IRQ.VBL.n0
|
||||||
|
|
||||||
lda #$40 Enable interrupt
|
lda #$40 Enable interrupt
|
||||||
sta $c080,y
|
sta $c080,y
|
||||||
|
|
|
@ -13,8 +13,7 @@ AUTO 6
|
||||||
* if A2osX Drivers cannot clear IRQ,
|
* if A2osX Drivers cannot clear IRQ,
|
||||||
* must call regular System Handler
|
* must call regular System Handler
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqHandlerAuxLC
|
K.IrqHAuxLC sta .12+1
|
||||||
sta .12+1
|
|
||||||
pla
|
pla
|
||||||
pha
|
pha
|
||||||
and #$10 BRK?
|
and #$10 BRK?
|
||||||
|
@ -30,7 +29,7 @@ K.IrqHandlerAuxLC
|
||||||
pha
|
pha
|
||||||
sta CLRREADAUX Make sure we can access Dev.Table
|
sta CLRREADAUX Make sure we can access Dev.Table
|
||||||
|
|
||||||
jsr K.IrqHandler
|
jsr K.IrqH
|
||||||
|
|
||||||
pla Must keep Carry
|
pla Must keep Carry
|
||||||
bpl .1
|
bpl .1
|
||||||
|
@ -56,17 +55,16 @@ K.IrqHandlerAuxLC
|
||||||
.8 jmp (IRQ.OldFFFE)
|
.8 jmp (IRQ.OldFFFE)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Called by :
|
* Called by :
|
||||||
* Kernel IrqHandlerAuxLC
|
* - Kernel K.IrqHAuxLC
|
||||||
* ProDOS IRQ Manager (GP)
|
* - ProDOS IRQ Manager (GP)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqHandler jmp K.IrqHandler.DEV Modified by INIT
|
K.IrqH jmp K.IrqH.DEV Modified by INIT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqHandler.TCLOCK
|
K.IrqH.TCLOCK ldy IRQ.VBL.n0
|
||||||
ldy K.IrqMgrVBL.n0
|
|
||||||
|
|
||||||
lda $c080,y
|
lda $c080,y
|
||||||
and #$20
|
and #$20
|
||||||
beq K.IrqHandler.DEV
|
beq K.IrqH.DEV
|
||||||
|
|
||||||
lda $c080,y
|
lda $c080,y
|
||||||
lda $c088,y
|
lda $c088,y
|
||||||
|
@ -80,18 +78,17 @@ K.IrqHandler.TCLOCK
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqHandler.VBL
|
K.IrqH.VBL jsr IRQ.VBL.MSM SERVEMOUSE
|
||||||
jsr K.IrqMgrVBL.MSM SERVEMOUSE
|
bcs K.IrqH.DEV Not From Mouse
|
||||||
bcs K.IrqHandler.DEV Not From Mouse
|
|
||||||
|
|
||||||
ldx K.IrqMgrVBL.0n
|
ldx IRQ.VBL.0n
|
||||||
lda $778,x
|
lda $778,x
|
||||||
and #$08 IRQ was caused by VBL ?
|
and #$08 IRQ was caused by VBL ?
|
||||||
beq K.IrqHandler.DEV
|
beq K.IrqH.DEV
|
||||||
|
|
||||||
ldx K.IrqMgrVBL.MRM+2 $Cn
|
ldx IRQ.VBL.MRM+2 $Cn
|
||||||
ldy K.IrqMgrVBL.n0
|
ldy IRQ.VBL.n0
|
||||||
jsr K.IrqMgrVBL.MRM READMOUSE
|
jsr IRQ.VBL.MRM READMOUSE
|
||||||
|
|
||||||
inc CORE.IRQTick
|
inc CORE.IRQTick
|
||||||
|
|
||||||
|
@ -102,8 +99,7 @@ K.IrqHandler.VBL
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqHandler.DEV
|
K.IrqH.DEV >LDYAI Dev.Table
|
||||||
>LDYAI Dev.Table
|
|
||||||
>STYA $fe
|
>STYA $fe
|
||||||
|
|
||||||
ldx DevMgr.Count
|
ldx DevMgr.Count
|
||||||
|
@ -114,7 +110,7 @@ K.IrqHandler.DEV
|
||||||
beq .6
|
beq .6
|
||||||
|
|
||||||
phx
|
phx
|
||||||
jsr K.IrqHandlerJMP
|
jsr K.IrqHJMP
|
||||||
plx
|
plx
|
||||||
bcc .8 CC, IRQ cleared by device
|
bcc .8 CC, IRQ cleared by device
|
||||||
|
|
||||||
|
@ -136,12 +132,12 @@ IRQ.IntNum .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
IRQ.OldFFFE .BS 2
|
IRQ.OldFFFE .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqMgrVBL.n0 .BS 1
|
IRQ.VBL.n0 .BS 1
|
||||||
K.IrqMgrVBL.0n .BS 1
|
IRQ.VBL.0n .BS 1
|
||||||
K.IrqMgrVBL.MSM jmp $0000
|
IRQ.VBL.MSM jmp $0000
|
||||||
K.IrqMgrVBL.MRM jmp $0000
|
IRQ.VBL.MRM jmp $0000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.IrqHandlerJMP ldx #DEVMGR.IRQ
|
K.IrqHJMP ldx #DEVMGR.IRQ
|
||||||
jmp ($fe)
|
jmp ($fe)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
|
|
|
@ -109,7 +109,7 @@ K.SYSCALL.JMP .DA 0 $00
|
||||||
.DA K.GetPSStatus.A
|
.DA K.GetPSStatus.A
|
||||||
.DA K.GetPSList.YA
|
.DA K.GetPSList.YA
|
||||||
|
|
||||||
.DA * $B0
|
.DA 0 $B0
|
||||||
.DA K.GetArg.A
|
.DA K.GetArg.A
|
||||||
.DA K.ExpandStr.YA
|
.DA K.ExpandStr.YA
|
||||||
.DA 0
|
.DA 0
|
||||||
|
@ -117,28 +117,44 @@ K.SYSCALL.JMP .DA 0 $00
|
||||||
.DA K.SetEnv
|
.DA K.SetEnv
|
||||||
.DA K.GetEnv.YA
|
.DA K.GetEnv.YA
|
||||||
.DA K.UnsetEnv.YA
|
.DA K.UnsetEnv.YA
|
||||||
|
|
||||||
|
.DA K.FAdd $C0
|
||||||
|
.DA K.FSub
|
||||||
|
.DA K.FMult
|
||||||
|
.DA K.FDiv
|
||||||
|
.DA K.FPwr
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
.DA 0
|
||||||
|
|
||||||
|
.DA K.Log $D0
|
||||||
|
.DA K.Sqr
|
||||||
|
.DA K.Exp
|
||||||
|
.DA K.Cos
|
||||||
|
.DA K.Sin
|
||||||
|
.DA K.Tan
|
||||||
|
.DA K.ATan
|
||||||
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $E000
|
* $E000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA K.GetMem $C0
|
.DA K.GetMem $E0
|
||||||
.DA K.FreeMem.A
|
.DA K.FreeMem.A
|
||||||
.DA K.GetMemPtr.A
|
.DA K.GetMemPtr.A
|
||||||
.DA K.GetMemByID.A
|
.DA K.GetMemByID.A
|
||||||
.DA K.GetMem.YA
|
.DA K.GetMem.YA
|
||||||
.DA K.GetMem0.YA
|
.DA K.GetMem0.YA
|
||||||
.DA K.SetLoMem
|
|
||||||
.DA K.NewStr.YA
|
.DA K.NewStr.YA
|
||||||
|
.DA K.GetMemStat.YA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA 0 $D0
|
.DA K.Sleep $F0
|
||||||
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA K.LoadStkObj.YA
|
.DA K.LoadStkObj.YA
|
||||||
.DA K.GetStkObj.A
|
.DA K.GetStkObj.A
|
||||||
.DA K.FreeStkObj.A
|
.DA K.FreeStkObj.A
|
||||||
.DA K.GetMemStat.YA
|
|
||||||
*--------------------------------------
|
|
||||||
.DA K.Sleep $E0
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* LO Byte :
|
* LO Byte :
|
||||||
* #RRAMWRAMBNK1,#RRAMWRAMBNK2
|
* #RRAMWRAMBNK1,#RRAMWRAMBNK2
|
||||||
|
@ -348,8 +364,42 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
||||||
.DA #$80
|
.DA #$80
|
||||||
.DA #RRAMWRAMBNK2
|
.DA #RRAMWRAMBNK2
|
||||||
.DA #$80
|
.DA #$80
|
||||||
|
|
||||||
|
.DA #RRAMWRAMBNK2 $C0
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
|
||||||
|
.DA #RRAMWRAMBNK2 $D0
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
|
.DA #RRAMWRAMBNK2
|
||||||
|
.DA #$80
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA 0 $C0 : MemMgr at $E000
|
.DA 0 $E0 : MemMgr at $E000
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
|
@ -367,7 +417,7 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA 0 $D0
|
.DA 0 $F0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
|
@ -385,12 +435,9 @@ K.SYSCALL.BANK .DA #RRAMWRAMBNK1 $00
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA 0 $E0
|
PullP1P2P3 sec
|
||||||
*--------------------------------------
|
|
||||||
PullPtr1Ptr2Ptr3
|
|
||||||
sec
|
|
||||||
.HS 90 bcc
|
.HS 90 bcc
|
||||||
PullPtr1Ptr2 clc
|
PullP1P2 clc
|
||||||
>PULLW ZPPtr1
|
>PULLW ZPPtr1
|
||||||
>PULLW ZPPtr2
|
>PULLW ZPPtr2
|
||||||
bcc .9
|
bcc .9
|
||||||
|
|
|
@ -4,8 +4,8 @@ LOMEM $A00
|
||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FAdd,FSub,FMult,FDiv
|
* # FAdd,FSub,FMult,FDiv,FPwr
|
||||||
* Return X+Y,X-Y,X*Y,X/Y
|
* Return X+Y, X-Y, X*Y, X/Y, X^Y
|
||||||
* ## In:
|
* ## In:
|
||||||
* PUSHW = X (*Float)
|
* PUSHW = X (*Float)
|
||||||
* PUSHW = Y (*Float)
|
* PUSHW = Y (*Float)
|
||||||
|
@ -18,38 +18,52 @@ K.FSub ldx #ROM.FSUB
|
||||||
K.FMult ldx #ROM.FMULT
|
K.FMult ldx #ROM.FMULT
|
||||||
.HS 2C BIT ABS
|
.HS 2C BIT ABS
|
||||||
K.FDiv ldx #ROM.FDIV
|
K.FDiv ldx #ROM.FDIV
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
K.FPwr ldx #ROM.PWR
|
||||||
|
>STYA FORPNT
|
||||||
phx
|
phx
|
||||||
jsr MATH.PullFAC
|
jsr MATH.PullFAC
|
||||||
jsr MATH.PullARG
|
jsr MATH.PullARG
|
||||||
>PULLW FORPNT
|
bra MATH.Go
|
||||||
plx
|
|
||||||
jsr A2osX.ROMCALL
|
|
||||||
>ROMCALL GETFAC
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # Log,Cos,Sin,Tan,ATan
|
* # Log,Sqr,Exp,Cos,Sin,Tan,ATan
|
||||||
* Return
|
* Return Log(x), Sqr(x), E^X, Cos(x), Sin(X), Tan(x), ATan(x)
|
||||||
* ## In:
|
* ## In:
|
||||||
* PUSHW = X (*Float)
|
* PUSHW = X (*Float)
|
||||||
* Y,A = Dest (*Float)
|
* Y,A = Dest (*Float)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.Cos jsr MATH.PullFAC
|
K.Log ldx #ROM.LOG
|
||||||
* >ROMCALL COS
|
.HS 2C BIT ABS
|
||||||
*--------------------------------------
|
K.Sqr ldx #ROM.SQR
|
||||||
MATH.PullFAC >PULLA
|
.HS 2C BIT ABS
|
||||||
tay
|
K.Exp ldx #ROM.EXP
|
||||||
>PULLA
|
.HS 2C BIT ABS
|
||||||
>ROMCALL SETFAC.AY
|
K.Cos ldx #ROM.COS
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
K.Sin ldx #ROM.SIN
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
K.Tan ldx #ROM.TAN
|
||||||
|
.HS 2C BIT ABS
|
||||||
|
K.ATan ldx #ROM.ATAN
|
||||||
|
>STYA FORPNT
|
||||||
|
phx
|
||||||
|
jsr MATH.PullFAC
|
||||||
|
|
||||||
|
MATH.Go plx
|
||||||
|
jsr A2osX.ROMCALL
|
||||||
|
>ROMCALL GETFAC
|
||||||
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MATH.PullARG >PULLA
|
|
||||||
tay
|
*--------------------------------------
|
||||||
>PULLA
|
MATH.PullFAC >PULLW INDEX
|
||||||
>ROMCALL SETARG.AY
|
>ROMCALL SETFAC
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
MATH.PullARG >PULLW INDEX
|
||||||
|
>ROMCALL SETARG
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SYS/KERNEL.S.MATH
|
SAVE /A2OSX.SRC/SYS/KERNEL.S.MATH
|
||||||
|
|
|
@ -181,7 +181,7 @@ K.GetMem.I tya
|
||||||
* Y,A = Requested size
|
* Y,A = Requested size
|
||||||
* Out:
|
* Out:
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mem.AddSlot >STYA ZPMemMgrTmp1 save req size
|
Mem.AddSlot >STYA ZPMemMgrTmp1 save req size
|
||||||
ldx Mem.LastSlot
|
ldx Mem.LastSlot
|
||||||
inx
|
inx
|
||||||
beq .99 > 255 ERR:OUT OF SLOT
|
beq .99 > 255 ERR:OUT OF SLOT
|
||||||
|
@ -238,7 +238,7 @@ Mem.NextSlot lda ZPMemMgrSPtr
|
||||||
inc ZPMemMgrSPtr+1
|
inc ZPMemMgrSPtr+1
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mem.Init0 ldy #S.MEM.PTR
|
Mem.Init0 ldy #S.MEM.PTR
|
||||||
lda (ZPMemMgrSPtr),y ZPMemMgrSPtr already set
|
lda (ZPMemMgrSPtr),y ZPMemMgrSPtr already set
|
||||||
sta .2+1
|
sta .2+1
|
||||||
iny
|
iny
|
||||||
|
@ -434,10 +434,6 @@ K.GetMemByID.A sta ZPMemMgrSPtr
|
||||||
* sty ZPMemMgrSPtr
|
* sty ZPMemMgrSPtr
|
||||||
* sta ZPMemMgrSPtr+1
|
* sta ZPMemMgrSPtr+1
|
||||||
* rts
|
* rts
|
||||||
*--------------------------------------
|
|
||||||
K.SetLoMem
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # NewStr.YA
|
* # NewStr.YA
|
||||||
* Create a new copy of this C-String
|
* Create a new copy of this C-String
|
||||||
|
|
|
@ -24,15 +24,15 @@ K.CreatePSNewEnv.YA
|
||||||
.HS 2C bit abs
|
.HS 2C bit abs
|
||||||
K.CreatePS.YA
|
K.CreatePS.YA
|
||||||
ldx #0
|
ldx #0
|
||||||
stx K.CreatePS.Flags
|
stx PS.Flags
|
||||||
>STYA K.CreatePS.CmdLine
|
>STYA PS.CL
|
||||||
|
|
||||||
jsr PS.CreateChild Child S.PS at ZPPtr3
|
jsr PS.CreateChild Child S.PS at ZPPtr3
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
sta .8+1
|
sta .8+1
|
||||||
|
|
||||||
>LDYA K.CreatePS.CmdLine
|
>LDYA PS.CL
|
||||||
jsr PS.CmdLine2Args Y,A = Args[0]
|
jsr PS.CmdLine2Args Y,A = Args[0]
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
|
@ -49,8 +49,8 @@ K.CreatePS.YA
|
||||||
.8 lda #$ff self modified
|
.8 lda #$ff self modified
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.CreatePS.Flags .BS 1
|
PS.Flags .BS 1
|
||||||
K.CreatePS.CmdLine .BS 2
|
PS.CL .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* PS.CreateChild
|
* PS.CreateChild
|
||||||
* in :
|
* in :
|
||||||
|
@ -103,14 +103,14 @@ PS.CreateChild ldx #0
|
||||||
plx
|
plx
|
||||||
sta PS.Table.hMem,x
|
sta PS.Table.hMem,x
|
||||||
|
|
||||||
jsr PS.SetMemOwnership Set Ownership
|
jsr PS.SetMemOwner Set Ownership
|
||||||
|
|
||||||
ldy #S.PS.PID
|
ldy #S.PS.PID
|
||||||
lda CORE.LastPSID
|
lda CORE.LastPSID
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
lda #S.PS.F.DUPENV
|
lda #S.PS.F.DUPENV
|
||||||
bit K.CreatePS.Flags need to create ENV & Prefix ?
|
bit PS.Flags need to create ENV & Prefix ?
|
||||||
beq .6 no...
|
beq .6 no...
|
||||||
|
|
||||||
sta (ZPPtr3) Mark this PS with DUPENV flag
|
sta (ZPPtr3) Mark this PS with DUPENV flag
|
||||||
|
@ -121,7 +121,7 @@ PS.CreateChild ldx #0
|
||||||
jsr K.NewStr.YA
|
jsr K.NewStr.YA
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
jsr PS.SetMemOwnership Set Ownership
|
jsr PS.SetMemOwner Set Ownership
|
||||||
|
|
||||||
txa
|
txa
|
||||||
ldy #S.PS.hPREFIX
|
ldy #S.PS.hPREFIX
|
||||||
|
@ -159,7 +159,7 @@ PS.CreateChild ldx #0
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
lda #S.PS.F.HOLD
|
lda #S.PS.F.HOLD
|
||||||
bit K.CreatePS.Flags
|
bit PS.Flags
|
||||||
beq .82
|
beq .82
|
||||||
|
|
||||||
ora (pPs)
|
ora (pPs)
|
||||||
|
@ -206,9 +206,9 @@ PS.CmdLine2Args >STYA ZPPtr1
|
||||||
ldy #S.PS.hARGS
|
ldy #S.PS.hARGS
|
||||||
sta (ZPPtr3),y
|
sta (ZPPtr3),y
|
||||||
|
|
||||||
jsr PS.SetMemOwnership Set Ownership
|
jsr PS.SetMemOwner Set Ownership
|
||||||
|
|
||||||
stz PS.CmdLine2Args.bInQuote
|
stz PS.bInQuote
|
||||||
|
|
||||||
ldy #$ff
|
ldy #$ff
|
||||||
ldx #0 Arg Count
|
ldx #0 Arg Count
|
||||||
|
@ -219,15 +219,15 @@ PS.CmdLine2Args >STYA ZPPtr1
|
||||||
|
|
||||||
cmp #'"' found a quote ?
|
cmp #'"' found a quote ?
|
||||||
bne .5
|
bne .5
|
||||||
lda PS.CmdLine2Args.bInQuote
|
lda PS.bInQuote
|
||||||
eor #$ff
|
eor #$ff
|
||||||
sta PS.CmdLine2Args.bInQuote
|
sta PS.bInQuote
|
||||||
bra .4
|
bra .4
|
||||||
|
|
||||||
.5 cmp #' '
|
.5 cmp #' '
|
||||||
bne .6
|
bne .6
|
||||||
|
|
||||||
bit PS.CmdLine2Args.bInQuote
|
bit PS.bInQuote
|
||||||
bmi .6
|
bmi .6
|
||||||
|
|
||||||
inx Found one arg !!!
|
inx Found one arg !!!
|
||||||
|
@ -258,8 +258,7 @@ PS.CmdLine2Args >STYA ZPPtr1
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
|
||||||
PS.CmdLine2Args.bInQuote
|
PS.bInQuote .BS 1
|
||||||
.BS 1
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.Init jsr BIN.Load.YA Y,A=filename full path
|
PS.Init jsr BIN.Load.YA Y,A=filename full path
|
||||||
bcs .9
|
bcs .9
|
||||||
|
@ -277,7 +276,7 @@ PS.Init jsr BIN.Load.YA Y,A=filename full path
|
||||||
sta (ZPPtr3),y save CS hMem in S.PS
|
sta (ZPPtr3),y save CS hMem in S.PS
|
||||||
|
|
||||||
jsr K.GetMemByID.A
|
jsr K.GetMemByID.A
|
||||||
jsr PS.SetMemOwnership Set Ownership
|
jsr PS.SetMemOwner Set Ownership
|
||||||
|
|
||||||
ldy #H.BIN.EXE.DS.SIZE+1
|
ldy #H.BIN.EXE.DS.SIZE+1
|
||||||
lda (ZPPtr4),y Load DS.SIZE HI
|
lda (ZPPtr4),y Load DS.SIZE HI
|
||||||
|
@ -304,7 +303,7 @@ PS.Init jsr BIN.Load.YA Y,A=filename full path
|
||||||
ldy #S.PS.hDS
|
ldy #S.PS.hDS
|
||||||
sta (ZPPtr3),y save DS hMem in S.PS
|
sta (ZPPtr3),y save DS hMem in S.PS
|
||||||
|
|
||||||
jsr PS.SetMemOwnership Set Ownership
|
jsr PS.SetMemOwner Set Ownership
|
||||||
|
|
||||||
.2 ldy #H.BIN.EXE.SS.SIZE
|
.2 ldy #H.BIN.EXE.SS.SIZE
|
||||||
lda (ZPPtr4),y Load SS.SIZE
|
lda (ZPPtr4),y Load SS.SIZE
|
||||||
|
@ -330,7 +329,7 @@ PS.Init jsr BIN.Load.YA Y,A=filename full path
|
||||||
ldy #S.PS.hSS
|
ldy #S.PS.hSS
|
||||||
sta (ZPPtr3),y save SS hMem in S.PS
|
sta (ZPPtr3),y save SS hMem in S.PS
|
||||||
|
|
||||||
jsr PS.SetMemOwnership Set Ownership
|
jsr PS.SetMemOwner Set Ownership
|
||||||
|
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
|
@ -350,7 +349,7 @@ PS.DupEnv.A jsr K.GetMemPtr.A
|
||||||
|
|
||||||
>STYA ZPPtr2
|
>STYA ZPPtr2
|
||||||
|
|
||||||
jsr PS.SetMemOwnership Set Ownership
|
jsr PS.SetMemOwner Set Ownership
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
|
@ -378,8 +377,7 @@ PS.DupEnv.A jsr K.GetMemPtr.A
|
||||||
clc
|
clc
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.SetMemOwnership
|
PS.SetMemOwner lda CORE.LastPSID
|
||||||
lda CORE.LastPSID
|
|
||||||
ldy #S.MEM.OWNERPID
|
ldy #S.MEM.OWNERPID
|
||||||
sta (ZPMEMMGR),y
|
sta (ZPMEMMGR),y
|
||||||
rts
|
rts
|
||||||
|
|
|
@ -27,14 +27,14 @@ K.Stat jsr PFT.CheckPathSTK
|
||||||
>MLICALL MLIGETFILEINFO
|
>MLICALL MLIGETFILEINFO
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
ldx K.MLI.PARAMS+S.FILEINFO.ACCESS
|
ldx K.MLI.PARAMS+S.FI.A
|
||||||
|
|
||||||
lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO
|
lda #S.STAT.MODE.XO+S.STAT.MODE.WO+S.STAT.MODE.RO
|
||||||
cpx #S.FILEINFO.ACCESS.FULL
|
cpx #S.FI.A.FULL
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
lda #S.STAT.MODE.XO+S.STAT.MODE.RO
|
lda #S.STAT.MODE.XO+S.STAT.MODE.RO
|
||||||
cpx #S.FILEINFO.ACCESS.R
|
cpx #S.FI.A.R
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
|
@ -57,13 +57,13 @@ K.Stat jsr PFT.CheckPathSTK
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
lda K.MLI.PARAMS+S.FILEINFO.BLOCKSUSED
|
lda K.MLI.PARAMS+S.FI.UBLKS
|
||||||
asl
|
asl
|
||||||
jsr K.Stat.StoreY
|
jsr K.Stat.StoreY
|
||||||
|
|
||||||
iny
|
iny
|
||||||
|
|
||||||
lda K.MLI.PARAMS+S.FILEINFO.BLOCKSUSED+1
|
lda K.MLI.PARAMS+S.FI.UBLKS+1
|
||||||
rol
|
rol
|
||||||
jsr K.Stat.StoreY
|
jsr K.Stat.StoreY
|
||||||
|
|
||||||
|
@ -79,9 +79,9 @@ K.Stat jsr PFT.CheckPathSTK
|
||||||
K.Stat.StoreY sta $ffff,y
|
K.Stat.StoreY sta $ffff,y
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.Stat.SRC .DA #S.FILEINFO.TYPE
|
K.Stat.SRC .DA #S.FI.T
|
||||||
.DA #S.FILEINFO.AUXTYPE,#S.FILEINFO.AUXTYPE+1
|
.DA #S.FI.AUXTYPE,#S.FI.AUXTYPE+1
|
||||||
.DA #S.FILEINFO.BLOCKSUSED,#S.FILEINFO.BLOCKSUSED+1
|
.DA #S.FI.UBLKS,#S.FI.UBLKS+1
|
||||||
K.Stat.DST .DA #S.STAT.P.TYPE
|
K.Stat.DST .DA #S.STAT.P.TYPE
|
||||||
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
.DA #S.STAT.P.AUXTYPE,#S.STAT.P.AUXTYPE+1
|
||||||
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
.DA #S.STAT.BLOCKS,#S.STAT.BLOCKS+1
|
||||||
|
@ -96,12 +96,12 @@ K.Stat.DST .DA #S.STAT.P.TYPE
|
||||||
*\-------------------------------------
|
*\-------------------------------------
|
||||||
K.MKDir.YA jsr PFT.CheckPathYA
|
K.MKDir.YA jsr PFT.CheckPathYA
|
||||||
jsr STDIO.SetMLIPathYA
|
jsr STDIO.SetMLIPathYA
|
||||||
lda #S.FILEINFO.ACCESS.FULL
|
lda #S.FI.A.FULL
|
||||||
sta K.MLI.PARAMS+S.FILEINFO.ACCESS
|
sta K.MLI.PARAMS+S.FI.A
|
||||||
lda #S.FILEINFO.TYPE.DIR
|
lda #S.FI.T.DIR
|
||||||
sta K.MLI.PARAMS+S.FILEINFO.TYPE
|
sta K.MLI.PARAMS+S.FI.T
|
||||||
lda #S.FILEINFO.STORETYPE.DIR
|
lda #S.FI.ST.DIR
|
||||||
sta K.MLI.PARAMS+S.FILEINFO.STORETYPE
|
sta K.MLI.PARAMS+S.FI.ST
|
||||||
|
|
||||||
* jsr DATETIME
|
* jsr DATETIME
|
||||||
|
|
||||||
|
|
|
@ -255,13 +255,13 @@ K.FOpen jsr PFT.CheckPathSTK
|
||||||
bit K.FOpen.MODE Create if not exists ?
|
bit K.FOpen.MODE Create if not exists ?
|
||||||
bpl K.FOpen.9 No, return MLI error
|
bpl K.FOpen.9 No, return MLI error
|
||||||
|
|
||||||
lda #S.FILEINFO.ACCESS.FULL Yes, Create...
|
lda #S.FI.A.FULL Yes, Create...
|
||||||
sta K.MLI.PARAMS+3 Access
|
sta K.MLI.PARAMS+3 Access
|
||||||
lda K.FOpen.TYPE
|
lda K.FOpen.TYPE
|
||||||
sta K.MLI.PARAMS+4 File type
|
sta K.MLI.PARAMS+4 File type
|
||||||
>LDYA K.FOpen.AUXTYPE
|
>LDYA K.FOpen.AUXTYPE
|
||||||
>STYA K.MLI.PARAMS+5 Aux type
|
>STYA K.MLI.PARAMS+5 Aux type
|
||||||
lda #S.FILEINFO.STORETYPE.STD
|
lda #S.FI.ST.STD
|
||||||
sta K.MLI.PARAMS+7
|
sta K.MLI.PARAMS+7
|
||||||
|
|
||||||
ldx #3
|
ldx #3
|
||||||
|
@ -621,7 +621,7 @@ K.Rename jsr PFT.CheckPathSTK
|
||||||
* PUSHW PSTR to scan (ex: "192.168.1.5")
|
* PUSHW PSTR to scan (ex: "192.168.1.5")
|
||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.SScanF jsr PullPtr1Ptr2Ptr3
|
K.SScanF jsr PullP1P2P3
|
||||||
|
|
||||||
ldy #0 Y = PTR in pattern
|
ldy #0 Y = PTR in pattern
|
||||||
|
|
||||||
|
@ -940,10 +940,8 @@ PrintF.U.1 bcc .8 unsigned, nothing to check
|
||||||
PrintF.E sec Force "E+12"
|
PrintF.E sec Force "E+12"
|
||||||
.HS 90 BCC
|
.HS 90 BCC
|
||||||
PrintF.F clc
|
PrintF.F clc
|
||||||
>PULLA
|
>PULLW INDEX
|
||||||
tay
|
>ROMCALL SETFAC
|
||||||
>PULLA
|
|
||||||
>ROMCALL SETFAC.AY
|
|
||||||
|
|
||||||
ldy #3 In order not to trash A2osX.SaveSM,A2osX.SaveSX
|
ldy #3 In order not to trash A2osX.SaveSM,A2osX.SaveSX
|
||||||
>ROMCALL FOUT
|
>ROMCALL FOUT
|
||||||
|
|
|
@ -60,7 +60,7 @@ K.StrToL sec Signed
|
||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrToUL clc Unsigned
|
K.StrToUL clc Unsigned
|
||||||
jsr PullPtr1Ptr2Ptr3
|
jsr PullP1P2P3
|
||||||
>PULLA Base
|
>PULLA Base
|
||||||
|
|
||||||
jsr K.AToL.I
|
jsr K.AToL.I
|
||||||
|
@ -83,7 +83,7 @@ K.StrToUL.rts rts
|
||||||
* PUSHW PTR to target buffer DWORD
|
* PUSHW PTR to target buffer DWORD
|
||||||
* ## Out:
|
* ## Out:
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.AToL jsr PullPtr1Ptr2 C-String in Ptr2, Dst buffer in Ptr1
|
K.AToL jsr PullP1P2 C-String in Ptr2, Dst buffer in Ptr1
|
||||||
|
|
||||||
lda #10 base 10
|
lda #10 base 10
|
||||||
sec signed
|
sec signed
|
||||||
|
|
|
@ -35,7 +35,7 @@ K.StrLen.YA >STYA ZPPtr1
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* DST = DST+SRC
|
* DST = DST+SRC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrCat jsr PullPtr1Ptr2
|
K.StrCat jsr PullP1P2
|
||||||
|
|
||||||
.1 lda (ZPPtr1)
|
.1 lda (ZPPtr1)
|
||||||
beq K.StrCpy.I
|
beq K.StrCpy.I
|
||||||
|
@ -53,7 +53,7 @@ K.StrCat jsr PullPtr1Ptr2
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* DST = SRC
|
* DST = SRC
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrCpy jsr PullPtr1Ptr2
|
K.StrCpy jsr PullP1P2
|
||||||
|
|
||||||
K.StrCpy.I ldy #0
|
K.StrCpy.I ldy #0
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@ K.StrCpy.I ldy #0
|
||||||
* CC : match
|
* CC : match
|
||||||
* CS : no match
|
* CS : no match
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrMatch jsr PullPtr1Ptr2
|
K.StrMatch jsr PullP1P2
|
||||||
|
|
||||||
lda (ZPPtr2) Get pattern 1st byte
|
lda (ZPPtr2) Get pattern 1st byte
|
||||||
beq .8 Match always if empty
|
beq .8 Match always if empty
|
||||||
|
|
|
@ -30,7 +30,7 @@ K.Time.YA >STYA ZPPtr2
|
||||||
* PUSHW = Dst PTR To S.TIME
|
* PUSHW = Dst PTR To S.TIME
|
||||||
* PUSHW = Src PTR to ProDOS DATE/TIME (DWORD)
|
* PUSHW = Src PTR to ProDOS DATE/TIME (DWORD)
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.PTime2Time jsr PullPtr1Ptr2
|
K.PTime2Time jsr PullP1P2
|
||||||
TIME.PTime2TimeP1P2
|
TIME.PTime2TimeP1P2
|
||||||
ldy #1
|
ldy #1
|
||||||
lda (ZPPtr1),y Get Year
|
lda (ZPPtr1),y Get Year
|
||||||
|
@ -167,7 +167,7 @@ K.ComputeWDAY lda #3 Thursday : 4 (-1 for mod 7)
|
||||||
* PUSHW = Dst PTR To S.TIME
|
* PUSHW = Dst PTR To S.TIME
|
||||||
* PUSHW = Src CTIME DWORD
|
* PUSHW = Src CTIME DWORD
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.CTime2Time jsr PullPtr1Ptr2
|
K.CTime2Time jsr PullP1P2
|
||||||
|
|
||||||
ldy #3
|
ldy #3
|
||||||
|
|
||||||
|
@ -402,7 +402,7 @@ K.CTime.Year .BS 1
|
||||||
* ## Out:
|
* ## Out:
|
||||||
* none. always succeed.
|
* none. always succeed.
|
||||||
*\--------------------------------------
|
*\--------------------------------------
|
||||||
K.StrFTime jsr PullPtr1Ptr2Ptr3
|
K.StrFTime jsr PullP1P2P3
|
||||||
|
|
||||||
ldy #0
|
ldy #0
|
||||||
|
|
||||||
|
|
27
TEST.S.txt
27
TEST.S.txt
|
@ -35,9 +35,10 @@ L.FLOAT2 .DA FLOAT2
|
||||||
L.FLOAT3 .DA FLOAT3
|
L.FLOAT3 .DA FLOAT3
|
||||||
L.FLOAT4 .DA FLOAT4
|
L.FLOAT4 .DA FLOAT4
|
||||||
L.FLOAT5 .DA FLOAT5
|
L.FLOAT5 .DA FLOAT5
|
||||||
L.MSG .DA MSG
|
|
||||||
L.CONST1 .DA CONST1
|
L.CONST1 .DA CONST1
|
||||||
L.CONST2 .DA CONST2
|
L.CONST2 .DA CONST2
|
||||||
|
L.MSG1 .DA MSG1
|
||||||
|
L.MSG2 .DA MSG2
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT clc
|
CS.INIT clc
|
||||||
|
@ -46,32 +47,36 @@ CS.INIT clc
|
||||||
CS.RUN >PUSHEA.G ENDPTR
|
CS.RUN >PUSHEA.G ENDPTR
|
||||||
>PUSHW L.CONST2
|
>PUSHW L.CONST2
|
||||||
>PUSHEA.G MYFLOAT2
|
>PUSHEA.G MYFLOAT2
|
||||||
|
|
||||||
>SYSCALL StrToF
|
>SYSCALL StrToF
|
||||||
|
|
||||||
>PUSHEA.G MYFLOAT2
|
|
||||||
|
|
||||||
>PUSHEA.G ENDPTR
|
>PUSHEA.G ENDPTR
|
||||||
>PUSHW L.CONST1
|
>PUSHW L.CONST1
|
||||||
>PUSHEA.G MYFLOAT1
|
>PUSHEA.G MYFLOAT1
|
||||||
|
|
||||||
>SYSCALL StrToF
|
>SYSCALL StrToF
|
||||||
|
|
||||||
|
>PUSHEA.G MYFLOAT2
|
||||||
>PUSHEA.G MYFLOAT1
|
>PUSHEA.G MYFLOAT1
|
||||||
|
|
||||||
>PUSHW L.FLOAT5
|
>PUSHW L.FLOAT5
|
||||||
>PUSHW L.FLOAT4
|
>PUSHW L.FLOAT4
|
||||||
>PUSHW L.FLOAT3
|
>PUSHW L.FLOAT3
|
||||||
>PUSHW L.FLOAT2
|
>PUSHW L.FLOAT2
|
||||||
>PUSHW L.FLOAT1
|
>PUSHW L.FLOAT1
|
||||||
|
|
||||||
>LDYA L.MSG
|
>LDYA L.MSG1
|
||||||
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
|
>PUSHEA.G MYFLOAT1
|
||||||
|
>PUSHEA.G MYFLOAT2
|
||||||
|
>LEA.G MYFLOAT3
|
||||||
|
>SYSCALL FSub
|
||||||
|
|
||||||
|
>PUSHEA.G MYFLOAT3
|
||||||
|
>LDYA L.MSG2
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
lda #0
|
lda #0
|
||||||
sec
|
sec
|
||||||
.9 rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.DOEVENT sec
|
CS.DOEVENT sec
|
||||||
rts
|
rts
|
||||||
|
@ -80,20 +85,22 @@ CS.QUIT clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG >CSTR "PrintF:%e,%e,%e,%e,%e\r\nStrToF:%e,%e\r\n"
|
MSG1 >CSTR "PrintF:%e, %e, %e\r\n%e, %e\r\nStrToF:%e, %e\r\n"
|
||||||
FLOAT1 .HS 9B3EBC1FFD 99,999,999.9
|
FLOAT1 .HS 9B3EBC1FFD 99,999,999.9
|
||||||
FLOAT2 .HS 9E6E6B27FD 999,999,999
|
FLOAT2 .HS 9E6E6B27FD 999,999,999
|
||||||
FLOAT3 .HS 9E6E6B2800 1,000,000,000
|
FLOAT3 .HS 9E6E6B2800 1,000,000,000
|
||||||
FLOAT4 .HS 8100000000 1
|
FLOAT4 .HS 8100000000 1
|
||||||
FLOAT5 .HS 9080000000 -32768
|
FLOAT5 .HS 9080000000 -32768
|
||||||
CONST1 >CSTR "3.141592653"
|
CONST1 >CSTR "3.141592653"
|
||||||
CONST2 >CSTR "-12.345678E-17"
|
CONST2 >CSTR "2"
|
||||||
|
MSG2 >CSTR "PI/2=%e\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
MYFLOAT1 .BS 5
|
MYFLOAT1 .BS 5
|
||||||
MYFLOAT2 .BS 5
|
MYFLOAT2 .BS 5
|
||||||
|
MYFLOAT3 .BS 5
|
||||||
ENDPTR .BS 2
|
ENDPTR .BS 2
|
||||||
DS.END
|
DS.END
|
||||||
.ED
|
.ED
|
||||||
|
|
Loading…
Reference in New Issue
Block a user