Quickstart Double Stack
Oldbitcollector (Jeff)
Posts: 8,091
Sometimes the coolest answers are the one's that hit you over the head because they were there all along...
I've been banging my head against my desk to find a simple way to expand my PMC project to add some features I simply haven't had room for. Turns out, it was much easier than I thought.
The project has been so successful so far, that I thought it warranted having it's own thread for some photos and details.
This is a project fork of Pocket Mini Computer that I'm calling VASP (Video/Audio Second Propeller) {snappy name huh? } Unloading the code from the VGA video object and SIDcog onto a second Propeller, I've opened up around 8k I didn't have before for adding capabilities and BASIC programming space. It also appears that it should be pretty easy to create a special GRAPHICS mode for the BASIC by adding a second VGA object and switching to it on the fly.
Everything is coordinated with interconnecting serial RX/TX connection (thanks to some very good advice I received here. Thanks Duane!)
Thread's on this project can be found here and here.
I'm thinking the VASP part of this project may be useful for anyone who wants to offload VGA/Audio onto a second Propeller. In a sense I've created a Propeller Terminal of sorts. There has been several discussions for linking an Ardunio. This could be useful for that project as well.
Here's the current ESC control code used by the second Propeller:
Here's a few photos of the project.
Jeff
I've been banging my head against my desk to find a simple way to expand my PMC project to add some features I simply haven't had room for. Turns out, it was much easier than I thought.
The project has been so successful so far, that I thought it warranted having it's own thread for some photos and details.
This is a project fork of Pocket Mini Computer that I'm calling VASP (Video/Audio Second Propeller) {snappy name huh? } Unloading the code from the VGA video object and SIDcog onto a second Propeller, I've opened up around 8k I didn't have before for adding capabilities and BASIC programming space. It also appears that it should be pretty easy to create a special GRAPHICS mode for the BASIC by adding a second VGA object and switching to it on the fly.
Everything is coordinated with interconnecting serial RX/TX connection (thanks to some very good advice I received here. Thanks Duane!)
Thread's on this project can be found here and here.
I'm thinking the VASP part of this project may be useful for anyone who wants to offload VGA/Audio onto a second Propeller. In a sense I've created a Propeller Terminal of sorts. There has been several discussions for linking an Ardunio. This could be useful for that project as well.
Here's the current ESC control code used by the second Propeller:
'' VASP ESCAPE CODE USAGE CUIDE: '' =============================== '' '' Variables: '' ^[1x = Set Variable 1 to x '' ^[2x = Set Variable 2 to x '' ^[3x = Set Variable 3 to x '' ^[4x = Set Variable 4 to x '' ^[5x = Set Variable 5 to x '' ^[6x = Set Variable 6 to x '' ^[7x = Set Variable 7 to x '' ^[8x = Set Variable 8 to x '' ^[9x = Set Variable 9 to x '' VGA Video Controls: '' ^[10 = plot(var1,var2,var3) {plot(x, y, color)} '' ^[11 = backgroundcolor(var1) '' ^[12 = forgroundcolor(var1) '' ^[13 = Clear var1..var9 to zero. '' ^[14 = redefine(var1,var2,var3,var4,var5,var6,var7,var8,var9) {redefine(character,c0,c1,c2,c3,c4,c5,c6,c7)} '' ^[15 = box(var1,var2,var3,var4,var5) {box(x0, y0, x1, y1, color)} '' ^[16 = line(var1,var2,var3,var4,var5) {line(x0, y0, x1, y1, color)} '' ^[17 = locate(var1,var2) {locate(x,u)} '' ^[18 = Home Cursor '' ^[19 = Clear screen '' ^[20 = Invoke secondary video driver (RESERVED FOR FUTURE USE) '' ^[21 = Reserved Cursor Control '' ^[22 = Reserved Cursor Control '' SIDcog Audio Controls: '' ^[30 = sid.setPulseWidth(var1,var2) {setPulseWidth(channel, pulseWidth)} '' ^[31 = sid.SetWaveForm(var1,var2) {setWaveform(channel, waveform)} '' ^[32 = sid.noteon(var1,var2) {noteOn(channel, freq)} '' ^[33 = sid.noteoff(var1) {noteOff(channel)} '' ^[34 = sid.setFreq(var1,var2) {setFreq(channel, freq)} '' ^[35 = sid.setVolume(var1) {setVolume(volumeValue)} '' ^[36 = sid.play(var1,var2,var3,var4,var5,var6,var7) {play(channel, freq, waveform, attack, decay, sustain, release)} '' ^[37 = sid.setADSR(var1,var2,var3,var4,var5) {setADSR(channel, attack, decay, sustain, release)}
Here's a few photos of the project.
Jeff
Comments
I can't wait to build one with my spare parts!