mirror of
https://github.com/A2osX/A2osX.git
synced 2024-06-12 20:29:41 +00:00
Kernel 0.94
This commit is contained in:
parent
2b0f02c7a3
commit
987ae82bcd
Binary file not shown.
|
@ -180,12 +180,12 @@ CS.RUN.LOGO.SHOW
|
|||
bit xDir
|
||||
bmi .4
|
||||
|
||||
lda CB.LOGO+S.CB.DstX
|
||||
lda CB.LOGO+S.CB.X1
|
||||
clc
|
||||
adc #4
|
||||
tay
|
||||
|
||||
lda CB.LOGO+S.CB.DstX+1
|
||||
lda CB.LOGO+S.CB.X1+1
|
||||
adc #0
|
||||
pha
|
||||
cpy #244
|
||||
|
@ -198,19 +198,19 @@ CS.RUN.LOGO.SHOW
|
|||
sta xDir
|
||||
bra .6
|
||||
|
||||
.4 lda CB.LOGO+S.CB.DstX
|
||||
.4 lda CB.LOGO+S.CB.X1
|
||||
sec
|
||||
sbc #4
|
||||
tay
|
||||
lda CB.LOGO+S.CB.DstX+1
|
||||
lda CB.LOGO+S.CB.X1+1
|
||||
sbc #0
|
||||
bcc .3
|
||||
|
||||
.5 sty CB.LOGO+S.CB.DstX
|
||||
sta CB.LOGO+S.CB.DstX+1
|
||||
.5 sty CB.LOGO+S.CB.X1
|
||||
sta CB.LOGO+S.CB.X1+1
|
||||
|
||||
|
||||
.6 lda CB.LOGO+S.CB.DstY
|
||||
.6 lda CB.LOGO+S.CB.Y1
|
||||
bit yDir
|
||||
bmi .8
|
||||
|
||||
|
@ -223,14 +223,14 @@ CS.RUN.LOGO.SHOW
|
|||
sta yDir
|
||||
bra .1
|
||||
|
||||
.7 sta CB.LOGO+S.CB.DstY
|
||||
.7 sta CB.LOGO+S.CB.Y1
|
||||
bra .1
|
||||
|
||||
.8 sec
|
||||
sbc #1
|
||||
bcc .60
|
||||
|
||||
sta CB.LOGO+S.CB.DstY
|
||||
sta CB.LOGO+S.CB.Y1
|
||||
jmp .1
|
||||
|
||||
.80 >SYSCALL GetChar
|
||||
|
@ -375,12 +375,14 @@ CB.Apple .DA #S.CB.CMD.BITBLT
|
|||
.DA #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.COLOR
|
||||
.DA #S.CB.M.C16
|
||||
.DA #0
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 20 X1
|
||||
.DA 172 Y1
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0 SrcX
|
||||
.DA 0 SrcY
|
||||
.DA 16 SrcW
|
||||
.DA 7 SrcH
|
||||
.DA 20 DstX
|
||||
.DA 172 DstY
|
||||
.BS 2 SrcPtr
|
||||
.DA 0 DstPtr
|
||||
|
||||
|
@ -388,12 +390,14 @@ CB.PIX .DA #S.CB.CMD.BITBLT
|
|||
.DA #S.CB.OP.SET+S.CB.OP.COLOR
|
||||
.DA #S.CB.M.MONO
|
||||
.DA #0
|
||||
.DA 10 X1
|
||||
.DA 20 Y1
|
||||
.DA 56 X1
|
||||
.DA 30 Y1
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0 SrcX
|
||||
.DA 0 SrcY
|
||||
.DA 120 SrcW
|
||||
.DA 100 SrcH
|
||||
.DA 56 DstX
|
||||
.DA 30 DstY
|
||||
.BS 2 SrcPtr
|
||||
.DA 0 DstPtr
|
||||
|
||||
|
@ -401,12 +405,14 @@ CB.PALETTE .DA #S.CB.CMD.BITBLT
|
|||
.DA #S.CB.OP.SET+S.CB.OP.COLOR
|
||||
.DA #S.CB.M.C16
|
||||
.DA #0
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 200 X1
|
||||
.DA 100 Y1
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0 SrcX
|
||||
.DA 0 SrcY
|
||||
.DA 320 SrcW
|
||||
.DA 40 SrcH
|
||||
.DA 200 DstX
|
||||
.DA 100 DstY
|
||||
.BS 2 SrcPtr
|
||||
.DA 0 DstPtr
|
||||
|
||||
|
@ -414,27 +420,33 @@ CB.TEXTB .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
|
|||
.DA #S.CB.OP.SET+S.CB.OP.INVERSE
|
||||
.DA #S.CB.M.MONO
|
||||
.BS 1 hFONT
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 0 X2
|
||||
.DA 0 Y2
|
||||
.DA 7 DstX
|
||||
.DA 1 DstY
|
||||
.DA 7 X1
|
||||
.DA 1 Y1
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0 SrcX
|
||||
.DA 0 SrcY
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.BS 2 DstPtr
|
||||
.BS 2 TXTPTR
|
||||
.DA 0 DstPtr
|
||||
|
||||
CB.TEXT .DA #S.CB.CMD.DRAWTEXT+S.CB.CMD.OSD
|
||||
.DA #S.CB.OP.SET
|
||||
.DA #S.CB.M.MONO
|
||||
.BS 1 hFONT
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 0 X2
|
||||
.DA 0 Y2
|
||||
.DA 50 DstX
|
||||
.DA 184 DstY
|
||||
.DA 50 X1
|
||||
.DA 184 Y1
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0 SrcX
|
||||
.DA 0 SrcY
|
||||
.DA 0
|
||||
.DA 0
|
||||
.DA 0
|
||||
.BS 2 DstPtr
|
||||
.BS 2 TXTPTR
|
||||
.DA 0 DstPtr
|
||||
*--------------------------------------
|
||||
BM.Apple .DA #S.BM.F.BBP4
|
||||
.DA #2 RowBytes
|
||||
|
@ -460,20 +472,21 @@ CB.LOGO .DA #S.CB.CMD.BITBLT
|
|||
.DA #S.CB.OP.SET+S.CB.OP.COLOR+S.CB.OP.SAVE
|
||||
.DA #S.CB.M.C16
|
||||
.DA #0
|
||||
.DA 0 X1
|
||||
.DA 0 Y1
|
||||
.DA 200 X1
|
||||
.DA 50 Y1
|
||||
.DA 200+320 X2 For GETRECTBUFSIZE
|
||||
.DA 50+40 XZ For GETRECTBUFSIZE
|
||||
.DA 0 SrcX
|
||||
.DA 0 SrcY
|
||||
.DA 320 SrcW
|
||||
.DA 40 SrcH
|
||||
.DA 200 DstX
|
||||
.DA 50 DstY
|
||||
.BS 2 SrcPtr
|
||||
.DA 0 DstPtr
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
DS.END
|
||||
.ED
|
||||
DS.END .ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/bin/gtest.s
|
||||
|
|
|
@ -2,14 +2,12 @@ NEW
|
|||
AUTO 3,1
|
||||
*--------------------------------------
|
||||
* BitBlt
|
||||
* S.CB.X1 : SrcX1 in bitmap/mask
|
||||
* S.CB.Y1 : SrcY1
|
||||
* S.CB.SrcW : width
|
||||
* S.CB.SrcH : height
|
||||
|
||||
* S.CB.DstX : Destination X (screen)
|
||||
* S.CB.DstY : Destination Y (screen)
|
||||
|
||||
* S.CB.X1 : Destination X (screen)
|
||||
* S.CB.Y1 : Destination Y (screen)
|
||||
* S.CB.DstX : X1 in bitmap/mask
|
||||
* S.CB.DstY : Y1 in bitmap/mask
|
||||
* S.CB.SrcW : width in bitmap/mask
|
||||
* S.CB.SrcH : height in bitmap/mask
|
||||
* S.CB.SrcPtr : pointer to S.BM
|
||||
* S.CB.SrcPtr+1 = 0, hMem in S.CB.SrcPtr
|
||||
* S.CB.DstPtr : pointer to Save Buffer
|
||||
|
@ -74,7 +72,7 @@ BITBLT.1 ldy #S.BM-1
|
|||
bcc .2
|
||||
inc ZPBMDataPtr+1
|
||||
|
||||
.2 >LDYA CB.Cache+S.CB.Y1
|
||||
.2 >LDYA CB.Cache+S.CB.SrcY
|
||||
ldx BM.Cache+S.BM.RowBytes
|
||||
jsr YAMultX
|
||||
pha
|
||||
|
@ -92,16 +90,16 @@ BITBLT.1 ldy #S.BM-1
|
|||
pla
|
||||
adc ZPBMMaskPtr+1
|
||||
sta BLT.BMMaskPtr+1
|
||||
lda CB.Cache+S.CB.X1
|
||||
lda CB.Cache+S.CB.SrcX
|
||||
pha
|
||||
and #7
|
||||
sta BLT.BMBitOfs
|
||||
pla
|
||||
lsr CB.Cache+S.CB.X1+1
|
||||
lsr CB.Cache+S.CB.SrcX+1
|
||||
ror
|
||||
lsr CB.Cache+S.CB.X1+1
|
||||
lsr CB.Cache+S.CB.SrcX+1
|
||||
ror
|
||||
lsr CB.Cache+S.CB.X1+1
|
||||
lsr CB.Cache+S.CB.SrcX+1
|
||||
ror
|
||||
pha
|
||||
clc
|
||||
|
@ -119,14 +117,14 @@ BITBLT.1 ldy #S.BM-1
|
|||
|
||||
inc BLT.BMMaskPtr+1
|
||||
|
||||
.4 >LDYA CB.Cache+S.CB.DstX
|
||||
.4 >LDYA CB.Cache+S.CB.X1
|
||||
jsr LBUF.SetBounds1YA
|
||||
stx BLT.ScrBitOfs
|
||||
lda CB.Cache+S.CB.DstX
|
||||
lda CB.Cache+S.CB.X1
|
||||
clc
|
||||
adc CB.Cache+S.CB.SrcW
|
||||
tay
|
||||
lda CB.Cache+S.CB.DstX+1
|
||||
lda CB.Cache+S.CB.X1+1
|
||||
adc CB.Cache+S.CB.SrcW+1
|
||||
pha
|
||||
tya
|
||||
|
@ -188,9 +186,9 @@ BITBLT.LOOP0 lda CB.Cache+S.CB.OP
|
|||
cpx LBUF.C2
|
||||
bne .3
|
||||
|
||||
ldy CB.Cache+S.CB.DstY
|
||||
ldy CB.Cache+S.CB.Y1
|
||||
jsr LBUF.DrawAtY
|
||||
inc CB.Cache+S.CB.DstY
|
||||
inc CB.Cache+S.CB.Y1
|
||||
dec CB.Cache+S.CB.SrcH
|
||||
beq .8
|
||||
|
||||
|
@ -278,9 +276,9 @@ BITBLT.LOOPx.7 and #$ff SELF MODIFIED : #%01110000 get only col2 bites
|
|||
cpx LBUF.C2
|
||||
bne BITBLT.LOOPx.5
|
||||
|
||||
ldy CB.Cache+S.CB.DstY
|
||||
ldy CB.Cache+S.CB.Y1
|
||||
jsr LBUF.DrawAtY
|
||||
inc CB.Cache+S.CB.DstY
|
||||
inc CB.Cache+S.CB.Y1
|
||||
dec CB.Cache+S.CB.SrcH
|
||||
beq .8
|
||||
|
||||
|
|
|
@ -596,7 +596,7 @@ CBX.CmdLen .DA #S.CB.Y1+1 SETPIXEL
|
|||
.DA #S.CB.DstPtr+1 BITBLT
|
||||
.DA #S.CB.DstPtr+1 GETRECTBUFSIZE
|
||||
.DA #S.CB.TxtPtr+1 DRAWTEXT
|
||||
.DA #S.CB.SrcH+1 GETTEXTSIZE
|
||||
.DA #S.CB.TxtPtr+1 GETTEXTSIZE
|
||||
*--------------------------------------
|
||||
CBX.Cache .BS S.CB
|
||||
FON.Cache .BS S.FON
|
||||
|
|
|
@ -608,7 +608,7 @@ CB.CmdLen .DA #S.CB.Y1+1 SETPIXEL
|
|||
.DA #S.CB.DstPtr+1 BITBLT
|
||||
.DA #S.CB.DstPtr+1 GETRECTBUFSIZE
|
||||
.DA #S.CB.TxtPtr+1 DRAWTEXT
|
||||
.DA #S.CB.SrcH+1 GETTEXTSIZE
|
||||
.DA #S.CB.TxtPtr+1 GETTEXTSIZE
|
||||
*--------------------------------------
|
||||
CB.Cache .BS S.CB
|
||||
BM.Cache .BS S.BM
|
||||
|
|
|
@ -73,26 +73,23 @@ S.CB.M.MONO .EQ %00000001 b/w (1 bit/pixel)
|
|||
S.CB.M.C16 .EQ %00001000 16 colors (4 bits/pixel)
|
||||
*S.CB.M.C256 .EQ %00010000 256 colors (8 bits/pixel)
|
||||
S.CB.COLOR .EQ 3 xPIXEL,xLINE,FILLRECT
|
||||
S.CB.hFont .EQ 3 DRAWTEXT
|
||||
S.CB.hFont .EQ 3 DRAWTEXT,GETTEXTSIZE
|
||||
|
||||
S.CB.X1 .EQ 4 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE
|
||||
S.CB.Y1 .EQ 6 xPIXEL,xLINE,FILLRECT,BITBLT,GETRECTBUFSIZE,DRAWLINE
|
||||
S.CB.X2 .EQ 8 VLINE,FILLRECT,GETRECTBUFSIZE,DRAWLINE
|
||||
S.CB.Y2 .EQ 10 HLINE,FILLRECT,GETRECTBUFSIZE,DRAWLINE
|
||||
|
||||
S.CB.X2 .EQ 8 VLINE,FILLRECT,DRAWLINE
|
||||
S.CB.SrcW .EQ 8 BITBLT,GETRECTBUFSIZE
|
||||
S.CB.SrcX .EQ 12 BITBLT,DRAWTEXT,GETTEXTSIZE
|
||||
S.CB.SrcY .EQ 14 BITBLT,DRAWTEXT,GETTEXTSIZE
|
||||
S.CB.SrcW .EQ 16 BITBLT
|
||||
S.CB.SrcH .EQ 18 BITBLT
|
||||
|
||||
S.CB.Y2 .EQ 10 HLINE,FILLRECT,DRAWLINE
|
||||
S.CB.SrcH .EQ 10 BITBLT,GETRECTBUFSIZE
|
||||
|
||||
S.CB.DstX .EQ 12 BITBLT,DRAWTEXT
|
||||
S.CB.DstY .EQ 14 BITBLT,DRAWTEXT
|
||||
|
||||
S.CB.SrcPtr .EQ 16 BITBLT
|
||||
S.CB.TxtPtr .EQ 16 DRAWTEXT
|
||||
|
||||
S.CB.DstPtr .EQ 18 BITBLT
|
||||
S.CB.SrcPtr .EQ 20 BITBLT
|
||||
S.CB.DstPtr .EQ 22 BITBLT,GETRECTBUFSIZE
|
||||
S.CB.TxtPtr .EQ 24 DRAWTEXT,GETTEXTSIZE
|
||||
*
|
||||
S.CB .EQ 20
|
||||
S.CB .EQ 26
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE inc/gfx.i
|
||||
|
|
|
@ -9,7 +9,7 @@ NEW
|
|||
* CC : CB.Cache clipped & visible
|
||||
* CS : CB.Cache invisible
|
||||
*--------------------------------------
|
||||
CLIP.YA jsr CB.Get
|
||||
CLIP.YA jsr CB.Get Put CB in cache
|
||||
|
||||
CLIP.CB.Cache ldx CB.Cache+S.CB.CMD
|
||||
bpl CLIP.X
|
||||
|
@ -21,161 +21,122 @@ CLIP.CB.Cache ldx CB.Cache+S.CB.CMD
|
|||
CLIP.X jmp (J.CLIP-2,x)
|
||||
*--------------------------------------
|
||||
CLIP.Point
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLIP.HLine
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLIP.VLine
|
||||
clc
|
||||
rts
|
||||
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
* OBJ.Cache = Target Context
|
||||
* CB.Cache = Src Control Block
|
||||
*--------------------------------------
|
||||
CLIP.Rect jsr CB.Cache.Overlap
|
||||
bcs .9
|
||||
|
||||
>LDYA OBJ.Cache+S.OBJ.X1
|
||||
>STYAIFGTR CB.Cache+S.CB.X1
|
||||
|
||||
>LDYA OBJ.Cache+S.OBJ.X2
|
||||
>STYAIFLWR CB.Cache+S.CB.X2
|
||||
|
||||
>LDYA OBJ.Cache+S.OBJ.Y1
|
||||
>STYAIFGTR CB.Cache+S.CB.Y1
|
||||
|
||||
>LDYA OBJ.Cache+S.OBJ.Y2
|
||||
>STYAIFLWR CB.Cache+S.CB.Y2
|
||||
|
||||
clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CLIP.Rect
|
||||
CLIP.Text
|
||||
|
||||
* >DEBUG
|
||||
|
||||
clc
|
||||
rts
|
||||
CLIP.Text.RTS rts
|
||||
*--------------------------------------
|
||||
CLIP.BitBlt.9 pla
|
||||
CLIP.BitBlt.99 sec
|
||||
rts
|
||||
* BitBlt :
|
||||
*--------------------------------------
|
||||
CLIP.BitBlt jsr CB.Cache.SetX2Y2 set X2=X1+W-1 Y2=X1+H-1
|
||||
|
||||
CLIP.BitBlt lda CB.Cache+S.CB.DstX
|
||||
ldx CB.Cache+S.CB.DstX+1
|
||||
pha
|
||||
jsr CB.Cache.Overlap
|
||||
bcs CLIP.Text.RTS
|
||||
|
||||
>SCMPAX OBJ.Cache+S.OBJ.X2
|
||||
bpl CLIP.BitBlt.9 DestX after X2....exit
|
||||
pla
|
||||
>SCMPAX OBJ.Cache+S.OBJ.X1
|
||||
bpl .1 DestX Inside X1-X2, go check if X1+W fit in
|
||||
* S.CB.DstX before S.OBJ.X1: D=S.OBJ.X1-S.CB.DstX, S.CB.SrcW-=D, S.CB.DstX=+=D, S.CB.X1+=D
|
||||
|
||||
lda OBJ.Cache+S.OBJ.X1 Compute D....
|
||||
lda OBJ.Cache+S.OBJ.X1
|
||||
sec
|
||||
sbc CB.Cache+S.CB.DstX
|
||||
sta D
|
||||
sbc CB.Cache+S.CB.X1
|
||||
sta DX
|
||||
|
||||
lda OBJ.Cache+S.OBJ.X1+1
|
||||
sbc CB.Cache+S.CB.DstX+1
|
||||
sta D+1 ....always positive
|
||||
|
||||
lda CB.Cache+S.CB.SrcW S.CB.SrcW-=D
|
||||
sec
|
||||
sbc D
|
||||
sta CB.Cache+S.CB.SrcW
|
||||
lda CB.Cache+S.CB.SrcW+1
|
||||
sbc D+1
|
||||
sta CB.Cache+S.CB.SrcW+1
|
||||
bcc CLIP.BitBlt.99 Negative!!!! nothing to do,exit...
|
||||
|
||||
lda CB.Cache+S.CB.DstX S.CB.DstX+=D
|
||||
sbc CB.Cache+S.CB.X1+1
|
||||
sta DX+1
|
||||
bvc .1
|
||||
eor #$80
|
||||
.1 bmi .2
|
||||
>DEBUG
|
||||
lda S.CB.X1
|
||||
clc
|
||||
adc D
|
||||
sta CB.Cache+S.CB.DstX
|
||||
lda CB.Cache+S.CB.DstX+1
|
||||
adc D+1
|
||||
sta CB.Cache+S.CB.DstX+1
|
||||
lda CB.Cache+S.CB.X1 S.CB.X1+=D
|
||||
clc
|
||||
adc D
|
||||
sta CB.Cache+S.CB.X1
|
||||
adc DX
|
||||
sta S.CB.X1
|
||||
|
||||
lda CB.Cache+S.CB.X1+1
|
||||
adc D+1
|
||||
sta CB.Cache+S.CB.X1+1 S.CB.DstX=0, new between S.OBJ.X1 & S.OBJ.X2....
|
||||
adc DX+1
|
||||
sta CB.Cache+S.CB.X1+1
|
||||
|
||||
* S.CB.DstX between S.OBJ.X1 & S.OBJ.X2: D=(S.OBJ.X2+1)-S.CB.DstX
|
||||
|
||||
.1 lda OBJ.Cache+S.OBJ.X2 Compute D in X,Y
|
||||
sec
|
||||
sbc CB.Cache+S.CB.DstX
|
||||
tax
|
||||
lda OBJ.Cache+S.OBJ.X2+1
|
||||
sbc CB.Cache+S.CB.DstX+1
|
||||
inx
|
||||
bne .2
|
||||
|
||||
inc
|
||||
|
||||
.2 tay
|
||||
cpx CB.Cache+S.CB.SrcW
|
||||
sbc CB.Cache+S.CB.SrcW+1
|
||||
bcs CLIP.BitBlt.Y D >= SrcW....nothing to clip
|
||||
|
||||
stx CB.Cache+S.CB.SrcW SrcW < D, make SrcW=D
|
||||
sty CB.Cache+S.CB.SrcW+1
|
||||
|
||||
CLIP.BitBlt.Y lda CB.Cache+S.CB.DstY
|
||||
ldx CB.Cache+S.CB.DstY+1
|
||||
pha
|
||||
>SCMPAX OBJ.Cache+S.OBJ.Y2 DestY after Y2....exit
|
||||
bmi .10
|
||||
|
||||
pla
|
||||
sec
|
||||
rts
|
||||
|
||||
.10 pla
|
||||
>SCMPAX OBJ.Cache+S.OBJ.Y1
|
||||
bpl .1 DestY Inside Y1-Y2, go check if Y1+H fit in
|
||||
|
||||
* S.CB.DstY above S.OBJ.Y1: D=S.OBJ.Y1-S.CB.DstY, S.CB.SrcH-=D, S.CB.DstY=0, S.CB.Y1+=D
|
||||
lda OBJ.Cache+S.OBJ.Y1 Compute D....
|
||||
sec
|
||||
sbc CB.Cache+S.CB.DstY
|
||||
sta D
|
||||
lda OBJ.Cache+S.OBJ.Y1+1
|
||||
sbc CB.Cache+S.CB.DstY+1
|
||||
sta D+1 ....always positive
|
||||
|
||||
lda CB.Cache+S.CB.SrcH S.CB.SrcH-=D
|
||||
sec
|
||||
sbc D
|
||||
sta CB.Cache+S.CB.SrcH
|
||||
lda CB.Cache+S.CB.SrcH+1
|
||||
sbc D+1
|
||||
sta CB.Cache+S.CB.SrcH+1
|
||||
bcc .99 Negative!!!! nothing to do,exit...
|
||||
|
||||
lda CB.Cache+S.CB.DstY Dst.Y+=D
|
||||
lda CB.Cache+S.CB.SrcX
|
||||
clc
|
||||
adc D
|
||||
sta CB.Cache+S.CB.DstY
|
||||
lda CB.Cache+S.CB.DstY+1
|
||||
adc D+1
|
||||
sta CB.Cache+S.CB.DstY+1
|
||||
lda CB.Cache+S.CB.Y1 S.CB.Y1+=D
|
||||
clc
|
||||
adc D
|
||||
sta CB.Cache+S.CB.Y1
|
||||
lda CB.Cache+S.CB.Y1+1
|
||||
adc D+1
|
||||
sta CB.Cache+S.CB.Y1+1 S.CB.DstY=0, new between S.OBJ.Y1 & S.OBJ.Y2....
|
||||
adc DX
|
||||
sta CB.Cache+S.CB.SrcX
|
||||
|
||||
* S.CB.DstY between S.OBJ.Y1 & S.OBJ.Y2: D=(S.OBJ.Y2+1)-S.CB.DstY
|
||||
lda CB.Cache+S.CB.SrcX+1
|
||||
adc DX+1
|
||||
sta CB.Cache+S.CB.SrcX+1
|
||||
|
||||
.1 lda OBJ.Cache+S.OBJ.Y2 Compute D in X,Y
|
||||
lda CB.Cache+S.CB.SrcW
|
||||
sec
|
||||
sbc CB.Cache+S.CB.DstY
|
||||
tax
|
||||
lda OBJ.Cache+S.OBJ.Y2+1
|
||||
sbc CB.Cache+S.CB.DstY+1
|
||||
sbc DX
|
||||
sta CB.Cache+S.CB.SrcW
|
||||
|
||||
inx
|
||||
bne .2
|
||||
lda CB.Cache+S.CB.SrcW+1
|
||||
sbc DX+1
|
||||
sta CB.Cache+S.CB.SrcW+1
|
||||
bcc .9
|
||||
|
||||
inc
|
||||
.2 lda CB.Cache+S.CB.X2
|
||||
sec
|
||||
sbc OBJ.Cache+S.OBJ.X2
|
||||
sta DX
|
||||
|
||||
.2 tay
|
||||
cpx CB.Cache+S.CB.SrcH
|
||||
sbc CB.Cache+S.CB.SrcH+1
|
||||
bcs .8 D >= SrcH....nothing to clip
|
||||
lda CB.Cache+S.CB.X2+1
|
||||
sbc OBJ.Cache+S.OBJ.X2+1
|
||||
sta DX+1
|
||||
bvc .3
|
||||
eor #$80
|
||||
.3 bmi .4
|
||||
>DEBUG
|
||||
|
||||
stx CB.Cache+S.CB.SrcH SrcH < D, make SrcH=D
|
||||
sty CB.Cache+S.CB.SrcH+1
|
||||
lda CB.Cache+S.CB.SrcW
|
||||
sec
|
||||
sbc DX
|
||||
sta CB.Cache+S.CB.SrcW
|
||||
|
||||
.8 clc
|
||||
rts
|
||||
lda CB.Cache+S.CB.SrcW+1
|
||||
sbc DX+1
|
||||
sta CB.Cache+S.CB.SrcW+1
|
||||
bcc .9
|
||||
|
||||
.9 pla
|
||||
.99 sec
|
||||
|
||||
|
||||
|
||||
.4 clc
|
||||
.99 rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CLIP.Line.LEFT .EQ 1
|
||||
|
@ -297,6 +258,66 @@ CLIP.Line.EncodeY.AX
|
|||
ora #CLIP.Line.BOTTOM
|
||||
.8 rts
|
||||
*--------------------------------------
|
||||
CB.Cache.SetX2Y2
|
||||
lda CB.Cache+S.CB.SrcW
|
||||
clc
|
||||
adc CB.Cache+S.CB.X1
|
||||
pha
|
||||
|
||||
lda CB.Cache+S.CB.SrcW+1
|
||||
adc CB.Cache+S.CB.X1+1
|
||||
tax
|
||||
pla
|
||||
bne .2
|
||||
|
||||
dex
|
||||
|
||||
.2 dec
|
||||
sta CB.Cache+S.CB.X2
|
||||
stx CB.Cache+S.CB.X2+1
|
||||
|
||||
lda CB.Cache+S.CB.SrcH
|
||||
|
||||
clc
|
||||
adc CB.Cache+S.CB.Y1
|
||||
pha
|
||||
|
||||
lda CB.Cache+S.CB.SrcH+1
|
||||
adc CB.Cache+S.CB.Y1+1
|
||||
tax
|
||||
pla
|
||||
bne .3
|
||||
|
||||
dex
|
||||
|
||||
.3 dec
|
||||
sta CB.Cache+S.CB.Y2
|
||||
stx CB.Cache+S.CB.Y2+1
|
||||
rts
|
||||
*--------------------------------------
|
||||
CB.Cache.Overlap
|
||||
>LDYA CB.Cache+S.CB.X1
|
||||
>SCMPYA OBJ.Cache+S.OBJ.X2
|
||||
bpl .9
|
||||
|
||||
>LDYA CB.Cache+S.CB.X2
|
||||
>SCMPYA OBJ.Cache+S.OBJ.X1
|
||||
bmi .9
|
||||
|
||||
>LDYA CB.Cache+S.CB.Y1
|
||||
>SCMPYA OBJ.Cache+S.OBJ.Y2
|
||||
bpl .9
|
||||
|
||||
>LDYA CB.Cache+S.CB.Y2
|
||||
>SCMPYA OBJ.Cache+S.OBJ.Y1
|
||||
bmi .9
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
.9 sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE usr/src/lib/libgui.s.clip
|
||||
LOAD usr/src/lib/libgui.s
|
||||
|
|
|
@ -26,18 +26,51 @@ SetCursor sta CUR.T
|
|||
lda L.Cursors+1,x
|
||||
sta CUR.CB+S.CB.SrcPtr+1
|
||||
sta ZPPtr1+1
|
||||
|
||||
ldy #S.BM.W
|
||||
lda (ZPPtr1),y
|
||||
sta CUR.CB+S.CB.SrcW
|
||||
|
||||
clc
|
||||
adc CUR.CB+S.CB.X1
|
||||
pha
|
||||
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
sta CUR.CB+S.CB.SrcW+1
|
||||
adc CUR.CB+S.CB.X1+1
|
||||
tax
|
||||
pla
|
||||
bne .2
|
||||
|
||||
dex
|
||||
|
||||
.2 dec
|
||||
sta CUR.CB+S.CB.X2
|
||||
stx CUR.CB+S.CB.X2+1
|
||||
|
||||
iny S.BM.H
|
||||
lda (ZPPtr1),y
|
||||
sta CUR.CB+S.CB.SrcH
|
||||
|
||||
clc
|
||||
adc CUR.CB+S.CB.Y1
|
||||
pha
|
||||
|
||||
iny
|
||||
lda (ZPPtr1),y
|
||||
sta CUR.CB+S.CB.SrcH+1
|
||||
adc CUR.CB+S.CB.Y1+1
|
||||
tax
|
||||
pla
|
||||
bne .3
|
||||
|
||||
dex
|
||||
|
||||
.3 dec
|
||||
sta CUR.CB+S.CB.Y2
|
||||
stx CUR.CB+S.CB.Y2+1
|
||||
|
||||
lda CUR.bVisible
|
||||
bmi ShowCursor.I
|
||||
|
||||
|
@ -77,36 +110,37 @@ ShowCursor lda CUR.bVisible
|
|||
.9 rts
|
||||
*--------------------------------------
|
||||
HideCursor.I lda #S.CB.OP.RESTORE
|
||||
sta CUR.CB+S.CB.OP
|
||||
bra DrawCursor.I
|
||||
*--------------------------------------
|
||||
ShowCursor.I lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
|
||||
sta CUR.CB+S.CB.OP
|
||||
ShowCursor.I sta CUR.CB+S.CB.OP
|
||||
ldx CUR.T
|
||||
lda CUR.Pos+S.POINT.X
|
||||
sec
|
||||
sbc CUR.HotPoints,x
|
||||
sta CUR.CB+S.CB.DstX
|
||||
sta CUR.CB+S.CB.X1
|
||||
lda CUR.Pos+S.POINT.X+1
|
||||
sbc #0
|
||||
sta CUR.CB+S.CB.DstX+1
|
||||
sta CUR.CB+S.CB.X1+1
|
||||
lda CUR.Pos+S.POINT.Y
|
||||
sec
|
||||
sbc CUR.HotPoints+1,x
|
||||
sta CUR.CB+S.CB.DstY
|
||||
sta CUR.CB+S.CB.Y1
|
||||
lda CUR.Pos+S.POINT.Y+1
|
||||
sbc #0
|
||||
sta CUR.CB+S.CB.DstY+1
|
||||
sta CUR.CB+S.CB.Y1+1
|
||||
|
||||
DrawCursor.I >LDYA L.SCR
|
||||
lda #S.CB.OP.ORA+S.CB.OP.MASK+S.CB.OP.SAVE
|
||||
|
||||
DrawCursor.I sta CUR.CB+S.CB.OP
|
||||
|
||||
>LDYA L.SCR
|
||||
jsr OBJ.Get
|
||||
|
||||
>LDYA L.CUR.CB
|
||||
jsr CLIP.YA
|
||||
bcs .9
|
||||
|
||||
>LDYA L.CUR.CB
|
||||
jmp GFXWrite.YA
|
||||
jmp GFXWrite.CB
|
||||
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
|
|
|
@ -23,6 +23,7 @@ WND.MAX .EQ 64
|
|||
stx ]1+1
|
||||
sta ]2+1
|
||||
.EM
|
||||
|
||||
.MA NOT16
|
||||
sec
|
||||
lda #0
|
||||
|
@ -32,6 +33,7 @@ WND.MAX .EQ 64
|
|||
sbc ]1+1
|
||||
sta ]1+1
|
||||
.EM
|
||||
|
||||
.MA SCMPAX
|
||||
sec
|
||||
sbc ]1
|
||||
|
@ -39,6 +41,34 @@ WND.MAX .EQ 64
|
|||
sbc ]1+1
|
||||
bvc :1
|
||||
eor #$80
|
||||
:1 .EQ *
|
||||
.EM
|
||||
|
||||
.MA SCMPYA
|
||||
cpy ]1
|
||||
sbc ]1+1
|
||||
bvc :1
|
||||
eor #$80
|
||||
:1 .EQ *
|
||||
.EM
|
||||
|
||||
.MA STYAIFGTR
|
||||
tax
|
||||
>SCMPYA ]1
|
||||
bmi :1
|
||||
|
||||
sty ]1
|
||||
stx ]1+1
|
||||
:1 .EQ *
|
||||
.EM
|
||||
|
||||
.MA STYAIFLWR
|
||||
tax
|
||||
>SCMPYA ]1
|
||||
bpl :1
|
||||
|
||||
sty ]1
|
||||
stx ]1+1
|
||||
:1 .EQ *
|
||||
.EM
|
||||
*--------------------------------------
|
||||
|
|
|
@ -54,9 +54,13 @@ CS.INIT >LDYA L.LIBGUI
|
|||
* clc
|
||||
.9 rts
|
||||
*--------------------------------------
|
||||
CS.RUN >PUSHW L.MouseData
|
||||
CS.RUN jsr Destop.Paint
|
||||
|
||||
CS.RUN.LOOP >SLEEP
|
||||
|
||||
>PUSHW L.MouseData
|
||||
>LIBCALL hLIBGUI,LIBGUI.ReadMouse
|
||||
bcs .4
|
||||
bcs .8
|
||||
|
||||
lda MouseData+S.MOUSE.S
|
||||
bit #S.MOUSE.S.MOVE
|
||||
|
@ -64,10 +68,34 @@ CS.RUN >PUSHW L.MouseData
|
|||
|
||||
>PUSHW L.MouseData
|
||||
>LIBCALL hLIBGUI,LIBGUI.SetCursorPos
|
||||
|
||||
lda MouseData+S.MOUSE.X1
|
||||
sta CB.Paint+S.CB.X1
|
||||
clc
|
||||
adc #39
|
||||
sta CB.Paint+S.CB.X2
|
||||
|
||||
lda MouseData+S.MOUSE.X1+1
|
||||
sta CB.Paint+S.CB.X1+1
|
||||
adc #0
|
||||
sta CB.Paint+S.CB.X2+1
|
||||
|
||||
lda MouseData+S.MOUSE.Y1
|
||||
sta CB.Paint+S.CB.Y1
|
||||
clc
|
||||
adc #29
|
||||
sta CB.Paint+S.CB.Y2
|
||||
|
||||
lda MouseData+S.MOUSE.Y1+1
|
||||
sta CB.Paint+S.CB.Y1+1
|
||||
adc #0
|
||||
sta CB.Paint+S.CB.Y2+1
|
||||
|
||||
lda MouseData+S.MOUSE.S
|
||||
|
||||
.1 bit #S.MOUSE.S.CLK
|
||||
beq .4
|
||||
|
||||
>LDA.G CUR.T
|
||||
inc
|
||||
inc
|
||||
|
@ -75,13 +103,17 @@ CS.RUN >PUSHW L.MouseData
|
|||
bne .2
|
||||
|
||||
lda #CUR.T.ARROW
|
||||
|
||||
.2 >STA.G CUR.T
|
||||
>LIBCALL hLIBGUI,LIBGUI.SetCursor
|
||||
|
||||
* jsr Destop.Paint
|
||||
jsr Destop.Paint
|
||||
|
||||
.4
|
||||
|
||||
.8 clc
|
||||
.8 jmp CS.RUN.LOOP
|
||||
|
||||
clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT lda (pEvent)
|
||||
|
@ -102,13 +134,6 @@ Destop.Paint >LIBCALL hLIBGUI,LIBGUI.HideCursor
|
|||
>PUSHW L.CB.Paint
|
||||
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||
|
||||
* >LIBCALL hLIBGUI,LIBGUI.GetScreenGC
|
||||
* >PUSHYA
|
||||
|
||||
* >PUSHW L.GC.Clip
|
||||
* >PUSHW L.CB.Marylin
|
||||
* >LIBCALL hLIBGUI,LIBGUI.Draw
|
||||
|
||||
>LIBCALL hLIBGUI,LIBGUI.ShowCursor
|
||||
rts
|
||||
*--------------------------------------
|
||||
|
@ -122,18 +147,17 @@ CB.Paint .DA #S.CB.CMD.FILLRECT
|
|||
.DA #S.CB.OP.SET
|
||||
.DA #S.CB.M.C16
|
||||
.DA #11 Color
|
||||
.DA 540
|
||||
.DA 10
|
||||
.DA 550
|
||||
.DA 30
|
||||
.DA 540 X1
|
||||
.DA 160 Y1
|
||||
.DA 579 X2
|
||||
.DA 199 Y2
|
||||
.DA #0
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
CUR.T .BS 1
|
||||
DS.END
|
||||
.ED
|
||||
DS.END .ED
|
||||
MAN
|
||||
SAVE usr/src/sbin/gui.s
|
||||
ASM
|
||||
|
|
|
@ -439,6 +439,98 @@ CORE.FSID .BS 1
|
|||
CORE.EvtIndex .BS 1
|
||||
CORE.EvtCount .BS 1
|
||||
*--------------------------------------
|
||||
* Called by :
|
||||
* - Kernel K.IrqHAuxLC
|
||||
* - ProDOS IRQ Manager (GP)
|
||||
*--------------------------------------
|
||||
K.IrqH.IIGS lda IO.IIGS.INTFLAG
|
||||
and #$08
|
||||
beq K.IrqH.DEV
|
||||
|
||||
stz IO.IIGS.CLRVBLINT
|
||||
|
||||
bra K.IrqH.Switch
|
||||
*--------------------------------------
|
||||
K.IrqH.TCLOCK ldy IRQ.VBL.n0
|
||||
|
||||
lda $c080,y
|
||||
and #$20
|
||||
beq K.IrqH.DEV
|
||||
|
||||
lda $c088,y
|
||||
lda $c080,y
|
||||
|
||||
bra K.IrqH.Switch
|
||||
*--------------------------------------
|
||||
K.IrqH.VBL
|
||||
K.IrqH.VBL.MSM jsr $FFFF SELF MODIFIED,SERVEMOUSE
|
||||
bcs K.IrqH.DEV Not From Mouse
|
||||
ldx IRQ.VBL.0n
|
||||
lda MOUSESTSx,x
|
||||
and #MOUSESTSx.INTVBL IRQ was caused by VBL ?
|
||||
beq K.IrqH.DEV
|
||||
ldx K.IrqH.VBL.MRM+2 $Cn
|
||||
ldy IRQ.VBL.n0
|
||||
K.IrqH.VBL.MRM jsr $FFFF SELF MODIFIED,READMOUSE
|
||||
*--------------------------------------
|
||||
K.IrqH.Switch inc IRQ.Tick
|
||||
|
||||
dec CORE.CPUStatCnt
|
||||
bne .2
|
||||
|
||||
lda #100
|
||||
sta CORE.CPUStatCnt
|
||||
ldx #K.PS.MAX-1
|
||||
|
||||
.1 lda PS.Table.Hits,x
|
||||
stz PS.Table.Hits,x
|
||||
sta PS.Table.Stats,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
.2 lda IRQ.InKernel
|
||||
bpl .3
|
||||
|
||||
inc PS.Table.Hits
|
||||
|
||||
.9 clv
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 ldx CORE.PSIndex
|
||||
inc PS.Table.Hits,x
|
||||
|
||||
bit A2osX.F A2osX.F.PMODE .EQ %01000000
|
||||
bvc .8
|
||||
|
||||
ldy #S.PS.S
|
||||
lda (pPS),y
|
||||
eor #S.PS.S.RUN
|
||||
bne .9
|
||||
lda IRQ.InLib
|
||||
bmi .9 we are in LIB, no switching
|
||||
|
||||
.8 clc exit with V flag set
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.IrqH.DEV ldx #0
|
||||
.1 lda IRQ.Vectors+1,x
|
||||
beq .9
|
||||
sta .10+2
|
||||
lda IRQ.Vectors,x
|
||||
sta .10+1
|
||||
phx
|
||||
.10 jsr $ffff SELF MODIFIED
|
||||
plx
|
||||
bcc .8 CC, IRQ cleared by device
|
||||
.2 inx
|
||||
inx
|
||||
.3 cpx #K.IRQDEV.MAX*2
|
||||
bne .1
|
||||
.9 sec
|
||||
.8 clv clear V (no task switching)
|
||||
rts
|
||||
*--------------------------------------
|
||||
IRQ.InKernel .BS 1
|
||||
IRQ.InLib .BS 1
|
||||
IRQ.SkipA2osX .BS 1
|
||||
|
@ -449,6 +541,8 @@ IRQ.VBL.0n .BS 1
|
|||
IRQ.Mode .BS 1
|
||||
IRQ.Tick .BS 1
|
||||
*--------------------------------------
|
||||
IRQ.Vectors .BS K.IRQDEV.MAX*2
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.CORE
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
|
|
|
@ -25,9 +25,12 @@ K.IrqHAuxLC cld
|
|||
|
||||
stx K.IrqHAuxLC.5+1
|
||||
sty K.IrqHAuxLC.4+1
|
||||
|
||||
lda RDPAGE2
|
||||
pha
|
||||
sta CLRPAGE2
|
||||
lda RD80STORE
|
||||
pha
|
||||
lda RDREADAUX
|
||||
pha
|
||||
sta CLRREADAUX Make sure we can access FD.Table
|
||||
|
@ -78,9 +81,14 @@ K.IrqHAuxLC.3 pla Must keep Carry
|
|||
.2 pla
|
||||
bpl .3
|
||||
|
||||
sta SET80STORE
|
||||
|
||||
.3 pla
|
||||
bpl .30
|
||||
|
||||
sta SETPAGE2
|
||||
|
||||
.3 bvc K.IrqHAuxLC.4 if not V, skip task switching
|
||||
.30 bvc K.IrqHAuxLC.4 if not V, skip task switching
|
||||
|
||||
tsx Check Stack if before "dec IRQ.InKernel"
|
||||
cpx #$fc $1ff-PChi-PClo-P = $1fc
|
||||
|
@ -125,100 +133,6 @@ K.IrqHAuxLC.JMP jmp $FFFF SELF MODIFIED Not handled, pass to ProDOS
|
|||
|
||||
K.IrqHAuxLC.8 rti
|
||||
*--------------------------------------
|
||||
* Called by :
|
||||
* - Kernel K.IrqHAuxLC
|
||||
* - ProDOS IRQ Manager (GP)
|
||||
*--------------------------------------
|
||||
K.IrqH.IIGS lda IO.IIGS.INTFLAG
|
||||
and #$08
|
||||
beq K.IrqH.DEV
|
||||
|
||||
stz IO.IIGS.CLRVBLINT
|
||||
|
||||
bra K.IrqH.Switch
|
||||
*--------------------------------------
|
||||
K.IrqH.TCLOCK ldy IRQ.VBL.n0
|
||||
|
||||
lda $c080,y
|
||||
and #$20
|
||||
beq K.IrqH.DEV
|
||||
|
||||
lda $c088,y
|
||||
lda $c080,y
|
||||
|
||||
bra K.IrqH.Switch
|
||||
*--------------------------------------
|
||||
K.IrqH.VBL
|
||||
K.IrqH.VBL.MSM jsr $FFFF SELF MODIFIED,SERVEMOUSE
|
||||
bcs K.IrqH.DEV Not From Mouse
|
||||
ldx IRQ.VBL.0n
|
||||
lda MOUSESTSx,x
|
||||
and #MOUSESTSx.INTVBL IRQ was caused by VBL ?
|
||||
beq K.IrqH.DEV
|
||||
ldx K.IrqH.VBL.MRM+2 $Cn
|
||||
ldy IRQ.VBL.n0
|
||||
K.IrqH.VBL.MRM jsr $FFFF SELF MODIFIED,READMOUSE
|
||||
*--------------------------------------
|
||||
K.IrqH.Switch inc IRQ.Tick
|
||||
|
||||
dec CORE.CPUStatCnt
|
||||
bne .2
|
||||
|
||||
lda #100
|
||||
sta CORE.CPUStatCnt
|
||||
ldx #K.PS.MAX-1
|
||||
|
||||
.1 lda PS.Table.Hits,x
|
||||
stz PS.Table.Hits,x
|
||||
sta PS.Table.Stats,x
|
||||
dex
|
||||
bpl .1
|
||||
|
||||
.2 lda IRQ.InKernel
|
||||
bpl .3
|
||||
|
||||
inc PS.Table.Hits
|
||||
|
||||
.9 clv
|
||||
clc
|
||||
rts
|
||||
|
||||
.3 ldx CORE.PSIndex
|
||||
inc PS.Table.Hits,x
|
||||
|
||||
bit A2osX.F A2osX.F.PMODE .EQ %01000000
|
||||
bvc .8
|
||||
|
||||
ldy #S.PS.S
|
||||
lda (pPS),y
|
||||
eor #S.PS.S.RUN
|
||||
bne .9
|
||||
lda IRQ.InLib
|
||||
bmi .9 we are in LIB, no switching
|
||||
|
||||
.8 clc exit with V flag set
|
||||
rts
|
||||
*--------------------------------------
|
||||
K.IrqH.DEV ldx #0
|
||||
.1 lda IRQ.Vectors+1,x
|
||||
beq .9
|
||||
sta .10+2
|
||||
lda IRQ.Vectors,x
|
||||
sta .10+1
|
||||
phx
|
||||
.10 jsr $ffff SELF MODIFIED
|
||||
plx
|
||||
bcc .8 CC, IRQ cleared by device
|
||||
.2 inx
|
||||
inx
|
||||
.3 cpx #K.IRQDEV.MAX*2
|
||||
bne .1
|
||||
.9 sec
|
||||
.8 clv clear V (no task switching)
|
||||
rts
|
||||
*--------------------------------------
|
||||
IRQ.Vectors .BS K.IRQDEV.MAX*2
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE USR/SRC/SYS/KERNEL.S.IRQ
|
||||
LOAD USR/SRC/SYS/KERNEL.S
|
||||
|
|
Loading…
Reference in New Issue
Block a user