[Search for users]
[Overall Top Noters]
[List of all Conferences]
[Download this site]
Title: | GUITARnotes - Where Every Note has Emotion |
Notice: | Discussion of the finer stringed instruments |
Moderator: | KDX200::COOPER |
|
Created: | Thu Aug 14 1986 |
Last Modified: | Fri Jun 06 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 3280 |
Total number of notes: | 61432 |
1906.0. "Tab 1.0" by ESSB::NWARNER (I Pink, Therefore I Ham) Fri Jul 20 1990 10:59
program Tab_editor
!
! 1990 A Slartibartfast Program
! -------------------------------
! This program is a TAB editor for the VT340, a mouse is required !
! It will PROBABLY run on a workstation although the colours may not
! be quite the same. To modify the colours used by the program modify
! the colour map on your terminal, the program does not set it's own.
!
! This is the basic playtest version provided for user feedback and
! inhancement requests. If you take this program and use it take note
! that you should, for your own protection, contribute back to the notes
! file some tasty licks or pieces in TAB form. Elsewise, in the dark of
! the night the great god ORM will come unto you and wind your entrails
! out on a stick.
!
! Requests for enhancements/bugfixes considered.
!
! Current Version V1.0 BL1
!
! BL1 : The basic editor, provides the capability to enter TAB's on
! multiple screens and save same to an interim .TAB file.
!
! BL2: Coming soon, the ability to generate a color sixel file
! for later printing
!
! Operating instructions:
!
! The program is controlled by a mouse. After the screen settles down
! you will see four tab lines and a menu strip. On the left of the strip
! are the numbers 1-22. These are fret numbers, position the cursor on
! the character cell area and click the middle button. You will then
! see a message to the effect that the pen is loaded. Move the cursor
! to a position and click again, the character will be placed not quite
! where you would expect it to be,ie down and to the right. This is
! because of manifold reasons, basicly ORM wants it that way and who are
! we to argue ?
!
! If you wish to delete a glyph you have placed on the screen move the
! mouse to the D option and click. The last object placed on the screen
! will be deleted leaving a hole. If this offends you chose the R option
! to refresh the screen.
!
! The B option draws a vertical bar. Place the horizontal bar of the
! cursor on the base E string, when it is perfectly placed you will
! see it change colour. Click.
!
! The M option dumps the TAB to an interim file, called rather grandly
! a meta_file. The name of this file is fixed at the moment. You can
! however rename it after a session. As it is a basic type of file it
! should be possible to post a meta_file as a note. When extracting
! the note name it metafile.tab and edit it to remove whatever looks
! to be Notes added crap. You should then be able to load it into TAB
! via the G option.
!
! The < and > options troll you up and down pages, the E option is
! exit. You might want to save your TAB before you envoke this.
!
! The h and p options are provided as a primitive way of indicating
! hammer_on and pull_off.
!
! The T option allows text to be placed on the screen. It can be used
! for title of piece etc as well as strategicly placed hints such as
! 'with attitude ' or 'express by dolefull grimace when changing
! chord the empty clamour that is life' or, for faster pieces, 'Here
! would be a good place to bite of own sexual organs in a frenzy
! of excitement and fling them to the crowd '
!
! At the moment there is no delete key functioning when you enter text,
! you need to get it right first time, this will be fixed soon. You
! are also limited to an 80 char string.
!
! To turn this file into an EXE extract it to a file called Tab_editor.bas
! Edit the file to remove any spurious rubbish and then
! $ basic tab_editor
! $ link tab_editor
! $ run tab_editor.
!
! Definitions: some definitions of variables, variables of standard types will
! be defined on the fly by assignment , others are built here.
!
EXTERNAL LONG FUNCTION SMG$CREATE_VIRTUAL_KEYBOARD (LONG, STRING)
EXTERNAL LONG FUNCTION SMG$READ_KEYSTROKE(LONG,LONG,STRING,LONG,LONG)
!+
! Record point is used to specify a pixel by horizontal and vertical coordinates
!-
RECORD point
integer point_h
integer point_v
END RECORD point
!+
! Record Active cell is used to hold the coordinates and glyph of an object.
! The active cells are painted onto the screen and act as a menu system.
! Clicking the middle button while the cursor is inside one of the active
! regions will result in the pen being loaded with the cell contents.
!-
RECORD active_cell
point top_left
point bot_right
point position
string cell_contents = 80%
END RECORD active_cell
!+
! Record painted_glyphs works as follows. Clicking the middle button while
! the pen is loaded will result in the creation of a painted glyph that will
! be daubed on the screen at the current position. The glyph will be added
! on to the list of active glyphs, ie the things you have chosen to add
! to the background of tablines.
!-
RECORD painted_glyphs
integer h_pos
integer v_pos
integer class
integer screen_no
string brushload = 80%
END RECORD painted_glyphs
!+
! Now we make a map for a interim metafile
!_
MAP (Metafile_map) Painted_glyphs Metafile_record
!+
! There are currently 40 possible triggers, ie active areas and up to 500
! possible objects that can be on one screen.
!-
DIMENSION active_cell triggers(40%)
DIMENSION painted_glyphs image_segments(500%)
!+
! Here we declare a few important variables
!-
DECLARE Long Current_page
!+
! Setups.....Initialise the mouse buttons
! The following has the effect of causing the mouse to transmit
! the specified codes when pressed. Each button transmits a letter
! and then a set of coordinates when it is pressed (P) or released (R)
!-
%include "$smgdef" %from %LIBRARY "sys$library:basic$starlet"
declare long keyboard
declare long term
ss% = smg$create_virtual_keyboard(keyboard,"SYS$INPUT")
esc$ = chr$(27)
print esc$ + "P1$w1/44/45" + esc$ + "\" ! left P = D ,R = E
print esc$ + "P1$w2/46/47" + esc$ + "\" ! Middle P = F,R = G
print esc$ + "P1$w3/48/49" + esc$ + "\" ! right P = H, R = I
!+
! Paint clear screen and enable multi_shot mouse
!+
print esc$ + "P1p;s(e,C0,C(I1))w(i7,V)R(I1)"
!
!+
! Here we initialize a few important system variables
!-
Current_page = 1
terminated% = 1%
next_free_segment% = 1%
action_holder% = 0%
action% = 0%
!
s% = FN$paint_menu%
s% = FN$tab_lines%
!
while terminated% <> 2%
picture$ = space$(1%)
action% = FN$interpret_command%(FN$get_mouse_command$)
select action%
case 0% to 22%
s% = FN$message%("Pen : Fret Position " + num1$(action%))
s% = FN$add_fixed_glyph%(action%,picture$)
s% = FN$message%("Pen : Not Loaded")
case 23%
s% = FN$message%("Pen : Bar Line " )
s% = FN$add_fixed_glyph%(action%,picture$)
s% = FN$message%("Pen : Not Loaded")
case 24%
s% = FN$message%("Pen : Hammer On " )
s% = FN$add_fixed_glyph%(action%,picture$)
s% = FN$message%("Pen : Not Loaded")
case 25%
s% = FN$message%("Pen : Pull Off" )
s% = FN$add_fixed_glyph%(action%,picture$)
s% = FN$message%("Pen : Not Loaded")
case 26%
s% = FN$message%("Entering Text" )
picture$ = fn$get_alpha$
s% = FN$message%("Position Text" )
s% = FN$add_fixed_glyph%(action%,picture$)
s% = FN$message%("Pen : Not Loaded")
case 27%
print "s(e)"
s% = FN$paint_menu%
s% = FN$tab_lines%
for j% = 1% to next_free_segment%
s% = fn$paint_segment%(j%)
next j%
case 28%
s% = FN$message%("Deleting Last Object" )
If next_free_segment% <> 1% then
next_free_segment% = next_free_segment% - 1%
s% = fn$erase_object%(next_free_segment%)
end if
case 29%
s% = FN$message%("Creating Metafile" )
s% = fn$dump%
case 30%
s% = FN$message%("Reading Metafile" )
s% = fn$get%
case 31%
s% = FN$message%("Terminating..." )
linput a$ ! eat another button
print esc$ + "\"
call lib$stop(0%)
case 32%
s% = FN$message%("Page Up" )
s% = fn$page_up%
s% = FN$message%("Pen Unloaded" )
case 33%
s% = FN$message%("Page Down" )
s% = fn$page_Down%
s% = FN$message%("Pen Unloaded" )
end select
next
!+
! end of program, start of functions
!-
!======================================================================
def FN$paint_menu%
!======================================================================
print "@.L(A2)'A'AA55AA55AA55AA55AA55"
print "'S'FFFFFFFFFFFFFFFFFFFF'B'00"
print "'C'88008800880088008800'D'8142241818244281"
print "'U'8142241881422418'F'FF818181FF818181FF"
print "'G'80402010080402018040'H'11224488112244881122"
print "'V'01020408102040800102"
print "'J'81818181818181818181"
print "T(A2,S1)"
print "p[0,0]w(s'C',i1)v[+799][,+478][-799][,-478]w(s0)"
print "p[0,0]w(i2)v[+799][,+478][-799][,-478]w(s0)"
print "p[10,10]"
print "w(i0,s1)v[+779][,+458][-779][,-458]w(s0)"
print "p[10,10]"
print "w(i2,s0)v[+779][,+458][-779][,-458]w(s0)"
print "p[0,450]w(i2,s1)v(b)[+799][,+29][-799](e)w(s0)"
print "p[5,455]w(i3,s1)v(b)[+789][,+19][-789](e)w(s0)T(a0,s1)"
!
l_t% = 5%
r_t% = 15%
p_h% = 10%
p_v% = 455%
!
for j% = 0% to 9%
triggers(j%)::top_left::point_h = l_t%
triggers(j%)::top_left::point_v = 455
triggers(j%)::bot_right::point_h = r_t%
triggers(j%)::bot_right::point_v = 474
triggers(j%)::position::point_h = p_h%
triggers(j%)::position::point_v = p_v%
triggers(j%)::cell_contents = "w(i7)T(s1)'" + num1$(j%) + "'"
l_t% = l_t% + 12%
r_t% = r_t% + 12%
p_h% = p_h% + 12%
s% = FN$spit%(j%)
next j%
l_t% = 125%
r_t% = 145%
p_h% = 130%
p_v% = 455%
!
!
!
for j% = 10% to 22%
triggers(j%)::top_left::point_h = l_t%
triggers(j%)::top_left::point_v = 455
triggers(j%)::bot_right::point_h = r_t%
triggers(j%)::bot_right::point_v = 474
triggers(j%)::position::point_h = p_h%
triggers(j%)::position::point_v = p_v%
triggers(j%)::cell_contents = "w(i7)T(s1)'" + num1$(j%) + "'"
l_t% = h_t% + 24%
r_t% = r_t% + 24%
p_h% = p_h% + 24%
s% = FN$spit%(j%)
next j%
!
triggers(23%)::top_left::point_h = 480
triggers(23%)::top_left::point_v = 455
triggers(23%)::bot_right::point_h = 490
triggers(23%)::bot_right::point_v = 474
triggers(23%)::position::point_h = 480
triggers(23%)::position::point_v = 455
triggers(23%)::cell_contents = "w(i7,V)V[,-75]"
print "p[480,455]T'B'"
!
triggers(24%)::top_left::point_h = 495
triggers(24%)::top_left::point_v = 455
triggers(24%)::bot_right::point_h = 505
triggers(24%)::bot_right::point_v = 474
triggers(24%)::position::point_h = 495
triggers(24%)::position::point_v = 455
triggers(24%)::cell_contents = "w(i15,V)T'h'"
print "p[495,455]T'h'"
!
triggers(25%)::top_left::point_h = 510
triggers(25%)::top_left::point_v = 455
triggers(25%)::bot_right::point_h = 525
triggers(25%)::bot_right::point_v = 474
triggers(25%)::position::point_h = 510
triggers(25%)::position::point_v = 455
triggers(25%)::cell_contents = "w(i15,V)T'p'"
print "p[510,455]T'p'"
!
triggers(26%)::top_left::point_h = 525
triggers(26%)::top_left::point_v = 455
triggers(26%)::bot_right::point_h = 540
triggers(26%)::bot_right::point_v = 474
triggers(26%)::position::point_h = 525
triggers(26%)::position::point_v = 455
triggers(26%)::cell_contents = "w(i15,V)T'T'"
print ";p[525,455]T'T'"
!
triggers(27%)::top_left::point_h = 540
triggers(27%)::top_left::point_v = 455
triggers(27%)::bot_right::point_h = 555
triggers(27%)::bot_right::point_v = 474
triggers(27%)::position::point_h = 540
triggers(27%)::position::point_v = 455
triggers(27%)::cell_contents = "w(i15,V)T'R'"
print ";p[540,455]T'R'"
!
triggers(28%)::top_left::point_h = 555
triggers(28%)::top_left::point_v = 455
triggers(28%)::bot_right::point_h = 570
triggers(28%)::bot_right::point_v = 474
triggers(28%)::position::point_h = 555
triggers(28%)::position::point_v = 455
triggers(28%)::cell_contents = "w(i15,V)T'D'"
print ";p[555,455]T'D'"
!
triggers(29%)::top_left::point_h = 570
triggers(29%)::top_left::point_v = 455
triggers(29%)::bot_right::point_h = 585
triggers(29%)::bot_right::point_v = 474
triggers(29%)::position::point_h = 570
triggers(29%)::position::point_v = 455
triggers(29%)::cell_contents = "w(i15,V)T'M'"
print ";p[570,455]T'M'"
!
triggers(30%)::top_left::point_h = 585
triggers(30%)::top_left::point_v = 455
triggers(30%)::bot_right::point_h = 600
triggers(30%)::bot_right::point_v = 474
triggers(30%)::position::point_h = 585
triggers(30%)::position::point_v = 455
triggers(30%)::cell_contents = "w(i15,V)T'M'"
print ";p[585,455]T'G'"
!
triggers(31%)::top_left::point_h = 600
triggers(31%)::top_left::point_v = 455
triggers(31%)::bot_right::point_h = 615
triggers(31%)::bot_right::point_v = 474
triggers(31%)::position::point_h = 600
triggers(31%)::position::point_v = 455
triggers(31%)::cell_contents = "w(i15,V)T'E'"
print ";p[600,455]T'E'"
!
triggers(32%)::top_left::point_h = 615
triggers(32%)::top_left::point_v = 455
triggers(32%)::bot_right::point_h = 630
triggers(32%)::bot_right::point_v = 474
triggers(32%)::position::point_h = 615
triggers(32%)::position::point_v = 455
triggers(32%)::cell_contents = "w(i15,V)T'<'"
print ";p[615,455]T'<'"
!
triggers(33%)::top_left::point_h = 630
triggers(33%)::top_left::point_v = 455
triggers(33%)::bot_right::point_h = 645
triggers(33%)::bot_right::point_v = 474
triggers(33%)::position::point_h = 630
triggers(33%)::position::point_v = 455
triggers(33%)::cell_contents = "w(i15,V)T'>'"
print ";p[630,455]T'>'"
!
FN$paint_menu% = 1%
end def
!======================================================================
def FN$spit%( a_pointer%)
!======================================================================
print "P[";triggers(a_pointer%)::position::point_h;","; &
triggers(a_pointer%)::position::point_V;"]"; &
triggers(a_pointer%)::cell_contents;
end def
!======================================================================
def FN$get_mouse_command$
!======================================================================
linput command$
FN$get_mouse_command$ = command$
end def
!======================================================================
def FN$interpret_command%(current_state$)
!======================================================================
k% = 42%
If seg$(current_state$,1%,1%) = "F" then
c_pos_len% = len(current_state$)
comma_pos% = instr(1%,current_state$,",")
h_cords$ = seg$(current_state$,3%,comma_pos% - 1%)
v_cords$ = seg$(current_state$,comma_pos% + 1%,c_pos_len% -1%)
hcords% = val%(h_cords$)
vcords% = val%(v_cords$)
j% = 0%
if vcords% > 455% then
while (k% = 42%) AND (j% < 41%)
if (hcords% > triggers(j%)::top_left::point_h) AND &
(hcords% < triggers(j%)::bot_right::point_h) then
k% = J%
end if
j% = j% + 1%
next
end if
end if
FN$interpret_command% = k%
end def
!======================================================================
def FN$message%(message$)
!======================================================================
print "p[0,429]w(i0,R,s1)v(b)[+300][,+20][-300](e)w(v,i7,s0)"
print "p[0,429]T'";message$;"'"
FN$message% = 0%
end def
!======================================================================
def FN$tab_lines%
!======================================================================
print ";P[20,30]"
for J% = 1% to 6%
print "w(i7,f15,V)V(B)[+760](e)p[,+15]"
next J%
print "p[25,30]T(s2)'T'"
print "p[25,55]T(s2)'A:'"
print "p[25,80]T(s2)'B'T(s1)"
!
print ";P[20,130]"
for J% = 1% to 6%
print "w(i7,f15,V)V(B)[+760](e)p[,+15]"
next J%
print "p[25,130]T(s2)'T'"
print "p[25,155]T(s2)'A:'"
print "p[25,180]T(s2)'B'T(s1)"
!
print ";P[20,230]"
for J% = 1% to 6%
print "w(i7,f15,V)V(B)[+760](e)p[,+15]"
next J%
print "p[25,230]T(s2)'T'"
print "p[25,255]T(s2)'A:'"
print "p[25,280]T(s2)'B'T(s1)"
!
print ";P[20,330]"
for J% = 1% to 6%
print "w(i7,f15,V)V(B)[+760](e)p[,+15]"
next J%
print "p[25,330]T(s2)'T'"
print "p[25,355]T(s2)'A:'"
print "p[25,380]T(s2)'B'T(s1)"
FN$tab_lines% = 0%
end def
!======================================================================
def FN$add_fixed_glyph%(glyph_no%,represent$)
!======================================================================
k% = 0%
current_state$ = " "
while seg$(current_state$,1%,1%) <> "D"
while (seg$(current_state$,1%,1%) <> "F") AND &
seg$(current_state$,1%,1%) <> "D"
current_state$ = FN$get_mouse_command$
next
if seg$(current_state$,1%,1%) = "F" then
current_state$ = FN$get_mouse_command$ ! unsolicited up
c_pos_len% = len(current_state$)
comma_pos% = instr(1%,current_state$,",")
h_cords$ = seg$(current_state$,3%,comma_pos% - 1%)
v_cords$ = seg$(current_state$,comma_pos% + 1%,c_pos_len% -1%)
hcords% = val%(h_cords$)
vcords% = val%(v_cords$)
image_segments(next_free_segment%)::h_pos = hcords%
image_segments(next_free_segment%)::v_pos = vcords%
image_segments(next_free_segment%)::screen_no = Current_page
image_segments(next_free_segment%)::class = glyph_no%
If len(represent$) < 2% then
image_segments(next_free_segment%)::brushload = &
triggers(glyph_no%)::cell_contents
else
image_segments(next_free_segment%)::brushload = "T'" + represent$ + "';"
end if
s% = FN$paint_segment%(next_free_segment%)
next_free_segment% = next_free_segment% + 1%
end if
next
FN$add_fixed_glyph% = 0%
end def
!======================================================================
def FN$paint_segment%(pointer%)
!======================================================================
if image_segments(pointer%)::screen_no = current_page then
print "P[";image_segments(pointer%)::h_pos;","; &
image_segments(pointer%)::v_pos;"]"
print image_segments(pointer%)::brushload
end if
FN$paint_segment% = 0%
end def
!======================================================================
def fn$get_alpha$
!======================================================================
print "p[0,429]"
print "T(i0)W(s1,E,)V(B)[+750][,+20][-750](E)W(s0,C)"
Print "W(I7,V)"
print "p[0,429]"
term = 0
usertext$ = "*****"
while seg$(usertext$,1,1) <> "G"
linput usertext$
next
usertext$ = ""
print "p[0,429]T'Txt>'"
while term <> 13
ss% = smg$read_keystroke(keyboard,term,,,)
usertext$ = usertext$ + chr$(term)
print "p[0,429]T'Txt> ";usertext$ + "';"
next
fn$get_alpha$ = usertext$
end def
!======================================================================
def fn$erase_object%(pointer%)
!======================================================================
print "P[";image_segments(pointer%)::h_pos;","; &
image_segments(pointer%)::v_pos;"]w(E)"
print image_segments(pointer%)::brushload;"w(V)"
image_segments(pointer%)::h_pos = 0%
image_segments(pointer%)::v_pos = 0%
image_segments(pointer%)::class = 0%
image_segments(pointer%)::brushload = " "
FN$erase_object%= 0%
end def
!======================================================================
def fn$get%
!======================================================================
next_free_segment% = 1%
j% = 1%
open "Metafile.TAB" for input as #2%, &
map metafile_map, &
sequential
when error in
for J% = 1% to 500%
get #2%
image_segments(next_free_segment%)::h_pos = metafile_record::h_pos
image_segments(next_free_segment%)::V_pos = metafile_record::v_pos
image_segments(next_free_segment%)::class = metafile_record::class
image_segments(next_free_segment%)::screen_no = metafile_record::screen_no
image_segments(next_free_segment%)::brushload = metafile_record::brushload
next_free_segment% = next_free_segment% + 1%
next j%
use
s% = fn$message%("File Restored")
end when
end def
!====================================================================*
def fn$dump%
!====================================================================
open "Metafile.TAB" for output as #2%, &
map metafile_map, &
sequential
for j% = 1% to next_free_segment%
metafile_record::h_pos = image_segments(J%)::h_pos
metafile_record::v_pos = image_segments(J%)::v_pos
metafile_record::class = image_segments(J%)::class
metafile_record::screen_no = image_segments(J%)::screen_no
metafile_record::brushload = space$(80%)
metafile_record::brushload = image_segments(J%)::brushload
put #2%
next j%
s% = fn$message%("File written")
close #2%
end def
!+
! The following two functions move the current page counter up and down
! When the page counter is changed the program refreshes the screen and
! paints it with whatever glyphs reside on that page, there is no limit
! to the number of pages, there is however to the no of possible glyphs.
!-
!======================================================================
def FN$page_up%
!======================================================================
current_page = current_page + 1%
s% = FN$refresh%
end def
!======================================================================
def FN$page_down%
!======================================================================
If current_page > 1 then
Current_page = current_page - 1
end if
s% = FN$refresh%
end def
!+
! This routine refreshes the screen with the current page number
!-
!======================================================================
def FN$refresh%
!======================================================================
print "s(e)"
s% = FN$paint_menu%
s% = FN$tab_lines%
for j% = 1% to next_free_segment%
s% = fn$paint_segment%(j%)
next j%
end def
END program ! End of SUB report_cursor cursor_report
T.R | Title | User | Personal Name | Date | Lines |
---|
1906.1 | Apologies | ESSB::NWARNER | I Pink, Therefore I Ham | Fri Jul 20 1990 11:10 | 10 |
|
Apologies to any who tried to run the first posting, I took out
most, but not all, of a debuging trace option which resulted in
it falling over.
I also forgot to mention that the left button on the mouse works as
a pen unloader...I will post a short tab here that can be loaded into
the program later.
Nigel
|
1906.2 | Short Tab | ESSB::NWARNER | I Pink, Therefore I Ham | Fri Jul 20 1990 11:35 | 67 |
|
Here is a short tab, extract then edit to take out everything down to
the data and rename metafile.tab , bring into program using G(et)
5 � w(i7,V)V[,-75]
6 1 w(i7,V)V[,-75]
8 � w(i7,V)V[,-75]
7 i w(i7,V)V[,-75]
L _ w(i7)T(s1)'7'
b ^ w(i7)T(s1)'8'
v ^
w(i7)T(s1)'10'
� O w(i7)T(s1)'7'
� i w(i7,V)V[,-75]
� O w(i7)T(s1)'9'
� P
w(i7)T(s1)'10'
� @ w(i7)T(s1)'7'
P
w(i7)T(s1)'10'
! i w(i7,V)V[,-75]
3 Q w(i7)T(s1)'9'
j P w(i7)T(s1)'9'
N O w(i7)T(s1)'7'
� O
w(i7)T(s1)'10'
� i w(i7,V)V[,-75]
� @ w(i7)T(s1)'7'
� A w(i7)T(s1)'9'
� A
w(i7)T(s1)'10'
B w(i7)T(s1)'9'
- i w(i7,V)V[,-75]
B A w(i7)T(s1)'7'
[ P
w(i7)T(s1)'10'
N w(i7)T(s1)'9'
� O w(i7)T(s1)'7'
� i w(i7,V)V[,-75]
N � w(i7)T(s1)'9'
j �
w(i7)T(s1)'10'
� � w(i7)T(s1)'7'
� �
w(i7)T(s1)'10'
� � w(i7,V)V[,-75]
� � w(i7)T(s1)'9'
� w(i7)T(s1)'9'
� � w(i7)T(s1)'7'
/ �
w(i7)T(s1)'10'
M � w(i7,V)V[,-75]
c � w(i7)T(s1)'7'
� � w(i7)T(s1)'9'
� �
w(i7)T(s1)'10'
� � w(i7)T(s1)'12'
� � w(i7,V)V[,-75]
� w(i7)T(s1)'9'
! � w(i7)T(s1)'11'
I � w(i7)T(s1)'12'
u � w(i7)T(s1)'11'
� � w(i7,V)V[,-75]
J � w(i7)T(s1)'12'
r � w(i7)T(s1)'11'
� � w(i7)T(s1)'9'
� � w(i7)T(s1)'12'
� 1 w(i7,V)V[,-75]
� � w(i7)T(s1)'9'
T'Buckley/Gilbert Lick
';
� � T'slide
';
� � T'Wide finger vibrato
';
|
1906.3 | FYI | UPWARD::HEISER | trimmed & burnin' | Fri Jul 20 1990 16:11 | 23 |
| This looks interesting so far. However, when I bring up the tab
screen and press MB2 on fret 8 (only fret I used) I received this stack
dump (thought you should know):
%BAS-F-ILLNUM, Illegal number
-BAS-I-FRODEFMOD, In DEF FN$INTERPRET_COMMAND% in module TAB_EDITOR
-BAS-I-FROMOD, In module TAB_EDITOR
%TRACE-F-TRACEBACK, symbolic stack dump follows
module name routine name line rel PC abs PC
0004F194 0004F194
----- above condition handler called with exception 001A81A4:
%BAS-F-ILLNUM, Illegal number
-BAS-I-FRODEFMOD, In DEF FN$INTERPRET_COMMAND% in module TAB_EDITOR
----- end of exception message
0004F194 0004F194
----- above condition handler called with exception 001A81A4:
%BAS-F-ILLNUM, Illegal number
----- end of exception message
0004E2D8 0004E2D8
0005CFE2 0005CFE2
TAB_EDITOR FN$INTERPRET_COMMAND% 852 00000096 000024AB
TAB_EDITOR TAB_EDITOR 605 000001F4 000013F4
|
1906.4 | | DNEAST::GREVE_STEVE | Jonathan Livingston Cat Barf.. | Fri Jul 20 1990 16:21 | 5 |
|
Shoot, those are errors!! I took em' home with Buck's TAB and
tried to play em'...
|
1906.5 | Hmmmm | ESSB::NWARNER | I Pink, Therefore I Ham | Mon Jul 23 1990 07:43 | 9 |
|
re -2
Are you running on a workstation by chance. I was able to create
the tab file in.3 ok...
I will try to have a look sometime today.
Nigel
|
1906.6 | | UPWARD::HEISER | trimmed & burnin' | Mon Jul 23 1990 13:44 | 6 |
| > Are you running on a workstation by chance. I was able to create
> the tab file in.3 ok...
yes.
Mike
|
1906.7 | HEEEELLLP!!!! | NEEPS::IRVINE | In the game of pleasure & pain | Mon Oct 29 1990 11:56 | 9 |
| This is probably a bore to most... but...
Can anyone send me details on how to use this program, which machines
it can run on, what version of VMS is required... and all that stuff??
Many thanks
Bob I.
|