From 4504371823b475ed55f0217cff24139521506c58 Mon Sep 17 00:00:00 2001 From: Vince Weaver Date: Wed, 16 Jun 2021 23:32:16 -0400 Subject: [PATCH] hgr: boxes: cool bot for bot --- graphics/hgr/boxes/Makefile | 12 ++++- graphics/hgr/boxes/cool_bot.s | 98 +++++++++++++++++++++++++++++++++++ 2 files changed, 109 insertions(+), 1 deletion(-) create mode 100644 graphics/hgr/boxes/cool_bot.s diff --git a/graphics/hgr/boxes/Makefile b/graphics/hgr/boxes/Makefile index baa931a4..578470ef 100644 --- a/graphics/hgr/boxes/Makefile +++ b/graphics/hgr/boxes/Makefile @@ -7,13 +7,14 @@ EMPTYDISK = ../../../empty_disk/empty.dsk all: boxes.dsk make_boxes_asm -boxes.dsk: HELLO MYST.BAS MYST_TINY.BAS MYST_TINY COOL_PATTERN +boxes.dsk: HELLO MYST.BAS MYST_TINY.BAS MYST_TINY COOL_PATTERN COOL_BOT cp $(EMPTYDISK) boxes.dsk $(DOS33) -y boxes.dsk SAVE A HELLO $(DOS33) -y boxes.dsk SAVE A MYST.BAS $(DOS33) -y boxes.dsk SAVE A MYST_TINY.BAS $(DOS33) -y boxes.dsk BSAVE -a 0xC00 MYST_TINY $(DOS33) -y boxes.dsk BSAVE -a 0xC00 COOL_PATTERN + $(DOS33) -y boxes.dsk BSAVE -a 0x36b COOL_BOT ### @@ -37,6 +38,15 @@ COOL_PATTERN: cool_pattern.o cool_pattern.o: cool_pattern.s ca65 -o cool_pattern.o cool_pattern.s -l cool_pattern.lst +### + +COOL_BOT: cool_bot.o + ld65 -o COOL_BOT cool_bot.o -C $(LINKERSCRIPTS)/apple2_36b.inc + +cool_bot.o: cool_bot.s + ca65 -o cool_bot.o cool_bot.s -l cool_bot.lst + + ### diff --git a/graphics/hgr/boxes/cool_bot.s b/graphics/hgr/boxes/cool_bot.s new file mode 100644 index 00000000..24c51da6 --- /dev/null +++ b/graphics/hgr/boxes/cool_bot.s @@ -0,0 +1,98 @@ + +; zero page + +HGR_X = $E0 +HGR_XH = $E1 +HGR_Y = $E2 +HGR_COLOR = $E4 + +YRUN = $F0 +XRUN = $F1 +Y1 = $F2 +X1 = $F3 +COLOR = $F4 + +COLOR1 = $F5 +COLOR2 = $F6 + +; rom routines +HGR2 = $F3D8 +HPOSN = $F411 +HLINRL = $F530 +COLORTBL = $F6F6 + +myst_tiny: + jsr HGR2 + +outer_loop: + + ldy #5 +data_smc: + lda myst_tiny + sta YRUN-1,Y + inc data_smc+1 + dey + bne data_smc + +rectangle_loop: + lda COLOR + + asl ; nibble swap by david galloway + adc #$80 + rol + asl + adc #$80 + rol + + sta COLOR + + and #$f + tax + + lda COLORTBL,X + sta HGR_COLOR + + ldx X1 ; X1 into X + lda Y1 ; Y1 into A + ldy #0 ; always 0 + jsr HPOSN ; (Y,X),(A) (values stores in HGRX,XH,Y) + + + lda XRUN ; XRUN into A + ldx #0 ; always 0 + ldy #0 ; relative Y is 0 + jsr HLINRL ; (X,A),(Y) + + inc Y1 + dec YRUN + bne rectangle_loop + + beq outer_loop + + +data: +.byte $33,$00,$00,$8C,$5A +.byte $33,$8C,$00,$8B,$5A +.byte $16,$00,$5A,$8C,$65 +.byte $16,$8C,$5A,$8B,$65 +.byte $42,$9D,$79,$33,$46 +.byte $07,$8D,$74,$5A,$13 +.byte $00,$B4,$11,$21,$68 +.byte $70,$9C,$14,$35,$6A +.byte $07,$91,$0A,$43,$0A +.byte $07,$A2,$00,$3A,$14 +.byte $50,$AC,$5B,$0F,$20 +.byte $77,$A9,$1F,$16,$20 +.byte $77,$A5,$27,$1D,$15 +.byte $51,$00,$A3,$3F,$1C +.byte $51,$3F,$A7,$72,$18 +.if 0 +.byte $51,$B1,$B9,$35,$06 +.byte $50,$17,$00,$10,$B2 +.byte $15,$01,$0D,$62,$1F +.byte $50,$00,$00,$12,$BC +.byte $05,$42,$00,$0F,$BB +.byte $00,$B1,$20,$04,$12 +.endif + + jmp myst_tiny