mirror of
https://github.com/A2osX/A2osX.git
synced 2024-07-07 04:28:56 +00:00
Kernel 0.9.1 : GUI API & Driver
This commit is contained in:
parent
8ffd177fb2
commit
0cb5d401f7
Binary file not shown.
Binary file not shown.
@ -17,20 +17,11 @@ AUTO 6
|
|||||||
* 16 : SrcPtr
|
* 16 : SrcPtr
|
||||||
* 18 : DstPtr
|
* 18 : DstPtr
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
BITBLT >STYA ZPBase
|
BITBLT
|
||||||
ldy #S.CB.DstPtr+1
|
|
||||||
|
|
||||||
.1 lda (ZPBase),y
|
|
||||||
sta CB.Cache,y
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.RECT
|
||||||
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -7,95 +7,59 @@ AUTO 6
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* HLINE X1,X2 at Y1
|
* HLINE X1,X2 at Y1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HLINE >STYA ZPBase
|
HLINE lda CB.Cache+S.CB.MODE
|
||||||
ldy #S.CB.X2+1
|
|
||||||
|
|
||||||
.1 lda (ZPBase),y
|
cmp #S.CB.MODE.MONO
|
||||||
sta CB.Cache,y
|
bne HLINE.C16
|
||||||
dey
|
|
||||||
bpl .1
|
HLINE.MONO >LDYA CB.Cache+S.CB.X1
|
||||||
|
jsr LBUF.SetBounds1YA
|
||||||
|
|
||||||
HLINE.I lda CB.Cache+S.CB.MODE
|
>LDYA CB.Cache+S.CB.X2
|
||||||
|
jsr LBUF.SetBounds2YA
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.MODE
|
||||||
bit #S.CB.MODE.C16
|
bit #S.CB.MODE.C16
|
||||||
bne HLINE.C16
|
bne HLINE.C16
|
||||||
|
|
||||||
HLINE.MONO lda CB.Cache+S.CB.X2 Count=X2-X1
|
lda CB.Cache+S.CB.COLOR
|
||||||
sec
|
beq .1
|
||||||
sbc CB.Cache+S.CB.X1
|
|
||||||
sta ZPCount
|
|
||||||
tay
|
|
||||||
|
|
||||||
lda CB.Cache+S.CB.X2+1
|
lda #%01111111
|
||||||
sbc CB.Cache+S.CB.X1+1
|
|
||||||
sta ZPCount+1
|
|
||||||
tax
|
|
||||||
jsr DIVMOD7YX
|
|
||||||
|
|
||||||
ldy CB.Cache+S.CB.X1
|
.1 ldy LBUF.C1
|
||||||
ldx CB.Cache+S.CB.X1+1
|
|
||||||
|
|
||||||
jsr DIVMOD7YX A=X1 DIV 7, X=MOD 7
|
|
||||||
|
|
||||||
|
.2 pha
|
||||||
pha save X DIV 7
|
and LBUF.AND,y
|
||||||
lsr
|
sta LBUF.ORA,y
|
||||||
|
pla
|
||||||
|
iny
|
||||||
|
cpy LBUF.C2
|
||||||
|
bcs .2
|
||||||
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
clc
|
jmp LBUF.DrawAtY
|
||||||
adc BASEL,y setup line Base Ptr (A=Col)
|
|
||||||
sta ZPBase
|
HLINE.C16 lda CB.Cache+S.CB.X1
|
||||||
lda BASEH,y
|
and #%11111100
|
||||||
sta ZPBase+1
|
|
||||||
ply
|
|
||||||
lda COL.BANK,y
|
|
||||||
tay
|
tay
|
||||||
sta $c000,y
|
lda CB.Cache+S.CB.X1+1
|
||||||
|
|
||||||
|
jsr LBUF.SetBounds1YA
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.X2
|
||||||
|
and #%11111100
|
||||||
|
tay
|
||||||
|
lda CB.Cache+S.CB.X2+1
|
||||||
|
|
||||||
|
jsr LBUF.SetBounds2YA
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
HLINE.C16
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
HLINE.DIVMOD7 ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
|
||||||
|
|
||||||
lda DIV7.lo,x
|
|
||||||
sta .1+1
|
|
||||||
lda DIV7.hi,x
|
|
||||||
sta .1+2
|
|
||||||
|
|
||||||
lda MOD7.lo,x
|
|
||||||
sta .2+1
|
|
||||||
lda MOD7.hi,x
|
|
||||||
sta .2+2
|
|
||||||
|
|
||||||
lda DIV7.BASE,x
|
|
||||||
ldx CB.Cache+S.CB.X1
|
|
||||||
|
|
||||||
clc
|
|
||||||
.1 adc $ffff,x DIV7 : x = X.LO, a = X DIV 7
|
|
||||||
sta XDIV7
|
|
||||||
.2 ldy $ffff,x MOD7 : x = X.LO, y = X MOD 7
|
|
||||||
sta XMOD7
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* VLINE Y1,Y2 at X1
|
* VLINE Y1,Y2 at X1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VLINE >STYA ZPBase
|
VLINE lda CB.Cache+S.CB.OP
|
||||||
ldy #S.CB.Y2
|
|
||||||
|
|
||||||
.1 lda (ZPBase),y
|
|
||||||
sta CB.Cache,y
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
sta SET80STORE
|
|
||||||
|
|
||||||
lda CB.Cache+S.CB.OP
|
|
||||||
beq VLINE.OP0
|
beq VLINE.OP0
|
||||||
|
|
||||||
VLINE.XOR jsr VLINE.DIVMOD7
|
VLINE.XOR jsr VLINE.DIVMOD7
|
||||||
@ -122,7 +86,6 @@ VLINE.XOR jsr VLINE.DIVMOD7
|
|||||||
bcc .1
|
bcc .1
|
||||||
beq .1
|
beq .1
|
||||||
|
|
||||||
sta CLR80STORE
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
VLINE.OP0 lda CB.Cache+S.CB.MODE
|
VLINE.OP0 lda CB.Cache+S.CB.MODE
|
||||||
@ -159,7 +122,6 @@ VLINE.MONO jsr VLINE.DIVMOD7
|
|||||||
bcc .2
|
bcc .2
|
||||||
beq .2
|
beq .2
|
||||||
|
|
||||||
sta CLR80STORE
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
VLINE.C16 lda CB.Cache+S.CB.X1
|
VLINE.C16 lda CB.Cache+S.CB.X1
|
||||||
@ -248,8 +210,7 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
ora GBYTE
|
ora GBYTE
|
||||||
sta (ZPBase)
|
sta (ZPBase)
|
||||||
|
|
||||||
.13 sta CLR80STORE
|
.13 rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VLINE.DIVMOD7 ldx CB.Cache+S.CB.X1+1 Get X HI byte....
|
VLINE.DIVMOD7 ldx CB.Cache+S.CB.X1+1 Get X HI byte....
|
||||||
|
|
||||||
@ -283,6 +244,6 @@ VLINE.DIVMOD7 ldx CB.Cache+S.CB.X1+1 Get X HI byte....
|
|||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LIN
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LINE
|
||||||
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
||||||
ASM
|
ASM
|
@ -13,16 +13,7 @@ AUTO 6
|
|||||||
* 4 : SrcX1
|
* 4 : SrcX1
|
||||||
* 6 : SrcY1
|
* 6 : SrcY1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SETPIXEL >STYA ZPBase
|
SETPIXEL lda CB.Cache+S.CB.MODE
|
||||||
ldy #S.CB.Y1 Skip S.CB.Y1+1.....always 0
|
|
||||||
.1 lda (ZPBase),y
|
|
||||||
sta CB.Cache,y
|
|
||||||
dey
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
sta SET80STORE
|
|
||||||
|
|
||||||
lda CB.Cache+S.CB.MODE
|
|
||||||
bit #S.CB.MODE.C16
|
bit #S.CB.MODE.C16
|
||||||
bne SETPIXEL.C16
|
bne SETPIXEL.C16
|
||||||
|
|
||||||
@ -66,7 +57,6 @@ SETPIXEL.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
|||||||
eor Mono.Masks,y y = mod 7
|
eor Mono.Masks,y y = mod 7
|
||||||
sta (ZPBase)
|
sta (ZPBase)
|
||||||
|
|
||||||
sta CLR80STORE
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.5 lda (ZPBase)
|
.5 lda (ZPBase)
|
||||||
@ -75,13 +65,11 @@ SETPIXEL.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
|||||||
|
|
||||||
and Mono.NMasks,y includes And $7F for mono
|
and Mono.NMasks,y includes And $7F for mono
|
||||||
sta (ZPBase)
|
sta (ZPBase)
|
||||||
sta CLR80STORE
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.6 and #$7F switch back this byte to mono
|
.6 and #$7F switch back this byte to mono
|
||||||
ora Mono.Masks,y
|
ora Mono.Masks,y
|
||||||
sta (ZPBase)
|
sta (ZPBase)
|
||||||
sta CLR80STORE
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
||||||
@ -170,8 +158,7 @@ SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
|||||||
ora GBYTE
|
ora GBYTE
|
||||||
sta (ZPBase)
|
sta (ZPBase)
|
||||||
|
|
||||||
.13 sta CLR80STORE
|
.13 rts
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* GETPIXEL
|
* GETPIXEL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
30
DRV/DHGR.DRV.S.RECT.txt
Normal file
30
DRV/DHGR.DRV.S.RECT.txt
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
PR#3
|
||||||
|
PREFIX /A2OSX.BUILD
|
||||||
|
LOMEM $A00
|
||||||
|
INC 1
|
||||||
|
AUTO 6
|
||||||
|
.LIST OFF
|
||||||
|
*--------------------------------------
|
||||||
|
* FILLRECT
|
||||||
|
* 2 : Mode
|
||||||
|
* 3 : Color
|
||||||
|
* 4 : SrcX1
|
||||||
|
* 6 : SrcY1
|
||||||
|
* 8 : SrcX2
|
||||||
|
* 10 : SrcY2
|
||||||
|
*--------------------------------------
|
||||||
|
FILLRECT
|
||||||
|
.2 jsr HLINE
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.Y1
|
||||||
|
cmp CB.Cache+S.CB.Y2
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
inc CB.Cache+S.CB.Y1
|
||||||
|
bra .2
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
MAN
|
||||||
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
||||||
|
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
||||||
|
ASM
|
@ -11,12 +11,14 @@ AUTO 6
|
|||||||
.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/IO.I
|
.INB /A2OSX.BUILD/INC/IO.I
|
||||||
.INB /A2OSX.BUILD/INC/LIBGFX.I
|
.INB /A2OSX.BUILD/INC/LIBGUI.I
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPBase .EQ ZPDRV
|
ZPCmdPtr .EQ ZPDRV
|
||||||
ZPCount .EQ ZPDRV+2
|
ZPBase .EQ ZPDRV+2
|
||||||
ZPCountCol .EQ ZPDRV+4
|
|
||||||
ZPCountMod .EQ ZPDRV+5
|
|
||||||
|
ZPCount .EQ ZPDRV+4
|
||||||
|
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
@ -39,90 +41,9 @@ L.MSG.DETECT .DA MSG.DETECT
|
|||||||
Dev.Detect >LDYA L.MSG.DETECT
|
Dev.Detect >LDYA L.MSG.DETECT
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
ldx #0
|
|
||||||
.1 txa
|
|
||||||
stz Shift0.hi,x
|
|
||||||
asl
|
|
||||||
rol Shift0.hi,x
|
|
||||||
lsr
|
|
||||||
sta Shift0.lo,x
|
|
||||||
inx
|
|
||||||
bpl .1
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
.2 lda Shift0.hi,x
|
|
||||||
sta Shift1.hi,x
|
|
||||||
lda Shift0.lo,x
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
rol Shift1.hi,x
|
|
||||||
lsr
|
|
||||||
sta Shift1.lo,x
|
|
||||||
inx
|
|
||||||
bpl .2
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
.3 lda Shift1.hi,x
|
|
||||||
sta Shift2.hi,x
|
|
||||||
lda Shift1.lo,x
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
rol Shift2.hi,x
|
|
||||||
lsr
|
|
||||||
sta Shift2.lo,x
|
|
||||||
inx
|
|
||||||
bpl .3
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
.4 lda Shift2.hi,x
|
|
||||||
sta Shift3.hi,x
|
|
||||||
lda Shift2.lo,x
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
rol Shift3.hi,x
|
|
||||||
lsr
|
|
||||||
sta Shift3.lo,x
|
|
||||||
inx
|
|
||||||
bpl .4
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
.5 lda Shift3.hi,x
|
|
||||||
sta Shift4.hi,x
|
|
||||||
lda Shift3.lo,x
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
rol Shift4.hi,x
|
|
||||||
lsr
|
|
||||||
sta Shift4.lo,x
|
|
||||||
inx
|
|
||||||
bpl .5
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
.6 lda Shift4.hi,x
|
|
||||||
sta Shift5.hi,x
|
|
||||||
lda Shift4.lo,x
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
rol Shift5.hi,x
|
|
||||||
lsr
|
|
||||||
sta Shift5.lo,x
|
|
||||||
inx
|
|
||||||
bpl .6
|
|
||||||
|
|
||||||
ldx #0
|
|
||||||
.7 lda Shift5.hi,x
|
|
||||||
sta Shift6.hi,x
|
|
||||||
lda Shift5.lo,x
|
|
||||||
asl
|
|
||||||
asl
|
|
||||||
rol Shift6.hi,x
|
|
||||||
lsr
|
|
||||||
sta Shift6.lo,x
|
|
||||||
inx
|
|
||||||
bpl .7
|
|
||||||
|
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CS.END
|
CS.END
|
||||||
MSG.DETECT >CSTR "Apple IIe/IIc DHGR Driver.\r\n"
|
MSG.DETECT >CSTR "Apple IIe/IIc DHGR Driver.\r\n"
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -132,7 +53,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 "GFX"
|
DEV.HEADER.NAME >CSTR "GFX"
|
||||||
.BS 1
|
.BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Driver Code
|
* Driver Code
|
||||||
@ -146,31 +67,26 @@ DRV.CS.START .DA STATUS
|
|||||||
.DA OPEN
|
.DA OPEN
|
||||||
.DA CLOSE
|
.DA CLOSE
|
||||||
.DA A2osX.BADCALL
|
.DA A2osX.BADCALL
|
||||||
.DA A2osX.BADCALL
|
.DA WRITE
|
||||||
.DA A2osX.BADCALL
|
.DA A2osX.BADCALL
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA SETPIXEL
|
J.Cmds .DA SETPIXEL
|
||||||
.DA GETPIXEL
|
.DA GETPIXEL
|
||||||
.DA HLINE
|
.DA HLINE
|
||||||
.DA VLINE
|
.DA VLINE
|
||||||
.DA FILLRECT
|
.DA FILLRECT
|
||||||
.DA BITBLT
|
.DA BITBLT
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
L.STAT .DA STAT
|
L.DSTAT .DA DSTAT
|
||||||
L.DIV7.0 .DA DIV7.0
|
L.DIV7.0 .DA DIV7.0
|
||||||
.DA DIV7.256
|
.DA DIV7.256
|
||||||
.DA DIV7.512
|
.DA DIV7.512
|
||||||
L.MOD7.0 .DA MOD7.0
|
L.MOD7.0 .DA MOD7.0
|
||||||
.DA MOD7.256
|
.DA MOD7.256
|
||||||
.DA MOD7.512
|
.DA MOD7.512
|
||||||
L.Shift0.Lo .DA Shift0.lo
|
|
||||||
L.Shift0.Hi .DA Shift0.hi
|
|
||||||
L.DIVMOD7Y0 .DA DIVMOD7Y0
|
|
||||||
.DA DIVMOD7Y1
|
|
||||||
.DA DIVMOD7Y2
|
|
||||||
.DA 0 end or relocation
|
.DA 0 end or relocation
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STATUS >LDYA L.STAT
|
STATUS >LDYA L.DSTAT
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -196,20 +112,6 @@ OPEN sta A2osX.SCRNDEVS+2 DEV.ID in A
|
|||||||
cpx #3
|
cpx #3
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
ldx #7
|
|
||||||
lda L.Shift0.Lo+1
|
|
||||||
.10 sta Shiftlo.hi,x
|
|
||||||
inc
|
|
||||||
dex
|
|
||||||
bne .10
|
|
||||||
|
|
||||||
ldx #7
|
|
||||||
lda L.Shift0.hi+1
|
|
||||||
.11 sta Shifthi.hi,x
|
|
||||||
inc
|
|
||||||
dex
|
|
||||||
bne .11
|
|
||||||
|
|
||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -238,44 +140,109 @@ CONTROL sta CLRTEXT
|
|||||||
CLOSE clc
|
CLOSE clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.PIX
|
WRITE >STYA ZPCmdPtr
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.LIN
|
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
|
||||||
*--------------------------------------
|
|
||||||
* FILLRECT
|
|
||||||
* 2 : Mode
|
|
||||||
* 3 : Color
|
|
||||||
* 4 : SrcX1
|
|
||||||
* 6 : SrcY1
|
|
||||||
* 8 : SrcX2
|
|
||||||
* 10 : SrcY2
|
|
||||||
*--------------------------------------
|
|
||||||
FILLRECT >STYA ZPBase
|
|
||||||
ldy #S.CB.Y2
|
|
||||||
|
|
||||||
.1 lda (ZPBase),y
|
sta SET80STORE
|
||||||
|
|
||||||
|
lda (ZPCmdPtr)
|
||||||
|
|
||||||
|
.1 tax
|
||||||
|
ldy CB.CmdLen,x
|
||||||
|
|
||||||
|
.2 lda (ZPBase),y
|
||||||
sta CB.Cache,y
|
sta CB.Cache,y
|
||||||
dey
|
dey
|
||||||
bpl .1
|
bpl .2
|
||||||
|
|
||||||
.2 jsr HLINE.I
|
|
||||||
|
|
||||||
lda CB.Cache+S.CB.Y1
|
|
||||||
cmp CB.Cache+S.CB.Y2
|
|
||||||
beq .8
|
|
||||||
|
|
||||||
inc CB.Cache+S.CB.Y1
|
lda CB.CmdLen,x
|
||||||
bra .2
|
clc
|
||||||
|
adc ZPCmdPtr
|
||||||
|
sta ZPCmdPtr
|
||||||
|
bcc .3
|
||||||
|
inc ZPCmdPtr+1
|
||||||
|
|
||||||
|
.3 jsr .10
|
||||||
|
|
||||||
|
lda (ZPCmdPtr)
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
sta CLR80STORE
|
||||||
|
|
||||||
|
.8 clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.10 jmp (J.Cmds,x)
|
||||||
|
*--------------------------------------
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.PIX
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.LINE
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.RECT
|
||||||
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.SetBounds1YA
|
||||||
|
jsr DIVMOD7YA A=DIV, X=MOD
|
||||||
|
sta LBUF.C1
|
||||||
|
tay
|
||||||
|
lda Mono.Head,x
|
||||||
|
sta LBUF.AND,y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.SetBounds2YA
|
||||||
|
jsr DIVMOD7YA
|
||||||
|
|
||||||
|
cmp LBUF.C1 A=DIV, X=MOD
|
||||||
|
beq .2
|
||||||
|
|
||||||
|
sta LBUF.C2
|
||||||
|
tay
|
||||||
|
lda Mono.Tail,x
|
||||||
|
sta LBUF.AND,y
|
||||||
|
|
||||||
|
lda #0
|
||||||
|
|
||||||
|
.1 dey
|
||||||
|
cpy LBUF.C1
|
||||||
|
beq .8
|
||||||
|
sta LBUF.AND,y
|
||||||
|
bra .1
|
||||||
|
|
||||||
|
.2 and LBUF.C1
|
||||||
|
sta LBUF.C2
|
||||||
|
tay
|
||||||
|
lda Mono.Tail,x
|
||||||
|
sta LBUF.AND,y
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
||||||
|
sta ZPBase
|
||||||
|
lda BASEH,y
|
||||||
|
sta ZPBase+1
|
||||||
|
|
||||||
|
ldy LBUF.C1 y C1->C2
|
||||||
|
|
||||||
|
.1 ldx COL.BANK,y
|
||||||
|
sta $C000,x
|
||||||
|
|
||||||
|
lda (ZPBase),y
|
||||||
|
and LBUF.AND,y
|
||||||
|
ora LBUF.ORA,y
|
||||||
|
sta (ZPBase),y
|
||||||
|
|
||||||
|
iny
|
||||||
|
cpy LBUF.C2
|
||||||
|
bcs .1
|
||||||
|
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
* IN:
|
* IN:
|
||||||
* Y = LO
|
* Y = LO
|
||||||
* X = HI
|
* A = HI
|
||||||
* OUT:
|
* OUT:
|
||||||
* A = DIV
|
* A = DIV
|
||||||
* X = MOD
|
* X = MOD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DIVMOD7YX jmp (L.DIVMOD7Y0,x)
|
DIVMOD7YA dec
|
||||||
|
bne DIVMOD7Y2
|
||||||
|
beq DIVMOD7Y1
|
||||||
|
|
||||||
DIVMOD7Y0 lda DIV7.0,y
|
DIVMOD7Y0 lda DIV7.0,y
|
||||||
ldx MOD7.0,y
|
ldx MOD7.0,y
|
||||||
@ -294,39 +261,34 @@ DIVMOD7Y2 lda DIV7.512,y
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.CS.END
|
DRV.CS.END
|
||||||
*--------------------------------------
|
|
||||||
Shift0.lo .BS 128
|
|
||||||
Shift0.hi .BS 128
|
|
||||||
Shift1.lo .BS 128
|
|
||||||
Shift1.hi .BS 128
|
|
||||||
Shift2.lo .BS 128
|
|
||||||
Shift2.hi .BS 128
|
|
||||||
Shift3.lo .BS 128
|
|
||||||
Shift3.hi .BS 128
|
|
||||||
Shift4.lo .BS 128
|
|
||||||
Shift4.hi .BS 128
|
|
||||||
Shift5.lo .BS 128
|
|
||||||
Shift5.hi .BS 128
|
|
||||||
Shift6.lo .BS 128
|
|
||||||
Shift6.hi .BS 128
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.SRC/DRV/DHGR.DRV.T
|
.INB /A2OSX.SRC/DRV/DHGR.DRV.T
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
||||||
|
.DA S.CB.Y1+1 GETPIXEL
|
||||||
|
.DA S.CB.X2+1 HLINE
|
||||||
|
.DA S.CB.X2+1 VLINE
|
||||||
|
.DA S.CB.Y2+1 FILLRECT
|
||||||
|
.DA S.CB.DstPtr+1 BITBLT
|
||||||
|
*--------------------------------------
|
||||||
|
CB.Cache .BS S.CB
|
||||||
|
*--------------------------------------
|
||||||
DIV7.lo .BS 3
|
DIV7.lo .BS 3
|
||||||
DIV7.hi .BS 3
|
DIV7.hi .BS 3
|
||||||
MOD7.lo .BS 3
|
MOD7.lo .BS 3
|
||||||
MOD7.hi .BS 3
|
MOD7.hi .BS 3
|
||||||
Shiftlo.hi .BS 7
|
|
||||||
Shifthi.hi .BS 7
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
LBUF.C1 .BS 1
|
||||||
|
LBUF.C2 .BS 1
|
||||||
|
LBUF.ORA .BS 80
|
||||||
|
LBUF.AND .BS 80
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDIV7 .BS 1
|
XDIV7 .BS 1
|
||||||
XMOD7 .BS 1
|
XMOD7 .BS 1
|
||||||
XCOL7 .BS 1
|
XCOL7 .BS 1
|
||||||
GBYTE .BS 1
|
GBYTE .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
STAT .DA #0
|
DSTAT .DA #0
|
||||||
.DA #0,#0,#0
|
.DA #0,#0,#0
|
||||||
>PSTR "Apple II DHGR"
|
>PSTR "Apple II DHGR"
|
||||||
.BS 3
|
.BS 3
|
||||||
@ -338,9 +300,6 @@ DEVSTAT.MODES .DA #S.CB.MODE.MONO+S.CB.MODE.C16
|
|||||||
DEVSTAT.W .DA 560 X.SIZE
|
DEVSTAT.W .DA 560 X.SIZE
|
||||||
DEVSTAT.H .DA 192 Y.SIZE
|
DEVSTAT.H .DA 192 Y.SIZE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DRV.SIZE .EQ *-DRV.CS.START
|
|
||||||
*--------------------------------------
|
|
||||||
.LIST OFF
|
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S
|
||||||
ASM
|
ASM
|
||||||
|
@ -21,21 +21,21 @@ Mono.Masks .DA #%00000001
|
|||||||
.DA #%00100000
|
.DA #%00100000
|
||||||
.DA #%01000000
|
.DA #%01000000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mono.Head .DA #%01111111
|
Mono.Head .DA #%10000000
|
||||||
.DA #%01111110
|
.DA #%10000001
|
||||||
.DA #%01111100
|
.DA #%10000011
|
||||||
.DA #%01111000
|
.DA #%10000111
|
||||||
.DA #%01110000
|
.DA #%10001111
|
||||||
.DA #%01100000
|
.DA #%10011111
|
||||||
.DA #%01000000
|
.DA #%10111111
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Mono.Tail .DA #%00000001
|
Mono.Tail .DA #%11111110
|
||||||
.DA #%00000011
|
.DA #%11111100
|
||||||
.DA #%00000111
|
.DA #%11111000
|
||||||
.DA #%00001111
|
.DA #%11110000
|
||||||
.DA #%00011111
|
.DA #%11100000
|
||||||
.DA #%00111111
|
.DA #%11000000
|
||||||
.DA #%01111111
|
.DA #%10000000
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* bits to "and" to reset color of pixel (0 means nothing to do)
|
* bits to "and" to reset color of pixel (0 means nothing to do)
|
||||||
* 4 bytes * 7 mods
|
* 4 bytes * 7 mods
|
||||||
|
@ -313,15 +313,6 @@ DEVMGR.READ .EQ 16
|
|||||||
DEVMGR.WRITE .EQ 18
|
DEVMGR.WRITE .EQ 18
|
||||||
DEVMGR.IRQ .EQ 20
|
DEVMGR.IRQ .EQ 20
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* 'GFX' Class Driver Functions
|
|
||||||
*--------------------------------------
|
|
||||||
DEVMGR.GFX.SETPIXEL .EQ 22
|
|
||||||
DEVMGR.GFX.GETPIXEL .EQ 24
|
|
||||||
DEVMGR.GFX.HLINE .EQ 26
|
|
||||||
DEVMGR.GFX.VLINE .EQ 28
|
|
||||||
DEVMGR.GFX.FILLRECT .EQ 30
|
|
||||||
DEVMGR.GFX.BITBLT .EQ 32
|
|
||||||
*--------------------------------------
|
|
||||||
S.DSTAT.S .EQ 0
|
S.DSTAT.S .EQ 0
|
||||||
S.DSTAT.S.BLOCK .EQ %10000000
|
S.DSTAT.S.BLOCK .EQ %10000000
|
||||||
S.DSTAT.S.WRITE .EQ %01000000
|
S.DSTAT.S.WRITE .EQ %01000000
|
||||||
|
@ -67,4 +67,4 @@ LIBGFX.ShowCursor .EQ 14
|
|||||||
LIBGFX.DrawLine .EQ 16
|
LIBGFX.DrawLine .EQ 16
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/INC/LIBGFX.I
|
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
@ -434,5 +434,5 @@ PAT.Arrow .DA #S.BM.F.BBP1
|
|||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/LIB/LIBGFX.S
|
SAVE /A2OSX.SRC/LIB/LIBGUI.S
|
||||||
ASM
|
ASM
|
@ -6,12 +6,12 @@ AUTO 6
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
.OP 65C02
|
.OP 65C02
|
||||||
.OR $2000
|
.OR $2000
|
||||||
.TF /A2OSX.BUILD/SBIN/DESKTOP
|
.TF /A2OSX.BUILD/SBIN/GUI
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.INB /A2OSX.BUILD/INC/IO.I
|
.INB /A2OSX.BUILD/INC/IO.I
|
||||||
.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
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
ZPPtr1 .EQ ZPBIN
|
ZPPtr1 .EQ ZPBIN
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -249,7 +249,7 @@ GoDevMouse jmp $ffff
|
|||||||
CS.END
|
CS.END
|
||||||
DEVNAME.GFX >PSTR "GFX"
|
DEVNAME.GFX >PSTR "GFX"
|
||||||
DEVNAME.MOUSE >PSTR "MOU1"
|
DEVNAME.MOUSE >PSTR "MOU1"
|
||||||
LIBGFX >PSTR "libgfx.o"
|
LIBGFX >PSTR "libgui.o"
|
||||||
MSG.INIT >CSTR "DESKTOP:Init...\r\n"
|
MSG.INIT >CSTR "DESKTOP:Init...\r\n"
|
||||||
hLibGFX .BS 1
|
hLibGFX .BS 1
|
||||||
hDevGFX .BS 1
|
hDevGFX .BS 1
|
||||||
@ -318,5 +318,5 @@ DrawLine6.CB .BS 1 hDC
|
|||||||
.DA 84
|
.DA 84
|
||||||
.DA 191
|
.DA 191
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/SBIN/DESKTOP.S
|
SAVE /A2OSX.SRC/SBIN/GUI.S
|
||||||
ASM
|
ASM
|
@ -85,8 +85,8 @@ CSH.TSIZE .HS 0001020401020405 00,CHAR,INT,LONG,UCHAR,UINT,ULONG,FLOAT....
|
|||||||
* int printf ( const char * format, ... );
|
* int printf ( const char * format, ... );
|
||||||
CSH.FN >PSTR "printf"
|
CSH.FN >PSTR "printf"
|
||||||
.DA #CSH.T.INT returned value
|
.DA #CSH.T.INT returned value
|
||||||
.DA #CSH.Q.CONST+CSH.T.CHAR
|
.DA #CSH.Q.CONST+CSH.Q.POINTER1
|
||||||
.DA #CSH.Q.POINTER
|
.DA #CSH.T.CHAR
|
||||||
.DA #CSH.T.VARIADIC
|
.DA #CSH.T.VARIADIC
|
||||||
.DA #0
|
.DA #0
|
||||||
* float cos ( float x );
|
* float cos ( float x );
|
||||||
|
@ -13,10 +13,11 @@ CSH.E.DUP .EQ $7B
|
|||||||
CSH.E.UNDEF .EQ $7A
|
CSH.E.UNDEF .EQ $7A
|
||||||
CSH.E.TMISMATCH .EQ $79
|
CSH.E.TMISMATCH .EQ $79
|
||||||
|
|
||||||
CSH.Q.POINTER .EQ %10000000
|
CSH.Q.CONST .EQ %11000000
|
||||||
CSH.Q.CONST .EQ %01000000
|
CSH.Q.ARRAY .EQ %10001100 max 3 bounds
|
||||||
CSH.Q.ARRAY .EQ %11000000
|
CSH.Q.POINTER1 .EQ %10000001 max 3 depth
|
||||||
|
CSH.Q.POINTER2 .EQ %10000010
|
||||||
|
CSH.Q.POINTER3 .EQ %10000011
|
||||||
CSH.T.CHAR .EQ 1
|
CSH.T.CHAR .EQ 1
|
||||||
CSH.T.INT .EQ 2
|
CSH.T.INT .EQ 2
|
||||||
CSH.T.LONG .EQ 3
|
CSH.T.LONG .EQ 3
|
||||||
@ -224,7 +225,7 @@ CSH.IF jsr CSH.GetCharNB
|
|||||||
jsr CSH.GetNextCharNB Skip '{'
|
jsr CSH.GetNextCharNB Skip '{'
|
||||||
bcs .99
|
bcs .99
|
||||||
|
|
||||||
>LDA.G CSH.CmdSave Push "IF" or "WHILE"
|
>LDA.G CSH.CmdSave get back Token ("IF" or "WHILE")
|
||||||
tax
|
tax
|
||||||
jsr CSH.Keyword.start
|
jsr CSH.Keyword.start
|
||||||
bcs .99
|
bcs .99
|
||||||
@ -263,7 +264,7 @@ CSH.IF jsr CSH.GetCharNB
|
|||||||
CSH.Keyword.Start
|
CSH.Keyword.Start
|
||||||
jmp (J.CSH.KW.START,x)
|
jmp (J.CSH.KW.START,x)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.IF.START jmp CSH.Push
|
CSH.IF.START jmp CSH.Push Push "IF" Token
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.WHILE.START pha
|
CSH.WHILE.START pha
|
||||||
>LDA.G CSH.BufPtrSave+1 WHILE : push loop address...
|
>LDA.G CSH.BufPtrSave+1 WHILE : push loop address...
|
||||||
@ -271,7 +272,7 @@ CSH.WHILE.START pha
|
|||||||
>LDA.G CSH.BufPtrSave
|
>LDA.G CSH.BufPtrSave
|
||||||
jsr CSH.Push
|
jsr CSH.Push
|
||||||
pla
|
pla
|
||||||
jmp CSH.Push
|
jmp CSH.Push Push "WHILE" Token
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.IF.END jsr CSH.GetNextChar just skip ending '}'
|
CSH.IF.END jsr CSH.GetNextChar just skip ending '}'
|
||||||
clc
|
clc
|
||||||
@ -339,7 +340,6 @@ CSH.CHAR lda #CSH.T.CHAR
|
|||||||
CSH.UCHAR lda #CSH.T.CHAR
|
CSH.UCHAR lda #CSH.T.CHAR
|
||||||
bra CSH.TYPE
|
bra CSH.TYPE
|
||||||
CSH.INT lda #CSH.T.INT
|
CSH.INT lda #CSH.T.INT
|
||||||
>DEBUG
|
|
||||||
bra CSH.TYPE
|
bra CSH.TYPE
|
||||||
CSH.UINT lda #CSH.T.INT
|
CSH.UINT lda #CSH.T.INT
|
||||||
bra CSH.TYPE
|
bra CSH.TYPE
|
||||||
@ -403,6 +403,75 @@ CSH.TYPE >STA.G CSH.ACCT
|
|||||||
sec
|
sec
|
||||||
.99 rts
|
.99 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.FnEval jsr CSH.GetCharNB
|
||||||
|
|
||||||
|
bcs .9
|
||||||
|
cmp #'('
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
lda (ZPPtr1) Get Return value Type
|
||||||
|
>CMP.G CSH.ACCT Match with ACC ?
|
||||||
|
bne .99
|
||||||
|
|
||||||
|
jsr CSH.PushACCT Save Acc & T on stack
|
||||||
|
|
||||||
|
|
||||||
|
.1 inc ZPPtr1 advance to arg list type
|
||||||
|
bne .2
|
||||||
|
inc ZPPtr1+1
|
||||||
|
|
||||||
|
.2 lda (ZPPtr1)
|
||||||
|
beq .7 end of list, go check no more
|
||||||
|
|
||||||
|
jsr CSH.ExpEval
|
||||||
|
bcs .90
|
||||||
|
|
||||||
|
lda (ZPPtr1)
|
||||||
|
cmp #CSH.T.VARIADIC
|
||||||
|
beq .3
|
||||||
|
|
||||||
|
>CMP.G CSH.ACCT Match with ACC ?
|
||||||
|
bne .99
|
||||||
|
|
||||||
|
.3
|
||||||
|
|
||||||
|
|
||||||
|
lda (ZPPtr1)
|
||||||
|
cmp #CSH.T.VARIADIC
|
||||||
|
bne .5
|
||||||
|
|
||||||
|
.4 jsr CSH.GetNextCharNB
|
||||||
|
cmp #','
|
||||||
|
bne .7
|
||||||
|
jsr CSH.GetNextCharNB
|
||||||
|
bra .2
|
||||||
|
|
||||||
|
.5 inc ZPPtr1 advance to next arg
|
||||||
|
beq .7
|
||||||
|
inc ZPPtr1+1
|
||||||
|
lda (ZPPtr1)
|
||||||
|
bne .4
|
||||||
|
|
||||||
|
.7 jsr CSH.GetNextCharNB
|
||||||
|
bcs .9
|
||||||
|
cmp #')'
|
||||||
|
bne .9
|
||||||
|
|
||||||
|
* TO DO : Execute
|
||||||
|
|
||||||
|
jsr CSH.GetNextCharNB Skip )
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.9 lda #CSH.E.SYNTAX
|
||||||
|
sec
|
||||||
|
.90 rts
|
||||||
|
|
||||||
|
.99 lda #CSH.E.TMISMATCH
|
||||||
|
sec
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
CSH.ExpEval jsr CSH.ZeroACC
|
CSH.ExpEval jsr CSH.ZeroACC
|
||||||
dec A=0
|
dec A=0
|
||||||
>STA.G CSH.EXPBOP1
|
>STA.G CSH.EXPBOP1
|
||||||
@ -488,36 +557,6 @@ CSH.ExpEval jsr CSH.ZeroACC
|
|||||||
.80 clc
|
.80 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CSH.FnEval jsr CSH.GetCharNB
|
|
||||||
|
|
||||||
bcs .9
|
|
||||||
cmp #'('
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
lda (ZPPtr1)
|
|
||||||
>CMP.G CSH.ACCT
|
|
||||||
bne .99
|
|
||||||
|
|
||||||
|
|
||||||
* TODO : eval params
|
|
||||||
|
|
||||||
|
|
||||||
.7 jsr CSH.GetNextCharNB
|
|
||||||
bcs .9
|
|
||||||
cmp #')'
|
|
||||||
bne .9
|
|
||||||
|
|
||||||
clc
|
|
||||||
rts
|
|
||||||
|
|
||||||
.9 lda #CSH.E.SYNTAX
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
|
|
||||||
.99 lda #CSH.E.TMISMATCH
|
|
||||||
sec
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
|
||||||
CSH.SavePtr >LDYA ZPCSHBufPtr
|
CSH.SavePtr >LDYA ZPCSHBufPtr
|
||||||
>STYA.G CSH.BufPtrSave
|
>STYA.G CSH.BufPtrSave
|
||||||
rts
|
rts
|
||||||
@ -897,7 +936,25 @@ CSH.BOPS.SUB >LDA.G CSH.ACCT
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
CSH.BOPS.MUL
|
CSH.BOPS.MUL
|
||||||
CSH.BOPS.DIV
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
CSH.BOPS.DIV >LDA.G CSH.ACCT
|
||||||
|
cmp #CSH.T.FLOAT
|
||||||
|
beq .8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
clc
|
||||||
|
rts
|
||||||
|
|
||||||
|
.8 >PUSHEA.G CSH.ACC
|
||||||
|
>PUSHEA.G CSH.ARG
|
||||||
|
>LEA.G CSH.ACC
|
||||||
|
>SYSCALL FDIV
|
||||||
|
|
||||||
|
rts
|
||||||
CSH.BOPS.MOD
|
CSH.BOPS.MOD
|
||||||
CSH.BOPS.SHL
|
CSH.BOPS.SHL
|
||||||
CSH.BOPS.SHR
|
CSH.BOPS.SHR
|
||||||
@ -919,6 +976,9 @@ CSH.BOPS.LOR
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Stack
|
* Stack
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
CSH.PushACCT
|
||||||
|
|
||||||
|
|
||||||
CSH.Push pha
|
CSH.Push pha
|
||||||
>LDA.G CSH.StackPtr
|
>LDA.G CSH.StackPtr
|
||||||
inc
|
inc
|
||||||
|
@ -35,7 +35,7 @@ CS.START cld
|
|||||||
.DA CS.END-CS.START CS
|
.DA CS.END-CS.START CS
|
||||||
.DA DS.END-DS.START DS
|
.DA DS.END-DS.START DS
|
||||||
.DA #64 SS
|
.DA #64 SS
|
||||||
.DA #16 ZP
|
.DA #0 ZP (256)
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
@ -94,6 +94,7 @@ J.CSH.BOPS .DA CSH.BOPS.ADD
|
|||||||
.DA CSH.BOPS.LOR
|
.DA CSH.BOPS.LOR
|
||||||
L.CSH.FN .DA CSH.FN
|
L.CSH.FN .DA CSH.FN
|
||||||
L.CSH.KW .DA CSH.KW
|
L.CSH.KW .DA CSH.KW
|
||||||
|
L.CSH.STYPES .DA CSH.STYPES
|
||||||
J.CSH.KW .DA CSH.IF
|
J.CSH.KW .DA CSH.IF
|
||||||
.DA CSH.WHILE
|
.DA CSH.WHILE
|
||||||
.DA CSH.ELSE
|
.DA CSH.ELSE
|
||||||
@ -106,7 +107,6 @@ J.CSH.KW .DA CSH.IF
|
|||||||
.DA CSH.FLOAT
|
.DA CSH.FLOAT
|
||||||
.DA CSH.SIGNED
|
.DA CSH.SIGNED
|
||||||
.DA CSH.UNSIGNED
|
.DA CSH.UNSIGNED
|
||||||
L.CSH.STYPES .DA CSH.STYPES
|
|
||||||
J.CSH.STYPES .DA CSH.CHAR
|
J.CSH.STYPES .DA CSH.CHAR
|
||||||
.DA CSH.INT
|
.DA CSH.INT
|
||||||
.DA CSH.LONG
|
.DA CSH.LONG
|
||||||
|
Loading…
Reference in New Issue
Block a user