mirror of
https://github.com/A2osX/A2osX.git
synced 2025-02-18 00:30:40 +00:00
Kernel 0.9.1 : GUI, API & Driver......RECT & BitBLT
This commit is contained in:
parent
5240c1195e
commit
ef62a7d69f
Binary file not shown.
Binary file not shown.
@ -23,9 +23,8 @@ 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 #16 SS
|
||||||
.DA DS.END-DS.START Data Segment to Allocate
|
.DA #2 ZP
|
||||||
.DA 0
|
|
||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* Relocation Table
|
* Relocation Table
|
||||||
@ -44,7 +43,7 @@ L.MSG2 .DA MSG2
|
|||||||
.DA 0
|
.DA 0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.INIT >LDYA L.LIBTCPIP
|
CS.INIT >LDYA L.LIBTCPIP
|
||||||
>SYSCALL LoadLibYA
|
>SYSCALL LoadLib.YA
|
||||||
sta hLIBTCPIP
|
sta hLIBTCPIP
|
||||||
|
|
||||||
lda (pPs)
|
lda (pPs)
|
||||||
@ -53,7 +52,8 @@ CS.INIT >LDYA L.LIBTCPIP
|
|||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >SYSCALL GetArgC
|
CS.RUN ldy #S.PS.ARGC
|
||||||
|
lda (pPs),y
|
||||||
cmp #1
|
cmp #1
|
||||||
bne .1
|
bne .1
|
||||||
jmp CS.RUN.DUMP
|
jmp CS.RUN.DUMP
|
||||||
@ -81,8 +81,8 @@ CS.RUN.QUERY jsr Init.Timeout
|
|||||||
jsr Wait.TimeOut
|
jsr Wait.TimeOut
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
>SYSCALL GetC
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
cmp #3
|
cmp #3
|
||||||
beq .8
|
beq .8
|
||||||
@ -106,7 +106,7 @@ CS.RUN.QUERY jsr Init.Timeout
|
|||||||
.9 sec
|
.9 sec
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GetC.ACHE
|
CS.RUN.DUMP >LIBCALL hLIBTCPIP,LIBTCPIP.ARP.GETCACHE
|
||||||
>STYA ZPPTR1
|
>STYA ZPPTR1
|
||||||
|
|
||||||
>LDYA L.MSG0
|
>LDYA L.MSG0
|
||||||
@ -166,7 +166,7 @@ CS.DOEVENT lda (pEvent)
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.QUIT lda hLIBTCPIP
|
CS.QUIT lda hLIBTCPIP
|
||||||
>SYSCALL UnloadLibA
|
>SYSCALL UnloadLib.A
|
||||||
clc
|
clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -136,7 +136,7 @@ CS.RUN >LDYA L.SEQ.DETECT
|
|||||||
>SYSCALL PrintF.YA Send Query for term W & H
|
>SYSCALL PrintF.YA Send Query for term W & H
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
@ -153,7 +153,7 @@ CS.RUN >LDYA L.SEQ.DETECT
|
|||||||
lda (pData),y
|
lda (pData),y
|
||||||
bne .99
|
bne .99
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
|
|
||||||
bcs .2
|
bcs .2
|
||||||
|
@ -84,7 +84,7 @@ CS.RUN.IPOK >SYSCALL GetArgC
|
|||||||
>PUSHYA
|
>PUSHYA
|
||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||||
bcc CS.RUN.HOSTOK
|
bcc CS.RUN.HOSTOK
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ CS.RUN.SEND.ECHO
|
|||||||
jsr Init.Timeout
|
jsr Init.Timeout
|
||||||
|
|
||||||
CS.RUN.WAIT.REPLY
|
CS.RUN.WAIT.REPLY
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
>SYSCALL GetC
|
>SYSCALL GetC
|
||||||
bcs .1
|
bcs .1
|
||||||
cmp #3 Ctrl-C
|
cmp #3 Ctrl-C
|
||||||
|
@ -88,7 +88,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
>LIBCALL hLIBTCPIP,LIBTCPIP.HST.GETBYNAME
|
||||||
bcc .2
|
bcc .2
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
@ -122,7 +122,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.Write
|
||||||
bcc .4
|
bcc .4
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .3
|
bcc .3
|
||||||
.91 bra .99
|
.91 bra .99
|
||||||
@ -134,7 +134,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadA
|
>LIBCALL hLIBTCPIP,LIBTCPIP.SKT.ReadA
|
||||||
bcc .6
|
bcc .6
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .5
|
bcc .5
|
||||||
bra .99
|
bra .99
|
||||||
|
@ -344,7 +344,7 @@ CS.RUN.DIR jsr CS.RUN.DIR.MSG
|
|||||||
jsr CS.RUN.OVERWRITE.MSG
|
jsr CS.RUN.OVERWRITE.MSG
|
||||||
bcs CS.RUN.DIR.RTS
|
bcs CS.RUN.DIR.RTS
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
cmp #3
|
cmp #3
|
||||||
@ -408,7 +408,7 @@ CS.RUN.FILE jsr CS.RUN.FILE.MSG
|
|||||||
jsr CS.RUN.OVERWRITE.MSG
|
jsr CS.RUN.OVERWRITE.MSG
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
cmp #3
|
cmp #3
|
||||||
|
@ -42,7 +42,67 @@ LBUF.SetBounds2YA
|
|||||||
LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
LBUF.DrawAtY lda BASEL,y setup line Base Ptr
|
||||||
sta ZPBasePtr
|
sta ZPBasePtr
|
||||||
lda BASEH,y
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.OP
|
||||||
|
bit #S.CB.OP.RESTORE
|
||||||
|
bne .8
|
||||||
|
bit #S.CB.OP.SAVE
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
|
||||||
|
lda CB.Cache+S.CB.OP
|
||||||
|
|
||||||
|
.1 and #$f
|
||||||
|
tax
|
||||||
|
jmp (J.LBUF.DrawAtY,x)
|
||||||
|
|
||||||
|
.8 rts
|
||||||
|
*--------------------------------------
|
||||||
|
LBUF.DrawAtY.XOR
|
||||||
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
|
ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y Get C1
|
||||||
|
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
|
inx
|
||||||
|
cpx LBUF.C2
|
||||||
|
beq .2 C1=C2, go setup C2
|
||||||
|
bcs .8 C1+1 > C2, we are done...
|
||||||
|
|
||||||
|
.1 ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
|
inx
|
||||||
|
cpx LBUF.C2
|
||||||
|
bne .1
|
||||||
|
|
||||||
|
.2 ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y Get C2
|
||||||
|
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LBUF.DrawAtY.SET
|
LBUF.DrawAtY.SET
|
||||||
ldx LBUF.C1 x C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
@ -90,40 +150,94 @@ LBUF.DrawAtY.SET
|
|||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
LBUF.DrawAtY.ORA
|
LBUF.DrawAtY.ORA
|
||||||
ldy LBUF.C1 y C1->C2
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
.1 ldx COL.BANK,y
|
ldy COL.BANK,x
|
||||||
sta $C000,x
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
lda (ZPBasePtr),y Get C1
|
||||||
and LBUF.MASK,y
|
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
ora LBUF.DATA,y
|
inx
|
||||||
|
cpx LBUF.C2
|
||||||
|
beq .2 C1=C2, go setup C2
|
||||||
|
bcs .8 C1+1 > C2, we are done...
|
||||||
|
|
||||||
|
.1 ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
sta (ZPBasePtr),y
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
cpy LBUF.C2
|
inx
|
||||||
iny
|
cpx LBUF.C2
|
||||||
bcc .1
|
bne .1
|
||||||
|
|
||||||
rts
|
.2 ldy COL.BANK,x
|
||||||
*--------------------------------------
|
sta $C000,y
|
||||||
LBUF.DrawAtY.XOR
|
ldy COL.OFS,x
|
||||||
ldy LBUF.C1 y C1->C2
|
|
||||||
|
|
||||||
.1 ldx COL.BANK,y
|
lda (ZPBasePtr),y Get C2
|
||||||
sta $C000,x
|
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
.8 rts
|
||||||
and LBUF.MASK,y
|
*--------------------------------------
|
||||||
|
LBUF.DrawAtY.AND
|
||||||
|
ldx LBUF.C1 x C1->C2
|
||||||
|
|
||||||
eor LBUF.DATA,y
|
ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y Get C1
|
||||||
|
and LBUF.C1.MASK clear ONLY bits starting at X1 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C1.DATA set ONLY bits starting at X1 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
|
inx
|
||||||
|
cpx LBUF.C2
|
||||||
|
beq .2 C1=C2, go setup C2
|
||||||
|
bcs .8 C1+1 > C2, we are done...
|
||||||
|
|
||||||
|
.1 ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda LBUF.DATA,x set all bytes between C1+1 & C2-1
|
||||||
sta (ZPBasePtr),y
|
sta (ZPBasePtr),y
|
||||||
|
|
||||||
cpy LBUF.C2
|
inx
|
||||||
iny
|
cpx LBUF.C2
|
||||||
bcs .1
|
bne .1
|
||||||
|
|
||||||
rts
|
.2 ldy COL.BANK,x
|
||||||
|
sta $C000,y
|
||||||
|
ldy COL.OFS,x
|
||||||
|
|
||||||
|
lda (ZPBasePtr),y Get C2
|
||||||
|
and LBUF.C2.MASK clear ONLY bits ending at X2 mod 7
|
||||||
|
sta GBYTE
|
||||||
|
lda LBUF.DATA,x get DATA bits
|
||||||
|
and LBUF.C2.DATA set ONLY bits ending at X2 mod 7
|
||||||
|
ora GBYTE
|
||||||
|
sta (ZPBasePtr),y update screen
|
||||||
|
|
||||||
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LBUF
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LBUF
|
||||||
|
@ -5,7 +5,7 @@ INC 1
|
|||||||
AUTO 6
|
AUTO 6
|
||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* HLINE X1,X2 at Y1
|
* HLINE X1,X2 at Y1 (XOR,SET,ORA)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
HLINE lda CB.Cache+S.CB.MODE
|
HLINE lda CB.Cache+S.CB.MODE
|
||||||
|
|
||||||
@ -80,70 +80,79 @@ HLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
|
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* VLINE Y1,Y2 at X1
|
* VLINE Y1,Y2 at X1 (XOR,SET,ORA)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
VLINE lda CB.Cache+S.CB.OP
|
VLINE lda CB.Cache+S.CB.MODE
|
||||||
beq VLINE.OP0
|
cmp #S.CB.MODE.MONO
|
||||||
|
bne VLINE.C16
|
||||||
|
|
||||||
VLINE.XOR jsr VLINE.DIVMOD7
|
VLINE.MONO >LDYA CB.Cache+S.CB.X1
|
||||||
|
|
||||||
|
jsr DIVMOD7YA
|
||||||
|
tay
|
||||||
|
lda COL.OFS,y
|
||||||
|
sta GBYTE Save COL (DIV)
|
||||||
|
|
||||||
ldy XMOD7
|
lda COL.BANK,y
|
||||||
lda Mono.Masks,y
|
tay
|
||||||
sta .2+1
|
sta $C000,y Select proper BANK
|
||||||
|
|
||||||
ldy XCOL7
|
lda CB.Cache+S.CB.OP
|
||||||
|
* cmp #S.CB.OP.XOR
|
||||||
|
beq VLINE.MONO.XOR
|
||||||
|
|
||||||
ldx CB.Cache+S.CB.Y1
|
lda CB.Cache+S.CB.COLOR
|
||||||
|
bne VLINE.MONO.WHITE
|
||||||
|
|
||||||
.1 lda BASEL,x
|
VLINE.MONO.BLACK
|
||||||
|
ldy CB.Cache+S.CB.Y1
|
||||||
|
clc
|
||||||
|
|
||||||
|
.1 lda BASEL,y
|
||||||
|
adc GBYTE
|
||||||
sta ZPBasePtr
|
sta ZPBasePtr
|
||||||
lda BASEH,x
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
lda (ZPBasePtr),y XOR
|
lda (ZPBasePtr)
|
||||||
.2 eor #$ff
|
and Mono.NMasks,x
|
||||||
sta (ZPBasePtr),y
|
sta (ZPBasePtr)
|
||||||
|
cpy CB.Cache+S.CB.Y2
|
||||||
inx
|
iny
|
||||||
cpx CB.Cache+S.CB.Y2
|
|
||||||
bcc .1
|
bcc .1
|
||||||
beq .1
|
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
VLINE.OP0 lda CB.Cache+S.CB.MODE
|
|
||||||
dec
|
|
||||||
bne VLINE.C16
|
|
||||||
|
|
||||||
VLINE.MONO jsr VLINE.DIVMOD7
|
|
||||||
|
|
||||||
ldy XMOD7
|
VLINE.MONO.WHITE
|
||||||
lda Mono.NMasks,y includes And $7F for mono
|
|
||||||
sta .3+1
|
.1 lda BASEL,y
|
||||||
|
adc GBYTE
|
||||||
lda CB.Cache+S.CB.COLOR get color
|
|
||||||
beq .1
|
|
||||||
lda Mono.Masks,y
|
|
||||||
.1 sta .4+1
|
|
||||||
|
|
||||||
ldy XCOL7
|
|
||||||
|
|
||||||
ldx CB.Cache+S.CB.Y1
|
|
||||||
|
|
||||||
.2 lda BASEL,x
|
|
||||||
sta ZPBasePtr
|
sta ZPBasePtr
|
||||||
lda BASEH,x
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
lda (ZPBasePtr),y
|
lda (ZPBasePtr)
|
||||||
.3 and #$ff
|
ora Mono.Masks,x
|
||||||
.4 ora #$ff
|
sta (ZPBasePtr)
|
||||||
sta (ZPBasePtr),y
|
cpy CB.Cache+S.CB.Y2
|
||||||
|
iny
|
||||||
|
bcc .1
|
||||||
|
|
||||||
inx
|
rts
|
||||||
cpx CB.Cache+S.CB.Y2
|
VLINE.MONO.XOR
|
||||||
bcc .2
|
|
||||||
beq .2
|
.1 lda BASEL,y
|
||||||
|
adc GBYTE
|
||||||
|
sta ZPBasePtr
|
||||||
|
lda BASEH,y
|
||||||
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
|
lda (ZPBasePtr)
|
||||||
|
eor Mono.Masks,x
|
||||||
|
sta (ZPBasePtr)
|
||||||
|
cpy CB.Cache+S.CB.Y2
|
||||||
|
iny
|
||||||
|
bcc .1
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
@ -177,6 +186,7 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
|
|
||||||
lda Color.Masks,x bits in 1st byte to light?
|
lda Color.Masks,x bits in 1st byte to light?
|
||||||
beq .10
|
beq .10
|
||||||
|
|
||||||
and Color.Pixels,y apply color
|
and Color.Pixels,y apply color
|
||||||
sta GBYTE
|
sta GBYTE
|
||||||
|
|
||||||
@ -192,6 +202,7 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
|
|
||||||
lda Color.Masks,x
|
lda Color.Masks,x
|
||||||
beq .11
|
beq .11
|
||||||
|
|
||||||
and Color.Pixels,y apply color
|
and Color.Pixels,y apply color
|
||||||
sta GBYTE
|
sta GBYTE
|
||||||
|
|
||||||
@ -208,6 +219,7 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
|
|
||||||
lda Color.Masks,x
|
lda Color.Masks,x
|
||||||
beq .12
|
beq .12
|
||||||
|
|
||||||
and Color.Pixels,y apply color
|
and Color.Pixels,y apply color
|
||||||
sta GBYTE
|
sta GBYTE
|
||||||
|
|
||||||
@ -223,6 +235,7 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
|
|
||||||
lda Color.Masks,x
|
lda Color.Masks,x
|
||||||
beq .13
|
beq .13
|
||||||
|
|
||||||
and Color.Pixels,y apply color
|
and Color.Pixels,y apply color
|
||||||
sta GBYTE
|
sta GBYTE
|
||||||
|
|
||||||
@ -234,37 +247,6 @@ VLINE.C16 lda CB.Cache+S.CB.X1
|
|||||||
sta (ZPBasePtr)
|
sta (ZPBasePtr)
|
||||||
|
|
||||||
.13 rts
|
.13 rts
|
||||||
*--------------------------------------
|
|
||||||
VLINE.DIVMOD7 ldx CB.Cache+S.CB.X1+1 Get X HI byte....
|
|
||||||
|
|
||||||
lda DIV7.lo,x
|
|
||||||
sta .2+1
|
|
||||||
lda DIV7.hi,x
|
|
||||||
sta .2+2
|
|
||||||
|
|
||||||
lda MOD7.lo,x
|
|
||||||
sta .3+1
|
|
||||||
lda MOD7.hi,x
|
|
||||||
sta .3+2
|
|
||||||
|
|
||||||
lda DIV7.BASE,x
|
|
||||||
ldx CB.Cache+S.CB.X1 Get X LO byte....
|
|
||||||
|
|
||||||
clc
|
|
||||||
|
|
||||||
.2 adc $ffff,x DIV7 : x = X.LO, a = X DIV 7
|
|
||||||
sta XDIV7 save X DIV 7
|
|
||||||
|
|
||||||
tay
|
|
||||||
lsr
|
|
||||||
sta XCOL7
|
|
||||||
ldx COL.BANK,y
|
|
||||||
sta $C000,x
|
|
||||||
|
|
||||||
.3 lda $ffff,x MOD7 : x = X.LO, y = X MOD 7
|
|
||||||
sta XMOD7
|
|
||||||
rts
|
|
||||||
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LINE
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.LINE
|
||||||
|
@ -6,8 +6,7 @@ AUTO 6
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* SETPIXEL
|
* SETPIXEL
|
||||||
* In : YA = Ptr to CtrlBlk :
|
* 1 : OP (XOR,SET,ORA)
|
||||||
* 1 : OP (XOR only)
|
|
||||||
* 2 : Mode
|
* 2 : Mode
|
||||||
* 3 : Color
|
* 3 : Color
|
||||||
* 4 : SrcX1
|
* 4 : SrcX1
|
||||||
@ -17,60 +16,51 @@ SETPIXEL lda CB.Cache+S.CB.MODE
|
|||||||
bit #S.CB.MODE.C16
|
bit #S.CB.MODE.C16
|
||||||
bne SETPIXEL.C16
|
bne SETPIXEL.C16
|
||||||
|
|
||||||
SETPIXEL.MONO ldx CB.Cache+S.CB.X1+1 Get X Hi byte....
|
SETPIXEL.MONO >LDYA CB.Cache+S.CB.X1
|
||||||
|
|
||||||
lda DIV7.lo,x
|
jsr DIVMOD7YA
|
||||||
sta .1+1
|
tay
|
||||||
lda DIV7.hi,x
|
lda COL.OFS,y
|
||||||
sta .1+2
|
phy
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
pha save X DIV 7
|
|
||||||
lsr
|
|
||||||
ldy CB.Cache+S.CB.Y1
|
ldy CB.Cache+S.CB.Y1
|
||||||
clc
|
clc
|
||||||
adc BASEL,y setup line Base Ptr (A=Col)
|
adc BASEL,y
|
||||||
sta ZPBasePtr
|
sta ZPBasePtr
|
||||||
lda BASEH,y
|
lda BASEH,y
|
||||||
sta ZPBasePtr+1
|
sta ZPBasePtr+1
|
||||||
|
|
||||||
ply
|
ply
|
||||||
lda COL.BANK,y
|
lda COL.BANK,y
|
||||||
tay
|
tay
|
||||||
sta $c000,y
|
sta $C000,y Select proper BANK
|
||||||
|
|
||||||
.2 ldy $ffff,x MOD7 : x = X.LO, y = X MOD 7
|
|
||||||
|
|
||||||
lda CB.Cache+S.CB.OP
|
lda CB.Cache+S.CB.OP
|
||||||
|
* cmp #S.CB.OP.XOR
|
||||||
|
beq SETPIXEL.MONO.XOR
|
||||||
|
|
||||||
bne .5
|
lda CB.Cache+S.CB.COLOR
|
||||||
|
bne SETPIXEL.MONO.WHITE
|
||||||
|
|
||||||
lda (ZPBasePtr) XOR
|
SETPIXEL.MONO.BLACK
|
||||||
eor Mono.Masks,y y = mod 7
|
lda (ZPBasePtr)
|
||||||
|
and Mono.NMasks,x
|
||||||
|
sta (ZPBasePtr)
|
||||||
|
|
||||||
|
rts
|
||||||
|
|
||||||
|
SETPIXEL.MONO.WHITE
|
||||||
|
lda (ZPBasePtr)
|
||||||
|
ora Mono.Masks,x
|
||||||
sta (ZPBasePtr)
|
sta (ZPBasePtr)
|
||||||
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
.5 lda (ZPBasePtr)
|
SETPIXEL.MONO.XOR
|
||||||
ldx CB.Cache+S.CB.COLOR get color
|
lda (ZPBasePtr)
|
||||||
bne .6
|
eor Mono.Masks,x
|
||||||
|
|
||||||
and Mono.NMasks,y includes And $7F for mono
|
|
||||||
sta (ZPBasePtr)
|
sta (ZPBasePtr)
|
||||||
rts
|
|
||||||
|
|
||||||
.6 and #$7F switch back this byte to mono
|
|
||||||
ora Mono.Masks,y
|
|
||||||
sta (ZPBasePtr)
|
|
||||||
rts
|
rts
|
||||||
|
|
||||||
SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
SETPIXEL.C16 lda CB.Cache+S.CB.X1
|
||||||
|
@ -6,6 +6,7 @@ AUTO 6
|
|||||||
.LIST OFF
|
.LIST OFF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* FILLRECT
|
* FILLRECT
|
||||||
|
* 1 : OP (XOR,SET,ORA)
|
||||||
* 2 : Mode
|
* 2 : Mode
|
||||||
* 3 : Color
|
* 3 : Color
|
||||||
* 4 : SrcX1
|
* 4 : SrcX1
|
||||||
@ -28,6 +29,37 @@ FILLRECT jsr HLINE
|
|||||||
|
|
||||||
.8 rts
|
.8 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
* 4 : SrcX1
|
||||||
|
* 6 : SrcY1
|
||||||
|
* 8 : SrcX2
|
||||||
|
* 10 : SrcY2
|
||||||
|
* 18 : S.CB.DstPtr = Size in Bytes to save this RECT
|
||||||
|
*--------------------------------------
|
||||||
|
GETRECTBUFSIZE >LDYA CB.Cache+S.CB.X1
|
||||||
|
jsr DIVMOD7YA
|
||||||
|
|
||||||
|
sta GBYTE
|
||||||
|
|
||||||
|
>LDYA CB.Cache+S.CB.X2
|
||||||
|
jsr DIVMOD7YA
|
||||||
|
|
||||||
|
inc COL2 + 1
|
||||||
|
sec
|
||||||
|
sbc GBYTE (COL2+1)-COL1
|
||||||
|
tax
|
||||||
|
|
||||||
|
>LDYA CB.Cache+S.CB.Y1
|
||||||
|
jsr YAMultX
|
||||||
|
|
||||||
|
phy
|
||||||
|
|
||||||
|
ldy #S.CB.DstPtr+1
|
||||||
|
sta (ZPCmdPtr),y
|
||||||
|
pla
|
||||||
|
dey
|
||||||
|
sta (ZPCmdPtr),y
|
||||||
|
rts
|
||||||
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
SAVE /A2OSX.SRC/DRV/DHGR.DRV.S.BLT
|
||||||
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
LOAD /A2OSX.SRC/DRV/DHGR.DRV.S
|
||||||
|
@ -18,6 +18,7 @@ ZPBasePtr .EQ ZPDRV+2
|
|||||||
ZPPalettePtr .EQ ZPDRV+4
|
ZPPalettePtr .EQ ZPDRV+4
|
||||||
ZPBMDataPtr .EQ ZPDRV+6
|
ZPBMDataPtr .EQ ZPDRV+6
|
||||||
ZPBMMaskPtr .EQ ZPDRV+8
|
ZPBMMaskPtr .EQ ZPDRV+8
|
||||||
|
ZPBMSavePtr .EQ ZPDRV+10
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* File Header (16 Bytes)
|
* File Header (16 Bytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -74,7 +75,12 @@ J.Cmds .DA SETPIXEL
|
|||||||
.DA VLINE
|
.DA VLINE
|
||||||
.DA FILLRECT
|
.DA FILLRECT
|
||||||
.DA BITBLT
|
.DA BITBLT
|
||||||
|
.DA GETRECTBUFSIZE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
J.LBUF.DrawAtY .DA LBUF.DrawAtY.XOR
|
||||||
|
.DA LBUF.DrawAtY.SET
|
||||||
|
.DA LBUF.DrawAtY.ORA
|
||||||
|
.DA LBUF.DrawAtY.AND
|
||||||
L.DSTAT .DA DSTAT
|
L.DSTAT .DA DSTAT
|
||||||
L.DIV7.0 .DA DIV7.0
|
L.DIV7.0 .DA DIV7.0
|
||||||
.DA DIV7.256
|
.DA DIV7.256
|
||||||
@ -168,24 +174,23 @@ WRITE >STYA ZPCmdPtr
|
|||||||
* X = MOD
|
* X = MOD
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
DIVMOD7YA dec
|
DIVMOD7YA dec
|
||||||
beq DIVMOD7Y1
|
bmi .2
|
||||||
bpl DIVMOD7Y2
|
|
||||||
|
|
||||||
DIVMOD7Y0 lda DIV7.0,y
|
|
||||||
ldx MOD7.0,y
|
|
||||||
rts
|
|
||||||
|
|
||||||
DIVMOD7Y1 lda DIV7.256,y
|
|
||||||
clc
|
clc
|
||||||
|
beq .1
|
||||||
|
|
||||||
|
lda DIV7.512,y
|
||||||
|
adc #$49
|
||||||
|
ldx MOD7.512,y
|
||||||
|
rts
|
||||||
|
|
||||||
|
.1 lda DIV7.256,y
|
||||||
adc #$24
|
adc #$24
|
||||||
ldx MOD7.256,y
|
ldx MOD7.256,y
|
||||||
rts
|
rts
|
||||||
|
|
||||||
DIVMOD7Y2 lda DIV7.512,y
|
.2 lda DIV7.0,y
|
||||||
clc
|
ldx MOD7.0,y
|
||||||
adc #$49
|
rts
|
||||||
ldx MOD7.512,y
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* IN:
|
* IN:
|
||||||
* Y,A = num1 (16)
|
* Y,A = num1 (16)
|
||||||
@ -234,7 +239,8 @@ CB.CmdLen .DA S.CB.Y1+1 SETPIXEL
|
|||||||
.DA S.CB.X2+1 HLINE
|
.DA S.CB.X2+1 HLINE
|
||||||
.DA S.CB.Y2+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
|
||||||
|
.DA S.CB.DstPtr+1 GETRECTBUFSIZE
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CB.Cache .BS S.CB
|
CB.Cache .BS S.CB
|
||||||
BM.Cache .BS S.BM
|
BM.Cache .BS S.BM
|
||||||
@ -253,9 +259,6 @@ LBUF.C2.DATA .BS 1
|
|||||||
LBUF.MASK .BS 80
|
LBUF.MASK .BS 80
|
||||||
LBUF.DATA .BS 80
|
LBUF.DATA .BS 80
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
XDIV7 .BS 1
|
|
||||||
XMOD7 .BS 1
|
|
||||||
XCOL7 .BS 1
|
|
||||||
GBYTE .BS 1
|
GBYTE .BS 1
|
||||||
GWORD .BS 2
|
GWORD .BS 2
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -32,6 +32,7 @@ A2osX.ROMCALL .EQ $BD09
|
|||||||
A2osX.BADCALL .EQ $BD0C
|
A2osX.BADCALL .EQ $BD0C
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
pDevJmp .EQ $BD10
|
pDevJmp .EQ $BD10
|
||||||
|
A2osx.SLEEP .EQ $BD13
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* $BEE0->$BEEF : Public Variables
|
* $BEE0->$BEEF : Public Variables
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -214,7 +215,7 @@ SYS.GetMem0.YA .EQ $EA
|
|||||||
SYS.NewStr.YA .EQ $EC
|
SYS.NewStr.YA .EQ $EC
|
||||||
SYS.GetMemStat.YA .EQ $EE
|
SYS.GetMemStat.YA .EQ $EE
|
||||||
|
|
||||||
SYS.Sleep .EQ $F0
|
* .EQ $F0
|
||||||
* .EQ $F2
|
* .EQ $F2
|
||||||
* .EQ $F4
|
* .EQ $F4
|
||||||
* .EQ $F6
|
* .EQ $F6
|
||||||
|
@ -97,7 +97,13 @@ K.MLI.PATH .EQ $03B0 64+1 -> $03F0
|
|||||||
* Main/Aux $800 -> $BFF : System Screen
|
* Main/Aux $800 -> $BFF : System Screen
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
PS.Table.PID .EQ $0C00 K.PS.MAX
|
PS.Table.PID .EQ $0C00 K.PS.MAX
|
||||||
PS.Table.hMem .EQ $0C00+K.PS.MAX
|
PS.Table.hMem .EQ $0C20 K.PS.MAX
|
||||||
|
*--------------------------------------
|
||||||
|
Evt.Table .EQ $0C40 K.EVT.MAX*S.EVT.SIZE=8*8=64b
|
||||||
|
*--------------------------------------
|
||||||
|
Flt.Table .EQ $0C80 K.FLT.MAX*S.FLT.SIZE=4*32=128b
|
||||||
|
*--------------------------------------
|
||||||
|
K.IOBuf256 .EQ $0D00 Main
|
||||||
K.Buf256 .EQ $0E00 Main
|
K.Buf256 .EQ $0E00 Main
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
K.STACKTOP .EQ $0F20 down to $0f00
|
K.STACKTOP .EQ $0F20 down to $0f00
|
||||||
@ -107,11 +113,9 @@ K.STACKTOP .EQ $0F20 down to $0f00
|
|||||||
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F20
|
Z80STACK .EQ $0FFF (0FFFFh) Down to $0F20
|
||||||
Z80JMP .EQ $1000 (00000h) Up To $10FF
|
Z80JMP .EQ $1000 (00000h) Up To $10FF
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Flt.Table .EQ $1100 K.FLT.MAX*S.FLT.SIZE=8*32=128b
|
* free $1100->15FF = $500
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Evt.Table .EQ $1180 K.EVT.MAX*S.EVT.SIZE=16*8=128b
|
Dev.Table .EQ $1600 K.DEV.MAX*S.DEV=32*16=512b
|
||||||
*--------------------------------------
|
|
||||||
Dev.Table .EQ $1200 K.DEV.MAX*S.DEV.SIZE=32*16=512b
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes)
|
* MemMgr : $1800->$1FFF MAIN/AUX (2 kBytes)
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -13,13 +13,15 @@ S.CB.CMD.HLINE .EQ 4
|
|||||||
S.CB.CMD.VLINE .EQ 6
|
S.CB.CMD.VLINE .EQ 6
|
||||||
S.CB.CMD.FILLRECT .EQ 8
|
S.CB.CMD.FILLRECT .EQ 8
|
||||||
S.CB.CMD.BITBLT .EQ 10
|
S.CB.CMD.BITBLT .EQ 10
|
||||||
S.CB.CMD.DRAWLINE .EQ 12
|
S.CB.CMD.GETRECTBUFSIZE .EQ 12
|
||||||
|
S.CB.CMD.DRAWLINE .EQ 14
|
||||||
S.CB.OP .EQ 1
|
S.CB.OP .EQ 1
|
||||||
S.CB.OP.XOR .EQ %00000000 screen EOR bitmap -> Screen
|
S.CB.OP.XOR .EQ %00000000 screen EOR bitmap -> Screen
|
||||||
S.CB.OP.SET .EQ %00000001 replace screen with bitmap
|
S.CB.OP.SET .EQ %00000010 replace screen with bitmap
|
||||||
S.CB.OP.ORA .EQ %00000010 combine screen & bitmap -> Screen
|
S.CB.OP.ORA .EQ %00000100 combine screen & bitmap -> Screen
|
||||||
|
S.CB.OP.AND .EQ %00000110 Apply BitMap mask before painting
|
||||||
S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting
|
S.CB.OP.SAVE .EQ %00010000 Save Screen to DstPtr before painting
|
||||||
S.CB.OP.AND .EQ %00100000 Apply BitMap mask before painting
|
S.CB.OP.RESTORE .EQ %00100000 Restore Screen From DstPtr before painting
|
||||||
S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR
|
S.CB.OP.COLOR .EQ %01000000 Assume BitMap is COLOR
|
||||||
S.CB.MODE .EQ 2
|
S.CB.MODE .EQ 2
|
||||||
S.CB.MODE.MONO .EQ %00000001 b/w (1 bit/pixel)
|
S.CB.MODE.MONO .EQ %00000001 b/w (1 bit/pixel)
|
||||||
@ -55,6 +57,7 @@ CUR.T.WAIT .EQ 4
|
|||||||
CUR.T.RESIZEX .EQ 6
|
CUR.T.RESIZEX .EQ 6
|
||||||
CUR.T.RESIZEY .EQ 8
|
CUR.T.RESIZEY .EQ 8
|
||||||
CUR.T.RESIZEXY .EQ 10
|
CUR.T.RESIZEXY .EQ 10
|
||||||
|
CUT.T.TEXT .EQ 12
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
S.CUR.HotPointX .EQ 0
|
S.CUR.HotPointX .EQ 0
|
||||||
S.CUR.HotPointY .EQ 1
|
S.CUR.HotPointY .EQ 1
|
||||||
@ -81,7 +84,6 @@ LIBGUI.SetCursor.A .EQ 10
|
|||||||
LIBGUI.SetCursorPos .EQ 12
|
LIBGUI.SetCursorPos .EQ 12
|
||||||
LIBGUI.HideCursor .EQ 14
|
LIBGUI.HideCursor .EQ 14
|
||||||
LIBGUI.ShowCursor .EQ 16
|
LIBGUI.ShowCursor .EQ 16
|
||||||
LIBGUI.DrawLine .EQ 18
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
MAN
|
MAN
|
||||||
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
SAVE /A2OSX.BUILD/INC/LIBGUI.I
|
||||||
|
@ -31,12 +31,12 @@ LIBTCPIP.PULSEA .EQ 10
|
|||||||
LIBTCPIP.ARP.Clear .EQ 12
|
LIBTCPIP.ARP.Clear .EQ 12
|
||||||
LIBTCPIP.ARP.Query .EQ 14
|
LIBTCPIP.ARP.Query .EQ 14
|
||||||
LIBTCPIP.ARP.Add .EQ 16
|
LIBTCPIP.ARP.Add .EQ 16
|
||||||
LIBTCPIP.ARP.GetC.Ache .EQ 18
|
LIBTCPIP.ARP.GetCache .EQ 18
|
||||||
|
|
||||||
LIBTCPIP.DNS.Clear .EQ 20
|
LIBTCPIP.DNS.Clear .EQ 20
|
||||||
LIBTCPIP.DNS.Query .EQ 22
|
LIBTCPIP.DNS.Query .EQ 22
|
||||||
LIBTCPIP.DNS.Add .EQ 24
|
LIBTCPIP.DNS.Add .EQ 24
|
||||||
LIBTCPIP.DNS.GetC.Ache .EQ 26
|
LIBTCPIP.DNS.GetCache .EQ 26
|
||||||
|
|
||||||
LIBTCPIP.HST.GetByName .EQ 28
|
LIBTCPIP.HST.GetByName .EQ 28
|
||||||
LIBTCPIP.HST.GetByAddr .EQ 30
|
LIBTCPIP.HST.GetByAddr .EQ 30
|
||||||
|
@ -19,6 +19,10 @@ AUTO 6
|
|||||||
.EM
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* SYSCALLs Macros
|
* SYSCALLs Macros
|
||||||
|
*--------------------------------------
|
||||||
|
.MA SLEEP
|
||||||
|
jsr A2osX.SLEEP
|
||||||
|
.EM
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.MA SYSCALL
|
.MA SYSCALL
|
||||||
ldx #SYS.]1
|
ldx #SYS.]1
|
||||||
|
@ -51,8 +51,8 @@ CS.START cld
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.1 .DA LIB.LOAD
|
.1 .DA LIB.LOAD
|
||||||
.DA LIB.UNLOAD
|
.DA LIB.UNLOAD
|
||||||
.DA InitGUI.A
|
J.Cmds .DA InitGUI.A
|
||||||
J.Cmds .DA CloseGUI J.Cmds-12 !!!
|
.DA CloseGUI J.Cmds-12 !!!
|
||||||
.DA Draw
|
.DA Draw
|
||||||
.DA SetCursor.A
|
.DA SetCursor.A
|
||||||
.DA SetCursorPos
|
.DA SetCursorPos
|
||||||
|
@ -131,7 +131,7 @@ CS.RUN.SDISC ldy #hSocket
|
|||||||
.1 lda #S.IPCFG.STATUS.SDISC
|
.1 lda #S.IPCFG.STATUS.SDISC
|
||||||
sta IPCFG
|
sta IPCFG
|
||||||
|
|
||||||
CS.RUN.ROFFER >SYSCALL Sleep
|
CS.RUN.ROFFER >SLEEP
|
||||||
|
|
||||||
jsr CS.RUN.SKT.RCVD
|
jsr CS.RUN.SKT.RCVD
|
||||||
bcc .1
|
bcc .1
|
||||||
@ -167,7 +167,7 @@ CS.RUN.SREQ ldx #3
|
|||||||
lda #S.IPCFG.STATUS.SREQ
|
lda #S.IPCFG.STATUS.SREQ
|
||||||
sta IPCFG
|
sta IPCFG
|
||||||
|
|
||||||
CS.RUN.RACK >SYSCALL Sleep
|
CS.RUN.RACK >SLEEP
|
||||||
|
|
||||||
jsr CS.RUN.SKT.RCVD
|
jsr CS.RUN.SKT.RCVD
|
||||||
bcc .1
|
bcc .1
|
||||||
|
@ -83,13 +83,13 @@ CS.INIT ldy #S.PS.ARGC
|
|||||||
sec
|
sec
|
||||||
.9 rts
|
.9 rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN >SYSCALL Sleep
|
CS.RUN >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs CS.RUN
|
bcs CS.RUN
|
||||||
|
|
||||||
.11
|
.11
|
||||||
* jsr PRINTA2
|
* jsr PRINTA2
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
|
|
||||||
bcc .11
|
bcc .11
|
||||||
@ -112,7 +112,7 @@ CS.RUN >SYSCALL Sleep
|
|||||||
|
|
||||||
CS.RUN.LOOP
|
CS.RUN.LOOP
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .4
|
bcs .4
|
||||||
|
|
||||||
@ -140,14 +140,14 @@ CS.RUN.LOOP
|
|||||||
.8 clc
|
.8 clc
|
||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.IACMODE >SYSCALL Sleep Wait for IAC VERB (or SB)
|
CS.RUN.IACMODE >SLEEP Wait for IAC VERB (or SB)
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs CS.RUN.IACMODE
|
bcs CS.RUN.IACMODE
|
||||||
|
|
||||||
>STA.G IAC.VERB
|
>STA.G IAC.VERB
|
||||||
* jsr PRINTA
|
* jsr PRINTA
|
||||||
|
|
||||||
.1 >SYSCALL Sleep Wait for IAC OPT
|
.1 >SLEEP Wait for IAC OPT
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
@ -164,7 +164,7 @@ CS.RUN.IACVERB
|
|||||||
jmp CS.RUN.LOOP
|
jmp CS.RUN.LOOP
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CS.RUN.IACSB
|
CS.RUN.IACSB
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1
|
bcs .1
|
||||||
|
|
||||||
@ -175,7 +175,7 @@ CS.RUN.IACSB
|
|||||||
lda #0
|
lda #0
|
||||||
sta (pData) reset IAC.SB.DATA
|
sta (pData) reset IAC.SB.DATA
|
||||||
|
|
||||||
.2 >SYSCALL Sleep
|
.2 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .2
|
bcs .2
|
||||||
|
|
||||||
@ -198,7 +198,7 @@ CS.RUN.IACSB
|
|||||||
sta (pData),y
|
sta (pData),y
|
||||||
bra .2
|
bra .2
|
||||||
|
|
||||||
.4 >SYSCALL Sleep
|
.4 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .4
|
bcs .4
|
||||||
|
|
||||||
|
@ -179,6 +179,9 @@ CS.QUIT clc
|
|||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
Destop.Paint >PUSHW L.Rect.CB
|
Destop.Paint >PUSHW L.Rect.CB
|
||||||
>LIBCALL hLIBGUI,LIBGUI.Draw
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
|
|
||||||
|
>PUSHW L.DrawLines.CB
|
||||||
|
>LIBCALL hLIBGUI,LIBGUI.Draw
|
||||||
|
|
||||||
lda #S.CB.MODE.C16
|
lda #S.CB.MODE.C16
|
||||||
sta SetPixel.Mode
|
sta SetPixel.Mode
|
||||||
@ -222,12 +225,7 @@ Destop.Paint >PUSHW L.Rect.CB
|
|||||||
cmp #16
|
cmp #16
|
||||||
bne .1
|
bne .1
|
||||||
|
|
||||||
.4
|
.4 rts
|
||||||
|
|
||||||
>PUSHW L.DrawLines.CB
|
|
||||||
>LIBCALL hLIBGUI,LIBGUI.Draw
|
|
||||||
|
|
||||||
rts
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
@ -292,14 +290,6 @@ Rect.CB .DA #S.CB.CMD.FILLRECT
|
|||||||
|
|
||||||
.DA #0
|
.DA #0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
SetPixel.CB .DA #S.CB.CMD.SETPIXEL
|
|
||||||
SetPixel.OP .BS 1
|
|
||||||
SetPixel.Mode .BS 1
|
|
||||||
SetPixel.Color .BS 1
|
|
||||||
SetPixel.X .BS 2
|
|
||||||
SetPixel.Y .BS 2
|
|
||||||
.DA #0
|
|
||||||
*--------------------------------------
|
|
||||||
DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.ORA
|
||||||
.DA #S.CB.MODE.C16
|
.DA #S.CB.MODE.C16
|
||||||
@ -337,7 +327,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 191
|
.DA 191
|
||||||
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.SET
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 28
|
.DA 28
|
||||||
@ -346,7 +336,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 191
|
.DA 191
|
||||||
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.SET
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 84
|
.DA 84
|
||||||
@ -355,7 +345,7 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
.DA 191
|
.DA 191
|
||||||
|
|
||||||
.DA #S.CB.CMD.DRAWLINE
|
.DA #S.CB.CMD.DRAWLINE
|
||||||
.DA #S.CB.OP.ORA
|
.DA #S.CB.OP.XOR
|
||||||
.DA #S.CB.MODE.MONO
|
.DA #S.CB.MODE.MONO
|
||||||
.DA #1
|
.DA #1
|
||||||
.DA 0
|
.DA 0
|
||||||
@ -365,6 +355,14 @@ DrawLines.CB .DA #S.CB.CMD.DRAWLINE
|
|||||||
|
|
||||||
.DA #0
|
.DA #0
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
SetPixel.CB .DA #S.CB.CMD.SETPIXEL
|
||||||
|
SetPixel.OP .BS 1
|
||||||
|
SetPixel.Mode .BS 1
|
||||||
|
SetPixel.Color .BS 1
|
||||||
|
SetPixel.X .BS 2
|
||||||
|
SetPixel.Y .BS 2
|
||||||
|
.DA #0
|
||||||
|
*--------------------------------------
|
||||||
.DUMMY
|
.DUMMY
|
||||||
.OR 0
|
.OR 0
|
||||||
DS.START
|
DS.START
|
||||||
|
@ -69,7 +69,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
lda (ZPIPCfgPtr) Configured ?
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
bmi CS.RUN.INIT
|
bmi CS.RUN.INIT
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .1
|
bcc .1
|
||||||
>SYSCALL GetC
|
>SYSCALL GetC
|
||||||
@ -102,7 +102,7 @@ CS.RUN.INIT ldx #3
|
|||||||
>LDYA L.MSG.INITOK
|
>LDYA L.MSG.INITOK
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
.2 >SYSCALL Sleep
|
.2 >SLEEP
|
||||||
jsr CS.RUN.SERVER
|
jsr CS.RUN.SERVER
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ CS.RUN.REPaint >LDYA L.MSG.FCONF
|
|||||||
>LDYA ZPCfgPtr
|
>LDYA ZPCfgPtr
|
||||||
jsr CS.RUN.DumpConfYA
|
jsr CS.RUN.DumpConfYA
|
||||||
|
|
||||||
CS.RUN.Loop >SYSCALL Sleep
|
CS.RUN.Loop >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs CS.RUN.Loop
|
bcs CS.RUN.Loop
|
||||||
|
|
||||||
|
@ -58,7 +58,7 @@ CS.RUN lda #0
|
|||||||
lda #0 Echo all caracters
|
lda #0 Echo all caracters
|
||||||
jsr INPUT.RESET
|
jsr INPUT.RESET
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1 no char
|
bcs .1 no char
|
||||||
jsr INPUT.CHARIN
|
jsr INPUT.CHARIN
|
||||||
@ -72,7 +72,7 @@ CS.RUN lda #0
|
|||||||
lda #'*'
|
lda #'*'
|
||||||
jsr INPUT.RESET
|
jsr INPUT.RESET
|
||||||
|
|
||||||
.2 >SYSCALL Sleep
|
.2 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .2 no char
|
bcs .2 no char
|
||||||
jsr INPUT.CHARIN
|
jsr INPUT.CHARIN
|
||||||
|
@ -68,7 +68,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
lda (ZPIPCfgPtr) Configured ?
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
bmi CS.RUN.INIT
|
bmi CS.RUN.INIT
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .1
|
bcc .1
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ CS.RUN.INIT ldx #3
|
|||||||
>LDYA L.MSG.INITOK
|
>LDYA L.MSG.INITOK
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
.11 >SYSCALL Sleep
|
.11 >SLEEP
|
||||||
ldy #bCTRLC
|
ldy #bCTRLC
|
||||||
lda (pData),y
|
lda (pData),y
|
||||||
bmi .99
|
bmi .99
|
||||||
|
@ -174,7 +174,7 @@ CS.RUN >LDA.G bReadMode READ Command ?
|
|||||||
.12 jsr CL.PrintPrompt
|
.12 jsr CL.PrintPrompt
|
||||||
bcs .9
|
bcs .9
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1 no char
|
bcs .1 no char
|
||||||
|
|
||||||
@ -211,7 +211,7 @@ CS.RUN >LDA.G bReadMode READ Command ?
|
|||||||
CS.RUN.READ lda #0 reset Buffer
|
CS.RUN.READ lda #0 reset Buffer
|
||||||
sta (ZPCMDBuf)
|
sta (ZPCMDBuf)
|
||||||
|
|
||||||
.1 >SYSCALL Sleep
|
.1 >SLEEP
|
||||||
>SYSCALL GetChar
|
>SYSCALL GetChar
|
||||||
bcs .1 no char
|
bcs .1 no char
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ CS.RUN jsr Init.Timeout
|
|||||||
lda (ZPIPCfgPtr) Configured ?
|
lda (ZPIPCfgPtr) Configured ?
|
||||||
bmi CS.RUN.INIT
|
bmi CS.RUN.INIT
|
||||||
|
|
||||||
>SYSCALL Sleep
|
>SLEEP
|
||||||
jsr Wait.Timeout
|
jsr Wait.Timeout
|
||||||
bcc .1
|
bcc .1
|
||||||
>SYSCALL GetC
|
>SYSCALL GetC
|
||||||
@ -102,7 +102,7 @@ CS.RUN.INIT ldx #3
|
|||||||
>LDYA L.MSG.INITOK
|
>LDYA L.MSG.INITOK
|
||||||
>SYSCALL PrintF.YA
|
>SYSCALL PrintF.YA
|
||||||
|
|
||||||
.2 >SYSCALL Sleep
|
.2 >SLEEP
|
||||||
jsr CS.RUN.SERVER
|
jsr CS.RUN.SERVER
|
||||||
bcs CS.RUN.ERR
|
bcs CS.RUN.ERR
|
||||||
|
|
||||||
|
@ -117,21 +117,7 @@ CORE.Events jsr CORE.GetEvents
|
|||||||
lda CORE.EvtCount
|
lda CORE.EvtCount
|
||||||
bne .1
|
bne .1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.4 lda A2osX.ASCREEN
|
.4 bit OPENAPPLE
|
||||||
cmp #2 is SYS active?
|
|
||||||
bne .6
|
|
||||||
|
|
||||||
ldx CORE.CPULoadI
|
|
||||||
lda CORE.CPULoadC,x
|
|
||||||
sta SYS.BASL0+38
|
|
||||||
dex
|
|
||||||
bpl .5
|
|
||||||
|
|
||||||
ldx #3
|
|
||||||
|
|
||||||
.5 stx CORE.CPULoadI
|
|
||||||
|
|
||||||
.6 bit OPENAPPLE
|
|
||||||
bpl .8
|
bpl .8
|
||||||
|
|
||||||
lda KBD
|
lda KBD
|
||||||
@ -429,28 +415,6 @@ CORE.PSSelect0 >LDYAI CORE.S.PS0 Select PS0
|
|||||||
>LDYA CORE.S.PS0+S.PS.ZP+4
|
>LDYA CORE.S.PS0+S.PS.ZP+4
|
||||||
>STYA pStack
|
>STYA pStack
|
||||||
rts
|
rts
|
||||||
*/--------------------------------------
|
|
||||||
* # Sleep
|
|
||||||
* Make current process suspend until next RUN
|
|
||||||
* ## In :
|
|
||||||
* (none)
|
|
||||||
* ## Out :
|
|
||||||
* (none)
|
|
||||||
*\--------------------------------------
|
|
||||||
K.Sleep pla get PC LO
|
|
||||||
sec
|
|
||||||
sbc pCode
|
|
||||||
ldy #S.PS.PC
|
|
||||||
sta (pPs),y
|
|
||||||
|
|
||||||
pla get PC HI
|
|
||||||
sbc pCode+1
|
|
||||||
iny
|
|
||||||
sta (pPs),y
|
|
||||||
|
|
||||||
lda (pPs)
|
|
||||||
ora #S.PS.F.SLEEP
|
|
||||||
sta (pPs)
|
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.PSLeave ldy #S.PS.ZP+23
|
CORE.PSLeave ldy #S.PS.ZP+23
|
||||||
ldx #23
|
ldx #23
|
||||||
@ -505,8 +469,6 @@ CORE.TickPer10t .BS 1
|
|||||||
CORE.TickSec .BS 1
|
CORE.TickSec .BS 1
|
||||||
CORE.Tick10t .BS 1
|
CORE.Tick10t .BS 1
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
CORE.CPULoadI .BS 1
|
|
||||||
CORE.CPULoadC .AS -"/-\|"
|
|
||||||
CORE.Counter .BS 1
|
CORE.Counter .BS 1
|
||||||
CORE.PSCount .DA #0
|
CORE.PSCount .DA #0
|
||||||
CORE.LastPSID .DA #0
|
CORE.LastPSID .DA #0
|
||||||
|
@ -43,6 +43,23 @@ AUTO 6
|
|||||||
rts
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
jmp (pDev) pDevJmp
|
jmp (pDev) pDevJmp
|
||||||
|
*--------------------------------------
|
||||||
|
pla get PC LO
|
||||||
|
sec
|
||||||
|
sbc pCode
|
||||||
|
ldy #S.PS.PC
|
||||||
|
sta (pPs),y
|
||||||
|
|
||||||
|
pla get PC HI
|
||||||
|
sbc pCode+1
|
||||||
|
iny
|
||||||
|
sta (pPs),y
|
||||||
|
|
||||||
|
lda (pPs)
|
||||||
|
ora #S.PS.F.SLEEP
|
||||||
|
sta (pPs)
|
||||||
|
clc
|
||||||
|
rts
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
* *** MUST BE REINTRANT ***
|
* *** MUST BE REINTRANT ***
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
|
@ -147,7 +147,7 @@ K.SYSCALL.JMP .DA 0 $00
|
|||||||
.DA K.NewStr.YA
|
.DA K.NewStr.YA
|
||||||
.DA K.GetMemStat.YA
|
.DA K.GetMemStat.YA
|
||||||
*--------------------------------------
|
*--------------------------------------
|
||||||
.DA K.Sleep $F0
|
.DA 0 $F0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
.DA 0
|
.DA 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user