mirror of
https://github.com/A2osX/A2osX.git
synced 2024-10-09 14:55:05 +00:00
Kernel 0.9.1 : More room in GP to more ROM Calls!
This commit is contained in:
parent
f3d06059ae
commit
f29ad437fa
Binary file not shown.
Binary file not shown.
@ -11,6 +11,7 @@ AUTO 6
|
|||||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||||
.INB /A2OSX.BUILD/INC/PRODOS.I
|
.INB /A2OSX.BUILD/INC/PRODOS.I
|
||||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||||
|
.INB /A2OSX.BUILD/INC/KERNEL.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPTR1 .EQ ZPBIN
|
ZPPTR1 .EQ ZPBIN
|
||||||
ZPPTR2 .EQ ZPBIN+2
|
ZPPTR2 .EQ ZPBIN+2
|
||||||
|
@ -31,10 +31,7 @@ A2osX.MLICALL .EQ $BD06
|
|||||||
A2osX.ROMCALL .EQ $BD09
|
A2osX.ROMCALL .EQ $BD09
|
||||||
A2osX.BADCALL .EQ $BD0C
|
A2osX.BADCALL .EQ $BD0C
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
pCodeJmp .EQ $BD10
|
pDevJmp .EQ $BD10
|
||||||
*pLibJmp .EQ $BD13
|
|
||||||
pDrvJmp .EQ $BD16
|
|
||||||
pDevJmp .EQ $BD19
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BEE0->$BEEF : Public Variables
|
* $BEE0->$BEEF : Public Variables
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -34,20 +34,14 @@ H.BIN.DRV.CODE.O .EQ 12
|
|||||||
H.BIN.DRV.CODE.LEN .EQ 14
|
H.BIN.DRV.CODE.LEN .EQ 14
|
||||||
H.BIN.DRV.REL.TABLE .EQ 0
|
H.BIN.DRV.REL.TABLE .EQ 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Kernel ZP Aux
|
ZPKERNEL .EQ $0
|
||||||
*--------------------------------------
|
|
||||||
ZPPtr1 .EQ $0
|
|
||||||
ZPPtr2 .EQ ZPPtr1+2
|
|
||||||
ZPPtr3 .EQ ZPPtr1+4
|
|
||||||
ZPPtr4 .EQ ZPPtr1+6
|
|
||||||
*--------------------------------------
|
|
||||||
ZPMEMMGR .EQ $8
|
ZPMEMMGR .EQ $8
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $42-$47 ProDOS Block Device Drivers Main
|
* $42-$47 ProDOS Block Device Drivers Main
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
|
* $5E-$C8 RESERVED APPLESOFT Main/Aux (ROM Call, no need to switch back MainZP)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*INDEX .EQ $5E ->$5F
|
INDEX .EQ $5E ->$5F
|
||||||
FORPNT .EQ $85 ->$86
|
FORPNT .EQ $85 ->$86
|
||||||
FAC .EQ $9D ->$A1
|
FAC .EQ $9D ->$A1
|
||||||
FAC.SIGN .EQ $A2
|
FAC.SIGN .EQ $A2
|
||||||
@ -56,9 +50,10 @@ TXTPTR .EQ $B8
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* ROM Entry Point
|
* ROM Entry Point
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ROM.GETFAC .EQ $0 Get FAC at FORPNT
|
ROM.SETFAC .EQ 10 Set FAC from INDEX
|
||||||
ROM.FIN .EQ $2
|
ROM.GETFAC .EQ 12 Get FAC at FORPNT
|
||||||
ROM.FOUT .EQ $4
|
ROM.FIN .EQ 14
|
||||||
|
ROM.FOUT .EQ 16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Memory Map
|
* Memory Map
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -36,12 +36,20 @@ CS.START cld
|
|||||||
.DA TAN
|
.DA TAN
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
COS
|
COS >PULLW INDEX
|
||||||
|
>ROMCALL SETFAC
|
||||||
|
>ROMCALL COS
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SIN
|
SIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
TAN
|
TAN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
ACOS
|
||||||
|
*--------------------------------------
|
||||||
|
ASIN
|
||||||
|
*--------------------------------------
|
||||||
|
ATAN
|
||||||
|
*--------------------------------------
|
||||||
LIB.LOAD
|
LIB.LOAD
|
||||||
LIB.UNLOAD clc
|
LIB.UNLOAD clc
|
||||||
rts
|
rts
|
||||||
|
@ -96,7 +96,7 @@ K.LoadDrv.YA jsr BIN.FindDRV
|
|||||||
|
|
||||||
>LDYA ZPPtr1
|
>LDYA ZPPtr1
|
||||||
|
|
||||||
jsr pDrvJmp call Dev.Detect
|
jsr .88 call Dev.Detect
|
||||||
bcs .96
|
bcs .96
|
||||||
|
|
||||||
jsr BIN.InstallDRV
|
jsr BIN.InstallDRV
|
||||||
@ -113,6 +113,8 @@ K.LoadDrv.YA jsr BIN.FindDRV
|
|||||||
jsr K.FreeMem.A
|
jsr K.FreeMem.A
|
||||||
pla
|
pla
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
.88 jmp (pDrv)
|
||||||
*/--------------------------------------
|
*/--------------------------------------
|
||||||
* # FileSearch
|
* # FileSearch
|
||||||
* Search a file in the provided PATH list
|
* Search a file in the provided PATH list
|
||||||
|
@ -290,6 +290,8 @@ CORE.DispatchEvents
|
|||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
pCodeJmp jmp (pCode)
|
||||||
|
*--------------------------------------
|
||||||
CORE.Quit clc
|
CORE.Quit clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -4,6 +4,137 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* A2osX.DIIDrv
|
||||||
|
* X = DEVMGR.cmd
|
||||||
|
* Y,A = PTR to Params
|
||||||
|
* pDev -> Dev Header AUX!!!
|
||||||
|
* $42 Command Number
|
||||||
|
* $43 Unit Number
|
||||||
|
* $44-$45 Buffer Pointer
|
||||||
|
* $46-$47 Block Number
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.DIIDrv .DA A2osX.DIIDrv.S status
|
||||||
|
.DA A2osX.DIIDrv.RW Read
|
||||||
|
.DA A2osX.DIIDrv.RW Write
|
||||||
|
.DA A2osX.BadCall Format
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.DIIDrv.S >LDYAI A2osx.DIIStat
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.DIIDrv.RW >STYA GO.DiskII.RW.1+1
|
||||||
|
jsr A2osX.Blk.GetCmdAndDevAX
|
||||||
|
jmp GO.DiskII.RW
|
||||||
|
*--------------------------------------
|
||||||
|
A2osx.DIIStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
|
||||||
|
.DA 280
|
||||||
|
.DA #0
|
||||||
|
>PSTR "Disk II 5.25"
|
||||||
|
.BS 4
|
||||||
|
.DA #S.DEVSTAT.T.DISKII
|
||||||
|
.DA #0
|
||||||
|
.DA #0,#9
|
||||||
|
*--------------------------------------
|
||||||
|
* A2osX.BlkDrv
|
||||||
|
* X = DEVMGR.cmd
|
||||||
|
* Y,A = PTR to Params
|
||||||
|
* pDev -> Dev Header
|
||||||
|
* $42 Command Number
|
||||||
|
* $43 Unit Number
|
||||||
|
* $44-$45 Buffer Pointer
|
||||||
|
* $46-$47 Block Number
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.BlkDrv .DA A2osX.BlkDrv.S status
|
||||||
|
.DA A2osX.BlkDrv.RW
|
||||||
|
.DA A2osX.BlkDrv.RW
|
||||||
|
.DA A2osX.BlkDrv.F
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
.DA A2osX.BadCall
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.BlkDrv.S jsr A2osX.Blk.GetCmdAndDev
|
||||||
|
|
||||||
|
jsr A2osX.BlkDrv.Go
|
||||||
|
bcs .9
|
||||||
|
stx A2osx.BlkStat+S.DEVSTAT.SIZE
|
||||||
|
sty A2osx.BlkStat+S.DEVSTAT.SIZE+1
|
||||||
|
|
||||||
|
>LDYAI A2osX.BlkStat
|
||||||
|
clc
|
||||||
|
.9 rts
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.BlkDrv.RW >STYA A2osX.Blk.GetParam.1+1
|
||||||
|
|
||||||
|
jsr A2osX.Blk.GetCmdAndDev
|
||||||
|
|
||||||
|
jsr A2osX.Blk.GetParam
|
||||||
|
bra A2osX.BlkDrv.Go
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.BlkDrv.F jsr A2osX.Blk.GetCmdAndDev
|
||||||
|
|
||||||
|
A2osX.BlkDrv.Go ldy #S.DEV.ROM.JMP
|
||||||
|
lda (pDev),y
|
||||||
|
sta .8+1
|
||||||
|
iny
|
||||||
|
lda (pDev),y
|
||||||
|
sta .8+2
|
||||||
|
.8 jmp $ffff
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.Blk.GetParam
|
||||||
|
ldy #3
|
||||||
|
A2osX.Blk.GetParam.1
|
||||||
|
lda $ffff,y Self Modified
|
||||||
|
sta $44,y
|
||||||
|
dey
|
||||||
|
bpl A2osX.Blk.GetParam.1
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.Blk.GetCmdAndDev
|
||||||
|
jsr A2osX.Blk.GetCmdAndDevAX
|
||||||
|
stx $42
|
||||||
|
sta $43
|
||||||
|
rts
|
||||||
|
A2osX.Blk.GetCmdAndDevAX
|
||||||
|
txa
|
||||||
|
lsr
|
||||||
|
tax CMD
|
||||||
|
|
||||||
|
ldy #S.DEV.DEVID Drive 1, or 2
|
||||||
|
lda (pDev),y
|
||||||
|
dec O or 1
|
||||||
|
lsr in Carry
|
||||||
|
php
|
||||||
|
|
||||||
|
ldy #S.DEV.BUSID
|
||||||
|
lda (pDev),y
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
asl
|
||||||
|
plp
|
||||||
|
ror DSSS0000
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
A2osX.BlkStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
|
||||||
|
.BS 3
|
||||||
|
>PSTR "ProDOS Block Dev"
|
||||||
|
.DA #S.DEVSTAT.T.PRODOS
|
||||||
|
.DA #0
|
||||||
|
.DA #0,#9
|
||||||
|
*--------------------------------------
|
||||||
* Smartport Driver
|
* Smartport Driver
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osX.PrtDrv .DA A2osX.PrtDrv.S STATUS
|
A2osX.PrtDrv .DA A2osX.PrtDrv.S STATUS
|
||||||
|
@ -43,14 +43,7 @@ AUTO 6
|
|||||||
sec
|
sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
jmp (pCode) pCodeJmp
|
|
||||||
jmp (*) pLibJmp
|
|
||||||
jmp (pDrv) pDrvJmp
|
|
||||||
jmp (pDev) pDevJmp
|
jmp (pDev) pDevJmp
|
||||||
.BS $BD20-*
|
|
||||||
*--------------------------------------
|
|
||||||
GO.Reset jsr GO.A2osX
|
|
||||||
jmp CORE.Run
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* *** MUST BE REINTRANT ***
|
* *** MUST BE REINTRANT ***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -116,149 +109,39 @@ A2osX.ROMCALL1 phx
|
|||||||
rts
|
rts
|
||||||
|
|
||||||
.1 jmp (.2,x)
|
.1 jmp (.2,x)
|
||||||
.2 .DA $EB27 SETFOR
|
.2 .DA $E7A7 FSUB
|
||||||
|
.DA $E7BE FADD
|
||||||
|
.DA $E941 LOG
|
||||||
|
.DA $E97F FMULT
|
||||||
|
.DA $EA66 FDIV
|
||||||
|
.DA $EAFD LOAD.FAC.FROM.INDEX
|
||||||
|
.DA $EB27 SETFOR
|
||||||
.DA $EC4A FIN
|
.DA $EC4A FIN
|
||||||
.DA $ED36 FOUT.1
|
.DA $ED36 FOUT.1
|
||||||
|
.DA $EE8D SQR
|
||||||
|
.DA $EE97 FPWRT
|
||||||
|
.DA $EF09 EXP
|
||||||
|
.DA $EFEA COS
|
||||||
|
.DA $EFF1 SIN
|
||||||
|
.DA $F03A TAN
|
||||||
|
.DA $F09E ATN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* A2osX.DIIDrv
|
GO.DiskII.RW jsr GO.ProDOS
|
||||||
* X = DEVMGR.cmd
|
|
||||||
* Y,A = PTR to Params
|
|
||||||
* pDev -> Dev Header AUX!!!
|
|
||||||
* $42 Command Number
|
|
||||||
* $43 Unit Number
|
|
||||||
* $44-$45 Buffer Pointer
|
|
||||||
* $46-$47 Block Number
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.DIIDrv .DA A2osX.DIIDrv.S status
|
|
||||||
.DA A2osX.DIIDrv.RW Read
|
|
||||||
.DA A2osX.DIIDrv.RW Write
|
|
||||||
.DA A2osX.BadCall Format
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.DIIDrv.S >LDYAI A2osx.DIIStat
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.DIIDrv.RW >STYA A2osX.Blk.GetParam.1+1
|
|
||||||
jsr A2osX.Blk.GetCmdAndDevAX
|
|
||||||
jsr GO.ProDOS
|
|
||||||
stx $42
|
stx $42
|
||||||
sta $43
|
sta $43
|
||||||
|
|
||||||
jsr A2osX.Blk.GetParam
|
ldy #3
|
||||||
|
|
||||||
|
GO.DiskII.RW.1 lda $ffff,y Self Modified
|
||||||
|
sta $44,y
|
||||||
|
dey
|
||||||
|
bpl GO.DiskII.RW.1
|
||||||
|
|
||||||
jsr $D000
|
jsr $D000
|
||||||
cli
|
cli
|
||||||
jsr GO.A2osX
|
jsr GO.A2osX
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
A2osx.DIIStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
|
|
||||||
.DA 280
|
|
||||||
.DA #0
|
|
||||||
>PSTR "Disk II 5.25"
|
|
||||||
.BS 4
|
|
||||||
.DA #S.DEVSTAT.T.DISKII
|
|
||||||
.DA #0
|
|
||||||
.DA #0,#9
|
|
||||||
*--------------------------------------
|
|
||||||
* A2osX.BlkDrv
|
|
||||||
* X = DEVMGR.cmd
|
|
||||||
* Y,A = PTR to Params
|
|
||||||
* pDev -> Dev Header
|
|
||||||
* $42 Command Number
|
|
||||||
* $43 Unit Number
|
|
||||||
* $44-$45 Buffer Pointer
|
|
||||||
* $46-$47 Block Number
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.BlkDrv .DA A2osX.BlkDrv.S status
|
|
||||||
.DA A2osX.BlkDrv.RW
|
|
||||||
.DA A2osX.BlkDrv.RW
|
|
||||||
.DA A2osX.BlkDrv.F
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
* .DA A2osX.DRV.BadCall
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.BlkDrv.S jsr A2osX.Blk.GetCmdAndDev
|
|
||||||
|
|
||||||
jsr A2osX.BlkDrv.Go
|
|
||||||
bcs .9
|
|
||||||
stx A2osx.BlkStat+S.DEVSTAT.SIZE
|
|
||||||
sty A2osx.BlkStat+S.DEVSTAT.SIZE+1
|
|
||||||
|
|
||||||
>LDYAI A2osX.BlkStat
|
|
||||||
clc
|
|
||||||
.9 rts
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.BlkDrv.RW >STYA A2osX.Blk.GetParam.1+1
|
|
||||||
|
|
||||||
jsr A2osX.Blk.GetCmdAndDev
|
|
||||||
|
|
||||||
jsr A2osX.Blk.GetParam
|
|
||||||
bra A2osX.BlkDrv.Go
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.BlkDrv.F jsr A2osX.Blk.GetCmdAndDev
|
|
||||||
|
|
||||||
A2osX.BlkDrv.Go ldy #S.DEV.ROM.JMP
|
|
||||||
lda (pDev),y
|
|
||||||
sta .8+1
|
|
||||||
iny
|
|
||||||
lda (pDev),y
|
|
||||||
sta .8+2
|
|
||||||
.8 jmp $ffff
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.BlkStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
|
|
||||||
.BS 3
|
|
||||||
>PSTR "ProDOS Block Dev"
|
|
||||||
.DA #S.DEVSTAT.T.PRODOS
|
|
||||||
.DA #0
|
|
||||||
.DA #0,#9
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.Blk.GetParam
|
|
||||||
ldy #3
|
|
||||||
A2osX.Blk.GetParam.1
|
|
||||||
lda $ffff,y Self Modified
|
|
||||||
sta $44,y
|
|
||||||
dey
|
|
||||||
bpl A2osX.Blk.GetParam.1
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
A2osX.Blk.GetCmdAndDev
|
|
||||||
jsr A2osX.Blk.GetCmdAndDevAX
|
|
||||||
stx $42
|
|
||||||
sta $43
|
|
||||||
rts
|
|
||||||
A2osX.Blk.GetCmdAndDevAX
|
|
||||||
txa
|
|
||||||
lsr
|
|
||||||
tax CMD
|
|
||||||
|
|
||||||
ldy #S.DEV.DEVID Drive 1, or 2
|
|
||||||
lda (pDev),y
|
|
||||||
dec O or 1
|
|
||||||
lsr in Carry
|
|
||||||
php
|
|
||||||
|
|
||||||
ldy #S.DEV.BUSID
|
|
||||||
lda (pDev),y
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
plp
|
|
||||||
ror DSSS0000
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
GO.ProDOS pha
|
GO.ProDOS pha
|
||||||
lda $D000 We re coming from AUXLC, saving bank...
|
lda $D000 We re coming from AUXLC, saving bank...
|
||||||
sta GO.A2osX.BNK+1
|
sta GO.A2osX.BNK+1
|
||||||
@ -324,8 +207,6 @@ 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
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ProDOS.INTNUM .BS 1
|
|
||||||
*--------------------------------------
|
|
||||||
IrqHandler cld
|
IrqHandler cld
|
||||||
lda RDALTZP
|
lda RDALTZP
|
||||||
sta .2+1
|
sta .2+1
|
||||||
@ -351,9 +232,15 @@ IrqHandler cld
|
|||||||
|
|
||||||
.3 rts
|
.3 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BrkHandler bra *
|
*GO.Reset jsr GO.A2osX
|
||||||
|
* jmp CORE.Run
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.BS A2osX.HZ-* fill to $BEF0
|
*BrkHandler bra *
|
||||||
|
*--------------------------------------
|
||||||
|
.LIST ON
|
||||||
|
A2osX.GP.S .EQ *-A2osX.SYSCALL
|
||||||
|
.LIST OFF
|
||||||
|
.BS $BEE0-*
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA #6 60hz
|
.DA #6 60hz
|
||||||
.BS 7
|
.BS 7
|
||||||
|
@ -4,6 +4,13 @@ LOMEM $A00
|
|||||||
INC 1
|
INC 1
|
||||||
AUTO 6
|
AUTO 6
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* Kernel ZP Aux
|
||||||
|
*--------------------------------------
|
||||||
|
ZPPtr1 .EQ ZPKERNEL
|
||||||
|
ZPPtr2 .EQ ZPKERNEL+2
|
||||||
|
ZPPtr3 .EQ ZPKERNEL+4
|
||||||
|
ZPPtr4 .EQ ZPKERNEL+6
|
||||||
|
*--------------------------------------
|
||||||
Kernel.Init sei
|
Kernel.Init sei
|
||||||
ldx #$FF
|
ldx #$FF
|
||||||
txs
|
txs
|
||||||
@ -481,7 +488,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
php
|
php
|
||||||
sei
|
sei
|
||||||
>LDYA $FFFE
|
>LDYA $FFFE
|
||||||
>STYA K.IrqMgrOldFFFE
|
>STYA IRQ.OldFFFE
|
||||||
>LDYAI K.IrqHandlerAuxLC
|
>LDYAI K.IrqHandlerAuxLC
|
||||||
>STYA $FFFE
|
>STYA $FFFE
|
||||||
|
|
||||||
@ -491,7 +498,7 @@ IrqMgrInit >LDYAI MSG.IRQ
|
|||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
lda K.MLI.PARAMS+1
|
lda K.MLI.PARAMS+1
|
||||||
sta ProDOS.INTNUM
|
sta IRQ.INTNUM
|
||||||
|
|
||||||
plp
|
plp
|
||||||
|
|
||||||
|
@ -52,9 +52,7 @@ K.IrqHandlerAuxLC
|
|||||||
|
|
||||||
lda .12+1
|
lda .12+1
|
||||||
|
|
||||||
.8 jmp (K.IrqMgrOldFFFE)
|
.8 jmp (IRQ.OldFFFE)
|
||||||
*--------------------------------------
|
|
||||||
K.IrqMgrOldFFFE .BS 2
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Called by :
|
* Called by :
|
||||||
* Kernel IrqHandlerAuxLC
|
* Kernel IrqHandlerAuxLC
|
||||||
@ -133,6 +131,10 @@ K.IrqHandler.DEV
|
|||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
IRQ.IntNum .BS 1
|
||||||
|
*--------------------------------------
|
||||||
|
IRQ.OldFFFE .BS 2
|
||||||
|
*--------------------------------------
|
||||||
K.IrqMgrVBL.n0 .BS 1
|
K.IrqMgrVBL.n0 .BS 1
|
||||||
K.IrqMgrVBL.0n .BS 1
|
K.IrqMgrVBL.0n .BS 1
|
||||||
K.IrqMgrVBL.MSM jmp $0000
|
K.IrqMgrVBL.MSM jmp $0000
|
||||||
|
@ -940,23 +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
|
||||||
>PULLW ZPPtr2
|
>PULLW INDEX
|
||||||
|
>ROMCALL SETFAC
|
||||||
ldy #4
|
|
||||||
|
|
||||||
.1 lda (ZPPtr2),y
|
|
||||||
sta FAC,y
|
|
||||||
dey
|
|
||||||
bne .1
|
|
||||||
|
|
||||||
sta FAC.SIGN
|
|
||||||
ora #$80
|
|
||||||
sta FAC+1
|
|
||||||
|
|
||||||
lda (ZPPtr2)
|
|
||||||
sta FAC
|
|
||||||
|
|
||||||
stz FAC.EXTENSION
|
|
||||||
|
|
||||||
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
|
||||||
|
@ -80,14 +80,14 @@ CS.QUIT clc
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG >CSTR "TEST: %e, %e, %e, %e, %e\r\n%e, %e\r\n"
|
MSG >CSTR "PrintF:%e,%e,%e,%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 "-45.567E-17"
|
CONST2 >CSTR "-12.345678E-17"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
|
Loading…
Reference in New Issue
Block a user