From c3f620eedb65a58374d31d7fd957d00e00e67593 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Tue, 5 Jan 2021 23:44:38 -0500 Subject: [PATCH] 32: add small file --- demos/32b/small.s | 118 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 118 insertions(+) create mode 100644 demos/32b/small.s diff --git a/demos/32b/small.s b/demos/32b/small.s new file mode 100644 index 00000000..06f9de22 --- /dev/null +++ b/demos/32b/small.s @@ -0,0 +1,118 @@ +HGR_SHAPE = $1A +HGR_SHAPEH = $1B +HGR_HPAGE = $E6 +HGR_SCALE = $E7 +OFFSET = $FE +HGR_ROTATE = $FF + + +KEYPRESS = $C000 +KEYRESET = $C010 + +HGR = $F3E2 +HCLR = $F3F2 +HPOSN = $F411 +HPLOT0 = $F457 +HGLIN = $F53A +XDRAW = $F65D +XDRAW1 = $F661 +COLORTBL = $F6F6 + +WAIT = $FCA8 ;; delay 1/2(26+27A+5A^2) us + +start: + ;========================== + ; Setup Graphics + ;========================== + +; We can't use HGR as it clears the screen + jsr HGR + + ;====================== + ; Setup vars + ;====================== + + lda #1 + sta HGR_SCALE + sta HGR_ROTATE + + ; HFNS puts X-coord in Y,X, Y-coord in A + ; HPOSN sets up GBASL/GBASH + +loop: + + ldy #0 ; high byte of x position + ldx #140 ; low byte of x position + lda #96 ; y position + jsr HPOSN + + ldx #portal_vert + jsr random_byte +; lda HGR_ROTATE ; rotation + jsr XDRAW + +; jsr wait_until_keypress + + jsr random_byte +; lda #200 + jsr WAIT + + jsr random_byte + ora #$1 + and #$3 + sta HGR_SCALE + +; lda HGR_SCALE +; eor #$2 +; sta HGR_SCALE + +; inc HGR_ROTATE + + bit $C030 + + jmp loop + + +; Shape 1 +; +; "Portal" +; # +; # # +; # # +; # # +; # # +; # # +; # * # +; # # +; # # +; # # +; # # +; # # +; # +; +; START +; NLT NLT UP UP UP NRT UP UP UP NRT RT NDN +; DN DN DN NRT DN DN DN DN DN NLT DN DN DN NLT +; UP NLT UP UP UP NLT UP UP UP +; STOP + +portal_vert: +.byte $1b,$24,$0c,$24,$0c,$15,$36,$0e,$36, $36,$1e,$36,$1e,$1c,$24,$1c,$24 +.byte $04,$00 + +random_byte: + inc OFFSET + lda OFFSET + and #$1f + tay + lda start,Y + rts + +wait_until_keypress: + lda KEYPRESS + bpl wait_until_keypress + + lda KEYRESET ; clear strobe + + rts