mirror of
https://github.com/blondie7575/WeeGUI.git
synced 2024-12-12 09:29:03 +00:00
172 lines
2.1 KiB
ArmAsm
172 lines
2.1 KiB
ArmAsm
;
|
|
; asmdemo.s
|
|
; WeeGUI sample application
|
|
;
|
|
; Created by Quinn Dunki on 8/15/14.
|
|
; Copyright (c) 2015 One Girl, One Laptop Productions. All rights reserved.
|
|
;
|
|
|
|
|
|
.include "WeeGUI_MLI.s"
|
|
|
|
|
|
.org $6000
|
|
|
|
INBUF = $0200
|
|
DOSCMD = $be03
|
|
KBD = $c000
|
|
KBDSTRB = $c010
|
|
|
|
|
|
main:
|
|
|
|
; BRUN the GUI library
|
|
ldx #0
|
|
ldy #0
|
|
@0: lda brunCmdLine,x
|
|
beq @1
|
|
sta INBUF,y
|
|
inx
|
|
iny
|
|
bra @0
|
|
@1: jsr DOSCMD
|
|
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
; Show off rendering speed with some snazzy rectangle painting
|
|
;
|
|
; Stack:
|
|
; Curr X
|
|
; Curr Y
|
|
; Curr Width
|
|
; Curr Height
|
|
|
|
ldx #WGClearScreen
|
|
jsr WeeGUI
|
|
|
|
animateRects:
|
|
lda #38 ; Initialize
|
|
pha
|
|
lda #11
|
|
pha
|
|
lda #2
|
|
pha
|
|
lda #2
|
|
pha
|
|
|
|
animateRectsEvenLoop:
|
|
@0: lda $C019 ; Sync to VBL
|
|
bmi @0
|
|
|
|
ldx #WGClearScreen
|
|
jsr WeeGUI
|
|
|
|
tsx
|
|
inx
|
|
lda $0100,x ; Load Height, then modify
|
|
sta PARAM3
|
|
inc
|
|
inc
|
|
sta $0100,x
|
|
cmp #25
|
|
bcs animateRects
|
|
|
|
inx ; Load Width, then modify
|
|
lda $0100,x
|
|
sta PARAM2
|
|
inc
|
|
inc
|
|
inc
|
|
inc
|
|
inc
|
|
inc
|
|
sta $0100,x
|
|
|
|
inx ; Load Y, then modify
|
|
lda $0100,x
|
|
sta PARAM1
|
|
dec
|
|
sta $0100,x
|
|
|
|
inx ; Load X, then modify
|
|
lda $0100,x
|
|
sta PARAM0
|
|
dec
|
|
dec
|
|
dec
|
|
sta $0100,x
|
|
|
|
ldy #64
|
|
ldx #WGFillRect
|
|
jsr WeeGUI
|
|
ldx #WGStrokeRect
|
|
jsr WeeGUI
|
|
|
|
jsr delayShort
|
|
jsr delayShort
|
|
jsr delayShort
|
|
jsr checkKbd
|
|
|
|
bra animateRectsEvenLoop
|
|
|
|
|
|
delayShort: ; ~1/30 sec
|
|
pha
|
|
phx
|
|
phy
|
|
|
|
ldy #$06 ; Loop a bit
|
|
delayShortOuter:
|
|
ldx #$ff
|
|
delayShortInner:
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
nop
|
|
dex
|
|
bne delayShortInner
|
|
dey
|
|
bne delayShortOuter
|
|
|
|
ply
|
|
plx
|
|
pla
|
|
rts
|
|
|
|
checkKbd:
|
|
lda KBD
|
|
bpl checkKbdDone
|
|
sta KBDSTRB
|
|
|
|
cmp #241 ; 'q' with high bit set
|
|
bne checkKbdDone
|
|
|
|
ldx #WGExit
|
|
jsr WeeGUI
|
|
pla ; Pull our own frame off the stack...
|
|
pla
|
|
pla
|
|
pla
|
|
pla ; ...four local variables + return address...
|
|
pla
|
|
rts ; ...so we can quit to ProDOS from here
|
|
|
|
checkKbdDone:
|
|
rts
|
|
|
|
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
|
|
brunCmdLine:
|
|
.byte "BRUN weegui",$8d,0
|
|
|
|
|
|
; Suppress some linker warnings - Must be the last thing in the file
|
|
.SEGMENT "ZPSAVE"
|
|
.SEGMENT "EXEHDR"
|
|
.SEGMENT "STARTUP"
|
|
.SEGMENT "INIT"
|
|
.SEGMENT "LOWCODE"
|