mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-16 18:30:26 +00:00
Kernel 0.9.1 : DHGR Driver, BitBLT, mouse pointer, Off Screen Driver
This commit is contained in:
parent
2a14a04de4
commit
834d6b5054
Binary file not shown.
Binary file not shown.
@ -11,48 +11,12 @@ AUTO 6
|
||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||
.INB /A2OSX.BUILD/INC/MLI.ERR.I
|
||||
.INB /A2OSX.BUILD/INC/XY.MOUSE.I
|
||||
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
||||
*--------------------------------------
|
||||
ZPGoMouse .EQ ZPDRV
|
||||
ZPTmpPtr1 .EQ ZPDRV+2
|
||||
*--------------------------------------
|
||||
EVENT.MOUSEUP .EQ %00000001
|
||||
EVENT.MOUSEDOWN .EQ %00000010
|
||||
EVENT.MOUSEMOVE .EQ %00000100
|
||||
EVENT.MOUSEDRAG .EQ %00001000
|
||||
EVENT.MOUSECLK .EQ %00010000
|
||||
EVENT.MOUSEDCLK .EQ %00100000
|
||||
*--------------------------------------
|
||||
SETMOUSE .EQ $12 Sets mouse mode
|
||||
SERVEMOUSE .EQ $13 Services mouse interrupt
|
||||
READMOUSE .EQ $14 Reads mouse position
|
||||
CLEARMOUSE .EQ $15 Clears mouse position to 0 (for delta mode)
|
||||
POSMOUSE .EQ $16 Sets mouse position to a user-defined pos
|
||||
CLAMPMOUSE .EQ $17 Sets mouse bounds in a window
|
||||
HOMEMOUSE .EQ $18 Sets mouse to upper-left corner of clamp win
|
||||
INITMOUSE .EQ $19 Resets mouse clamps to default values,sets mouse position to 0,0
|
||||
LOCLAMPLO .EQ $0478 low byte of low clamp.
|
||||
HICLAMPLO .EQ $04F8 low byte of high clamp.
|
||||
LOCLAMPHI .EQ $0578 high byte of low clamp.
|
||||
HICLAMPHI .EQ $05F8 high byte of high clamp.
|
||||
MOUSEXLOx .EQ $0478
|
||||
MOUSEYLOx .EQ $04F8
|
||||
MOUSEXHIx .EQ $0578
|
||||
MOUSEYHIx .EQ $05F8
|
||||
* .EQ $0678
|
||||
* .EQ $06F8
|
||||
MOUSESTSx .EQ $0778
|
||||
MOUSESTSx.DOWN .EQ %10000000
|
||||
MOUSESTSx.LDOWN .EQ %01000000
|
||||
MOUSESTSx.MOVED .EQ %00100000
|
||||
MOUSESTSx.INTVBL .EQ %00001000
|
||||
MOUSESTSx.INTBUT .EQ %00000100
|
||||
MOUSESTSx.INTMOVE .EQ %00000010
|
||||
MOUSEMODx .EQ $07F8
|
||||
MOUSEMODx.INTVBL .EQ %00001000
|
||||
MOUSEMODx.INTBUT .EQ %00000100
|
||||
MOUSEMODx.INTMOVE .EQ %00000010
|
||||
MOUSEMODx.ACTIVE .EQ %00000001
|
||||
*--------------------------------------
|
||||
* File Header (16 Bytes)
|
||||
*--------------------------------------
|
||||
CS.START cld
|
||||
@ -168,30 +132,13 @@ READBLOCK >STYA ZPTmpPtr1
|
||||
ldx DEVSLOT0n
|
||||
|
||||
lda MOUSESTSx,x
|
||||
and #MOUSESTSx.DOWN+MOUSESTSx.LDOWN
|
||||
beq .3 no button state change:up & previously up
|
||||
cmp #MOUSESTSx.DOWN+MOUSESTSx.LDOWN
|
||||
beq .3 no button state change:down & previously down
|
||||
|
||||
asl if CS, down & previously up
|
||||
bcc .1
|
||||
|
||||
lda #EVENT.MOUSEUP
|
||||
bra .2
|
||||
|
||||
.1 lda #EVENT.MOUSEDOWN
|
||||
|
||||
.2 sta (ZPTmpPtr1)
|
||||
|
||||
.3 lda MOUSESTSx,x
|
||||
and #MOUSESTSx.MOVED
|
||||
beq .4
|
||||
beq .1
|
||||
|
||||
lda (ZPTmpPtr1)
|
||||
ora #EVENT.MOUSEMOVE
|
||||
lda #S.MOUSE.S.MOVE
|
||||
sta (ZPTmpPtr1)
|
||||
|
||||
.4 ldy #1
|
||||
ldy #S.MOUSE.X1
|
||||
|
||||
lda MOUSEXLOx,x
|
||||
sta (ZPTmpPtr1),y
|
||||
@ -208,12 +155,75 @@ READBLOCK >STYA ZPTmpPtr1
|
||||
lda MOUSEYHIx,x
|
||||
sta (ZPTmpPtr1),y
|
||||
|
||||
plp
|
||||
|
||||
stz bDblClick Reset DblClick flag
|
||||
|
||||
.1 lda MOUSESTSx,x
|
||||
and #MOUSESTSx.DOWN+MOUSESTSx.LDOWN
|
||||
beq .8 no button state change:up & previously up
|
||||
|
||||
cmp #MOUSESTSx.DOWN+MOUSESTSx.LDOWN
|
||||
beq .8 no button state change:down & previously down
|
||||
|
||||
asl if CS, down & previously up
|
||||
bcc .2
|
||||
|
||||
lda #S.MOUSE.S.DOWN
|
||||
ora (ZPTmpPtr1)
|
||||
sta (ZPTmpPtr1) button has been pressed, start drag...
|
||||
|
||||
lda MOUSEXLOx,x
|
||||
sta SrcDrag
|
||||
|
||||
iny
|
||||
lda MOUSEXHIx,x
|
||||
sta SrcDrag+1
|
||||
|
||||
iny
|
||||
lda MOUSEYLOx,x
|
||||
sta SrcDrag+2
|
||||
|
||||
iny
|
||||
lda MOUSEYHIx,x
|
||||
sta SrcDrag+3
|
||||
|
||||
bra .8
|
||||
|
||||
.2 lda #S.MOUSE.S.UP CC: up, previously down
|
||||
tay
|
||||
ora (ZPTmpPtr1)
|
||||
sta (ZPTmpPtr1)
|
||||
|
||||
tya
|
||||
bne .4 no move...click!
|
||||
lda #S.MOUSE.S.CLK
|
||||
bit bDblClick
|
||||
beq .3
|
||||
|
||||
lda #S.MOUSE.S.DCLK
|
||||
lda #1
|
||||
sta bDblClick
|
||||
|
||||
.3 dec bDblClick
|
||||
ora (ZPTmpPtr1)
|
||||
sta (ZPTmpPtr1)
|
||||
bra .8
|
||||
|
||||
.4 lda #S.MOUSE.S.DRAG
|
||||
ora (ZPTmpPtr1)
|
||||
sta (ZPTmpPtr1)
|
||||
|
||||
ldy #S.MOUSE.X2
|
||||
|
||||
.5 lda SrcDrag-S.MOUSE.X2,y
|
||||
sta (ZPTmpPtr1),y
|
||||
iny
|
||||
cpy #S.MOUSE.X2+4
|
||||
bne .5
|
||||
|
||||
.8 plp
|
||||
|
||||
lda (ZPTmpPtr1)
|
||||
beq .9
|
||||
|
||||
clc
|
||||
rts
|
||||
|
||||
@ -308,6 +318,8 @@ DRV.CS.END
|
||||
DEVSLOT0n .BS 1
|
||||
DEVSLOTn0 .BS 1
|
||||
DEVSLOTCn .BS 1
|
||||
bDblClick .BS 1
|
||||
SrcDrag .BS 4
|
||||
*--------------------------------------
|
||||
DEVSTAT .DA #0
|
||||
.DA #0,#0,#0 size
|
||||
@ -315,7 +327,8 @@ DEVSTAT .DA #0
|
||||
.BS 2
|
||||
.DA #S.DSTAT.T.XY
|
||||
.DA #0
|
||||
.DA $0900
|
||||
.DA #0
|
||||
.DA #91
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/DRV/MOUSE.DRV.S
|
||||
|
@ -6,6 +6,14 @@ AUTO 6
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
*--------------------------------------
|
||||
LIBGUI.InitGUI.A .EQ 4
|
||||
LIBGUI.CloseGUI .EQ 6
|
||||
LIBGUI.Draw .EQ 8
|
||||
LIBGUI.SetCursor.A .EQ 10
|
||||
LIBGUI.SetCursorPos .EQ 12
|
||||
LIBGUI.HideCursor .EQ 14
|
||||
LIBGUI.ShowCursor .EQ 16
|
||||
*--------------------------------------
|
||||
S.CB.CMD .EQ 0
|
||||
S.CB.CMD.SETPIXEL .EQ 0
|
||||
S.CB.CMD.GETPIXEL .EQ 2
|
||||
@ -63,25 +71,30 @@ S.CUR.HotPointX .EQ 0
|
||||
S.CUR.HotPointY .EQ 1
|
||||
S.CUR.BM .EQ 2
|
||||
*--------------------------------------
|
||||
S.BM.F .EQ 0
|
||||
S.BM.F .EQ 0
|
||||
S.BM.F.BBP1 .EQ %00000001
|
||||
S.BM.F.BBP2 .EQ %00000010
|
||||
S.BM.F.BBP4 .EQ %00000100
|
||||
S.BM.F.BBP8 .EQ %00001000
|
||||
S.BM.RowBytes .EQ 1
|
||||
S.BM.W .EQ 2
|
||||
S.BM.H .EQ 4
|
||||
S.BM.MASK.OFS .EQ 6
|
||||
S.BM.RowBytes .EQ 1
|
||||
S.BM.W .EQ 2
|
||||
S.BM.H .EQ 4
|
||||
S.BM.MASK.OFS .EQ 6
|
||||
*
|
||||
S.BM .EQ 8
|
||||
S.BM .EQ 8
|
||||
*--------------------------------------
|
||||
LIBGUI.InitGUI.A .EQ 4
|
||||
LIBGUI.CloseGUI .EQ 6
|
||||
LIBGUI.Draw .EQ 8
|
||||
LIBGUI.SetCursor.A .EQ 10
|
||||
LIBGUI.SetCursorPos .EQ 12
|
||||
LIBGUI.HideCursor .EQ 14
|
||||
LIBGUI.ShowCursor .EQ 16
|
||||
S.MOUSE.S .EQ 0
|
||||
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.X1 .EQ 1
|
||||
S.MOUSE.Y1 .EQ 3
|
||||
S.MOUSE.X2 .EQ 5
|
||||
S.MOUSE.Y2 .EQ 7
|
||||
S.MOUSE .EQ 9
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
||||
|
42
INC/XY.MOUSE.I.txt
Normal file
42
INC/XY.MOUSE.I.txt
Normal file
@ -0,0 +1,42 @@
|
||||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
*--------------------------------------
|
||||
* //c Mouse Port, IIe Mouse Card
|
||||
*--------------------------------------
|
||||
SETMOUSE .EQ $12 Sets mouse mode
|
||||
SERVEMOUSE .EQ $13 Services mouse interrupt
|
||||
READMOUSE .EQ $14 Reads mouse position
|
||||
CLEARMOUSE .EQ $15 Clears mouse position to 0 (for delta mode)
|
||||
POSMOUSE .EQ $16 Sets mouse position to a user-defined pos
|
||||
CLAMPMOUSE .EQ $17 Sets mouse bounds in a window
|
||||
HOMEMOUSE .EQ $18 Sets mouse to upper-left corner of clamp win
|
||||
INITMOUSE .EQ $19 Resets mouse clamps to default values,sets mouse position to 0,0
|
||||
LOCLAMPLO .EQ $0478 low byte of low clamp.
|
||||
HICLAMPLO .EQ $04F8 low byte of high clamp.
|
||||
LOCLAMPHI .EQ $0578 high byte of low clamp.
|
||||
HICLAMPHI .EQ $05F8 high byte of high clamp.
|
||||
MOUSEXLOx .EQ $0478
|
||||
MOUSEYLOx .EQ $04F8
|
||||
MOUSEXHIx .EQ $0578
|
||||
MOUSEYHIx .EQ $05F8
|
||||
* .EQ $0678
|
||||
* .EQ $06F8
|
||||
MOUSESTSx .EQ $0778
|
||||
MOUSESTSx.DOWN .EQ %10000000
|
||||
MOUSESTSx.LDOWN .EQ %01000000
|
||||
MOUSESTSx.MOVED .EQ %00100000
|
||||
MOUSESTSx.INTVBL .EQ %00001000
|
||||
MOUSESTSx.INTBUT .EQ %00000100
|
||||
MOUSESTSx.INTMOVE .EQ %00000010
|
||||
MOUSEMODx .EQ $07F8
|
||||
MOUSEMODx.INTVBL .EQ %00001000
|
||||
MOUSEMODx.INTBUT .EQ %00000100
|
||||
MOUSEMODx.INTMOVE .EQ %00000010
|
||||
MOUSEMODx.ACTIVE .EQ %00000001
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.BUILD/INC/XY.MOUSE.I
|
@ -129,7 +129,7 @@ ShowCursor
|
||||
rts
|
||||
*--------------------------------------
|
||||
* In: Control Block
|
||||
* hDC
|
||||
* CMD
|
||||
* OP
|
||||
* MODE
|
||||
* COLOR
|
||||
|
@ -14,14 +14,14 @@
|
||||
Kernel 0.9.1 stable enough to resume building.
|
||||
|
||||
+ KM.APPLETALK module not crashing anymore
|
||||
(Undocummented AtInit function, had to go further in official ATINIT dissaembly)
|
||||
(Undocummented AtInit function, had to go further in official ATINIT disassembly)
|
||||
|
||||
+ Improved Command Line editing and history.
|
||||
(SUPPR key is emulated with Ctrl-X using //e keyboard)
|
||||
|
||||
+ New DevMgr enumeration stratey, now including /RAM and other virtual Block Devices
|
||||
|
||||
+ Math API (Hacked from APLLESOFT ROM ;-)
|
||||
+ Math API (Hacked from APPLESOFT ROM ;-)
|
||||
|
||||
+ CSH Script engine in progress within Shell (In progress)
|
||||
|
||||
|
@ -73,8 +73,8 @@ CS.INIT >LDYA L.MSG.INIT
|
||||
>SYSCALL GetDevByName.YA
|
||||
bcc .20
|
||||
|
||||
inc DEVNAME.MOUSE+4
|
||||
lda DEVNAME.MOUSE+4
|
||||
inc DEVNAME.MOUSE+3
|
||||
lda DEVNAME.MOUSE+3
|
||||
cmp #'8'
|
||||
bne .11
|
||||
beq .21 No mouse found, skip mouse init
|
||||
@ -136,7 +136,7 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
|
||||
bcs .4 go check KB
|
||||
|
||||
lda MouseData
|
||||
bit #4 mouse move
|
||||
bit #S.MOUSE.S.MOVE
|
||||
beq .1
|
||||
|
||||
lda MouseData+1
|
||||
@ -161,10 +161,10 @@ CS.RUN lda A2osX.ASCREEN GUI screen active ?
|
||||
|
||||
>PUSHW L.SetPixel.CB
|
||||
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||
clc
|
||||
rts
|
||||
|
||||
.1 bit #$20
|
||||
lda MouseData
|
||||
|
||||
.1 bit #S.MOUSE.S.DOWN
|
||||
beq .4
|
||||
|
||||
jsr Destop.Paint
|
||||
@ -285,7 +285,7 @@ hLIBGUI .BS 1
|
||||
hDevGFX .BS 1
|
||||
hDevMouse .BS 1
|
||||
MouseClamp .BS 8
|
||||
MouseData .BS 5
|
||||
MouseData .BS S.MOUSE
|
||||
*--------------------------------------
|
||||
Rect.CB .DA #S.CB.CMD.FILLRECT
|
||||
.DA #S.CB.OP.SET
|
||||
|
257
SBIN/GUIOSD.S.txt
Normal file
257
SBIN/GUIOSD.S.txt
Normal file
@ -0,0 +1,257 @@
|
||||
PR#3
|
||||
PREFIX /A2OSX.BUILD
|
||||
NEW
|
||||
INC 1
|
||||
AUTO 6
|
||||
.LIST OFF
|
||||
.OP 65C02
|
||||
.OR $2000
|
||||
.TF /A2OSX.BUILD/SBIN/GUIOSD
|
||||
*--------------------------------------
|
||||
.INB /A2OSX.BUILD/INC/MACROS.I
|
||||
.INB /A2OSX.BUILD/INC/A2OSX.I
|
||||
.INB /A2OSX.BUILD/INC/PRODOS.I
|
||||
.INB /A2OSX.BUILD/INC/IO.I
|
||||
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
||||
*--------------------------------------
|
||||
A1L .EQ $3C
|
||||
A2L .EQ $3E
|
||||
A4L .EQ $42
|
||||
|
||||
MoveAux .EQ $C311
|
||||
XFer .EQ $C314
|
||||
*--------------------------------------
|
||||
CS.START cld
|
||||
jmp (.1,x)
|
||||
.DA #$61 6502,Level 1 (65c02)
|
||||
.DA #1 BIN Layout Version 1
|
||||
.DA 0
|
||||
.DA CS.END-CS.START CS
|
||||
.DA DS.END-DS.START DS
|
||||
.DA #64 SS
|
||||
.DA #0 ZP
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
* Relocation Table
|
||||
*--------------------------------------
|
||||
.1 .DA CS.INIT
|
||||
.DA CS.RUN
|
||||
.DA CS.DOEVENT
|
||||
.DA CS.QUIT
|
||||
.DA 0
|
||||
*--------------------------------------
|
||||
CS.INIT
|
||||
lda #0
|
||||
sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.RUN clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.DOEVENT sec
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.QUIT clc
|
||||
rts
|
||||
*--------------------------------------
|
||||
CS.END
|
||||
*--------------------------------------
|
||||
.PH $0C00
|
||||
*--------------------------------------
|
||||
ZPCmdPtr .EQ ZPDRV
|
||||
ZPDestBMPtr .EQ ZPDRV+2
|
||||
*--------------------------------------
|
||||
* YA =Ptr to S.CB in MAIN****
|
||||
* X = DestBM hMem
|
||||
*--------------------------------------
|
||||
GUIOSD >STYA A1L Src Start Address (MAIN)
|
||||
pha
|
||||
|
||||
tya
|
||||
clc
|
||||
adc #S.CB
|
||||
sta A2L Src End Address (MAIN)
|
||||
pla
|
||||
adc /S.CB
|
||||
sta A2L+1
|
||||
|
||||
>LDYA CB.Cache
|
||||
>STYA A4L Dst Address (AUX)
|
||||
|
||||
sec Main To Aux
|
||||
jsr MoveAux
|
||||
|
||||
txa
|
||||
ldx #SYS.GetMemPtr.A Get AUX Stock Object
|
||||
jsr $E000 with GetMem
|
||||
|
||||
>STYA ZPDestBMPtr
|
||||
|
||||
ldx #0
|
||||
|
||||
.1 lda (ZPDestBMPtr)
|
||||
sta DestBM.Cache,x
|
||||
inc ZPDestBMPtr
|
||||
bne .2
|
||||
inc ZPDestBMPtr+1
|
||||
.2 inx
|
||||
cpx #S.BM
|
||||
bne .1
|
||||
|
||||
ldx CB.Cache+S.CB.CMD
|
||||
|
||||
jmp (J.Cmds,x)
|
||||
*--------------------------------------
|
||||
J.Cmds .DA SETPIXEL
|
||||
.DA GETPIXEL
|
||||
.DA HLINE
|
||||
.DA VLINE
|
||||
.DA FILLRECT
|
||||
.DA BITBLT
|
||||
.DA GETRECTBUFSIZE
|
||||
*--------------------------------------
|
||||
SETPIXEL >LDYA CB.Cache+S.CB.Y1
|
||||
ldx DestBM.Cache+S.BM.RowBytes
|
||||
jsr YAMultX
|
||||
|
||||
pha
|
||||
tya
|
||||
|
||||
clc
|
||||
adc ZPDestBMPtr
|
||||
sta ZPDestBMPtr
|
||||
pla
|
||||
adc ZPDestBMPtr+1
|
||||
sta ZPDestBMPtr+1
|
||||
|
||||
lda CB.Cache+S.CB.MODE
|
||||
bit #S.CB.MODE.C16
|
||||
bne SETPIXEL.C16
|
||||
|
||||
SETPIXEL.MONO lda CB.Cache+S.CB.X1
|
||||
pha
|
||||
and #$7 MOD 7
|
||||
tax
|
||||
pla
|
||||
lsr CB.Cache+S.CB.X1
|
||||
ror
|
||||
lsr CB.Cache+S.CB.X1
|
||||
ror
|
||||
lsr CB.Cache+S.CB.X1
|
||||
ror
|
||||
clc
|
||||
adc ZPDestBMPtr
|
||||
sta ZPDestBMPtr
|
||||
|
||||
lda CB.Cache+S.CB.X1
|
||||
adc ZPDestBMPtr+1
|
||||
sta ZPDestBMPtr+1
|
||||
|
||||
lda CB.Cache+S.CB.OP
|
||||
* cmp #S.CB.OP.XOR
|
||||
beq SETPIXEL.MONO.XOR
|
||||
|
||||
lda CB.Cache+S.CB.COLOR
|
||||
bne SETPIXEL.MONO.WHITE
|
||||
|
||||
SETPIXEL.MONO.BLACK
|
||||
lda (ZPDestBMPtr)
|
||||
and Mono.NMasks,x
|
||||
sta (ZPDestBMPtr)
|
||||
|
||||
rts
|
||||
|
||||
SETPIXEL.MONO.WHITE
|
||||
lda (ZPDestBMPtr)
|
||||
ora Mono.Masks,x
|
||||
sta (ZPDestBMPtr)
|
||||
|
||||
rts
|
||||
|
||||
SETPIXEL.MONO.XOR
|
||||
lda (ZPDestBMPtr)
|
||||
eor Mono.Masks,x
|
||||
sta (ZPDestBMPtr)
|
||||
|
||||
rts
|
||||
SETPIXEL.C16
|
||||
*--------------------------------------
|
||||
GETPIXEL
|
||||
*--------------------------------------
|
||||
HLINE
|
||||
*--------------------------------------
|
||||
VLINE
|
||||
*--------------------------------------
|
||||
FILLRECT
|
||||
*--------------------------------------
|
||||
BITBLT
|
||||
*--------------------------------------
|
||||
GETRECTBUFSIZE
|
||||
*--------------------------------------
|
||||
*--------------------------------------
|
||||
* IN:
|
||||
* Y,A = num1 (16)
|
||||
* X = num2 (8)
|
||||
* OUT:
|
||||
* Y,A = (Y,A) * X
|
||||
*--------------------------------------
|
||||
YAMultX stx GBYTE
|
||||
|
||||
sty GWORD
|
||||
sta GWORD+1
|
||||
|
||||
ldy #0 Result LO
|
||||
tya Result HI
|
||||
|
||||
bra .3
|
||||
|
||||
.1 pha
|
||||
tya
|
||||
clc
|
||||
adc GWORD
|
||||
tay
|
||||
pla
|
||||
adc GWORD+1
|
||||
|
||||
.2 asl GWORD
|
||||
rol GWORD+1
|
||||
|
||||
.3 lsr GBYTE
|
||||
bcs .1
|
||||
bne .2
|
||||
rts
|
||||
*--------------------------------------
|
||||
Mono.NMasks .DA #%11111110
|
||||
.DA #%11111101
|
||||
.DA #%11111011
|
||||
.DA #%11110111
|
||||
.DA #%11101111
|
||||
.DA #%11011111
|
||||
.DA #%10111111
|
||||
.DA #%01111111
|
||||
*--------------------------------------
|
||||
Mono.Masks .DA #%00000001
|
||||
.DA #%00000010
|
||||
.DA #%00000100
|
||||
.DA #%00001000
|
||||
.DA #%00010000
|
||||
.DA #%00100000
|
||||
.DA #%01000000
|
||||
.DA #%10000000
|
||||
*--------------------------------------
|
||||
CB.Cache .BS S.CB
|
||||
DestBM.Cache .BS S.BM
|
||||
GBYTE .BS 1
|
||||
GWORD .BS 2
|
||||
*--------------------------------------
|
||||
.EP
|
||||
*--------------------------------------
|
||||
.DUMMY
|
||||
.OR 0
|
||||
DS.START
|
||||
DS.END
|
||||
.ED
|
||||
*--------------------------------------
|
||||
MAN
|
||||
SAVE /A2OSX.SRC/SBIN/GUIOSD
|
||||
ASM
|
Loading…
x
Reference in New Issue
Block a user