mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-05 23:30:15 +00:00
Kernel 0.9.1 : KERNEL, Preemtive mode, Code cleaning....step by step....#5
GUI,DHGR cleaning /shrinking...
This commit is contained in:
parent
cc307e8bc3
commit
7550b8bdfb
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
.Fonts/SYSx7.fnt
BIN
.Fonts/SYSx7.fnt
Binary file not shown.
BIN
.Fonts/SYSx7B.fnt
Normal file
BIN
.Fonts/SYSx7B.fnt
Normal file
Binary file not shown.
@ -16,6 +16,8 @@ ESCSEQ.MAXLEN .EQ 16
|
||||
*--------------------------------------
|
||||
ZPBaseL1 .EQ ZPDRV
|
||||
ZPBaseL2 .EQ ZPDRV+2
|
||||
ZPTmpWord .EQ ZPDRV+4
|
||||
ZPTmpBool .EQ ZPDRV+6
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
@ -280,8 +282,8 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
|
||||
ldx #0 EscSeq Ptr
|
||||
|
||||
.10 stz EscSeqParamTmp
|
||||
stz EscSeqParamTmp+1
|
||||
.10 stz ZPTmpWord
|
||||
stz ZPTmpWord+1
|
||||
|
||||
.1 inx
|
||||
lda EscSeq,x
|
||||
@ -294,27 +296,27 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
dec bEscSeqInNum
|
||||
and #$0F
|
||||
pha
|
||||
lda EscSeqParamTmp
|
||||
ldy EscSeqParamTmp+1
|
||||
asl EscSeqParamTmp param=param*10
|
||||
rol EscSeqParamTmp+1
|
||||
asl EscSeqParamTmp
|
||||
rol EscSeqParamTmp+1
|
||||
lda ZPTmpWord
|
||||
ldy ZPTmpWord+1
|
||||
asl ZPTmpWord param=param*10
|
||||
rol ZPTmpWord+1
|
||||
asl ZPTmpWord
|
||||
rol ZPTmpWord+1
|
||||
clc
|
||||
adc EscSeqParamTmp
|
||||
sta EscSeqParamTmp
|
||||
adc ZPTmpWord
|
||||
sta ZPTmpWord
|
||||
tya
|
||||
adc EscSeqParamTmp+1
|
||||
sta EscSeqParamTmp+1
|
||||
asl EscSeqParamTmp
|
||||
rol EscSeqParamTmp+1
|
||||
adc ZPTmpWord+1
|
||||
sta ZPTmpWord+1
|
||||
asl ZPTmpWord
|
||||
rol ZPTmpWord+1
|
||||
|
||||
pla
|
||||
clc
|
||||
adc EscSeqParamTmp
|
||||
sta EscSeqParamTmp
|
||||
adc ZPTmpWord
|
||||
sta ZPTmpWord
|
||||
bcc .1
|
||||
inc EscSeqParamTmp+1
|
||||
inc ZPTmpWord+1
|
||||
bra .1
|
||||
|
||||
.2 bit bEscSeqInNum
|
||||
@ -322,10 +324,10 @@ COUT.ExecEscSeq stz EscSeqParamCnt
|
||||
|
||||
stz bEscSeqInNum
|
||||
lda #255
|
||||
ldy EscSeqParamTmp+1
|
||||
ldy ZPTmpWord+1
|
||||
bne .21
|
||||
|
||||
lda EscSeqParamTmp
|
||||
lda ZPTmpWord
|
||||
.21 ldy EscSeqParamCnt
|
||||
sta EscSeqParam,y
|
||||
inc EscSeqParamCnt
|
||||
@ -443,8 +445,8 @@ ClrScr stz CH
|
||||
|
||||
lda #" "
|
||||
|
||||
php
|
||||
sei
|
||||
* php
|
||||
* sei
|
||||
sta SETWRITEAUX
|
||||
|
||||
ldy #39
|
||||
@ -453,7 +455,7 @@ ClrScr stz CH
|
||||
bpl .2
|
||||
|
||||
sta CLRWRITEAUX
|
||||
plp
|
||||
* plp
|
||||
|
||||
ldy #39
|
||||
.3 sta (ZPBaseL1),y
|
||||
@ -701,16 +703,16 @@ SetCharAtYX cmp #$40
|
||||
pla
|
||||
bcs .1
|
||||
|
||||
php
|
||||
sei
|
||||
* php
|
||||
* sei
|
||||
sta SETWRITEAUX
|
||||
sta (ZPBaseL1),y
|
||||
.1 sta (ZPBaseL1),y
|
||||
sta CLRWRITEAUX
|
||||
plp
|
||||
* plp
|
||||
rts
|
||||
|
||||
.1 sta (ZPBaseL1),y
|
||||
rts
|
||||
*.1 sta (ZPBaseL1),y
|
||||
* rts
|
||||
*--------------------------------------
|
||||
GetCharAtCurPos ldy CH
|
||||
ldx CV
|
||||
@ -723,16 +725,16 @@ GetCharAtYX jsr SETUP.L1X
|
||||
|
||||
bcs .1
|
||||
|
||||
php
|
||||
sei
|
||||
* php
|
||||
* sei
|
||||
sta SETREADAUX
|
||||
lda (ZPBaseL1),y
|
||||
.1 lda (ZPBaseL1),y
|
||||
sta CLRREADAUX
|
||||
plp
|
||||
* plp
|
||||
rts
|
||||
|
||||
.1 lda (ZPBaseL1),y
|
||||
rts
|
||||
*.1 lda (ZPBaseL1),y
|
||||
* rts
|
||||
*--------------------------------------
|
||||
SETUP.L1X lda BASEL,x
|
||||
sta ZPBaseL1
|
||||
@ -745,8 +747,8 @@ COPY.XtoL1 lda BASEL,x
|
||||
lda BASEH,x
|
||||
sta ZPBaseL2+1
|
||||
|
||||
php
|
||||
sei
|
||||
* php
|
||||
* sei
|
||||
sta SETWRITEAUX
|
||||
sta SETREADAUX
|
||||
|
||||
@ -754,7 +756,7 @@ COPY.XtoL1 lda BASEL,x
|
||||
|
||||
sta CLRWRITEAUX
|
||||
sta CLRREADAUX
|
||||
plp
|
||||
* plp
|
||||
|
||||
.1 ldy #39
|
||||
|
||||
@ -764,8 +766,8 @@ COPY.XtoL1 lda BASEL,x
|
||||
bpl .2
|
||||
rts
|
||||
*--------------------------------------
|
||||
Decimal.Out stz DecimalBuffer
|
||||
stz DecimalBuffer+1
|
||||
Decimal.Out stz ZPTmpWord
|
||||
stz ZPTmpWord+1
|
||||
|
||||
ldx #8
|
||||
sed
|
||||
@ -775,35 +777,40 @@ Decimal.Out stz DecimalBuffer
|
||||
.1 tya
|
||||
asl
|
||||
tay
|
||||
lda DecimalBuffer
|
||||
adc DecimalBuffer
|
||||
sta DecimalBuffer
|
||||
lda DecimalBuffer+1
|
||||
adc DecimalBuffer+1
|
||||
sta DecimalBuffer+1
|
||||
lda ZPTmpWord
|
||||
adc ZPTmpWord
|
||||
sta ZPTmpWord
|
||||
lda ZPTmpWord+1
|
||||
adc ZPTmpWord+1
|
||||
sta ZPTmpWord+1
|
||||
dex
|
||||
bne .1
|
||||
|
||||
cld
|
||||
|
||||
stz bDecimal0Out
|
||||
lda DecimalBuffer+1
|
||||
stz ZPTmpBool No leading 0
|
||||
lda ZPTmpWord+1
|
||||
and #$0f
|
||||
beq .2
|
||||
|
||||
ora #$30
|
||||
dec bDecimal0Out
|
||||
dec ZPTmpBool non zero, print everything
|
||||
jsr Char.Out.Put
|
||||
|
||||
.2 lda DecimalBuffer
|
||||
.2 lda ZPTmpWord
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
lsr
|
||||
bne .3
|
||||
bit bDecimal0Out
|
||||
|
||||
bit ZPTmpBool Print this digit ?
|
||||
bpl .4
|
||||
|
||||
.3 ora #$30
|
||||
jsr Char.Out.Put
|
||||
.4 lda DecimalBuffer
|
||||
|
||||
.4 lda ZPTmpWord
|
||||
and #$0f
|
||||
ora #$30
|
||||
*--------------------------------------
|
||||
@ -836,8 +843,14 @@ Char.Out.Get sec
|
||||
DRV.CS.END
|
||||
EscCodes >PSTR "MDc"
|
||||
EscSeqCmds >PSTR "mnrKH"
|
||||
ENQ.String .AZ "XTERM"
|
||||
SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS
|
||||
.AS 'XTERM'
|
||||
.DA #IAC,#SE
|
||||
SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE
|
||||
BASEL .HS 00.80.00.80.00.80.00.80.28.A8.28.A8.28.A8.28.A8.50.D0.50.D0.50.D0.50.D0
|
||||
BASEH .HS 08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B.08.08.09.09.0A.0A.0B.0B
|
||||
*--------------------------------------
|
||||
CH .BS 1
|
||||
CV .BS 1
|
||||
INVFLG .BS 1
|
||||
@ -848,8 +861,6 @@ CURCHAR .BS 1
|
||||
OutBuffer .BS 16
|
||||
OutPtr .BS 1
|
||||
OutCnt .BS 1
|
||||
DecimalBuffer .BS 2
|
||||
bDecimal0Out .BS 1
|
||||
*--------------------------------------
|
||||
KeyRemapped .HS 05080A0B0D15 L,D,U,CR,R
|
||||
KeyRemappedIdx .HS 050004080C0F
|
||||
@ -870,7 +881,6 @@ bEscMode .BS 1
|
||||
bEscModeCSI .BS 1
|
||||
bEscSeqInNum .BS 1
|
||||
EscSeq .BS ESCSEQ.MAXLEN+1
|
||||
EscSeqParamTmp .BS 2
|
||||
EscSeqParamCnt .BS 1
|
||||
EscSeqParam .BS 4
|
||||
*--------------------------------------
|
||||
@ -881,11 +891,6 @@ DEVSTAT .DA #S.DSTAT.S.WRITE+S.DSTAT.S.READ
|
||||
.DA #0
|
||||
.DA #0
|
||||
.DA #91
|
||||
ENQ.String .AZ "XTERM"
|
||||
SB.IS.TTYPE .DA #IAC,#SB,#TELOPT.TTYPE,#SB.IS
|
||||
.AS 'XTERM'
|
||||
.DA #IAC,#SE
|
||||
SB.IS.TTYPE.LEN .EQ *-SB.IS.TTYPE
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/DRV/CONSOLE.DRV.S
|
||||
|
@ -98,10 +98,10 @@ LBUF.DrawAtY.AND.XOR
|
||||
|
||||
lda (ZPBasePtr),y Get C1
|
||||
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
eor (ZPBasePtr),y
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
@ -128,10 +128,10 @@ LBUF.DrawAtY.AND.XOR
|
||||
|
||||
lda (ZPBasePtr),y Get C2
|
||||
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
eor (ZPBasePtr),y
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
@ -147,11 +147,11 @@ LBUF.DrawAtY.AND.SET
|
||||
|
||||
lda (ZPBasePtr),y Clear screen at C1
|
||||
and LBUF.C1.MASK with MASK bits
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||
ora GBYTE ora with screen bits
|
||||
ora ZPTmpByte ora with screen bits
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
inx
|
||||
@ -201,11 +201,11 @@ LBUF.DrawAtY.AND.SET
|
||||
|
||||
lda (ZPBasePtr),y Get C2
|
||||
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
.8 rts
|
||||
@ -219,11 +219,11 @@ LBUF.DrawAtY.ORA
|
||||
|
||||
lda (ZPBasePtr),y Get C1
|
||||
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
ora (ZPBasePtr),y
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
@ -251,11 +251,11 @@ LBUF.DrawAtY.ORA
|
||||
lda LBUF.MASK,x get MASK bits
|
||||
ora LBUF.C2.MASK
|
||||
and (ZPBasePtr),y
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
.8 rts
|
||||
@ -270,11 +270,11 @@ LBUF.DrawAtY.AND.ORA
|
||||
lda LBUF.MASK,x get MASK bits
|
||||
ora LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||
and (ZPBasePtr),y Clear screen at C1
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||
ora GBYTE ora with screen bits
|
||||
ora ZPTmpByte ora with screen bits
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
inx
|
||||
@ -302,11 +302,11 @@ LBUF.DrawAtY.AND.ORA
|
||||
lda LBUF.MASK,x get MASK bits
|
||||
ora LBUF.C2.MASK
|
||||
and (ZPBasePtr),y
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
lda LBUF.DATA,x get DATA bits
|
||||
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr),y update screen
|
||||
|
||||
.8 rts
|
||||
|
@ -83,7 +83,7 @@ VLINE.MONO >LDYA CB.Cache+S.CB.X1
|
||||
jsr DIVMOD7YA
|
||||
tay
|
||||
lda COL.OFS,y
|
||||
sta GBYTE Save COL (DIV)
|
||||
sta ZPTmpByte Save COL (DIV)
|
||||
|
||||
lda COL.BANK,y
|
||||
tay
|
||||
@ -101,7 +101,7 @@ VLINE.MONO.BLACK
|
||||
clc
|
||||
|
||||
.1 lda BASEL,y
|
||||
adc GBYTE
|
||||
adc ZPTmpByte
|
||||
sta ZPBasePtr
|
||||
lda BASEH,y
|
||||
sta ZPBasePtr+1
|
||||
@ -118,7 +118,7 @@ VLINE.MONO.BLACK
|
||||
VLINE.MONO.WHITE
|
||||
|
||||
.1 lda BASEL,y
|
||||
adc GBYTE
|
||||
adc ZPTmpByte
|
||||
sta ZPBasePtr
|
||||
lda BASEH,y
|
||||
sta ZPBasePtr+1
|
||||
@ -134,7 +134,7 @@ VLINE.MONO.WHITE
|
||||
VLINE.MONO.XOR
|
||||
|
||||
.1 lda BASEL,y
|
||||
adc GBYTE
|
||||
adc ZPTmpByte
|
||||
sta ZPBasePtr
|
||||
lda BASEH,y
|
||||
sta ZPBasePtr+1
|
||||
@ -180,13 +180,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
||||
beq .10
|
||||
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta SETPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.10 inx
|
||||
@ -196,13 +196,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
||||
beq .11
|
||||
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta CLRPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.11 inc ZPBasePtr
|
||||
@ -213,13 +213,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
||||
beq .12
|
||||
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta SETPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.12 inx
|
||||
@ -229,13 +229,13 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
||||
beq .13
|
||||
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta CLRPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.13 rts
|
||||
|
@ -95,13 +95,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
||||
lda Color.Masks,x bits in 1st byte to light?
|
||||
beq .10
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta SETPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.10 inx
|
||||
@ -110,13 +110,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
||||
lda Color.Masks,x
|
||||
beq .11
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta CLRPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.11 inc ZPBasePtr
|
||||
@ -126,13 +126,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
||||
lda Color.Masks,x
|
||||
beq .12
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta SETPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.12 inx
|
||||
@ -141,13 +141,13 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
||||
lda Color.Masks,x
|
||||
beq .13
|
||||
and Color.Pixels,y apply color
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
sta CLRPAGE2
|
||||
|
||||
lda (ZPBasePtr)
|
||||
and Color.NMasks,x reset existing pixel,
|
||||
ora GBYTE
|
||||
ora ZPTmpByte
|
||||
sta (ZPBasePtr)
|
||||
|
||||
.13 rts
|
||||
|
@ -36,14 +36,14 @@ FILLRECT jsr HLINE
|
||||
GETRECTBUFSIZE >LDYA CB.Cache+S.CB.X1
|
||||
jsr DIVMOD7YA
|
||||
|
||||
sta GBYTE
|
||||
sta ZPTmpByte
|
||||
|
||||
>LDYA CB.Cache+S.CB.X2
|
||||
jsr DIVMOD7YA
|
||||
|
||||
inc COL2 + 1
|
||||
sec
|
||||
sbc GBYTE (COL2+1)-COL1
|
||||
sbc ZPTmpByte (COL2+1)-COL1
|
||||
tax
|
||||
|
||||
>LDYA CB.Cache+S.CB.Y1
|
||||
|
@ -23,6 +23,25 @@ ZPBMDataPtr .EQ ZPDRV+8
|
||||
ZPBMMaskPtr .EQ ZPDRV+10
|
||||
ZPBMSavePtr .EQ ZPDRV+12
|
||||
*--------------------------------------
|
||||
ZPTmpWord .EQ ZPDRV+14
|
||||
*--------------------------------------
|
||||
LBUF.C1 .EQ ZPDRV+16
|
||||
LBUF.C1.MASK .EQ ZPDRV+17 Bits to CLR in VMEM : 11100000 00000000 00111111
|
||||
LBUF.C1.DATA .EQ ZPDRV+18 Bits to SET/ORA/XOR : 000ccccc cccccccc cc000000
|
||||
LBUF.C2 .EQ ZPDRV+19 C1 C2
|
||||
LBUF.C2.MASK .EQ ZPDRV+20
|
||||
LBUF.C2.DATA .EQ ZPDRV+21
|
||||
*--------------------------------------
|
||||
BLT.BMMaskPtr .EQ ZPDRV+22
|
||||
BLT.BMDataPtr .EQ ZPDRV+24
|
||||
BLT.BMBitOfs .EQ ZPDRV+26
|
||||
BLT.BMBitOfsL .EQ ZPDRV+27
|
||||
BLT.ScrBitOfs .EQ ZPDRV+28
|
||||
BLT.ScrColIdx .EQ ZPDRV+29
|
||||
BLT.CMASK .EQ ZPDRV+30
|
||||
*--------------------------------------
|
||||
ZPTmpByte .EQ ZPDRV+31
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
CS.START cld
|
||||
@ -273,10 +292,10 @@ DIVMOD7YA dec
|
||||
* OUT:
|
||||
* Y,A = (Y,A) * X
|
||||
*--------------------------------------
|
||||
YAMultX stx GBYTE
|
||||
YAMultX stx ZPTmpByte
|
||||
|
||||
sty GWORD
|
||||
sta GWORD+1
|
||||
sty ZPTmpWord
|
||||
sta ZPTmpWord+1
|
||||
|
||||
ldy #0 Result LO
|
||||
tya Result HI
|
||||
@ -286,17 +305,19 @@ YAMultX stx GBYTE
|
||||
.1 pha
|
||||
tya
|
||||
clc
|
||||
adc GWORD
|
||||
adc ZPTmpWord
|
||||
tay
|
||||
pla
|
||||
adc GWORD+1
|
||||
adc ZPTmpWord+1
|
||||
|
||||
.2 asl GWORD
|
||||
rol GWORD+1
|
||||
.2 asl ZPTmpWord
|
||||
rol ZPTmpWord+1
|
||||
|
||||
.3 lsr GBYTE
|
||||
.3 lsr ZPTmpByte
|
||||
bcs .1
|
||||
|
||||
bne .2
|
||||
|
||||
rts
|
||||
*--------------------------------------
|
||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
||||
@ -396,26 +417,9 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
||||
CB.Cache .BS S.CB
|
||||
BM.Cache .BS S.BM
|
||||
*--------------------------------------
|
||||
LBUF.C1 .BS 1
|
||||
LBUF.C1.MASK .BS 1 Bits to CLR in VMEM : 11100000 00000000 00111111
|
||||
LBUF.C1.DATA .BS 1 Bits to SET/ORA/XOR : 000ccccc cccccccc cc000000
|
||||
LBUF.C2 .BS 1 C1 C2
|
||||
LBUF.C2.MASK .BS 1
|
||||
LBUF.C2.DATA .BS 1
|
||||
LBUF.MASK .BS 81 81 because of sta LBUF.DATA+1,x!!!
|
||||
LBUF.DATA .BS 81
|
||||
*--------------------------------------
|
||||
BLT.BMMaskPtr .BS 2
|
||||
BLT.BMDataPtr .BS 2
|
||||
BLT.BMBitOfs .BS 1
|
||||
BLT.BMBitOfsL .BS 1
|
||||
BLT.ScrBitOfs .BS 1
|
||||
BLT.ScrColIdx .BS 1
|
||||
BLT.CMASK .BS 1
|
||||
*--------------------------------------
|
||||
GBYTE .BS 1
|
||||
GWORD .BS 2
|
||||
*--------------------------------------
|
||||
DSTAT .DA #0
|
||||
.DA #0,#0,#0
|
||||
>PSTR "Apple II DHGR"
|
||||
|
@ -2,8 +2,8 @@ NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
ZPDRV .EQ $30
|
||||
ZPLIB .EQ $40 32 bytes for TCPIP
|
||||
ZPDRV .EQ $20 32 bytes for DHGR.DRV....
|
||||
ZPLIB .EQ $40 32 bytes for TCPIPD..
|
||||
*--------------------------------------
|
||||
* PS Context : 48 bytes MAX
|
||||
*--------------------------------------
|
||||
|
142
INC/GUI.I.txt
142
INC/GUI.I.txt
@ -3,6 +3,26 @@ PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* GC : Graphic Context
|
||||
*--------------------------------------
|
||||
S.GC.hParentGC .EQ 0
|
||||
S.GC.hDev .EQ 1
|
||||
S.GC.hMem .EQ 2
|
||||
*
|
||||
S.GC.X1 .EQ 4
|
||||
S.GC.Y1 .EQ 6
|
||||
S.GC.X2 .EQ 8
|
||||
S.GC.Y2 .EQ 10
|
||||
S.GC.W .EQ 12
|
||||
S.GC.H .EQ 14
|
||||
|
||||
S.GC.Cursor .EQ 15
|
||||
S.GC.Color .EQ 16
|
||||
S.GC.hFont .EQ 17
|
||||
S.GC.hBrush .EQ 18
|
||||
*
|
||||
S.GC .EQ 20
|
||||
*--------------------------------------
|
||||
S.CB.CMD .EQ 0
|
||||
S.CB.CMD.SETPIXEL .EQ 0
|
||||
S.CB.CMD.GETPIXEL .EQ 2
|
||||
@ -13,6 +33,7 @@ S.CB.CMD.BITBLT .EQ 10
|
||||
S.CB.CMD.GETRECTBUFSIZE .EQ 12
|
||||
S.CB.CMD.DRAWLINE .EQ 14
|
||||
S.CB.CMD.DRAWTEXT .EQ 16
|
||||
S.CB.CMD.GETTEXTSIZE .EQ 18
|
||||
S.CB.OP .EQ 1
|
||||
S.CB.OP.XOR .EQ 0 screen EOR bitmap -> Screen
|
||||
S.CB.OP.SET .EQ 2 replace screen with bitmap
|
||||
@ -48,6 +69,127 @@ S.CB.DstPtr .EQ 18 BITBLT
|
||||
*
|
||||
S.CB .EQ 20
|
||||
*--------------------------------------
|
||||
CUR.T.ARROW .EQ 0
|
||||
CUR.T.RESIZEX .EQ 2
|
||||
CUR.T.RESIZEY .EQ 4
|
||||
CUR.T.RESIZEXY1 .EQ 6
|
||||
CUR.T.RESIZEXY2 .EQ 8
|
||||
CUR.T.CROSS .EQ 10
|
||||
CUR.T.TEXT .EQ 12
|
||||
CUR.T.WAIT .EQ 14
|
||||
*--------------------------------------
|
||||
S.MOUSE.X1 .EQ 0
|
||||
S.MOUSE.Y1 .EQ 2
|
||||
S.MOUSE.X2 .EQ 4
|
||||
S.MOUSE.Y2 .EQ 6
|
||||
S.MOUSE.S .EQ 8
|
||||
S.MOUSE.S.UP .EQ %00000001
|
||||
S.MOUSE.S.DOWN .EQ %00000010
|
||||
S.MOUSE.S.MOVE .EQ %00000100
|
||||
S.MOUSE.S.DRAG .EQ %00001000
|
||||
S.MOUSE.S.CLK .EQ %00010000
|
||||
S.MOUSE.S.DCLK .EQ %00100000
|
||||
*
|
||||
S.MOUSE .EQ 9
|
||||
*--------------------------------------
|
||||
S.POINT.X .EQ 0
|
||||
S.POINT.Y .EQ 2
|
||||
*
|
||||
S.POINT .EQ 4
|
||||
*--------------------------------------
|
||||
S.RECT.X1 .EQ 0
|
||||
S.RECT.Y1 .EQ 2
|
||||
S.RECT.X2 .EQ 4
|
||||
S.RECT.Y2 .EQ 6
|
||||
*
|
||||
S.RECT .EQ 8
|
||||
*--------------------------------------
|
||||
T.WND .EQ 0
|
||||
T.MENU .EQ 2
|
||||
T.BUTTON .EQ 4
|
||||
T.TEXT .EQ 6
|
||||
*--------------------------------------
|
||||
S.WND.T .EQ 0
|
||||
S.WND.F .EQ 1
|
||||
S.WND.F.RESIZE .EQ %00000001
|
||||
S.WND.F.MOVE .EQ %00000010
|
||||
S.WND.F.CLOSE .EQ %00000100
|
||||
S.WND.F.MAX .EQ %00001000
|
||||
S.WND.F.MIN .EQ %00010000
|
||||
S.WND.F.NOBORDER .EQ %00100000
|
||||
S.WND.F.MODAL .EQ %01000000
|
||||
S.WND.F.SYSMODAL .EQ %10000000
|
||||
S.WND.S .EQ 2
|
||||
S.WND.hOWNER .EQ 3
|
||||
S.WND.hPARENT .EQ 4
|
||||
S.WND.hTITLE .EQ 5
|
||||
S.WND.hMENU .EQ 6
|
||||
S.WND.hBKCOLOR .EQ 7
|
||||
S.WND.hBKBM .EQ 8
|
||||
S.WND.hSTATUS .EQ 9
|
||||
S.WND.hCUR .EQ 10
|
||||
S.WND.hICON .EQ 11
|
||||
S.WND.X .EQ 12
|
||||
S.WND.Y .EQ 14
|
||||
S.WND.W .EQ 16
|
||||
S.WND.H .EQ 18
|
||||
*
|
||||
S.WND .EQ 32
|
||||
*--------------------------------------
|
||||
S.MENU.T .EQ 0
|
||||
S.MENU.F .EQ 1
|
||||
S.MENU.hSAVEBUF .EQ 2
|
||||
S.MENU.X .EQ 3
|
||||
S.MENU.Y .EQ 5
|
||||
* ... S.MITEMs...
|
||||
*--------------------------------------
|
||||
S.MITEM.F .EQ 0
|
||||
*S.MITEM.F. .EQ %00000001
|
||||
*S.MITEM.F. .EQ %00000010
|
||||
*S.MITEM.F. .EQ %00000100
|
||||
*S.MITEM.F. .EQ %00001000
|
||||
*S.MITEM.F. .EQ %00010000
|
||||
S.MITEM.F.SEP .EQ %00100000
|
||||
S.MITEM.F.CHECKED .EQ %01000000
|
||||
S.MITEM.F.DISABLED .EQ %10000000
|
||||
S.MITEM.ID .EQ 1
|
||||
S.MITEM.hSUBM .EQ 2
|
||||
S.MITEM.hBM .EQ 3
|
||||
S.MITEM.HOTKEY .EQ 4
|
||||
S.MITEM.HOTKEY.CTRL .EQ %10000000
|
||||
S.MITEM.HOTKEY.OA .EQ %01000000
|
||||
S.MITEM.HOTKEY.CA .EQ %00100000
|
||||
S.MITEM.TEXTLEN .EQ 5
|
||||
S.MITEM.TEXT .EQ 6 CSTR
|
||||
* ...
|
||||
*--------------------------------------
|
||||
S.BUT.T .EQ 0
|
||||
S.BUT.F .EQ 1
|
||||
S.BUT.F.DISABLED .EQ %10000000
|
||||
S.BUT.S .EQ 2
|
||||
S.BUT.S.PUSHED .EQ %10000000
|
||||
S.BUT.ID .EQ 3
|
||||
S.BUT.hOWNER .EQ 4
|
||||
S.BUT.hPARENT .EQ 5
|
||||
S.BUT.X .EQ 6
|
||||
S.BUT.Y .EQ 8
|
||||
S.BUT.W .EQ 10
|
||||
S.BUT.H .EQ 12
|
||||
S.BUT.hBM .EQ 14
|
||||
S.BUT.TEXTX .EQ 16
|
||||
S.BUT.TEXTY .EQ 18
|
||||
S.BUT.TEXTLEN .EQ 20
|
||||
S.BUT.TEXT .EQ 21
|
||||
* ...
|
||||
*--------------------------------------
|
||||
S.TEXT.T .EQ 0
|
||||
S.TEXT.F .EQ 1
|
||||
S.TEXT.F.DISABLED .EQ %10000000
|
||||
S.TEXT.ID .EQ 2
|
||||
S.TEXT.hBM .EQ 3
|
||||
S.TEXT.TEXTLEN .EQ 5
|
||||
S.TEXT.TEXT .EQ 6
|
||||
*--------------------------------------
|
||||
S.BM.F .EQ 0
|
||||
S.BM.F.BBP1 .EQ %00000001
|
||||
S.BM.F.BBP2 .EQ %00000010
|
||||
|
@ -15,80 +15,6 @@ LIBGUI.UpdateCursor .EQ 18
|
||||
LIBGUI.ReadMouse .EQ 20
|
||||
LIBGUI.GetScreenGC .EQ 22
|
||||
*--------------------------------------
|
||||
S.GC.hDev .EQ 0
|
||||
S.GC.hMem .EQ 1
|
||||
S.GC.Parent .EQ 2
|
||||
*
|
||||
S.GC.X1 .EQ 4
|
||||
S.GC.Y1 .EQ 6
|
||||
S.GC.X2 .EQ 8
|
||||
S.GC.Y2 .EQ 10
|
||||
*
|
||||
S.GC .EQ 12
|
||||
*--------------------------------------
|
||||
CUR.T.ARROW .EQ 0
|
||||
CUR.T.RESIZEX .EQ 2
|
||||
CUR.T.RESIZEY .EQ 4
|
||||
CUR.T.RESIZEXY1 .EQ 6
|
||||
CUR.T.RESIZEXY2 .EQ 8
|
||||
CUR.T.CROSS .EQ 10
|
||||
CUT.T.TEXT .EQ 12
|
||||
CUR.T.WAIT .EQ 14
|
||||
*--------------------------------------
|
||||
S.MOUSE.X1 .EQ 0
|
||||
S.MOUSE.Y1 .EQ 2
|
||||
S.MOUSE.X2 .EQ 4
|
||||
S.MOUSE.Y2 .EQ 6
|
||||
S.MOUSE.S .EQ 8
|
||||
S.MOUSE.S.UP .EQ %00000001
|
||||
S.MOUSE.S.DOWN .EQ %00000010
|
||||
S.MOUSE.S.MOVE .EQ %00000100
|
||||
S.MOUSE.S.DRAG .EQ %00001000
|
||||
S.MOUSE.S.CLK .EQ %00010000
|
||||
S.MOUSE.S.DCLK .EQ %00100000
|
||||
*
|
||||
S.MOUSE .EQ 9
|
||||
*--------------------------------------
|
||||
S.POINT.X .EQ 0
|
||||
S.POINT.Y .EQ 2
|
||||
*
|
||||
S.POINT .EQ 4
|
||||
*--------------------------------------
|
||||
S.RECT.X1 .EQ 0
|
||||
S.RECT.Y1 .EQ 2
|
||||
S.RECT.X2 .EQ 4
|
||||
S.RECT.Y2 .EQ 6
|
||||
*
|
||||
S.RECT .EQ 8
|
||||
*--------------------------------------
|
||||
S.WND.F .EQ 0
|
||||
S.WND.F.RESIZE .EQ %00000001
|
||||
S.WND.F.MOVE .EQ %00000010
|
||||
S.WND.F.CLOSE .EQ %00000100
|
||||
S.WND.F.MAX .EQ %00001000
|
||||
S.WND.F.MIN .EQ %00010000
|
||||
S.WND.F.SPARE .EQ %00100000
|
||||
S.WND.F.MODAL .EQ %01000000
|
||||
S.WND.F.SYSMODAL .EQ %10000000
|
||||
S.WND.S .EQ 1
|
||||
S.WND.hOWNER .EQ 2
|
||||
S.WND.hPARENT .EQ 3
|
||||
S.WND.hTITLE .EQ 4
|
||||
S.WND.hMENU .EQ 5
|
||||
S.WND.hBKCOLOR .EQ 6
|
||||
S.WND.hBKBM .EQ 7
|
||||
S.WND.hSTATUS .EQ 8
|
||||
S.WND.hCUR .EQ 9
|
||||
S.WND.hICON .EQ 10
|
||||
S.WND.X .EQ 12
|
||||
S.WND.Y .EQ 14
|
||||
S.WND.W .EQ 16
|
||||
S.WND.H .EQ 18
|
||||
*
|
||||
S.WND .EQ 32
|
||||
*--------------------------------------
|
||||
S.GUI.C.BK
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
||||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||
|
12
LIB/LIBGUI.S.BM.txt
Normal file
12
LIB/LIBGUI.S.BM.txt
Normal file
@ -0,0 +1,12 @@
|
||||
NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
BM.Get
|
||||
*--------------------------------------
|
||||
*--------------------------------------
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.BM
|
||||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||
ASM
|
26
LIB/LIBGUI.S.BUT.txt
Normal file
26
LIB/LIBGUI.S.BUT.txt
Normal file
@ -0,0 +1,26 @@
|
||||
NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
BUT.New >STYA ZPPtr1
|
||||
|
||||
ldy #S.BUT.hBM
|
||||
lda (ZPPtr1),y
|
||||
beq .
|
||||
|
||||
>SYSCALL
|
||||
lda #0
|
||||
ldy #
|
||||
sta
|
||||
|
||||
|
||||
*--------------------------------------
|
||||
BUT.Draw
|
||||
|
||||
*--------------------------------------
|
||||
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.BUT
|
||||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||
ASM
|
@ -329,6 +329,7 @@ DrawText >LDYA L.CB.Cache
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.DRAW
|
||||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||
|
28
LIB/LIBGUI.S.MENU.txt
Normal file
28
LIB/LIBGUI.S.MENU.txt
Normal file
@ -0,0 +1,28 @@
|
||||
NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
*--------------------------------------
|
||||
PopupMenu >STYA ZPPtr1
|
||||
|
||||
|
||||
lda #2 1px Border
|
||||
sta DX
|
||||
sta DY
|
||||
stz DX+1
|
||||
stz DY+1
|
||||
|
||||
lda ZPPtr1
|
||||
clc
|
||||
adc #S.MENU
|
||||
sta ZPPtr2
|
||||
|
||||
lda ZPPtr1+1
|
||||
adc /S.MENU
|
||||
sta ZPPtr2+1
|
||||
|
||||
.1 lda (ZPPtr2)
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/LIB/LIBGUI.S.MENU
|
||||
LOAD /A2OSX.SRC/LIB/LIBGUI.S
|
||||
ASM
|
@ -261,6 +261,7 @@ GoDevMouse jmp $ffff
|
||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.CUR
|
||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.PAT
|
||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.WND
|
||||
.INB /A2OSX.SRC/LIB/LIBGUI.S.BUT
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
|
@ -121,8 +121,7 @@ CS.RUN.LOOP
|
||||
|
||||
bcs .8 unable to send greetings...reset..
|
||||
|
||||
ldy #hBinName
|
||||
lda (pData),y
|
||||
>LDA.G hBinName
|
||||
>SYSCALL GetMemPtr.A
|
||||
>SYSCALL ExecPS.YA
|
||||
|
||||
@ -218,7 +217,6 @@ CS.DOEVENT lda (pEvent)
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT >LDA.G hBinName
|
||||
lda (pData),y
|
||||
beq .1
|
||||
>SYSCALL FreeMem.A
|
||||
|
||||
|
@ -33,37 +33,44 @@ CS.START cld
|
||||
.DA CS.RUN
|
||||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
L.MSG.INIT .DA MSG.INIT
|
||||
L.LIBGUI .DA LIBGUI
|
||||
L.SYSFONT .DA SYSFONT
|
||||
L.SYSX7 .DA SYSX7
|
||||
L.SYSX7B .DA SYSX7B
|
||||
L.Filename .DA Filename
|
||||
L.MouseData .DA MouseData
|
||||
L.CB.Paint .DA CB.Paint
|
||||
L.BM.Apple .DA BM.Apple
|
||||
L.TXT.Sample .DA TXT.Sample
|
||||
L.TXT.A2osX .DA TXT.A2osX
|
||||
L.CB.Marylin .DA CB.Marylin
|
||||
L.CB.DrawLine .DA CB.DrawLine
|
||||
L.GC.Clip .DA GC.Clip
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT >LDYA L.MSG.INIT
|
||||
>SYSCALL PrintF.YA
|
||||
|
||||
>LDYA L.LIBGUI
|
||||
CS.INIT >LDYA L.LIBGUI
|
||||
>SYSCALL LoadLib.YA
|
||||
bcs .99
|
||||
bcs .98
|
||||
sta hLIBGUI
|
||||
|
||||
>LIBCALL hLIBGUI,LIBGUI.InitGUI
|
||||
bcs .99
|
||||
bcs .98
|
||||
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI $CC Type
|
||||
>PUSHBI SYS.FOpen.R
|
||||
>PUSHW L.SYSFONT
|
||||
>PUSHW L.SYSX7
|
||||
>SYSCALL LoadStkObj
|
||||
.98 bcs .99
|
||||
sta hSYSFON
|
||||
sta CB.DrawA2osX+S.CB.hFont
|
||||
|
||||
>PUSHWI 0 Aux type
|
||||
>PUSHBI $CC Type
|
||||
>PUSHBI SYS.FOpen.R
|
||||
>PUSHW L.SYSX7B
|
||||
>SYSCALL LoadStkObj
|
||||
bcs .99
|
||||
sta hSYSFONT
|
||||
sta hSYSFONB
|
||||
sta CB.DrawText+S.CB.hFont
|
||||
|
||||
>PUSHWI 0 Aux type
|
||||
@ -78,6 +85,9 @@ CS.INIT >LDYA L.MSG.INIT
|
||||
>LDYA L.TXT.Sample
|
||||
>STYA CB.DrawText+S.CB.TxtPtr
|
||||
|
||||
>LDYA L.TXT.A2osX
|
||||
>STYA CB.DrawA2osX+S.CB.TxtPtr
|
||||
|
||||
>LDYA L.BM.Apple
|
||||
>STYA CB.Apple+S.CB.SrcPtr
|
||||
|
||||
@ -177,13 +187,14 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
LIBGUI .AZ "libgui.o"
|
||||
MSG.INIT .AZ "GUI:Init...\r\n"
|
||||
hLIBGUI .BS 1
|
||||
hSYSFONT .BS 1
|
||||
hSYSFON .BS 1
|
||||
hSYSFONB .BS 1
|
||||
*--------------------------------------
|
||||
Filename .AZ "/A2OSX.BUILD/ROOT/MARILYN"
|
||||
*--------------------------------------
|
||||
SYSFONT .AZ "/A2OSX.BUILD/SBIN/GUI/SYSTEM"
|
||||
SYSX7 .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7"
|
||||
SYSX7B .AZ "/A2OSX.BUILD/SBIN/GUI/SYSX7B"
|
||||
*--------------------------------------
|
||||
MouseData .BS S.MOUSE
|
||||
*--------------------------------------
|
||||
@ -204,19 +215,6 @@ CB.Paint .DA #S.CB.CMD.FILLRECT
|
||||
.DA 20 Y1
|
||||
.DA 519 X2
|
||||
.DA 171 Y2
|
||||
*--------------------------------------
|
||||
CB.Apple .DA #S.CB.CMD.BITBLT
|
||||
.DA #S.CB.OP.SET
|
||||
.DA #S.CB.M.C16
|
||||
.DA #0
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 16 W
|
||||
.DA 7 H
|
||||
.DA 28 DestX
|
||||
.DA 180 DestY
|
||||
.BS 2 SrcPtr
|
||||
.DA 0 DstPtr
|
||||
*--------------------------------------
|
||||
CB.DrawText .DA #S.CB.CMD.DRAWTEXT
|
||||
.DA #S.CB.OP.SET OP
|
||||
@ -229,6 +227,31 @@ CB.DrawText .DA #S.CB.CMD.DRAWTEXT
|
||||
.DA 4 DstX
|
||||
.DA 7 DstY
|
||||
.BS 2 TxtPtr
|
||||
*--------------------------------------
|
||||
CB.Apple .DA #S.CB.CMD.BITBLT
|
||||
.DA #S.CB.OP.SET
|
||||
.DA #S.CB.M.C16
|
||||
.DA #0
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 16 W
|
||||
.DA 7 H
|
||||
.DA 4 DestX
|
||||
.DA 183 DestY
|
||||
.BS 2 SrcPtr
|
||||
.DA 0 DstPtr
|
||||
*--------------------------------------
|
||||
CB.DrawA2osX .DA #S.CB.CMD.DRAWTEXT
|
||||
.DA #S.CB.OP.SET OP
|
||||
.DA #S.CB.M.MONO M
|
||||
.BS 1 hFont
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 0 SrcW
|
||||
.DA 0 SrcH
|
||||
.DA 24 DstX
|
||||
.DA 183 DstY
|
||||
.BS 2 TxtPtr
|
||||
*--------------------------------------
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
@ -236,7 +259,7 @@ BM.Apple .DA #S.BM.F.BBP4
|
||||
.DA #2 RowBytes
|
||||
.DA 16 W
|
||||
.DA 7 H
|
||||
.DA 0
|
||||
.DA 0 no MASK.OFS
|
||||
|
||||
.HS FFF6 green (8)
|
||||
.HS 6FF6 green (8)
|
||||
@ -246,7 +269,8 @@ BM.Apple .DA #S.BM.F.BBP4
|
||||
.HS 9999 violet (11)
|
||||
.HS 1FF1 Dark blue (4)
|
||||
*--------------------------------------
|
||||
TXT.Sample .AZ "@@@@@@@@@ This Is A Sample Text with System Font Height=7px, Variable Width {}[] #0123456789$ @@@@@@@@@"
|
||||
TXT.Sample .AZ "@ This Is A Sample Text with SYSX7B.FON Height=7px, Variable Width {}[] #0123456789$ "
|
||||
TXT.A2osX .AZ "A2osX"
|
||||
*--------------------------------------
|
||||
CB.Marylin .DA #S.CB.CMD.BITBLT
|
||||
.DA #S.CB.OP.SET
|
||||
|
@ -1,8 +1,6 @@
|
||||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
PREFIX /A2OSX.BUILD
|
||||
AUTO 4,1
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
|
@ -294,7 +294,7 @@ Cmd.Exec.CD lda (ZPPTR2)
|
||||
iny
|
||||
lda #0
|
||||
sta (ZPPTR2),y
|
||||
|
||||
|
||||
.3 >LDYA ZPPTR2 Get ARG
|
||||
>SYSCALL RealPath.YA
|
||||
bcs .9
|
||||
|
@ -1,8 +1,6 @@
|
||||
PR#3
|
||||
NEW
|
||||
PREFIX /A2OSX.BUILD
|
||||
LOMEM $A00
|
||||
INC 1
|
||||
AUTO 6
|
||||
AUTO 4,1
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
CSH.E.SYNTAX .EQ $7F
|
||||
|
@ -204,12 +204,12 @@ K.ReadDir.A.ROOT
|
||||
inc ZPPtr2+1
|
||||
bra .3
|
||||
|
||||
* lda #0 done by S.MEM.F.INIT0
|
||||
* lda #0 done by S.MEM.F.INIT0
|
||||
* sta (ZPPtr4) Ending 0
|
||||
|
||||
.5 ldy #S.NODE.DIR.FC
|
||||
lda #16
|
||||
sta (ZPPtr1),y Flag that we returned somthing for next time
|
||||
sta (ZPPtr1),y Flag that we returned somthing for next time
|
||||
|
||||
jmp K.ReadDir.A.EXIT
|
||||
*--------------------------------------
|
||||
|
@ -4,7 +4,7 @@ AUTO 4,1
|
||||
*--------------------------------------
|
||||
ZPMemMgrSPtr .EQ ZPMEMMGR Pointer To Slot selected
|
||||
ZPMemMgrTmp1 .EQ ZPMEMMGR+2
|
||||
|
||||
ZPMemMgrSize .EQ ZPMEMMGR+4
|
||||
ZPSListID .EQ ZPMEMMGR+6
|
||||
ZPSListIBlkPtr .EQ ZPMEMMGR+8
|
||||
ZPSListDBlkPtr .EQ ZPMEMMGR+10
|
||||
@ -79,7 +79,7 @@ K.GetMem0.YA ldx #S.MEM.F.INIT0
|
||||
K.GetMem.YA ldx #0
|
||||
|
||||
MEM.GetMem.YAX stx Mem.ReqFlags
|
||||
sta Mem.ReqSize+1
|
||||
sta ZPMemMgrSize+1
|
||||
|
||||
tya
|
||||
bit #$0F 16 bytes aligned ?
|
||||
@ -89,9 +89,9 @@ MEM.GetMem.YAX stx Mem.ReqFlags
|
||||
clc
|
||||
adc #$10
|
||||
bcc .10
|
||||
inc Mem.ReqSize+1
|
||||
inc ZPMemMgrSize+1
|
||||
|
||||
.10 sta Mem.ReqSize
|
||||
.10 sta ZPMemMgrSize
|
||||
|
||||
>LDYAI Mem.Table
|
||||
>STYA ZPMemMgrSPtr
|
||||
@ -115,12 +115,12 @@ MEM.GetMem.YAX stx Mem.ReqFlags
|
||||
|
||||
.3 ldy #S.MEM.LEN
|
||||
lda (ZPMemMgrSPtr),y get LEN of this block
|
||||
cmp Mem.ReqSize compare with requested size
|
||||
cmp ZPMemMgrSize compare with requested size
|
||||
bne .4
|
||||
|
||||
iny
|
||||
lda (ZPMemMgrSPtr),y
|
||||
cmp Mem.ReqSize+1
|
||||
cmp ZPMemMgrSize+1
|
||||
beq .7 requested size matches slot size !!!
|
||||
|
||||
.4 cpx Mem.LastSlot any other slot to check?
|
||||
@ -133,7 +133,7 @@ MEM.GetMem.YAX stx Mem.ReqFlags
|
||||
|
||||
lda Mem.Free target PTR will be page aligned ?
|
||||
sec
|
||||
sbc Mem.ReqSize
|
||||
sbc ZPMemMgrSize
|
||||
beq .6 yes, allocate
|
||||
|
||||
tay no, reserve a free slot to fill gap
|
||||
@ -141,7 +141,7 @@ MEM.GetMem.YAX stx Mem.ReqFlags
|
||||
jsr Mem.AddSlot X = new slot
|
||||
bcs .9
|
||||
|
||||
.6 >LDYA Mem.ReqSize
|
||||
.6 >LDYA ZPMemMgrSize
|
||||
jsr Mem.AddSlot X = new slot
|
||||
bcs .9
|
||||
|
||||
@ -161,11 +161,11 @@ MEM.GetMem.YAX stx Mem.ReqFlags
|
||||
lda (ZPMemMgrSPtr),y
|
||||
sta .12+2
|
||||
|
||||
lda Mem.ReqSize
|
||||
lda ZPMemMgrSize
|
||||
eor #$ff
|
||||
tay y=not lo count
|
||||
|
||||
lda Mem.ReqSize+1
|
||||
lda ZPMemMgrSize+1
|
||||
eor #$ff a=not hi count
|
||||
|
||||
phx
|
||||
@ -209,7 +209,6 @@ MEM.GetMem.YAX stx Mem.ReqFlags
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
Mem.ReqSize .BS 2 store requested Size
|
||||
Mem.ReqFlags .BS 1 store requested Flags
|
||||
*--------------------------------------
|
||||
* Mem.AddSlot
|
||||
@ -558,6 +557,27 @@ K.SListFree.A
|
||||
sta CLRWRITEAUX
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # GetStkObjProperty.A
|
||||
* ## In:
|
||||
* A = hMem To Free (AUX Memory)
|
||||
* Y = Property Index
|
||||
* ## Out:
|
||||
* Y,A = Property Value
|
||||
*\--------------------------------------
|
||||
phy
|
||||
sta SETREADAUX
|
||||
jsr K.GetMemPtr.A
|
||||
>STYA ZPMemMgrTmp1
|
||||
|
||||
ply
|
||||
lda (ZPMemMgrTmp1),y
|
||||
pha
|
||||
iny
|
||||
lda (ZPMemMgrTmp1),y
|
||||
ply
|
||||
sta CLRREADAUX
|
||||
rts
|
||||
*/--------------------------------------
|
||||
* # NewStkObj.YA
|
||||
* ## In:
|
||||
* Y,A = Size Requested
|
||||
@ -580,7 +600,7 @@ K.NewStkObj.YA ldx #SYS.GetMem.YA
|
||||
*\--------------------------------------
|
||||
K.FreeStkObj.A ldx #SYS.FreeMem.A
|
||||
|
||||
sta SETREADAUX
|
||||
MEM.GoStkObj sta SETREADAUX
|
||||
sta SETWRITEAUX
|
||||
|
||||
jsr .1
|
||||
|
@ -63,6 +63,7 @@ J.Cmds .DA SETPIXEL
|
||||
.DA GETRECTBUFSIZE
|
||||
.DA $ffff DRAWLINE
|
||||
.DA DRAWTEXT
|
||||
.DA GETTEXTSIZE
|
||||
*--------------------------------------
|
||||
SETPIXEL >LDYA CB.Cache+S.CB.Y1
|
||||
ldx DstBM.Cache+S.BM.RowBytes
|
||||
@ -155,6 +156,7 @@ BITBLT.1 >STYA ZPSrcBMPtr
|
||||
|
||||
|
||||
*--------------------------------------
|
||||
* GETRECTBUFSIZE
|
||||
* In:
|
||||
* S.CB.SrcW
|
||||
* S.CB.SrcH
|
||||
@ -166,14 +168,28 @@ GETRECTBUFSIZE
|
||||
GETRECTBUFSIZE.RTS
|
||||
rts
|
||||
*--------------------------------------
|
||||
* DRAWTEXT
|
||||
* In:
|
||||
* S.CB.S.CB.FONT : hFont
|
||||
* S.CB.SrcPtr : Ptr to Text
|
||||
* S.CB.DstPtr : Buffer Size (in bytes)
|
||||
* Out:
|
||||
* A=hBM
|
||||
*--------------------------------------
|
||||
DRAWTEXT lda CB.Cache+S.CB.hFONT
|
||||
DRAWTEXT sec
|
||||
.HS 90 BCC
|
||||
*--------------------------------------
|
||||
* GETTEXTSIZE
|
||||
* In:
|
||||
* S.CB.S.CB.FONT : hFont
|
||||
* S.CB.SrcPtr : Ptr to Text
|
||||
* Out:
|
||||
* A,X = Width
|
||||
* Y = Height
|
||||
*--------------------------------------
|
||||
GETTEXTSIZE clc
|
||||
php
|
||||
|
||||
lda CB.Cache+S.CB.hFONT
|
||||
jsr GO.GetMemPtr.A
|
||||
>STYA ZPFontPtr
|
||||
|
||||
@ -195,34 +211,43 @@ DRAWTEXT lda CB.Cache+S.CB.hFONT
|
||||
.2 >LDYA CB.Cache+S.CB.TxtPtr
|
||||
>STYA TXTPTR
|
||||
|
||||
lda #S.BM.F.BBP1
|
||||
sta DstBM.Cache+S.BM.F
|
||||
|
||||
stz DstBM.Cache+S.BM.W
|
||||
stz DstBM.Cache+S.BM.W+1
|
||||
stz CB.Cache+S.CB.SrcW
|
||||
stz CB.Cache+S.CB.SrcW+1
|
||||
|
||||
lda FON.Cache+S.FON.PixH
|
||||
sta DstBM.Cache+S.BM.H
|
||||
stz DstBM.Cache+S.BM.H+1
|
||||
|
||||
sta CB.Cache+S.CB.SrcH
|
||||
stz CB.Cache+S.CB.SrcH+1
|
||||
|
||||
|
||||
.3 jsr MEM.TXTPTR.GetNext
|
||||
beq .4
|
||||
|
||||
jsr FON.GetChar
|
||||
lda (ZPCharPtr) Get Char PixelW
|
||||
sec
|
||||
adc DstBM.Cache+S.BM.W
|
||||
sta DstBM.Cache+S.BM.W
|
||||
adc CB.Cache+S.CB.SrcW
|
||||
sta CB.Cache+S.CB.SrcW
|
||||
bcc .3
|
||||
|
||||
inc DstBM.Cache+S.BM.W+1
|
||||
inc CB.Cache+S.CB.SrcW+1
|
||||
bra .3
|
||||
|
||||
.4 >LDYA DstBM.Cache+S.BM.W
|
||||
>STYA CB.Cache+S.CB.SrcW
|
||||
.4 plp
|
||||
|
||||
lda CB.Cache+S.CB.SrcW
|
||||
ldx CB.Cache+S.CB.SrcW+1
|
||||
ldy CB.Cache+S.CB.SrcH
|
||||
|
||||
bcs .5
|
||||
rts
|
||||
|
||||
|
||||
.5 sta DstBM.Cache+S.BM.W
|
||||
stx DstBM.Cache+S.BM.W+1
|
||||
sty DstBM.Cache+S.BM.H
|
||||
stz DstBM.Cache+S.BM.H+1
|
||||
|
||||
lda #S.BM.F.BBP1
|
||||
sta DstBM.Cache+S.BM.F
|
||||
|
||||
jsr BM.Create
|
||||
bcs GETRECTBUFSIZE.RTS
|
||||
|
@ -174,7 +174,7 @@ K.GetC.CDEV ldx #DEVMGR.READ
|
||||
*--------------------------------------
|
||||
K.GetC.SSOCK lda (pDev) #S.NODE.HANDLER
|
||||
jsr K.GetMemPtr.A
|
||||
>STYA .1
|
||||
>STYA .1+1
|
||||
|
||||
ldy #S.NODE.SSOCK.READ
|
||||
lda (pDev),y
|
||||
@ -290,14 +290,13 @@ K.FOpen.10 >LDYAI S.NODE.REG
|
||||
stz K.MLI.PARAMS+3
|
||||
stz K.MLI.PARAMS+4
|
||||
>MLICALL MLISETEOF no, reset size to 0
|
||||
bcs .98
|
||||
bra .20
|
||||
bra .21
|
||||
|
||||
.11 >MLICALL MLIGETEOF
|
||||
bcs .98
|
||||
|
||||
>MLICALL MLISETMARK
|
||||
bcs .98
|
||||
.21 bcs .98
|
||||
|
||||
.20 lda K.FOpen.MODE
|
||||
and #SYS.FOpen.T Text Mode ?
|
||||
@ -1093,14 +1092,12 @@ STDIO.IOERR lda #MLI.E.IO
|
||||
PADLEN .BS 1
|
||||
PADCHAR .BS 1
|
||||
*--------------------------------------
|
||||
*EXP .BS 1
|
||||
HEXBUF .BS 4
|
||||
bNeg .BS 1
|
||||
BCDBUF .BS 5 5, enough to handle 10 digits (32bits)
|
||||
*--------------------------------------
|
||||
* Convert HEXBUF to ASCBUF decimal padded with 0
|
||||
*--------------------------------------
|
||||
HEX2DEC ror bNeg
|
||||
HEX2DEC ror .31+1
|
||||
|
||||
ldx #4
|
||||
|
||||
@ -1129,8 +1126,8 @@ HEX2DEC ror bNeg
|
||||
bne .2
|
||||
|
||||
cld
|
||||
*--------------------------------------
|
||||
bit bNeg a -sign to print before digits ?
|
||||
|
||||
.31 bit #$ff SELF MODIFIED -sign to print before digits ?
|
||||
bpl .9
|
||||
lda #'-'
|
||||
jsr Printf.Cout
|
||||
|
Loading…
x
Reference in New Issue
Block a user