From e574f056ce7c7aa968282df1e228974622d3ba06 Mon Sep 17 00:00:00 2001 From: SimonM Date: Wed, 6 Jul 2016 21:24:57 +0100 Subject: [PATCH] Removed some rogue files that got checked in accidentally --- temp/beebtrk.6502 | 385 ---- temp/beebtrk.ssd | Bin 204800 -> 0 bytes temp/data/Mode7 Font.url | 5 - temp/data/Mode7 Layout.url | 5 - temp/data/Mode7 Loading.url | 5 - temp/data/font_5x5.mode7 | 1 - temp/data/font_5x5_shifted.mode7 | 1 - temp/data/font_5x5_shifted_trimmed.mode7.bin | 1 - temp/data/loader_volume1.bin | 1 - temp/data/loader_volume1.bin.exo | Bin 255 -> 0 bytes temp/data/menu_overlay.mode7 | 1 - temp/data/menu_overlay_trimmed.mode7.bin | 1 - temp/data/screen2.mode7 | 1 - temp/data/screen3.mode7 | 1 - temp/lib/bbc.h.6502 | 157 -- temp/lib/beebtracker.h.6502 | 130 -- temp/lib/beebtracker.s.6502 | 2010 ------------------ temp/lib/exomiser.h.6502 | 53 - temp/lib/exomiser.s.6502 | 305 --- temp/lib/vgmplayer.h.6502 | 43 - temp/lib/vgmplayer.s.6502 | 416 ---- 21 files changed, 3522 deletions(-) delete mode 100644 temp/beebtrk.6502 delete mode 100644 temp/beebtrk.ssd delete mode 100644 temp/data/Mode7 Font.url delete mode 100644 temp/data/Mode7 Layout.url delete mode 100644 temp/data/Mode7 Loading.url delete mode 100644 temp/data/font_5x5.mode7 delete mode 100644 temp/data/font_5x5_shifted.mode7 delete mode 100644 temp/data/font_5x5_shifted_trimmed.mode7.bin delete mode 100644 temp/data/loader_volume1.bin delete mode 100644 temp/data/loader_volume1.bin.exo delete mode 100644 temp/data/menu_overlay.mode7 delete mode 100644 temp/data/menu_overlay_trimmed.mode7.bin delete mode 100644 temp/data/screen2.mode7 delete mode 100644 temp/data/screen3.mode7 delete mode 100644 temp/lib/bbc.h.6502 delete mode 100644 temp/lib/beebtracker.h.6502 delete mode 100644 temp/lib/beebtracker.s.6502 delete mode 100644 temp/lib/exomiser.h.6502 delete mode 100644 temp/lib/exomiser.s.6502 delete mode 100644 temp/lib/vgmplayer.h.6502 delete mode 100644 temp/lib/vgmplayer.s.6502 diff --git a/temp/beebtrk.6502 b/temp/beebtrk.6502 deleted file mode 100644 index 6f0c7ba..0000000 --- a/temp/beebtrk.6502 +++ /dev/null @@ -1,385 +0,0 @@ -\ ****************************************************************** -\ * Beeb Tracker -\ * Music player & visualiser in MODE 7 -\ * Kieran Connell & Simon Morris -\ * Demo team name TBD! :) -\ ****************************************************************** - -\\ Common global defines -INCLUDE "lib/bbc.h.6502" - -\ ****************************************************************** -\ * Define compilation flags -\ ****************************************************************** - -CODE_ORIGIN = &1100 ; assuming standard BBC Micro DFS this is safe! -_DEBUG = FALSE ; include extra stuff for debugging - -COMPILE_OPTION_EXIT = FALSE ; enable "Exit" in selection menu - - - -\ ****************************************************************** -\ * Define global constants -\ ****************************************************************** - - - - -\ ****************************************************************** -\ * Define app constants -\ ****************************************************************** - -\\ Number of entries in our file table -NUM_vgm_files = 27 - - -\ ****************************************************************** -\ * Define fast (zero page) runtime variables -\ ****************************************************************** - -\\ Our own app variables -ORG &00 -GUARD &9F ; user ZP + econet ZP - - -\\ Any includes here can declare ZP vars from the pool using SKIP -INCLUDE "lib/exomiser.h.6502" -INCLUDE "lib/vgmplayer.h.6502" -INCLUDE "lib/beebtracker.h.6502" - - - -\ ****************************************************************** -\ * Start address to be saved -\ ****************************************************************** - -LARGEST_VGM_SIZE = 20837 - -ORG CODE_ORIGIN ; code origin - assume standard BBC Micro -GUARD MODE7_base_addr-LARGEST_VGM_SIZE ; ensure code size plus size of largest VGM file doesn't hit start of screen memory - -.start - - -\ ****************************************************************** -\ * Code entry -\ ****************************************************************** - -INCLUDE "lib/exomiser.s.6502" -INCLUDE "lib/vgmplayer.s.6502" -INCLUDE "lib/beebtracker.s.6502" - -\ ****************************************************************** -\ * Main loop including high-level state machine -\ ****************************************************************** - -.main -{ -\\ ***** System initialise ***** \\ - - \\ *FX 200,3 - clear memory on break as we use OS memory areas and can cause nasty effects - LDA #200 - LDX #3 - JSR osbyte - - \\ Set MODE 7 - LDA #22: JSR oswrch - LDA #7: JSR oswrch - - \\ Turn off cursor by directly poking crtc - SEI - LDA #10: STA &FE00 - LDA #32: STA &FE01 - CLI - - - - - JSR tracker_main - -\\ ***** Exit app entirely ***** \\ - - \\ Credits / Outro screen goes here \\ - - \\ Exit cleanly - tidy up anything else here! - LDA #12: JSR oswrch - - \\ Would be nice to clear escape state and issue BASIC NEW to avoid "Bad Program" error - - .return - RTS -} - - - -.code_end - - -\ ****************************************************************** -\ * Stored data -\ ****************************************************************** - -.data_start -<<<<<<< HEAD - - -.menu_data_filename EQUS "BeebDat", 13 -.loadscreen_data_filename EQUS "LSCREEN", 13 - -\\ Need to put this macro last as I don't know how to undo the character map! -\\ -SET_TELETEXT_FONT_CHAR_MAP - -\\ Scrolltext messages stored as font glyph byte offsets -.scrolltext_start - -.demo_message -EQUS " Welcome to the Bitshifters Battle of the Bits BeebTracker Demo... Showcasing 27 awesome VGM chiptune music files that have been converted from other platforms to work on your 4Mhz BBC Micro and replayed on your SN76489 programmable sound chip! " ;You've never heard chip tunes like this before! This production was brought to you by Kieran and Scrubbly ", 0 - -.load_message -EQUS "Loading... ", 0 - -\\ ** ANY EQUS LINES AFTER THIS POINT WILL STILL CONTAIN REMAPPED CHARACTERS ** \\ - -.scrolltext_end - -\\ Clear character mappings -RESET_MAPCHAR - - - - -\ ****************************************************************** -\ * EXO VGM data file -\ * This must be compressed using the following flags: -\ * exomizer.exe raw -c -m 1024 -o -\ ****************************************************************** - -.VGM_stream_data -\\ Now loaded at run-time so don't know end of data! -INCBIN "data/loader_volume1.bin.exo" - - -\ ****************************************************************** -\ * End address to be saved -\ ****************************************************************** - -.end - -ORG &0900 -GUARD &0CFF - -======= ->>>>>>> origin/master -.menu_data_start - -\\ No longer require loading_table but each entry must be exactly 8 bytes -\\ Does not have to be aligned but entries have to be fixed size -\\ This isn't actually any smaller than using pointer tables but fewer things to type I suppose :) - -.vgm_filenames -EQUS "V.A", 13,0,0,0,0 -EQUS "V.BB", 13,0,0,0 -EQUS "V.C", 13,0,0,0,0 -EQUS "V.D", 13,0,0,0,0 -EQUS "V.E", 13,0,0,0,0 -EQUS "V.F", 13,0,0,0,0 -EQUS "V.G", 13,0,0,0,0 -EQUS "V.H", 13,0,0,0,0 -EQUS "V.I", 13,0,0,0,0 -EQUS "V.J", 13,0,0,0,0 -EQUS "V.K", 13,0,0,0,0 -EQUS "V.L", 13,0,0,0,0 -EQUS "V.M", 13,0,0,0,0 -EQUS "V.N", 13,0,0,0,0 -EQUS "V.O", 13,0,0,0,0 -EQUS "V.P", 13,0,0,0,0 -EQUS "V.Q", 13,0,0,0,0 -EQUS "V.R", 13,0,0,0,0 -EQUS "V.S", 13,0,0,0,0 -EQUS "V.T", 13,0,0,0,0 -EQUS "V.U", 13,0,0,0,0 -EQUS "V.V", 13,0,0,0,0 -EQUS "V.W", 13,0,0,0,0 -EQUS "V.X", 13,0,0,0,0 -EQUS "V.Y", 13,0,0,0,0 -EQUS "V.Z", 13,0,0,0,0 -EQUS "V.ZZ", 13,0,0,0 - - - - -\\ No longer require pointer table but each entry must be exactly 32 bytes -\\ Does not have to be aligned but entries have to be fixed size -\\ Code to multiple by 32 probably takes up as much space as the previous pointer tables! - -.menu_entries -EQUS " 1. Master Tracker " -EQUS " 2. Exception " -EQUS " 3. Fluid Dynamics " -EQUS " 4. Bonus Zone " -EQUS " 5. MisSioN 76489 " -EQUS " 6. LOL I am late Sorry " -EQUS " 7. Sonic Enters a Dance Club " -EQUS " 8. I Can Haz D00ty " -EQUS " 9. Infiltration Mission " -EQUS "10. Overcast " -EQUS "11. iNTeNSiTY " -EQUS "12. Kill Chipsters on Sight! " -EQUS "13. Nintendo Entertainment Samba" -EQUS "14. Happy Fun Times " -EQUS "15. Pinky Plinky Thingy " -EQUS "16. Reg " -EQUS "17. Masks Revenge " -EQUS "18. Gost Haus " -EQUS "19. Adrenaline Lift " -EQUS "20. The Long Goodbye " -EQUS "21. Chilled Out Princess " -EQUS "22. The Circus Is In Town " -EQUS "23. Frozen Dancehall o/t Pharoah" -EQUS "24. PSG Strut " -EQUS "25. My Mission " -EQUS "26. My New Used Car " -EQUS "27. Run Under Fire " - -IF COMPILE_OPTION_EXIT -EQUS "Exit " -ENDIF - - - - -.menu_data_end - - -\ ****************************************************************** -\ * End address to be saved -\ ****************************************************************** - -.end - - - -\ ****************************************************************** -\ * EXO VGM data file -\ * This must be compressed using the following flags: -\ * exomizer.exe raw -c -m 1024 -o -\ ****************************************************************** - -.VGM_stream_data -\\ Now loaded at run-time so don't know end of data! -.VGM_end_of_data - - -\ ****************************************************************** -\ * Print out code & data metrics -\ ****************************************************************** - -D_MENU_SIZE = menu_data_end-menu_data_start -D_LOOKUP_SIZE = lookup_tables_end-lookup_tables_start -D_NOTES_SIZE = note_tables_end-note_tables_start -D_SCROLLTEXT_SIZE = scrolltext_end-scrolltext_start -D_SCREENS_SIZE = mode7_data_end-mode7_data_start -D_EXO_CODE_SIZE = exo_end-exo_start -D_VGM_PLAYER_CODE_SIZE = vgm_player_end-vgm_player_start - - -PRINT "------------------------------------------------------------" -PRINT "Code origin = ", ~CODE_ORIGIN - -PRINT "Code size =", end-start-D_MENU_SIZE-D_LOOKUP_SIZE-D_NOTES_SIZE-D_SCROLLTEXT_SIZE-D_SCREENS_SIZE -PRINT " menu data size =",D_MENU_SIZE -PRINT " lookup tables size =",D_LOOKUP_SIZE -PRINT " note tables size =",D_NOTES_SIZE -PRINT " scrolltext size =",D_SCROLLTEXT_SIZE -PRINT " MODE 7 screen size =", D_SCREENS_SIZE -PRINT " VGM Player code size = ", D_VGM_PLAYER_CODE_SIZE -PRINT " EXO code size = ", D_EXO_CODE_SIZE -PRINT "Run-time vars (above origin) =", VGM_stream_data-end -PRINT "------------------------------------------------------------" -PRINT "Total size (disk) =", end-start -PRINT "Total size (code + data + vars above origin) =", VGM_stream_data-start -PRINT "Available memory (above origin) =", &7C00 - CODE_ORIGIN -PRINT "Max song size =", &7C00 - VGM_stream_data -PRINT "------------------------------------------------------------" - - -\ ****************************************************************** -\ * Save the code -\ ****************************************************************** - -<<<<<<< HEAD - -SAVE "!Boot", start, end, main -SAVE "BeebDat", menu_data_start, menu_data_end - -PUTFILE "vgm_botb/BotB 7832 MasterTracker.raw.exo", "V.0", 0 -PUTFILE "vgm_botb/BotB 7383 exception.raw.exo", "V.1", 0 ; V.B fails for some wierd reason? -PUTFILE "vgm_botb/BotB 16433 Slimeball - Fluid Dynamics.raw.exo", "V.2", 0 -PUTFILE "vgm_botb/BonusZone.raw.exo", "V.3", 0 -PUTFILE "vgm_botb/MISSION76496.raw.exo", "V.4", 0 -PUTFILE "vgm_botb/BotB 7639 lol i am late sorry.raw.exo", "V.5", 0 -PUTFILE "vgm_botb/BotB 4406 sonic_enters_a_dance_club.raw.exo", "V.6", 0 -PUTFILE "vgm_botb/BotB 1643 flashbob - I can haz d00ty caiclz plz.raw.exo", "V.7", 0 -PUTFILE "vgm_botb/BotB 1819 Kulor - Snofer Apostrophy S Infiltration Mission.raw.exo", "V.8", 0 -PUTFILE "vgm_botb/BotB 2310 chunter - overcast.raw.exo", "V.9", 0 -PUTFILE "vgm_botb/BotB 5106 null1024 - iNTeNSiTY.raw.exo", "V.A", 0 -PUTFILE "vgm_botb/BotB 5135 b00daw - kill chipsters on sight!.raw.exo", "V.C", 0 -PUTFILE "vgm_botb/BotB 5181 Kulor - Nintendo Entertainment Samba.raw.exo", "V.D", 0 -PUTFILE "vgm_botb/BotB 7637 happyfuntimes.raw.exo", "V.E", 0 -PUTFILE "vgm_botb/BotB 8493 null1024 - pinky plinky thingy.raw.exo", "V.F", 0 -PUTFILE "vgm_botb/BotB 9302 reg.raw.exo", "V.G", 0 -PUTFILE "vgm_botb/BotB 10995 masks revenge.raw.exo", "V.H", 0 -PUTFILE "vgm_botb/BotB 10996 gost haus.raw.exo", "V.I", 0 -PUTFILE "vgm_botb/BotB 11925 Interrobang Pie - Adrenaline Lift.raw.exo", "V.J", 0 -PUTFILE "vgm_botb/BotB 12143 DimWiddy - The Long Goodbye.raw.exo", "V.K", 0 -PUTFILE "vgm_botb/BotB 14648 chilled out princess.raw.exo", "V.L", 0 -PUTFILE "vgm_botb/BotB 16712 stewboy - The Circus is in Town.raw.exo", "V.M", 0 -PUTFILE "vgm_botb/BotB 16439 Chip Champion - frozen dancehall of the pharaoh.raw.exo", "V.N", 0 -PUTFILE "vgm_botb/BotB 20609 Jredd - PSG Strut.raw.exo", "V.O", 0 -PUTFILE "vgm_botb/my_mission.raw.exo", "V.P", 0 -PUTFILE "vgm_botb/my_new_used_car.raw.exo", "V.Q", 0 -PUTFILE "vgm_botb/run_under_fire.raw.exo", "V.R", 0 -;PUTFILE "data/loader_volume1.bin", "LSCREEN", 0 -======= -SAVE "BeebTrk", start, end, main - -PUTFILE "vgm_botb/BotB 7832 MasterTracker.raw.exo", "V.A", 0 -PUTFILE "vgm_botb/BotB 7383 exception.raw.exo", "V.BB", 0 ; V.B fails for some wierd reason? -PUTFILE "vgm_botb/BotB 16433 Slimeball - Fluid Dynamics.raw.exo", "V.C", 0 -PUTFILE "vgm_botb/BonusZone.raw.exo", "V.D", 0 -PUTFILE "vgm_botb/MISSION76496.raw.exo", "V.E", 0 -PUTFILE "vgm_botb/BotB 7639 lol i am late sorry.raw.exo", "V.F", 0 -PUTFILE "vgm_botb/BotB 4406 sonic_enters_a_dance_club.raw.exo", "V.G", 0 -PUTFILE "vgm_botb/BotB 1643 flashbob - I can haz d00ty caiclz plz.raw.exo", "V.H", 0 -PUTFILE "vgm_botb/BotB 1819 Kulor - Snofer Apostrophy S Infiltration Mission.raw.exo", "V.I", 0 -PUTFILE "vgm_botb/BotB 2310 chunter - overcast.raw.exo", "V.J", 0 -PUTFILE "vgm_botb/BotB 5106 null1024 - iNTeNSiTY.raw.exo", "V.K", 0 -PUTFILE "vgm_botb/BotB 5135 b00daw - kill chipsters on sight!.raw.exo", "V.L", 0 -PUTFILE "vgm_botb/BotB 5181 Kulor - Nintendo Entertainment Samba.raw.exo", "V.M", 0 -PUTFILE "vgm_botb/BotB 7637 happyfuntimes.raw.exo", "V.N", 0 -PUTFILE "vgm_botb/BotB 8493 null1024 - pinky plinky thingy.raw.exo", "V.O", 0 -PUTFILE "vgm_botb/BotB 9302 reg.raw.exo", "V.P", 0 -PUTFILE "vgm_botb/BotB 10995 masks revenge.raw.exo", "V.Q", 0 -PUTFILE "vgm_botb/BotB 10996 gost haus.raw.exo", "V.R", 0 -PUTFILE "vgm_botb/BotB 11925 Interrobang Pie - Adrenaline Lift.raw.exo", "V.S", 0 -PUTFILE "vgm_botb/BotB 12143 DimWiddy - The Long Goodbye.raw.exo", "V.T", 0 -PUTFILE "vgm_botb/BotB 14648 chilled out princess.raw.exo", "V.U", 0 -PUTFILE "vgm_botb/BotB 16712 stewboy - The Circus is in Town.raw.exo", "V.V", 0 -PUTFILE "vgm_botb/BotB 16439 Chip Champion - frozen dancehall of the pharaoh.raw.exo", "V.W", 0 -PUTFILE "vgm_botb/BotB 20609 Jredd - PSG Strut.raw.exo", "V.X", 0 -PUTFILE "vgm_botb/my_mission.raw.exo", "V.Y", 0 -PUTFILE "vgm_botb/my_new_used_car.raw.exo", "V.Z", 0 -PUTFILE "vgm_botb/run_under_fire.raw.exo", "V.ZZ", 0 - ->>>>>>> origin/master - - - -IF _DEBUG ; only needed for debug purposes -PUTFILE "data/screen3.mode7", "screen", &7C00 -PUTFILE "data/font_5x5.mode7", "font", &7C00 -PUTFILE "data/font_5x5_shifted.mode7", "font2", &7C00 -PUTFILE "data/menu_overlay.mode7", "menu", &7C00 -ENDIF \ No newline at end of file diff --git a/temp/beebtrk.ssd b/temp/beebtrk.ssd deleted file mode 100644 index 33d4097986f3b31f0c3ec811a2b930ea6ebea540..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 204800 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 vtWCH~+oL3=bqF(sw8n15Vm)d&+B^~jzx!6$ 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�D$NrJf}I@E%1R6vZr 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

O87~_Ku_t<F=-!L`xx`4k@= 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≪4bIa#NGOKe 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 CK;*Un diff --git a/temp/data/Mode7 Font.url b/temp/data/Mode7 Font.url deleted file mode 100644 index aa5070e..0000000 --- a/temp/data/Mode7 Font.url +++ /dev/null @@ -1,5 +0,0 @@ -[{000214A0-0000-0000-C000-000000000046}] -Prop3=19,2 -[InternetShortcut] -IDList= -URL=http://edit.tf/#0:LuFjB4sYOFiR4sYPFiR4sSOFiRogaLHiRAgaNMCRogQdMDQu3Rte_NJl4MOvBL35sG6FBl5NW6Nrw6sMnBK3UsOvBg1QtS_RA0cLGDxYwcLGDxYwcLEix4kaIGjRA0aIGmTAkyYEizYkLtVLXLwSt0aDK5Yt1bDlzSIGqDLwSqnSB6pauFLBA1QeOLAu42MMDRAsWMFixhg2IHixI4WIFmxI4WMHCxgsWMEDRAgQIC-3il49W diff --git a/temp/data/Mode7 Layout.url b/temp/data/Mode7 Layout.url deleted file mode 100644 index cf83f0c..0000000 --- a/temp/data/Mode7 Layout.url +++ /dev/null @@ -1,5 +0,0 @@ -[{000214A0-0000-0000-C000-000000000046}] -Prop3=19,2 -[InternetShortcut] -IDList= -URL=http://edit.tf/#0:NEUDD_vaf16X-vS_97Rf_X6n_3Q_-6H_3U1_6n6_U_-oGCA0TzNf-5j_WIP6xB_3MUH9Bq-99T3_qaoNT1jqepNT3ug7pDRJAh__kv_40__Gn_8lQf0Gpr_1Nf6r6_1Nf-r781Nf6BCgQIEFPfuzug0Lf0hIKGjD0QTMufLuyIN-ZB00ZUFDRh5b1y5BB69NG_k6DQtOzZ5QQt-Lnr8oEyDpoyoO-HTsy8uaDJlXLi_hYsWLF diff --git a/temp/data/Mode7 Loading.url b/temp/data/Mode7 Loading.url deleted file mode 100644 index e2e50ca..0000000 --- a/temp/data/Mode7 Loading.url +++ /dev/null @@ -1,5 +0,0 @@ -[{000214A0-0000-0000-C000-000000000046}] -Prop3=19,2 -[InternetShortcut] -IDList= -URL=http://edit.tf/#0:Imv-xB-ToHixJqUtECzYs0bNjBBo2MHixJowPEDxIg1bUCAma972H9Yg6vEGpf1QINSBV--JUDZZt6oECh_0QfViDV-QICRr-sS_ViResXKliNAgVIEG9UsQJUCpUsSIEqpAuWLESZWgQIEFPfuzug0Lf0hIKGjD0QTMufLuyIN-ZB00ZUFDRh5b1y5BB69NG_k6DQtOzZ5QQt-Lnr8oEyDpoyoO-HTsy8uaDJlXLi_hYsWLF diff --git a/temp/data/font_5x5.mode7 b/temp/data/font_5x5.mode7 deleted file mode 100644 index e350c5b..0000000 --- a/temp/data/font_5x5.mode7 +++ /dev/null @@ -1 +0,0 @@ -—8,0<,08,$<,0<,$<,$8,$4 4,<$ 44`$4 t`4—7#5ws$ep0up%ws07! er57#5pu0dp%7)0up05!5—t 48,0<,08,0<,08,$,<$4 44 44 4d`$d`$,l$—5)5ep%7# e917+0rs$ 5 ep%*: =)58)0 5 xq0—8l0`4 ,,0,,0`l <,$8, ,l$8,08,0,,0 4 —mq%qu0vs0rs$-n$ss$gs$h! fs$bs% 3 1 0 \ No newline at end of file diff --git a/temp/data/font_5x5_shifted.mode7 b/temp/data/font_5x5_shifted.mode7 deleted file mode 100644 index ec196e4..0000000 --- a/temp/data/font_5x5_shifted.mode7 +++ /dev/null @@ -1 +0,0 @@ -—8,0<,08,$<,0<,$<,$8,$4 4,<$ 44`$4 t`4—7#5ws$ep0up%ws07! er57#5pu0dp%7)0up05!5—t 48,0<,08,0<,08,$,<$4 44 44 4d`$d`$,l$—5)5ep%7# e917+0rs$ 5 ep%*: =)58)0 5 xq0—8l0`4 ,,0,,0`l <,$8, ,l$8,08,0,,0 4 —mq%qu0vs0rs$-n$ss$gs$h! fs$bs% 3 1 0 ‘ ‘ ‘`,dh,d`,,h,dh,,h,,`,,h h(l, hh 8h h0x‘j#kjs9*ppjp:jsqj# *p{j#k`zp(p:j#djppj"j’h0h`,dh,d`,dh,d`,,(l,h hh hh h(08(08(,<’j"n*p:j#!*rfj#e`s9 j *p: e%j&n`&d j `vp“`,t x (,d(,d 84h,,`,$(,<`,d`,d(,d h “*v:bzphsq`s9*,=bs9*s9 6 (s9 s; b! b ` “ \ No newline at end of file diff --git a/temp/data/font_5x5_shifted_trimmed.mode7.bin b/temp/data/font_5x5_shifted_trimmed.mode7.bin deleted file mode 100644 index dc45529..0000000 --- a/temp/data/font_5x5_shifted_trimmed.mode7.bin +++ /dev/null @@ -1 +0,0 @@ -—8,0<,08,$<,0<,$<,$8,$4 4,<$ 44`$4 t`4—7#5ws$ep0up%ws07! er57#5pu0dp%7)0up05!5—t 48,0<,08,0<,08,$,<$4 44 44 4d`$d`$,l$—5)5ep%7# e917+0rs$ 5 ep%*: =)58)0 5 xq0—8l0`4 ,,0,,0`l <,$8, ,l$8,08,0,,0 4 —mq%qu0vs0rs$-n$ss$gs$h! fs$bs% 3 1 0 ‘ ‘ ‘`,dh,d`,,h,dh,,h,,`,,h h(l, hh 8h h0x‘j#kjs9*ppjp:jsqj# *p{j#k`zp(p:j#djppj"j’h0h`,dh,d`,dh,d`,,(l,h hh hh h(08(08(,<’j"n*p:j#!*rfj#e`s9 j *p: e%j&n`&d j `vp“`,t x (,d(,d 84h,,`,$(,<`,d`,d(,d h “*v:bzphsq`s9*,=bs9*s9 6 (s9 s; b! b ` “ \ No newline at end of file diff --git a/temp/data/loader_volume1.bin b/temp/data/loader_volume1.bin deleted file mode 100644 index 95b7df0..0000000 --- a/temp/data/loader_volume1.bin +++ /dev/null @@ -1 +0,0 @@ -—šžssss“ssss–ssss’ssss•ssss‘ssss”ssss1 —šž —šž j0b(=`T2>YA|9?C_P|2Qb~3SZ)|9Ajc&2fvp# zhhV_oU}WR>A<8fZ+4d?S_nEjSQK~zFa>P9X%NUuUk22m_*GL$L#kL$uTXVND7y(>k250xnEfd=l}*A}R^ds!z9R7>0RD%Igsn0P F0D#|EX>0%h diff --git a/temp/data/menu_overlay.mode7 b/temp/data/menu_overlay.mode7 deleted file mode 100644 index f5cb1fc..0000000 --- a/temp/data/menu_overlay.mode7 +++ /dev/null @@ -1 +0,0 @@ -‘šl ~' <,$j)4 ,l,hll0 hl0<,$h`< <$ jm “š{o0, u< j/u j *~|% 6,mu (?t }, j~ ’š,%},$/,.*,# * o*, % **,$ %* .,,"&+ Song:†BotB Phat Legend of the Pharo.. Author:†Billy Bobsky & the wailers de..—x,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,t —uƒ0:31•=,,,,,,,,,,,,n,,,,,,,,,nƒ4:32—j —z,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,w —5‘j5j5 ph4—j —5“j5j5 `0|j5j5—j —5“j5j5 ph4j5j5j5—j —5’j5j5`0 `0|j5j5j5j5j5—j —5’j5j5j5h4ph4j5j5j5j5j5j5—j —=,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,n ƒSELECT TRACK — — —œ—}||||||||||||||||||||||||||||||||||||~ ‡„1.TRACK 1 - BLAH BLAH BLAH BLAH BL—jœ…2.TRACK 2 - BLAH BLAH BLAH BLAH BL — T ‡„3.TRACK 3 - BLAH BLAH BLAH BLAH BL—jœ‡„4.TRACK 4 - BLAH BLAH BLAH BLAH BL—jœ‡„5.TRACK 5 - BLAH BLAH BLAH BLAH BL—jœ—+////////////////////////////////////' —š58,`,h,h,44 4 ,<$<,(08(l, |l|||||,| –š5r9*pj jp5u0u0 5 wq`&d j ||~{|~ \ No newline at end of file diff --git a/temp/data/menu_overlay_trimmed.mode7.bin b/temp/data/menu_overlay_trimmed.mode7.bin deleted file mode 100644 index b91f906..0000000 --- a/temp/data/menu_overlay_trimmed.mode7.bin +++ /dev/null @@ -1 +0,0 @@ -ƒSELECT TRACK — — —œ—}||||||||||||||||||||||||||||||||||||~ ‡„1.TRACK 1 - BLAH BLAH BLAH BLAH —jœ…2.TRACK 2 - BLAH BLAH BLAH BLAH — T ‡„3.TRACK 3 - BLAH BLAH BLAH BLAH —jœ‡„4.TRACK 4 - BLAH BLAH BLAH BLAH —jœ‡„5.TRACK 5 - BLAH BLAH BLAH BLAH —jœ—+////////////////////////////////////' \ No newline at end of file diff --git a/temp/data/screen2.mode7 b/temp/data/screen2.mode7 deleted file mode 100644 index 362ba19..0000000 --- a/temp/data/screen2.mode7 +++ /dev/null @@ -1 +0,0 @@ -l ~' <,$j)4 ,l,hll0 hl0<,$h`< <$ jm {o0, u< j/u j *~|% 6,mu (?t }, j~ ,%},$/,.*,# * o*, % **,$ %* .,,"&+ Song:BotB Phat Legend of the Pharo.. Author:Billy Bobsky & the wailers de..x,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,t u0:31=,,,,,,,,,,,,n,,,,,,,,,n4:32j z,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,w 5j5j5 ph4j 5j5j5 `0|j5j5j 5j5j5 ph4j5j5j5j 5j5j5`0 `0|j5j5j5j5j5j 5j5j5j5h4ph4j5j5j5j5j5j5j =,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,n 5 0123 c_33pc_3f c_3f c_3fj 5 0123 ---e---f|---f ---fj 5 0123 ---f---f---f|---fj   0123 c_3f c-2f c_3f c_5  5 0123 5---f5---f5---f5---fj 5 0123 5---f5---f5---f5---fj 5 0123 5---f5---f5---f5---fj +,,,,,,,,-,,,,,,-,,,,,,-,,,,,,-,,,,,,' 58,`,h,h,44 4 ,<$<,(08(l, |l|||||,| 5r9*pj jp5u0u0 5 wq`&d j ||~{|~ \ No newline at end of file diff --git a/temp/data/screen3.mode7 b/temp/data/screen3.mode7 deleted file mode 100644 index 3ef41ad..0000000 --- a/temp/data/screen3.mode7 +++ /dev/null @@ -1 +0,0 @@ -š‘ 0o4/%/%o4//j?}h?}h?}j5j?/j?} 0 š“f5n1, , n1  j}wj=j5 j=1j=$j=w w$š’ !~%|4|4~%  j5j5*}?j5j}|j5 ! Song:†BotB Phat Legend of the Pharo. Author:†Billy Bobsky & the wailers de. —x,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,t —5ƒ0:31•=,,,,,,,,,,,,n,,,,,,,,,nƒ4:32—j —{,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,w —5‘j5j5 ph4—j —5“j5j5 `0|j5j5—j —5“j5j5 ph4j5j5j5—j —5’j5j5`0 `0|j5j5j5j5j5—j —5’j5j5j5h4ph4j5j5j5j5j5j5—j —=,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,n —5„ 0123 ‘„c_33‘p„c_3f‘ „c_3f‘ „c_3f—j —5„ 0123 “„---e“„---f“|„---f“ „---f—j —5„ 0123 ’„---f’„---f’„---f’|„---f—j „ 0123 c_3f c-2f c_3f c_5 — —5 „0123 —5„---f—5„---f—5„---f—5„---f—j —5 „0123 —5„---f—5„---f—5„---f—5„---f—j —5 „0123 —5„---f—5„---f—5„---f—5„---f—j —+,,,,,,,,-,,,,,,-,,,,,,-,,,,,,-,,,,,,' —š|48,`,h,h,44 4 ,<$<,(08(l, |l|||||,| –š5r9*pj jp5u0u0 5 wq`&d j ||~{|~ \ No newline at end of file diff --git a/temp/lib/bbc.h.6502 b/temp/lib/bbc.h.6502 deleted file mode 100644 index d1406f8..0000000 --- a/temp/lib/bbc.h.6502 +++ /dev/null @@ -1,157 +0,0 @@ - -\ ****************************************************************** -\ * Define OS entries (could be INCLUDE bbc_os.h) -\ ****************************************************************** - -osfile = &FFDD -oswrch = &FFEE -osasci = &FFE3 -osbyte = &FFF4 -osword = &FFF1 -EVENTV = &0220 - -\\ Internal Key Number not INKEY! -IKN_esc = 112 -IKN_up = 57 -IKN_down = 41 -IKN_return = 73 -IKN_q = 16 -IKN_a = 65 - -\\ Opcodes -SEI_OP = $78 -CLI_OP = $58 -NOP_OP = $ea - -\\ SN Register Values -SN_REG_MASK = &70 -SN_REG_TONE3_FREQ = 0 -SN_REG_TONE3_VOL = 1 -SN_REG_TONE2_FREQ = 2 -SN_REG_TONE2_VOL = 3 -SN_REG_TONE1_FREQ = 4 -SN_REG_TONE1_VOL = 5 -SN_REG_NOISE_CTRL = 6 -SN_REG_NOISE_VOL = 7 -SN_REG_MAX = 8 - -\\ SN Register Bit-field -SN_BIT_TONE3_FREQ = &01 -SN_BIT_TONE3_VOL = &02 -SN_BIT_TONE2_FREQ = &04 -SN_BIT_TONE2_VOL = &08 -SN_BIT_TONE1_FREQ = &10 -SN_BIT_TONE1_VOL = &20 -SN_BIT_NOISE_CTRL = &40 -SN_BIT_NOISE_VOL = &80 - -\\ SN Frequency Constants -SN_FREQ_BYTE_MASK = &80 -SN_FREQ_FIRST_BYTE_MASK = &0F -SN_FREQ_SECOND_BYTE_MASK = &3F - -\\ SN Volume Constants -SN_VOL_MASK = &0F -SN_VOL_MAX = &0F - -\\ Noise Freqency Vaues -SN_NF_MASK = &03 -SN_NF_LOW = 0 -SN_NF_MED = 1 -SN_NF_HIGH = 2 -SN_NF_TONE1 = 3 - -\\ Noise Frequency Type -SN_FB_MASK = &04 -SN_FB_PERIODIC = 0 -SN_FB_WHITENOISE = &04 - - - -\\ MODE 7 -MODE7_base_addr = &7C00 -MODE7_char_width = 40 -MODE7_char_height = 25 -MODE7_texel_width = (MODE7_char_width - 2) * 2 -MODE7_texel_height = MODE7_char_height * 3 - -MODE7_alpha_black = 128 -MODE7_graphic_black = 144 -MODE7_contiguous = 153 -MODE7_separated = 154 - -\\ Macro to reset any mapped characters -\\ since BeebASM doesn't have any feature for this -MACRO RESET_MAPCHAR - - MAPCHAR 'A', 'A' - MAPCHAR 'B', 'B' - MAPCHAR 'C', 'C' - MAPCHAR 'D', 'D' - MAPCHAR 'E', 'E' - MAPCHAR 'F', 'F' - MAPCHAR 'G', 'G' - MAPCHAR 'H', 'H' - MAPCHAR 'I', 'I' - MAPCHAR 'J', 'J' - MAPCHAR 'K', 'K' - MAPCHAR 'L', 'L' - MAPCHAR 'M', 'M' - MAPCHAR 'N', 'N' - MAPCHAR 'O', 'O' - MAPCHAR 'P', 'P' - MAPCHAR 'Q', 'Q' - MAPCHAR 'R', 'R' - MAPCHAR 'S', 'S' - MAPCHAR 'T', 'T' - MAPCHAR 'U', 'U' - MAPCHAR 'V', 'V' - MAPCHAR 'W', 'W' - MAPCHAR 'X', 'X' - MAPCHAR 'Y', 'Y' - MAPCHAR 'Z', 'Z' - - MAPCHAR 'a', 'a' - MAPCHAR 'b', 'b' - MAPCHAR 'c', 'c' - MAPCHAR 'd', 'd' - MAPCHAR 'e', 'e' - MAPCHAR 'f', 'f' - MAPCHAR 'g', 'g' - MAPCHAR 'h', 'h' - MAPCHAR 'i', 'i' - MAPCHAR 'j', 'j' - MAPCHAR 'k', 'k' - MAPCHAR 'l', 'l' - MAPCHAR 'm', 'm' - MAPCHAR 'n', 'n' - MAPCHAR 'o', 'o' - MAPCHAR 'p', 'p' - MAPCHAR 'q', 'q' - MAPCHAR 'r', 'r' - MAPCHAR 's', 's' - MAPCHAR 't', 't' - MAPCHAR 'u', 'u' - MAPCHAR 'v', 'v' - MAPCHAR 'w', 'w' - MAPCHAR 'x', 'x' - MAPCHAR 'y', 'y' - MAPCHAR 'z', 'z' - - MAPCHAR '0', '0' - MAPCHAR '1', '1' - MAPCHAR '2', '2' - MAPCHAR '3', '3' - MAPCHAR '4', '4' - MAPCHAR '5', '5' - MAPCHAR '6', '6' - MAPCHAR '7', '7' - MAPCHAR '8', '8' - MAPCHAR '9', '9' - MAPCHAR '?', '?' - MAPCHAR '!', '!' - MAPCHAR '.', '.' - - MAPCHAR ' ', ' ' - -ENDMACRO \ No newline at end of file diff --git a/temp/lib/beebtracker.h.6502 b/temp/lib/beebtracker.h.6502 deleted file mode 100644 index 4b80cfc..0000000 --- a/temp/lib/beebtracker.h.6502 +++ /dev/null @@ -1,130 +0,0 @@ -\ ****************************************************************** -\\ 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 -\ ****************************************************************** - - - - - diff --git a/temp/lib/beebtracker.s.6502 b/temp/lib/beebtracker.s.6502 deleted file mode 100644 index 8129aba..0000000 --- a/temp/lib/beebtracker.s.6502 +++ /dev/null @@ -1,2010 +0,0 @@ -\ ****************************************************************** -\\ Beeb Tracker -\ ****************************************************************** - - - - - -.tracker_main -{ - - \\ Debounce - LDA #&FF - STA menu_key_held -<<<<<<< HEAD - - \\ Present intro screen - JSR show_intro - - \\ Install the menu data - JSR load_menu_data -======= ->>>>>>> origin/master - - \\ Load first file in our list - LDA #0 - STA file_no - - - \\ Intro screen goes here \\ - - -\\ ***** Loading state ***** \\ - - .loading_state - { - \\ Clear screen - LDA #12: JSR oswrch - JSR teletexel_init - - \\ Init scrolltext with loading message - LDA #LO(load_message):LDX #HI(load_message) - LDY #11:JSR init_scr - - \\ Start our event driven fx - ldx #LO(load_eventv) - ldy #HI(load_eventv) - JSR start_eventv - - \\ Blocking file load - JSR load_file_from_table - PHA ; store return value - - \\ Kill our event driven fx - JSR stop_eventv - - \\ Returned error? - PLA - BEQ no_error - - \\ Handle error (exit) - JMP return - - .no_error - } - -\\ ***** Demo (Tracker) state ***** \\ - - \\ Initialise demo state - JSR init_demo - - .enter_demo_state - - \\ Technically should populate the tracker display with genuine music data here! - \\ But at 20ms per line it fills up with data in a 140ms so is hardly noticable... - - \\ Demo loop - .demo_loop - { - \\ Check for pressed keys - LDA #121 - LDX #&10 - JSR osbyte - - \\ Still holding same key - CPX menu_key_held - BEQ no_key_pressed - - \\ Remember current key - STX menu_key_held - - \\ Any key pressed? - CPX #&FF - BEQ no_key_pressed - - \\ Check escape - CPX #MENU_key_toggle - BEQ enter_menu_state - - .no_key_pressed - - \\ Poll the music player - LDA player_ended - BNE song_ended - - \\ Wait for vsync - NO LONGER WAITING FOR VSYNC - ;LDA #19 - ;JSR osbyte - - \\ Actually sync to audio instead - LDA player_counter - .wait_for_audio_sync - CMP player_counter - BEQ wait_for_audio_sync - - \\ At this point we know audio data has just been sent to SN - \\ So all of our vars from the player are fresh - \\ Use these to render our demo FX (before next vsync!) - \\ May still want to do something clever to avoid flicker - - \\ Poll tracker - JSR poll_tracker - - \\ Poll our VU effects - LDA #&FF ; we do want beat bars - JSR poll_fx - - \\ Update scrolltext - JSR poll_scr - - \\ Loop - JMP demo_loop - - .song_ended - - \\ Deinitialise demo state - JSR deinit_demo - - \\ Increment file in table - LDX file_no - INX - CPX #NUM_vgm_files - BCC next_file - LDX #0 - .next_file - STX file_no - - \\ Automatically load next file - JMP loading_state - } - -\\ ***** Menu state ***** \\ - - .enter_menu_state - - \\ Initialise menu state - - JSR init_menu - JSR menu_populate - - \\ Menu loop - .menu_loop - { - \\ Check for pressed keys - LDA #121 - LDX #&10 - JSR osbyte - - \\ Still holding same key - CPX menu_key_held - BEQ no_key_pressed - - \\ Remember current key - STX menu_key_held - - \\ Any key pressed? - CPX #&FF - BEQ no_key_pressed - - \\ Check escape - CPX #MENU_key_toggle - BNE not_escape - - \\ Handle toggle key - \\ Revert file no - LDA menu_old_file - STA file_no - - \\ Cancel menu - .cancel_menu - JSR deinit_menu - JMP enter_demo_state - - .not_escape - CPX #MENU_key_up - BNE not_up - - \\ Handle up key - \\ Decrement file_no no lower than 0 - LDA file_no - BEQ not_up - DEC file_no - - \\ Update our menu on screen - JSR menu_populate - JMP no_key_pressed - - .not_up - CPX #MENU_key_down - BNE not_down - - \\ Handle down - \\ Increment file_no up to MAX - LDA file_no - IF COMPILE_OPTION_EXIT - CMP #NUM_vgm_files - ELSE - CMP #NUM_vgm_files - 1 - ENDIF - BEQ not_down - INC file_no - - \\ Update our menu on screen - JSR menu_populate - JMP no_key_pressed - - .not_down - CPX #MENU_key_select - BNE not_select - - \\ Handle select key - \\ Check if we're on the same track - LDA file_no - CMP menu_old_file - BEQ cancel_menu - - \\ Deinit the menu - JSR deinit_menu - - \\ Deinit the demo - JSR deinit_demo - - \\ Either file load or exit - LDA file_no - CMP #NUM_vgm_files - BEQ exit_app - - \\ Load new file - JMP loading_state - - .not_select - .no_key_pressed - - \\ If track has ended just keep menu around until user action - LDA player_ended - BEQ sync_to_audio - - \\ If no audio then sync to vsync instead! - LDA #19 - JSR osbyte - BNE skip_audio_sync - - \\ Sync to audio - .sync_to_audio - LDA player_counter - .wait_for_audio_sync - CMP player_counter - BEQ wait_for_audio_sync - - .skip_audio_sync - - \\ Poll our VU effects - LDA #0 ; we don't want beat bars - JSR poll_fx - - \\ Update scrolltext - JSR poll_scr - - \\ Loop - JMP menu_loop - - .exit_app - } - - - .return - RTS - - -} - - - - - - - - - -\ ****************************************************************** -\ * Menu state routines -\ ****************************************************************** - -.init_menu -{ - \\ Copy menu overlay to screen - 8x lines from line 14 - LDX #0 - .loop - LDA MENU_overlay_src_addr, X - STA MENU_overlay_dst_addr, X - INX - BNE loop - - LDX #(MENU_overlay_size - 1) - &100 - .loop2 - LDA MENU_overlay_src_addr + &100, X - STA MENU_overlay_dst_addr + &100, X - DEX - BPL loop2 - - \\ Remember stuff - LDA file_no - STA menu_old_file - - .return - RTS -} - -.menu_populate -{ - \\ Populate our menu with entries based on file_no - LDA file_no - SEC - SBC #1 - TAX - - LDY #MENU_top_line_ypos - - .loop - LDA mode7_row_addr_LO,Y - STA writeptr - LDA mode7_row_addr_HI,Y - STA writeptr+1 - - TXA:PHA - BPL positive - - .clamp - \\ Write blank line - LDX #MENU_entry_xpos:LDA #MENU_entry_xpos + MENU_entry_width - JSR teletexel_erase_row - JMP next - - .positive - IF COMPILE_OPTION_EXIT - CPX #NUM_vgm_files+1 ; include quit option - ELSE - CPX #NUM_vgm_files ; don't include quit option - ENDIF - BCS clamp - - \\ Write entry from loading_table - LDA #0:STA write_loop+2 - - TXA - ASL A - ROL write_loop+2 - ASL A - ROL write_loop+2 - ASL A - ROL write_loop+2 - ASL A - ROL write_loop+2 - ASL A - ROL write_loop+2 ; 16-bit multiply by 32 - - ; carry is zero - ADC #LO(menu_entries) - STA write_loop+1 - - LDA #HI(menu_entries) - ADC write_loop+2 - STA write_loop+2 - - \\ Store Y - TYA:PHA - - LDX #0 - LDY #MENU_entry_xpos - .write_loop - LDA menu_entries,X - STA (writeptr),Y - INY - INX - CPX #MENU_entry_width - BNE write_loop - - PLA:TAY - - .next - PLA:TAX - INX - - INY - CPY #TRACKER_dupe_line_ypos - BNE not_dupe - INY - .not_dupe - CPY #MENU_bottom_line_ypos + 1 - BNE loop - - \\ Duplicate line 17 to line 18 for double height - LDX #TRACKER_active_line_ypos - LDY #TRACKER_dupe_line_ypos - JSR mode7_copy_line - - .return - RTS -} - -.deinit_menu -{ - \\ Copy original tracker back to screen - 8x lines from line 14 - LDX #0 - .loop - LDA MENU_original_src_addr, X - STA MENU_overlay_dst_addr, X - INX - BNE loop - - LDX #(MENU_overlay_size - 1) - &100 - .loop2 - LDA MENU_original_src_addr + &100, X - STA MENU_overlay_dst_addr + &100, X - DEX - BPL loop2 - - .return - RTS -} - - -\ ****************************************************************** -\ * Demo state routines -\ ****************************************************************** - -.init_demo -{ - \\ Set load and store addresses - \\ Is it really necessary to use self-modifying code here?! - - LDA #LO(mode7_screen_data) - STA loop+1 - LDA #HI(mode7_screen_data) - STA loop+2 - - LDA #LO(MODE7_base_addr) - STA loop+4 - LDA #HI(MODE7_base_addr) - STA loop+5 - - \\ Initialise MODE 7 screen - LDY #0 - .loop - LDA mode7_screen_data,Y ; **SELF-MODIFIED CODE** - STA MODE7_base_addr,Y ; **SELF-MODIFIED CODE** - - INY - BNE loop - INC loop + 2 ; increment read address hi byte - INC loop + 5 ; increment write address hi byte - BPL loop ; until >= &8000 ; this is actually overcopying the data as we only have 1000 bytes... - - \\ Initialise our effects - JSR init_fx - - LDA #LO(demo_message): LDX #HI(demo_message) - LDY #23: JSR init_scr ; top of scroller at Y - - \\ Initialise music player - pass in VGM_stream_data address - \\ parses header from stream -; VGM_end_of_data needs to point to the address just after the address -; of the last byte of crunched data. - LDX #LO(VGM_stream_data - 1) - LDY #HI(VGM_stream_data - 1) - JSR init_vgm_stream - - \\ Copy meta data to screen - LDX #0 - .meta_loop - LDA player_song_title,X - STA META_title_addr,X - LDA player_song_author,X - STA META_author_addr,X - INX - CPX #META_max_width - BNE meta_loop - - \\ Copy clock to screen - LDA #LO(META_clock_addr) - STA writeptr - LDA #HI(META_clock_addr) - STA writeptr+1 - - LDX meta_clock_mins - LDY meta_clock_secs - JSR write_clock_at_writeptr - - \\ Copy duration to screen - LDA #LO(META_duration_addr) - STA writeptr - LDA #HI(META_duration_addr) - STA writeptr+1 - - LDX player_duration_mins - LDY player_duration_secs - JSR write_clock_at_writeptr - - \\ Setup the playtime bar - LDA player_packet_count - STA playtime_interval - LDA player_packet_count+1 - STA playtime_interval+1 - LDA #FX_playtime_width - STA playtime_index - - \\ Divide total packet count by FX_playtime_width using 16bit/8bit math = 16bit result - LDX #16 - LDA #0 - .div_loop - ASL playtime_interval - ROL playtime_interval+1 - ROL A - CMP playtime_index - BCC no_sub - SBC playtime_index - INC playtime_interval - .no_sub - DEX - BNE div_loop - - \\ A contains remainder but we discard as we dont need accuracy - \\ playtime_interval now contains # of 50Hz updates before playtime_index should be incremented - LDA #0 - STA playtime_index - STA playtime_counter - STA playtime_counter+1 - - \\ Hook up Event vector - starts player - ldx #LO(demo_eventv) - ldy #HI(demo_eventv) - JSR start_eventv - - .return - RTS -} - -.poll_demo -{ - \\ Poll tracker - JSR poll_tracker - - \\ Poll our VU effects - JSR poll_fx - - \\ Update scrolltext - JSR poll_scr - - \\ Poll the music player - LDA player_ended - - .return - RTS -} - -.deinit_demo -{ - \\ Unhook Event vector - stops player - JSR stop_eventv - - \\ Shutdown music player - silences all audio channels - JSR deinit_player - - .return - RTS -} - -.demo_eventv -{ - php - cmp #4 - bne not_vsync - - \\ Preserve registers - pha:TXA:PHA:TYA:PHA - - \\ Poll the music player - jsr poll_player - - \\ Restore registers - PLA:TAY:PLA:TAX:pla - - \\ Return - .not_vsync - plp - rts -} - - -\ ****************************************************************** -\ * File loading routines -\ ****************************************************************** -<<<<<<< HEAD -.load_menu_data -{ - \\ Set osfile param block - LDA #LO(menu_data_filename) - STA osfile_params + 0 - LDA #HI(menu_data_filename) - STA osfile_params + 1 - - LDA #LO(menu_data_start) - STA osfile_params + 2 - LDA #HI(menu_data_start) - STA osfile_params + 3 - - LDA #0 - STA osfile_params + 6 - - \\ Issue osfile call - LDX #LO(osfile_params) - LDY #HI(osfile_params) - LDA #&FF - JSR osfile - RTS -} - -\\ *** Show loading screen *** -.show_intro -{ -; \\ Set osfile param block -; LDA #LO(loadscreen_data_filename) -; STA osfile_params + 0 -; LDA #HI(loadscreen_data_filename) -; STA osfile_params + 1 - -; LDA #LO(VGM_stream_data) -; STA osfile_params + 2 -; LDA #HI(VGM_stream_data) -; STA osfile_params + 3 - -; LDA #0 -; STA osfile_params + 6 - -; \\ Issue osfile call -; LDX #LO(osfile_params) -; LDY #HI(osfile_params) -; LDA #&FF -; JSR osfile - - \\ Initialize compressed data stream - LDX #LO(VGM_stream_data) - LDY #HI(VGM_stream_data) - JSR exo_init_decruncher - - \\ unpack to screen - LDX #&00 - LDY #&7c - JSR exo_unpack - - - - JSR &FFE0 - RTS -} - -======= ->>>>>>> origin/master - -.load_file_from_table ; flle_no = index into our table -{ - LDA file_no - ASL A:ASL A: ASL A ; file_no * 8 - - \\ Set osfile param block - CLC - ADC #LO(vgm_filenames) - STA osfile_params + 0 - LDA #HI(vgm_filenames) - ADC #0 - STA osfile_params + 1 - - LDA #LO(VGM_stream_data) - STA osfile_params + 2 - LDA #HI(VGM_stream_data) - STA osfile_params + 3 - - LDA #0 - STA osfile_params + 6 - - \\ Issue osfile call - LDX #LO(osfile_params) - LDY #HI(osfile_params) - LDA #&FF - JSR osfile - - \\ Error? ; turns out DFS doesn't return error from osfile A=&FF..! - LDA #0 ; should return whether error occurred - .return - RTS -} - -.load_eventv -{ - php - cmp #4 - beq vsync - JMP not_vsync - - .vsync - \\ Preserve registers - pha:TXA:PHA:TYA:PHA - -\\ ***** Loading FX ***** \\ - -\\ Must be cheap otherwise will callback will re-enter! - - \\ Poll scroll - JSR poll_scr - - \\ Restore registers - PLA:TAY:PLA:TAX:pla - - \\ Return - .not_vsync - plp - rts -} - - -\ ****************************************************************** -\ * Teletexel / MODE 7 functions & helpers -\ ****************************************************************** - -.teletexel_init ; set blank screen -{ - LDX #MODE7_contiguous - LDY #MODE7_char_height - 1 - - .loop - TYA:PHA - LDA #MODE7_graphic_black + 7 - JSR teletexel_set_row_start - PLA:TAY - DEY - BPL loop - - .return - RTS -} - -.teletexel_set_row_start ; set row Y to char A, X -{ - PHA - LDA mode7_row_addr_LO,Y - STA writeptr - LDA mode7_row_addr_HI,Y - STA writeptr+1 - - LDY #0 - PLA - STA (writeptr),Y - TXA:INY - STA (writeptr),Y - - .return - RTS -} - -.teletexel_erase_row ; row Y, start X, end A -{ - STA tmp_erase - - LDA mode7_row_addr_LO,Y - STA loop+1 - LDA mode7_row_addr_HI,Y - STA loop+2 - - LDA #32 - .loop - STA MODE7_base_addr,X ; **SELF-MODIFIED CODE** - INX - CPX tmp_erase - BNE loop - - .return - RTS -} - - -\ ****************************************************************** -\ * Scrolltext code -\ * Redraws entire message each frame -\ * Only scrolls with byte precision, i.e. two pixels per frame -\ * This is too fast for a 5x5 pixel font -\ * TODO - rewrite to be single pixel scroll -\ ****************************************************************** - -.init_scr ; Y = y pos drawn at, A, X = address of message -{ - \\ Set address of message - **MODIFIES CODE** - STA poll_scr_msg_addr_1+1 - STA poll_scr_msg_addr_2+1 - STX poll_scr_msg_addr_1+2 - STX poll_scr_msg_addr_2+2 - - \\ Set address that scrolltext drawn to - **MODIFIES CODE** - STY scr_y - LDA mode7_row_addr_LO,Y - STA poll_scr_line_1_addr+1 - LDA mode7_row_addr_HI,Y - STA poll_scr_line_1_addr+2 - INY - LDA mode7_row_addr_LO,Y - STA poll_scr_line_2_addr+1 - LDA mode7_row_addr_HI,Y - STA poll_scr_line_2_addr+2 - - LDA #0 - STA scr_msg_idx - STA scr_col - - .return - RTS -} - -.poll_scr -\\{ - \\ Copy our temp variables for drawing - LDA scr_col - LSR A - STA tmp_cur_col ; current column in font - - \\ Set font load address - BCC shifted_font - - \\ Not shifted - LDA #LO(mode7_font_data) - STA poll_scr_font_line1_addr + 1 - LDA #HI(mode7_font_data) - STA poll_scr_font_line1_addr + 2 - - JMP write_second_font_addr - - \\ Shifted by 1 pixel - .shifted_font - LDA #LO(mode7_font_data_shifted) - STA poll_scr_font_line1_addr + 1 - LDA #HI(mode7_font_data_shifted) - STA poll_scr_font_line1_addr + 2 - - .write_second_font_addr - CLC - LDA poll_scr_font_line1_addr + 1 - ADC #MODE7_char_width - STA poll_scr_font_line2_addr + 1 - LDA poll_scr_font_line1_addr + 2 - ADC #0 - STA poll_scr_font_line2_addr + 2 - - LDA scr_msg_idx - STA tmp_msg_idx ; current index into message - - \\ Loop over characters in row - LDX #2 ; X char position - ignore first two - .poll_scr_xloop - - LDY tmp_msg_idx - .poll_scr_msg_addr_1 - LDA demo_message,Y ; actually contains the offset into font data - **SELF-MODIFIED CODE** - BNE poll_scr_not_end_of_msg ; finish if zero - - LDY #0 - STY tmp_msg_idx - BEQ poll_scr_msg_addr_1 - - .poll_scr_not_end_of_msg - \\ Work out which column we're on - CLC - ADC tmp_cur_col - TAY - - \\ Draw a column of the font to the screen - .poll_scr_draw_col - - .poll_scr_font_line1_addr - LDA mode7_font_data_shifted,Y ; **SELF-MODIFIED CODE** - .poll_scr_line_1_addr - STA &7C00,X ; **SELF-MODIFIED CODE** - - .poll_scr_font_line2_addr - LDA mode7_font_data_shifted + MODE7_char_width,Y ; **SELF-MODIFIED CODE** - .poll_scr_line_2_addr - STA &7C28,X ; **SELF-MODIFIED CODE** - - \\ Next screen column - INX - CPX #MODE7_char_width - BEQ poll_scr_done - - \\ Next font column - INY - - INC tmp_cur_col - LDA tmp_cur_col - CMP #3 - BNE poll_scr_draw_col - - \\ Done all columns - LDY #0 - STY tmp_cur_col - - INC tmp_msg_idx ; next letter - - JMP poll_scr_xloop - - .poll_scr_done - INC scr_col ; increment column for scroll - LDA scr_col - CMP #6 - BNE poll_scr_return ; 8 columns - - LDA #0 - STA scr_col ; reset column - INC scr_msg_idx ; next char in scr_message - - LDY scr_msg_idx - .poll_scr_msg_addr_2 - LDA demo_message,Y ; **SELF-MODIFIED CODE** - BNE poll_scr_return - STA scr_msg_idx - - .poll_scr_return - RTS -\\} - - -\ ****************************************************************** -\ * Graphic equaliser effect -\ ****************************************************************** - -.init_fx -{ - \\ Initialise the frequency array & beat bar array - \\ freq_array is followed by chan_array, so we can process all together - LDY #(FX_num_freqs+FX_num_channels) - 1 - LDA #0 - .loop - STA freq_array,Y - DEY - BPL loop - - \\ hacky code to clear off the rogue bars left + right - \\ better solution is to clean up screen layout - LDX #0 - LDA #32 - STA FX_address_row0-1, X - STA FX_address_row1-1, X - STA FX_address_row2-1, X - STA FX_address_row3-1, X - STA FX_address_row4-1, X - STA FX_address_row4-1, X - LDX #FX_chr_w+1 - STA FX_address_row0-1, X - STA FX_address_row1-1, X - STA FX_address_row2-1, X - STA FX_address_row3-1, X - STA FX_address_row4-1, X - STA FX_address_row4-1, X - - \\ code to reset the playtime bar, serves two purposes: - \\ 1) resets the mockup - \\ 2) erases any bars from the previously played track - LDA #160+12 - LDX #FX_playtime_chrs-1 - .clear_playtime_loop - STA FX_playtime_address, X - DEX - BPL clear_playtime_loop - \\ set the first bar up - LDA #160+29 - STA FX_playtime_address - - - \\ init meta data vars - LDA #0 - STA meta_idx - STA meta_poll_count - STA meta_clock_mins - STA meta_clock_secs - - LDA #META_scroll_start_delay - STA meta_timer - - .return - RTS -} - -\\ Render a 3 character high graphic beat bar -\\ A is the channel, X is the char offset -.draw_beat_bar -{ - TAY - LDA chan_array, Y - CLC - ADC #1 - STA tmp_fx_y - ASL A - ASL A - CLC - ADC tmp_fx_y - TAY - - \\ render a 3 byte bar column, 1 chr per bar - LDA fx_table + 2, Y - STA FX_address_beat+0, X - LDA fx_table + 1, Y - STA FX_address_beat+40, X - LDA fx_table + 0, Y - STA FX_address_beat+80, X - - RTS -} - -.write_clock_at_writeptr ; X=mins, Y=secs -{ - TYA:PHA - LDY #0 - - CLC - TXA - ADC #'0' - STA (writeptr),Y - INY - - LDA #':' - STA (writeptr),Y - INY - - \\ Count tens - PLA - LDX #0 - .loop_10 - CMP #10 - BCC done_10 - SEC - SBC #10 - INX - JMP loop_10 - .done_10 - PHA - - \\ Write tens - CLC - TXA - ADC #'0' - STA (writeptr),Y - INY - - \\ Write units - PLA - ADC #'0' - STA (writeptr),Y - INY - - .return - RTS -} - -.poll_fx ; A = render beat bars or not (0) -{ - PHA ; remember this for later - - \\ render the bar fx in 15 by 5 character columns - LDX #0 - - .fx_column_loop - - \\ get frequency level - TXA - -IF FX_num_freqs == 16 - LSR A -ENDIF - - TAY - LDA freq_array, Y - - CLC - ADC #1 ; this hack forces levels to be a minimum of 1 - ; which means there's always a green bar showing - ; fx_table lookup has a duplicated extra entry to prevent overread - - \\ mult*5 and lookup teletext bar graphic - STA tmp_fx_y - ASL A - ASL A - CLC - ADC tmp_fx_y - TAY - -IF FX_num_freqs == 16 - \\ render the 5 byte bar column, 2 chrs per bar, 2nd bar has right hand column removed - LDA fx_table + 4, Y - STA FX_address_row0+0, X - AND #&B5 - STA FX_address_row0+1, X - LDA fx_table + 3, Y - STA FX_address_row1+0, X - AND #&B5 - STA FX_address_row1+1, X - LDA fx_table + 2, Y - STA FX_address_row2+0, X - AND #&B5 - STA FX_address_row2+1, X - LDA fx_table + 1, Y - STA FX_address_row3+0, X - AND #&B5 - STA FX_address_row3+1, X - LDA fx_table + 0, Y - STA FX_address_row4+0, X - AND #&B5 - STA FX_address_row4+1, X - \\ advance to next column - INX - INX - TXA - CMP #FX_num_freqs*2 -ELSE - \\ render the 5 byte bar column, 1 chr per bar - LDA fx_table + 4, Y - AND #&B5 - STA FX_address_row0+0, X - LDA fx_table + 3, Y - AND #&B5 - STA FX_address_row1+0, X - LDA fx_table + 2, Y - AND #&B5 - STA FX_address_row2+0, X - LDA fx_table + 1, Y - AND #&B5 - STA FX_address_row3+0, X - LDA fx_table + 0, Y - AND #&B5 - STA FX_address_row4+0, X - \\ advance to next column - INX - TXA - CMP #FX_num_freqs -ENDIF - - BNE fx_column_loop - - PLA:BEQ skip_beat_bars - - \\ Render the channel beat bars - LDA #0 - LDX #FX_ch0_x - JSR draw_beat_bar - LDA #1 - LDX #FX_ch1_x - JSR draw_beat_bar - LDA #2 - LDX #FX_ch2_x - JSR draw_beat_bar - LDA #3 - LDX #FX_ch3_x - JSR draw_beat_bar - - .skip_beat_bars - - \\ Let VU meter values fall to zero - LDY #(FX_num_freqs) - 1 - .loop - LDA freq_array,Y - BEQ zero - SEC - SBC #1 - STA freq_array,Y - .zero - DEY - BPL loop - - \\ Beat bars decay 2x faster - LDY #(FX_num_channels) - 1 - .loop2 - LDA chan_array,Y - BEQ zero2 - SEC - SBC #1 - STA chan_array,Y - BEQ zero2 - SEC - SBC #1 - STA chan_array,Y - .zero2 - DEY - BPL loop2 - - \\ Update playtime bar - INC playtime_counter - BNE no_hi - INC playtime_counter+1 - .no_hi - LDA playtime_counter - CMP playtime_interval - BNE not_yet - LDA playtime_counter+1 - CMP playtime_interval+1 - BNE not_yet - - \\ reset counter - LDA #0 - STA playtime_counter - STA playtime_counter+1 - - \\ clear current graphic at offset (we'll update next chr in a mo) - LDA playtime_index - LSR A - TAX - LDA #160+12 - STA FX_playtime_address, X - - \\ increment playtime offset & render new bar graphic - INC playtime_index - - \\ get the index, find chr X (index>>1, since 2 pixels per chr) - LDA playtime_index - TAY - LSR A - TAX - TYA - AND #1 ; odd or even, lookup graphic chr - TAY - LDA playtime_table, Y - STA FX_playtime_address, X - - .not_yet - - - - \\ Update meta data - { - DEC meta_timer - BNE done_meta - - \\ Reset meta scroll timer - LDA #META_scroll_update_delay - STA meta_timer - - \\ Update meta index - INC meta_idx - LDA meta_idx - CMP #PLAYER_string_max - META_max_width - 1 - BEQ longer_wait - CMP #PLAYER_string_max - META_max_width - BCC meta_no_wrap - - LDA #0 - STA meta_idx - .longer_wait - LDA #META_scroll_start_delay - STA meta_timer - - \\ Copy meta data to screen - .meta_no_wrap - - \\ End of string = idx + width clamped to string length - \\ Start of string = end - width clamped to zero - CLC - LDA meta_idx - ADC #META_max_width - STA tmp_var ; end - - \\ Handle title end - CMP player_song_title_len - BCC title_end_safe - LDA player_song_title_len - .title_end_safe - SEC - SBC #META_max_width ; start - BPL title_start_safe - LDA #0 - .title_start_safe - CLC - ADC #LO(player_song_title) - STA title_addr+1 - LDA #HI(player_song_title) - ADC #0 - STA title_addr+2 - - \\ Handle author end - LDA tmp_var - CMP player_song_author_len - BCC author_end_safe - LDA player_song_author_len - .author_end_safe - SEC - SBC #META_max_width ; start - BPL author_start_safe - LDA #0 - .author_start_safe - CLC - ADC #LO(player_song_author) - STA author_addr+1 - LDA #HI(player_song_author) - ADC #0 - STA author_addr+2 - - LDX #0 - .meta_loop - .title_addr - LDA player_song_title,X - STA META_title_addr,X - .author_addr - LDA player_song_author,X - STA META_author_addr,X - INX - CPX #META_max_width - BNE meta_loop - .done_meta - } - - \\ Increment counter for clock - { - INC meta_poll_count - LDA meta_poll_count - CMP #PLAYER_sample_rate - BNE not_sec_yet - - \\ Reset counter - LDA #0 - STA meta_poll_count - - \\ Update 1 second - INC meta_clock_secs - LDA meta_clock_secs - CMP #60 - BNE not_min_yet - - \\ Update 1 min - INC meta_clock_mins - LDA #0 - STA meta_clock_secs - - .not_min_yet - - \\ Display clock - LDA #LO(META_clock_addr) - STA writeptr - LDA #HI(META_clock_addr) - STA writeptr+1 - - LDX meta_clock_mins - LDY meta_clock_secs - JSR write_clock_at_writeptr - - .not_sec_yet - } - - .return - RTS -} - - -\ ****************************************************************** -\ * Tracker scrolling display -\ ****************************************************************** - -.write_decimal_at ; A = number, X,Y = location on MODE 7 screen -{ - PHA - LDA mode7_row_addr_LO,Y - STA writeptr - LDA mode7_row_addr_HI,Y - STA writeptr+1 - - TXA:TAY - - \\ Count hundreds - PLA - LDX #0 - .loop_100 - CMP #100 - BCC done_100 - SEC - SBC #100 - INX - JMP loop_100 - .done_100 - PHA - - \\ Write hundreds - CLC - TXA - ADC #'0' - STA (writeptr),Y - INY - - \\ Count tens - PLA - LDX #0 - .loop_10 - CMP #10 - BCC done_10 - SEC - SBC #10 - INX - JMP loop_10 - .done_10 - PHA - - \\ Write tens - CLC - TXA - ADC #'0' - STA (writeptr),Y - INY - - \\ Write units - CLC - PLA - ADC #'0' - STA (writeptr),Y - - .return - RTS -} - -.mode7_copy_line ; copy line X to line Y -{ - \\ From line X - LDA mode7_row_addr_LO,X - STA readptr - LDA mode7_row_addr_HI,X - STA readptr+1 - - \\ To line Y - LDA mode7_row_addr_LO,Y - STA writeptr - LDA mode7_row_addr_HI,Y - STA writeptr+1 - - LDY #0 - .loop - LDA (readptr),Y - STA (writeptr),Y - INY - CPY #MODE7_char_width - BNE loop - - .return - RTS -} - -.copy_channel_fields ; copy channel fields only from line X to line Y -{ - \\ From line X - LDA mode7_row_addr_LO,X - STA readptr - LDA mode7_row_addr_HI,X - STA readptr+1 - - \\ To line Y - LDA mode7_row_addr_LO,Y - STA writeptr - LDA mode7_row_addr_HI,Y - STA writeptr+1 - - \\ Tracker line number field - LDY #TRACKER_lineno_field_xpos - - \\ Copy 4 bytes - LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - - \\ Channel 3 field - LDY #TRACKER_ch3_field_xpos - - \\ Copy 4 bytes - LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - - \\ Channel 2 field - LDY #TRACKER_ch2_field_xpos - - \\ Copy 4 bytes - LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - - \\ Channel 1 field - LDY #TRACKER_ch1_field_xpos - - \\ Copy 4 bytes - LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - - \\ Noise channel field - LDY #TRACKER_noise_field_xpos - - \\ Copy 4 bytes - LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - INY: LDA (readptr),Y: STA (writeptr),Y - - .return - RTS -} - -.write_note_name -{ - LDA note_name_table_0,X - STA (writeptr),Y - INY - - LDA note_name_table_1,X - STA (writeptr),Y - INY - - LDA note_name_table_2,X - STA (writeptr),Y - INY - - .return - RTS -} - -.write_note_blank -{ - LDA #'-' - STA (writeptr),Y - INY - STA (writeptr),Y - INY - STA (writeptr),Y - INY - - .return - RTS -} - -MACRO WRITE_VOL_CHAR -{ - LDA hex_to_ascii, X - STA (writeptr),Y -} -ENDMACRO - -MACRO WRITE_VOL_BLANK -{ - LDA #'-' - STA (writeptr),Y -} -ENDMACRO - -.poll_tracker -{ - \\ Temporary scroll values up - don't need to calc write addresses when locations fixed - LDX #TRACKER_top_line_ypos + 1 - LDY #TRACKER_top_line_ypos - JSR copy_channel_fields - - LDX #TRACKER_top_line_ypos + 2 - LDY #TRACKER_top_line_ypos + 1 - JSR copy_channel_fields - - LDX #TRACKER_active_line_ypos - LDY #TRACKER_top_line_ypos + 2 - JSR copy_channel_fields - - \\ **Should be writing our fields to active line!** - - LDX #TRACKER_bottom_line_ypos - 2 - LDY #TRACKER_active_line_ypos - JSR copy_channel_fields - - LDX #TRACKER_bottom_line_ypos - 1 - LDY #TRACKER_bottom_line_ypos - 2 - JSR copy_channel_fields - - LDX #TRACKER_bottom_line_ypos - LDY #TRACKER_bottom_line_ypos - 1 - JSR copy_channel_fields - - \\ **Instead writing our live data into bottom line!** - \\ Write our current line number as decimal - - LDA player_counter - LDX #TRACKER_lineno_field_xpos + 1 ; +1 because leading 0 is constant - LDY #TRACKER_bottom_line_ypos - JSR write_decimal_at - - \\ Can reuse writeptr here - pointing to start of line we're writing! - \\ Write channel values into fields - DO THIS BETTER? - - .write_field_channel3 - { - LDY #12 - LDA player_reg_bits - AND #SN_BIT_TONE3_FREQ ; channel 3 tone - BEQ no_ch3_tone - - LDX player_reg_vals + SN_REG_TONE3_FREQ - JSR write_note_name - BNE try_ch3_vol ; OK because last instruction is INY - - .no_ch3_tone - JSR write_note_blank - - .try_ch3_vol - LDA player_reg_bits - AND #SN_BIT_TONE3_VOL ; channel 3 vol - BEQ no_ch3_vol - - LDX player_reg_vals + SN_REG_TONE3_VOL - WRITE_VOL_CHAR - BNE done_ch3 ; OK because A is char therefore not zero - - .no_ch3_vol - WRITE_VOL_BLANK - - .done_ch3 - } - - .write_field_channel2 - { - LDY #19 - LDA player_reg_bits - AND #SN_BIT_TONE2_FREQ ; channel 2 tone - BEQ no_ch2_tone - - LDX player_reg_vals + SN_REG_TONE2_FREQ - JSR write_note_name - BNE try_ch2_vol ; OK because last instruction is INY - - .no_ch2_tone - JSR write_note_blank - - .try_ch2_vol - LDA player_reg_bits - AND #SN_BIT_TONE2_VOL ; channel 2 vol - BEQ no_ch2_vol - - LDX player_reg_vals + SN_REG_TONE2_VOL - WRITE_VOL_CHAR - BNE done_ch2 ; OK because A is char therefore not zero - - .no_ch2_vol - WRITE_VOL_BLANK - - .done_ch2 - } - - .write_field_channel1 - { - LDY #26 - LDA player_reg_bits - AND #SN_BIT_TONE1_FREQ ; channel 1 tone - BEQ no_ch1_tone - - LDX player_reg_vals + SN_REG_TONE1_FREQ - JSR write_note_name - BNE try_ch1_vol ; OK because last instruction is INY - - .no_ch1_tone - JSR write_note_blank - - .try_ch1_vol - LDA player_reg_bits - AND #SN_BIT_TONE1_VOL ; channel 1 vol - BEQ no_ch1_vol - - LDX player_reg_vals + SN_REG_TONE1_VOL - WRITE_VOL_CHAR - BNE done_ch1 ; OK because A is char therefore not zero - - .no_ch1_vol - WRITE_VOL_BLANK - - .done_ch1 - } - - .write_field_noise - { - LDY #33 - LDA player_reg_bits - AND #SN_BIT_NOISE_CTRL ; noise channel control - BEQ no_noise_tone - - \\ Check noise control - LDA player_reg_vals + SN_REG_NOISE_CTRL - AND #SN_FB_MASK - BEQ noise_periodic - LDA #'W' ; White Noise - EQUB &2C ; = BIT noise_periodic => skip next two bytes - .noise_periodic - LDA #'P' ; Periodic Noise - STA (writeptr),Y - INY - - LDA player_reg_vals + SN_REG_NOISE_CTRL - AND #SN_NF_MASK - ASL A ; *2 - TAX - LDA noise_note_0,X ; noise_note = Lo,Me,Hi,T1 - STA (writeptr),Y - INY - LDA noise_note_0+1,X ; 2nd char - STA (writeptr),Y - INY - - BNE try_noise_vol ; OK because last instruction is INY - - .no_noise_tone - JSR write_note_blank - - .try_noise_vol - LDA player_reg_bits - AND #SN_BIT_NOISE_VOL ; noise channel vol - BEQ no_noise_vol - - LDX player_reg_vals + SN_REG_NOISE_VOL - WRITE_VOL_CHAR - BNE done_noise ; OK because A is char therefore not zero - - .no_noise_vol - WRITE_VOL_BLANK - - .done_noise - } - - \\ Duplicate line 17 to line 18 for double height - LDX #TRACKER_active_line_ypos - LDY #TRACKER_dupe_line_ypos - JSR mode7_copy_line - - .return - RTS -} - - - -\ ****************************************************************** -\ * Event Vector Routines -\ ****************************************************************** - -.start_eventv ; new event handler in X,Y -{ - \\ Remove interrupt instructions - lda #NOP_OP - sta PSG_STROBE_SEI_INSN - sta PSG_STROBE_CLI_INSN - - \\ Set new Event handler - sei - LDA EVENTV - STA old_eventv - LDA EVENTV+1 - STA old_eventv+1 - - stx EVENTV - sty EVENTV+1 - cli - - \\ Enable VSYNC event. - lda #14 - ldx #4 - jsr osbyte - rts -} - -.stop_eventv -{ - \\ Disable VSYNC event. - lda #13 - ldx #4 - jsr osbyte - - \\ Reset old Event handler - SEI - LDA old_eventv - STA EVENTV - LDA old_eventv+1 - STA EVENTV+1 - CLI - - \\ Insert interrupt instructions back - lda #SEI_OP - sta PSG_STROBE_SEI_INSN - lda #CLI_OP - sta PSG_STROBE_CLI_INSN - rts -} - - -\ ****************************************************************** -\ * Debug helpers -\ ****************************************************************** - -IF _DEBUG -.debug_print_A ; trashes X -{ - PHA:PHA - LSR A:LSR A:LSR A:LSR A - TAX - LDA hex_to_ascii,X - JSR oswrch - PLA - AND #&0F - TAX - LDA hex_to_ascii,X - JSR oswrch - LDA #32 - JSR oswrch - PLA - RTS -} -ENDIF - - - - -\ ****************************************************************** -\ * Look up tables -\ ****************************************************************** - -.lookup_tables_start - -\\ Start address of each row in MODE 7 - wasteful but helpful -.mode7_row_addr_LO -FOR n, 0, MODE7_char_height-1, 1 -EQUB LO(MODE7_base_addr + n * MODE7_char_width) -NEXT - -.mode7_row_addr_HI -FOR n, 0, MODE7_char_height-1, 1 -EQUB HI(MODE7_base_addr + n * MODE7_char_width) -NEXT - -\\ 16 Arrangements of 5 teletext character bytes to render a vertical equalizer bar -.fx_table -EQUB 160, 160, 160, 160, 160 -EQUB 160+80, 160, 160, 160, 160 -EQUB 160+92, 160, 160, 160, 160 -EQUB 160+95, 160, 160, 160, 160 -EQUB 160+95, 160+80, 160, 160, 160 -EQUB 160+95, 160+92, 160, 160, 160 -EQUB 160+95, 160+95, 160, 160, 160 -EQUB 160+95, 160+95, 160+80, 160, 160 -EQUB 160+95, 160+95, 160+92, 160, 160 -EQUB 160+95, 160+95, 160+95, 160, 160 -EQUB 160+95, 160+95, 160+95, 160+80, 160 -EQUB 160+95, 160+95, 160+95, 160+92, 160 -EQUB 160+95, 160+95, 160+95, 160+95, 160 -EQUB 160+95, 160+95, 160+95, 160+95, 160+80 -EQUB 160+95, 160+95, 160+95, 160+95, 160+92 -EQUB 160+95, 160+95, 160+95, 160+95, 160+95 -EQUB 160+95, 160+95, 160+95, 160+95, 160+95 ; last row copied to enable fixed bar effect - -.playtime_table -EQUB 160+29, 160+78 ; 160+12 for 'empty' middle line dash - -.num_to_bit ; look up bit N -EQUB &01, &02, &04, &08, &10, &20, &40, &80 - -.hex_to_ascii ; for volume print -EQUS "0123456789abcdef" - -.noise_note_0 EQUS "Lo" -.noise_note_1 EQUS "Md" -.noise_note_2 EQUS "Hi" -.noise_note_3 EQUS "T1" - -.note_tables_start - -\\ Note name lookup table, index using upper 8 bits of a 10-bit tone value. -\\ Not mega accurate, but fast, and good enough for a reasonably convincing visual -;ALIGN &100 ; doesn't need to be page aligned -.note_name_table_0 EQUS "AAAAGECAFEDCAGGFEDDCCCAGGGFFFEDDDDCCCCAAGGGGGFFFFFFEEEDDDDDDCCCCCCCCAAAAGGGGGGGGFFFFFFFFFFEEEEEDDDDDDDDDDDDCCCCCCCCCCCCCBBBBBBBAAAAAAAAAAAAAAAAGGGGGGGGGGGGGGGGGFFFFFFFFFFFFFFFFFFFEEEEEEEEEEEDDDDDDDDDDDDDDDDDDDDDDDCCCCCCCCCCCCCCCCCCCCCCCCCCBBBBBBBBBBBBBBBAA" -;note_name_table_1 EQUS "----#-#-#--#-#---#-#---#--#---##--##----###--###------###---####--------####----#####----------######------######--------------########--------########---------#########---------------------###########------------#############----------------------------##" -\\ Quirk of MODE 7: ASCII 35='#' but in gfx mode 35+128='£' so need to use ASCII 95='_' so in gfx mode 95+128='#' -.note_name_table_1 EQUS "----_-_-_--_-_---_-_---_--_---__--__----___--___------___---____--------____----_____----------______------______--------------________--------________---------_________---------------------___________------------_____________----------------------------__" -.note_name_table_2 EQUS "9999999888887777777777666666666666666655555555555555555555555555555544444444444444444444444444444444444444444444444444443333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333322222222222222222" - -.note_tables_end - -.lookup_tables_end - - -\ ****************************************************************** -\ * MODE 7 screen data -\ ****************************************************************** - -.mode7_data_start - -.mode7_screen_data -INCBIN "data/screen3.mode7" - -MENU_original_src_addr = mode7_screen_data + MENU_overlay_ypos * MODE7_char_width - -.mode7_font_data ; we use 16/25 lines of this screen -INCBIN "data/font_5x5_shifted_trimmed.mode7.bin" - -mode7_font_data_shifted = mode7_font_data + 8 * 40 - -.mode7_menu_data -INCBIN "data/menu_overlay_trimmed.mode7.bin" ; ditto, we only use ~8/25 lines of this screen - -MENU_overlay_src_addr = mode7_menu_data ; stripped this off (+ MENU_overlay_ypos * MODE7_char_width) - -.mode7_data_end - - -\\ Map character ASCII values to the byte offset into our MODE 7 font -\\ This is "cunning" but only works because the font has fewer than 256/6 (42) glyphs.. - -MACRO SET_TELETEXT_FONT_CHAR_MAP - - MAPCHAR 'A', 1 - MAPCHAR 'B', 4 - MAPCHAR 'C', 7 - MAPCHAR 'D', 10 - MAPCHAR 'E', 13 - MAPCHAR 'F', 16 - MAPCHAR 'G', 19 - MAPCHAR 'H', 22 - MAPCHAR 'I', 25 - MAPCHAR 'J', 28 - MAPCHAR 'K', 31 - MAPCHAR 'L', 34 - MAPCHAR 'M', 37 - - MAPCHAR 'a', 1 - MAPCHAR 'b', 4 - MAPCHAR 'c', 7 - MAPCHAR 'd', 10 - MAPCHAR 'e', 13 - MAPCHAR 'f', 16 - MAPCHAR 'g', 19 - MAPCHAR 'h', 22 - MAPCHAR 'i', 25 - MAPCHAR 'j', 28 - MAPCHAR 'k', 31 - MAPCHAR 'l', 34 - MAPCHAR 'm', 37 - - MAPCHAR 'N', 81 - MAPCHAR 'O', 84 - MAPCHAR 'P', 87 - MAPCHAR 'Q', 90 - MAPCHAR 'R', 93 - MAPCHAR 'S', 96 - MAPCHAR 'T', 99 - MAPCHAR 'U', 102 - MAPCHAR 'V', 105 - MAPCHAR 'W', 108 - MAPCHAR 'X', 111 - MAPCHAR 'Y', 114 - MAPCHAR 'Z', 117 - - MAPCHAR 'n', 81 - MAPCHAR 'o', 84 - MAPCHAR 'p', 87 - MAPCHAR 'q', 90 - MAPCHAR 'r', 93 - MAPCHAR 's', 96 - MAPCHAR 't', 99 - MAPCHAR 'u', 102 - MAPCHAR 'v', 105 - MAPCHAR 'w', 108 - MAPCHAR 'x', 111 - MAPCHAR 'y', 114 - MAPCHAR 'z', 117 - - MAPCHAR '0', 161 - MAPCHAR '1', 164 - MAPCHAR '2', 167 - MAPCHAR '3', 170 - MAPCHAR '4', 173 - MAPCHAR '5', 176 - MAPCHAR '6', 179 - MAPCHAR '7', 182 - MAPCHAR '8', 185 - MAPCHAR '9', 188 - MAPCHAR '?', 191 - MAPCHAR '!', 194 - MAPCHAR '.', 197 - - MAPCHAR ' ', 241 - -ENDMACRO diff --git a/temp/lib/exomiser.h.6502 b/temp/lib/exomiser.h.6502 deleted file mode 100644 index 330c4fb..0000000 --- a/temp/lib/exomiser.h.6502 +++ /dev/null @@ -1,53 +0,0 @@ -\\ ****************************************************************** -\\ EXOMISER (compression library) -\\ ****************************************************************** - -\\ Uses memory: -\\ &0C00-0CFF -\\ &0400-0800 -\\ Plus ZP vars - -\\ Compress data using: -\\ exomizer.exe raw -c -m 1024 -o - -\ ****************************************************************** -\ * Space reserved for runtime buffers not preinitialised -\ ****************************************************************** - -EXO_buffer_len = 1024 ; this is now packed in to language workspace at &0400 -\\ If you want to make this bigger than 1024 then need to find somewhere else to put it!! - -\\ Exomiser unpack buffer (must be page aligned) -\\ Now moved this to the language workspace at &0400 - &0800 -EXO_buffer_start = &400 -EXO_buffer_end = EXO_buffer_start + EXO_buffer_len - -; ------------------------------------------------------------------- -; this 156 byte table area may be relocated. It may also be clobbered -; by other data between decrunches. -; Located at spare OS memory page &0c00 reserved for Econet -; ------------------------------------------------------------------- - -EXO_TABL_SIZE = 156 -tabl_bi = &0c00 -tabl_lo = tabl_bi + 52 -tabl_hi = tabl_bi + 104 - - -\\ Declare ZP vars -.EXO_zp_src_hi SKIP 1 -.EXO_zp_src_lo SKIP 1 -.EXO_zp_src_bi SKIP 1 -.EXO_zp_bitbuf SKIP 1 - -.EXO_zp_len_lo SKIP 1 -.EXO_zp_len_hi SKIP 1 - -.EXO_zp_bits_lo SKIP 1 -.EXO_zp_bits_hi SKIP 1 - -.EXO_zp_dest_hi SKIP 1 -.EXO_zp_dest_lo SKIP 1 ; dest addr lo -.EXO_zp_dest_bi SKIP 1 ; dest addr hi - - diff --git a/temp/lib/exomiser.s.6502 b/temp/lib/exomiser.s.6502 deleted file mode 100644 index d2716e5..0000000 --- a/temp/lib/exomiser.s.6502 +++ /dev/null @@ -1,305 +0,0 @@ - -\ ****************************************************************** -\ * Exomiser (decompression library) -\ ****************************************************************** - -.exo_start - -; ------------------------------------------------------------------- -; Unpack a compressed data stream previously initialized by exo_init_decruncher -; to the memory address specified in X,Y -.exo_unpack -{ - STX write_chr+1 - STY write_chr+2 - - .next_chr - JSR exo_get_decrunched_byte - BCS all_done - .write_chr STA &ffff ; **SELF-MODIFIED** - INC write_chr+1 - BNE next_chr - INC write_chr+2 - BNE next_chr - .all_done - RTS -} - -; ------------------------------------------------------------------- -; Fetch byte from an exomiser compressed data stream -; for this get_crunched_byte routine to work the crunched data has to be -; crunced using the -m and possibly the -l flags. Any other -; flag will just mess things up. -.get_crunched_byte -{ - INC _byte_lo - bne _byte_skip_hi - INC _byte_hi ; forward decrunch -._byte_skip_hi: - -._byte - lda &ffff ; EXO data stream address ; **SELF-MODIFIED CODE** -_byte_lo = _byte + 1 -_byte_hi = _byte + 2 - rts ; decrunch_file is called. -} - -; ------------------------------------------------------------------- - - -EXO_crunch_byte_lo = get_crunched_byte + 9 -EXO_crunch_byte_hi = get_crunched_byte + 10 - - - -; ------------------------------------------------------------------- -; jsr this label to init the decruncher, it will init used zeropage -; zero page locations and the decrunch tables -; no constraints on register content, however the -; decimal flag has to be #0 (it almost always is, otherwise do a cld) -; X/Y contains address of EXO crunched data stream -; ------------------------------------------------------------------- -.init_decruncher ; pass in address of (crunched data-1) in X,Y -{ - STX EXO_crunch_byte_lo - STY EXO_crunch_byte_hi - - jsr get_crunched_byte - sta EXO_zp_bitbuf - - ldx #0 - stx EXO_zp_dest_lo - stx EXO_zp_dest_hi - stx EXO_zp_len_lo - stx EXO_zp_len_hi - ldy #0 -; ------------------------------------------------------------------- -; calculate tables (49 bytes) -; x and y must be #0 when entering -; -._init_nextone - inx - tya - and #$0f - beq _init_shortcut ; starta på ny sekvens - - txa ; this clears reg a - lsr a ; and sets the carry flag - ldx EXO_zp_bits_lo -._init_rolle - rol a - rol EXO_zp_bits_hi - dex - bpl _init_rolle ; c = 0 after this (rol EXO_zp_bits_hi) - - adc tabl_lo-1,y - tax - - lda EXO_zp_bits_hi - adc tabl_hi-1,y -._init_shortcut - sta tabl_hi,y - txa - sta tabl_lo,y - - ldx #4 - jsr _bit_get_bits ; clears x-reg. - sta tabl_bi,y - iny - cpy #52 - bne _init_nextone -} -\\ Fall through! - -._do_exit - rts - -; ------------------------------------------------------------------- -; decrunch one byte -; -.get_decrunched_byte -{ - ldy EXO_zp_len_lo - bne _do_sequence - ldx EXO_zp_len_hi - bne _do_sequence2 - - jsr _bit_get_bit1 - beq _get_sequence -; ------------------------------------------------------------------- -; literal handling (13 bytes) -; - jsr get_crunched_byte - bcc _do_literal -; ------------------------------------------------------------------- -; count zero bits + 1 to get length table index (10 bytes) -; y = x = 0 when entering -; -._get_sequence -._seq_next1 - iny - jsr _bit_get_bit1 - beq _seq_next1 - cpy #$11 - bcs _do_exit -; ------------------------------------------------------------------- -; calulate length of sequence (zp_len) (17 bytes) -; - ldx tabl_bi - 1,y - jsr _bit_get_bits - adc tabl_lo - 1,y - sta EXO_zp_len_lo - lda EXO_zp_bits_hi - adc tabl_hi - 1,y - sta EXO_zp_len_hi -; ------------------------------------------------------------------- -; here we decide what offset table to use (20 bytes) -; x is 0 here -; - bne _seq_nots123 - ldy EXO_zp_len_lo - cpy #$04 - bcc _seq_size123 -._seq_nots123 - ldy #$03 -._seq_size123 - ldx tabl_bit - 1,y - jsr _bit_get_bits - adc tabl_off - 1,y - tay -; ------------------------------------------------------------------- -; calulate absolute offset (zp_src) (27 bytes) -; - ldx tabl_bi,y - jsr _bit_get_bits; - adc tabl_lo,y - bcc _seq_skipcarry - inc EXO_zp_bits_hi - clc -._seq_skipcarry - adc EXO_zp_dest_lo - sta EXO_zp_src_lo - lda EXO_zp_bits_hi - adc tabl_hi,y - adc EXO_zp_dest_hi -; ------------------------------------------------------------------- - cmp #HI(EXO_buffer_len) - bcc _seq_offset_ok - sbc #HI(EXO_buffer_len) - clc -; ------------------------------------------------------------------- -._seq_offset_ok - sta EXO_zp_src_hi - adc #HI(EXO_buffer_start) - sta EXO_zp_src_bi -._do_sequence - ldy #0 -._do_sequence2 - ldx EXO_zp_len_lo - bne _seq_len_dec_lo - dec EXO_zp_len_hi -._seq_len_dec_lo - dec EXO_zp_len_lo -; ------------------------------------------------------------------- - ldx EXO_zp_src_lo - bne _seq_src_dec_lo - ldx EXO_zp_src_hi - bne _seq_src_dec_hi -; ------- handle buffer wrap problematics here ---------------------- - ldx #HI(EXO_buffer_len) - stx EXO_zp_src_hi - ldx #HI(EXO_buffer_end) - stx EXO_zp_src_bi -; ------------------------------------------------------------------- -._seq_src_dec_hi - dec EXO_zp_src_hi - dec EXO_zp_src_bi -._seq_src_dec_lo - dec EXO_zp_src_lo -; ------------------------------------------------------------------- - lda (EXO_zp_src_lo),y -; ------------------------------------------------------------------- -._do_literal - ldx EXO_zp_dest_lo - bne _seq_dest_dec_lo - ldx EXO_zp_dest_hi - bne _seq_dest_dec_hi -; ------- handle buffer wrap problematics here ---------------------- - ldx #HI(EXO_buffer_len) - stx EXO_zp_dest_hi - ldx #HI(EXO_buffer_end) - stx EXO_zp_dest_bi -; ------------------------------------------------------------------- -._seq_dest_dec_hi - dec EXO_zp_dest_hi - dec EXO_zp_dest_bi -._seq_dest_dec_lo - dec EXO_zp_dest_lo -; ------------------------------------------------------------------- - sta (EXO_zp_dest_lo),y - clc - rts -} - -; ------------------------------------------------------------------- -; two small static tables (6 bytes) -; -.tabl_bit -{ - EQUB 2,4,4 -} -.tabl_off -{ - EQUB 48,32,16 -} - -; ------------------------------------------------------------------- -; get x + 1 bits (1 byte) -; -._bit_get_bit1 - inx -; ------------------------------------------------------------------- -; get bits (31 bytes) -; -; args: -; x = number of bits to get -; returns: -; a = #bits_lo -; x = #0 -; c = 0 -; EXO_zp_bits_lo = #bits_lo -; EXO_zp_bits_hi = #bits_hi -; notes: -; y is untouched -; other status bits are set to (a == #0) -; ------------------------------------------------------------------- -._bit_get_bits -{ - lda #$00 - sta EXO_zp_bits_lo - sta EXO_zp_bits_hi - cpx #$01 - bcc _bit_bits_done - lda EXO_zp_bitbuf -._bit_bits_next - lsr a - bne _bit_ok - jsr get_crunched_byte - ror a -._bit_ok - rol EXO_zp_bits_lo - rol EXO_zp_bits_hi - dex - bne _bit_bits_next - sta EXO_zp_bitbuf - lda EXO_zp_bits_lo -._bit_bits_done - rts -} -; ------------------------------------------------------------------- -; end of decruncher -; ------------------------------------------------------------------- - - -.exo_end - diff --git a/temp/lib/vgmplayer.h.6502 b/temp/lib/vgmplayer.h.6502 deleted file mode 100644 index e155ebd..0000000 --- a/temp/lib/vgmplayer.h.6502 +++ /dev/null @@ -1,43 +0,0 @@ - -\\ VGM Player module -\\ Include file -\\ Define ZP and constant vars only in here - - - -\ ****************************************************************** -\ * Define global constants -\ ****************************************************************** - -FX_num_freqs = 32 ; number of VU bars - can be 16 or 32 -FX_num_channels = 4 ; number of beat bars (one per channel) - - -\\ Player -PLAYER_string_max = 42 ; size of our meta data strings (title and author) -PLAYER_sample_rate = 50 ; locked to 50Hz - -\ ****************************************************************** -\ * Declare ZP variables -\ ****************************************************************** - -\\ Frequency array for vu-meter effect, plus beat bars for 4 channels -\\ These two must be contiguous in memory -.freq_array SKIP FX_num_freqs -.chan_array SKIP FX_num_channels -.player_reg_vals SKIP SN_REG_MAX ; data values passed to each channel during audio playback (4x channels x pitch + volume) - -\\ Copied out of the RAW VGM header -.player_packet_count SKIP 2 ; number of packets -.player_duration_mins SKIP 1 ; song duration (mins) -.player_duration_secs SKIP 1 ; song duration (secs) - -.player_packet_offset SKIP 1 ; offset from start of file to beginning of packet data - - -\\ Player vars -.player_ended SKIP 1 ; non-zero when player has reached end of tune -.player_data SKIP 1 ; temporary variable when decoding sound data - must be separate as player running on events -.player_last_reg SKIP 1 ; last channel (register) refered to by the VGM sound data -.player_counter SKIP 1 ; increments by 1 every poll (20ms) - used as our tracker line no. & to sync fx with audio update -.player_reg_bits SKIP 1 ; bits 0 - 7 set if SN register 0 - 7 updated this frame, cleared at start of player poll diff --git a/temp/lib/vgmplayer.s.6502 b/temp/lib/vgmplayer.s.6502 deleted file mode 100644 index 4c92f03..0000000 --- a/temp/lib/vgmplayer.s.6502 +++ /dev/null @@ -1,416 +0,0 @@ -\\ VGM Player -\\ Code module -\\ Uses memory &C00-CFF - -\\ Store current assembler address so we can restore later -VGMPLAYER_ORG = * - -\ ****************************************************************** -\ * Space hijacked from OS for runtime buffers not preinitialised -\ ****************************************************************** - -ORG &0c00 + EXO_TABL_SIZE ; soft-key storage -GUARD &0cff - -.player_song_title_len SKIP 1 -.player_song_title SKIP PLAYER_string_max -.player_song_author_len SKIP 1 -.player_song_author SKIP PLAYER_string_max - - -ORG VGMPLAYER_ORG - -.vgm_player_start - -\ ****************************************************************** -\ * VGM music player -\ * Plays a RAW format VGM music stream from an Exomiser compressed data stream -\ ****************************************************************** - -\ * EXO VGM data file -\ * This must be compressed using the following flags: -\ * exomizer.exe raw -c -m 1024 -o - - -\\ Initialise the VGM player with an Exomizer compressed data stream -\\ X - lo byte of data stream to be played -\\ Y - hi byte of data stream to be played -.init_vgm_stream -{ - \\ Initialise exomizer - must have some data ready to decrunch - JSR init_decruncher - - \\ Initialise music player - parses header - JSR init_player - - RTS -} - - -.init_player ; return non-zero if error -{ -\\

-\\ [byte] - header size - indicates number of bytes in header section - - LDA #1 - STA player_packet_offset - - jsr get_decrunched_byte - STA tmp_var - CMP #5 - BCS parse_header ; we need at least 5 bytes to parse! - JMP error - - .parse_header - CLC - ADC player_packet_offset - STA player_packet_offset - -\\ [byte] - indicates the required playback rate in Hz eg. 50/60/100 - - jsr get_decrunched_byte ; should really check carry status for EOF - CMP #PLAYER_sample_rate ; we only support 50Hz files - BEQ is_50HZ ; return non-zero to indicate error - JMP error - .is_50HZ - DEC tmp_var - -\\ [byte] - packet count lsb - - jsr get_decrunched_byte ; should really check carry status for EOF - STA player_packet_count - DEC tmp_var - -\\ [byte] - packet count msb - - jsr get_decrunched_byte ; should really check carry status for EOF - STA player_packet_count+1 - DEC tmp_var - -\\ [byte] - duration minutes - - jsr get_decrunched_byte ; should really check carry status for EOF - STA player_duration_mins - DEC tmp_var - -\\ [byte] - duration seconds - - jsr get_decrunched_byte ; should really check carry status for EOF - STA player_duration_secs - - .header_loop - DEC tmp_var - BEQ done_header - - jsr get_decrunched_byte ; should really check carry status for EOF - \\ don't know what this byte is so ignore it - JMP header_loop - - .done_header - -\\ -\\ [byte] - title string size - - INC player_packet_offset - - jsr get_decrunched_byte ; should really check carry status for EOF - STA tmp_var - - CLC - ADC player_packet_offset - STA player_packet_offset - -\\ [dd] ... - ZT title string - - LDX #0 - .title_loop - STX tmp_msg_idx - LDA tmp_var - BEQ done_title ; make sure we consume all the title string - DEC tmp_var - - jsr get_decrunched_byte ; should really check carry status for EOF - LDX tmp_msg_idx - CPX #PLAYER_string_max - BCS title_loop ; don't write if buffer full - STA player_song_title,X - INX - JMP title_loop - - \\ Where title string is smaller than our buffer - .done_title - STX player_song_title_len - LDA #' ' - .title_pad_loop - CPX #PLAYER_string_max - BCS done_title_padding - STA player_song_title,X - INX - JMP title_pad_loop - .done_title_padding - -\\ <author section> -\\ [byte] - author string size - - INC player_packet_offset - - jsr get_decrunched_byte ; should really check carry status for EOF - STA tmp_var - - CLC - ADC player_packet_offset - STA player_packet_offset - -\\ [dd] ... - ZT author string - - LDX #0 - .author_loop - STX tmp_msg_idx - LDA tmp_var - BEQ done_author ; make sure we consume all the author string - DEC tmp_var - - jsr get_decrunched_byte ; should really check carry status for EOF - LDX tmp_msg_idx - CPX #PLAYER_string_max - BCS author_loop - STA player_song_author,X ; don't write if buffer full - INX - JMP author_loop - - \\ Where author string is smaller than our buffer - .done_author - STX player_song_author_len - LDA #' ' - .author_pad_loop - CPX #PLAYER_string_max - BCS done_author_padding - STA player_song_author,X - INX - JMP author_pad_loop - .done_author_padding - - \\ Initialise vars - LDA #&FF - STA player_counter - - LDA #0 - STA player_ended - STA player_last_reg - STA player_reg_bits - - \\ Return zero - RTS - - \\ Return error - .error - LDA #&FF - RTS -} - -.deinit_player -{ - \\ Zero volume on all channels - LDA #&9F: JSR psg_strobe - LDA #&BF: JSR psg_strobe - LDA #&DF: JSR psg_strobe - LDA #&FF: JSR psg_strobe - - .return - RTS -} - -.poll_player -{ - \\ Assume this is called every 20ms.. - LDA #0 - STA player_reg_bits - - LDA player_ended - BNE _sample_end - -\\ <packets section> -\\ [byte] - indicating number of data writes within the current packet (max 11) -\\ [dd] ... - data -\\ [byte] - number of data writes within the next packet -\\ [dd] ... - data -\\ ...` -\\ <eof section> -\\ [0xff] - eof - - \\ Get next byte from the stream - jsr get_decrunched_byte - bcs _sample_end - - cmp #&ff - beq _player_end - - \\ Byte is #data bytes to send to sound chip: - TAY - .sound_data_loop - BEQ wait_20_ms - TYA:PHA - jsr get_decrunched_byte - bcc not_sample_end - PLA - JMP _sample_end - - .not_sample_end - JSR psg_decode - JSR psg_strobe - PLA:TAY:DEY - JMP sound_data_loop - - .wait_20_ms - INC player_counter ; indicate we have completed another frame of audio - - CLC - RTS - - ._player_end - STA player_ended - - \\ Silence sound chip - JSR deinit_player - - INC player_counter ; indicate we have completed one last frame of audio - - ._sample_end - SEC - RTS -} - -.psg_strobe -{ - sei ; **SELF-MODIFIED CODE** - ldy #255 - sty $fe43 - - sta $fe41 - lda #0 - sta $fe40 - nop - nop - nop - nop - nop - nop - lda #$08 - sta $fe40 - cli ; **SELF-MODIFIED CODE** - RTS -} - -PSG_STROBE_SEI_INSN = psg_strobe -PSG_STROBE_CLI_INSN = psg_strobe + 25 - -.psg_decode -{ - STA player_data - AND #SN_FREQ_BYTE_MASK - BEQ second_byte - - \\ First byte - - \\ Obtain register fields - - \\ Get register from bits 7,6,5 - LDA player_data - AND #SN_REG_MASK - LSR A:LSR A:LSR A:LSR A - STA player_last_reg - - \\ Y is our register number - TAY - - \\ Set bit field for each register used this frame - LDA num_to_bit,Y ; look up bit for reg number - ORA player_reg_bits ; mask in bit - STA player_reg_bits - - \\ Is this tone or volume register? - TYA - AND #&01 - BEQ process_tone_data - - \\ Volume data - LDA player_data - AND #SN_VOL_MASK - STA player_reg_vals,Y - - \\ Invert volume (0 = max 15 = off) - SEC - LDA #SN_VOL_MAX - SBC player_reg_vals,Y - STA player_reg_vals,Y - JMP return - - \\ Frequency / tone data - .process_tone_data - CPY #SN_REG_NOISE_CTRL ; Y already register number - BNE tone_channel - - \\ Noise channel - LDA player_data - AND #(SN_NF_MASK OR SN_FB_MASK) ; store noise freq data - STA player_reg_vals,Y - - JMP trigger_beat - - .tone_channel - LDA player_data - AND #SN_FREQ_FIRST_BYTE_MASK ; F3 - F0 - LSR A: LSR A ; lose bottom 2 bits - STA player_reg_vals,Y - - .trigger_beat - \\ trigger the beat effect for this channel - TYA:LSR A:TAY ; channel is register / 2 - LDA #9 - STA chan_array, Y - - JMP return - - .second_byte - LDA player_data - AND #SN_FREQ_SECOND_BYTE_MASK ; F9 - F4 - STA tmp_var - ASL A: ASL A ; put 6 bits to top of byte - LDY player_last_reg - ORA player_reg_vals,Y ; combine with bottom 2 bits - STA player_reg_vals,Y - - \\ trigger the beat effect for this channel -; technically correct, but better visuals without this. -; TYA:LSR A:TAY ; channel is register / 2 -; LDA #9 -; STA chan_array, Y - - LDA tmp_var -IF FX_num_freqs == 16 - \\ 16 frequency bars, so use top 4 bits - LSR A : LSR A -ELSE - \\ 32 frequency bars, so use top 5 bits - LSR A -ENDIF - - \\ clamp final frequency to array range and invert - AND #FX_num_freqs-1 - STA tmp_var - LDA #FX_num_freqs-1 - SEC - SBC tmp_var - TAX - LDA #15 - STA freq_array,X - - .return - LDA player_data - RTS -} - - - -.vgm_player_end -