This was back in the day of 300 baud(1200 if you were lucky). Things to note:
- speed of the menus
- inside-out opening of the main menu
- animated characters - arrows, ? and +
- animated sprite (64-net in top-right corner)
- and of course, the music.
The speed of the menus was possible because I had set aside part of the 64's RAM as "mini buffers". I believe there were 64 mini buffers and they each could hold up to 64 bytes(conviently sized for holding sprite data). Sprites could be animated by sending a command that included a sequence of mini buffers to step thru, and the speed at which to animate. Mini buffers could also hold character animation(8 frames) as well as text. With the mini buffers you could output cached text at the rate of 64 characters for every 2 sent(simulating 9600 baud on a 300 baud connection).
The inside-out main menu is possible because I'd added support for the C=128 [link|http://members.tripod.com/~rvbelzen/c128sg/app-i.htm|Control and ESCape codes]. This made it possible to quickly jump around the screen and to shift characters back and forth. When you logged on a randomly selected menu would be stored in the mini buffers. I had main menus that would come onscreen by sliding in from the left, right, and down from the top. The inside-out menu was the most complicated - I had to write a program to generate the text stream.
We'd often use the animated sprites around the holidays - a ghost, witch or skeleton would dance across the screen for Halloween, Santa for Xmas and so on. Nimrod IX ran the Musician's Guild and had come up with an interesting animation for Thanksgiving. First time at the menu a turkey would run across the screen. Second time an axe would chase the turkey across the screen. The third time a nice steaming roasted turkey would be on the screen.
When I first wrote the BBS/term, music required a 1200 baud modem to work. Around that time people figured out how to push the 300 baud modems faster by tweeking the timing values, so I added that ability to the term and BBS. I found that 450 baud was fast enough to play back the music. Knowing that, I came up with a compression scheme that packed 8 bytes of music data into 5 bytes, which enabled the music to work in realtime for 300 baud callers. The music was compatible with the 128's [link|http://www.commodore.ca/manuals/128_system_guide/sect-07b.htm#7.3.2.3|PLAY] and [link|http://www.commodore.ca/manuals/128_system_guide/sect-07b.htm#7.3.2.1|ENVELOPE], [link|http://www.commodore.ca/manuals/128_system_guide/sect-07b.htm#7.3.2.2|TEMPO] commands, though I'd enhanced the envelope with parameters for portamento and vibrato which are used to great effect in the Music Sub demo.
I initially tried selling MusicTerm, but there weren't that many people interested in buying it. I ended up making it a free download and that resulted in more sales of the BBS software. I paid for a number of college textbooks that way :)