home *** CD-ROM | disk | FTP | other *** search
- rem $linesize:132
- rem $title:'* Screen I/O Generator *'
- rem $subtitle:'* Introduction *'
- rem $include:'aecommon.bas'
- '
- ' SGDEMO
- '
- ' (c) Roy Barrow, 1986,1987.
- '
- dim fl$(255%),dl.2$(4%) ' File array, 2nd Key Select Array
- dim text$(24%),datfrm$(3%) ' Lines 2-24
- dim ip.frame%(24%,80%) ' Frame for input markers
- dim var.type$(6%) ' Variable types
- dim io.name$(100%) ' 100 Names for Input Definition
- dim io.x%(100%) ' 100 X Locations
- dim io.y%(100%) ' 100 Y Locations
- dim mrec%(100%) ' 100 Master Pointers
- dim basgen$(100%) ' Basic Generation Sequence Array
- def fnn$(a%)=mid$(str$(a%),2%) ' Commonly used STRIPPER
-
- data "Single String","Text Block","Date"
- data "Integer","Single Precision","Double Precision"
- data "mm/dd/yy","yy/mm/dd","dd/mm/yy"
- for j%=1% to 6%
- read var.type$(j%)
- next j%
- for j%=1% to 3%
- read datfrm$(j%)
- next j%
-
- call color.init("appcolor.ctl")
-
- menu1:
- data 6,"File","Edit","Draw","Input","Exit","Color Setup"
- data 7,"Load","Save","Merge","","Generate Basic","","Status"
- data 9,"Copy of above line","Center Line","Insert Blank Line","Delete Line","Insert Column","Delete Column","Find & Replace","","Clear"
- data 3,"Box","Vertical Line","Horizontal Line"
- data 4,"Definition","","Remove","Clear"
- data 3,"To Editor (ESC)","To Shell","To System"
- data 1,"Define Attributes"
- restore menu1
- gosub get.menu
-
- '
- ' The menu definition is now made. Now call the Introductory box
- '
- locate ,,0
- call qbtools.frame
- w$=input$(1%)
- cls
-
- ae.sstack%=2000%
- call Centre.Text("Screen Generator Version: SGDEMO v 1.02",1%)
- call startup
-
- for j%=1% to 24%
- text$(j%)=string$(80%,32%)
- for k%=1% to 80%
- ip.frame%(j%,k%)=0%
- next k%
- next j%
-
- for j%=1% to 100%
- io.name$(j%)=""
- io.x%(j%)=0%
- io.y%(j%)=0%
- mrec%(j%)=0%
- next j%
-
- call scroll(1,2,80,24,0)
- ins$="Off"
- x%=1%
- y%=2%
- xmin%=1%
- xmax%=80%
- ymin%=2%
- ymax%=24%
- cycle%=0%
- lsch%=32% ' Last special alternate character
- dr.only%=0% ' Currently in NODRAW mode
- while cycle%=0%
-
- if ip.frame%(y%,x%) then
- i.o.txt$="F5=I/O "
- i.o.set%=1%
- else
- i.o.txt$=" "
- i.o.set%=0%
- end if
-
- if dr.only%=1% then
- i.o.txt$="Draw:"
- if vl.draw%=1% then
- i.o.txt$=i.o.txt$+"Vl"
- end if
- if hz.draw%=1% then
- i.o.txt$=i.o.txt$+"Hl"
- end if
- if bx.draw%=1% then
- i.o.txt$=i.o.txt$+"Box"
- end if
- end if
-
- optex$="F1=Menu F2=Last Menu F3=Alt Ch F4=Last Alt Ch Ins="+ins$+" x="+fnn$(x%)+" y="+fnn$(y%)+" "+i.o.txt$
- call qprint(optex$,25,1)
- locate y%,x%,1%,0%,15% ' Display the cursor
- call Get.Single(ch%,ctype%)
-
- if dr.only%=0% then
- if ctype%=2% then
- if ch%=61% then
- for j%=1% to 70%
- fl$(j%)=chr$(j%+173%)
- next j%
- dialog$(1)="Select a"
- dialog$(2)="Character"
- dialog$(3)="From List"
- dialog$(4)=""
- call select.box(fl$(),8%,70%,1%,opt$)
- ch%=asc(opt$)
- lsch%=ch%
- ctype%=1%
- end if
- end if
-
- if ctype%=2% then ' Repeat last Alternate Character
- if ch%=62% then
- ch%=lsch%
- ctype%=1%
- end if
- end if
-
- if ctype%=2% then
- if ch%=63% then ' Display i.o.definition
- if i.o.set% then
- nav%=ip.frame%(y%,x%)
- rec%=mrec%(nav%)
- get #11,rec%
- vt%=asc(v.type$)
- varn$=var.des$
- call ctrl.trim(varn$)
- dialog$(1%)="Variable: "+varn$+" ("+var.type$(vt%)+")"
- if vt%=1% then
- dialog$(2%)=str$(asc(s.len$))+" characters in length."
- end if
- if vt%=2% then
- dialog$(2%)=str$(asc(b.width$))+" characters wide, and"+str$(asc(b.height$))+" lines high."
- end if
- if vt%=3% then
- dialog$(2%)="Which is in the format:"
- df%=asc(d.form$)
- dialog$(2%)=dialog$(2%)+datfrm$(df%)+"."
- end if
- if (vt%=4% or vt%=6% or vt%=5%) then
- dialog$(2%)="In value between"
- dialog$(2%)=dialog$(2%)+str$(cvd(v.min$))+" and"+str$(cvd(v.max$))+"."
- end if
- dc%=2%
- call Press.Any.Key(dc%)
- end if
- end if
- end if
-
- if ctype%=2% then
- if ch%=59% or ch%=60% then
- if ch%=59% then
- where%=varptr(ae.screens%(1%))
- locate ,,0
- restore menu1
- gosub get.menu
- call Pull.Down.Menu
- prvmen%=menu%
- prvop%=menop%
- end if
- if ch%=60% then
- menu%=prvmen%
- menop%=prvop%
- end if
- if menu%=1% then
-
- rem $subtitle:'Load an existing file.'
- rem $page
- if menop%=1% then ' Load a file
- call getfiles(fl$(),"?","scr",count%)
- if count%>0% then
- call qsort(fl$(),count%)
- dialog$(1)="Select file to load"
- dialog$(2)="from the list on the"
- dialog$(3)="left."
- dialog$(4)=""
- call select.box(fl$(),10%,count%,12%,opt$)
- call ctrl.trim(opt$)
- if len(opt$) then
- open "r",1,opt$,80
- opt$=left$(opt$,instr(opt$,".")-1%)
- field #1,80 as s1$
- for j%=1% to 24%
- get #1,j%
- text$(j%)=s1$
- next j%
- close 1
- for j%=2% to 24%
- call qprint(text$(j%),j%,1%)
- next j%
- end if
- end if
- if count%=0% then ' No file exists.
- end if
- end if
-
- rem $subtitle:'Save a file.'
- rem $page
- if menop%=2% then ' Save a file
- dialog$(1)="Save this file as ..."
- dialog$(2)=""
- fil.1$=string$(8%,32%)
- l1%=8%
- call Dialog(fil.1$,l1%)
- call ctrl.trim(fil.1$)
- if len(fil.1$) then
- open "r",1,fil.1$+".SCR",80
- field #1,80 as s1$
- for j%=1% to 24%
- lset s1$=text$(j%)
- put #1,j%
- next j%
- close 1
-
- end if
- end if
-
- rem $subtitle:'Merge a file.'
- rem $page
- if menop%=3% then ' Merge a file
- call getfiles(fl$(),"?","scr",count%)
- if count% then
- call qsort(fl$(),count%)
- end if
- if count% then
- dialog$(1)="Select file to merge from"
- dialog$(2)="the list on the left. This"
- dialog$(3)="option merges in screen"
- dialog$(4)="text only. I/O is ignored."
- call select.box(fl$(),10%,count%,12%,opt$)
- call ctrl.trim(opt$)
- if len(opt$) then
- open "r",1,opt$,80
- opt$=left$(opt$,instr(opt$,".")-1%)
- field #1,80 as s1$
- for j%=2% to 24%
- get #1,j%
- for k%=1% to 80%
- if mid$(text$(j%),k%,1%)=" " then
- mid$(text$(j%),k%,1%)=mid$(s1$,k%,1%)
- end if
- next k%
- next j%
- close 1
- for j%=2% to 24%
- call qprint(text$(j%),j%,1%)
- next j%
- end if
- end if
- end if
-
- rem $subtitle:'Generate the BASIC code.'
- rem $page
- if menop%=5% then ' Generate Basic
- dialog$(1)="BASIC program to create is ..."
- dialog$(2)=""
- fil.1$=string$(8%,32%)
- l1%=8%
- call Dialog(fil.1$,l1%)
- call ctrl.trim(fil.1$)
- open "o",1,fil.1$+".bas"
- dialog$(1%)="Title this program ..."
- dialog$(2%)=""
- call Dialog(tit$,50%)
- call ctrl.trim(tit$)
- print #1,"rem $linesize:132"
- print #1,"rem $title:'"+tit$+"'"
- print #1,"rem $subtitle:'(c) Copyright Roy Barrow 1986,1987.'"
- print #1,""
- print #1,"' Screen Generator Version: SGDEMO"
- print #1,"' This program ("+fil.1$+") created on: "+date$+", "+time$
- print #1,""
- print #1," call "+fil.1$+".frame"
- print #1,""
- print #1," END"
- print #1,""
- print #1," sub "+fil.1$+".frame static"
- for j%=2% to 24%
- w$=text$(j%)
- call trim(w$)
- if len(w$) then
- w%=instr(text$(j%),w$)
- print #1," locate "+fnn$(j%)+","+fnn$(w%)
- print #1," print "+chr$(34%)+w$+chr$(34%)+";"
- end if
- next j%
- print #1," end sub ' "+fil.1$
- close 1
- end if
-
- rem $subtitle:'Status / free memory.'
- rem $page
- if menop%=7% then ' Show status
- dialog$(1%)="Free memory (before compaction) is"+str$(fre(0))
- dialog$(2%)="Free memory (after compaction) is"+str$(fre(""))
- dialog$(3%)="Size of next free LNA is"+str$(fre(-1))
- call Press.Any.Key(3%)
- end if
-
- end if
-
- if menu%=2% then
- rem $subtitle:'Copy above line'
- rem $page
- if menop%=1% then ' Copy above line
- text$(y%)=text$(y%-1%)
- call qprint(text$(y%),y%,1%)
- y%=y%+1%
- end if
-
- rem $subtitle:'Center the current line.'
- rem $page
- if menop%=2% then ' Centre line
- call trim(text$(y%))
- text$(y%)=string$((80%-len(text$(y%)))/2%,32%)+text$(y%)
- text$(y%)=text$(y%)+string$(80%-len(text$(y%)),32%)
- call qprint(text$(y%),y%,1%)
- end if
- rem $subtitle:'Insert a blank line.'
- rem $page
- if menop%=3% then ' Insert line
- for j%=24% to y%+1% step -1%
- text$(j%)=text$(j%-1%)
- next j%
- text$(y%)=string$(80%,32%)
- for j%=24% to y% step -1%
- call qprint(text$(j%),j%,1%)
- next j%
- end if
- rem $subtitle:'Delete current line and scroll others up'
- rem $page
- if menop%=4% then ' Delete line
- for j%=y% to 23%
- text$(j%)=text$(j%+1%)
- next j%
- text$(24%)=string$(80%,32%)
- for j%=y% to 24%
- call qprint(text$(j%),j%,1%)
- next j%
- end if
- rem $subtitle:'Insert a column of blanks at this point'
- rem $page
- if menop%=5% then ' Insert column
- ch%=32% ' Character to insert
- for j%=2% to 24%
- if x%=1% then
- text$(j%)=chr$(ch%)+mid$(text$(j%),1%,79%)
- end if
-
- if x%=80% then
- mid$(text$(j%),80%,1%)=chr$(ch%)
- end if
-
- if (x%>1% and x%<80%) then
- pref$=mid$(text$(j%),1%,x%-1%)
- post$=mid$(text$(j%),x%,79%)
- text$(j%)=pref$+chr$(ch%)+post$
- end if
-
- if len(text$(j%))>80% then
- text$(j%)=mid$(text$(j%),1%,80%)
- end if
-
- call qprint(text$(j%),j%,1%)
- next j%
- end if
- rem $subtitle:'Delete a column at this point'
- rem $page
- if menop%=6% then ' Delete column
-
- for j%=2% to 24%
-
- if x%=1% then
- text$(j%)=mid$(text$(j%),2%,80%)+" "
- end if
- if x%=80% then
- mid$(text$(j%),80%,1%)=" "
- end if
- if (x%>1% and x%<80%) then
- pref$=mid$(text$(j%),1%,x%-1)
- post$=mid$(text$(j%),x%+1,79%)
- text$(j%)=pref$+post$+" "
- end if
-
- call qprint(text$(j%),j%,1%)
- next j%
-
- end if
- rem $subtitle:'Find and replace text on whole screen'
- rem $page
- if menop%=7% then ' Find & Replace
- dialog$(1)="Find..."
- dialog$(2)="and replace it with..."
- dialog$(3)="(If items differ in length, the"
- dialog$(4)="line will loose characters)"
- find$=string$(8%,32%)
- rep$=string$(8%,32%)
- l1%=8%
- l2%=8%
- call Dialog.Two(find$,l1%,rep$,l2%)
- call ctrl.trim(find$)
- call ctrl.trim(rep$)
- a%=len(find$)
- b%=len(rep$)
- if a%>b% then
- b%=a%
- end if
-
- if len(find$)<b% then
- find$=find$+string$(b%-len(find$),32%)
- end if
- if len(rep$)<b% then
- rep$=rep$+string$(b%-len(rep$),32%)
- end if
- for j%=2% to 24%
- a%=instr(text$(j%),find$)
- c%=0%
- while a% and c%<80%
- mid$(text$(j%),a%,b%)=rep$
- c%=c%+1%
- a%=instr(text$(j%),find$)
- wend
- call qprint(text$(j%),j%,1%)
-
- next j%
-
- end if
- rem $subtitle:'Clear (blank) the whole screen'
- rem $page
- if menop%=9% then ' CLEAR
- for j%=2% to 24%
- text$(j%)=string$(80%,32%)
- call qprint(text$(j%),j%,1%)
- next j%
- end if
-
-
- end if
-
- if menu%=3% then
- rem $subtitle:'Draw a box'
- rem $page
- if menop%=1% then ' Draw a BOX
- dialog$(1)="To draw a box, move to the opposite"
- dialog$(2)="corner & press return - still continue?"
- call yes.no(yn$)
- if yn$="Y" then ' Yes, a box has been chosen
- bx.draw%=1% ' Turn on box draw
- dr.only%=1% ' Make allowable input draw only
- crx%=x%
- cry%=y%
- end if
- end if
-
- rem $subtitle:'Draw a vertical line'
- rem $page
- if menop%=2% then ' Draw a Vertical line
- dialog$(1)="To draw a line, move to the opposite"
- dialog$(2)="end & press return - still continue?"
- call yes.no(yn$)
- if yn$="Y" then ' Yes, a vertical line has been chosen
- vl.draw%=1% ' Turn on line draw
- dr.only%=1% ' Make allowable input draw only
- crx%=x%
- cry%=y%
- end if
- end if
-
- rem $subtitle:'Draw a horizontal line'
- rem $page
- if menop%=3% then ' Draw a horizontal line
- dialog$(1)="To draw a line, move to the opposite"
- dialog$(2)="end & press return - still continue?"
- call yes.no(yn$)
- if yn$="Y" then ' Yes, a horizontal line been chosen
- hz.draw%=1% ' Turn on line draw
- dr.only%=1% ' Make allowable input draw only
- crx%=x%
- cry%=y%
- end if
- end if
-
- end if
-
-
- if menu%=4% then
- rem $subtitle:'Define an input'
- rem $page
-
- dialog$(1%)="This option is not available in"
- dialog$(2%)="the demo version of the screen"
- dialog$(3%)="generator. This is a function"
- dialog$(4%)="available ONLY in the Application"
- dialog$(5%)="Engineer Program Generator...."
- call Press.Any.Key(5%)
-
- end if
-
- if menu%=6% then
- where%=varptr(ae.screens%(1%))
- call scrsave(where%)
- cls
- call aecolins
- close
- call scrrest(where%)
- menop%=0%
- menu%=0%
- end if
-
- if menu%=5% then
- rem $subtitle:'SHELL - return to DOS (Temporarily)'
- rem $page
- if menop%=2% then ' SHELL
- where%=varptr(ae.screens%(1%))
- call scrsave(where%)
- cls
- print "Use EXIT to return to SGDEMO"
- shell "\COMMAND" ' Call the command processor
- call scrrest(where%)
- end if
-
- rem $subtitle:'Return to DOS'
- rem $page
- if menop%=3% then ' System
- dialog$(1)="Ensure that you have SAVE'd your screen"
- dialog$(2)="Do you still want to EXIT SGDEMO ?"
- call Yes.No(yn$)
- if yn$="Y" then
- cls
- print "SGDEMO returning to DOS"
- system
- end if
- end if
- end if
- end if
- end if
- end if
-
- if ctype%=2% then
- rem $subtitle:'General Editing Keys including delete'
- rem $page
- if dr.only%=0% then
- if ch%=82% then ' Insert on / off
- if ins$="Off" then
- ins$="On "
- else
- ins$="Off"
- end if
- end if
-
-
- if ch%=83% then ' Delete
- if x%=1% then
- text$(y%)=mid$(text$(y%),2%,80%)+" "
- end if
- if x%=80% then
- mid$(text$(y%),80%,1%)=" "
- end if
-
- if (x%>1% and x%<80%) then
- pref$=mid$(text$(y%),1%,x%-1)
- post$=mid$(text$(y%),x%+1,79%)
- text$(y%)=pref$+post$+" "
- end if
-
- call qprint(text$(y%),y%,1%)
- end if
- end if
-
- if dr.only%=0% or (hz.draw%=1% or bx.draw%=1%) then
- if ch%=75% then ' Left Arrow
- x%=x%-1%
- end if
-
- if ch%=77% then ' Right Arrow
- x%=x%+1%
- end if
- end if
-
-
- if dr.only%=0% or (vl.draw%=1% or bx.draw%=1%) then
- if ch%=72% then ' Up Arrow
- y%=y%-1%
- end if
-
- if ch%=80% then ' Down Arrow
- y%=y%+1%
- end if
- end if
- end if
-
- if ctype%=1% then
-
- if ch%=13% then
- if dr.only%=0% then
- x%=1%
- y%=y%+1%
- end if
- if crx%>x% then
- stx%=x%
- enx%=crx%
- else
- stx%=crx%
- enx%=x%
- end if
- if cry%>y% then
- sty%=y%
- eny%=cry%
- else
- sty%=cry%
- eny%=y%
- end if
- if dr.only%=1% then
- if hz.draw%=1% then ' Complete horizontal line
- fl$(1%)=string$(5%,196%)
- fl$(2%)=string$(5%,205%)
- fl$(3%)=string$(5%,"-")
- fl$(4%)=string$(5%,"_")
- fl$(5%)=string$(5%,"=")
- dialog$(1)="Select a line"
- dialog$(2)="type from those"
- dialog$(3)="available in the"
- dialog$(4)="list displayed"
- call select.box(fl$(),4%,5%,5%,opt$)
- if len(opt$)<>0% then
- for hz.draw%=stx% to enx%
- mid$(text$(y%),hz.draw%,1%)=chr$(asc(opt$))
- next hz.draw%
- call qprint(text$(y%),y%,1%)
- end if
- hz.draw%=0%
- end if
-
- if vl.draw%=1% then ' Complete vertical line
- fl$(1%)=chr$(179%)
- fl$(2%)=chr$(186%)
- fl$(3%)="|"
- fl$(4%)="!"
- dialog$(1)="Select a line"
- dialog$(2)="type from those"
- dialog$(3)="available in the"
- dialog$(4)="list displayed"
- call select.box(fl$(),4%,4%,2%,opt$)
- if len(opt$)<>0% then
- for vl.draw%=sty% to eny%
- mid$(text$(vl.draw%),x%,1%)=chr$(asc(opt$))
- call qprint(text$(vl.draw%),vl.draw%,1%)
- next vl.draw%
- end if
- vl.draw%=0%
- end if
- if bx.draw%=1% then ' Complete box
- fl$(1%)=chr$(218%)+chr$(196%)+chr$(191%)
- fl$(2%)=chr$(213%)+chr$(205%)+chr$(184%)
- fl$(3%)=chr$(214%)+chr$(196%)+chr$(183%)
- fl$(4%)=chr$(201%)+chr$(205%)+chr$(187%)
- dialog$(1)="Select a Box line"
- dialog$(2)="type from those"
- dialog$(3)="available in the"
- dialog$(4)="list displayed"
- call select.box(fl$(),4%,4%,3%,opt$)
- if len(opt$)<>0% then
- box.t%=asc(opt$)
- if box.t%=218% then
- tl%=218%
- tr%=191%
- bl%=192%
- br%=217%
- vt%=179%
- hz%=196%
- end if
- if box.t%=213% then
- tl%=213%
- tr%=184%
- bl%=212%
- br%=190%
- vt%=179%
- hz%=205%
- end if
- if box.t%=201% then
- tl%=201%
- tr%=187%
- bl%=200%
- br%=188%
- vt%=186%
- hz%=205%
- end if
- if box.t%=214% then
- tl%=214%
- tr%=183%
- bl%=211%
- br%=189%
- vt%=186%
- hz%=196%
- end if
- for bx%=stx%+1% to enx%-1%
- mid$(text$(sty%),bx%,1%)=chr$(hz%)
- mid$(text$(eny%),bx%,1%)=chr$(hz%)
- next bx%
- for bx%=sty%+1% to eny%-1%
- mid$(text$(bx%),stx%,1%)=chr$(vt%)
- mid$(text$(bx%),enx%,1%)=chr$(vt%)
- next bx%
- mid$(text$(sty%),stx%,1%)=chr$(tl%)
- mid$(text$(eny%),stx%,1%)=chr$(bl%)
- mid$(text$(sty%),enx%,1%)=chr$(tr%)
- mid$(text$(eny%),enx%,1%)=chr$(br%)
- for bx%=sty% to eny%
- call qprint(text$(bx%),bx%,1%)
- next bx%
- end if
- bx.draw%=0%
- end if
- dr.only%=0%
- end if
- end if
-
-
- if dr.only%=0% then
- if ch%=8% then
- mid$(text$(y%),x%,1%)=chr$(32%)
- call qprint(text$(y%),y%,1%)
- x%=x%-1%
- end if
-
- if ch%=127% then
- if x%=1% then
- text$(y%)=mid$(text$(y%),2%,80%)+" "
- end if
- if x%=80% then
- mid$(text$(y%),80%,1%)=" "
- end if
-
- if (x%>1% and x%<80%) then
- pref$=mid$(text$(y%),1%,x%-1)
- post$=mid$(text$(y%),x%+1,79%)
- text$(y%)=pref$+post$+" "
- end if
-
- call qprint(text$(y%),y%,1%)
- end if
-
- if ch%=9% then
- x%=x%+5%
- end if
-
- if (ch%>31% and ch%<127%) or (ch%>173% and ch%<254%) then
-
- if ins$="Off" then
- mid$(text$(y%),x%,1%)=chr$(ch%)
- end if
-
- if ins$="On " then
-
- if x%=1% then
- text$(y%)=chr$(ch%)+mid$(text$(y%),1%,79%)
- end if
-
- if x%=80% then
- mid$(text$(y%),80%,1%)=chr$(ch%)
- end if
-
- if (x%>1% and x%<80%) then
- pref$=mid$(text$(y%),1%,x%-1%)
- post$=mid$(text$(y%),x%,79%)
- text$(y%)=pref$+chr$(ch%)+post$
- end if
-
- if len(text$(y%))>80% then
- text$(y%)=mid$(text$(y%),1%,80%)
- end if
-
- end if
- x%=x%+1%
- call qprint(text$(y%),y%,1%)
- end if
- end if
- end if
-
- if y%>ymax% then
- y%=ymin%
- end if
-
- if y%<ymin% then
- y%=ymax%
- end if
-
- if x%>xmax% then
- x%=xmin%
- end if
-
- if x%<xmin% then
- x%=xmax%
- end if
-
- wend
-
-
- end
-
- rem $subtitle:'Read menu definitions from DATA statements'
- rem $page
- get.menu:
- e.count%=0%
- read mcount%
- for mop%=1% to mcount%
- e.count%=e.count%+1%
- read ae.menu$(e.count%)
- next mop%
- for mop%=1% to mcount%
- read sop%
- for j%=1% to sop%
- e.count%=e.count%+1%
- read ae.menu$(e.count%)
- next j%
- ae.op%(mop%)=sop%
- next mop%
- return
-
- rem $subtitle:'Startup screen - greetings'
-
- sub startup static
-
- call explode
- call SG5greet
- call Get.Single(a%,b%)
-
- end sub
-
- sub explode static
- tr$="╗"
- bl$="╚"
- br$="╝"
- horz$="═"
- vert$="║"
-
- c%=11% ' Center point
- b%=25%
- for d%=2% to 7%
- call qprint("╔",c%-d%,b%)
- call qprint(tr$,c%-d%,80%-b%)
- call qprint(bl$,c%+d%,b%)
- call qprint(br$,c%+d%,80%-b%)
- call qprint(string$((39%-b%)*2%+1%,horz$),c%-d%,b%+1%)
- call qprint(string$((39%-b%)*2%+1%,horz$),c%+d%,b%+1%)
- for j%=(c%-d%)+1% to (c%+d%)-1%
- call qprint(vert$,j%,b%)
- call qprint(vert$,j%,80%-b%)
- next j%
-
- if d%<>7% then
-
- call qprint(" ",c%-d%,b%)
- call qprint(" ",c%-d%,80%-b%)
- call qprint(" ",c%+d%,b%)
- call qprint(" ",c%+d%,80%-b%)
- call qprint(string$((39%-b%)*2%+1%,32),c%-d%,b%+1%)
- call qprint(string$((39%-b%)*2%+1%,32),c%+d%,b%+1%)
-
- for j%=(c%-d%)+1% to (c%+d%)-1%
- call qprint(" ",j%,b%)
- call qprint(" ",j%,80%-b%)
- next j%
-
- b%=b%-2%
- end if
- next d%
-
-
- end sub
-
- sub SG5greet static
- call qprint("Screen Generator Utility",9,29)
- call qprint("(C) Roy Barrow 1986,1987",10,29)
- call qprint("Version SGDEMO",11,34)
- call qprint("Press any Key to continue",13,29)
- end sub
-
-
- sub QBTOOLS.frame static
- call qprint("╒═══════════════════════════════════════════════════Press any key to continue══╕",2,1)
- call qprint("│ │",3,1)
- call qprint("│ QuickBASIC Toolbox, by Roy Barrow │",4,1)
- call qprint("│ │",5,1)
- call qprint("│ The QuickBASIC Toolbox is a collection of sub programs that can be │",6,1)
- call qprint("│ included with your QuickBASIC applications. A few of the functions │",7,1)
- call qprint("│ of this collection are demonstrated in this program, a simple basic │",8,1)
- call qprint("│ screen generator. │",9,1)
- call qprint("│ │",10,1)
- call qprint("│ Other functions not displayed here include: │",11,1)
- call qprint("│ │",12,1)
- call qprint("│ Binary Tree File Indexing , Dynamic File Control , │",13,1)
- call qprint("│ Text Block, Numeric & Date Input with range validation , │",14,1)
- call qprint("│ Context Sensitive Help .... and a host more. │",15,1)
- call qprint("│ │",16,1)
- call qprint("│ A copy of these routines and source code is available for $30 from: │",17,1)
- call qprint("│ │",18,1)
- call qprint("│ Roy Barrow BBBS - Wildcat! │",19,1)
- call qprint("│ 5g 222 Church Street - or - Basic programmers Bulletin Board System │",20,1)
- call qprint("│ Philadelphia (215) 627-3910 24hrs 2400/1200 Baud │",21,1)
- call qprint("│ PA 19106 │",22,1)
- call qprint("│ (215) 922-2557 ..... Ask about the Application Engineer Program Generator. │",23,1)
- call qprint("╘══════════════════════════════════════════════════════════════════════════════╛",24,1)
- end sub ' QBTOOLS
-