Kernel 0.9.1 : SHELL, CSH style scripting.....(wip), Math API (wip), API reorg

This commit is contained in:
Rémy GIBERT 2017-10-27 08:36:46 +02:00
parent 84b423e9de
commit 2f42486dbd
34 changed files with 315 additions and 301 deletions

Binary file not shown.

Binary file not shown.

View File

@ -185,10 +185,10 @@ CS.RUN.BuildCat >LDA.G hDev
bcs .99
>STYA ZPPtr1
ldy #S.DEVSTAT.SIZE
ldy #S.DSTAT.SIZE
lda (ZPPtr1),y
>STA.G SizeInBlocks
ldy #S.DEVSTAT.SIZE+1
ldy #S.DSTAT.SIZE+1
lda (ZPPtr1),y
>STA.G SizeInBlocks+1

View File

@ -93,11 +93,11 @@ CS.RUN.DUMPDEV sta DevID
>LDYA L.MSG0.L
>SYSCALL PrintF.YA
ldy #S.DEVSTAT.NET.MAC+5
ldy #S.DSTAT.NET.MAC+5
.1 >PUSHB (ZPDevStatPtr),y
dey
cpy #S.DEVSTAT.NET.MAC-1
cpy #S.DSTAT.NET.MAC-1
bne .1
lda #S.DEV.NAME
@ -111,10 +111,10 @@ CS.RUN.DUMPDEV sta DevID
lda ZPDevStatPtr
clc
adc #S.DEVSTAT.IDS
adc #S.DSTAT.IDS
tay
lda ZPDevStatPtr+1
adc /S.DEVSTAT.IDS
adc /S.DSTAT.IDS
>PUSHYA
>PUSHB DevID
@ -122,27 +122,27 @@ CS.RUN.DUMPDEV sta DevID
>LDYA L.MSG1.DEV
>SYSCALL PrintF.YA
ldy #S.DEVSTAT.NET.FLAGS
ldy #S.DSTAT.NET.FLAGS
lda (ZPDevStatPtr),y
and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
and #S.DSTAT.NET.FLAGS.ARPOFFLOAD
beq .2
lda #1
.2 >PUSHA
>LDYA L.MSG1.DEV.ARP
>SYSCALL PrintF.YA
ldy #S.DEVSTAT.NET.FLAGS
ldy #S.DSTAT.NET.FLAGS
lda (ZPDevStatPtr),y
and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
and #S.DSTAT.NET.FLAGS.IPOFFLOAD
beq .3
lda #1
.3 >PUSHA
>LDYA L.MSG1.DEV.IP
>SYSCALL PrintF.YA
ldy #S.DEVSTAT.NET.STATUS
ldy #S.DSTAT.NET.STATUS
lda (ZPDevStatPtr),y
and #S.DEVSTAT.NET.STATUS.OK
and #S.DSTAT.NET.STATUS.OK
bne CS.RUN.LINK
>PUSHW L.MSG1.LINK.KO
>LDYA L.MSG1.LINK
@ -156,7 +156,7 @@ CS.RUN.LINK >PUSHW L.MSG1.LINK.OK
>LDYA L.MSG1.LINKSPEED
>SYSCALL PrintF.YA
ldy #S.DEVSTAT.NET.STATUS
ldy #S.DSTAT.NET.STATUS
lda (ZPDevStatPtr),y
and #$0F
tax
@ -168,9 +168,9 @@ CS.RUN.LINK >PUSHW L.MSG1.LINK.OK
dex
bne .4
ldy #S.DEVSTAT.NET.STATUS
ldy #S.DSTAT.NET.STATUS
lda (ZPDevStatPtr),y
and #S.DEVSTAT.NET.STATUS.FD
and #S.DSTAT.NET.STATUS.FD
bne .5
>LDYA L.MSG1.DPLX.HD
bra .6

View File

@ -136,35 +136,35 @@ DumpHeader ldy #S.DEV.DRV.JMP+1
DumpStatus >LDA.G DEV.S
bpl .1
ldy #S.DEVSTAT.SIZE
ldy #S.DSTAT.SIZE
lda (ZPPTR2),y
>STA.G DEV.SIZE
ldy #S.DEVSTAT.SIZE+1
ldy #S.DSTAT.SIZE+1
lda (ZPPTR2),y
>STA.G DEV.SIZE+1
ldy #S.DEVSTAT.SIZE+2
ldy #S.DSTAT.SIZE+2
lda (ZPPTR2),y
>STA.G DEV.SIZE+2
>PUSHEA.G DEV.SIZE
.1 ldy #S.DEVSTAT.VERSION+1
.1 ldy #S.DSTAT.VERSION+1
>PUSHB (ZPPTR2),y
dey
>PUSHB (ZPPTR2),y
lda ZPPTR2
clc
adc #S.DEVSTAT.IDS
adc #S.DSTAT.IDS
tay
lda ZPPTR2+1
adc #0
>PUSHYA
ldy #S.DEVSTAT.ST
ldy #S.DSTAT.ST
>PUSHB (ZPPTR2),y
dey
>PUSHB (ZPPTR2),y

View File

@ -53,17 +53,17 @@ CS.RUN >LDYA L.MemStat
>LDYA L.MSG.Main
>SYSCALL PrintF.YA
lda MemStat+S.MEMSTAT.MF
lda MemStat+S.MSTAT.MF
sec
sbc MemStat+S.MEMSTAT.ML
sbc MemStat+S.MSTAT.ML
tay
lda MemStat+S.MEMSTAT.MF+1
sbc MemStat+S.MEMSTAT.ML+1
lda MemStat+S.MSTAT.MF+1
sbc MemStat+S.MSTAT.ML+1
>PUSHYA
>PUSHW MemStat+S.MEMSTAT.MH
>PUSHW MemStat+S.MEMSTAT.MF
>PUSHW MemStat+S.MEMSTAT.ML
>PUSHW MemStat+S.MSTAT.MH
>PUSHW MemStat+S.MSTAT.MF
>PUSHW MemStat+S.MSTAT.ML
>LDYA L.MSG.Stat
>SYSCALL PrintF.YA
@ -71,17 +71,17 @@ CS.RUN >LDYA L.MemStat
>LDYA L.MSG.Aux
>SYSCALL PrintF.YA
lda MemStat+S.MEMSTAT.XF
lda MemStat+S.MSTAT.XF
sec
sbc MemStat+S.MEMSTAT.XL
sbc MemStat+S.MSTAT.XL
tay
lda MemStat+S.MEMSTAT.XF+1
sbc MemStat+S.MEMSTAT.XL+1
lda MemStat+S.MSTAT.XF+1
sbc MemStat+S.MSTAT.XL+1
>PUSHYA
>PUSHW MemStat+S.MEMSTAT.XH
>PUSHW MemStat+S.MEMSTAT.XF
>PUSHW MemStat+S.MEMSTAT.XL
>PUSHW MemStat+S.MSTAT.XH
>PUSHW MemStat+S.MSTAT.XF
>PUSHW MemStat+S.MSTAT.XL
>LDYA L.MSG.Stat
>SYSCALL PrintF.YA
@ -89,17 +89,17 @@ CS.RUN >LDYA L.MemStat
>LDYA L.MSG.Kernel
>SYSCALL PrintF.YA
lda MemStat+S.MEMSTAT.DH
lda MemStat+S.MSTAT.DH
sec
sbc MemStat+S.MEMSTAT.DF
sbc MemStat+S.MSTAT.DF
tay
lda MemStat+S.MEMSTAT.DH+1
sbc MemStat+S.MEMSTAT.DF+1
lda MemStat+S.MSTAT.DH+1
sbc MemStat+S.MSTAT.DF+1
>PUSHYA
>PUSHW MemStat+S.MEMSTAT.DH
>PUSHW MemStat+S.MEMSTAT.DF
>PUSHW MemStat+S.MEMSTAT.DL
>PUSHW MemStat+S.MSTAT.DH
>PUSHW MemStat+S.MSTAT.DF
>PUSHW MemStat+S.MSTAT.DL
>LDYA L.MSG.Stat
>SYSCALL PrintF.YA
@ -122,7 +122,7 @@ MSG.Aux >CSTR "--- Aux Memory ----------------\r\n"
MSG.Kernel >CSTR "--- Kernel (Drivers) Memory ---\r\n"
MSG.Stat >CSTR " Low : $%H\r\n Free Ptr : $%H\r\n High : $%H\r\n Available Memory : %05D Bytes\r\n"
MSG.End >CSTR "-------------------------------\r\n"
MemStat .BS S.MEMSTAT
MemStat .BS S.MSTAT
*--------------------------------------
.DUMMY
.OR 0

View File

@ -84,7 +84,7 @@ CS.RUN >SYSCALL GetChar
bne .8
>LDA.G MEM.COUNT
>CMP.G MemStat+S.MEMSTAT.MLastSlot
>CMP.G MemStat+S.MSTAT.MLast
beq .10
ldy #LINE.COUNT
@ -137,27 +137,27 @@ CS.RUN >SYSCALL GetChar
>LDYA L.MSG2
>SYSCALL PrintF.YA
>LDYA.G MemStat+S.MEMSTAT.MH
>LDYA.G MemStat+S.MSTAT.MH
>PUSHYA
>LDYA L.MSG3
>SYSCALL PrintF.YA
>LDYA.G MemStat+S.MEMSTAT.MF
>LDYA.G MemStat+S.MSTAT.MF
>PUSHYA
>LDYA L.MSG4
>SYSCALL PrintF.YA
>LDYA.G MemStat+S.MEMSTAT.ML
>LDYA.G MemStat+S.MSTAT.ML
>PUSHYA
>LDYA L.MSG5
>SYSCALL PrintF.YA
sec
>LDA.G MemStat+S.MEMSTAT.MF
>SBC.G MemStat+S.MEMSTAT.ML
>LDA.G MemStat+S.MSTAT.MF
>SBC.G MemStat+S.MSTAT.ML
pha
>LDA.G MemStat+S.MEMSTAT.MF+1
>SBC.G MemStat+S.MEMSTAT.ML+1
>LDA.G MemStat+S.MSTAT.MF+1
>SBC.G MemStat+S.MSTAT.ML+1
ply
>PUSHYA
@ -309,7 +309,7 @@ LINE.COUNT .BS 1
MEM.COUNT .BS 1
USED.COUNT .BS 1
bSTOP .BS 1
MemStat .BS S.MEMSTAT
MemStat .BS S.MSTAT
MEM.FLAGS .BS 9
DS.END
.ED

View File

@ -889,10 +889,10 @@ EscSeqParamTmp .BS 2
EscSeqParamCnt .BS 1
EscSeqParam .BS 4
*--------------------------------------
DEVSTAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
DEVSTAT .DA #S.DSTAT.S.WRITE+S.DSTAT.S.READ
.DA #0,#0,#0
>PSTR "ANSI 80c Console"
.DA #S.DEVSTAT.T.CHAR
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
ENQ.String >CSTR "A2osXTERM"

View File

@ -330,7 +330,7 @@ STAT .DA #0
.DA #0,#0,#0
>PSTR "Apple II DHGR"
.BS 3
.DA #S.DEVSTAT.T.GFX
.DA #S.DSTAT.T.GFX
.DA #0
.DA $0900
*--------------------------------------

View File

@ -124,7 +124,7 @@ DRV.CS.START .DA STATUS
L.DEVSTAT .DA DEVSTAT
.DA 0 end or relocation
*--------------------------------------
STATUS lda #S.DEVSTAT.NET.STATUS.10
STATUS lda #S.DSTAT.NET.STATUS.10
sta LINK.STATUS
ldx DEVSLOTx0
@ -135,7 +135,7 @@ STATUS lda #S.DEVSTAT.NET.STATUS.10
and /L91C96.0.EPHSR.LINK
beq .1
lda LINK.STATUS
ora #S.DEVSTAT.NET.STATUS.OK
ora #S.DSTAT.NET.STATUS.OK
sta LINK.STATUS
.1 lda L91C96.0.TCR,x
@ -143,7 +143,7 @@ STATUS lda #S.DEVSTAT.NET.STATUS.10
and /L91C96.0.TCR.FDSE
bne .2
lda LINK.STATUS
ora #S.DEVSTAT.NET.STATUS.FD
ora #S.DSTAT.NET.STATUS.FD
sta LINK.STATUS
.2 >LDYA L.DEVSTAT
@ -438,7 +438,7 @@ DEVSTAT .DA #0
.BS 3 size
>PSTR "LanCEGS/L91C96"
.BS 1
.DA #S.DEVSTAT.T.NET
.DA #S.DSTAT.T.NET
.BS 1 Subtype
.BS 2 Version
*--------------------------------------

View File

@ -313,7 +313,7 @@ DEVSTAT .DA #0
.DA #0,#0,#0 size
>PSTR "Apple II Mouse"
.BS 2
.DA #S.DEVSTAT.T.XY
.DA #S.DSTAT.T.XY
.DA #0
.DA $0900
*--------------------------------------

View File

@ -147,11 +147,11 @@ DEVSLOT0n .BS 1
DEVSLOTCn .BS 1
DEVSLOTn0 .BS 1
*--------------------------------------
STAT .DA #S.DEVSTAT.S.WRITE
STAT .DA #S.DSTAT.S.WRITE
.DA #0,#0,#0
>PSTR "Parallel Card"
.DA #0,#0,#0
.DA #S.DEVSTAT.T.CHAR
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
*--------------------------------------

View File

@ -198,10 +198,10 @@ WRITE pha
DRV.CS.END
DEVSLOTn0 .BS 1
*--------------------------------------
STAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
STAT .DA #S.DSTAT.S.WRITE+S.DSTAT.S.READ
.DA #0,#0,#0
>PSTR "Serial Card/Port"
.DA #S.DEVSTAT.T.CHAR
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
*--------------------------------------

View File

@ -318,10 +318,10 @@ OUTBUF.HEAD .BS 1
INBUF .BS BUF.SIZE
OUTBUF .BS BUF.SIZE
*--------------------------------------
STAT .DA #S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ+S.DEV.S.IRQ
STAT .DA #S.DSTAT.S.WRITE+S.DSTAT.S.READ+S.DEV.S.IRQ
.DA #0,#0,#0
>PSTR "Serial Card/Port"
.DA #S.DEVSTAT.T.CHAR
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
*--------------------------------------

View File

@ -503,12 +503,12 @@ DEVSLOTx0 .BS 1
DEVSTAT .DA #0
.BS 3 size
>PSTR "UtherNetII/W5100"
.DA #S.DEVSTAT.T.NET
.DA #S.DSTAT.T.NET
.BS 1 Subtype
.BS 2 Version
*--------------------------------------
FLAGS .DA #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD+S.DEVSTAT.NET.FLAGS.IPOFFLOAD
LINK.STATUS .DA #S.DEVSTAT.NET.STATUS.OK+S.DEVSTAT.NET.STATUS.FD+S.DEVSTAT.NET.STATUS.100
FLAGS .DA #S.DSTAT.NET.FLAGS.ARPOFFLOAD+S.DSTAT.NET.FLAGS.IPOFFLOAD
LINK.STATUS .DA #S.DSTAT.NET.STATUS.OK+S.DSTAT.NET.STATUS.FD+S.DSTAT.NET.STATUS.100
MAC .BS 6
MAN
SAVE /A2OSX.SRC/DRV/UTHER2.AI.DRV.S

View File

@ -87,9 +87,9 @@ Dev.Detect >STYA ARGS
sta PacketPagePTR,x
lda PacketPageDATA+1,x
sta DEVSTAT+S.DEVSTAT.VERSION+1 set Hardware version
sta DEVSTAT+S.DSTAT.VERSION+1 set Hardware version
lda PacketPageDATA,x
sta DEVSTAT+S.DEVSTAT.VERSION
sta DEVSTAT+S.DSTAT.VERSION
>LDYA ARGS
>STYA ZPTmpPTR
@ -154,7 +154,7 @@ DRV.CS.START .DA STATUS
L.DEVSTAT .DA DEVSTAT
.DA 0 end or relocation
*--------------------------------------
STATUS lda #S.DEVSTAT.NET.STATUS.10
STATUS lda #S.DSTAT.NET.STATUS.10
sta LINK.STATUS
ldx DEVSLOTx0
@ -170,7 +170,7 @@ STATUS lda #S.DEVSTAT.NET.STATUS.10
beq .1
lda LINK.STATUS
ora #S.DEVSTAT.NET.STATUS.OK
ora #S.DSTAT.NET.STATUS.OK
sta LINK.STATUS
.1 lda /PP.TestCTL
@ -184,7 +184,7 @@ STATUS lda #S.DEVSTAT.NET.STATUS.10
beq .2
lda LINK.STATUS
ora #S.DEVSTAT.NET.STATUS.FD
ora #S.DSTAT.NET.STATUS.FD
sta LINK.STATUS
.2 >LDYA L.DEVSTAT
@ -442,7 +442,7 @@ DEVSLOTx0 .BS 1
DEVSTAT .DA #0
.BS 3 size
>PSTR "Uthernet/CS8900A"
.DA #S.DEVSTAT.T.NET
.DA #S.DSTAT.T.NET
.BS 1 Subtype
.BS 2 Version
*--------------------------------------

View File

@ -389,12 +389,12 @@ DEVSLOTx0 .BS 1
DEVSTAT .DA #0
.BS 3 size
>PSTR "UtherNetII/W5100"
.DA #S.DEVSTAT.T.NET
.DA #S.DSTAT.T.NET
.BS 1 Subtype
.BS 2 Version
*--------------------------------------
FLAGS .DA #0
LINK.STATUS .DA #S.DEVSTAT.NET.STATUS.OK+S.DEVSTAT.NET.STATUS.FD+S.DEVSTAT.NET.STATUS.100
LINK.STATUS .DA #S.DSTAT.NET.STATUS.OK+S.DSTAT.NET.STATUS.FD+S.DSTAT.NET.STATUS.100
MAC .BS 6
MAN
SAVE /A2OSX.SRC/DRV/UTHERNET2.DRV.S

View File

@ -235,22 +235,22 @@ S.MEM.LEN .EQ 6
*
S.MEM .EQ 8
*--------------------------------------
S.MEMSTAT.ML .EQ 0
S.MEMSTAT.MF .EQ 2
S.MEMSTAT.MH .EQ 4
S.MEMSTAT.MLastSlot .EQ 6
S.MSTAT.ML .EQ 0
S.MSTAT.MF .EQ 2
S.MSTAT.MH .EQ 4
S.MSTAT.MLast .EQ 6
*
S.MEMSTAT.XL .EQ 8
S.MEMSTAT.XF .EQ 10
S.MEMSTAT.XH .EQ 12
S.MEMSTAT.XLastSlot .EQ 14
S.MSTAT.XL .EQ 8
S.MSTAT.XF .EQ 10
S.MSTAT.XH .EQ 12
S.MSTAT.XLast .EQ 14
*
S.MEMSTAT.DL .EQ 16
S.MEMSTAT.DF .EQ 18
S.MEMSTAT.DH .EQ 20
S.MEMSTAT.DCount .EQ 22
S.MSTAT.DL .EQ 16
S.MSTAT.DF .EQ 18
S.MSTAT.DH .EQ 20
S.MSTAT.DCount .EQ 22
*
S.MEMSTAT .EQ 24
S.MSTAT .EQ 24
*--------------------------------------
* DEVMGR (new API) = Smartport
*--------------------------------------
@ -302,46 +302,47 @@ DEVMGR.GFX.VLINE .EQ 28
DEVMGR.GFX.FILLRECT .EQ 30
DEVMGR.GFX.BITBLT .EQ 32
*--------------------------------------
S.DEVSTAT.S .EQ 0
S.DEVSTAT.S.BLOCK .EQ %10000000
S.DEVSTAT.S.WRITE .EQ %01000000
S.DEVSTAT.S.READ .EQ %00100000
S.DEVSTAT.S.ONLINE .EQ %00010000
S.DEVSTAT.S.NOFMT .EQ %00001000
S.DEVSTAT.S.WENABL .EQ %00000100
S.DEVSTAT.S.IRQ .EQ %00000010
S.DEVSTAT.S.OPENED .EQ %00000001
S.DEVSTAT.SIZE .EQ 1 3 bytes
S.DEVSTAT.IDS .EQ 4 1 (LEN) + 16 MAX
S.DEVSTAT.T .EQ 21
S.DEVSTAT.T.RAM .EQ $00 Memory Expansion Card (RAM disk)
S.DEVSTAT.T.3.5 .EQ $01 3.5" disk
S.DEVSTAT.T.PROFILE .EQ $02 ProFile-type hard disk
S.DEVSTAT.T.GENSCSI .EQ $03 Generic SCSI
S.DEVSTAT.T.ROM .EQ $04 ROM disk
S.DEVSTAT.T.CDROM .EQ $05 SCSI CD-ROM
S.DEVSTAT.T.TAPE .EQ $06 SCSI tape or other SCSI sequential device
S.DEVSTAT.T.HD .EQ $07 SCSI hard disk
S.DSTAT.S .EQ 0
S.DSTAT.S.BLOCK .EQ %10000000
S.DSTAT.S.WRITE .EQ %01000000
S.DSTAT.S.READ .EQ %00100000
S.DSTAT.S.ONLINE .EQ %00010000
S.DSTAT.S.NOFMT .EQ %00001000
S.DSTAT.S.WENABL .EQ %00000100
S.DSTAT.S.IRQ .EQ %00000010
S.DSTAT.S.OPENED .EQ %00000001
S.DSTAT.SIZE .EQ 1 3 bytes
S.DSTAT.IDS .EQ 4 1 (LEN) + 16 MAX
S.DSTAT.T .EQ 21
S.DSTAT.T.RAM .EQ $00 Memory Expansion Card (RAM disk)
S.DSTAT.T.3.5 .EQ $01 3.5" disk
S.DSTAT.T.PROFILE .EQ $02 ProFile-type hard disk
S.DSTAT.T.GENSCSI .EQ $03 Generic SCSI
S.DSTAT.T.ROM .EQ $04 ROM disk
S.DSTAT.T.CDROM .EQ $05 SCSI CD-ROM
S.DSTAT.T.TAPE .EQ $06 SCSI tape or other SCSI sequential device
S.DSTAT.T.HD .EQ $07 SCSI hard disk
* .EQ $08 Reserved
S.DEVSTAT.T.SPRINTER .EQ $09 SCSI printer
S.DEVSTAT.T.5.25 .EQ $0A 5-1/4" disk
S.DSTAT.T.SPRINTER .EQ $09 SCSI printer
S.DSTAT.T.5.25 .EQ $0A 5-1/4" disk
* .EQ $0B Reserved
* .EQ $0C Reserved
S.DEVSTAT.T.PRINTER .EQ $0D Printer
S.DEVSTAT.T.CLOCK .EQ $0E Clock
S.DEVSTAT.T.MODEM .EQ $0F Modem
S.DEVSTAT.T.DISKII .EQ $10
S.DEVSTAT.T.PRODOS .EQ $11
S.DEVSTAT.T.NET .EQ $12 Network board
S.DEVSTAT.T.XY .EQ $13 X,Y Pointing Device
S.DEVSTAT.T.CHAR .EQ $14
S.DEVSTAT.T.GFX .EQ $15
S.DEVSTAT.ST .EQ 22
S.DEVSTAT.ST.EXT .EQ $80
S.DEVSTAT.ST.DSKSW .EQ $40
S.DEVSTAT.ST.NOREM .EQ $20
S.DEVSTAT.VERSION .EQ 23
S.DEVSTAT .EQ 25
S.DSTAT.T.PRINTER .EQ $0D Printer
S.DSTAT.T.CLOCK .EQ $0E Clock
S.DSTAT.T.MODEM .EQ $0F Modem
S.DSTAT.T.DISKII .EQ $10
S.DSTAT.T.PRODOS .EQ $11
S.DSTAT.T.NET .EQ $12 Network board
S.DSTAT.T.XY .EQ $13 X,Y Pointing Device
S.DSTAT.T.CHAR .EQ $14
S.DSTAT.T.GFX .EQ $15
S.DSTAT.ST .EQ 22
S.DSTAT.ST.EXT .EQ $80
S.DSTAT.ST.DSKSW .EQ $40
S.DSTAT.ST.NOREM .EQ $20
S.DSTAT.VERSION .EQ 23
*
S.DSTAT .EQ 25
*--------------------------------------
* PS STRUCT
*--------------------------------------
@ -390,15 +391,14 @@ TSKMGR.QUIT .EQ 6
S.EVT.F .EQ 0
S.EVT.F.T10TH .EQ %10000000
S.EVT.F.T1SEC .EQ %01000000
S.EVT.F.hMEM2 .EQ %00100000 Indicates That S.EVT.DATAHI is a hMem
S.EVT.F.hMEM1 .EQ %00010000 Indicates That S.EVT.DATALO is a hMem
S.EVT.F.hMEM2 .EQ %00100000 Indicates That S.EVT.B2 is a hMem
S.EVT.F.hMEM1 .EQ %00010000 Indicates That S.EVT.B1 is a hMem
S.EVT.hDEV .EQ 1
S.EVT.DATA .EQ 2
S.EVT.DATALO .EQ 2
S.EVT.DATAHI .EQ 3
S.EVT.DATAW1 .EQ 4
S.EVT.DATAW2 .EQ 6
S.EVT.B1 .EQ 2
S.EVT.B2 .EQ 3
S.EVT.W1 .EQ 4
S.EVT.W2 .EQ 6
*
S.EVT .EQ 8
*--------------------------------------

View File

@ -43,23 +43,35 @@ ZPMEMMGR .EQ $8
*--------------------------------------
INDEX .EQ $5E ->$5F
FORPNT .EQ $85 ->$86
FAC .EQ $9D ->$A1
FAC.SIGN .EQ $A2
FAC.EXTENSION .EQ $AC
*FAC .EQ $9D ->$A1
*FAC.SIGN .EQ $A2
*FAC.EXTENSION .EQ $AC
TXTPTR .EQ $B8
*--------------------------------------
* ROM Entry Point
*--------------------------------------
ROM.FSUB .EQ 0
ROM.FADD .EQ 2
ROM.LOG .EQ 4
ROM.FMULT .EQ 6
ROM.SETARG.AY .EQ 8
ROM.FDIV .EQ 10
ROM.SETFAC.AY .EQ 12
ROM.GETFAC .EQ 14 Get FAC at FORPNT
ROM.FIN .EQ 16
ROM.FOUT .EQ 18
ROM.LTOF .EQ 4
ROM.LOG .EQ 6
ROM.FMULT .EQ 8
ROM.SETARG.AY .EQ 10
ROM.FDIV .EQ 12
ROM.SETFAC.AY .EQ 14
ROM.GETFAC .EQ 16 Get FAC at FORPNT
ROM.FCOMP .EQ 18
ROM.QINT .EQ 20
ROM.FIN .EQ 22
ROM.FOUT .EQ 24
ROM.SQR .EQ 26
ROM.PWR .EQ 28
ROM.EXP .EQ 30
ROM.COS .EQ 32
ROM.SIN .EQ 34
ROM.TAN .EQ 36
ROM.ATAN .EQ 38
*--------------------------------------
* Memory Map
*--------------------------------------
@ -73,7 +85,7 @@ A2osX.SaveSX .EQ $101 Aux
* Aux $3FE -> 3FF : IRQ Vector
*--------------------------------------
K.S.STAT .EQ $0300 S.STAT for internal kernel operations
K.S.DEVSTAT .EQ $0340 S.DEVSTAT=25 or higher depends on dev type
K.S.DSTAT .EQ $0340 S.DSTAT=25 or higher depends on dev type
K.SP.PARAMS .EQ $0380 Max 9 bytes
K.MLI.PARAMS .EQ $0390 Main, 18 bytes min for GetFileInfo (ATLK needs MORE!!!...32 max for now)
K.MLI.PATH .EQ $03B0 64+1 -> $03F0
@ -94,24 +106,24 @@ K.STACKTOP .EQ $0F20 down to $0f00
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F20
Z80JMP .EQ $1000 (00000h) Up To $10FF
*--------------------------------------
FltMgr.Table .EQ $1100 K.FLT.MAX*S.FLT.SIZE=8*32=128b
Flt.Table .EQ $1100 K.FLT.MAX*S.FLT.SIZE=8*32=128b
*--------------------------------------
EvtMgr.Table .EQ $1180 K.EVT.MAX*S.EVT.SIZE=16*8=128b
Evt.Table .EQ $1180 K.EVT.MAX*S.EVT.SIZE=16*8=128b
*--------------------------------------
DevMgr.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*16=512b
Dev.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*16=512b
*--------------------------------------
* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes)
*--------------------------------------
MemMgr.Table .EQ $1800 Slot 0 is Reserved
MemMgr.LoMem .EQ $1800
MemMgr.Free .EQ $1802
MemMgr.HiMem .EQ $1804
MemMgr.LastSlot .EQ $1806
Mem.Table .EQ $1800 Slot 0 is Reserved
Mem.LoMem .EQ $1800
Mem.Free .EQ $1802
Mem.HiMem .EQ $1804
Mem.LastSlot .EQ $1806
*--------------------------------------
MemMgr.MLoMem .EQ $2000
MemMgr.MHiMem .EQ $BD00
MemMgr.XLoMem .EQ $2000
MemMgr.XHiMem .EQ $C000
Mem.MLoMem .EQ $2000
Mem.MHiMem .EQ $BD00
Mem.XLoMem .EQ $2000
Mem.XHiMem .EQ $C000
*--------------------------------------
DevMgr.HiMem .EQ $FFFA Protect IRQ vectors in Aux LC
*--------------------------------------

View File

@ -7,17 +7,17 @@ AUTO 6
*--------------------------------------
* NET Devices
*--------------------------------------
S.DEVSTAT.NET.FLAGS .EQ S.DEVSTAT
S.DEVSTAT.NET.FLAGS.ARPOFFLOAD .EQ %00000001
S.DEVSTAT.NET.FLAGS.IPOFFLOAD .EQ %00000010
S.DEVSTAT.NET.STATUS .EQ S.DEVSTAT+1
S.DEVSTAT.NET.STATUS.OK .EQ $80
S.DEVSTAT.NET.STATUS.FD .EQ $40
S.DEVSTAT.NET.STATUS.10 .EQ $01
S.DEVSTAT.NET.STATUS.100 .EQ $02
S.DEVSTAT.NET.STATUS.1000 .EQ $03
S.DEVSTAT.NET.MAC .EQ S.DEVSTAT+2
S.DEVSTAT.NET .EQ S.DEVSTAT+8
S.DSTAT.NET.FLAGS .EQ S.DSTAT
S.DSTAT.NET.FLAGS.ARPOFFLOAD .EQ %00000001
S.DSTAT.NET.FLAGS.IPOFFLOAD .EQ %00000010
S.DSTAT.NET.STATUS .EQ S.DSTAT+1
S.DSTAT.NET.STATUS.OK .EQ $80
S.DSTAT.NET.STATUS.FD .EQ $40
S.DSTAT.NET.STATUS.10 .EQ $01
S.DSTAT.NET.STATUS.100 .EQ $02
S.DSTAT.NET.STATUS.1000 .EQ $03
S.DSTAT.NET.MAC .EQ S.DSTAT+2
S.DSTAT.NET .EQ S.DSTAT+8
*--------------------------------------
MAN
SAVE /A2OSX.BUILD/INC/NET.I

View File

@ -44,10 +44,10 @@ SET.IPCFG >PULLW ZPTmpPtr1
jsr NetDevJmp
>STYA ZPTmpPtr2
ldy #S.DEVSTAT.NET.FLAGS
ldy #S.DSTAT.NET.FLAGS
lda (ZPTmpPtr2),y
sta DevFlags
and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
and #S.DSTAT.NET.FLAGS.ARPOFFLOAD
beq .4
>LDYA ZPTmpPtr1

View File

@ -78,7 +78,7 @@ FRM.NewIP stx .8+1
sta ZPDataOutPtr+1
lda DevFlags
and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
and #S.DSTAT.NET.FLAGS.IPOFFLOAD
bne .7
ldy #S.ETH.ETHERTYPE
@ -138,7 +138,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
bpl .1
lda DevFlags
and #S.DEVSTAT.NET.FLAGS.IPOFFLOAD
and #S.DSTAT.NET.FLAGS.IPOFFLOAD
bne .21
ldy #S.IP.TOTAL.LENGTH+1
@ -219,7 +219,7 @@ FRM.SendIP ldx #3 Copy SRC.IP even if IP offload
jsr ICMP.ComputeChecksum
.5 lda DevFlags
and #S.DEVSTAT.NET.FLAGS.ARPOFFLOAD
and #S.DSTAT.NET.FLAGS.ARPOFFLOAD
bne .6
jsr IP.SetDestMAC

View File

@ -92,7 +92,7 @@ CS.INIT >LDYA L.MSG.INIT
>STYA ZPPtr1
ldy #S.DEVSTAT+1
ldy #S.DSTAT+1
lda (ZPPtr1),y
sta MouseClamp+2
iny

View File

@ -119,7 +119,7 @@ CS.INIT.DEV >LDYA L.DEVNAME
bcs .9
>STYA ZPIPDevPtr
ldy #S.DEVSTAT+2 MAC
ldy #S.DSTAT+2 MAC
ldx #S.IPCFG.MAC
.2 lda (ZPIPDevPtr),y

View File

@ -415,7 +415,7 @@ BIN.InstallDRV ldy #H.BIN.DRV.CODE.O
ldy #S.DEV-1
.1 lda (ZPPtr1),y copy header to DevMgr.Table
.1 lda (ZPPtr1),y copy header to Dev.Table
sta (ZPPtr2),y
dey
bpl .1

View File

@ -98,7 +98,7 @@ CORE.Events jsr CORE.GetEvents
jsr CORE.PSSelect0
lda #EvtMgr.Table
lda #Evt.Table
sta pEvent
.1 lda (pEvent)
@ -154,7 +154,7 @@ CORE.Events jsr CORE.GetEvents
* CC * event in YA
* (pEvent)
*--------------------------------------
CORE.GetEvents lda #EvtMgr.Table
CORE.GetEvents lda #Evt.Table
sta pEvent point to start of event list
stz CORE.EvtCount reset Size
@ -253,7 +253,7 @@ CORE.DispatchEvents
jsr CORE.PSEnter
lda #EvtMgr.Table
lda #Evt.Table
sta pEvent Select first event in list
lda CORE.EvtCount
@ -408,7 +408,7 @@ CORE.DestroyEvent
beq .1
pha
ldy #S.EVT.DATALO
ldy #S.EVT.B1
lda (pEvent),y
jsr K.FreeMem.A
pla
@ -416,7 +416,7 @@ CORE.DestroyEvent
.1 bit #S.EVT.F.hMEM2
beq .2
ldy #S.EVT.DATAHI
ldy #S.EVT.B2
lda (pEvent),y
jsr K.FreeMem.A

View File

@ -33,12 +33,12 @@ 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
A2osx.DIIStat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
.DA 280
.DA #0
>PSTR "Disk II 5.25"
.BS 4
.DA #S.DEVSTAT.T.DISKII
.DA #S.DSTAT.T.DISKII
.DA #0
.DA #0,#9
*--------------------------------------
@ -67,8 +67,8 @@ 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
stx A2osx.BlkStat+S.DSTAT.SIZE
sty A2osx.BlkStat+S.DSTAT.SIZE+1
>LDYAI A2osX.BlkStat
clc
@ -128,10 +128,10 @@ A2osX.Blk.GetCmdAndDevAX
rts
*--------------------------------------
A2osX.BlkStat .DA #S.DEVSTAT.S.BLOCK+S.DEVSTAT.S.WRITE+S.DEVSTAT.S.READ
A2osX.BlkStat .DA #S.DSTAT.S.BLOCK+S.DSTAT.S.WRITE+S.DSTAT.S.READ
.BS 3
>PSTR "ProDOS Block Dev"
.DA #S.DEVSTAT.T.PRODOS
.DA #S.DSTAT.T.PRODOS
.DA #0
.DA #0,#9
*--------------------------------------
@ -149,13 +149,13 @@ A2osX.PrtDrv .DA A2osX.PrtDrv.S STATUS
.DA A2osX.PrtDrv.P W
*--------------------------------------
A2osX.PrtDrv.S jsr A2osX.PrtDrv.GetDev
>LDYAI K.S.DEVSTAT
>LDYAI K.S.DSTAT
>STYA K.SP.PARAMS+2
lda #3
sta K.SP.PARAMS+4
jsr A2osX.PrtDrv.Go
bcs .9
>LDYAI K.S.DEVSTAT
>LDYAI K.S.DSTAT
.9 rts
*--------------------------------------
A2osX.PrtDrv.P jsr A2osX.PrtDrv.GetParam
@ -221,7 +221,7 @@ DevMgr.NUL.Code .DA .1 STATUS
.2 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.DA #0,#0,#0
>PSTR "NULL DEVICE "
.DA #S.DEVSTAT.T.CHAR
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
*--------------------------------------
@ -243,7 +243,7 @@ DevMgr.SYS.Code .DA .1 STATUS
.2 .DA #S.DEV.S.WRITE+S.DEV.S.READ
.DA #0,#0,#0
>PSTR "A2osX SYS Screen"
.DA #S.DEVSTAT.T.CHAR
.DA #S.DSTAT.T.CHAR
.DA #0
.DA $0900
*--------------------------------------

View File

@ -21,12 +21,12 @@ K.GetDevByID.A cmp DevMgr.Count
asl
php
clc
adc #DevMgr.Table
adc #Dev.Table
tay
plp
lda #0
adc /DevMgr.Table
adc /Dev.Table
rts CC
*/--------------------------------------
* # GetDevByName.YA
@ -39,7 +39,7 @@ K.GetDevByID.A cmp DevMgr.Count
*\--------------------------------------
K.GetDevByName.YA
>STYA ZPPtr1
>LDYAI DevMgr.Table+S.DEV.NAME
>LDYAI Dev.Table+S.DEV.NAME
>STYA ZPPtr2
ldx #0

View File

@ -114,20 +114,22 @@ A2osX.ROMCALL1 phx
.2 .DA $E7A7 FSUB
.DA $E7BE FADD
* .DA $E82E NORMALIZE.FAC.2 (L->F)
.DA $E82E NORMALIZE.FAC.2 (L->F)
.DA $E941 LOG
.DA $E97F FMULT
.DA $E9E3 LOAD.ARG.FROM.YA
.DA $EA66 FDIV
.DA $EAF9 LOAD.FAC.FROM.YA
.DA $EB27 SETFOR
* .DA $EBB2 FCOMP
* .DA $EBF2 QINT (F->L)
.DA $EBB2 FCOMP
.DA $EBF2 QINT (F->L)
.DA $EC4A FIN
.DA $ED36 FOUT.1
.DA $EE8D SQR
.DA $EE97 FPWRT
.DA $EF09 EXP
.DA $EFEA COS
.DA $EFF1 SIN
.DA $F03A TAN

View File

@ -408,21 +408,21 @@ Z80Code.Start .HS 31FFFF START: LD SP,0FFFFH Init Stack
.HS 00 FLAG: .DB 0
Z80Code.Size .EQ *-Z80Code.Start
*--------------------------------------
MemMgrInit >LDYAI MemMgr.MHiMem
>STYA MemMgr.HiMem
>STYA MemMgr.Free
>LDYAI MemMgr.MLoMem
>STYA MemMgr.LoMem
stz MemMgr.LastSlot Reserve Slot #0
MemMgrInit >LDYAI Mem.MHiMem
>STYA Mem.HiMem
>STYA Mem.Free
>LDYAI Mem.MLoMem
>STYA Mem.LoMem
stz Mem.LastSlot Reserve Slot #0
sta SETWRITEAUX
>LDYAI MemMgr.XHiMem
>STYA MemMgr.HiMem
>STYA MemMgr.Free
>LDYAI MemMgr.XLoMem
>STYA MemMgr.LoMem
stz MemMgr.LastSlot Reserve Slot #0
>LDYAI Mem.XHiMem
>STYA Mem.HiMem
>STYA Mem.Free
>LDYAI Mem.XLoMem
>STYA Mem.LoMem
stz Mem.LastSlot Reserve Slot #0
sta CLRWRITEAUX
@ -431,7 +431,7 @@ MemMgrInit >LDYAI MemMgr.MHiMem
PS0Init ldx #S.DEV*2 NUL,SYS
.1 lda DevMgr.NUL-1,x
sta DevMgr.Table-1,x
sta Dev.Table-1,x
dex
bne .1
@ -799,7 +799,7 @@ DevMgrInit.SP ldy #$ff
.DA #0 Status
.DA SP.DEV.STATUS
bcs .7
lda SP.DEV.STATUS.DATA+S.DEVSTAT.S
lda SP.DEV.STATUS.DATA+S.DSTAT.S
sta DEV.HEADER+S.DEV.S
jsr DevMgrInit.AddDev
@ -867,7 +867,7 @@ SP.DEV.STATUS.DEVID
.DA SP.DEV.STATUS.DATA
.DA #3 return DIB
SP.DEV.STATUS.DATA
.BS S.DEVSTAT
.BS S.DSTAT
*--------------------------------------
EvtMgrInit >LDYAI MSG.EVT
>SYSCALL PrintF.YA
@ -876,14 +876,14 @@ EvtMgrInit >LDYAI MSG.EVT
lda #$9B
sta A2osX.TIMER16+1
lda /EvtMgr.Table
lda /Evt.Table
sta pEvent+1
clc
rts
*--------------------------------------
FltMgrInit >LDYAI MSG.FLT
>SYSCALL PrintF.YA
stz FltMgr.Table
stz Flt.Table
clc
rts
*--------------------------------------

View File

@ -28,7 +28,7 @@ K.IrqHandlerAuxLC
pha
lda RDREADAUX
pha
sta CLRREADAUX Make sure we can access DevMgr.Table
sta CLRREADAUX Make sure we can access Dev.Table
jsr K.IrqHandler
@ -103,7 +103,7 @@ K.IrqHandler.VBL
rts
*--------------------------------------
K.IrqHandler.DEV
>LDYAI DevMgr.Table
>LDYAI Dev.Table
>STYA $fe
ldx DevMgr.Count

View File

@ -4,40 +4,40 @@ LOMEM $A00
INC 1
AUTO 6
*/--------------------------------------
* # FAdd
* Return X+Y
* # FAdd,FSub,FMult,FDiv
* Return X+Y,X-Y,X*Y,X/Y
* ## In:
* PUSHW = X (*Float)
* PUSHW = Y (*Float)
* Y,A = Dest (*Float)
*\--------------------------------------
K.FAdd ldx #ROM.FADD
.HS 2C BIT ABS
*/--------------------------------------
* # FSub
* Return X-Y
* ## In:
* PUSHW = X (*Float)
* PUSHW = Y (*Float)
*\--------------------------------------
K.FSub ldx #ROM.FSUB
.HS 2C BIT ABS
K.FMult ldx #ROM.FMULT
.HS 2C BIT ABS
K.FDiv ldx #ROM.FDIV
phx
jsr MATH.PullFAC
jsr MATH.PullARG
>PULLW FORPNT
plx
jsr A2osX.ROMCALL
*--------------------------------------
>ROMCALL GETFAC
clc
rts
*/--------------------------------------
* # Log,Cos,Sin,Tan,ATan
* Return
* ## In:
* PUSHW = X (*Float)
* Y,A = Dest (*Float)
*\--------------------------------------
K.Cos jsr MATH.PullFAC
* >ROMCALL COS
*--------------------------------------
*--------------------------------------
*--------------------------------------
MATH.PullFAC >PULLA
tay
>PULLA

View File

@ -8,8 +8,8 @@ AUTO 6
*--------------------------------------
ZPMemMgrSPtr .EQ ZPMEMMGR Pointer To Slot selected
ZPMemMgrTmp1 .EQ ZPMEMMGR+2
MemMgr.ReqSize .EQ ZPMEMMGR+4 store requested Size
MemMgr.ReqFlags .EQ ZPMEMMGR+6 store requested Flags
Mem.ReqSize .EQ ZPMEMMGR+4 store requested Size
Mem.ReqFlags .EQ ZPMEMMGR+6 store requested Flags
*--------------------------------------
* TODO :
* - Create a 256 bytes table
@ -32,14 +32,14 @@ MemMgr.ReqFlags .EQ ZPMEMMGR+6 store requested Flags
* CS :
* A = EC
*\--------------------------------------
K.GetMem >PULLB MemMgr.ReqFlags store requested flags
K.GetMem >PULLB Mem.ReqFlags store requested flags
>PULLA get requested size LO
tay
>PULLA get requested size HI
sta MemMgr.ReqSize+1
sta Mem.ReqSize+1
bit MemMgr.ReqFlags S.MEM.F.AUX ?
bit Mem.ReqFlags S.MEM.F.AUX ?
bpl K.GetMem.I
sta SETREADAUX Aux Mem requested,switch to AUX
@ -63,7 +63,7 @@ K.GetMem >PULLB MemMgr.ReqFlags store requested flags
* A = EC
*\--------------------------------------
K.GetMem0.YA ldx #S.MEM.F.INIT0
stx MemMgr.ReqFlags
stx Mem.ReqFlags
.HS 2C bit abs
*/--------------------------------------
* # GetMem.YA
@ -76,8 +76,8 @@ K.GetMem0.YA ldx #S.MEM.F.INIT0
* CS :
* A = EC
*\--------------------------------------
K.GetMem.YA stz MemMgr.ReqFlags
sta MemMgr.ReqSize+1
K.GetMem.YA stz Mem.ReqFlags
sta Mem.ReqSize+1
K.GetMem.I tya
bit #$0F 16 bytes aligned ?
@ -87,11 +87,11 @@ K.GetMem.I tya
clc
adc #$10
bcc .10
inc MemMgr.ReqSize+1
inc Mem.ReqSize+1
.10 sta MemMgr.ReqSize
.10 sta Mem.ReqSize
>LDYAI MemMgr.Table
>LDYAI Mem.Table
>STYA ZPMemMgrSPtr
ldx #0 Current slot=0
@ -99,11 +99,11 @@ K.GetMem.I tya
bra .4 skip slot 0, Check if some free slot to reuse first
.1 inx move to next slot
jsr MemMgr.NextSlot
jsr Mem.NextSlot
lda (ZPMemMgrSPtr) Get Flags
bmi .4 in use ?
.2 lda MemMgr.ReqFlags Found an empty slot
.2 lda Mem.ReqFlags Found an empty slot
and #S.MEM.F.ALIGN is request needs a page align ?
beq .3
@ -113,45 +113,45 @@ K.GetMem.I tya
.3 ldy #S.MEM.LEN
lda (ZPMemMgrSPtr),y get LEN of this block
cmp MemMgr.ReqSize compare with requested size
cmp Mem.ReqSize compare with requested size
bne .4
iny
lda (ZPMemMgrSPtr),y
cmp MemMgr.ReqSize+1
cmp Mem.ReqSize+1
beq .7 requested size matches slot size !!!
.4 cpx MemMgr.LastSlot any other slot to check?
.4 cpx Mem.LastSlot any other slot to check?
bne .1 last one, create a new slot
*-------------- Create a New SLOT
lda MemMgr.ReqFlags
lda Mem.ReqFlags
and #S.MEM.F.ALIGN is request needs a page align ?
beq .6
lda MemMgr.Free target PTR will be page aligned ?
lda Mem.Free target PTR will be page aligned ?
sec
sbc MemMgr.ReqSize
sbc Mem.ReqSize
beq .6 yes, allocate
tay no, reserve a free slot to fill gap
lda #0
jsr MemMgr.AddSlot X = new slot
jsr Mem.AddSlot X = new slot
bcs .9
.6 >LDYA MemMgr.ReqSize
jsr MemMgr.AddSlot X = new slot
.6 >LDYA Mem.ReqSize
jsr Mem.AddSlot X = new slot
bcs .9
*-------------- Reuse this SLOT
.7 lda MemMgr.ReqFlags get requested flags
.7 lda Mem.ReqFlags get requested flags
ora #S.MEM.F.INUSE mark as in use
sta (ZPMemMgrSPtr)
and #S.MEM.F.INIT0
beq .8
jsr MemMgr.Init0 X not modified
jsr Mem.Init0 X not modified
.8 lda #0
ldy #S.MEM.BIN
@ -176,38 +176,38 @@ K.GetMem.I tya
.9 rts
*--------------------------------------
* MemMgr.AddSlot
* Mem.AddSlot
* In:
* Y,A = Requested size
* Out:
*--------------------------------------
MemMgr.AddSlot >STYA ZPMemMgrTmp1 save req size
ldx MemMgr.LastSlot
Mem.AddSlot >STYA ZPMemMgrTmp1 save req size
ldx Mem.LastSlot
inx
beq .99 > 255 ERR:OUT OF SLOT
lda MemMgr.Free Compute base PTR=FREE-REQ size
lda Mem.Free Compute base PTR=FREE-REQ size
sec
sbc ZPMemMgrTmp1
tay save new MemMgr.Free LO
lda MemMgr.Free+1
tay save new Mem.Free LO
lda Mem.Free+1
sbc ZPMemMgrTmp1+1
pha save new MemMgr.Free HI
pha save new Mem.Free HI
cpy MemMgr.LoMem
sbc MemMgr.LoMem+1
cpy Mem.LoMem
sbc Mem.LoMem+1
bcc .98 ERR out of mem
jsr MemMgr.NextSlot X,Y unmodified
jsr Mem.NextSlot X,Y unmodified
tya get back MemMgr.Free LO
tya get back Mem.Free LO
ldy #S.MEM.PTR
sta MemMgr.Free set as system MemMgr.Free value
sta Mem.Free set as system Mem.Free value
sta (ZPMemMgrSPtr),y store is as base address of new slot
iny
pla get back MemMgr.Free HI
sta MemMgr.Free+1
pla get back Mem.Free HI
sta Mem.Free+1
sta (ZPMemMgrSPtr),y
iny
@ -217,11 +217,11 @@ MemMgr.AddSlot >STYA ZPMemMgrTmp1 save req size
lda ZPMemMgrTmp1+1
sta (ZPMemMgrSPtr),y
stx MemMgr.LastSlot mark this slot allocated
stx Mem.LastSlot mark this slot allocated
clc
rts
.98 pla discard new MemMgr.Free HI
.98 pla discard new Mem.Free HI
lda #K.E.OOM
sec
rts
@ -230,7 +230,7 @@ MemMgr.AddSlot >STYA ZPMemMgrTmp1 save req size
sec
rts
*--------------------------------------
MemMgr.NextSlot lda ZPMemMgrSPtr
Mem.NextSlot lda ZPMemMgrSPtr
clc
adc #S.MEM
sta ZPMemMgrSPtr
@ -238,7 +238,7 @@ MemMgr.NextSlot lda ZPMemMgrSPtr
inc ZPMemMgrSPtr+1
.8 rts
*--------------------------------------
MemMgr.Init0 ldy #S.MEM.PTR
Mem.Init0 ldy #S.MEM.PTR
lda (ZPMemMgrSPtr),y ZPMemMgrSPtr already set
sta .2+1
iny
@ -309,34 +309,34 @@ K.FreeMem.A phy
lda #0 mark BINPATH slot as free
sta (ZPMemMgrSPtr)
.1 lda MemMgr.LastSlot
.1 lda Mem.LastSlot
beq .8
jsr K.GetMemByID.A X unmodified
lda (ZPMemMgrSPtr)
bmi .8 used, exit
.2 dec MemMgr.LastSlot free! get previous....
beq .3 empty list: go set MemMgr.Free=MemMgr.HiMem
.2 dec Mem.LastSlot free! get previous....
beq .3 empty list: go set Mem.Free=Mem.HiMem
lda MemMgr.LastSlot
lda Mem.LastSlot
jsr K.GetMemByID.A X unmodified
lda (ZPMemMgrSPtr)
bpl .2 free again! loop
ldy #S.MEM.PTR
lda (ZPMemMgrSPtr),y set MemMgr.Free...
sta MemMgr.Free
lda (ZPMemMgrSPtr),y set Mem.Free...
sta Mem.Free
iny
lda (ZPMemMgrSPtr),y
sta MemMgr.Free+1
sta Mem.Free+1
.8 ply
clc
rts
.3 >LDYA MemMgr.HiMem
>STYA MemMgr.Free
.3 >LDYA Mem.HiMem
>STYA Mem.Free
bra .8
*--------------------------------------
.9 ply discard saved Y
@ -393,10 +393,10 @@ K.GetMemPtr.A jsr K.GetMemByID.A
* X unmodified
*\--------------------------------------
* Optimized for :
* MemMgr.Table is page aligned at $1800
* Mem.Table is page aligned at $1800
* S.MEM is 8 bytes
*--------------------------------------
.DO MemMgr.Table=$1800
.DO Mem.Table=$1800
.ELSE
!!!!!WARNING!!!!!
.FIN
@ -406,7 +406,7 @@ K.GetMemPtr.A jsr K.GetMemByID.A
.FIN
*--------------------------------------
K.GetMemByID.A sta ZPMemMgrSPtr
lda /MemMgr.Table/8
lda /Mem.Table/8
asl ZPMemMgrSPtr
rol
asl ZPMemMgrSPtr
@ -427,10 +427,10 @@ K.GetMemByID.A sta ZPMemMgrSPtr
* asl
* rol ZPMemMgrSPtr+1
** clc IMPLICIT
* adc #MemMgr.Table
* adc #Mem.Table
* tay
* lda ZPMemMgrSPtr+1
* adc /MemMgr.Table
* adc /Mem.Table
* sty ZPMemMgrSPtr
* sta ZPMemMgrSPtr+1
* rts
@ -453,8 +453,8 @@ K.SetLoMem
K.NewStr.YA >STYA .1+1
>STYA .4+1
stz MemMgr.ReqFlags
stz MemMgr.ReqSize+1
stz Mem.ReqFlags
stz Mem.ReqSize+1
ldy #0
@ -462,13 +462,13 @@ K.NewStr.YA >STYA .1+1
beq .2
iny
bne .1
inc MemMgr.ReqSize+1
inc Mem.ReqSize+1
inc .1+2
bne .1
.2 iny Add one for ending 0
bne .3
inc MemMgr.ReqSize+1
inc Mem.ReqSize+1
.3 jsr K.GetMem.I
bcs .9
@ -577,7 +577,7 @@ K.GetMemStat.YA >STYA ZPMemMgrTmp1
ldy #6
.1 lda MemMgr.Table,y
.1 lda Mem.Table,y
sta (ZPMemMgrTmp1),y
dey
bpl .1
@ -588,7 +588,7 @@ K.GetMemStat.YA >STYA ZPMemMgrTmp1
sta SETREADAUX
.2 lda MemMgr.Table,x
.2 lda Mem.Table,x
sta (ZPMemMgrTmp1),y
dey
dex
@ -614,11 +614,11 @@ K.GetMemStat.YA >STYA ZPMemMgrTmp1
* X = hMem
*--------------------------------------
MEM.GetMemByNameYA
ldx MemMgr.LastSlot
ldx Mem.LastSlot
beq .9
>STYA .2+1
>LDYAI MemMgr.Table
>LDYAI Mem.Table
>STYA ZPMemMgrTmp1
ldx #0
@ -655,7 +655,7 @@ MEM.GetMemByNameYA
inc ZPMemMgrTmp1+1
.7 inx
cpx MemMgr.LastSlot
cpx Mem.LastSlot
bne .1
.9 sec

View File

@ -34,7 +34,7 @@ PFT.CheckPathSTK
PFT.CheckPathYA
>STYA ZPPtr1
>LDYAI FltMgr.Table
>LDYAI Flt.Table
>STYA ZPPtr2
.1 lda (ZPPtr2) Get Filter char....