Main Menu
PBP Code Menu
Login
Username:

Password:


Lost Password?

Register now!
Other: 48 level Software Stack  
Author: Darrel Taylor
Published: 11/28/2004
Read 1375 times
Size 3.16 KB
Printer Friendly Page Tell a Friend
 
Tired of only having 4 Levels of Nested Gosub

Software Stack (for PicBasic Pro)

Tired of only having 4 Levels of Nested Gosub's ??
Or, maybe you want to write a "Recursive" routine in PicBasic Pro ?? (MPASM required)
Now you can !!!


swStack.inc is an include file that will allow you to create up to a 48 level Software Stack on a 14-bit Core PIC.

The include file gives 2 Macro Commands:
    swGosub - Software Gosub
    swReturn - Return from Software Gosub

The Macro's are used almost exactly like PBP Gosub and Return, but since they are Assembly language the syntax is a little bit different.

PBP Example of normal Gosub:

Sub1:
     Hserout ["Hello"]
Return

Gosub Sub1

swGosub Example:
Sub1:
     Hserout ["Hello"]
@ swReturn

@ swGosub _Sub1           ; Note the underscore before Sub1


The Stack size must be set using the Constant "StackSize", prior to including swStack.inc
It is limited by the largest Word Array that you can fit into 1 bank, which varies, depending on the PIC chip used. With some modifications, that maximum could be increased.

Status of the Stack can be monitored with these variables that are defined in the swStack.inc file:
 


StackPTR      Var  Byte    ' Pointer to current Top of Stack
   StackFull     Var  bit     ' if=1, you cannot do another swGosub
   StackEmpty    var  bit     ' if=1, you cannot do a swReturn
   SToverflow    var  bit     ' swGosub called when Stack was Full
   STunderflow   var  bit     ' swReturn called when Stack was Empty


** An overflow or underflow does not reset the PIC like a Hardware overflow would. It simply won't execute the Gosub or Return. So you will either need to make sure it never happens, or handle the error in your program. You could also modify the swStack.inc file, and have it reset the PIC on an over/underflow. **

For an example of how to use swStack.inc, see the Test_swStack.pbp program.

Thanks again to JohnB for solving my forward declaration problem.

Hope this helps your program.

Darrel Taylor
 
Downloads for Other: 48 level Software Stack
swStack - Software Stack
downloads File Description:
Allows your program to GOSUB up to 48 times before having to RETURN

downloads 505  File Size 4.57 KB  File Mimetypeapplication/x-zip-compressedUploaded: 11/28/2004
Article Rated: 0.00 (0 votes)
Rate this Article
Return to Category | Return To Main Index
The comments are owned by the poster. We aren't responsible for their content.
Poster Thread