diff --git a/mode7/starfield_demo.s b/mode7/starfield_demo.s index e1509ca6..e40210a8 100644 --- a/mode7/starfield_demo.s +++ b/mode7/starfield_demo.s @@ -4,6 +4,9 @@ ; CONSTANTS ;=========== +NUMSTARS EQU 16 + + ;===================== ; Starfield ;===================== @@ -23,9 +26,45 @@ ; Init Variables ;=============== lda #0 + sta DRAW_PAGE starfield_loop: + ;=============== + ; draw stars + ;=============== + +draw_stars: + ldx #NUMSTARS + + lda #20 + ldy #20 + + ;================================ + ; put address in GBASL/GBASH + ; Xcoord in A, Ycoord in Y + + sta TEMPY + lda gr_offsets,Y ; lookup low-res memory address ; 4 + clc ; 2 + adc TEMPY ; 3 + sta GBASL ; 3 + iny ; 2 + + lda gr_offsets,Y ; 4 + adc DRAW_PAGE ; add in draw page offset ; 3 + sta GBASH ; 3 + ;=========== + ; + + ldy #0 + lda #$ff + sta (GBASL),Y + + dex + bne draw_stars + + starfield_keyboard: jsr get_key ; get keypress ; 6 @@ -70,3 +109,34 @@ skipskip: .include "../asm_routines/multiply_fast.s" +;====================== +; some "random" numbers +;====================== +random_table: + .byte 103,198,105,115, 81,255, 74,236, 41,205,186,171,242,251,227, 70 + .byte 124,194, 84,248, 27,232,231,141,118, 90, 46 ,99, 51,159,201,154 + .byte 102, 50, 13,183, 49, 88,163, 90, 37, 93, 5, 23, 88,233, 94,212 + .byte 171,178,205,198,155,180, 84, 17, 14,130,116, 65, 33, 61,220,135 + .byte 112,233, 62,161, 65,225,252,103, 62, 1,126,151,234,220,107,150 + .byte 143, 56, 92, 42,236,176, 59,251, 50,175, 60, 84,236, 24,219, 92 + .byte 2, 26,254, 67,251,250,170, 58,251, 41,209,230, 5, 60,124,148 + .byte 117,216,190, 97,137,249, 92,187,168,153, 15,149,177,235,241,179 + .byte 5,239,247, 0,233,161, 58,229,202, 11,203,208, 72, 71,100,189 + .byte 31, 35, 30,168, 28,123,100,197, 20,115, 90,197, 94, 75,121, 99 + .byte 59,112,100, 36, 17,158, 9,220,170,212,172,242, 27, 16,175, 59 + .byte 51,205,227, 80, 72, 71, 21, 92,187,111, 34, 25,186,155,125,245 + .byte 11,225, 26, 28,127, 35,248, 41,248,164, 27, 19,181,202, 78,232 + .byte 152, 50, 56,224,121, 77, 61, 52,188, 95, 78,119,250,203,108, 5 + .byte 172,134, 33, 43,170, 26, 85,162,190,112,181,115, 59, 4, 92,211 + .byte 54,148,179,175,226,240,228,158, 79, 50, 21, 73,253,130, 78,169 + +z_table: + ; 1/16.0 - 1/12.25 + .byte $10,$10,$10,$10,$11,$11,$11,$11,$12,$12,$12,$13,$13,$14,$14,$14 + ; 1/12.0 - 1/8.25 + .byte $15,$15,$16,$16,$17,$17,$18,$18,$19,$1A,$1A,$1B,$1C,$1D,$1E,$1F + ; 1/8.0 - 1/4.25 + .byte $20,$21,$22,$23,$24,$25,$27,$28,$2A,$2C,$2E,$30,$33,$35,$38,$3C + ; 1/4.0 - 1/0.25 + .byte $40,$44,$49,$4E,$55,$5D,$66,$71,$80,$92,$AA,$CC,$00,$55,$00,$00 +