mirror of
https://github.com/deater/dos33fsprogs.git
synced 2024-12-26 11:30:12 +00:00
mode7: have sound how we like it, but too big by like 50 bytes
working on making things smaller
This commit is contained in:
parent
405ea8eb5a
commit
60f306dd5c
67
asm_routines/gr_hlin_double.s
Normal file
67
asm_routines/gr_hlin_double.s
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
;=====================================================================
|
||||||
|
;= ROUTINES
|
||||||
|
;=====================================================================
|
||||||
|
|
||||||
|
;================================
|
||||||
|
; hlin_setup
|
||||||
|
;================================
|
||||||
|
; put address in GBASL/GBASH
|
||||||
|
; Ycoord in A, Xcoord in Y
|
||||||
|
hlin_setup:
|
||||||
|
sty TEMPY ; 3
|
||||||
|
tay ; y=A ; 2
|
||||||
|
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
|
||||||
|
rts ; 6
|
||||||
|
;===========
|
||||||
|
; 35
|
||||||
|
;================================
|
||||||
|
; hlin_double:
|
||||||
|
;================================
|
||||||
|
; HLIN Y, V2 AT A
|
||||||
|
; Y, X, A trashed
|
||||||
|
; start at Y, draw up to and including X
|
||||||
|
hlin_double:
|
||||||
|
;int hlin_double(int page, int x1, int x2, int at) {
|
||||||
|
|
||||||
|
jsr hlin_setup ; 41
|
||||||
|
|
||||||
|
sec ; 2
|
||||||
|
lda V2 ; 3
|
||||||
|
sbc TEMPY ; 3
|
||||||
|
|
||||||
|
tax ; 2
|
||||||
|
inx ; 2
|
||||||
|
;===========
|
||||||
|
; 53
|
||||||
|
; fallthrough
|
||||||
|
|
||||||
|
;=================================
|
||||||
|
; hlin_double_continue: width
|
||||||
|
;=================================
|
||||||
|
; GBASL has correct offset for row/col
|
||||||
|
; width in X
|
||||||
|
|
||||||
|
hlin_double_continue:
|
||||||
|
|
||||||
|
ldy #0 ; 2
|
||||||
|
lda COLOR ; 3
|
||||||
|
hlin_double_loop:
|
||||||
|
sta (GBASL),Y ; 6
|
||||||
|
inc GBASL ; 5
|
||||||
|
dex ; 2
|
||||||
|
bne hlin_double_loop ; 2nt/3
|
||||||
|
|
||||||
|
rts ; 6
|
||||||
|
;=============
|
||||||
|
; 53+5+X*16+5
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
|||||||
; Closing Credits
|
; Closing Credits
|
||||||
|
|
||||||
NUM_CREDITS EQU 19
|
NUM_CREDITS EQU 18
|
||||||
|
|
||||||
;===================
|
;===================
|
||||||
; init credits
|
; init credits
|
||||||
@ -267,8 +267,8 @@ empty:
|
|||||||
|
|
||||||
; subtract one from centering(?)
|
; subtract one from centering(?)
|
||||||
credits:
|
credits:
|
||||||
.byte 12 ; 14
|
.byte 11 ; 17
|
||||||
.asciiz "MUSIC BASE: EA"
|
.asciiz "MUSIC: WAVE BY EA"
|
||||||
.byte 11 ; 16
|
.byte 11 ; 16
|
||||||
.asciiz "LZ4 CODE: QKUMBA"
|
.asciiz "LZ4 CODE: QKUMBA"
|
||||||
.byte 11 ; 16
|
.byte 11 ; 16
|
||||||
@ -276,35 +276,39 @@ credits:
|
|||||||
.byte 14 ; 9
|
.byte 14 ; 9
|
||||||
.asciiz "FROGGYSUE"
|
.asciiz "FROGGYSUE"
|
||||||
.byte 14 ; 10
|
.byte 14 ; 10
|
||||||
.asciiz "PIANOMAN08"
|
|
||||||
.byte 14 ; 10
|
|
||||||
.asciiz "UTOPIA BBS"
|
.asciiz "UTOPIA BBS"
|
||||||
.byte 10 ; 18
|
.byte 10 ; 18
|
||||||
.asciiz "FORD PERFECT (SIC)"
|
.asciiz "FORD PERFECT (SIC)"
|
||||||
|
.byte 14 ; 10
|
||||||
|
.asciiz "PIANOMAN08"
|
||||||
.byte 12 ; 13
|
.byte 12 ; 13
|
||||||
.asciiz "THE 7HORSEMEN"
|
.asciiz "THE 7HORSEMEN"
|
||||||
.byte 9 ; 20
|
.byte 9 ; 20
|
||||||
.asciiz "MITHLUIN AND ROOSTER"
|
;.asciiz "MITHLUIN AND ROOSTER"
|
||||||
|
.asciiz "AAAAAAAAAAAAAAAAAAAA"
|
||||||
.byte 13 ; 12
|
.byte 13 ; 12
|
||||||
.asciiz "TALON KARRDE"
|
;.asciiz "TALON KARRDE"
|
||||||
|
.asciiz "AAAAAAAAAAAA"
|
||||||
.byte 9 ; 20
|
.byte 9 ; 20
|
||||||
.asciiz "WEAVE'S WORLD TALKER"
|
;.asciiz "WEAVE'S WORLD TALKER"
|
||||||
|
.asciiz "AAAAAAAAAAAAAAAAAAAA"
|
||||||
.byte 12 ; 14
|
.byte 12 ; 14
|
||||||
.asciiz "DAISY AND JUNE"
|
;.asciiz "DAISY AND JUNE"
|
||||||
|
.asciiz "AAAAAAAAAAAAAA"
|
||||||
.byte 11 ; 17
|
.byte 11 ; 17
|
||||||
.asciiz "TALBOT 0101B CREW"
|
;.asciiz "TALBOT 0101B CREW"
|
||||||
|
.asciiz "AAAAAAAAAAAAAAAAA"
|
||||||
.byte 12 ; 13
|
.byte 12 ; 13
|
||||||
.asciiz "STEALTH SUSIE"
|
.asciiz "STEALTH SUSIE"
|
||||||
.byte 11 ; 16
|
.byte 11 ; 16
|
||||||
.asciiz "ECE GRAD BOWLING"
|
;.asciiz "ECE GRAD BOWLING"
|
||||||
|
.asciiz "AAAAAAAAAAAAAAAA"
|
||||||
.byte 13 ; 11
|
.byte 13 ; 11
|
||||||
.asciiz "CORNELL GCF"
|
.asciiz "CORNELL GCF"
|
||||||
.byte 8 ; 21
|
.byte 8 ; 21
|
||||||
.asciiz "ALL MSTIES EVERYWHERE"
|
.asciiz "ALL MSTIES EVERYWHERE"
|
||||||
.byte 17 ; 3
|
.byte 17 ; 3
|
||||||
.asciiz "..."
|
.asciiz "..."
|
||||||
.byte 17 ; 3
|
|
||||||
.asciiz "..."
|
|
||||||
|
|
||||||
thankz:
|
thankz:
|
||||||
.asciiz "SPECIAL THANKS TO:"
|
.asciiz "SPECIAL THANKS TO:"
|
||||||
|
@ -234,8 +234,6 @@ mb_load_values:
|
|||||||
lda NOISE ; 3
|
lda NOISE ; 3
|
||||||
bpl mb_not_done ; 3/2nt
|
bpl mb_not_done ; 3/2nt
|
||||||
|
|
||||||
lda #1 ; set done playing ; 2
|
|
||||||
|
|
||||||
jmp quiet_exit ; 3
|
jmp quiet_exit ; 3
|
||||||
;===========
|
;===========
|
||||||
; typ 6
|
; typ 6
|
||||||
@ -270,22 +268,22 @@ increment_done:
|
|||||||
;=================================
|
;=================================
|
||||||
|
|
||||||
done_interrupt:
|
done_interrupt:
|
||||||
jmp exit_interrupt
|
; jmp exit_interrupt
|
||||||
|
|
||||||
quiet_exit:
|
quiet_exit:
|
||||||
sta DONE_PLAYING
|
; sta DONE_PLAYING
|
||||||
jsr clear_ay_both
|
; jsr clear_ay_both
|
||||||
|
|
||||||
;=====================================
|
;=====================================
|
||||||
; clear register area
|
; clear register area
|
||||||
;=====================================
|
;=====================================
|
||||||
ldx #13 ; 2
|
; ldx #13 ; 2
|
||||||
lda #0 ; 2
|
; lda #0 ; 2
|
||||||
mb_clear_reg:
|
;mb_clear_reg:
|
||||||
sta REGISTER_DUMP,X ; clear register value ; 4
|
; sta REGISTER_DUMP,X ; clear register value ; 4
|
||||||
sta REGISTER_OLD,X ; clear old values ; 4
|
; sta REGISTER_OLD,X ; clear old values ; 4
|
||||||
dex ; 2
|
; dex ; 2
|
||||||
bpl mb_clear_reg ; 2nt/3
|
; bpl mb_clear_reg ; 2nt/3
|
||||||
|
|
||||||
exit_interrupt:
|
exit_interrupt:
|
||||||
|
|
||||||
|
@ -40,10 +40,23 @@ start:
|
|||||||
stx MB_DETECTED
|
stx MB_DETECTED
|
||||||
beq mockingboard_setup_done
|
beq mockingboard_setup_done
|
||||||
|
|
||||||
|
|
||||||
|
;================================
|
||||||
|
; one-time setup
|
||||||
|
;================================
|
||||||
|
; Initialize the 2kB of multiply lookup tables
|
||||||
|
jsr init_multiply_tables
|
||||||
|
|
||||||
|
|
||||||
;================================
|
;================================
|
||||||
; Mockingboard start
|
; Mockingboard start
|
||||||
;================================
|
;================================
|
||||||
|
|
||||||
|
main_loop:
|
||||||
|
|
||||||
mockingboard_setup:
|
mockingboard_setup:
|
||||||
|
sei ; disable interrupts just in case
|
||||||
|
|
||||||
jsr mockingboard_init
|
jsr mockingboard_init
|
||||||
jsr reset_ay_both
|
jsr reset_ay_both
|
||||||
jsr clear_ay_both
|
jsr clear_ay_both
|
||||||
@ -63,8 +76,6 @@ mockingboard_setup:
|
|||||||
; Enable 50Hz clock on 6522
|
; Enable 50Hz clock on 6522
|
||||||
;============================
|
;============================
|
||||||
|
|
||||||
sei ; disable interrupts just in case
|
|
||||||
|
|
||||||
lda #$40 ; Continuous interrupts, don't touch PB7
|
lda #$40 ; Continuous interrupts, don't touch PB7
|
||||||
sta $C40B ; ACR register
|
sta $C40B ; ACR register
|
||||||
lda #$7F ; clear all interrupt flags
|
lda #$7F ; clear all interrupt flags
|
||||||
@ -84,7 +95,6 @@ mockingboard_setup:
|
|||||||
; 4fe7 / 1e6 = .020s, 50Hz
|
; 4fe7 / 1e6 = .020s, 50Hz
|
||||||
; 9c40 / 1e6 = .040s, 25Hz
|
; 9c40 / 1e6 = .040s, 25Hz
|
||||||
|
|
||||||
|
|
||||||
;============================
|
;============================
|
||||||
; Start Playing
|
; Start Playing
|
||||||
;============================
|
;============================
|
||||||
@ -101,13 +111,13 @@ mockingboard_setup:
|
|||||||
;=====================================
|
;=====================================
|
||||||
; clear register area
|
; clear register area
|
||||||
;=====================================
|
;=====================================
|
||||||
ldx #13 ; 2
|
ldx #13 ; 2
|
||||||
lda #0 ; 2
|
lda #0 ; 2
|
||||||
mb_setup_clear_reg:
|
mb_setup_clear_reg:
|
||||||
sta REGISTER_DUMP,X ; clear register value ; 4
|
sta REGISTER_DUMP,X ; clear register value ; 4
|
||||||
sta REGISTER_OLD,X ; clear old values ; 4
|
sta REGISTER_OLD,X ; clear old values ; 4
|
||||||
dex ; 2
|
dex ; 2
|
||||||
bpl mb_setup_clear_reg ; 2nt/3
|
bpl mb_setup_clear_reg ; 2nt/3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -116,6 +126,7 @@ mb_setup_clear_reg:
|
|||||||
|
|
||||||
|
|
||||||
mockingboard_setup_done:
|
mockingboard_setup_done:
|
||||||
|
|
||||||
;================================
|
;================================
|
||||||
; Clear screen and setup graphics
|
; Clear screen and setup graphics
|
||||||
;================================
|
;================================
|
||||||
@ -125,14 +136,13 @@ mockingboard_setup_done:
|
|||||||
lda #$4
|
lda #$4
|
||||||
sta DRAW_PAGE
|
sta DRAW_PAGE
|
||||||
|
|
||||||
; Initialize the 2kB of multiply lookup tables
|
|
||||||
jsr init_multiply_tables
|
|
||||||
|
|
||||||
;================================
|
;================================
|
||||||
; Main Loop
|
; Main Loop
|
||||||
;================================
|
;================================
|
||||||
|
|
||||||
main_loop:
|
|
||||||
jsr title_routine
|
jsr title_routine
|
||||||
|
|
||||||
jsr checkerboard_demo
|
jsr checkerboard_demo
|
||||||
@ -316,12 +326,9 @@ title_routine:
|
|||||||
;============================
|
;============================
|
||||||
.include "deater.scrolltext"
|
.include "deater.scrolltext"
|
||||||
.include "a2.scrolltext"
|
.include "a2.scrolltext"
|
||||||
.byte 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
|
|
||||||
.byte $A8,$55,$95,$35,$85
|
|
||||||
|
|
||||||
.include "rasterbars.s"
|
.include "rasterbars.s"
|
||||||
.include "starfield_demo.s"
|
.include "starfield_demo.s"
|
||||||
; next part of logo in end of starfield_demo
|
|
||||||
|
|
||||||
.include "../asm_routines/mockingboard_a.s"
|
.include "../asm_routines/mockingboard_a.s"
|
||||||
.include "credits.s"
|
.include "credits.s"
|
||||||
@ -332,7 +339,7 @@ title_routine:
|
|||||||
;===============================================
|
;===============================================
|
||||||
|
|
||||||
.include "../asm_routines/gr_unrle.s"
|
.include "../asm_routines/gr_unrle.s"
|
||||||
.include "../asm_routines/gr_hlin.s"
|
.include "../asm_routines/gr_hlin_double.s"
|
||||||
.include "../asm_routines/gr_setpage.s"
|
.include "../asm_routines/gr_setpage.s"
|
||||||
.include "../asm_routines/gr_fast_clear.s"
|
.include "../asm_routines/gr_fast_clear.s"
|
||||||
.include "../asm_routines/pageflip.s"
|
.include "../asm_routines/pageflip.s"
|
||||||
@ -343,20 +350,14 @@ title_routine:
|
|||||||
.include "../asm_routines/gr_plot.s"
|
.include "../asm_routines/gr_plot.s"
|
||||||
.include "../asm_routines/text_print.s"
|
.include "../asm_routines/text_print.s"
|
||||||
|
|
||||||
|
|
||||||
.include "mode7.s"
|
.include "mode7.s"
|
||||||
|
|
||||||
.include "mode7_demo_backgrounds.inc"
|
.include "mode7_demo_backgrounds.inc"
|
||||||
|
|
||||||
|
|
||||||
;===============================================
|
;===============================================
|
||||||
; More routines
|
; More routines
|
||||||
;===============================================
|
;===============================================
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.align 256
|
.align 256
|
||||||
|
|
||||||
music_start:
|
music_start:
|
||||||
|
Binary file not shown.
@ -297,11 +297,9 @@ starcredits_loop:
|
|||||||
;====================
|
;====================
|
||||||
; draw the rasterbars
|
; draw the rasterbars
|
||||||
;====================
|
;====================
|
||||||
; lda SPEED
|
|
||||||
; bne done_rasters
|
|
||||||
|
|
||||||
lda YY
|
lda YY
|
||||||
cmp #18
|
cmp #17
|
||||||
beq done_rasters
|
beq done_rasters
|
||||||
|
|
||||||
jsr draw_rasters
|
jsr draw_rasters
|
||||||
@ -320,13 +318,8 @@ done_rasters:
|
|||||||
|
|
||||||
jsr page_flip ; 6
|
jsr page_flip ; 6
|
||||||
|
|
||||||
; lda SPEED
|
|
||||||
; beq no_speed
|
|
||||||
; dec SPEED
|
|
||||||
;no_speed:
|
|
||||||
|
|
||||||
lda YY
|
lda YY
|
||||||
cmp #19 ; NUMBER OF CREDITS
|
cmp #18 ; NUMBER OF CREDITS
|
||||||
beq done_star_credits
|
beq done_star_credits
|
||||||
|
|
||||||
;==================
|
;==================
|
||||||
@ -550,6 +543,10 @@ z_table:
|
|||||||
;======================
|
;======================
|
||||||
; some "random" numbers
|
; some "random" numbers
|
||||||
;======================
|
;======================
|
||||||
|
|
||||||
|
random_table EQU $2200
|
||||||
|
|
||||||
|
.if 0
|
||||||
random_table:
|
random_table:
|
||||||
.byte 103,198,105,115, 81,255, 74,236, 41,205,186,171,242,251,227, 70
|
.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 124,194, 84,248, 27,232,231,141,118, 90, 46 ,99, 51,159,201,154
|
||||||
@ -572,6 +569,4 @@ random_table:
|
|||||||
.byte 179,175,226,240,228,158, 79
|
.byte 179,175,226,240,228,158, 79
|
||||||
.byte 50,21
|
.byte 50,21
|
||||||
;73,253,130, 78,169
|
;73,253,130, 78,169
|
||||||
|
.endif
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user