Skip to content

Commit

Permalink
Moved main routines of beeb tracker into separate module so we can bu…
Browse files Browse the repository at this point in the history
…ild different volumes
  • Loading branch information
simondotm committed Jun 26, 2016
1 parent bac98b7 commit 1c9710b
Show file tree
Hide file tree
Showing 3 changed files with 1,690 additions and 1,659 deletions.
130 changes: 130 additions & 0 deletions beebtracker.h.6502
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
\ ******************************************************************
\\ Beeb Tracker
\ ******************************************************************



\ ******************************************************************
\ * Define app constants
\ ******************************************************************


\\ VU & beat bar FX

FX_chr_x = 4
FX_chr_y = 8
FX_chr_w = 32
FX_chr_h = 5
FX_address = MODE7_base_addr + FX_chr_y*40 + FX_chr_x
FX_address_row0 = FX_address
FX_address_row1 = FX_address_row0 + 40
FX_address_row2 = FX_address_row1 + 40
FX_address_row3 = FX_address_row2 + 40
FX_address_row4 = FX_address_row3 + 40

\\ Channel beat bar locations - beat bars are 3 chrs high
FX_address_beat = MODE7_base_addr + 40*14
FX_ch0_x = 10
FX_ch1_x = 17
FX_ch2_x = 24
FX_ch3_x = 31

\\ Playtime bar locations
FX_playtime_address = MODE7_base_addr + 40*6 + 8
FX_playtime_chrs = 24
FX_playtime_width = (FX_playtime_chrs*2)-1 ; SM: rounding hack. 48 really. 8bit precision is fun.

\\ Tracker screen setup
TRACKER_lineno_field_xpos = 4
TRACKER_ch3_field_xpos = 12
TRACKER_ch2_field_xpos = 19
TRACKER_ch1_field_xpos = 26
TRACKER_noise_field_xpos = 33

TRACKER_top_line_ypos = 14
TRACKER_active_line_ypos = 17
TRACKER_dupe_line_ypos = 18
TRACKER_bottom_line_ypos = 21

\\ Menu screen setup
MENU_entry_xpos = 3
MENU_entry_width = 32 ; if this changes from 32 then need to change code!
MENU_top_line_ypos = 16
MENU_bottom_line_ypos = 21
MENU_overlay_ypos = 14
MENU_overlay_size = 9 * MODE7_char_width ; 9 lines of 40 chars for our menu
MENU_overlay_dst_addr = MODE7_base_addr + MENU_overlay_ypos * MODE7_char_width

\\ Menu key config
MENU_key_toggle = IKN_esc
MENU_key_up = IKN_up
MENU_key_down = IKN_down
MENU_key_select = IKN_return

META_title_addr = MODE7_base_addr + 3 * MODE7_char_width + 9 ; title displayed at (9, 3)
META_author_addr = MODE7_base_addr + 4 * MODE7_char_width + 9 ; auther dispayed at (9, 4)
META_max_width = 30 ; 30 chars available
META_scroll_start_delay = 100 ; 2 seconds - time before meta data strings scroll
META_scroll_update_delay = 10 ; 0.2 seconds - scroll speed of meta data strings

META_clock_addr = MODE7_base_addr + 6 * MODE7_char_width + 3 ; clock displayed at (3, 6)
META_duration_addr = MODE7_base_addr + 6 * MODE7_char_width + 33 ; duration displayed at (33, 6)



\\ Params block for osfile command
.osfile_params SKIP 18



\\ Temporary vars
.tmp_var ; SHARED ; free for any function to use but not preserved across subroutines
.tmp_erase SKIP 1 ; used when erasing rows or pixels

.tmp_col_mask ; SHARED ; scr_init only - used to rotate font glyph data
.tmp_cur_col ; SHARED ; poll_scr only - current column into font
.tmp_fx_y SKIP 1 ; poll_fx only - current y value being plotted

.tmp_row_bit ; SHARED ; scr_init only - used to rotate font glyph data
.tmp_font_byte SKIP 1 ; poll_scr only - current byte of font data

.tmp_msg_idx SKIP 1 ; current index into scr_message - only used during poll_scr

\\ Generic vars
.writeptr SKIP 2 ; generic write ptr
.readptr SKIP 2 ; generic read ptr

\\ Scroll text vars
.scr_msg_idx SKIP 1 ; index into scr_message
.scr_col SKIP 1 ; current column in first character to be displayed
.scr_y SKIP 1 ; y coordinate of scroll text

\\ App state vars
.file_no SKIP 1 ; index into our file table
.menu_old_file SKIP 1
.menu_key_held SKIP 1

\\ System vars
.old_eventv SKIP 2

\\ Meta vars
.meta_timer SKIP 1 ; countdown timer before updating meta strings
.meta_idx SKIP 1 ; index into our meta strings
.meta_poll_count SKIP 1 ; count polls to update clock
.meta_clock_mins SKIP 1
.meta_clock_secs SKIP 1

\\ Playback timer vars
.playtime_interval SKIP 2 ; number of audio frames before playtime bar advances by 1 pixel
.playtime_counter SKIP 2
.playtime_index SKIP 1 ; current X offset of playtime bar (0-47)


\ ******************************************************************
\ * Space hijacked from OS for runtime buffers not preinitialised
\ ******************************************************************





Loading

0 comments on commit 1c9710b

Please sign in to comment.