home *** CD-ROM | disk | FTP | other *** search
Text File | 1986-06-07 | 67.8 KB | 1,924 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
- TURBO ENHANCEMENT TOOLKIT DOCUMENTATION
-
- User-Supported Software
-
-
- Programmer's Utilities
-
- by
-
- Kevin Dahl
-
- 1711 4th St N
- Wahpeton, North Dakota 58075
-
-
- Version 1.0 - June 1986
-
- (C) Copyright 1986 by Kevin W. Dahl
- ..page
- ..foot48Ri
- INTRODUCTION
-
- This product is hereby released to the public domain
- for personal, non-commercial use only. I will
- appreciate any feedback.
-
- NOTICE:
-
- A limited license is granted to all users of these
- routines, to make copies of these routines and
- distribute them to other users, on the following
- conditions:
- 1. The notices contained in lines 2 and 3 of each
- routine listing is not to be altered or removed.
- 2. The routines are not to be distributed to others
- in modified form.
- 3. No fee is to be charged for copying or
- distributing these routines without an express
- written agreement with the author, Kevin W. Dahl,
- Copyright (C) 1986
-
- (To keep these routines fairly standard, it is
- requested that any special modifications be kept for
- personal use only. - K.D.)
-
- The number of global type and variable declarations
- have been kept to a minimum, so most of these routines
- do not require any global declarations. You will find
- the routines included here work primarily with the
- video display screen.
-
- While these procedures and functions work only with the
- video display I hope to add more procedures and
- functions to this library that work with other areas of
- the PC. Your comments and suggestions on how to
- improve and extend the usefulness of this library will
- be greatly appreciated.
-
- I hope these routines make your programming efforts
- easier and more enjoyable.
- Kevin
- ..page
- ..foot48Rii
- Table of Contents
-
- CHAPTER 1
- System Requirements ...................... 1-1
- File Requirements ........................ 1-1
-
- CHAPTER 2 - PROCEDURES AND FUNCTIONS
-
- BoarderColor ............................. 2-1
- ClrWin ................................... 2-2
- ColorMsg ................................. 2-3
- FillCol .................................. 2-4
- FillColAttrib ............................ 2-5
- FillRow .................................. 2-6
- FillRowAttrib ............................ 2-7
- FrameWin ................................. 2-8
- GetCursorSize ............................ 2-10
- GetScrn .................................. 2-11
- GetVideoMode ............................. 2-13
- GotoXYAbs ................................ 2-14
- InitVideo ................................ 2-15
- PutScrn .................................. 2-16
- RvsVideo ................................. 2-18
- ScrollDn ................................. 2-19
- ScrollLeft ............................... 2-21
- ScrollUp ................................. 2-23
- ScrollRight .............................. 2-25
- SetCursorSize ............................ 2-27
- WaitMsg .................................. 2-29
- WhereXAbs ................................ 2-30
- WhereYAbs ................................ 2-31
- WriteSt .................................. 2-32
- WriteStLn ................................ 2-33
-
- APPENDIX A
- Summary of Procedures and Functions ...... A-1
-
- APPENDIX B
- Keyboard codes ........................... B-1
- ..page
- ..foot48Riii
- APPENDIX C
- Keyboard element codes ................... C-1
-
- APPENDIX D
- Keyboard return codes .................... D-1
-
- APPENDIX E
- Keyboard scan codes ...................... E-1
-
- APPENDIX F
- User-Supported Concept ................... F-1
-
- APPENDIX G
- Future Enhancements & Update Policy ...... G-1
- ..page
- ..pgno01
- ..foot48R1-##
- SYSTEM REQUIREMENT:
-
- IBM-PC or true compatible
- 64k RAM
- 1 disk drive
- DOS 2.0 or greater
- Turbo Pascal 3.0 or greater
-
- FILE REQUIREMENTS
-
- Since these include routines are written in
- assembly language the compiled modules are included
- on the disk.
-
- Only the routines you use in your programs must be
- on the disk during compliation of your program. To
- determine which external routine must be on your
- disk refer to the Filename listed in the
- documentation on the procedure you are using. For
- example, if you were using the procedure RvsVideo,
- then the file V15.ENH must be on your disk and you
- would also need the procedure declaration:
-
- Procedure RvsVideo; External 'V15.ENH'
-
- at the beginning of your source code in your
- program.
- ..page
- ..pgno01
- ..head03RBOARDERCOLOR
- ..head04RProcedure
- ..head05R_______________________________________________________
- ..foot48R2-##
- Purpose : Sets the color for the boarder screen.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V1.ENH
-
- Format : BoarderColor(Color);
-
- Remarks : Color is an integer in the range 0 to
- 15. It is the color for the
- border screen.
-
- With a Color/Graphics Adapter the following
- colors are allowed colors are allowed for
- the boarder screen.
-
- 0 Black 8 Gray
- 1 Blue 9 Light Gray
- 2 Green 10 Light Green
- 3 Cyan 11 Light Cyan
- 4 Red 12 Light Red
- 5 Magenta 13 Light Magenta
- 6 Brown 14 Yellow
- 7 White 15 High-intensity White
-
-
- Example : BoarderColor(1);
-
- This example will display a blue boarder on
- a color monitor.
- ..page
- ..head03RCLRWIN
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Clears the current window area.
-
- Versions : 2.00 3.00 3.01B
- ** **
-
- Filename : V2.ENH
-
- Format : ClrWin;
-
- Remarks : This procedure will blank the window area
- that is currently defined by turbo. ClrWin
- will use the text color and the text back
- ground color, currently defined by turbo, as
- the color to use for the window area. Also
- ClrWin do not affect the position of the
- cursor.
-
- Example : Window(5,5,40,20);
- TextColor(Black);
- TextBackGround(Blue);
- ClrWin;
-
- This example will clear the window area to a
- blue background color.
- ..page
- ..head03RCOLORMSG
- ..head04RProcedure
- Purpose : Display a message to the screen using the
- color attribute specified.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V3.ENH
-
- Format : ColorMsg(X,Y,Color,Message)
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- Color is an integer in the range 0 to
- 255. It gives the attribute
- color to be used for displaying
- the message.
-
- Message is any string expression.
-
- ColorMsg is NOT sensitive to Turbo's
- currently defined window and will wrap
- around to column one on the next line of the
- screen when necessary.
-
- ColorMsg will not scroll the screen if the
- data to be displayed is to extend beyond the
- last row of the screen.
-
- Special Note : ColorMsg requires a global type
- definition for a string of 255
- characters.
-
- Str255 = String[255];
- ..page
- ..head03RFILLCOL
- ..head04RProcedure
- Purpose : Display a column of the character passed to
- the display screen.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V4.ENH
-
- Format : FillCol(X,Y,Num,Ch);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- Num is an integer in the range 1 to
- 25 for the number of rows to
- display the character in.
-
- Ch is the character to be displayed
- Num times in the column on the
- screen.
-
- FillCol always acts on the entire screen and
- is NOT sensitive to Turbo's currently
- defined window.
-
-
- Example : FillCol(1,1,20,'-');
-
- In this example 20 minus sign characters
- will be displayed in column 1 starting on
- row one of the screen.
- ..page
- ..head03RFILLCOLATTRIB
- ..head04RProcedure
- Purpose : Display a column of attribute bytes to the
- display screen.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V5.ENH
-
- Format : FillColAttrib(X,Y,Num,Color);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- Num is an integer in the range 1 to
- 25 for the number of rows to
- display the attribute byte on.
-
- Color is the color to be displayed Num
- times in the column on the
- screen.
-
- FillColAttrib always acts on the entire
- screen and is NOT sensitive to Turbo's
- currently defined window.
-
-
- Example : FillColAttrib(1,1,20,48);
-
- In this example the attribute color 48 will
- be displayed 20 times in column 1 starting
- on row one of the screen.
- ..page
- ..head03RFILLROW
- ..head04RProcedure
- Purpose : Write one or more copies of a single
- character to the screen starting at the X,Y
- coordinates passed.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V6.ENH
-
- Format : FillRow(X,Y,Num,Ch);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- Num is the number of times to display
- the character to the screen.
-
- Ch is the character to be displayed
- Num times on the screen.
-
- FillRow always acts on the entire screen and
- is NOT sensitive to Turbo's currently
- defined window.
-
- Example : FillRow(1,1,80,'-');
-
- In this example 80 minus sign characters
- will be displayed starting on row one,
- column one of the screen.
- ..page
- ..head03RFILLROWATTRIB
- ..head04RProcedure
- Purpose : Write one or more copies of the color
- attribute byte to the screen starting at the
- X,Y coordinates passed.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V7.ENH
-
- Format : FillRowAttrib(X,Y,Num,Color);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- Num is the number of times to display
- the character to the screen.
-
- Color is the color to be displayed Num
- times on the screen.
-
- FillRowAttrib always acts on the entire
- screen and is NOT sensitive to Turbo's
- currently defined window.
-
-
- Example : FillRowAttrib(1,1,80,48);
-
- In this example, starting at row one, column
- one of the screen the color attribute byte
- 48 will be used.
- ..page
- ..head03RFRAMEWIN
- ..head04RProcedure
- Purpose : Frames the window currently defined by Turbo
- with the characters passed.
-
- Versions : 2.00 3.00 3.01B
- ** **
-
- Filename : V8.ENH
-
- Format : FrameWin(UL,UR,LL,LR,Hor,Ver);
-
- Remarks : UL is the character in the upper
- left corner of the window.
-
- UR is the character in the upper
- right corner of the window.
-
- LL is the character in the lower
- left corner of the window.
-
- LR is the character in the lower
- right corner of the window.
-
- Hor is the horizontal character for
- the top and bottom lines of the
- window.
-
- Ver is the vertical character for the
- left and right vertical lines of
- the window.
-
- FrameWin will outline the window that is
- currently defined by Turbo with the
- characters passed.
-
- Once the window frame has been displayed the
- active window will be adjusted to fit within
- the framed area.
- ..page
- ..head05R
- For example if the current window is defined
- as 1,1,80,25 then after FrameWin the current
- window will be 2,2,79,24.
-
- Example : FrameWin('-','-','-','-','-','|');
-
- The above statement will use minus signs for
- the top and bottom lines and the single bar
- for the two sides.
-
-
- FrameWin('L','R','l','r','H','V');
-
- The frame this statement will draw is shown
- below:
-
-
- LHHHHHHHHHHHHHHHHHHHHHHHHHHR
- V V
- V V
- V V
- V V
- V V
- V V
- V V
- lHHHHHHHHHHHHHHHHHHHHHHHHHHr
- ..page
- ..head03RGETCURSORSIZE
- ..head04RFunction
- ..head05R_______________________________________________________
- Purpose : Returns the starting and ending scan lines
- for the current cursor.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V9.ENH
-
- Format : GetCursorSize;
-
- Remarks : Returns an integer with:
-
- Hi byte -- starting scan line
- Lo byte -- ending scan line
-
- Example : Write(Hi(GetCursorSize),Lo(GetCursorSize));
-
- This example will print on one line the
- current starting scan line and ending scan
- line respectively.
-
- i := GetCursorSize;
-
- In this example i will receive the starting
- and ending scan line of the cursor. The hi
- byte will be the starting scan line of the
- cursor and the lo byte will be the ending
- scan line of the cursor.
- ..page
- ..head03RGETSCRN
- ..head04RProcedure
- Purpose : Read the character and attribute bytes from
- the screen into a character array.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V10.ENH
-
- Format : GetScrn(X,Y,NumChars,ChArray);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- NumChars is an integer in the range 1 to
- 1000 or 1 to 2000, depending upon
- the screen width. It gives the
- number of words to get from the
- display screen. Its value is the
- total number of bytes to get
- divided by 2.
-
- ChArray is any character or string array
- that will receive the character
- and attribute bytes from the
- screen. The minimum size of
- ChArray is NumChars*2.
-
- This procedure works much like Turbo's move
- statement but in addition checks for the
- vertical retrace of the video adapter to
- eliminate the snow effect that the move
- statement would produce on a Color/Graphics
- Adapter.
- ..page
- ..head05R
- GetScrn is the inverse of the PutScrn
- procedure.
-
-
- Example : GetScrn(1,1,80,ChArray[1]);
-
- In this example the size of ChArray is at
- least 160 bytes long. A copy of row one on
- the screen will be placed in ChArray.
- ChArray will contain both the attribute and
- character bytes from the screen.
-
- In the next example the size of ChArray must
- be at least 320 bytes in size, and the first
- two rows of the screen will be placed into
- ChArray.
-
- GetScrn(1,1,160,ChArray);
-
- Notice that in the first example the address
- of ChArray[1] was passed as the parameter
- and in the second example ChArray was not
- subscripted. Both examples will work
- because the ChArray parameter is defined as
- an untyped variable.
- ..page
- ..head03RGETVIDEOMODE
- ..head04RFunction
- ..head05R_______________________________________________________
- Purpose : Returns the current video mode.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V11.ENH
-
- Format : GetVideoMode;
-
- Remarks : Returns an integer giving the current video
- mode the system is in. Use the guide on
- video modes under INITVIDEO.
-
- Example : Writeln(GetVideoMode);
-
- This example will print the current video
- mode the system is in.
- ..page
- ..head03RGOTOXYABS
- ..head04RProcedure
- Purpose : Positions the cursor at the absolute X,Y
- coordinates on the screen.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V12.ENH
-
- Format : GotoxyAbs(X,Y);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- This procedure will place the cursor at the
- X,Y coordinates of the actual screen.
- GotoxyAbs is NOT sensitive to the window
- that is currently defined by turbo.
- ..page
- ..head03RINITVIDEO
- ..head04RProcedure
- Purpose : Initialize the video mode.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V13.ENH
-
- Format : InitVideo(Mode);
-
- Remarks : To set the screen to the appropriate video
- mode use the following table as a guide.
-
- ---------------------------------------------
- | Mode | Type | Adapter |
- | 0 | Text - 40 x 25 B/W | CGA |
- | 1 | Text - 40 x 25 COLOR | CGA |
- | 2 | Text - 80 x 25 B/W | CGA |
- | 3 | Text - 80 x 25 COLOR | CGA |
- | 4 | Graphics - 320 x 200 | CGA |
- | 5 | Graphics - 320 x 200 | CGA |
- | 6 | Graphics - 640 x 200 | CGA |
- | 7 | Text - 80 x 25 | MA |
- ---------------------------------------------
-
- Example : InitVideo(3);
-
- This example will initialize the video mode
- to 80 x 25 color text.
- ..page
- ..head03RPUTSCRN
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Display character and attribute data to the
- screen.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V14.ENH
-
- Format : PutScrn(X,Y,NumChars,ChArray);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- NumChars is the number of words to
- display. Its value is the number
- of words to display.
-
- ChArray is the character array that
- contains the bytes to display on
- the screen. The minimum size of
- ChArray is NumChars*2.
-
- This procedure works much like Turbo's move
- statement but in addition checks for the
- vertical retrace of the video adapter to
- eliminate the snow effect that the move
- statement would produce on a Color/Graphics
- Adapter.
-
- PutScrn is the inverse of the GetScrn
- procedure.
- ..page
- ..head05R
- Example : PutScrn(1,1,80,ChArray[1]);
-
- In this example the size of ChArray is at
- least 160 bytes long. The first 160 bytes
- of ChArray will be placed on the screen
- starting at row one column one of the
- screen. Both the attribute and character
- bytes will be written to the screen.
-
- In the next example the size of ChArray must
- be at least 320 bytes in size, and will
- write 320 bytes to the first two rows of the
- screen.
-
- PutScrn(1,1,160,ChArray);
-
-
- Notice that in the first example the address
- of ChArray[1] was passed as the parameter
- and in the second example ChArray was not
- subscripted. Both examples will work
- because the ChArray parameter is defined as
- an untyped variable.
- ..page
- ..head03RRVSVIDEO
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Reverses current video attribute bytes.
-
- Versions : 2.00 3.00 3.01B
- ** **
-
- Filename : V15.ENH
-
- Format : RvsVideo;
-
-
- Remarks : RvsVideo exchanges the foreground and
- background attribute bytes defined by Turbo.
-
- Example : Foreground color --> white.
- Background color --> black.
-
- If the above is true for the foreground and
- background colors then after calling
- RvsVideo the foreground and background
- colors will be as follows:
-
- Foreground color --> black.
- background color --> white.
- ..page
- ..head03RSCROLLDN
- ..head04RProcedure
- Purpose : Scroll the window down N lines filling in
- blank lines at the top of the window with
- the color passed.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V16.ENH
-
- Format : ScrollDn(Lines,Color,X1,Y1,X2,Y2);
-
- Remarks : Lines is an integer in the range 0 to
- 25. If gives the number of lines
- the window is to be scrolled.
-
- Color is an integer in the range 0 to
- 255. It gives the attribute
- color to be used when filling in
- the blank lines at the top of the
- window.
-
- X1 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the left
- column of the window on the
- screen.
-
- Y1 is an integer in the range 1 to
- 25. It gives the top row of the
- window on the screen.
-
- X2 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the right
- column of the window on the
- screen.
- ..page
- ..head05R
- Y2 is an integer in the range 1 to
- 25. It gives the bottom row of
- the window on the screen.
-
- Example : ScrollDn(1,48,4,5,15,20);
-
- In this example one line will be scrolled
- down in the window with the top line (row 4)
- being filled in with a light blue blank
- line.
-
- ScrollDn(0,7,4,5,15,20);
-
- In this example the entire window will be
- cleared.
- ..page
- ..head03RSCROLLLEFT
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Scroll the window to the left N columns
- filling in blank columns at the right of the
- window with the color passed.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V17.ENH
-
- Format : ScrollLeft(Cols,Color,X1,Y1,X2,Y2);
-
- Remarks : Lines is an integer in the range 0 to
- 25. If gives the number of lines
- the window is to be scrolled.
-
- Color is an integer in the range 0 to
- 255. It gives the attribute
- color to be used when filling in
- the blank lines at the top of the
- window.
-
- X1 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the left
- column of the window on the
- screen.
-
- Y1 is an integer in the range 1 to
- 25. It gives the top row of the
- window on the screen.
-
- X2 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the right
- column of the window on the
- screen.
- ..page
- ..head05R
- Y2 is an integer in the range 1 to
- 25. It gives the bottom row of
- the window on the screen.
-
-
- Example : ScrollLeft(1,48,4,5,15,20);
-
- In this example one column will be scrolled
- left in the window with the right column
- (col 15) being filled in with a light blue
- blank column.
-
- ScrollLeft(0,7,4,5,15,20);
-
- In this example the entire window will be
- cleared.
- ..page
- ..head03RSCROLLUP
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Scroll the window up N lines filling in
- blank lines at the bottom of the window with
- the color passed.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V18.ENH
-
- Format : ScrollUp(Lines,Color,X1,Y1,X2,Y2);
-
- Remarks : Lines is an integer in the range 0 to
- 25. If gives the number of lines
- the window is to be scrolled.
-
- Color is an integer in the range 0 to
- 255. It gives the attribute
- color to be used when filling in
- the blank lines at the top of the
- window.
-
- X1 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the left
- column of the window on the
- screen.
-
- Y1 is an integer in the range 1 to
- 25. It gives the top row of the
- window on the screen.
-
- X2 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the right
- column of the window on the
- screen.
- ..page
- ..head05R
- Y2 is an integer in the range 1 to
- 25. It gives the bottom row of
- the window on the screen.
-
-
- Example : ScrollUp(1,48,4,5,15,20);
-
- In this example one line will be scrolled up
- in the window with the bottom line (row 20)
- being filled in with a light blue blank
- line.
-
- ScrollUp(0,7,4,5,15,20);
-
- In this example the entire window will be
- cleared.
- ..page
- ..head03RSCROLLRIGHT
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Scroll the window right N columns filling in
- blank columns at the left of the window with
- the color passed.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V19.ENH
-
- Format : ScrollRight(Cols,Color,X1,Y1,X2,Y2);
-
- Remarks : Lines is an integer in the range 0 to
- 25. If gives the number of lines
- the window is to be scrolled.
-
- Color is an integer in the range 0 to
- 255. It gives the attribute
- color to be used when filling in
- the blank lines at the top of the
- window.
-
- X1 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the left
- column of the window on the
- screen.
-
- Y1 is an integer in the range 1 to
- 25. It gives the top row of the
- window on the screen.
-
- X2 is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the right
- column of the window on the
- screen.
- ..page
- ..head05R
- Y2 is an integer in the range 1 to
- 25. It gives the bottom row of
- the window on the screen.
-
-
- Example : ScrollRight(1,48,4,5,15,20);
-
- In this example one column will be scrolled
- to the right in the window with the left
- column (col 4) being filled in with a light
- blue blank column.
-
- ScrollRight(0,7,4,5,15,20);
-
- In this example the entire window will be
- cleared.
- ..page
- ..head03RSETCURSORSIZE
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Set the size of the cursor.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V20.ENH
-
- Format : SetCursorSize(StartLine,EndLine);
-
- Remarks : StartLine is an integer giving the starting
- scan line to be used for the
- cursor.
-
- EndLine is an integer giving the ending
- scan line to be used for the
- cursor.
-
- StartLine and EndLine must be of Data Type
- Byte or Integer.
-
- The scan lines are numbered from 0 at the
- top (StartLine) to N at the bottom (EndLine)
- where N applies to the following video
- adapter.
-
- 7 - Color/Graphics Adapter
- 14 - Monochrome Adapter
-
- Example : The following examples are for the
- Color/Graphics Adapter:
-
- SetCursorSize(32,32);
-
- Makes the cursor invisible on the screen.
-
- SetCursorSize(0,7);
-
- Enlarges the cursor, covering the entire
- character cell.
- ..page
- ..head03RWAITMSG
- ..head04RProcedure
- Purpose : Display a message on the screen and wait
- until the specified key is pressed to
- continue.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V21.ENH
-
- Format : WaitMsg(X,Y,Msg,TCSet,TC);
-
- Remarks : X is an integer in the range 1 to
- 40 or 1 to 80, depending upon the
- screen width. It gives the
- absolute column coordinate on the
- screen.
-
- Y is an integer in the range 1 to
- 25. It gives the absolute row
- coordinate on the screen.
-
- Msg is any string expression. It
- gives the message that is to be
- displayed on the screen.
-
- TCSet is the set of key combination
- elements that are allowed to
- terminate this procedure.
- (Refer to appendix C)
-
- Ch is a two character string
- variable the returns the keyboard
- code of the terminating key.
- (Refer to appendix B)
- ..page
- ..head03
- ..head04
- ..head05
- Example : WaitMsg(1,25,'Printer error',[1,13],TC);
-
- This example will print the message 'Printer
- error' starting in column one on line 25.
- After the message is displayed the procedure
- will wait until either the ESC or ENTER key
- is pressed before continuing.
-
- Global type definitions for TCSet and TC
- are:
-
- TCSet = Set of 0..255;
- TC = String[2];
- ..page
- ..head03RWHEREXABS
- ..head04RFunction
- ..head05R_______________________________________________________
- Purpose : Returns the absolute column coordinate of
- the cursor in the physical window.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V22.ENH
-
- Format : WhereXAbs;
-
- Remarks : This function will return an integer in the
- range of 1 to 80 for 80 column text modes,
- and 1 to 40 for 40 column text modes.
-
- Example : i := WhereXAbs;
-
- The variable i will receive the absolute
- column coordinate of the cursor on the total
- screen regardless of Turbo's current window
- definition.
- ..page
- ..head03RWHEREYABS
- ..head04RFunction
- Purpose : Returns the absolute row coordinate of the
- cursor in the physical window.
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V23.ENH
-
- Format : WhereYAbs;
-
- Remarks : This function will return an integer in the
- range of 1 to 25.
-
- Example : i := WhereYAbs;
-
- The variable i will receive the absolute row
- coordinate of the cursor on the total screen
- regardless of Turbo's current window
- definition.
- ..page
- ..head03RWRITEST
- ..head04RProcedure
- ..head05R_______________________________________________________
- Purpose : Display data to the screen
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V24.ENH
-
- Format : WriteSt(St);
-
- Remarks : St is any string expression.
-
- WriteSt positions the cursor after the newly
- displayed string.
-
- WriteSt is NOT sensitive to Turbo's
- currently defined window and will wrap
- around to the next line of column one on the
- screen when necessary.
-
- WriteSt will not scroll the screen if the
- data to be displayed is to extend beyond the
- last row of the screen.
-
- Special Note : WriteSt requires a global type
- definition for a string of 255
- characters.
-
- Str255 = String[255];
- ..page
- ..head03RWRITESTLN
- ..head04RProcedure
- Purpose : Display data to the screen
-
- Versions : 2.00 3.00 3.01B
- ** ** **
-
- Filename : V25.ENH
-
- Format : WriteStln(St);
-
-
- Remarks : St is any string expression.
-
- The cursor is positioned in column one on
- the next line of the physical screen after
- the data has been displayed.
-
- WriteStln is NOT sensitive to Turbo's
- currently defined window and will wrap
- around to the next row of column one when
- necessary.
-
- WriteSt will not scroll the screen if the
- data to be displayed is to extend beyond the
- last row of the screen.
-
- Special Note : WriteStln requires a global type
- definition for a string of 255
- characters.
-
- Str255 = String[255];
- ..page
- ..pgno01
- ..head03R
- ..head04CSUMMARY OF PROCEDURES AND FUNCTIONS
- ..head05R_______________________________________________________
- ..foot48RA-##
- Screen Related Procedures and Functions
-
- Procedure
-
- BoarderColor(Color : Integer);
- ClrWin;
- ColorMsg(X,Y,Color : Integer; Message : Str255);
- FillCol(X,Y,Num : Integer; Ch : Char);
- FillColAttrib(X,Y,Num,Color : Integer);
- FillRow(X,Y,Num : Integer; Ch : Char);
- FillRowAttrib(X,Y,Num,Color : Integer);
- FrameWin(UL,UR,LL,LR,Hor,Ver : Char);
- GetScrn(X,Y,NumChars : Integer; Var ChArray);
- GotoXYAbs(X,Y : Integer);
- InitVideo(Mode : Integer);
- PutScrn(X,Y,NumChars : Integer; Var ChArray);
- RvsVideo;
- ScrollDn(Lines,Color,X1,Y1,X2,Y2 : Integer);
- ScrollLeft(Columns,Color,X1,Y1,X2,Y2 : Integer);
- ScrollUp(Lines,Color,X1,Y1,X2,Y2 : Integer);
- ScrollRight(Columns,Color,X1,Y1,X2,Y2 : Integer);
- SetCursorSize(StartLine,EndLine : Integer);
- WaitMsg( X,Y : Integer;
- St : Str255;
- TESet : TCSet;
- Var TC : Str2);
- WriteSt(St : Str255);
- WriteStLn(St : Str255);
-
- Function
-
- GetCursorSize : Integer;
- GetVideoMode : Integer;
- WhereXAbs : Integer;
- WhereYAbs : Integer;
- ..page
- ..pgno01
- ..head03R
- ..head04CKEYBOARD CODES
- ..head05R_______________________________________________________
- ..foot48RB-##
- This appendix lists the keyboard codes for all the key
- combinations for the entire keyboard, as they are seen
- by the procedures READKBD and INKEY. All keys are
- turned into either a one or two character code.
-
- To understand the table below assume St is a two
- character string. St[0] is the length of the character
- code returned. If the length of St is one then a normal
- ASCII character was pressed, otherwise an extended code
- is generated. Notice that some of the keyboard codes do
- produce a two character code with the first character
- being null.
-
- If the length of St is one then a normal ASCII character
- code was read from the keyboard. This basically covers
- the ASCII values 32-127.
-
- If the length of St is two then one of the keys, that
- are usually used for cursor control, was read from the
- keyboard. If this is the case then St[1] will be either
- a 0 or 27 depending on the key combination read from the
- keyboard.
-
- Use of the case statement works well with this type of
- setup to determine which keyboard keys were read from
- the keyboard.
-
- Case Ch[1] Of
- #00 : Writeln('Control code used.');
- #27 : Writeln('Other code used.');
- #32..#127 : Writeln('Print Char code used.');
- End;
- ..page
- ..head04R
- ..head05R
- Key Key
- Pressed CH[0] CH[1] CH[2] Pressed CH[0] CH[1] CH[2]
- --------- ----- ----- ----- --------- ----- ----- -----
- (space) 1 32 0 E 1 69 0
- ! 1 33 0 F 1 70 0
- " 1 34 0 G 1 71 0
- # 1 35 0 H 1 72 0
- $ 1 36 0 I 1 73 0
- % 1 37 0 J 1 74 0
- & 1 38 0 K 1 75 0
- ' 1 39 0 L 1 76 0
- ( 1 40 0 M 1 77 0
- ) 1 41 0 N 1 78 0
- * 1 42 0 O 1 79 0
- + 1 43 0 P 1 80 0
- , 1 44 0 Q 1 81 0
- - 1 45 0 R 1 82 0
- . 1 46 0 S 1 83 0
- / 1 47 0 T 1 84 0
- 0 1 48 0 U 1 85 0
- 1 1 49 0 V 1 86 0
- 2 1 50 0 W 1 87 0
- 3 1 51 0 X 1 88 0
- 4 1 52 0 Y 1 89 0
- 5 1 53 0 Z 1 90 0
- 6 1 54 0 [ 1 91 0
- 7 1 55 0 \ 1 92 0
- 8 1 56 0 ] 1 93 0
- 9 1 57 0 ^ 1 94 0
- : 1 58 0 _ 1 95 0
- ; 1 59 0 ` 1 96 0
- < 1 60 0 a 1 97 0
- = 1 61 0 b 1 98 0
- > 1 62 0 c 1 99 0
- ? 1 63 0 d 1 100 0
- @ 1 64 0 e 1 101 0
- A 1 65 0 f 1 102 0
- B 1 66 0 g 1 103 0
- C 1 67 0 h 1 104 0
- D 1 68 0 i 1 105 0
- ..page
- Key Key
- Pressed Ch[0] Ch[1] Ch[2] Pressed Ch[0] Ch[1] Ch[2]
- --------- ----- ----- ----- --------- ----- ----- -----
- j 1 106 0 Alt-I 2 27 23
- k 1 107 0 Alt-O 2 27 24
- l 1 108 0 Alt-P 2 27 25
- m 1 109 0 Alt-A 2 27 30
- n 1 110 0 Alt-S 2 27 31
- o 1 111 0 Alt-D 2 27 32
- p 1 112 0 Alt-F 2 27 33
- q 1 113 0 Alt-G 2 27 34
- r 1 114 0 Alt-H 2 27 35
- s 1 115 0 Alt-J 2 27 36
- t 1 116 0 Alt-K 2 27 37
- u 1 117 0 Alt-L 2 27 38
- v 1 118 0 Alt-Z 2 27 44
- w 1 119 0 Alt-X 2 27 45
- x 1 120 0 Alt-C 2 27 46
- y 1 121 0 Alt-V 2 27 47
- z 1 122 0 Alt-B 2 27 48
- { 1 123 0 Alt-N 2 27 49
- | 1 124 0 Alt-M 2 27 50
- } 1 125 0 F1 2 27 59
- ~ 1 126 0 F2 2 27 60
- Ctrl-Break 2 27 0 F3 2 27 61
- Esc 2 27 1 F4 2 27 62
- Ctrl-2 2 27 3 F5 2 27 63
- BackSp 2 27 8 F6 2 27 64
- Tab 2 27 9 F7 2 27 65
- Ctrl-Enter 2 27 10 F8 2 27 66
- Enter 2 27 13 F9 2 27 67
- Ctrl-BS 2 27 14 F10 2 27 68
- Shft-Tab 2 27 15 Home 2 27 71
- Alt-Q 2 27 16 UArr 2 27 72
- Alt-W 2 27 17 PgUp 2 27 73
- Alt-E 2 27 18 LArr 2 27 75
- Alt-R 2 27 19 RArr 2 27 77
- Alt-T 2 27 20 End 2 27 79
- Alt-Y 2 27 21 DArr 2 27 80
- Alt-U 2 27 22 PgDn 2 27 81
- ..page
- Key Key
- Pressed Ch[0] Ch[1] Ch[2] Pressed Ch[0] Ch[1] Ch[2]
- --------- ----- ----- ----- --------- ----- ----- -----
- Ins 2 27 82 Alt-1 2 27 120
- Del 2 27 83 Alt-2 2 27 121
- Shft-F1 2 27 84 Alt-3 2 27 122
- Shft-F2 2 27 85 Alt-4 2 27 123
- Shft-F3 2 27 86 Alt-5 2 27 124
- Shft-F4 2 27 87 Alt-6 2 27 125
- Shft-F5 2 27 88 Alt-7 2 27 126
- Shft-F6 2 27 89 Alt-8 2 27 127
- Shft-F7 2 27 90 Alt-9 2 27 128
- Shft-F8 2 27 91 Alt-0 2 27 129
- Shft-F9 2 27 92 Alt-- 2 27 130
- Shft-F10 2 27 93 Alt-= 2 27 131
- Ctrl-F1 2 27 94 Ctrl-PgUp 2 27 132
- Ctrl-F2 2 27 95 Ctrl-A 2 0 1
- Ctrl-F3 2 27 96 Ctrl-B 2 0 2
- Ctrl-F4 2 27 97 Ctrl-C 2 0 3
- Ctrl-F5 2 27 98 Ctrl-D 2 0 4
- Ctrl-F6 2 27 99 Ctrl-E 2 0 5
- Ctrl-F7 2 27 100 Ctrl-F 2 0 6
- Ctrl-F8 2 27 101 Ctrl-G 2 0 7
- Ctrl-F9 2 27 102 Ctrl-H 2 0 8
- Ctrl-F10 2 27 103 Ctrl-I 2 0 9
- Alt-F1 2 27 104 Ctrl-J 2 0 10
- Alt-F2 2 27 105 Ctrl-K 2 0 11
- Alt-F3 2 27 106 Ctrl-L 2 0 12
- Alt-F4 2 27 107 Ctrl-M 2 0 13
- Alt-F5 2 27 108 Ctrl-N 2 0 14
- Alt-F6 2 27 109 Ctrl-O 2 0 15
- Alt-F7 2 27 110 Ctrl-P 2 0 16
- Alt-F8 2 27 111 Ctrl-Q 2 0 17
- Alt-F9 2 27 112 Ctrl-R 2 0 18
- Alt-F10 2 27 113 Ctrl-S 2 0 19
- Ctrl-LArr 2 27 115 Ctrl-T 2 0 20
- Ctrl-RArr 2 27 116 Ctrl-U 2 0 21
- Ctrl-End 2 27 117 Ctrl-V 2 0 22
- Ctrl-PgDn 2 27 118 Ctrl-W 2 0 23
- Ctrl-Home 2 27 119 Ctrl-X 2 0 24
- ..page
- Key
- Pressed Ch[0] Ch[1] Ch[2]
- --------- ----- ----- -----
- Ctrl-Y 2 0 25
- Ctrl-Z 2 0 26
- Ctrl-[ 2 0 27
- Ctrl-\ 2 0 28
- Ctrl-] 2 0 29
- Ctrl-6 2 0 30
- Ctrl-- 2 0 31
- ..page
- ..pgno01
- ..head04CKEYBOARD ELEMENT CODES
- ..head05R_______________________________________________________
- ..foot48RC-##
- This appendix lists the element codes for all the key
- combinations for the entire keyboard, as they are seen
- by the procedures WAITMSG and INPUTST. All keys are
- turned into a one byte element code number.
-
- The Global type definition required for this table is:
-
- TermChSet = Set of 0..255;
-
- The unit or element number in the set defines which key
- or key combination was pressed. This table was created
- for use as the Terminating Character Set with the
- procedures WAITMSG and INPUTST
-
- For example if you were to use the procedure WAITMSG and
- you wanted either the Esc or Enter keys to terminate the
- procedure the following call to WAITMSG could be used:
-
- WaitMsg(1,1,'Message here',[1,13],TC);
-
- ** The element number for the ESC key is 1.
- ** The element number for the ENTER key is 13.
-
- ** Use the value in the column Element Number to
- ** determine the element number of the terminating keys.
-
- This procedure would then display the message and would
- wait until either the ESC or ENTER key was pressed
- before continuing.
- ..page
- ..head04R
- ..head05R
- Element Element
- Key code AH AL Number Key code AH AL Number
- --------- --- --- ------- --------- --- --- -------
- Ctrl-Break 0 0 0 Alt-K 37 0 37
- Esc 1 27 1 Alt-L 38 0 38
- 2 39
- Ctrl-2 3 0 3 40
- 4 41
- 5 42
- 6 43
- 7 Alt-Z 44 0 44
- BackSp 14 8 8 Alt-X 45 0 45
- Tab 15 9 9 Alt-C 46 0 46
- Ctrl-Enter 28 10 10 Alt-V 47 0 47
- 11 Alt-B 48 0 48
- 12 Alt-N 49 0 49
- Enter 28 13 13 Alt-M 50 0 50
- Ctrl-BS 14 127 14 51
- Shft-Tab 15 0 15 52
- Alt-Q 16 0 16 53
- Alt-W 17 0 17 54
- Alt-E 18 0 18 55
- Alt-R 19 0 19 56
- Alt-T 20 0 20 57
- Alt-Y 21 0 21 58
- Alt-U 22 0 22 F1 59 0 59
- Alt-I 23 0 23 F2 60 0 60
- Alt-O 24 0 24 F3 61 0 61
- Alt-P 25 0 25 F4 62 0 62
- 26 F5 63 0 63
- 27 F6 64 0 64
- 28 F7 65 0 65
- 29 F8 66 0 66
- Alt-A 30 0 30 F9 67 0 67
- Alt-S 31 0 31 F10 68 0 68
- Alt-D 32 0 32 69
- Alt-F 33 0 33 70
- Alt-G 34 0 34 Home 71 0 71
- Alt-H 35 0 35 UArr 72 0 72
- Alt-J 36 0 36 PgUp 73 0 73
- ..page
- Element Element
- Key code AH AL Number Key code AH AL Number
- --------- --- --- ------- --------- --- --- -------
- 74 Alt-F8 111 0 111
- LArr 75 0 75 Alt-F9 112 0 112
- 76 Alt-F10 113 0 113
- RArr 77 0 77 114
- 78 Ctrl-LArr 115 0 115
- End 79 0 79 Ctrl-RArr 116 0 116
- DArr 80 0 80 Ctrl-End 117 0 117
- PgDn 81 0 81 Ctrl-PgDn 118 0 118
- Ins 82 0 82 Ctrl-Home 119 0 119
- Del 83 0 83 Alt-1 120 0 120
- Shft-F1 84 0 84 Alt-2 121 0 121
- Shft-F2 85 0 85 Alt-3 122 0 122
- Shft-F3 86 0 86 Alt-4 123 0 123
- Shft-F4 87 0 87 Alt-5 124 0 124
- Shft-F5 88 0 88 Alt-6 125 0 125
- Shft-F6 89 0 89 Alt-7 126 0 126
- Shft-F7 90 0 90 Alt-8 127 0 127
- Shft-F8 91 0 91 Alt-9 128 0 128
- Shft-F9 92 0 92 Alt-0 129 0 129
- Shft-F10 93 0 93 Alt-- 130 0 130
- Ctrl-F1 94 0 94 Alt-= 131 0 131
- Ctrl-F2 95 0 95 Ctrl-PgUp 132 0 132
- Ctrl-F3 96 0 96
- Ctrl-F4 97 0 97
- Ctrl-F5 98 0 98
- Ctrl-F6 99 0 99
- Ctrl-F7 100 0 100
- Ctrl-F8 101 0 101
- Ctrl-F9 102 0 102
- Ctrl-F10 103 0 103
- Alt-F1 104 0 104
- Alt-F2 105 0 105
- Alt-F3 106 0 106
- Alt-F4 107 0 107
- Alt-F5 108 0 108
- Alt-F6 109 0 109
- Alt-F7 110 0 110
- ..page
- AL+ Element AL+ Element
- Key code 132 AL Number Key code 132 AL Number
- --------- --- --- ------- --------- --- --- -------
- Ctrl-A 133 1 133 & 170 38 170
- Ctrl-B 134 2 134 ' 171 39 171
- Ctrl-C 135 3 135 ( 172 40 172
- Ctrl-D 136 4 136 ) 173 41 173
- Ctrl-E 137 5 137 * 174 42 174
- Ctrl-F 138 6 138 + 175 43 175
- Ctrl-G 139 7 139 , 176 44 176
- Ctrl-H 140 8 140 - 177 45 177
- Ctrl-I 141 9 141 . 178 46 178
- Ctrl-J 142 10 142 / 179 47 179
- Ctrl-K 143 11 143 0 180 48 180
- Ctrl-L 144 12 144 1 181 49 181
- Ctrl-M 145 13 145 2 182 50 182
- Ctrl-N 146 14 146 3 183 51 183
- Ctrl-O 147 15 147 4 184 52 184
- Ctrl-P 148 16 148 5 185 53 185
- Ctrl-Q 149 17 149 6 186 54 186
- Ctrl-R 150 18 150 7 187 55 187
- Ctrl-S 151 19 151 8 188 56 188
- Ctrl-T 152 20 152 9 189 57 189
- Ctrl-U 153 21 153 : 190 58 190
- Ctrl-V 154 22 154 ; 191 59 191
- Ctrl-W 155 23 155 < 192 60 192
- Ctrl-X 156 24 156 = 193 61 193
- Ctrl-Y 157 25 157 > 194 62 194
- Ctrl-Z 158 26 158 ? 195 63 195
- Ctrl-[ 159 27 159 @ 196 64 196
- Ctrl-\ 160 28 160 A 197 65 197
- Ctrl-] 161 29 161 B 198 66 198
- Ctrl-6 162 30 162 C 199 67 199
- Ctrl-- 163 31 163 D 200 68 200
- (space) 164 32 164 E 201 69 201
- ! 165 33 165 F 202 70 202
- " 166 34 166 G 203 71 203
- # 167 35 167 H 204 72 204
- $ 168 36 168 I 205 73 205
- % 169 37 169 J 206 74 206
- ..page
- AL+ Element AL+ Element
- Key code 132 AL Number Key code 132 AL Number
- --------- --- --- ------- --------- --- --- -------
- K 207 75 207 p 244 112 244
- L 208 76 208 q 245 113 245
- M 209 77 209 r 246 114 246
- N 210 78 210 s 247 115 247
- O 211 79 211 t 248 116 248
- P 212 80 212 u 249 117 249
- Q 213 81 213 v 250 118 250
- R 214 82 214 w 251 119 251
- S 215 83 215 x 252 120 252
- T 216 84 216 y 253 121 253
- U 217 85 217 z 254 122 254
- V 218 86 218 { 255 123 255
- W 219 87 219
- X 220 88 220
- Y 221 89 221
- Z 222 90 222
- [ 223 91 223
- \ 224 92 224
- ] 225 93 225
- ^ 226 94 226
- _ 227 95 227
- ` 228 96 228
- a 229 97 229
- b 230 98 230
- c 231 99 231
- d 232 100 232
- e 233 101 233
- f 234 102 234
- g 235 103 235
- h 236 104 236
- i 237 105 237
- j 238 106 238
- k 239 107 239
- l 240 108 240
- m 241 109 241
- n 242 110 242
- o 243 111 243
- ..page
- ..pgno01
- ..head04CKEYBOARD RETURN CODES
- ..head05R_______________________________________________________
- ..foot48RD-##
- This appendix lists the keyboard codes that are
- returned by the computer system when a key or key
- combination is pressed.
-
- The column headings AH and AL refer to the hi and lo
- registers within the AX register.
-
- These are the actual values returned by accesing the
- BIOS interrupt 16H in assembly language.
-
-
- Key Key
- Pressed AH AL Pressed AH AL
- --------- ----- ----- --------- ----- -----
- (space) 57 32 : 39 58
- ! 2 33 ; 39 59
- " 40 34 < 51 60
- # 4 35 = 13 61
- $ 5 36 > 52 62
- % 6 37 ? 53 63
- & 8 38 @ 3 64
- ' 40 39 A 30 65
- ( 10 40 B 48 66
- ) 11 41 C 46 67
- * 9 42 D 32 68
- + 13 43 E 18 69
- , 51 44 F 33 70
- - 12 45 G 34 71
- . 52 46 H 35 72
- / 53 47 I 23 73
- 0 11 48 J 36 74
- 1 2 49 K 37 75
- 2 3 50 L 38 76
- 3 4 51 M 50 77
- 4 5 52 N 49 78
- 5 6 53 O 24 79
- 6 7 54 P 25 80
- 7 8 55 Q 16 81
- 8 9 56 R 19 82
- 9 10 57 S 31 83
- ..page
- ..head03
- ..head04
- ..head05
- Key Key
- Pressed AH AL Pressed AH AL
- --------- ----- ----- --------- ----- -----
- T 20 84 z 44 122
- U 22 85 { 26 123
- V 47 86 | 43 124
- W 17 87 } 27 125
- X 48 88 ~ 41 126
- Y 21 89 Ctrl-2 3 0
- Z 44 90 BackSp 14 8
- [ 26 91 Tab 15 9
- \ 43 92 Ctrl-Enter 28 10
- ] 27 93 Enter 28 13
- ^ 7 94 Shft-Tab 15 0
- _ 12 95 Alt-Q 16 0
- ` 41 96 Alt-W 17 0
- a 30 97 Alt-E 18 0
- b 48 98 Alt-R 19 0
- c 46 99 Alt-T 20 0
- d 32 100 Alt-Y 21 0
- e 18 101 Alt-U 22 0
- f 33 102 Alt-I 23 0
- g 34 103 Alt-O 24 0
- h 35 104 Alt-P 25 0
- i 23 105 Esc 1 27
- j 36 106 Alt-A 30 0
- k 37 107 Alt-S 31 0
- l 38 108 Alt-D 32 0
- m 50 109 Alt-F 33 0
- n 49 110 Alt-G 34 0
- o 24 111 Alt-H 35 0
- p 25 112 Alt-J 36 0
- q 16 113 Alt-K 37 0
- r 19 114 Alt-L 38 0
- s 31 115 Alt-Z 44 0
- t 20 116 Alt-X 45 0
- u 22 117 Alt-C 46 0
- v 47 118 Alt-V 47 0
- w 17 119 Alt-B 48 0
- x 48 120 Alt-N 49 0
- y 21 121 Alt-M 50 0
- ..page
- Key Key
- Pressed AH AL Pressed AH AL
- --------- ----- ----- --------- ----- -----
- F1 59 0 Ctrl-F8 101 0
- F2 60 0 Ctrl-F9 102 0
- F3 61 0 Ctrl-F10 103 0
- F4 62 0 Alt-F1 104 0
- F5 63 0 Alt-F2 105 0
- F6 64 0 Alt-F3 106 0
- F7 65 0 Alt-F4 107 0
- F8 66 0 Alt-F5 108 0
- F9 67 0 Alt-F6 109 0
- F10 68 0 Alt-F7 110 0
- Home 71 0 Alt-F8 111 0
- UArr 72 0 Alt-F9 112 0
- PgUp 73 0 Alt-F10 113 0
- LArr 75 0 Ctrl-LArr 115 0
- RArr 77 0 Ctrl-RArr 116 0
- End 79 0 Ctrl-End 117 0
- DArr 80 0 Ctrl-PgDn 118 0
- PgDn 81 0 Ctrl-Home 119 0
- Ins 82 0 Alt-1 120 0
- Del 83 0 Alt-2 121 0
- Shft-F1 84 0 Alt-3 122 0
- Shft-F2 85 0 Alt-4 123 0
- Shft-F3 86 0 Alt-5 124 0
- Shft-F4 87 0 Alt-6 125 0
- Shft-F5 88 0 Alt-7 126 0
- Shft-F6 89 0 Alt-8 127 0
- Shft-F7 90 0 Alt-9 128 0
- Shft-F8 91 0 Alt-0 129 0
- Shft-F9 92 0 Alt-- 130 0
- Shft-F10 93 0 Alt-= 131 0
- Ctrl-F1 94 0 Ctrl-PgUp 132 0
- Ctrl-F2 95 0 Ctrl-A 30 1
- Ctrl-F3 96 0 Ctrl-B 48 2
- Ctrl-F4 97 0 Ctrl-C 46 3
- Ctrl-F5 98 0 Ctrl-D 32 4
- Ctrl-F6 99 0 Ctrl-E 18 5
- Ctrl-F7 100 0 Ctrl-F 33 6
- ..page
- Key
- Pressed AH AL
- --------- ----- -----
- Ctrl-G 34 7
- Ctrl-H 35 8
- Ctrl-I 23 9
- Ctrl-J 36 10
- Ctrl-K 37 11
- Ctrl-L 38 12
- Ctrl-M 50 13
- Ctrl-N 49 14
- Ctrl-O 24 15
- Ctrl-P 25 16
- Ctrl-Q 16 17
- Ctrl-R 19 18
- Ctrl-S 31 19
- Ctrl-T 20 20
- Ctrl-U 22 21
- Ctrl-V 47 22
- Ctrl-W 17 23
- Ctrl-X 48 24
- Ctrl-Y 21 25
- Ctrl-Z 44 26
- Ctrl-[ 26 27
- Ctrl-\ 43 28
- Ctrl-] 27 29
- Ctrl-6 7 30
- Ctrl-- 12 31
- Ctrl-BS 14 127
- Ctrl-Break 0 0
- ..page
- ..pgno01
- ..head03CKEYBOARD SCAN CODES
- ..head04R_______________________________________________________
- ..foot48RE-##
- FUNCTION KEYS
-
- Scan | Scan | Scan | Scan |
- Key Code | Key Code | Key Code | Key Code |
- --- ---- | --- ---- | --- ---- | --- ---- |
- F1 59 | F4 62 | F7 65 | F10 68 |
- F2 60 | F5 63 | F8 66 | |
- F3 61 | F6 64 | F9 67 | |
-
-
- NUMERIC KEYPAD
-
- Scan | Scan | Scan | Scan |
- Key Code | Key Code | Key Code | Key Code |
- --- ---- | --- ---- | --- ---- | --- ---- |
- 7 71 | 4 76 | 1 79 | . 83 |
- 8 72 | 5 76 | 2 80 | |
- 9 73 | 6 77 | 3 81 | |
- - 74 | + 78 | 0 82 | |
-
-
- CONTROL KEYS
-
- Scan | Scan
- Key Code | Key Code
- --- ---- | --- ----
- Esc 1 | Ctrl 29
- Backspace 14 | Left Shft 42
- Num Lock 69 | Right Shft 54
- Scroll Lock 70 | Alt 56
- Tab 15 | Caps Lock 58
- Enter 28 |
- ..page
- ..head03R
- ..head04R
- LETTER, NUMBER, AND PUNCTUATION KEYS
-
- Scan | Scan | Scan | Scan
- Key Code | Key Code | Key Code | Key Code
- --- ---- | --- ---- | --- ---- | --- ----
- 1 2 | W 17 | D 32 | C 46
- 2 3 | E 18 | F 33 | V 47
- 3 4 | R 19 | G 34 | B 48
- 4 5 | T 20 | H 35 | N 49
- 5 6 | Y 21 | J 36 | M 50
- 6 7 | U 22 | K 37 | , 51
- 7 8 | I 23 | L 38 | . 52
- 8 9 | O 24 | ; 39 | / 53
- 9 10 | P 25 | ' 40 | (PrtSc) 55
- 0 11 | [ 26 | ` 41 | (Space) 57
- - 12 | ] 27 | \ 43 |
- = 13 | A 30 | Z 44 |
- Q 16 | S 31 | X 45 |
- ..page
- ..pgno01
- ..foot48RF-##
- =============== User-Supported Software ===============
-
-
- If you have received these routines from another user
- and find them to be of value, your contribution
- will be greatly appreciated.
-
- ( $25.00 suggested ).
-
-
- ------------------------------
-
- Kevin W. Dahl
- 1711 4th St N
- Wahpeton, ND 58075
-
- ------------------------------
-
- Regardless of whether you make a contribution, you are
- encouraged to copy and distribute these routines.
-
- =======================================================
-
- The user-supported concept:
-
- Anyone may request a copy of a user-supported program
- by sending a blank, formatted disk to the author of the
- program. An addressed, postage-paid return mailer must
- accompany the disk (no exceptions, please).
-
- A copy of the program, with documentation, will be sent
- by return mail. The program will carry a notice
- suggesting a contribution to the program's author.
- Making a contribution is completely voluntary on the
- part of the user.
-
- Regardless of whether a contribution is made, the user
- is encouraged to copy and share the program with
- others. Payment for use is discretionary on the part of
- each subsequent user.
- ..page
- ..pgno01
- ..foot48RG-##
- FUTURE ENHANCEMENTS AND UPDATE POLICY:
-
- These routines are being distributed under the user-
- supported concept and will only be improved if you make
- suggestions for improvements and enhancements you would
- like to see.
-
- Provided users support these routines, the following
- will apply. Any time there are revisions or updates to
- the routines all Registered Owners will be notified.
- The user may then obtain a copy of the new disk for a
- $10.00 fee. The fee is for covering the cost of the
- disk, postage and handling. If you are NOT a
- Registered owner you will be charged a fee of $25.00
- and your name will be added to the list of registered
- owners.
-
- I would also like to mention that I have spent a
- considerable amount of time researching and developing
- these routines, I hope to benefit from User
- contributions. If you do not contribute, the public
- domain programs and routines will diminish. Help all
- public domain contributors by sending your contribution
- for the programs and routines you find useful.
-
- If users find these routines of use and send their
- contributions to me, I will add more procedures and
- functions to this library. If I do not hear from you I
- will assume that you find these routines to be useless,
- and will discontinue my efforts in this area.