FBHF?TSS'F Turbo Pascal Tutor and Examples ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
═Welcome to Turbo Pascal Tutor.  This program allows notes on Turbo Pascal to be viewed in a scrollable window, whilst the source code for a number of examples can also be inspected. These example programs can be run as executable files (.EXE) from the tutor screen. The ≡ menu is accessed by pressing Alt-Space.  All the other menus are accessed by pressing Alt-Z, where Z is the first letter of the menu. For example, the "Notes" menu is pulled down by Alt-N. )
Press ESC to put this help screen away. ' File viewer ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀
òA file viewer views the contents of a text file. You can use the arrow keys to move about in the file. A file is loaded via the File│Open menu item. a
  Up         Move up one line
  Down       Move down one line
  Right      Move right one column
  Left       Move left one column
  PgUp       Move one page up
  PgDn       Move one page down
  Home       View right most column of the file
  End        View left most column of the file
  Ctrl-PgUp  View top of file
  Ctrl-PgDn  View bottom of file.
?
File viewers can be resized and moved using the Windows menu. 
ƒ	F' List ▄
  ▀▀▀▀▀
[Selecting List from the Notes sub-menu provides a screen window containing an alphabetical list of text files covering many Turbo Pascal topics, with a brief description of the contents. After observing the filename required, press Alt-F3 to leave this screen display and then select Open to obtain a Dialog Box for selection of the reqired file. ' List Open ▄
  ▀▀▀▀▀▀▀▀▀▀
₧Select the required file from the Dialog Box by pressing the Tab key and then using the arrow keys to move to the appropriate file. Then press the ENTER key. '  Example Code ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
▌On selecting Open a list of Pascal source code files is presented for selection of the required file by pressing the Tab key and using the arrow keys to move to the appropriate file. The ENTER key should then be pressed. ' Graphics ▄
  ▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key G. z
The program illustrates the graphics capabilities of Turbo Pascal, by using the Line procedure with a suitable algorithm to draw a parabola. Apart from using the Graph unit of Turbo Pascal, a GraphPRN unit is employed to allow hardcopy to an Epson printer. This latter unit is listed by Ohlsen and Stoker in 'Turbo Pascal Advanced Techniques' published by the Que Corporation. '8 ≡ (System) menu ▄    (Alt-Spacebar)
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
\The System menu appears on the far left of the menu bar and is represented by the ≡ symbol. (
When you pull down the ≡ menu, you see 	
  About
└' ≡│About ▄
  ▀▀▀▀▀▀▀▀
}When you choose the About command from the ≡ (System) menu, a dialog box appears, showing copyright and version information. >
To close the box, press Esc, or click the top left symbol ▀. ' Records ▄
  ▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key R. N
This program allows the user to input data to a sales record. The data for the record are Name, Item, Quantity, Unit Price and VAT Rate and this data can be entered into memory by the user response to screen prompts. The input is checked for correctness of type and form. An initial menu allows the user to make a record file on disk or to open an existing record file and, once open, the user can append to, change data on or read from this record file. Because of the sequential storage of the records on disk, it is not easy to remove a record and pack the disk file. For simplicity, deletion is achieved by changing the record fields for name and item to spaces and the numeric fields to zeros, effectively giving an empty record. Finally when the user selects Quit, the program automatically closes the record file before returning to DOS. ' UserIO ▄
  ▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key U. <
Program to illustrate user input from the keyboard and output to the screen. Use is made of the procedures Readln, Write and Writeln found in the System Unit, which does not have to be declared in the Uses clause as it is automatically made available. Consult the Library Reference for details of these procedures. '" Examples Open ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╪To open a source code file select Open by arrow keys and then press ENTER, or by pressing O. Then use the tab key to move to the list of programs and then the arrow keys to select the required one. Then press ENTER. '$ Notes  (Alt-N) ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
`The Notes menu offers choices for opening files, changing directories, and exiting the program. $
 Open          Change Dir    FExit

çò
ú'& File│Open  (F3) ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
äThe Open command displays the Open a File dialog box. In this dialog box you select the text file you want browse in a file viewer. &
The Open a File dialog box contains: ╗
 ■ an input box with a history list
 ■ a list box to browse the directory
 ■ the standard Cancel button
 ■ Open action button
 ■ an information panel that describes the
   selected file
₧░╪	 √",!='* File│Change Dir...▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
jFile│Change Dir brings up the Change Directory dialog box, in which you can change the current directory. $I'$ File│DOS Shell ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
sWith the DOS Shell command, you can leave the program temporarily to perform a DOS command or run another program. 9
To return to this program, type EXIT at the DOS prompt. '& File│Exit ▄     (Alt-X)
  ▀▀▀▀▀▀▀▀▀▀
*The Exit command terminates this program. ' Window ▄    (Alt-W)
  ▀▀▀▀▀▀▀
_The Window menu contains commands to close, move and perform other window-management commands. Ç
Most of the windows in this program have all the standard window elements, including scroll bars, a close box, and zoom icons. >
For more about windows and their elements, refer to windows. :

 Window-management commands
 ══════════════════════════
T
 Size/Move        Zoom
 Tile             Cascade
 Next             Previous
 Close
y	èÉí¬╗┼'6 Window│Size/Move ▄     (Ctrl-F5)
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
IChoose this command to change the size or position of the active window. 
 ▄▄▄▄▄▄
  Size
 ▀▀▀▀▀▀
ùIf you press Shift while you use the arrow keys, you can change the size of the active window. Once you've adjusted its size or position, press Enter. Q
If a window has a Resize corner, you can drag that corner to resize the window. 
 ▄▄▄▄▄▄
  Move
 ▀▀▀▀▀▀
ÖWhen you choose Window│Size/Move, the active window moves in response to the arrow keys. Once you've moved the window to where you want it, press Enter. F
You can also move a window by dragging its title bar with the mouse. '% Window│Zoom ▄   (F5)
  ▀▀▀▀▀▀▀▀▀▀▀▀
₧Choose Zoom to resize the active window to the maximum size. If the window is already zoomed, you can choose this command to restore it to its previous size. {
You can also double-click anywhere on the window's title bar (except where an icon appears) to zoom or unzoom the window. ' Window│Tile ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀
<Choose Window│Tile to tile all file viewers on the desktop. L
 ┌────────────────────────────────────┐
 │ ╔════════════1══╗┌────────────2──┐ │
 │ ║               ║│               │ │
 │ ║               ║│               │ │
 │ ║               ║│               │ │
 │ ║               ║│               │ │
 │ ╚═══════════════╝└───────────────┘ │
 │ ┌────────────3──┐┌────────────4──┐ │
 │ │               ││               │ │
 │ │               ││               │ │
 │ │               ││               │ │
 │ │               ││               │ │
 │ └───────────────┘└───────────────┘ │
 └────────────────────────────────────┘
             Tiled Windows
'$ Window│Cascade ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
@Choose Window│Cascade to stack all file viewers on the desktop. A
 ┌──────────────────────────1─┐
 │┌─────────────────────────2─┐
 ││┌────────────────────────3─┐
 │││╔═══════════════════════4═╗
 │││║                         ║
 │││║                         ║
 │││║                         ║
 │││║                         ║
 │││║                         ║
 └└└╚═════════════════════════╝

        Cascaded Windows
' Window│Next ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀
BChoose Next to cycle forwards through the windows on the desktop. '& Window│Previous ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
GChoose Previous to cycle backwards through the windows on the desktop. ', Window│Close ▄    (Alt-F3)
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
)Choose Close to close the active window. O
You can also click the Close box in the upper right corner to close a window. '( Options  (Alt-O) ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
YThe Options menu contains commands that let you change color and mouse default settings. `j'( Options│Mouse... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
èThe Mouse command brings up the Mouse Options dialog box, where you can set various options that control how your mouse works, including: R
 ■ how fast a double-click is
 ■ which mouse button (right or left) is
   active
%I
'* Options│Colors... ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
dThe Colors item brings up the Colors dialog box, where you can customize the colors of the display. &I
'0 Options│Save Desktop ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
Saves the state of all open windows to a file call TVDEMO.DSK. This file can be reloaded by selecting Options│Restore Desktop. ù'6 Options│Restore Desktop ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ÉRestore a previously-saved state of all open windows from a file call TVDEMO.DSK. This file is saved via the Options│Save Desktop menu command. ñ'D Help on Open a File Dialog Box ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
╧The Open a File dialog box contains an input box, a file list, a file information panel, the standard button Cancel, one other action button (Open), plus a history list that's attached to the Name inputbox.  y	"▓!╙
'o ┌─ Name ──────────────────────────┐
 │                                 │
 └─────────────────────────────────┘
ÿThe Name input box is where you enter the name of the file to load, or the file-name mask to use as a filter for the Files list box (for example, *.*). '╝ ┌ Files ──────────────────────────┐
 │                                 │
 │  FILENM01.PAS  │  FILENM09.PAS  │
 │  FILENM02.PAS  │  FILENM10.PAS  │
 │  FILENM03.PAS  │  FILENM11.PAS  │
 │  FILENM04.PAS  │  FILENM12.PAS  │
 │  FILENM05.PAS  │  ..            │
 │  FILENM06.PAS  │  \MOREXAMP     │
 │  FILENM07.PAS  │  \TOURS        │
 │  FILENM08.PAS  │  \ANSWERS.DIR  │
 │  ▒▒▒■▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒   │
 └─────────────────────────────────┘
¼The Files list box lists the names of files in the current directory that match the file-name mask in the Name input box, plus the parent directory and all subdirectories. ╣
 ┌──────────────────────────────────────────┐
 │ C:\TP\EXAMPLES\*.PAS                     │
 │ HELLO.PAS       52  Jul 14,1990  12:00pm │
 └──────────────────────────────────────────┘
fThe File information panel shows the path name, file name, date, time, and size of the selected file. =
None of the items on this information panel are selectable. '* ┌──────────┐
 │ [ Open ] │
 └──────────┘
WThe Open button opens a new Viewer window and places the selected file in that window. '0 ┌────────────┐
 │ [ Cancel ] │
 └────────────┘
]
If you choose Cancel, nothing changes and no action occurs, and the dialog box is put away. M
(Esc always cancels a dialog box, even if a Cancel button does not appear.) '* ┌──────────┐
 │ [ Open ] │
 └──────────┘
è
In the Open a File dialog box, if you choose the Open button TVDEMO opens a new file viewer and places the selected file in that window. |'V Help on the Change Directory dialog box ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
ÆThe Change Directory dialog box consists of an input box, a list box, the standard OK and Help buttons, and two other buttons (Chdir and Revert). |
 ┌ Directory Name ─────────────────────┐
 │                                     │
 └─────────────────────────────────────┘
QThe Directory Name input box is where you type in the path of the new directory. ≈
 ┌ Directory Tree ─────────────────────┐
 │   Drives                            │
 │   └─┬C:\                            │
 │     └─┬TP                           │
 │       └──TVISION                    │
 └─────────────────────────────────────┘
oThe Directory Tree list box enables you to navigate directories by using the selecting bar and pressing Enter. ÿ
If you're using the keyboard, press Enter to make the selected directory be the current directory, then choose OK or press Esc to exit the dialog box. +
 ┌──────────┐
 │ [Chdir ] │
 └──────────┘
bThe Chdir button changes the current directory once you've selected or typed in a directory name. +
 ┌──────────┐
 │ [Revert] │
 └──────────┘
iThe Revert button goes back to the previous directory, as long as you haven't yet exited the dialog box. 'P Help on the Mouse Options dialog box ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
cThis dialog box consists of one check box, one slider bar, and the standard buttons OK and Cancel. ù
 ┌──────────────────────────┐
 │ Mouse Double Click       │
 │ Slow     Medium     Fast │
 │ ▒▒▒▒▒▒▒▒▒▒▒■▒▒▒▒▒▒▒▒▒▒ │
 └──────────────────────────┘
PThe Mouse Double Click slider bar adjusts the double-click speed of your mouse. ^
 ┌───────────────────────────┐
 │ [X] Reverse Mouse Buttons │
 └───────────────────────────┘
mReverse Mouse Buttons makes the right mouse button take on the normal functions of the left--and vice versa. 6
 See also:
 ═════════
 Options│Mouse... menu command
~'B Help on the Colors dialog box ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
îThe Colors dialog box consists of two list boxes, a text display area, the standard OK, Cancel, and Help buttons, and one of the following: ½
 ■ On color and black-and-white systems, it
   also contains two color palettes.
 ■ On monochrome systems, it contains a set
   of radio buttons instead of the palettes.
X
This dialog box is where you can change the colors of different parts of this program. Γ
 ┌─ Group ─────────────┐
 │   Desktop          │
 │   Menus            ■│
 │   Dialogs/Calc     ▒│
 │   Puzzle           ▒│
 │   Calendar         ▒│
 │   Ascii table      ▒│
 │                    │
 └─────────────────────┘
fThe Group list box contains the names of the different regions of the program that you can customize. L
 ┌─ Item ──────────────┐
 │   Color            │
 │                    ■│
z
When you select a group from the Group list, the Item list box displays the names of the different views in that region. ò
 ┌ Foreground ┐   ┌ Background ┐
 │ ░▒▓░▒▓░▒▓░ │   │ ▓░▒▓░▒▓░▒▓ │
 │ ▓░▒▓░▒▓░▒▓ │   │ ░▒▓░▒▓░▒▓░ │
 │ ▒▓░▒▓░▒▓░▒ │   └────────────┘
 └────────────┘
gOn color and black-and-white systems, you use the Foreground and Background palettes to modify colors. ¥
 ┌ Colors ──────────────┐
 │  (∙) Mono low        │
 │  ( ) Mono high       │
 │  ( ) Mono underscore │
 │  ( ) Mono inverse    │
 └──────────────────────┘
l
On monochrome systems, you use the Colors set of radio buttons systems to modify the character attributes. Q
 ┌────────────────┐
 │ Text Text Text │
 │ Text Text Text │
 └────────────────┘
hOn all systems, the display text (above the Help button) shows the current color or attribute settings. a
Changes do not take effect on the desktop until you close the Colors dialog box by choosing OK. ' Pointers ▄
  ▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key P. ë
This program illustrates the use of Pointers and Records. It also illustrates Variable Typecasts, so that the value of a pointer variable can be evaluated and hence the segment and offset of the variable pointed to can be found. The functions 'seg' and 'ofs' are also used for this purpose. Then by changing to the OS shell, the user can enter DEBUG and display (d Seg:Ofs) to check the location of the records in memory. Note the apparent multiple storage with a 16-bit machine with 1 Mbyte of memory and explain this paradox. It is based on a program in the Turbo Pascal version 3 Manual, with additional declarations and statements by Ron Shaw. '  Run Examples ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
æSelect the appropriate example from the sub-menu, by using the arrow keys and pressing ENTER, or by pressing the appropriate highlighted letter. '  Binary Trees ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key B. K
Program to show how a binary tree can be used to order a set of integers. '$ DOS Operations ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key D. N
Program to illustrate the use of DOS operations from a Turbo Pascal Program. '$ BIOS interrupt ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key I. 
Program to illustrate Turbo Pascal INTR procedure, which uses DOS. The BIOS Interrupt Service 10 Hex is used with Function (AH) = 0F For use with Version 5 + of Turbo Pascal. Version 3 is different because Registers is not predefined in DOS, but user defined. ' KeyCheck ▄
  ▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key K. ç
This program illustrates the use of Units in Turbo Pascal, whereby compiled code can be incorporated into the current program. The unit is called LIMITKEY.TPU and provides a procedure that only allows a selected set of keys to be acceptable input. The selected keys are defined as the first parameter of the procedure LimitChar. Based on a program by David Arber of David Arber Associates. ', Double linked list ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key T. ≈
Program to display on the screen the creation of a double-linked list on the Heap and to show the action as the records of the list are traversed both forward and backward under the control of the right and left arrow keys. The functions Seg and Ofs are used to determine the addresses on Heap of each record of the linked list and these addresses are then displayed as Seg:Ofs for the record and for its fields Previous and Next. The Number field is also displayed. The active record is shown in red. '6 Linked list on the Heap ▄
  ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key H. ∩
The program demonstrates the creation of a single linked list of records on the Heap, using pointers. The user is invited to enter the name, as a string[15], and price in pence, as an integer, for three items, which form the linked list. ' Procedure ▄
  ▀▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key C. 8
Program to illustrate the use of a procedure with parameters. The procedure simply creates a Times Table for the entered value of the multiplicand, or base, for the range of multiplier values also entered by the user. The procedure is called TimesTable and has the three parameters: BaseValue, Lower and Upper. ' Function ▄
  ▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key F. y
Program to illustrate the use of a function, in this case to evaluate a number raised to a power ( x ^ y ). The number is referred to as the base value and the power is the exponent. Negative base values with fractional exponents are excluded in this simple program as they would require the use of complex numbers. A unit POWERU.TPU is available to handle complex solutions. ' OverLays ▄
  ▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key O. Ä
Program to illustrate the use of Overlays, whereby code is contained in a number of units on disk and is called into overlay section of memory when required. Useful when memory is otherwise fully used. Some modifications made to the original Borland program to give screen indication of the overlay in use. For details refer to chapter 13 The Overlay Unit in the Programmer's Guide (version 6.0). ' Structure ▄
  ▀▀▀▀▀▀▀▀▀▀
yThis program can be run by selection using the arrow keys and pressing ENTER, or else by pressing the highlighted key S. ?
Program to illustrate the structure of Turbo Pascal programs. ' None ▄
  ▀▀▀▀▀
'<    W╞=
$
α╠ñ¬p+╨»ñ±ªw!π!\"#ª#╛$]%&⌠&'(:)-á-ë.N/I475>^ABCD╣EαGïJ8LN+PYR:S                                