home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
teachapl.zip
/
teach49.zip
/
TEACH49.ATF
Wrap
Text File
|
1996-08-12
|
54KB
|
660 lines
XNÉIO 0 1 °
XNÉCT 0 1.000000000000011E²13 °
XCÉFC 1 6 .,*0_² °
XNÉRL 0 1227464303 °
XCÉPR 0 °
XCÉLX 1 5 TEACH °
*(1992 2 29 8 32 29 448) °
FDISPLAY ÉFX 'D╜S DISPLAY A;ÉIO;R;C;HL;HC;HT;HB;VL;VB;V;W;N;B' °
'Σ DISPLAY A GENERAL ARRAY IN PICTORIAL FORM' °
'Σ NORMAL CALL IS MONADIC. DYADIC CALL USED ONLY IN' °
'Σ RECURSION TO SPECIFY DISPLAY RANK, SHAPE, AND DEPTH.' 'ÉIO╜0' °
'»(0=ÉNC ''S'')/''S╜µA''' 'R╜╞µ,S Σ PSEUDO RANK.' °
'C╜''┐┌└┘'' Σ UR, UL, LL, AND LR CORNERS.' °
'HL╜''─'' Σ HORIZONTAL LINE.' °
'HC╜HL,''Θ╕'',HL,''~+ε'' Σ HORIZONTAL BORDERS.' °
'HT╜HC[(0<R)⌡1+0<╞²1╞,S]' 'ΣW╜,0╧■╞0µΓ(1⌐µA)╞A' °
'HB╜HC[3+3╛(''2⌡~A╧«A'' ÉEA ''1+╞ε0⌡(1⌐⌡/µA)╞,A'')+3⌡1<µµS]' °
'VL╜''│'' Σ VERTICAL LINE.' °
'VB╜VL,''Φ╟'' Σ VERTICAL BORDER.' °
'V╜VB[(1<R)⌡1+0<²1╞²1╟,S]' °
'»(0εµA)/''A╜(1⌐µA)µΓ╞A'' Σ SHOW PROTOTYPE OF EMPTIES.' °
'╕(1<╧A)/GEN' '╕(2<µµA)/D3' °
'D╜«A Σ SIMPLE ARRAYS.' 'W╜1╞µD╜(²2╞1 1,µD)µD' °
'N╜²1+1╟µD' '╕(0=µµA)/SS' °
'D╜(C[1],V,((W-1)µVL),C[2]),((HT,NµHL),[0]D,[0]HB,NµHL),C[0],(WµVL),C[ °
3]' '╕0' 'SS:HB╜((0 '' '')=╞0µΓA)/'' -''' °
'D╜'' '',('' '',[0]D,[0]HB,Nµ'' ''),'' ''' '╕0' °
'GEN:D╜«DISPLAY■A Σ ENCLOSED ...' 'N╜Dδ.⌠'' ''' °
'D╜(Nδ~1ΦN)≡D' 'D╜(δ≡~'' ''╤D)/D' 'D╜((1,µS)µS)DISPLAY D' °
'╕(2≥µ,S)╟D3E,0' 'D3:D╜0 ²1╟0 1╟«ΓA Σ MULT-DIMENSIONAL ...' °
'W╜1╞µD' 'N╜²1+1╟µD' °
'D╜(C[1],V,((W-1)µVL),C[2]),((HT,NµHL),[0]D,[0]HB,NµHL),C[0],(WµVL),C[ °
3]' 'D3E:N╜²2+µ,S' °
X 'V╜C[Nµ1],[0]VB[1+0<²2╟,S],[0](((²3+╞µD),N)µVL),[0]C[Nµ2]' 'D╜V,D' °
*(1992 8 14 10 7 40 364) °
FDOS ÉFX 'DOS W;T;D100;D2' 'Σ Simulation of DOS prompt' °
'T╜100 ÉSVO ''D100''' °
'T╜(2⌠ÉSVO ''D100'')doif ''''''AP100.COM'''' opentwo 1'' ''T╜100 ÉSVO °
''''D100''''''' '╕((0<µ(W⌠'' '')/W)doif ''D100╜W'')/0' 'L0:æ╜''C:>''' °
X '╕(^/'' ''=T╜3╟æ)/0' 'D100╜T' '╕L0' °
*(1996 8 5 12 41 11 372) °
FFONTS ÉFX 'FONTS W;H;T;D207' 'Σ Test fonts' 'T╜open' 'T╜getfont W' °
'L0:H╜(1+╞W)π(Γ''DEFAULT''),fonts' °
'D207╜''FONT''(0 0)''MOVE''(100 450)''WRITE''(''This is font '',H)' °
'D207╜''FONT''(H 16)''MOVE''(100 400)''WRITE'' ÉAV[∞32]' °
'D207╜''FONT''(H 16)''MOVE''(100 350)''WRITE'' ÉAV[32+∞32]' °
'D207╜''FONT''(H 16)''MOVE''(100 300)''WRITE'' ÉAV[64+∞32]' °
'D207╜''FONT''(H 16)''MOVE''(100 250)''WRITE'' ÉAV[96+∞32]' °
'D207╜''FONT''(H 16)''MOVE''(100 200)''WRITE'' ÉAV[128+∞32]' °
'D207╜''FONT''(H 16)''MOVE''(100 150)''WRITE'' ÉAV[160+∞32]' °
'D207╜''FONT''(H 16)''MOVE''(100 100)''WRITE'' ÉAV[192+∞32]' °
'D207╜''FONT''(H 16)''MOVE''(100 50)''WRITE'' ÉAV[224+∞32]' °
'D207╜''view'' '''' ''wait'' ''''' 'D207╜''CLEAR'' ''''' 'W╜1╟W' °
X '╕(0<µW)/L0' °
*(1992 2 29 8 32 30 452) °
FGO ÉFX 'GO;b;e;t' 'Σ Expression driver' 'L0:b╜e╜''''' 'æ╜'' ''' °
't╜æ' '╕(^/'' ''=t)/L0' '╕((^/'')OFF ''=5╞6╟t)doif ''exit'')/0' °
'╕(('':''εt)doif ''b╜evaldd (+/^\'''' ''''=t)╟t'')/L0' °
'''e╜ÉEM'' ÉEA t' '╕(0=µ,e)/L0' '╕b/L0' °
'''This is not a valid APL2 expression''' 'æ╜''*''' °
X '╕(''?''⌠╞1╟æ)/L0' 'e' '╕L0' °
*(1995 4 23 14 14 6 304) °
FSVOFFER ÉFX 'DC╜PID SVOFFER SV' 'SV╜(²2╞1 1,µSV)µSV╜πSV' °
'╕(2=ÉNC ''PID'')/DYADIC' 'DC╜ÉSVO SV ╪ ╕0' °
'DYADIC:╕(1^.⌠DC╜PID ÉSVO SV)/END' 'ÉSVE╜15' °
'CHECK:╕(1^.⌠DC╜ÉSVO SV)/END' '╕(0⌠ÉSVE)/CHECK' °
X 'END:SV╜1 0 1 0 ÉSVC SV' °
*(1993 8 29 23 0 0 292) °
FSVOPAIR ÉFX '≈_DC╜≈_PID SVOPAIR ≈_SV;≈_CV' °
'Σ------------------------------------------------------------------Σ' °
'Σ' 'Σ Offer shared variables named in SV to processor number PID.' °
'Σ To be used for auxiliary processors which use a two-variable' °
'Σ interface, where the control variable begins with "C" or "CTL"' °
'Σ and the data variable begins with "D" or "DAT". (Cxxx/Dxxx or' °
'Σ CTLxxx/DATxxx)' 'Σ' °
'Σ Returns final degree of coupling (DC) for each shared variable' °
'Σ Expected degree of coupling is 2 for the control variable and 1' °
'Σ or 2 for the data variable.' 'Σ' °
'Σ Waits up to 15 seconds for the control variable to be accepted' °
'Σ by the processor. Sets standard access control to inhibit my' °
'Σ double references or specifications of the control variable.' °
'Σ Does not set access control for the data variable.' 'Σ' °
'Σ Monadic call simply returns the current degree of coupling.' 'Σ' °
'Σ------------------------------------------------------------------Σ' °
'Σ' 'Σ Examples:' 'Σ' °
'Σ Offer a set of variables to the fullscreen processor' °
'Σ 124 SVOPAIR ''CTL124'' ''DAT124''' 'Σ 2 1' 'Σ' °
'Σ Offer using surrogates' °
'Σ 124 SVOPAIR ''Control C'' ''Data D''' 'Σ 2 1' 'Σ' °
'Σ Note: Access control set for control, not data' °
'Σ ÉSVC■ ''Control'' ''Data''' 'Σ 1 0 1 1 0 0 0 0' 'Σ' °
'Σ Check degree of coupling' 'Σ SVOPAIR ''Control'' ''Data''' °
'Σ 2 1' 'Σ' 'Σ Offer improper control variable' °
'Σ 210 SVOPAIR ''A1'' ''D1''' 'Σ 1 1' 'Σ' °
'Σ===================================================================Σ °
' 'Σ' °
'≈_SV╜(²2╞1 1,µ≈_SV)µ≈_SV╜π≈_SV Σ Convert name argument to matrix °
' °
'╕(2=ÉNC ''≈_PID'')/≈_DYADIC Σ Is it a dyadic function call? °
' °
'≈_DC╜ÉSVO ≈_SV Σ Just return coupling if monadic °
' '╕0 Σ and exit' '≈_DYADIC:' °
'≈_CV╜(-+/^\Φ≈_SV='' '')Φ≈_SV Σ Rotate trailing blanks and th °
en' °
'≈_CV╜(-+/^\Φ≈_CV⌠'' '')Φ≈_CV Σ rotate surrogate name to fron °
t' °
'≈_CV╜≈_CV[;ÉIO]=''C'' Σ Which names are control vars? °
' '╕(1^.⌠≈_CV/≈_DC╜≈_PID ÉSVO ≈_SV)/≈_END Σ Initial Offer' °
'ÉSVE╜15 Σ Wait up to 15 seconds for accep °
ts' '≈_CHECK:' '╕(1^.⌠≈_CV/≈_DC╜ÉSVO ≈_SV)/≈_END Σ Check couplings' °
'╕(0⌠ÉSVE)/≈_CHECK Σ Retry if time left' '≈_END:' °
'≈_CV╜1 0 1 0 ÉSVC ≈_CV≡≈_SV Σ Set access control on C vars on °
Xly' °
*(1996 8 7 13 13 55 448) °
FTEACH ÉFX 'TEACH' 'Σ Copyright Z V Jizba 1991; all rights reserved' °
'copyright' 'initialize' 'warning' 'do' °
'TEACH1 Σ Using more than one font at a time' °
'TEACH2 Σ Contents of image and vector fonts' °
'TEACH3 Σ The MARKERS font' °
'TEACH4 Σ Font contents and characteristics' °
'TEACH5 Σ Special symbols' 'TEACH6 Σ The command QWRITE' °
'TEACH7 Σ Using line types in vector fonts' °
X 'TEACH8 Σ Sample vector font file' °
*(1996 8 4 13 4 3 192) °
FTEACH1 ÉFX 'TEACH1;T;D207' 'Σ Using more than one font' °
'''USING MORE THAN ONE FONT AT A TIME'',r' °
'''In all the previous examples we have used only one font at a time.' °
'' °
'''In many applications it is often desirable to use more than one fon °
t.''' °
'''Once a font has been brought into the active graphic mode, it stays °
''' °
'''until the screen mode is retracted, or until the font has been remo °
ved.''' 'do' °
'''I have failed so far in my attempts to use command FONTDEF with a n °
ull''' °
'''right argument, as well as with a ²1 right argument. To get around' °
'' °
'''this problem, there are four utility functions that support the''' °
'''functions of these two FONTDEF commands. These utilities are listed °
''' '''below''' 'do' °
'''Function "open" makes AP 207 active. In doing so it expunges "af"'' °
,r' 'showfn ''open''' 'do' °
'''Function "getfont" retrieves one or more fonts. The right argument °
is''' °
'''the font number. This function also stores the active font names in °
''' '''the global variable "af"'',r' 'showfn ''getfont''' 'do' °
'''Function "infonts" generates a table of fonts currently in the work °
space.'',r' 'showfn ''infonts''' 'do' °
'''Function "dropfont" will remove named font from the workspace. The' °
'' °
'''right argument to this function is a nested list of font names'',r' °
'showfn ''dropfont''' 'do' °
'''We will call on utility function "getfont" and attempt to bring int °
o''' '''active graphic mode all of the vector fonts'',r' °
'show ''T╜open ╪ T╜getfont 0,∞22''' °
'''All 22 IBM fonts should be now available. Using function "infonts"' °
'' '''we can list all active fonts''' 'do' 'show ''DISPLAY πinfonts''' °
'''We verify that font GOTENG is currently active'',r' °
'show ''D207╜''''move'''' (200 200) ''''font'''' (''''GOTENG'''' 20)'' °
' 'show ''D207╜''''write'''' ''''GOTENG'''' ''''view'''' ''''''''''' °
'''Next we will remove this font'',r' °
'show ''T╜dropfont ''''GOTENG''''''' °
'''And now we will attempt to write text using this font'',r' °
'show ''D207╜''''font'''' (''''GOTENG'''' 20) ╪ DISPLAY D207''' °
'''The return code 61 tells us that font GOTENG is no longer active.'' °
X' 'end' °
*(1996 8 6 12 21 30 372) °
FTEACH2 ÉFX 'TEACH2' 'Σ Contents of image font' °
'''Although there are 22 vector fonts, not all of these have an image' °
'' °
'''for all 256 characters. Function FONTS has been defined to study''' °
'''the contents of any and all image fonts.''' 'do' °
'''The right argument to FONTS is a list of integers specifying the''' °
'''fonts to be displayed. A zero right argument will display the''' °
'''graphics for the image (default) font. (To exit graph, press any ke °
y)''' 'do' 'show ''FONTS 0''' °
'''The function displays 8 rows of text, each row with 32 characters'' °
' °
'''for a total of 256 symbols. There are several positions that remain °
''' °
'''blank. The first column of rows 1 and 2 are blank (ÉAV[33] is the'' °
' '''blank), and the last column of the last row is also a blank.'',r' °
'''We now will display the 22 image fonts. (PRESS ANY KEY TO VIEW THE' °
X'' '''NEXT FONT)''' 'do' 'show ''FONTS ∞22''' 'end' °
*(1996 8 12 13 59 21 516) °
FTEACH3 ÉFX 'TEACH3;T;D207' 'Σ Contents of MARKERS font' °
'''Let us now take a look at the contents of some of the vector fonts. °
''' '''We begin with the MARKERS font (#6)''' 'do' 'show ''FONTS 6''' °
'''This font has only 29 graphics: 19 markers and the 10 digits.'',r' °
'''Even though the second line of the MARKERS font makes it look like' °
'' °
'''the digits are misplaced (in ÉAV[33-42] instead of ÉAV[49-58]), the °
y''' °
'''are accessible in the normal way. To show this we will get into the °
''' '''graphic mode, invoke font MARKERS, and display the digits''' °
'do' 'show ''T╜open ╪ T╜getfont 6''' °
'show ''D207╜''''FONT'''' (''''MARKERS'''' 40) ''''MOVE'''' (100 100)' °
'' °
'show ''D207╜''''WRITE'''' ''''0123456789'''' ''''marker'''' (200 200) °
''''view'''' ''''''''''' °
'''Note that even though MARKER is active, and its height has been set °
''' °
'''to 40 pels, the command MARKER ignores this height. The marker is'' °
X' '''posted at its "default" size.''' 'end' °
*(1996 8 12 14 0 13 252) °
FTEACH4 ÉFX 'TEACH4' 'Σ Contents of vector fonts' °
'''We have seen that the image font has graphics for all but three of' °
'' °
'''the 256 components of the atomic vector. We have also seen that the °
''' °
'''MARKERS font contains a very restricted number of graphics. What''' °
'''about the other fonts. Let us first compare the image font with the °
''' '''"Thick square filled" font THKSQUF'',r' °
'''As you watch the fonts being drawn look for these:''' °
'''1 The time it takes to draw the image and vector fonts''' °
'''2 Observe the width of individual characters''' °
'''3 Note how many characters are represented by a font''' 'do' °
'show ''FONTS 0 21''' '''Three things are immediately apparent:'',r' °
'''1. It takes a much longer time to draw the vector font THKSQUF''' °
'''2. The width of individual characters varies significantly''' °
'''3. Not all of the 256 positions of vector font have an image.''' °
'do' °
'''The speed of a vector font will depend on the complexity of the''' °
'''images to be represented. We can compare the speed of two vector''' °
'''fonts. GOTGER like GOTENG has elaborate designs for the upper case' °
'' °
'''letters of the alphabet. MODSIM is simple and contains few strokes. °
''' 'do' 'show ''FONTS 2 7''' °
'''Since font MODSIM requires fewer strokes, it completes its task''' °
X '''much faster.''' 'end' °
*(1996 8 6 12 48 51 564) °
FTEACH5 ÉFX 'TEACH5;T;R;RM;A;D207' 'Σ Special symbols' °
'''Some fonts support characters that may be used in special applicati °
ons.''' °
'''Consider for example fonts GRESER and GRESIM. These fonts contain'' °
' '''symbols useful in mathematical notation'',r' °
'''Font GRESER includes the integration symbols (including the line''' °
'''integral), while font GRESIM contains the symbols for infinity,''' °
'''and proportionality.''' 'do' 'show ''FONTS 4 5''' °
'''Fonts 14 (ROMSIM) and 15 (ROMSIMM) are the only vector fonts that'' °
' °
'''support the APL2 characters. ROMSIM characters have a variable widt °
h''' °
'''while ROMSIMM characters are all of equal width. To show this, we'' °
' °
'''will invoke AP207 and display the alphabet for these two fonts. Not °
e''' °
'''the extra space around the letters I and J on the ROMSIMM line.'',r °
' °
'show ''T╜open ╪ T╜getfont 14 15 ╪ R╜''''ROMSIM'''' ╪ RM╜''''ROMSIMM'' °
''''' 'show ''A╜'''': ABCDEFGHIJKLMNOPQRSTUVWXYZ''''''' °
'show ''D207╜''''move'''' (50 200) ''''font'''' (R 20) ''''write'''' ( °
R,A)''' °
'show ''D207╜''''move'''' (50 400) ''''font'''' (RM 20) ''''write'''' °
(RM,A)''' 'D207╜''view'' ''''' °
'''Fonts ROMSIM and ROMSIMM also contain a variety of special symbols' °
'' '''that may be useful in game playing applications. They also''' °
'''include accented letters that are commonly used in certain European °
''' °
'''languages. Note too the special symbols to create frames and fill'' °
X' '''patterns''' 'do' 'show ''FONTS 14 15''' 'end' °
*(1996 8 5 13 45 20 428) °
FTEACH6 ÉFX 'TEACH6;T;D207' 'Σ Command QWRITE' °
'''THE COMMAND QWRITE'',r' °
'''With the great variety of fonts, it may be necessary at times to''' °
'''calculate the position of the text box before writing the text.'',r °
' °
'''For example, consider writing a large display of the integral sign' °
'' '''in font GRESER'' r' 'do' 'show ''T╜open ╪ T╜getfont 3 4 19''' °
'show ''D207╜''''FONT'''' (''''GRESER'''' 90) ''''MOVE'''' (90 90) ''' °
'WRITE'''' ÉAV[230]''' °
'show ''T╜test ╪ D207╜''''view'''' '''''''' ╪ DISPLAY 4 2µ4 2πT''' °
'''One might want to verify that the superscripts, subscripts and the' °
'' °
'''equation to be written all fit the screen. Command QWRITE works jus °
t''' °
'''like command WRITE, except that it does not produce an image on the °
''' °
'''screen. In the next example we will issue the command QWRITE to "wr °
ite"''' °
'''the same symbol at location 90 290 (above the first one)'',r' °
'show ''D207╜''''FONT'''' (''''GRESER'''' 90) ''''MOVE'''' (90 290) '' °
''QWRITE'''' ÉAV[230]''' °
'show ''T╜test ╪ D207╜''''view'''' '''''''' ╪ DISPLAY 4 2µ4 2πT''' °
'''Although no text is visible, the returned vector gives the paramete °
rs''' '''of the box.''' 'do' '''THE ANATOMY OF VECTOR FONTS'',r' °
'''When a symbol is drawn very large we can observe the individual lin °
es''' °
'''that produce the desired shapes. Compare the following two drawings °
of''' '''the letter "A"'',r' 'do' 'D207╜''CLEAR'' ''''' °
'show ''D207╜''''FONT'''' (''''GOTITA'''' 90) ''''MOVE'''' (100 90) '' °
''WRITE'''' ''''A''''''' °
'show ''D207╜''''FONT'''' (''''THKRNDF'''' 90) ''''MOVE'''' (200 90) ' °
'''WRITE'''' ''''A''''''' 'D207╜''view'' ''''' 'do' °
'''Under font GOTITA, the letter A is made up of a number of straight °
line''' °
'''segments. With font THKRNDF, however, the font fills the space with °
''' '''the foreground color (black in this case).'',r' °
'''We already know how to draw straight line segments. We will learn'' °
X' '''how to fill space with color in the next lesson.'',r' 'end' °
*(1996 8 7 13 19 25 352) °
FTEACH7 ÉFX 'TEACH7;T;D207' 'Σ LINETYPE;T;D207' °
'''Finally, before leaving this lesson, it should be pointed out that' °
'' °
'''the LINETYPE command can be used with those fonts that are made up' °
'' '''of straight line segments'',r' 'do' °
'show ''T╜open ╪ T╜getfont 3 19 20''' °
'show ''D207╜''''LINETYPE'''' (1 1) ''''CLEAR'''' ''''''''''' °
'''Setting the line type to show dotted lines, we first look at font'' °
' '''GOTITA''' 'do' °
'show ''D207╜''''FONT'''' (''''GOTITA'''' 90) ''''MOVE'''' (200 90) '' °
''WRITE'''' ''''A''''''' 'D207╜''view'' ''''' 'do' °
'''The line type will have no effect on a font such as THKRNDF, becaus °
e''' °
'''the enclosed outline of each letter is filled out with the foregrou °
nd''' '''color''' 'do' °
'show ''D207╜''''FONT''''(''''THKRNDF'''' 90)''''MOVE''''(300 90)''''W °
RITE'''' ''''A''''''' 'D207╜''view'' ''''' 'do' °
'''However, the version of this font without the FILL option (THKRNDO) °
''' '''can be drawn in the dotted line type.'',r' °
'show ''D207╜''''LINETYPE'''' (1 2)''' °
'show ''D207╜''''FONT''''(''''THKRNDO'''' 90)''''MOVE''''(400 90)''''W °
XRITE'''' ''''A''''''' 'D207╜''view'' ''''' 'end' °
*(1996 8 8 13 22 31 392) °
FTEACH8 ÉFX 'TEACH8;T;D207' 'Σ Sample vector font file' °
'''SAMPLE VECTOR FONT FILE'',r' °
'''Pages 209-210 of the User''''s Manual describe the format of vector °
''' °
'''font files. Function "readfont" was designed to provide access to'' °
' °
'''these vector font files, and to display the vector definitions of'' °
' '''individual characters.''' 'do' °
'''The right argument to function "readfile" is an integer specifying' °
'' °
'''the font file to be accessed. Here is the table listing the fonts'' °
,r' '1 tab fonts' 'do' °
'r,''The function returns a nested array of length 4. Its components a °
re''' '''the four parts of the vector font format.'',r' °
'show ''DISPLAY µ■readfont 14''' °
'''If a left argument is present, it MUST be a single character. This' °
'' °
'''optional left argument specifies the symbol array to be displayed.' °
'' °
'''In that case the function invokes the algorithm described on page 2 °
10''' °
'''of the User''''s Manual to display the array that will generate the °
''' '''character in that font'',r' °
'show ''T╜''''I'''' readfont 14 ╪ T╜''''A'''' readfont 21''' °
X '''This is the end of the lesson.''' °
*(1992 9 26 10 36 16 436) °
FTEST ÉFX 'U╜V TEST W;T' 'Σ Test a sequence of graphic commands (W)' °
'T╜(0=ÉNC ''V'')doif ''V╜0''' °
'╕((2=ÉSVO ''D207'')doif ''D207╜''''OPEN'''' V'')/L0' °
'T╜207 ÉSVO ''D207''' °
'╕((U╜2⌠ÉSVO ''D207'')doif ''''''AP 207 could not be opened'''''')/0' °
'╕((~(╞V)ε0 4 5 6 13 14 15 16 17 18)doif ''''''Invalid MODE'''''')/0' °
'D207╜''OPEN'' V' 'D207╜''OPEN'' ''''' 'T╜2πD207' °
'L0:T╜(0=ÉNC ''MODE'')doif ''MODE╜,(modes[;1]=T)≡modes''' 'D207╜W' °
'U╜D207' 'T╜(1=µ,V)doif ''do''' °
'T╜(0=²1╞2╞V)doif ''D207╜''''CLOSE'''' '''''''''' ''T╜ÉEX ''''D207'''' °
X''' °
XCa 0 % °
*(1992 2 29 8 32 29 448) °
Faddquote ÉFX 'u╜addquote w' °
'Σ Put quotes around a string, and double existing quotes' °
X 'u╜ÉAV[40],((1+w=ÉAV[40])/w),ÉAV[40]' °
XAaf╜('DEFAULT')('GOTITA')('THKRNDF')('THKRNDO') °
*(1992 2 29 8 32 29 448) °
XFaq ÉFX 'u╜aq w' 'Σ Enclose quoted string' 'u╜Γaddquote w' °
*(1992 2 29 8 32 30 452) °
Fav ÉFX 'av;a;n;i;ÉIO' 'Σ Display characters in the Atomic vector' °
'ÉIO╜0' 'a╜22 78µ'' ''' 'n╜3 0«φ12 22µ1+∞256' °
'a[;,(6⌡∞12)°.+2 3 4]╜n' 'a[;6+6⌡∞12]╜φ12 22µÉAV' °
X 'a[7 8 10 13;6]╜'' ''' 'a[14+∞8;68 69 70 72]╜'' ''' 'a' °
*(1992 2 29 8 32 32 460) °
Fback ÉFX 'back;T' 'Σ Reset screen to 25⌡80 size' 'OPEN 124' 'C124╜0 3' °
X 'CLOSE 124 206' °
*(1996 8 5 14 6 58 428) °
Fcopyright ÉFX 'copyright' 'Σ Copyright statement' °
'(10µ'' ''),''Copyright, Z. V. Jizba, 1995,1996'',r' °
'''To see disclaimers, enter ÉCR ''''copyright''''''' 'do' '╕0' °
'''This and subsequent workspaces labelled TEACHxx are made available' °
'' °
'''at no cost to anyone who desires to learn how to use effectively''' °
'''the IBM/OS2 version of APL2.'',r' °
'''This software is provided "AS IS" with no WARRANTY of any kind, eit °
her''' °
'''express or implied. Any risk in its use resides with you, the user °
Xof''' '''these tutorials.''' '''(PRESS ENTER to continue)''' °
XCd 0 " °
*(1992 2 29 8 32 33 464) °
Fdate ÉFX 'u╜date w' 'Σ Format date and time of day' 'u╜«6╞w' °
X 'u╜('' ''⌠u)Γu' 'u╜εu,■''-- .. ''' °
XCdig 1 10 1234567890 °
*(1992 2 29 8 32 28 444) °
Fdo ÉFX 'do;t;e;b' 'Σ Expression driver' 'e╜''''' 'æ╜'' ''' 't╜æ' °
'╕(^/'' ''=t)/0' °
'╕(('':''εt)doif ''b╜evaldd (+/^\'''' ''''=t)╟t'')/2' °
'''e╜ÉEM'' ÉEA t' '╕(0=µ,e)/2' °
'''This is not a valid APL2 expression''' 'æ╜''*''' '╕(''?''⌠╞1╟æ)/2' °
X 'e' '╕2' °
*(1992 2 29 8 32 28 444) °
Fdoif ÉFX 'U╢╜V╢ doif W╢;t╢' 'Σ Rule' '╕(^/~U╢╜V╢)/0' °
X '''U╢╜V╢ doif■ W╢'' ÉEA ''»V╢/W╢''' °
XNdos 0 ²26 °
*(1996 8 4 12 11 37 352) °
Fdropfont ÉFX 'U╜dropfont W;B;T' 'Σ drop fonts W' °
'U╜'''' ╪ ╕(0=ÉNC ''af'')/0 ╪ ╕(2=╧W)/L0' 'W╜,ΓW' °
'L0:af╜(~B╜afεW)/af' 'L1:╕(0=µW)/0' °
X 'L1:D207╜''fontdef''((1πW)²1) ╪ U╜U,D207' '╕(0<µW╜1╟W)/L1' °
XCe 1 0 °
*(1996 7 24 14 20 54 540) °
Fend ÉFX 'end' 'e╜''''' 'æ╜'' ''' 't╜æ' '╕(^/'' ''=t)/L0' °
'╕(('':''εt)doif ''b╜evaldd (+/^\'''' ''''=t)╟t'')/3' °
'''e╜ÉEM'' ÉEA t' '╕(0=µ,e)/L0' °
'''This is not a valid APL2 expression''' 'æ╜''*''' °
X '╕(''?''⌠╞1╟æ)/L0' 'e' 'L0:''²²''' °
*(1992 2 29 8 32 30 452) °
XFendd ÉFX 'endd' 'Σ End of document' '20µ''²''' 'do' °
*(1996 8 8 12 9 4 228) °
Ferase ÉFX °
'erase;t;b;DISPLAY;DOS;GO;FRAME;NODIST;SVOFFER;SVOPAIR;FONTS' °
't╜ÉNL 3' 't╜(~t^.εlc,'' '')≡t' °
't╜(~(t[;∞5]^.=''TEACH'')δt[;∞4]^.=''TEST'')≡t' 't╜ÉEX t' 't╜ÉNL 2' °
X 't╜ÉEX(~t^.εlc,'' '')≡t' 't╜ÉNL 4' 't╜ÉEX(~t^.εlc,'' '')≡t' °
*(1992 2 29 8 32 32 460) °
Fevaldd ÉFX 'u╜evaldd w;c;n' °
'Σ Evaluate a direct definition expression' 'u╜0' 'n╜(w∞''Σ'')-1' °
'c╜(((n╞w)⌠'':'')Γn╞w),Γ''ΣDD '',(n+1)╟w' '╕(label╞c)/0' °
'╕((2=µc)doif ''u╜showdd 1╙c'')/0' °
'╕((3=ÉNC╞c)doif ''u╜⌡µÉ╜(╞c),'''' is already defined.'''''')/0' °
'╕((3=µc)doif ''u╜simdd c'')/0' 'c╜(Γ''α∙ aw'')replace■c' °
'u╜ε''u╜'',((''a''εεc[2 3 4])/''a ''),(╞c),'' w;t;b''' °
'u╜u(5πc)(''b╜(t╜'',(3πc),'')/'',addquote ''u╜'',4πc)' °
X 'u╜u,''╕(t doif b)/0''(''u╜'',2πc)' 'u╜╧ÉFX u' °
*(1992 2 29 8 32 32 460) °
Fexit ÉFX 'exit w' 'Σ Exit if there are too many suspended functions' °
X '╕((10>µÉLC)doif ''w'')/0' '''Please re-enter '',w' '╕' °
XCf 1 2 { °
Afonts╜('GOTENG')('GOTGER')('GOTITA')('GRESER')('GRESIM')('MARKERS')('M °
ODSIM')('ROMDUP')('ROMDUPF')('ROMITA')('ROMITAB')('ROMSER')('ROMSERB')( °
'ROMSIM')('ROMSIMM')('SANSER')('SANSERF')('SCRIPT')('THKRNDF')('THKRNDO °
X')('THKSQUF')('THKSQUO') °
XCfpath 1 17 D:\APL2OS2\FONTS\ °
XCg 1 2 } °
*(1996 3 12 15 27 53 504) °
Fget ÉFX 'u╜v get w;t;ÉPR' 'Σ Prompt for response from keyboard' °
't╜(0=ÉNC ''v'')doif ''v╜1'' ╪ ÉPR╜''''' 'w╜w,(~²1╞v)/'': ''' °
'L0:æ╜w' 't╜æ' '╕((''╕''=(µw)╟t)doif ''╕'')/0' '╕(^/'' ''=w)/L1' °
'╕((~w╧(µw)╞t)doif ''''''PLEASE DO NOT BACKSPACE'''''')/L0' °
't╜(µw)╟t' 'L1:u╜(²1+(,'' ''⌠t)∞1)╟t' '╕(1╞v)/0' 't╜(u⌠'' '')Γu' °
X 'u╜(µt),(Γu),t' °
*(1996 8 4 13 59 47 588) °
Fgetfont ÉFX 'U╜getfont W;A;N;F' 'Σ retrieve fonts W' °
'U╜0 ╪ ╕(0<ÉNC ''af'')/L1 ╪ af╜,Γ''DEFAULT''' °
'L1:W╜,W ╪ W╜0,(Wε0,∞22)/W' 'L0:╕(0=µW╜1╟W)/0' '╕(0=A╜╞W)/L0' °
'F╜εfpath,(N╜πfonts[A]),''.AVF''' °
X 'D207╜''FONTDEF''(N F) ╪ ╕(0⌠╞╞U╜D207)/0 ╪ af╜af,ΓN' '╕L0' °
*(1996 3 10 15 8 33 340) °
Fglobals ÉFX 'globals;T;D207' 'Σ Initialize useful global variables' °
'r╜2╙ÉTC' 'q╜40╙ÉAV' 's╜Φp╜'' '',d╜35╙ÉAV' °
'sv╜(100 211 80 206)(210 124)' 'uc╜''ABCDEFGHIJKLMNOPQRSTUVWXYZ''' °
'lc╜''abcdefghijklmnopqrstuvwxyz''' 'dig╜''1234567890''' °
'g╜Φ'' '',h╜126╙ÉAV' 'f╜ÉAV[33 124]' 'a╜38╙ÉAV' 'ul╜''²''' °
'T╜207 SVOFFER ''D207''' 'D207╜''QUERY'' ''''' 'modes╜,3πD207' °
'path╜''D:\APL2OS2\WORK\''' 'Σ''The current path is '',path' °
'ΣT╜1 get ''Enter new path if incorrect, else press Enter: ''' °
'Σ╕((0<µT)doif ''path╜T'')/0' 'fpath╜''D:\APL2OS2\FONTS\''' °
'''For this lesson you must specify a path to the FONT files.''' °
'''The current path is '',fpath' °
'T╜1 get ''Enter new path if incorrect, else press Enter: ''' °
X '╕((0<µT)doif ''fpath╜T'')/0' °
XCh 0 } °
*(1992 8 10 10 44 11 380) °
Findex ÉFX 'U╜V index W;A;C;H;I;T' 'Σ List contents of an AP 211 file' °
'T╜~(1<╧W)doif ''H╜2πW'' ''W╜1πW''' 'T╜T doif ''H╜''''FUNCTION''''''' °
'T╜(ΓW)ε''DOCS'' ''UTILITY'' ''HELP'' ''TUTOR''' °
'T╜T doif ''W╜path,W,''''.211''''''' '1 OPEN 211' 'D211╜''USE'' W' °
'''File '',W,'' has record length='',1╟D211' °
'D211╜''LIST'' ''NAMES''' 'U╜D211' °
'╕((0=╧U)doif ''U╜''''Unknown file'''''')/0' 'C╜1╟µU╜U[I╜ÉAV√U;]' °
'╕((0=ÉNC ''V'')doif ''CLOSE 211'')/0' 'U╜(C╞H),[1]ul,[1]U' °
'╕((0=1╞V)doif ''U╜0 0 2 tab U'' ''CLOSE 211'')/0' °
'D211╜''LIST'' ''ATTS''' 'A╜D211' °
'A╜(''SZ'' ''ID'' ''DATE'' ''mo'' ''d'' ''TIME'' ''m'' ''s'' ''ms''),[ °
1]ul,[1]A[I;]' 'V╜(Vε0,(∞9),-∞9)/V' 'U╜U,«A[;(0⌠V)/|V]' °
'╕((0εV)doif ''CLOSE 211'')/0' °
'T╜~(0<╛/V)doif ''U╜U[∞2;],[1](2 0╟U)[√(2 0╟A)[;|V];]''' °
'T╜T doif ''U╜U[∞2;],[1](2 0╟U)[ⁿ(2 0╟A)[;|V];]''' 'T╜ÉDL 1' °
X 'CLOSE 211' °
*(1996 8 3 13 21 48 436) °
Finfonts ÉFX 'U╜infonts;T' 'Σ List active fonts in the workspace' °
X 'U╜Γ''DEFAULT'' ╪ ╕(0=ÉNC ''af'')/0' 'U╜πaf' °
*(1996 3 10 14 58 1 408) °
Finitialize ÉFX 'initialize;t;C2' °
'Σ Initialize workspace. (To add to "sv" keep 100 FIRST)' 'erase' °
X 'globals' °
*(1992 2 29 8 32 29 448) °
Fkeys ÉFX 'keys' 'Σ Display keyboard' °
''' 1 2 3 4 5 6 7 8 9 0 + ⌡''' °
'''SHFT ╒ ■ ² < ≤ = ≥ > ⌠ δ ^ - ÷''' °
'''ALT ╘ ƒ · ⁿ √ Φ φ Θ ╡ τ σ ! Æ''' '''''' °
''' Q W E R T Y U I O P ╜ ╙ ╧''' °
'''SHFT ? ∙ ε µ ~ ╞ ╟ ∞ Ω * ╕ ╨ ╤''' °
'''ALT q w e r t y u i o p æ ≈ ╥''' °
'''CTRL ┌ ┬ ┐ ╔ ╦ ╗''' '''''' °
''' A S D F G H J K L [ ]''' °
'''SHFT α ⌐ ╛ _ ╖ ╢ ° '''' É ( )''' °
'''ALT a s d f g h j k l » «''' °
'''CTRL ├ ┼ ┤ ─ ═ ╠ ╬ ╣''' '''''' °
''' Z X C V B N M , . /''' °
'''SHFT Γ π ∩ ¼ ¥ ÿ | ; : \''' °
'''ALT z x c v b n m Σ ± ≡''' °
'''CTRL └ ┴ ┘ │ ║ ╚ ╩ ╝''' '''''' °
X '''Toggle switch to ASCII is CTL-BACKSPACE''' '''CTRL+G gives beep''' °
*(1992 2 29 8 32 32 460) °
Flabel ÉFX 'u╜label w' °
'Σ Return 1 if w is not a valid character string label (also excludes °
Xl.c.)' '╕(u╜(1<µµw)δ1<╧w)/0' '╕(u╜~^/wεlc,uc,dig)/0' 'u╜w[1]εlc,dig' °
XClc 1 26 abcdefghijklmnopqrstuvwxyz °
XNmodes 1 10 1 800 600 65536 8 256 19 10 2826 2830 °
*(1992 2 29 8 32 33 464) °
Fnon ÉFX 'non;t;rc;et;r' °
'Σ Ignore invalid keyboard entries, but evaluate valid APL2 expression °
s' 'æ╜'' ''' 't╜æ' '╕(0=µ(t⌠'' '')/t)/0' '(rc et r)╜ÉEC t' °
X '╕(0=rc)/2' '╕((1=rc)doif ''r'')/2' '╕2' °
*(1992 2 29 8 32 32 460) °
Fnotb ÉFX 'u╜notb w' 'Σ Remove trailing blanks' °
'╕((1<╧w)doif ''u╜notb■ w'')/0' '╕((1<µµw)doif ''u╜πnotb Γ[2]w'')/0' °
X 'u╜(1-(,'' ''⌠Φw)∞1)╟w' °
*(1996 8 4 12 52 57 596) °
Fopen ÉFX 'U╜open;T' 'Σ Activate AP 207' '╕(2=ÉSVO ''D207'')/U╜0' °
'T╜ÉEX ''af''' 'T╜207 SVOFFER ''D207''' °
X 'D207╜''OPEN''(0 ''FONTS'' 760 560 0 0)' '╕(0=╞╞U╜test)/0 ╪ ╕' °
XCp 1 2 " °
XCpath 1 16 D:\APL2OS2\WORK\ °
*(1992 2 29 8 32 33 464) °
Fpause ÉFX 'v pause w;t' °
'Σ Pause, then print w v spaces right and return' °
X 't╜(0=ÉNC ''v'')doif ''v╜6''' 'do' '(vµ'' ''),w' 'do' °
*(1992 7 16 11 12 35 372) °
Fprint ÉFX 'print W;L;D80' 'Σ Print function W on an Epsom printer' °
'╕((~(ÉNC W)ε3 4)doif ''''''This is not a function or defined operator °
X'''''')/0' 'OPEN 80' 'D80╜5' 'L╜,showfn W' 'D80╜π(L⌠r)ΓL' 'CLOSE 80' °
XCq 0 ' °
XCr 0 °
*(1996 8 8 13 22 5 288) °
Freadfont ÉFX 'U╜V readfont W;A;B;C;H;I;L;D;N;F;T;XY;Z;C210;D210' °
'Σ retrieve font file W' 'U╜0 ╪ T╜210 SVOPAIR ''C210'' ''D210''' °
'F╜εfpath,(N╜πfonts[W]),''.AVF''' 'Σ DISPLAY F' °
'C210╜''IR,'',F,'',D''' 'ΣC210' 'C210╜2' 'U╜D210' 'ΣC210 ╪ U' °
'L0:C210╜2 0,U' 'T╜D210' 'ΣC210 ╪ µT' '╕(U>µT)/L0' °
'U╜ΓH╜256¥φ16 2µÉAF 32╞T' 'U╜U,ΓI╜256¥φ257 2µÉAF 32╟T' °
'U╜U,Γ512╞546╟T' 'U╜U,ΓD╜((²1╞I),2)µ1058╟T' '╕(0=ÉNC ''V'')/0' °
'V╜ÉAF ''''µC╜V' 'Z╜ÉAF D[I[1+V]+∞-/I[2 1+V];]' 'B╜Z[;1]≥128' °
'L╜Z[;2]≥128' 'XY╜+\²64+128|Z' °
X '''The letter '',C,'' in font '',N,'':''' 'DISPLAY B,L,XY' °
*(1992 2 29 8 32 32 460) °
Freplace ÉFX 'u╜v replace w;i;r;s' 'Σ Replace elements in v in w' °
'i╜Γ∞µu╜w' 's╜2πv╜(v⌠'' '')Γv' 'i╜⌡r╜i⌡■Γ[1]w°.=╞v' °
X 'u[(εi)/εr]╜s[(εi)/εi⌡■∞µs]' °
*(1992 2 29 8 32 38 484) °
Freset ÉFX 'reset' 'Σ Reset parameters to initial screen' °
'TEST ''G╜4 16 1 255 1 1 0 319 0 199 0 319 0 199 0 0 100 100 0 0 0 1 1 °
X 1 0''' °
*(1992 2 29 8 32 33 464) °
Fround ÉFX 'u╜v round w' 'Σ Half adjust w to vth decimal' °
X 'u╜(╛0.5+w⌡10*v)÷10*v' °
XCs 1 2 " °
*(1992 8 10 10 58 49 588) °
Fshared ÉFX 'U╜shared;T;C2;D2;E2' °
'Σ List all shared variables currently active' °
'T╜2 ÉSVO■''C2'' ''D2'' ''E2''' °
'╕((δ/2⌠T╜ÉSVO■''C2'' ''D2'' ''E2'')doif ''''''AP 2 not active'''''')/ °
X0' 'C2╜0' 'U╜D2[;4]' 'U╜((εsv)εU)/εsv' °
*(1992 2 29 8 32 33 464) °
Fshow ÉFX '╢v show ╢w;╢t;╢b' 'Σ Display and execute ╢w' °
'╢t╜(0=ÉNC ''╢v'')doif ''╢v╜0''' °
'╕((0=╧╢w)doif ''show ╢w,'''' '''''')/0' °
'╕((1<╧╢w)doif ''╢v show■ ╢w'')/0' ''' '',╢w' °
X '╕((╢v^'':''ε╢w)doif ''╢t╜evaldd ╢w'')/L0' '''ÉEM'' ÉEA ╢w' 'L0:do' °
*(1992 2 29 8 32 33 464) °
Fshowdd ÉFX 'u╜showdd w;a;b;c;r' °
'Σ Display a direct definition function' °
'╕((1=╧w)doif ''u╜showdd Γw'')/u╜0' °
'╕((3⌠ÉNC╞w)doif ''(ε╞w),'''' is not a function'''''')/0' °
'c╜Γ[2]ÉCR╞w' 'c╜notb(2╞c),(Γ''aw α∙'')replace■2╟c' °
'╕((~''ΣDD''╧3╞2πc)doif ''''''Not a direct definition function'''''')/ °
0' 'u╜1' 'b╜('' ''⌠╞c)Γ╞c' 'a╜'' ''' 'r╜2╟3πc' °
'╕((3=µc)doif ''a,(╞w),'''':'''',r,(3<µ2πc)/'''' Σ'''',3╟2πc'')/0' °
'a╜a,(╞w),'':'',(2╟5πc),'':''' 'b╜(+\r=''('')-+\r='')''' 'b╜b∞0' °
X 'a╜a,(²3╟(b-1)╞3╟r),'':'',2╟»(b+2)╟r' 'a,(3<µ2πc)/'' Σ'',3╟2πc' °
*(1992 9 6 10 33 13 332) °
Fshowfn ÉFX 'u╜v showfn w;f;n;t;ÉIO' 'Σ Simulate the STSC ÉVR command' °
't╜(0=ÉNC ''v'')doif ''v╜,0''' 'ÉIO╜0' °
'u╜'' '',''╖'',w,''[É]'',(╞v)╞''╖''' 'n╜1╞µf╜ÉCR w' °
'v╜v[0],((1╟v)ε∞n)/1╟v' 'n╜«∞n' 'n╜(n⌠'' '')Γn' °
'f╜(π''['',■n,■Γ''] ''),f' °
't╜(1<µ,v)doif ''f╜f[1╟v;]'' ''u╜''''''''''' 'u╜²1╟u,r,,f,r' °
X 'u╜((-+/^\'' ''=Φu)╟u),('' ''(r,'' ╖'',date 2 ÉAT w))[╞v]' °
*(1992 2 29 8 32 33 464) °
Fsimdd ÉFX 'u╜simdd w;e' 'Σ Simple direct definition mode' 'u╜0' °
'╕((0⌠ÉNC╞w)doif ''''''Already defined'''''')/0' 'e╜''α''ε2πw' °
'w[2]╜Γ''u╜'',''α∙ aw'' replace 2πw' 'w╜w[1 3 2]' °
X 'w[1]╜Γε''u╜'',(e/''a ''),w[1],'' w''' 'u╜╧ÉFX w' °
XAsv╜(100 211 80 206)(210 124) °
XCt 1 7 °
*(1992 6 3 9 59 17 424) °
Ftab ÉFX 'U╜V tab W;T;A;B;C;D;E;F;G;M;ÉPW' 'Σ Tabulate list W' °
'T╜(0=ÉNC ''V'')doif ''V╜0''' 'M╜''Invalid data for tabulation''' °
'V╜4╞V' 'ÉPW╜130╛30⌐G╜V[2]+79⌡V[2]=0' °
'L1:╕((1<╧W)doif ''''''W╜∞0'''' ÉEA ''''W╜πW'''''')/L1' °
'╕(((0=µεW)δ2<µµW)doif ''U╜(~V╧4╞0)/M'')/0' °
'T╜(1≥µµU╜«W)doif ''U╜πW╜(U⌠'''' '''')ΓU''' °
'T╜(0<V[1])doif ''U╜(«(Φ1,╞µW)µ(V[3]µ'''' ''''),∞(╞µW)-V[3]),'''' '''' °
,U''' '╕(G<30)/0' 'T╜(F╜µεV[4])+C╜1╟B╜µA╜(V[3],0)╟U' °
'T╜⌐(1╞B)÷1⌐╛(ÉPW+F)÷T' 'U╜(E╜(V[3],C)╞U),[1](B╜T,1╟B)╞A' °
'''D╜εV[4]'' ÉEA ''D╜ÉAV[εV[4]+33⌡V[4]=0]''' 'L0:A╜(T,0)╟A' °
X '╕(0=1╞µA)/0' 'U╜U,(((T+V[3]),µD)µD),E,[1]B╞A' '╕L0' °
*(1996 7 19 13 48 24 508) °
Ftest ÉFX 'U╜test' 'Σ test return code' '╕(0=╞╞U╜D207)/0' °
X '''SESSION ABORTED: The return code is '',╞U ╪ DISPLAYπU ╪ ╕' °
*(1992 9 5 9 10 34 316) °
Ftestap ÉFX 'U╜testap W;B;D;S;T' °
'Σ Test for existence of specific AP"s' 'D╜''D'',■«■W╜,W' °
'T╜W ÉSVO■D' 'U╜0' '╕((^/B╜2=ÉSVO■D)doif ''T╜ÉEX■ D'')/0' °
'T╜''The following Auxilliary Processor'',(S╜1<+/~B)╞''s''' °
'T,(ε(S+1)╙'' is'' '' are''),'' not available'',(~B)/W' 'U╜1' °
X 'T╜ÉEX■D' °
XCuc 1 26 ABCDEFGHIJKLMNOPQRSTUVWXYZ °
XCul 0 ² °
*(1996 6 13 13 16 24 352) °
Fwarna ÉFX 'warna;T' 'Σ clear AP124 and explai' °
X 'T╜ÉSVR■''C124'' ''D124''' 'T╜ÉEX■''C124'' ''D124''' °
*(1996 8 3 11 54 14 424) °
Fwarnb ÉFX 'warnb;T' 'Σ clear AP124 and explain' °
'''WARNING: As you study this lesson, try to respond to all requests.' °
',r' °
'''Of course as in all these tutorials, you are encouraged to experime °
nt''' °
'''at any pause. When an AP 207 command is issued, there may be an int °
erval''' °
'''of a second or two of no action, followed by a flash on the screen. °
''' °
'''If the graphic screen does not appear you may invoke the Ctrl-Esc'' °
X' '''command to display any current AP 207 window.''' 'do' °
*(1996 7 12 12 20 34 404) °
Fwarning ÉFX 'warning;T' 'Σ clear AP207 and explain' 'warna' 'warnb' °
'''As in the previous lesson the function "test" is used to verify''' °
'''that a command given to AP207 was successful. The function returns' °
'' °
'''a nested vector. The first element of this vector may be nested.''' °
'''The take (╞) of this element contains the Return Code.'',r' °
'''WARNING! Do not issue a TEST command while there is a graphic''' °
'''window in the window list.'',r' °
'''(You may also wish to view function "test" at this point.)''' °
X 'end' °
XNwt 0 2 °