Debug to TV using 1-PinTV +option 1-PinKBD (minimal footprint; screen buf overl
Cluso99
Posts: 18,069
Debug to TV using 1-Pin· (Now also includes optional 1-Pin Keyboard Driver)
05May2010: v1.25 allows user selection of column & row sizes
05May2010: v1.20 adds automatic parameter calculation and timing diagram
24Apr2010: Updated demo v1.10 in·OBEX· http://obex.parallax.com/objects/578/
(includes 1-Pin TV Driver and 1-Pin Keyboard drivers)
(Previous version v1.08 does not have the 1-Pin Keyboard Driver)
Features: 1-PinTV
It can also be used as a B&W text terminal replacing TVText in normal programs, or as an additional output to your TV/VGA.
Features: 1-PinKBD
Enjoy
Edit: There are instructions to build the video cable with the resistor inbuilt at the connector here http://forums.parallax.com/showthread.php?p=849265·Also instructions to build the·1-pin keyboard cable.
Below: Photos 1-5 are·of the video cable. The photos A-H are of the cable for my 1pin PS2 Keyboard driver.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Post Edited (Cluso99) : 5/5/2010 9:54:23 AM GMT
05May2010: v1.25 allows user selection of column & row sizes
05May2010: v1.20 adds automatic parameter calculation and timing diagram
24Apr2010: Updated demo v1.10 in·OBEX· http://obex.parallax.com/objects/578/
(includes 1-Pin TV Driver and 1-Pin Keyboard drivers)
(Previous version v1.08 does not have the 1-Pin Keyboard Driver)
Features: 1-PinTV
- Uses only 1 propeller pin·and a single series·resistor (100R...1K1, 270R preferred)
- see below for instructions to make a cable with the resistor in the plug
- 40x25 default (64x25 & 80x25 with overclocking)
- maximum settings...
- 80MHz··40x25 with inverse
- 80MHz··64x25 No inverse
- 96MHz··64x25 with inverse
- 96MHz··80x25 No inverse & some flicker
- 104MHz·80x25 No inverse
- see program to remove two inverse instructions
- NTSC or PAL
- Black & White composite video to TV or LCD (typically yellow RCA connector)
- Embedded in the cog...
- Font 128 characters 8x8
- Characters with bit7=1 show as inverse (not for all higher resolutions)
- Video driver
- Mini-Terminal driver
- Clear Screen : chr(0) & chr(24) [noparse][[/noparse]I may remove chr(24) as all drivers seem to use chr(0)?]
- Backspace··· : chr(8)
- LineFeed····· : chr(10)
- Home········· : chr(11)
- CarriageReturn : chr(13) automatically scrolls up when required
- Esc············ : chr(27) -not implemented-
- Right·········· : chr(28) wraps on same line
- Left············: chr(29) wraps on same line
- Up············· : chr(30) wraps on same column
- Down········· : chr(31) wraps on same colum
- Scrolls down automatically when required
- Includes Goto(x,y) in hub code
- Automatically displays cursor
- Screen buffer located in hub
- Overlays (re-uses)·the hub space occupied by the cog code (plus 4 longs)
- Screen buffer can be directly accessed by your program if desired
- Output methods (in hub)
- chr/out/tx (for compatability with most other drivers)
- str (for zero terminated strings)
- hex (for outputing in hex format)
- dec (for outputting in decimal format)
- bin (for outputting in binary format)
- home (sends cursor home)
- clear (clear screen & cursor home)
- gotoxy (sends cursor to col,row where 0,0 is home)
- cr (performs a carriage return =chr(13))
It can also be used as a B&W text terminal replacing TVText in normal programs, or as an additional output to your TV/VGA.
Features: 1-PinKBD
- Uses only 1 propeller pin·and three·resistor (100R & 2x 10K) and +5V·
- See below for instructions to make a cable with the resistors in the plug
- Works with most keyboards...
- PS2
- USB with adapter (in PS2 mode)
- DIN5 with adapter cable (older keyboards)
- Optional ASCII output conversion or ScanCodes
- 16 byte buffer in cog minimises hub space
- Requires <space> to·calculate keyboard timing
- Once done for a specific keyboard these values·can be hardcoded
- Saves synchronisation each time
- Saves hub space·
- Once done for a specific keyboard these values·can be hardcoded
- Ideally suited for a Debugging keyboard or the main Keyboard
- Useful in conjunction with the 1-PinTV driver
Enjoy
Edit: There are instructions to build the video cable with the resistor inbuilt at the connector here http://forums.parallax.com/showthread.php?p=849265·Also instructions to build the·1-pin keyboard cable.
Below: Photos 1-5 are·of the video cable. The photos A-H are of the cable for my 1pin PS2 Keyboard driver.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Post Edited (Cluso99) : 5/5/2010 9:54:23 AM GMT
Comments
Believe it or not I don't have a single spare resistor in the house any more!
I do have a 7 inch LCD TV somewhere that I've been meaning to use for such debugging chores.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Leon Heller
Amateur radio callsign: G1HSM
To change to PAL, go to the 1-pin TV & Keyboard thread (top) http://forums.parallax.com/showthread.php?p=862504
The program 1-pin_TV_calcs.spin will calculate the PAL values for you and you can put them into the driver. When I swap computers later today, I will post a PAL version.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Good work on this one.
This is going to be used in a project i'm developing that happens to have just one spare pin and some cogs + memory available.
Btw, is there a way to disable the cursor.
I would need to find a few longs to do this but I have not optimised everything so I know where some free longs to be obtained.
I also need to allow a command to set the cursor location (for code which directly accesses the screen hub buffer).
How quick do you need it?
Do you need to be able to turn the cursor on and off ?
Is >40 chars/line desired (needs overclocking) ?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Post Edited (Cluso99) : 3/3/2010 7:46:36 AM GMT
As·you are starting at 5MHz it wouldn't be a problem. The problem I would have is that the only 625/525 screens I have are old and fuzzy ( like me ).
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Style and grace : Nil point
Can you see the full 25 lines displayed on a real NTSC monitor? I only have PAL/NTSC here and the 25*8=400 usable lines are displayed as NTSC without problems although it does not take the full screen height. Do you want 48 characters/line? I know I cannot get 60 chars/line at 5MHz unless I ditch the inverse display.
I can save an instruction (~1/13) if I rearrange the font, and 2 instructions without inverse (~2/13). This is in the critical pixel display routine (called :evitca which is active reversed). I tried to unravel the fetch of longs but apart from code space (which I do not have) there was no real benefit anyway.
The main pasm routine is identical to my 1-pin TV driver. My aim here is to have options for 80x25 but it will require overclocking and I have not yet determined what the minimum clock speed will be.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
I have modified the font to be in two 128 character blocks of 4 rows of 8 pixels. This reduces the active display loop by 2 instructions
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
It's no hurry at all.
It would have been nice to be able to enable/disable the cursor at runtime.
It seems to be very tight both when it comes to cycles left per scanline and memory left in the cog. [noparse]:([/noparse]
As for space, I now have 4 longs free, and I can recover some from reusing the init code. But yes, it is very tight since half is used for the font (256 longs) and then there is also the screen control characters including scrolling. I still have to insert a few task call/returns to stop the tearing during fast scrolling.
I am trying to see how many chars/line I can get at 5MHz and what xtal overclocking I need to acheive 80x25.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
But I like the additional "high level" functionallity that you have added to the driver.
In my application I just want to monitor some values in a list/column kind of way.
That includes both strings, hex values and dec values.
Each refresh it just updates the list with the new values, I'm not interested in using it in a "terminal fashion" with a cursor.
The driver contains the constants for changing the number of characters per line. Here is what works for various overclocking. Some will work with the two inverse instructions removed from the active pixel display loop.
Ahle2: You can disable the cursor by commenting out the 3 instructions following waitforchar in the driver as shown below. If you just want to write the characters using the driver, you can do a home (without clear if you are overwriting by dbg.chr(11)) or you can write directly to the screen in hub memory. As you can see, 64x25 will work with a 5MHz xtal if you remove the inverse feature.
A photo is attached to show the quality of NTSC 80x25 at 104MHz (6.5MHz xtal) with my TV. Note inverse video has been commented out. A 6.25MHz xtal may give the same or else you will get a little flicker as the results are marginal. I do not have one to test.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Post Edited (Cluso99) : 3/5/2010 3:41:30 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Next I've got a question. I tried to export the screen for direct access to memory using
In my object that includes Debug_1pinTV.spin I then set a long in the DAT section to that value, i.e. screen := dbg.scrptr. The address I get there is wrong. It is about 6 lines and 4 characters into the screen array. What am I doing wrong?
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
He died at the console of hunger and thirst.
Next day he was buried. Face down, nine edge first.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
For me, the past is not over yet.
Darn. Declaring screen in DAT and reserving 40*25 bytes gives the same result. I don't get that. It must be possible to share the address of a buffer somehow.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
He died at the console of hunger and thirst.
Next day he was buried. Face down, nine edge first.
Post Edited (pullmoll) : 3/12/2010 2:54:28 PM GMT
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
8x8 color 80 Column NTSC Text Object
Safety Tip: Life is as good as YOU think it is!
I posted this code as a simple debug terminal. However, I have posted other code as a driver (which I use in SphinxOS) where the screen is exposed and passed to the driver. The code is posted on 1-pin keyboard and 1-pin TV thread http://forums.parallax.com/forums/default.aspx?f=25&p=1&m=407823
This may be a better solution for you, although based on a slightly older version of the driver.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
I wanted to use it as the terminal output for my Z80 emu. I'm surprised that now, when I included the object it in another file (io.spin) I get the correct address for the screen variable. I wrote my own little putchar in PASM in io.spin and this is, of course, a lot faster than using the functions on the video generating cog. I'll have a look at your other post and see if that fits better.
Ah, that one doesn't have PAL, so I'm going to stay with the version I have for now. Or actually I'm moving to serial I/O, because that seems easier now.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
He died at the console of hunger and thirst.
Next day he was buried. Face down, nine edge first.
Post Edited (pullmoll) : 3/13/2010 5:05:08 PM GMT
Question: I am thinking of placing the cursor position just prior to the screen block so that the driver can use this for the cursor. Be careful, as the cursor code swaps the screen memory at the cursor position as it flashes the cursor on/off. Comments??· If another program drives the screen memory directly, then it either has to do it's own cursor, or maintain the info for the driver to generate it. It is much easier to let the driver take care of it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Post Edited (Cluso99) : 3/13/2010 5:42:30 PM GMT
FWIW I had the cursor code commented out and printed my own cursor at the local x/y coordinates - a steady cursor. Having access to the cursor position would have helped as well. I suppose there's no clocks left to decide when to draw a solid line instead of the font data on the last scanline of a character? I mean by comparing y == cursor row and x == cursor cell, and then using a different waitvid section. Just a thought.
Juergen
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
He died at the console of hunger and thirst.
Next day he was buried. Face down, nine edge first.
Provided your code was to put the character into the screen where the cursor will be moved to before it is moved, the driver would replace the old cursor position correctly (as long as you had not changed it because the driver would overwrite it). If I implement this, it will require a little extra thought.
re using a different waitvid section, there is really no space for this. I am trying to implement as much as possible in this driver, but half the cog is taken with the 8x8 font. There is some space to be gained by using the init section for variables, but I have my eye on this anyway. Basically, the code is now almost all mine except the actual timing & drawing, although I started from Eric Ball's code. This is the only section I do not totally understand - the actual timings and how to calculate them. Once I understand this there may be other savings, but if I find more space I would like to do a better terminal emulation within the cog.
BTW, to improve performance, it is possible to include a hub buffer just like FDX.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz
Do you know if any of your 1-Pin TV Text objects (or those of Eric Ball or PhiPi) allow text to be placed at an arbitrary space on the screen? ...Something like Chip put into some of his video text objects:
'' $0A = set X position (X follows)
'' $0B = set Y position (Y follows)
I love the 1-pin monochrome composite video interface but I have an application that needs the ability to write text to particular locations on the screen, hopefully without repainting the entire screen with $20's to do it.
Post Edited (David Jensen) : 3/14/2010 5:22:36 AM GMT
@Cluso99: What timings are bugging you? I've worked a whole lot of those out. Happy to toss what I know into the cooker. Just let me know.
Dealing with stuff in the blanking period is a nice trick. Good job on that, BTW. I'm enjoying looking at your code, seeing very good use of the COG. Thanks for sharing it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
8x8 color 80 Column NTSC Text Object
Safety Tip: Life is as good as YOU think it is!
I'm a total noob to Spin and the Propeller, having written my first line of Propeller code just two days ago. But it seems to me that if Ray's object can do up, down, left, and right, there must be the possibility it could move the cursor to any specified X and Y more elegantly than by sending (say) 20 'down' commands and 35 'right' commands each time you want to print a number at position 35,20.
Since I've already got my app working with Chip's VGA_text object, it may be easier for me to use a few resistors to combine V-sync, H-sync, and Green (to get a composite video signal) than it would be to figure out a software solution. My hope was that there was already such a solution available.
I thought you meant placing a character at an arbitrary pixel position, which is either a bitmap or a sprite kind of operation. Sorry!
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Propeller Wiki: Share the coolness!
8x8 color 80 Column NTSC Text Object
Safety Tip: Life is as good as YOU think it is!
Of course the other way (which is what we used to do in minis in the 70's) is do home, down n, right n (or when we used macros to get smarter and go up and back if it was quicker).
Regarding your code with the VGA text object, there should be little difference between using VGA and TV in text mode. That is the whole point of the objects being seperate. What call methods are you using which are in VGA text and not TV text ???
potatohead: I have been trying to figure out all the calcs for the back & front porches, blanking, serration pulses, etc and their relationship to different xtal frequencies. I understand the timing loop for the actual pixel generation. You will note I broke the 8x8 fonts into 2 blocks to make it faster. I toyed with 5x7 fonts but using less pixels doesn't help anything here except a little memory gain. I decided it was not worth it.
I would like to try and sync my hub fetch and waitvids to see if I can improve the performance within the pixel display loop. When I see snow, I know I am sometimes missing the sweet spot, so that it should be possible to synchronise to always get it.
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Links to other interesting threads:
· Home of the MultiBladeProps: TriBlade,·RamBlade,·SixBlade, website
· Single Board Computer:·3 Propeller ICs·and a·TriBladeProp board (ZiCog Z80 Emulator)
· Prop Tools under Development or Completed (Index)
· Emulators: CPUs Z80 etc; Micros Altair etc;· Terminals·VT100 etc; (Index) ZiCog (Z80) , MoCog (6809)·
· Prop OS: SphinxOS·, PropDos , PropCmd··· Search the Propeller forums·(uses advanced Google search)
My cruising website is: ·www.bluemagic.biz·· MultiBlade Props: www.cluso.bluemagic.biz