Kernel 0.9.1 : GUI, API & Driver

This commit is contained in:
Rémy GIBERT 2017-11-15 17:29:23 +01:00
parent f5da545c4a
commit 60ea43c5e5
11 changed files with 187 additions and 138 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -73,9 +73,9 @@ HLINE.C16 lda CB.Cache+S.CB.X1
and LBUF.AND,x and LBUF.AND,x
sta LBUF.ORA,x sta LBUF.ORA,x
inx
cpx LBUF.C2 cpx LBUF.C2
bcs .1 inx
bcc .1
ldy CB.Cache+S.CB.Y1 ldy CB.Cache+S.CB.Y1
jmp LBUF.DrawAtY jmp LBUF.DrawAtY

View File

@ -21,10 +21,10 @@ FILLRECT jsr HLINE
bcc .8 bcc .8
.2 jsr LBUF.DrawAtY .2 jsr LBUF.DrawAtY
inc CB.Cache+S.CB.Y1
ldy CB.Cache+S.CB.Y1 ldy CB.Cache+S.CB.Y1
inc CB.Cache+S.CB.Y1
cpy CB.Cache+S.CB.Y2 cpy CB.Cache+S.CB.Y2
bcs .2 bcc .2
.8 rts .8 rts
*-------------------------------------- *--------------------------------------

View File

@ -143,28 +143,18 @@ WRITE >STYA ZPCmdPtr
sta SET80STORE sta SET80STORE
lda (ZPCmdPtr) lda (ZPCmdPtr) Get Cmd
.1 tax .1 tax
ldy CB.CmdLen,x ldy CB.CmdLen,x
.2 lda (ZPBasePtr),y .2 lda (ZPCmdPtr),y
sta CB.Cache,y sta CB.Cache,y
dey dey
bpl .2 bpl .2
lda CB.CmdLen,x
clc
adc ZPCmdPtr
sta ZPCmdPtr
bcc .3
inc ZPCmdPtr+1
.3 jsr .10 .3 jsr .10
lda (ZPCmdPtr)
bne .1
sta CLR80STORE sta CLR80STORE
.8 clc .8 clc
@ -181,18 +171,19 @@ LBUF.SetBounds1YA
jsr DIVMOD7YA A=DIV, X=MOD jsr DIVMOD7YA A=DIV, X=MOD
sta LBUF.C1 sta LBUF.C1
tay tay
lda Mono.Head,x lda Mono.Head,x
sta LBUF.AND,y sta LBUF.AND,y
rts rts
*-------------------------------------- *--------------------------------------
LBUF.SetBounds2YA LBUF.SetBounds2YA
jsr DIVMOD7YA jsr DIVMOD7YA A=DIV, X=MOD
cmp LBUF.C1 A=DIV, X=MOD
beq .2
sta LBUF.C2 sta LBUF.C2
tay tay
cmp LBUF.C1
beq .2
lda Mono.Tail,x lda Mono.Tail,x
sta LBUF.AND,y sta LBUF.AND,y
@ -204,10 +195,8 @@ LBUF.SetBounds2YA
sta LBUF.AND,y sta LBUF.AND,y
bra .1 bra .1
.2 and LBUF.C1 .2 lda Mono.Head,x
sta LBUF.C2 and Mono.Tail,x
tay
lda Mono.Tail,x
sta LBUF.AND,y sta LBUF.AND,y
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
@ -218,6 +207,7 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr
lda BASEH,y lda BASEH,y
sta ZPBasePtr+1 sta ZPBasePtr+1
ldy LBUF.C1 y C1->C2 ldy LBUF.C1 y C1->C2
.1 ldx COL.BANK,y .1 ldx COL.BANK,y
@ -227,11 +217,12 @@ LBUF.DrawAtY lda BASEL,y setup line Base Ptr
and LBUF.AND,y and LBUF.AND,y
ora LBUF.ORA,y ora LBUF.ORA,y
lda #$ff
sta (ZPBasePtr),y sta (ZPBasePtr),y
iny
cpy LBUF.C2 cpy LBUF.C2
bcs .1 iny
bcc .1
rts rts
*-------------------------------------- *--------------------------------------
@ -259,8 +250,8 @@ LBUF.DrawAtY.XOR
* X = MOD * X = MOD
*-------------------------------------- *--------------------------------------
DIVMOD7YA dec DIVMOD7YA dec
bne DIVMOD7Y2
beq DIVMOD7Y1 beq DIVMOD7Y1
bpl DIVMOD7Y2
DIVMOD7Y0 lda DIV7.0,y DIVMOD7Y0 lda DIV7.0,y
ldx MOD7.0,y ldx MOD7.0,y
@ -285,7 +276,7 @@ DRV.CS.END
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
.DA S.CB.Y1+1 GETPIXEL .DA S.CB.Y1+1 GETPIXEL
.DA S.CB.X2+1 HLINE .DA S.CB.X2+1 HLINE
.DA S.CB.X2+1 VLINE .DA S.CB.Y2+1 VLINE
.DA S.CB.Y2+1 FILLRECT .DA S.CB.Y2+1 FILLRECT
.DA S.CB.DstPtr+1 BITBLT .DA S.CB.DstPtr+1 BITBLT
*-------------------------------------- *--------------------------------------

View File

@ -107,7 +107,7 @@ Dev.Detect >LDYA L.MSG.DETECT
and #$0F and #$0F
sta DEVSLOT0n sta DEVSLOT0n
ora #$30 ora #$30
sta DEV.HEADER.NAME+4 sta DEV.HEADER.NAME+3
asl asl
asl asl
asl asl
@ -122,7 +122,7 @@ Dev.Detect >LDYA L.MSG.DETECT
*-------------------------------------- *--------------------------------------
CS.END CS.END
MSG.DETECT >CSTR "Apple Mouse Card/IIc Mouse Driver.\r\n" MSG.DETECT >CSTR "Apple Mouse Card/IIc Mouse Driver.\r\n"
MSG.DETECT.OK >CSTR "Mouse Installed As Device : %S\r\n" MSG.DETECT.OK >CSTR "Mouse Installed As Device : %s\r\n"
MSG.DETECT.KO >CSTR "No Mouse Found.\r\n" MSG.DETECT.KO >CSTR "No Mouse Found.\r\n"
DEVSIG.Offset .HS 05070B0CFB DEVSIG.Offset .HS 05070B0CFB
DEVSIG.Value .HS 38180120D6 DEVSIG.Value .HS 38180120D6
@ -133,7 +133,7 @@ DEV.HEADER cld
jmp (DRV.CS.START,x) jmp (DRV.CS.START,x)
.DA #0 .DA #0
.BS 6 .BS 6
DEV.HEADER.NAME >PSTR "MOUX" DEV.HEADER.NAME >CSTR "MOUX"
*-------------------------------------- *--------------------------------------
* Driver Code * Driver Code
*-------------------------------------- *--------------------------------------

View File

@ -6,7 +6,14 @@ AUTO 6
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
*-------------------------------------- *--------------------------------------
S.CB.hDC .EQ 0 S.CB.CMD .EQ 0
S.CB.CMD.SETPIXEL .EQ 0
S.CB.CMD.GETPIXEL .EQ 2
S.CB.CMD.HLINE .EQ 4
S.CB.CMD.VLINE .EQ 6
S.CB.CMD.FILLRECT .EQ 8
S.CB.CMD.BITBLT .EQ 10
S.CB.CMD.DRAWLINE .EQ 12
S.CB.OP .EQ 1 S.CB.OP .EQ 1
S.CB.OP.SAVE .EQ %00000001 S.CB.OP.SAVE .EQ %00000001
S.CB.OP.REPLACE .EQ %00000010 S.CB.OP.REPLACE .EQ %00000010
@ -41,6 +48,13 @@ S.DC.H .EQ 10
* *
S.DC .EQ 12 S.DC .EQ 12
*-------------------------------------- *--------------------------------------
CUR.T.ARROW .EQ 0
CUR.T.PLUS .EQ 2
CUR.T.WAIT .EQ 4
CUR.T.RESIZEX .EQ 6
CUR.T.RESIZEY .EQ 8
CUR.T.RESIZEXY .EQ 10
*--------------------------------------
S.CUR.HotPointX .EQ 0 S.CUR.HotPointX .EQ 0
S.CUR.HotPointY .EQ 1 S.CUR.HotPointY .EQ 1
S.CUR.DATA .EQ 2 16x16 bits = 32 bytes S.CUR.DATA .EQ 2 16x16 bits = 32 bytes
@ -58,13 +72,14 @@ S.BM.H .EQ 4
S.BM.MASK.OFFSET .EQ 6 S.BM.MASK.OFFSET .EQ 6
S.BM.DATA .EQ 8 S.BM.DATA .EQ 8
*-------------------------------------- *--------------------------------------
LIBGFX.InitGFXA .EQ 4 LIBGUI.InitGUI.A .EQ 4
LIBGFX.CloseGFX .EQ 4 LIBGUI.CloseGUI .EQ 6
LIBGFX.SetCursorPos .EQ 8 LIBGUI.Draw .EQ 8
LIBGFX.SetCursorYA .EQ 10 LIBGUI.SetCursor.A .EQ 10
LIBGFX.HideCursor .EQ 12 LIBGUI.SetCursorPos .EQ 12
LIBGFX.ShowCursor .EQ 14 LIBGUI.HideCursor .EQ 14
LIBGFX.DrawLine .EQ 16 LIBGUI.ShowCursor .EQ 16
LIBGUI.DrawLine .EQ 18
*-------------------------------------- *--------------------------------------
MAN MAN
SAVE /A2OSX.BUILD/INC/LIBGUI.I SAVE /A2OSX.BUILD/INC/LIBGUI.I

View File

@ -6,11 +6,11 @@ AUTO 6
.LIST OFF .LIST OFF
.OP 65C02 .OP 65C02
.OR $2000 .OR $2000
.TF /A2OSX.BUILD/LIB/LIBGFX.O .TF /A2OSX.BUILD/LIB/LIBGUI.O
*-------------------------------------- *--------------------------------------
.INB /A2OSX.BUILD/INC/MACROS.I .INB /A2OSX.BUILD/INC/MACROS.I
.INB /A2OSX.BUILD/INC/A2OSX.I .INB /A2OSX.BUILD/INC/A2OSX.I
.INB /A2OSX.BUILD/INC/LIBGFX.I .INB /A2OSX.BUILD/INC/LIBGUI.I
*-------------------------------------- *--------------------------------------
.MA SWAP16 .MA SWAP16
lda ]1 lda ]1
@ -32,8 +32,8 @@ AUTO 6
sta ]1+1 sta ]1+1
.EM .EM
*-------------------------------------- *--------------------------------------
ZPCBPtr .EQ ZPLIB
ZPDCPtr .EQ ZPLIB+2 ZPDCPtr .EQ ZPLIB+2
ZPCmdPtr .EQ ZPLIB+4
*-------------------------------------- *--------------------------------------
* File Header (16 Bytes) * File Header (16 Bytes)
*-------------------------------------- *--------------------------------------
@ -51,10 +51,11 @@ CS.START cld
*-------------------------------------- *--------------------------------------
.1 .DA LIB.LOAD .1 .DA LIB.LOAD
.DA LIB.UNLOAD .DA LIB.UNLOAD
.DA InitGFXA .DA InitGUI.A
.DA CloseGFX J.Cmds .DA CloseGUI J.Cmds-12 !!!
.DA InitCursor .DA Draw
.DA SetCursorYA .DA SetCursor.A
.DA SetCursorPos
.DA HideCursor .DA HideCursor
.DA ShowCursor .DA ShowCursor
.DA DrawLine .DA DrawLine
@ -65,21 +66,59 @@ LIB.LOAD
LIB.UNLOAD clc LIB.UNLOAD clc
rts rts
*-------------------------------------- *--------------------------------------
InitGFXA sta hDev InitGUI.A sta hDev
>SYSCALL GetDevByIDA >SYSCALL GetDevByID.A
>STYA GoDevGFX.1+1 >STYA GoDev.Jmp+1
clc clc
rts rts
*-------------------------------------- *--------------------------------------
CloseGFX CloseGUI
stz hDev stz hDev
sec sec
rts rts
*-------------------------------------- *--------------------------------------
InitCursor Draw >PULLW ZPCmdPtr
lda (ZPCmdPtr) Get Cmd
.1 tax
cpx #S.CB.CMD.DRAWLINE
bcc .3 Native DRV Cmd
ldy CB.CmdLen,x
.2 lda (ZPCmdPtr),y Y=Byte count-1 to cache
sta CB.Cache,y
dey
bpl .2
jsr Draw.Jmp
bra .7
.3 >LDYA ZPCmdPtr
jsr GoDev.YA
.7 lda (ZPCmdPtr) Get Cmd
tax
lda CB.CmdLen,x
sec
adc ZPCmdPtr
sta ZPCmdPtr
bcc .8
inc ZPCmdPtr+1
.8 lda (ZPCmdPtr) Get Cmd
bne .1
clc
rts
Draw.Jmp jmp (J.Cmds,x)
*-------------------------------------- *--------------------------------------
SetCursorYA SetCursor.A
*--------------------------------------
SetCursorPos
*-------------------------------------- *--------------------------------------
HideCursor HideCursor
*-------------------------------------- *--------------------------------------
@ -98,12 +137,8 @@ ShowCursor
* X2 * X2
* Y2 * Y2
*-------------------------------------- *--------------------------------------
DrawLine ldy #S.CB.Y2+1 DrawLine lda CB.Cache+S.CB.X2
jsr GetCB
sec sec
lda CB.Cache+S.CB.X2
sbc CB.Cache+S.CB.X1 sbc CB.Cache+S.CB.X1
sta DX sta DX
@ -116,8 +151,9 @@ DrawLine ldy #S.CB.Y2+1
ora DX ora DX
bne .2 DX > 0... bne .2 DX > 0...
ldx #DEVMGR.GFX.VLINE lda #S.CB.CMD.VLINE
jmp GoDevGFX DX=0 : VLIN Y1,Y2 At X1 sta CB.Cache+S.CB.CMD
jmp GoDev DX=0 : VLIN Y1,Y2 At X1
.1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2 .1 >SWAP16 CB.Cache+S.CB.X1,CB.Cache+S.CB.X2
* >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2 * >SWAP16 CB.Cache+S.CB.Y1,CB.Cache+S.CB.Y2
@ -147,15 +183,17 @@ DrawLine ldy #S.CB.Y2+1
ora DY ora DY
bne .4 bne .4
ldx #DEVMGR.GFX.HLINE lda #S.CB.CMD.HLINE
jmp GoDevGFX DY=0 : HLIN X1,X2 At Y1 sta CB.Cache+S.CB.CMD
jmp GoDev DY=0 : HLIN X1,X2 At Y1
.3 >NOT16 DY set DY=-DY .3 >NOT16 DY set DY=-DY
lda #$ff lda #$ff
sta IY set IY=-1 sta IY set IY=-1
.4 ldx #DEVMGR.GFX.SETPIXEL .4 lda #S.CB.CMD.SETPIXEL
jsr GoDevGFX sta CB.Cache+S.CB.CMD
jsr GoDev
lda DX lda DX
sec sec
@ -193,8 +231,7 @@ DrawLine.IncXY lda DX DX=DY
adc IY adc IY
sta CB.Cache+S.CB.Y1 sta CB.Cache+S.CB.Y1
ldx #DEVMGR.GFX.SETPIXEL jsr GoDev
jsr GoDevGFX
bra .1 bra .1
.8 rts .8 rts
@ -277,8 +314,7 @@ DrawLine.IncY lda DY
adc IY adc IY
sta CB.Cache+S.CB.Y1 sta CB.Cache+S.CB.Y1
ldx #DEVMGR.GFX.SETPIXEL jsr GoDev
jsr GoDevGFX
bra .1 bra .1
.8 rts .8 rts
@ -362,22 +398,14 @@ DrawLine.IncX lda DX
bne .6 bne .6
inc CB.Cache+S.CB.X1+1 inc CB.Cache+S.CB.X1+1
.6 ldx #DEVMGR.GFX.SETPIXEL .6 jsr GoDev
jsr GoDevGFX
bra .1 bra .1
.8 rts .8 rts
*-------------------------------------- *--------------------------------------
GetCB >PULLW ZPCBPtr GoDev >LDYA L.CB.Cache
GoDev.YA ldx #DEVMGR.WRITE
.1 lda (ZPCBPtr),y Y=Byte count to cache GoDev.Jmp jmp $ffff
sta CB.Cache,y
dey
bpl .1
rts
*--------------------------------------
GoDevGFX >LDYA L.CB.Cache
GoDevGFX.1 jmp $ffff
*-------------------------------------- *--------------------------------------
CS.END CS.END
hDev .BS 1 hDev .BS 1
@ -390,6 +418,14 @@ D .BS 2
INE .BS 2 INE .BS 2
Counter .BS 2 Counter .BS 2
*-------------------------------------- *--------------------------------------
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
.DA S.CB.Y1+1 GETPIXEL
.DA S.CB.X2+1 HLINE
.DA S.CB.Y2+1 VLINE
.DA S.CB.Y2+1 FILLRECT
.DA S.CB.DstPtr+1 BITBLT
.DA S.CB.Y2+1 DRAWLINE
*--------------------------------------
CB.Cache .BS S.CB CB.Cache .BS S.CB
*-------------------------------------- *--------------------------------------
CUR.Arrow .DA #0 CUR.Arrow .DA #0

View File

@ -22,9 +22,10 @@ CS.START cld
.DA #$61 6502,Level 1 (65c02) .DA #$61 6502,Level 1 (65c02)
.DA #1 BIN Layout Version 1 .DA #1 BIN Layout Version 1
.DA 0 .DA 0
.DA CS.END-CS.START .DA CS.END-CS.START CS
.DA 0 .DA DS.END-DS.START DS
.DA 0 .DA #16 SS
.DA #2 ZP
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
* Relocation Table * Relocation Table
@ -33,30 +34,26 @@ CS.START cld
.DA CS.RUN .DA CS.RUN
.DA CS.DOEVENT .DA CS.DOEVENT
.DA CS.QUIT .DA CS.QUIT
L.LIBGFX .DA LIBGFX L.LIBGUI .DA LIBGUI
L.DEVNAME.GFX .DA DEVNAME.GFX L.DEVNAME.GFX .DA DEVNAME.GFX
L.DEVNAME.MOUSE .DA DEVNAME.MOUSE L.DEVNAME.MOUSE .DA DEVNAME.MOUSE
L.MSG.INIT .DA MSG.INIT L.MSG.INIT .DA MSG.INIT
L.MouseClamp .DA MouseClamp L.MouseClamp .DA MouseClamp
L.MouseData .DA MouseData L.MouseData .DA MouseData
L.Rect.CB .DA Rect.CB
L.SetPixel.CB .DA SetPixel.CB L.SetPixel.CB .DA SetPixel.CB
L.DrawLine1.CB .DA DrawLine1.CB L.DrawLines.CB .DA DrawLines.CB
L.DrawLine2.CB .DA DrawLine2.CB
L.DrawLine3.CB .DA DrawLine3.CB
L.DrawLine4.CB .DA DrawLine4.CB
L.DrawLine5.CB .DA DrawLine5.CB
L.DrawLine6.CB .DA DrawLine6.CB
.DA 0 .DA 0
*-------------------------------------- *--------------------------------------
CS.INIT >LDYA L.MSG.INIT CS.INIT >LDYA L.MSG.INIT
>SYSCALL PrintF.YA >SYSCALL PrintF.YA
>LDYA L.LIBGFX >LDYA L.LIBGUI
>SYSCALL LoadLibYA >SYSCALL LoadLib.YA
sta hLIBGFX sta hLIBGUI
>LDYA L.DEVNAME.GFX >LDYA L.DEVNAME.GFX
>SYSCALL GetDevByNameYA >SYSCALL GetDevByName.YA
bcc .10 bcc .10
rts rts
@ -69,7 +66,7 @@ CS.INIT >LDYA L.MSG.INIT
jsr GoDevGFX jsr GoDevGFX
.11 >LDYA L.DEVNAME.MOUSE .11 >LDYA L.DEVNAME.MOUSE
>SYSCALL GetDevByNameYA >SYSCALL GetDevByName.YA
bcc .20 bcc .20
inc DEVNAME.MOUSE+4 inc DEVNAME.MOUSE+4
@ -111,7 +108,7 @@ CS.INIT >LDYA L.MSG.INIT
jsr GoDevMouse jsr GoDevMouse
.21 lda hDevGFX .21 lda hDevGFX
>LIBCALL hLibGFX,LIBGFX.InitGFXA >LIBCALL hLIBGUI,LIBGUI.InitGUI.A
lda (pPs) lda (pPs)
ora #S.PS.F.EVENT Now accept events ora #S.PS.F.EVENT Now accept events
@ -158,9 +155,8 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
lda #1 lda #1
sta SetPixel.Color sta SetPixel.Color
>LDYA L.SetPixel.CB >PUSHW L.SetPixel.CB
ldx #DEVMGR.GFX.SETPIXEL >LIBCALL hLIBGUI,LIBGUI.Draw
jsr GoDevGFX
clc clc
rts rts
@ -181,7 +177,10 @@ CS.DOEVENT sec
CS.QUIT clc CS.QUIT clc
rts rts
*-------------------------------------- *--------------------------------------
Destop.Paint lda #S.CB.MODE.C16 Destop.Paint >PUSHW L.Rect.CB
>LIBCALL hLIBGUI,LIBGUI.Draw
lda #S.CB.MODE.C16
sta SetPixel.Mode sta SetPixel.Mode
lda #0 lda #0
@ -195,10 +194,8 @@ Destop.Paint lda #S.CB.MODE.C16
lda /28 lda /28
sta SetPixel.X+1 sta SetPixel.X+1
.2 >LDYA L.SetPixel.CB .2 >PUSHW L.SetPixel.CB
>LIBCALL hLIBGUI,LIBGUI.Draw
ldx #DEVMGR.GFX.SETPIXEL
jsr GoDevGFX
lda SetPixel.X lda SetPixel.X
clc clc
@ -226,18 +223,9 @@ Destop.Paint lda #S.CB.MODE.C16
bne .1 bne .1
.4 .4
>PUSHW L.DrawLine1.CB
>LIBCALL hLibGFX,LIBGFX.DrawLine >PUSHW L.DrawLines.CB
>PUSHW L.DrawLine2.CB >LIBCALL hLIBGUI,LIBGUI.Draw
>LIBCALL hLibGFX,LIBGFX.DrawLine
>PUSHW L.DrawLine3.CB
>LIBCALL hLibGFX,LIBGFX.DrawLine
>PUSHW L.DrawLine4.CB
>LIBCALL hLibGFX,LIBGFX.DrawLine
>PUSHW L.DrawLine5.CB
>LIBCALL hLibGFX,LIBGFX.DrawLine
>PUSHW L.DrawLine6.CB
>LIBCALL hLibGFX,LIBGFX.DrawLine
rts rts
*-------------------------------------- *--------------------------------------
@ -247,34 +235,45 @@ GoDevGFX jmp $ffff
GoDevMouse jmp $ffff GoDevMouse jmp $ffff
*-------------------------------------- *--------------------------------------
CS.END CS.END
DEVNAME.GFX >PSTR "GFX" DEVNAME.GFX >CSTR "GFX"
DEVNAME.MOUSE >PSTR "MOU1" DEVNAME.MOUSE >CSTR "MOU1"
LIBGFX >PSTR "libgui.o" LIBGUI >CSTR "libgui.o"
MSG.INIT >CSTR "DESKTOP:Init...\r\n" MSG.INIT >CSTR "DESKTOP:Init...\r\n"
hLibGFX .BS 1 hLIBGUI .BS 1
hDevGFX .BS 1 hDevGFX .BS 1
hDevMouse .BS 1 hDevMouse .BS 1
MouseClamp .BS 8 MouseClamp .BS 8
MouseData .BS 5 MouseData .BS 5
*-------------------------------------- *--------------------------------------
SetPixel.CB .BS 1 hDC Rect.CB .DA #S.CB.CMD.FILLRECT
.DA #S.CB.OP.ORA
.DA #S.CB.MODE.C16
.DA #13
.DA 30
.DA 30
.DA 530
.DA 160
.DA #0
*--------------------------------------
SetPixel.CB .DA #S.CB.CMD.SETPIXEL
SetPixel.OP .BS 1 SetPixel.OP .BS 1
SetPixel.Mode .BS 1 SetPixel.Mode .BS 1
SetPixel.Color .BS 1 SetPixel.Color .BS 1
SetPixel.X .BS 2 SetPixel.X .BS 2
SetPixel.Y .BS 2 SetPixel.Y .BS 2
*--------------------------------------
DrawLine1.CB .BS 1 hDC
.DA #0 .DA #0
*--------------------------------------
DrawLines.CB .DA #S.CB.CMD.DRAWLINE
.DA #S.CB.OP.ORA
.DA #S.CB.MODE.C16 .DA #S.CB.MODE.C16
.DA #1 .DA #1
.DA 80 .DA 80
.DA 191 .DA 191
.DA 80+191 .DA 80+191
.DA 0 .DA 191+191
*-------------------------------------- *--------------------------------------
DrawLine2.CB .BS 1 hDC .DA #S.CB.CMD.DRAWLINE
.DA #0 .DA #S.CB.OP.ORA
.DA #S.CB.MODE.MONO .DA #S.CB.MODE.MONO
.DA #1 .DA #1
.DA 90 .DA 90
@ -282,8 +281,8 @@ DrawLine2.CB .BS 1 hDC
.DA 140 .DA 140
.DA 191 .DA 191
*-------------------------------------- *--------------------------------------
DrawLine3.CB .BS 1 hDC .DA #S.CB.CMD.DRAWLINE
.DA #0 .DA #S.CB.OP.ORA
.DA #S.CB.MODE.MONO .DA #S.CB.MODE.MONO
.DA #1 .DA #1
.DA 100 .DA 100
@ -291,8 +290,8 @@ DrawLine3.CB .BS 1 hDC
.DA 100+191 .DA 100+191
.DA 191 .DA 191
*-------------------------------------- *--------------------------------------
DrawLine4.CB .BS 1 hDC .DA #S.CB.CMD.DRAWLINE
.DA #0 .DA #S.CB.OP.ORA
.DA #S.CB.MODE.MONO .DA #S.CB.MODE.MONO
.DA #1 .DA #1
.DA 110 .DA 110
@ -300,8 +299,8 @@ DrawLine4.CB .BS 1 hDC
.DA 559 .DA 559
.DA 191 .DA 191
*-------------------------------------- *--------------------------------------
DrawLine5.CB .BS 1 hDC .DA #S.CB.CMD.DRAWLINE
.DA #0 .DA #S.CB.OP.ORA
.DA #S.CB.MODE.MONO .DA #S.CB.MODE.MONO
.DA #1 .DA #1
.DA 28 .DA 28
@ -309,14 +308,22 @@ DrawLine5.CB .BS 1 hDC
.DA 28 .DA 28
.DA 191 .DA 191
*-------------------------------------- *--------------------------------------
DrawLine6.CB .BS 1 hDC .DA #S.CB.CMD.DRAWLINE
.DA #0 .DA #S.CB.OP.ORA
.DA #S.CB.MODE.MONO .DA #S.CB.MODE.MONO
.DA #1 .DA #1
.DA 84 .DA 84
.DA 0 .DA 0
.DA 84 .DA 84
.DA 191 .DA 191
*--------------------------------------
.DA #0
*--------------------------------------
.DUMMY
.OR 0
DS.START
DS.END
.ED
MAN MAN
SAVE /A2OSX.SRC/SBIN/GUI.S SAVE /A2OSX.SRC/SBIN/GUI.S
ASM ASM