home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-02-07 | 208.5 KB | 11,504 lines |
-
-
-
-
-
-
- Fastgraph (tm)
- Reference Manual
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Ted Gruber Software
- PO Box 13408
- Las Vegas, NV 89112
-
- (702) 735-1980
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Copyright (c) 1991,1992 by Ted Gruber Software.
-
- All rights reserved. No part of this publication may be reproduced, stored
- in a retrieval system, or transmitted by any means, electronic, mechanical,
- photocopying, recording, or otherwise, without express written permission
- from Ted Gruber Software. The software described in this publication is
- furnished under a license agreement and may be used or copied only in
- accordance with the terms of that agreement.
-
- This publication and its associated software are sold without warranties,
- either expressed or implied, regarding their merchantability or fitness for
- any particular application or purpose. The information in this publication
- is subject to change without notice and does not represent a commitment on
- the part of Ted Gruber Software. In no event shall Ted Gruber Software be
- liable for any loss of profit or any other commercial damage, including but
- not limited to special, incidental, consequential, or other damages resulting
- from the use of or the inability to use this product, even if Ted Gruber
- Software has been notified of the possibility of such damages.
-
-
- Second Printing, January 1992
-
- Fastgraph version 2.10
- Fastgraph/Light version 1.10
-
-
-
-
-
-
- Fastgraph and Fastgraph/Light are trademarks of Ted Gruber Software.
- Hercules is a trademark of Hercules Computer Technology.
- IBM, IBM PC, IBM PC/XT, IBM PC/AT, PS/2, PCjr, and PC-DOS are registered
- trademarks of International Business Machines, Inc.
- Intel is a registered trademark of Intel Corporation.
- Microsoft and MS-DOS are registered trademarks of Microsoft Corporation.
- QuickBASIC is a trademark of Microsoft Corporation.
- Tandy is a registered trademark of Tandy Corporation.
- Turbo Pascal is a registered trademark of Borland International, Inc.
-
-
-
- All other brand and product names mentioned in this publication are
- trademarks or registered trademarks of their respective holders.
-
- T a b l e o f C o n t e n t s
-
- Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
-
- Fastgraph Routines by Category . . . . . . . . . . . . . . . . . . . . . 1
-
- Alphabetical List of Fastgraph Routines . . . . . . . . . . . . . . . . . 2
- fg_allocate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- fg_alloccms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
- fg_allocems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
- fg_allocxms . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
- fg_automode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
- fg_bestmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
- fg_box . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
- fg_boxdepth . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
- fg_button . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
- fg_capslock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
- fg_chgattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
- fg_chgtext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
- fg_circle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
- fg_circlew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
- fg_clipmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
- fg_clpimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
- fg_clprect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
- fg_clprectw . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
- fg_copypage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
- fg_cursor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
- fg_dash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
- fg_dashrel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
- fg_dashrw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
- fg_dashw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
- fg_defcolor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
- fg_dispfile . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
- fg_display . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
- fg_displayp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
- fg_disppcx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
- fg_draw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
- fg_drawmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
- fg_drawmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
- fg_drawrel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
- fg_drawrw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
- fg_draww . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
- fg_drect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
- fg_drectw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
- fg_drwimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
- fg_egacheck . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
- fg_ellipse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
- fg_ellipsew . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
- fg_erase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
- fg_fadein . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
- fg_fadeout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
- fg_flipmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
- fg_flpimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
- fg_freepage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
- fg_getaddr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
- fg_getattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
-
- iii
- fg_getchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
- fg_getclock . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
- fg_getcolor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
- fg_getdacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
- fg_gethpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
- fg_getimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
- fg_getindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
- fg_getkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
- fg_getlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
- fg_getmap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
- fg_getmaxx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
- fg_getmaxy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
- fg_getmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
- fg_getpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
- fg_getpixel . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
- fg_getrgb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
- fg_getvpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
- fg_getworld . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
- fg_getxjoy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
- fg_getxpos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
- fg_getyjoy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
- fg_getypos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
- fg_hush . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
- fg_hushnext . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
- fg_imagesiz . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
- fg_initems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
- fg_initjoy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
- fg_initw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
- fg_initxms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
- fg_intjoy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
- fg_intkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
- fg_locate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
- fg_makepcx . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
- fg_maprgb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
- fg_measure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
- fg_memavail . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
- fg_mousebut . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
- fg_mousecur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
- fg_mouseini . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
- fg_mouselim . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
- fg_mousemov . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
- fg_mousepos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
- fg_mouseptr . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
- fg_mousespd . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
- fg_mousevis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
- fg_move . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
- fg_moverel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
- fg_moverw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
- fg_movew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
- fg_music . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
- fg_musicb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
- fg_numlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
- fg_paint . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
- fg_paintw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
- fg_palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
- fg_palettes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
- fg_pan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
-
- iv
- fg_panw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
- fg_pattern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
- fg_playing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
- fg_point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
- fg_pointw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
- fg_polygon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
- fg_polygonw . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
- fg_quiet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
- fg_rect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
- fg_rectw . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
- fg_reset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
- fg_resize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
- fg_restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
- fg_restorew . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
- fg_resume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
- fg_revimage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
- fg_revmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
- fg_save . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
- fg_savew . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
- fg_scrlock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
- fg_scroll . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
- fg_setangle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
- fg_setattr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
- fg_setcaps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
- fg_setclip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
- fg_setclipw . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
- fg_setcolor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
- fg_setdacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
- fg_setfunc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
- fg_sethpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
- fg_setlines . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
- fg_setmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
- fg_setnum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
- fg_setpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
- fg_setratio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
- fg_setrgb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
- fg_setsize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
- fg_setsizew . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
- fg_setvpage . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
- fg_setworld . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
- fg_sound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
- fg_sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
- fg_stall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
- fg_suspend . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
- fg_swchar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
- fg_swlength . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
- fg_swtext . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
- fg_tcmask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
- fg_tcxfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
- fg_testmode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
- fg_text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
- fg_transfer . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
- fg_version . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
- fg_voice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
- fg_voices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
- fg_waitfor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
- fg_waitkey . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
-
- v
- fg_where . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
- fg_xalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
- fg_xconvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
- fg_xscreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
- fg_xworld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
- fg_yalpha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
- fg_yconvert . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
- fg_yscreen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
- fg_yworld . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- vi
- Introduction
-
- The Fastgraph Reference Manual is a companion publication to the
- Fastgraph User's Guide. Whereas the latter publication is essentially a
- detailed tutorial about Fastgraph, the Fastgraph Reference Manual is intended
- as a reference for programmers familiar with the product.
-
- This manual has two major parts. The first part lists the Fastgraph
- routines by category; each category corresponds to a chapter in the Fastgraph
- User's Guide. The second part, which occupies the larger portion of this
- manual, gives descriptions of each Fastgraph routine in alphabetical order.
-
-
- Fastgraph Routines by Category
-
- This section lists the Fastgraph routines by category. These categories
- parallel the chapters in the Fastgraph User's Guide. The lists in this
- section are provided as a general overview of Fastgraph's capabilities. You
- can find detailed information about each Fastgraph routine in the next
- section of this manual, and of course in the Fastgraph User's Guide.
-
- Video Initialization Routines: fg_automode, fg_bestmode, fg_cursor,
- fg_egacheck, fg_getlines, fg_getmode, fg_reset, fg_setlines, fg_setmode,
- fg_testmode.
-
- Coordinate Routines: fg_getmaxx, fg_getmaxy, fg_getworld, fg_initw,
- fg_setworld, fg_xalpha, fg_xconvert, fg_xscreen, fg_xworld, fg_yalpha,
- fg_yconvert, fg_yscreen, fg_yworld.
-
- Color-Related Routines: fg_defcolor, fg_getcolor, fg_getdacs, fg_getindex,
- fg_getrgb, fg_maprgb, fg_palette, fg_palettes, fg_setattr, fg_setcolor,
- fg_setdacs, fg_setrgb.
-
- Fundamental Graphics Routines: fg_box, fg_boxdepth, fg_circle, fg_circlew,
- fg_clprect, fg_clprectw, fg_dash, fg_dashrel, fg_dashrw, fg_dashw, fg_draw,
- fg_drawrel, fg_drawrw, fg_draww, fg_drect, fg_drectw, fg_ellipse,
- fg_ellipsew, fg_erase, fg_getpixel, fg_getxpos, fg_getypos, fg_move,
- fg_moverel, fg_moverw, fg_movew, fg_paint, fg_paintw, fg_point, fg_pointw,
- fg_polygon, fg_polygonw, fg_rect, fg_rectw, fg_setclip, fg_setclipw.
-
- Character Display Routines: fg_chgattr, fg_chgtext, fg_getattr, fg_getchar,
- fg_locate, fg_setangle, fg_setattr, fg_setcolor, fg_setratio, fg_setsize,
- fg_setsizew, fg_swchar, fg_swlength, fg_swtext, fg_text, fg_where, fg_xalpha,
- fg_xconvert, fg_yalpha, fg_yconvert.
-
- Video Page Management Routines: fg_allocate, fg_alloccms, fg_allocems,
- fg_allocxms, fg_copypage, fg_freepage, fg_getaddr, fg_gethpage, fg_getpage,
- fg_getvpage, fg_initems, fg_initxms, fg_resize, fg_sethpage, fg_setpage,
- fg_setvpage.
-
- Image Management Routines: fg_clipmask, fg_clpimage, fg_copypage,
- fg_dispfile, fg_display, fg_displayp, fg_disppcx, fg_drawmap, fg_drawmask,
- fg_drwimage, fg_flipmask, fg_flpimage, fg_getimage, fg_getmap, fg_imagesiz,
- fg_makepcx, fg_pattern, fg_restore, fg_restorew, fg_revimage, fg_revmask,
- fg_save, fg_savew, fg_tcmask, fg_tcxfer, fg_transfer.
-
-
-
- 1
- Special Effects Routines: fg_fadein, fg_fadeout, fg_pan, fg_panw, fg_resize,
- fg_scroll.
-
- Input Routines: fg_button, fg_capslock, fg_getkey, fg_getxjoy, fg_getyjoy,
- fg_initjoy, fg_intjoy, fg_intkey, fg_mousebut, fg_mousecur, fg_mouseini,
- fg_mouselim, fg_mousemov, fg_mousepos, fg_mouseptr, fg_mousespd, fg_mousevis,
- fg_numlock, fg_scrlock, fg_setcaps, fg_setnum, fg_waitkey.
-
- Sound Routines: fg_hush, fg_hushnext, fg_music, fg_musicb, fg_playing,
- fg_quiet, fg_resume, fg_sound, fg_sounds, fg_suspend, fg_voice, fg_voices.
-
- Timing Routines: fg_getclock, fg_measure, fg_stall, fg_waitfor.
-
- Miscellaneous Routines: fg_memavail, fg_setfunc, fg_version.
-
-
- Alphabetical List of Fastgraph Routines
-
- This section presents a detailed description of each Fastgraph routine.
- Once you're familiar with Fastgraph, you'll probably refer to these
- descriptions more often than any other section of the two Fastgraph
- publications.
-
- The information presented for each routine includes the following:
-
- function prototypes or declarations for each supported language
- a description of the routine itself
- the number of parameters, their purpose, and their data types
- the meaning and data type of the routine's return value (if any)
- information about important restrictions pertaining to the routine
- references to similar routines, or other routines that affect the
- routine
- example programs in the Fastgraph User's Guide that use the routine
-
- A prototype specifies the data types of a routine's parameters and
- return value. The description of each Fastgraph routine includes prototypes
- for C, QuickBASIC, FORTRAN, and Turbo Pascal (in that order). For example,
- the prototypes for the fg_allocate routine are:
-
-
- int fg_allocate (int page_number);
- function FGallocate% (page_number%)
- integer*2 function fg_allocate (integer*2 page_number)
- function fg_allocate (page_number : integer) : integer;
-
-
- The C, QuickBASIC, and Turbo Pascal prototypes use the declaration syntax for
- those languages. FORTRAN does not use function prototypes, so we've created
- our own prototype syntax for FORTRAN. In the FORTRAN prototypes, each
- parameter is preceded by its data type. Furthermore, if the routine has a
- return value, the prototype begins with the return value's data type and the
- word function. If the routine has no return value, the prototype begins with
- the word subroutine.
-
-
-
-
-
- 2
- fg_allocate
-
- Prototype
-
- int fg_allocate (int page_number);
- function FGallocate% (page_number%)
- integer*2 function fg_allocate (integer*2 page_number)
- function fg_allocate (page_number : integer) : integer;
-
- Description
-
- The fg_allocate routine creates a virtual video page. The amount of memory
- required depends on the current video mode.
-
- Parameters
-
- page_number is the number by which the virtual page will be referenced. It
- must be between 0 and 63.
-
- Return value
-
- A status code indicating the success or failure of the virtual page
- creation, as shown below.
-
- 0 = virtual page created
- 1 = specified page is a physical or logical page
- 7 = virtual page created, but memory control blocks were destroyed
- 8 = insufficient memory to create the virtual page
-
- Restrictions
-
- This routine has no effect if page_number references a physical video page,
- a logical video page, or if used in a video mode that does not support
- virtual video pages.
-
- See also
-
- fg_freepage
-
- Examples
-
- 8-3, 8-4, 8-5, 8-6, 8-8, 9-23, 9-24, 9-25, 10-4, 10-5, 11-2, 11-5, 15-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 3
- fg_alloccms
-
- Prototype
-
- int fg_alloccms (int page_number);
- function FGalloccms% (page_number%)
- integer*2 function fg_alloccms (integer*2 page_number)
- function fg_alloccms (page_number : integer) : integer;
-
- Description
-
- The fg_alloccms routine creates a logical page in conventional memory. The
- amount of memory required depends on the current video mode and video
- buffer dimensions.
-
- Parameters
-
- page_number is the number by which the logical page will be referenced. It
- must be between 1 and 63.
-
- Return value
-
- 0 = logical page created in conventional memory
- -2 = invalid page number
- -3 = page already created, or page exists as a physical or virtual page
- -4 = insufficient expanded memory to create the page
-
- Restrictions
-
- This routine has no effect if page_number references a physical or virtual
- video page.
-
- The only function you can perform with logical pages is copying one entire
- page to another (with fg_copypage).
-
- See also
-
- fg_allocems, fg_allocxms, fg_copypage, fg_freepage
-
- Examples
-
- 8-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 4
- fg_allocems
-
- Prototype
-
- int fg_allocems (int page_number);
- function FGallocems% (page_number%)
- integer*2 function fg_allocems (integer*2 page_number)
- function fg_allocems (page_number : integer) : integer;
-
- Description
-
- The fg_allocems routine creates a logical page in expanded memory (EMS).
- The amount of memory required depends on the current video mode and video
- buffer dimensions.
-
- Parameters
-
- page_number is the number by which the logical page will be referenced. It
- must be between 1 and 63.
-
- Return value
-
- 0 = logical page created in expanded memory
- -1 = Expanded Memory Manager not initialized
- -2 = invalid page number
- -3 = page already created, or page exists as a physical or virtual page
- -4 = insufficient expanded memory to create the page
-
- Restrictions
-
- This routine has no effect if page_number references a physical or virtual
- video page.
-
- Before using this routine, you must use the fg_initems routine to
- initialize the Expanded Memory Manager.
-
- The only function you can perform with EMS logical pages is copying one
- entire page to another (with fg_copypage).
-
- See also
-
- fg_alloccms, fg_allocxms, fg_copypage, fg_freepage, fg_initems
-
- Examples
-
- 8-9
-
-
-
-
-
-
-
-
-
-
-
-
- 5
- fg_allocxms
-
- Prototype
-
- int fg_allocxms (int page_number);
- function FGallocxms% (page_number%)
- integer*2 function fg_allocxms (integer*2 page_number)
- function fg_allocxms (page_number : integer) : integer;
-
- Description
-
- The fg_allocxms routine creates a logical page in extended memory (XMS).
- The amount of memory required depends on the current video mode and video
- buffer dimensions.
-
- Parameters
-
- page_number is the number by which the logical page will be referenced. It
- must be between 1 and 63.
-
- Return value
-
- 0 = logical page created in extended memory
- -1 = XMS driver not present
- -2 = invalid page number
- -3 = page already created, or page exists as a physical or virtual page
- -4 = insufficient extended memory to create the page
-
- Restrictions
-
- This routine has no effect if page_number references a physical or virtual
- video page.
-
- Before using this routine, you must use the fg_initxms routine to
- initialize the XMS driver.
-
- The only function you can perform with XMS logical pages is copying one
- entire page to another (with fg_copypage).
-
- See also
-
- fg_alloccms, fg_allocems, fg_copypage, fg_freepage, fg_initxms
-
- Examples
-
- 8-9
-
-
-
-
-
-
-
-
-
-
-
-
- 6
- fg_automode
-
- Prototype
-
- int fg_automode (void);
- function FGautomode% ()
- integer*2 function fg_automode ()
- function fg_automode : integer;
-
- Description
-
- The fg_automode routine determines the graphics video mode that offers the
- most features for the user's display and adapter configuration.
-
- Parameters
-
- none
-
- Return value
-
- The return value is the proposed video mode number. The current display
- and adapter configuration determine the mode number, as illustrated in the
- following table.
-
-
- display
- adapter mono RGB ECD VGA
-
- MDA 7 0 7 7
- HGC 11 0 0 11
- CGA 0 4 0 0
- EGA 15 13 16 0
- VGA 17 17 17 18
- MCGA 17 17 17 19
- Tandy 7 9 0 0
- PCjr 7 9 0 0
-
-
- The return value can either be passed directly to the fg_setmode routine,
- or it can help determine suitable video modes for your program.
-
- Restrictions
-
- none
-
- See also
-
- fg_bestmode, fg_setmode, fg_testmode
-
- Examples
-
- 3-7, 4-3
-
-
-
-
-
-
- 7
- fg_bestmode
-
- Prototype
-
- int fg_bestmode (int horizontal, int vertical, int pages);
- function FGbestmode% (horizontal%, vertical%, pages%)
- integer*2 function fg_bestmode (integer*2 horizontal, integer*2 vertical,
- integer*2 pages)
- function fg_bestmode (horizontal, vertical, pages : integer) : integer;
-
- Description
-
- The fg_bestmode routine determines the video mode having the requested
- resolution and the most features for the user's display and adapter
- configuration. It is similar to fg_automode, but it excludes video modes
- that do not offer the specified resolution and video page requirements.
- The video pages can include physical pages, virtual pages, or both.
-
- Parameters
-
- horizontal specifies the required horizontal resolution.
-
- vertical specifies the required vertical resolution.
-
- pages specifies the required number of video pages.
-
- Return value
-
- If fg_bestmode finds a video mode that offers the specified resolution and
- video page requirements, it returns the corresponding video mode number.
- If not, it returns -1.
-
- Restrictions
-
- none
-
- See also
-
- fg_automode, fg_setmode, fg_testmode
-
- Examples
-
- 3-4, 3-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8
- fg_box
-
- Prototype
-
- void fg_box (int minx, int maxx, int miny, int maxy);
- sub FGbox (minx%, maxx%, miny%, maxy%)
- subroutine fg_box (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy)
- procedure fg_box (minx, maxx, miny, maxy : integer);
-
- Description
-
- The fg_box routine draws an unfilled rectangle in screen space, with
- respect to the clipping region. The width of the rectangle's edges is one
- pixel unless changed with the fg_boxdepth routine.
-
- Parameters
-
- minx is the x coordinate of the rectangle's left edge.
-
- maxx is the x coordinate of the rectangle's right edge. It must be greater
- than or equal to the value of minx.
-
- miny is the y coordinate of the rectangle's top edge.
-
- maxy is the y coordinate of the rectangle's bottom edge. It must be
- greater than or equal to the value of miny.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_boxdepth, fg_rect
-
- Examples
-
- 6-11, 11-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 9
- fg_boxdepth
-
- Prototype
-
- void fg_boxdepth (int xdepth, int ydepth);
- sub FGboxdepth (xdepth%, ydepth%)
- subroutine fg_boxdepth (integer*2 xdepth, integer*2 ydepth)
- procedure fg_boxdepth (xdepth, ydepth : integer);
-
- Description
-
- The fg_boxdepth routine defines the depth of rectangles drawn with the
- fg_box routine. The fg_setmode routine initializes the box depth to one
- pixel in each direction.
-
- Parameters
-
- xdepth is the width in pixels of the rectangle's left and right sides. It
- must be greater than zero.
-
- ydepth is the height in pixels of the rectangle's top and bottom sides. It
- must be greater than zero.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_box
-
- Examples
-
- 6-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 10
- fg_button
-
- Prototype
-
- int fg_button (int n);
- function FGbutton% (n%)
- integer*2 function fg_button (integer*2 n)
- function fg_button (n : integer) : integer;
-
- Description
-
- The fg_button routine returns information about the state of either
- joystick's button status.
-
- Parameters
-
- n specifies the joystick number, either 1 or 2.
-
- Return value
-
- A status code indicating the current button status for the requested
- joystick, as shown below.
-
- 0 = neither button pressed
- 1 = top button pressed
- 2 = bottom button pressed
- 3 = top and bottom buttons pressed
-
- Restrictions
-
- none
-
- See also
-
- fg_getxjoy, fg_getyjoy, fg_initjoy, fg_intjoy
-
- Examples
-
- 12-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 11
- fg_capslock
-
- Prototype
-
- int fg_capslock (void);
- function FGcapslock% ()
- integer*2 function fg_capslock ()
- function fg_capslock : integer;
-
- Description
-
- The fg_capslock routine determines the state of the CapsLock key.
-
- Parameters
-
- none
-
- Return value
-
- If the return value is 0, it means the CapsLock key is off. If it is 1, it
- means the CapsLock key is on.
-
- Restrictions
-
- none
-
- See also
-
- fg_numlock, fg_scrlock, fg_setcaps, fg_setnum
-
- Examples
-
- 12-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 12
- fg_chgattr
-
- Prototype
-
- void fg_chgattr (int n);
- sub FGchgattr (n%)
- subroutine fg_chgattr (integer*2 n)
- procedure fg_chgattr (n: integer);
-
- Description
-
- The fg_chgattr routine applies the current text attribute to a given number
- of characters, starting at the text cursor position. This routine leaves
- the text cursor one column to the right of the last character changed (or
- the first column of the next row if the last character is at the end of a
- row).
-
- Parameters
-
- n is the number of characters for which to change the text attribute.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- See also
-
- fg_chgtext, fg_text
-
- Examples
-
- 7-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 13
- fg_chgtext
-
- Prototype
-
- void fg_chgtext (char *string, int n);
- sub FGchgtext (string$, n%)
- subroutine fg_chgtext (character*(*) string, integer*2 n)
- procedure fg_chgtext (string : string; n : integer);
-
- Description
-
- The fg_chgtext routine displays a string of hardware characters, starting
- at the text cursor position, using the existing text attributes. This
- routine leaves the text cursor one column to the right of the last
- character changed (or the first column of the next row if the last
- character is at the end of a row).
-
- Parameters
-
- string is the arbitrary-length sequence of characters to display.
-
- n is the number of characters in string.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- See also
-
- fg_chgattr, fg_text
-
- Examples
-
- 7-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 14
- fg_circle
-
- Prototype
-
- void fg_circle (int radius);
- sub FGcircle (radius%)
- subroutine fg_circle (integer*2 radius)
- procedure fg_circle (radius : integer);
-
- Description
-
- The fg_circle routine draws an unfilled circle in screen space. The circle
- is centered at the current graphics cursor position.
-
- Parameters
-
- radius defines the circle's radius in horizontal screen space units. Its
- value must be greater than zero.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_circlew, fg_ellipse, fg_ellipsew
-
- Examples
-
- 6-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 15
- fg_circlew
-
- Prototype
-
- void fg_circlew (double radius);
- sub FGcirclew (radius#)
- subroutine fg_circlew (real*8 radius)
- procedure fg_circlew (radius : real);
-
- Description
-
- The fg_circlew routine draws an unfilled circle in world space. The circle
- is centered at the current graphics cursor position.
-
- Parameters
-
- radius defines the circle's radius in horizontal world space units. Its
- value must be greater than zero.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_circle, fg_ellipse, fg_ellipsew
-
- Examples
-
- 6-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 16
- fg_clipmask
-
- Prototype
-
- void fg_clipmask (char *map_array, int runs, int width);
- sub FGclipmask (map_array$, runs%, width%)
- subroutine fg_clipmask (integer*1 map_array, integer*2 runs, integer*2
- width)
- procedure fg_clipmask (var map_array : byte; runs, width : integer);
-
- Description
-
- The fg_clipmask routine displays a clipped image stored as a masking map.
- The image will be positioned so that its lower left corner is at the
- graphics cursor position. Refer to the description of the fg_drawmask
- routine for more information about masking maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the masking map.
-
- runs is the number of pixel runs in the masking map.
-
- width is the width in pixels of the masking map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, or in the native EGA and
- VGA graphics video modes.
-
- See also
-
- fg_drawmask, fg_flipmask, fg_revmask, fg_setclip
-
- Examples
-
- 9-16
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 17
- fg_clpimage
-
- Prototype
-
- void fg_clpimage (char *map_array, int width, int height);
- sub FGclpimage (map_array$, width%, height%)
- subroutine fg_clpimage (integer*1 map_array, integer*2 width, integer*2
- height)
- procedure fg_clpimage (var map_array : byte; width, height : integer);
-
- Description
-
- The fg_clpimage routine displays a clipped image stored as a mode-specific
- bit map. The image will be positioned so that its lower left corner is at
- the graphics cursor position. Only that part of the image that falls
- within the current clipping limits will be displayed, but the clipping
- limits will be extended to a byte boundary if necessary. Refer to the
- Fastgraph User's Guide for complete information about mode-specific bit
- maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the bit map.
-
- width is the width in bytes of the bit map.
-
- height is the height in bytes (pixel rows) of the bit map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_drwimage, fg_flpimage, fg_getimage, fg_revimage, fg_setclip
-
- Examples
-
- 9-8, 9-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 18
- fg_clprect
-
- Prototype
-
- void fg_clprect (int minx, int maxx, int miny, int maxy);
- sub FGclprect (minx%, maxx%, miny%, maxy%)
- subroutine fg_clprect (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy)
- procedure fg_clprect (minx, maxx, miny, maxy : integer);
-
- Description
-
- The fg_clprect routine draws a solid (filled) rectangle in screen space,
- with respect to the clipping region.
-
- Parameters
-
- minx is the screen space x coordinate of the rectangle's left edge.
-
- maxx is the screen space x coordinate of the rectangle's right edge. It
- must be greater than or equal to the value of minx.
-
- miny is the screen space y coordinate of the rectangle's top edge.
-
- maxy is the screen space y coordinate of the rectangle's bottom edge. It
- must be greater than or equal to the value of miny.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_clprectw, fg_rect, fg_rectw, fg_setclip
-
- Examples
-
- 10-1, 10-2, 10-3, 10-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 19
- fg_clprectw
-
- Prototype
-
- void fg_clprectw (double xmin, double xmax, double ymin, double ymax);
- sub FGclprectw (xmin#, xmax#, ymin#, ymax#)
- subroutine fg_clprectw (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax)
- procedure fg_clprectw (xmin, xmax, ymin, ymax : real);
-
- Description
-
- The fg_clprectw routine draws a solid (filled) rectangle in world space,
- with respect to the clipping region.
-
- Parameters
-
- xmin is the world space x coordinate of the rectangle's left edge.
-
- xmax is the world space x coordinate of the rectangle's right edge. It
- must be greater than or equal to the value of xmin.
-
- ymin is the world space y coordinate of the rectangle's bottom edge.
-
- ymax is the world space y coordinate of the rectangle's top edge. It must
- be greater than or equal to the value of ymin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_clprect, fg_rect, fg_rectw, fg_setclipw
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 20
- fg_copypage
-
- Prototype
-
- void fg_copypage (int source_page, int dest_page);
- sub FGcopypage (source_page%, dest_page%)
- subroutine fg_copypage (integer*2 source_page, integer*2 dest_page)
- procedure fg_copypage (source_page, dest_page : integer);
-
- Description
-
- The fg_copypage routine transfers the contents of one video page to
- another. The pages may be physical, virtual, or logical video pages. The
- call
-
- fg_copypage(source,dest);
-
- is equivalent to
-
- fg_transfer(0,fg_getmaxx(),0,fg_getmaxy(),0,fg_getmaxx(),source,dest);
-
- Parameters
-
- source_page is the source video page number. It must be between 0 and 63.
-
- dest_page is the destination video page number. It must be between 0 and
- 63.
-
- Return value
-
- none
-
- Restrictions
-
- If source_page and dest_page both reference logical pages, the pages must
- exist in the same type of memory. For example, you cannot copy a logical
- page in extended memory to a logical page in conventional memory.
-
- See also
-
- fg_alloccms, fg_allocems, fg_allocxms, fg_initems, fg_initxms, fg_transfer
-
- Examples
-
- 8-9, 9-22
-
-
-
-
-
-
-
-
-
-
-
-
-
- 21
- fg_cursor
-
- Prototype
-
- void fg_cursor (int state);
- sub FGcursor (state%)
- subroutine fg_cursor (integer*2 state)
- procedure fg_cursor (state : integer);
-
- Description
-
- The fg_cursor routine determines the ROM BIOS cursor visibility in text
- video modes. After calling fg_setmode, the cursor is made visible by
- default.
-
- Parameters
-
- The state parameter defines the cursor visibility. If it is 0, the cursor
- becomes invisible; if it is 1, the cursor becomes visible.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- Examples
-
- 3-1, 3-2, 3-3, 3-4, 3-5, 5-16, 7-1, 7-2, 7-3, 8-3, 8-5, 8-7, 9-7, 9-21,
- 9-23, 9-25, 11-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 22
- fg_dash
-
- Prototype
-
- void fg_dash (int ix, int iy, int pattern);
- sub FGdash (ix%, iy%, pattern%)
- subroutine fg_dash (integer*2 ix, integer*2 iy, integer*2 pattern)
- procedure fg_dash (ix, iy, pattern : integer);
-
- Description
-
- The fg_dash routine draws a dashed line from the graphics cursor position
- to an absolute screen space position. It also makes the destination
- position the new graphics cursor position.
-
- Parameters
-
- ix is the screen space x coordinate of the destination position.
-
- iy is the screen space y coordinate of the destination position.
-
- pattern is a 16-bit value representing a cyclic dash pattern. Bits that
- are 1 will result in a pixel being drawn; bits that are 0 will result in a
- pixel being skipped.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_dashrel, fg_dashrw, fg_dashw, fg_move
-
- Examples
-
- 6-6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 23
- fg_dashrel
-
- Prototype
-
- void fg_dashrel (int ix, int iy, int pattern);
- sub FGdashrel (ix%, iy%, pattern%)
- subroutine fg_dashrel (integer*2 ix, integer*2 iy, integer*2 pattern)
- procedure fg_dashrel (ix, iy, pattern : integer);
-
- Description
-
- The fg_dash routine draws a dashed line from the graphics cursor position
- to a screen space position relative to it. It also makes the destination
- position the new graphics cursor position.
-
- Parameters
-
- ix is the screen space x offset of the destination position.
-
- iy is the screen space y offset of the destination position.
-
- pattern is a 16-bit value representing a cyclic dash pattern. Bits that
- are 1 will result in a pixel being drawn; bits that are 0 will result in a
- pixel being skipped.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_dash, fg_dashrw, fg_dashw, fg_moverel
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 24
- fg_dashrw
-
- Prototype
-
- void fg_dashrw (double x, double y, int pattern);
- sub FGdashrw (x#, y#, pattern%)
- subroutine fg_dashrw (real*8 x, real*8 y, integer*2 pattern)
- procedure fg_dashrw (x, y : real; pattern : integer);
-
- Description
-
- The fg_dashrw routine draws a dashed line from the graphics cursor position
- to a world space position relative to it. It also makes the destination
- position the new graphics cursor position.
-
- Parameters
-
- x is the world space x offset of the destination position.
-
- y is the world space y offset of the destination position.
-
- pattern is a 16-bit value representing a cyclic dash pattern. Bits that
- are 1 will result in a pixel being drawn; bits that are 0 will result in a
- pixel being skipped.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_dash, fg_dashrel, fg_dashw, fg_moverw
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 25
- fg_dashw
-
- Prototype
-
- void fg_dashw (double x, double y, int pattern);
- sub FGdashw (x#, y#, pattern%)
- subroutine fg_dashw (real*8 x, real*8 y, integer*2 pattern)
- procedure fg_dashw (x, y : real; pattern : integer);
-
- Description
-
- The fg_dashw routine draws a dashed line from the graphics cursor position
- to an absolute world space position. It also makes the destination
- position the new graphics cursor position.
-
- Parameters
-
- x is the world space x coordinate of the destination position.
-
- y is the world space y coordinate of the destination position.
-
- pattern is a 16-bit value representing a cyclic dash pattern. Bits that
- are 1 will result in a pixel being drawn; bits that are 0 will result in a
- pixel being skipped.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_dash, fg_dashrel, fg_dashrw, fg_movew
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 26
- fg_defcolor
-
- Prototype
-
- void fg_defcolor (int index, int value);
- sub FGdefcolor (index%, value%)
- subroutine fg_defcolor (integer*2 index, integer*2 value)
- procedure fg_defcolor (index, value : integer);
-
- Description
-
- The fg_defcolor routine assigns a color value to a virtual color index.
-
- Parameters
-
- index is the virtual color index to define, between 0 and 255.
-
- value is the color value to assign to the specified color index. It must
- be between 0 and the maximum color value for the current video mode.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes or in 256-color graphics
- video modes.
-
- See also
-
- fg_getindex, fg_palette, fg_setcolor
-
- Examples
-
- 5-15, 5-16
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 27
- fg_dispfile
-
- Prototype
-
- void fg_dispfile (char *filename, int width, int format);
- sub FGdispfile (filename$, width%, format%)
- subroutine fg_dispfile (character*(*) filename, integer*2 width, integer*2
- format)
- procedure fg_dispfile (filename : string; width, format : integer);
-
- Description
-
- The fg_dispfile routine displays an image stored in Fastgraph's standard or
- packed pixel run format, where the image resides in an external file. The
- image will be positioned so that its lower left corner is at the graphics
- cursor position. Refer to the descriptions of the fg_display and
- fg_displayp routines for more information about the two pixel run formats.
-
- Parameters
-
- filename is the name of the file that contains the image. A device and
- path name may be included as part of the file name. The file name must be
- terminated by a null character (that is, a zero byte).
-
- width is the width of the image in pixels. It must be greater than zero.
-
- format specifies the image format. The value of format must be 0 if the
- image is in standard pixel run format, and 1 if the image is in packed
- pixel run format.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_display, fg_displayp, fg_disppcx, fg_pattern
-
- Examples
-
- 9-13, 9-14
-
-
-
-
-
-
-
-
-
-
-
-
-
- 28
- fg_display
-
- Prototype
-
- void fg_display (char *map_array, int runs, int width);
- sub FGdisplay (map_array$, runs%, width%)
- subroutine fg_display (integer*1 map_array, integer*2 runs, integer*2
- width)
- procedure fg_display (var map_array : byte; runs, width : integer);
-
- Description
-
- The fg_display routine displays an image stored in Fastgraph's standard
- pixel run format, where the image resides in an array. The image will be
- positioned so that its lower left corner is at the graphics cursor
- position.
-
- Parameters
-
- map_array is the arbitrary-length array containing the pixel run map. The
- pixel runs are represented by (color,count) pairs, as shown below.
-
-
- [0] color for run 1
-
- [1] count for run 1
-
- [2] color for run 2
-
- [3] count for run 2
- .
- .
- .
- [2n-2] color for run n
-
- [2n-1] count for run n
-
-
- Each "color" element is a value between 0 and 255 specifying the color
- index for that pixel run. Each "count" element is a value between 0 and
- 255 specifying the length in pixels of that pixel run.
-
- runs is the number of pixel runs to display from the pixel run map. It is
- normally 1/2 the size of the map_array array.
-
- width is the width of the image in pixels. It must be greater than zero.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
-
-
-
- 29
- fg_display (continued)
-
- See also
-
- fg_dispfile, fg_displayp, fg_pattern
-
- Examples
-
- 9-10, 9-12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 30
- fg_displayp
-
- Prototype
-
- void fg_displayp (char *map_array, int runs, int width);
- sub FGdisplayp (map_array$, runs%, width%)
- subroutine fg_displayp (integer*1 map_array, integer*2 runs, integer*2
- width)
- procedure fg_displayp (var map_array : byte; runs, width : integer);
-
- Description
-
- The fg_displayp routine displays an image stored in Fastgraph's packed
- pixel run format, where the image resides in an array. The image will be
- positioned so that its lower left corner is at the graphics cursor
- position.
-
- Parameters
-
- map_array is the arbitrary-length array containing the pixel run map. The
- pixel runs are represented by (color,count) pairs, as shown below.
-
- 7 4 3 0
-
- [0] color for run 1 color for run 2
-
- [1] count for run 1
-
- [2] count for run 2
-
- [3] color for run 3 color for run 4
-
- [4] count for run 3
-
- [5] count for run 4
- .
- .
- .
- [3n/2-3] color for run n-1 color for run n
-
- [3n/2-2] count for run n-1
-
- [3n/2-1] count for run n
-
-
- Each "color" element is a value between 0 and 15 specifying the color index
- for that pixel run. Each "count" element is a value between 0 and 255
- specifying the length in pixels of that pixel run.
-
- runs is the number of pixel runs to display from the pixel run map. It is
- normally 2/3 the size of the map_array array.
-
- width is the width of the image in pixels. It must be greater than zero.
-
-
-
-
-
- 31
- fg_displayp (continued)
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_dispfile, fg_display, fg_pattern
-
- Examples
-
- 9-11, 9-12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 32
- fg_disppcx
-
- Prototype
-
- int fg_disppcx (char *filename, int flags);
- function FGdisppcx% (filename$, flags%)
- integer*2 function fg_disppcx (character*(*) filename, integer*2 flags)
- function fg_disppcx (filename : string; flags : integer) : integer;
-
- Description
-
- The fg_disppcx routine displays an image stored in a PCX file. The image
- will be positioned so that its upper left corner is at the graphics cursor
- position of the active video page.
-
- Parameters
-
- filename is the name of the PCX file. A device and path name may be
- included as part of the file name. The file name must be terminated by a
- null character (that is, a zero byte).
-
- flags is a bit mask that controls how the image is displayed.
- Bit 0
- 0 = use palette values stored in the PCX file
- 1 = use the current palette settings
- Bits 1-15 are reserved for future use and should be zero.
-
- Return value
-
- 0 = success
- 1 = file not found
- 2 = file is not a PCX file
-
- Restrictions
-
- PCX files are specific to certain video modes. The table below summarizes
- the compatible video modes for PCX files.
-
- If PCX file was You can display
- created in mode it in these modes
-
- 4 or 5 4 or 5
- 6 or 11 6, 11, 13 to 18
- 9 9
- 13 to 18 13 to 18
- 19 19 to 23
-
- Displaying a PCX file at a lower resolution (for example, a 640x480 PCX
- file at 320x200) will truncate the display on the right and on the bottom.
- This effectively displays the upper left corner of the PCX file. If you
- attempt to display a PCX file in an incompatible video mode, fg_disppcx
- will still display something, but it will be garbled.
-
- The fg_disppcx routine has no effect in text video modes or in the Hercules
- low-resolution graphics mode.
-
-
-
- 33
- fg_disppcx (continued)
-
- See also
-
- fg_dispfile, fg_makepcx
-
- Examples
-
- 9-15
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 34
- fg_draw
-
- Prototype
-
- void fg_draw (int ix, int iy);
- sub FGdraw (ix%, iy%)
- subroutine fg_draw (integer*2 ix, integer*2 iy)
- procedure fg_draw (ix, iy : integer);
-
- Description
-
- The fg_draw routine draws a solid line from the graphics cursor position to
- an absolute screen space position. It also makes the destination position
- the new graphics cursor position.
-
- Parameters
-
- ix is the screen space x coordinate of the destination position.
-
- iy is the screen space y coordinate of the destination position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_drawrel, fg_drawrw, fg_draww, fg_move
-
- Examples
-
- 6-2, 6-5, 11-5, 11-6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 35
- fg_drawmap
-
- Prototype
-
- void fg_drawmap (char *map_array, int width, int height);
- sub FGdrawmap (map_array$, width%, height%)
- subroutine fg_drawmap (integer*1 map_array, integer*2 width, integer*2
- height)
- procedure fg_drawmap (var map_array : byte; width, height : integer);
-
- Description
-
- The fg_drawmap routine displays an image stored as a mode-independent bit
- map. The image will be positioned so that its lower left corner is at the
- graphics cursor position. Refer to the Fastgraph User's Guide for complete
- information about mode-independent bit maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the bit map. Each byte
- of map_array represents eight pixels. Bits that are set (1) result in the
- corresponding pixel being displayed in the current color. Bits that are
- reset (0) leave the corresponding pixel unchanged.
-
- width is the width in bytes of the bit map.
-
- height is the height in bytes (pixel rows) of the bit map.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_drwimage, fg_getmap
-
- Examples
-
- 9-1, 9-2, 9-18, 9-19
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 36
- fg_drawmask
-
- Prototype
-
- void fg_drawmask (char *map_array, int runs, int width);
- sub FGdrawmask (map_array$, runs%, width%)
- subroutine fg_drawmask (integer*1 map_array, integer*2 runs, integer*2
- width)
- procedure fg_drawmask (var map_array : byte; runs, width : integer);
-
- Description
-
- The fg_drawmask routine displays an image stored as a masking map. The
- image will be positioned so that its lower left corner is at the graphics
- cursor position. Refer to the Fastgraph User's Guide for a complete
- discussion of masking maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the masking map. The
- masking map is a series of alternating "protect" and "zero" pixel runs, as
- shown below.
-
- [1] length of 1st protect run
-
- [2] length of 1st zero run
-
- [3] length of 2nd protect run
-
- [4] length of 2nd zero run
- .
- .
- .
- [n-2] length of final protect run
-
- [n-1] length of final zero run
-
- The "protect" runs protect video memory, while the "zero" runs zero video
- memory (that is, set the pixels to the background color). The length of
- each run must be between 0 and 255.
-
- runs is the number of pixel runs in the masking map.
-
- width is the width in pixels of the masking map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, or in the native EGA and
- VGA graphics video modes.
-
-
-
-
-
- 37
- fg_drawmask (continued)
-
- See also
-
- fg_clipmask, fg_flipmask, fg_revmask
-
- Examples
-
- 9-16, 9-17
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 38
- fg_drawrel
-
- Prototype
-
- void fg_drawrel (int ix, int iy);
- sub FGdrawrel (ix%, iy%)
- subroutine fg_drawrel (integer*2 ix, integer*2 iy)
- procedure fg_drawrel (ix, iy : integer);
-
- Description
-
- The fg_drawrel routine draws a solid line from the graphics cursor position
- to a screen space position relative to it. It also makes the destination
- position the new graphics cursor position.
-
- Parameters
-
- ix is the screen space x offset of the destination position.
-
- iy is the screen space y offset of the destination position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_draw, fg_drawrw, fg_draww, fg_moverel
-
- Examples
-
- 6-3, 6-15
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 39
- fg_drawrw
-
- Prototype
-
- void fg_drawrw (double x, double y);
- sub FGdrawrw (x#, y#)
- subroutine fg_drawrw (real*8 x, real*8 y)
- procedure fg_drawrw (x, y : real);
-
- Description
-
- The fg_drawrw routine draws a solid line from the graphics cursor position
- to a world space position relative to it. It also makes the destination
- position the new graphics cursor position.
-
- Parameters
-
- x is the world space x offset of the destination position.
-
- y is the world space y offset of the destination position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_draw, fg_drawrel, fg_draww, fg_moverw
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 40
- fg_draww
-
- Prototype
-
- void fg_draww (double x, double y);
- sub FGdraww (x#, y#)
- subroutine fg_draww (real*8 x, real*8 y)
- procedure fg_draww (x, y : real);
-
- Description
-
- The fg_draww routine draws a dashed line from the graphics cursor position
- to an absolute world space position. It also makes the destination
- position the new graphics cursor position.
-
- Parameters
-
- x is the world space x coordinate of the destination position.
-
- y is the world space y coordinate of the destination position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_draw, fg_drawrel, fg_drawrw, fg_movew
-
- Examples
-
- 6-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 41
- fg_drect
-
- Prototype
-
- void fg_drect (int minx, int maxx, int miny, int maxy, char *matrix);
- sub FGdrect (minx%, maxx%, miny%, maxy%, matrix$)
- subroutine fg_drect (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy,
- integer*1 matrix)
- procedure FGdrect (minx, maxx, miny, maxy : integer; var matrix : byte);
-
- Description
-
- The fg_drect routine draws a dithered rectangle in screen space, without
- regard to the clipping region.
-
- Parameters
-
- minx is the screen space x coordinate of the rectangle's left edge.
-
- maxx is the screen space x coordinate of the rectangle's right edge. It
- must be greater than or equal to the value of minx.
-
- miny is the screen space y coordinate of the rectangle's top edge.
-
- maxy is the screen space y coordinate of the rectangle's bottom edge. It
- must be greater than or equal to the value of miny.
-
- matrix is a four-element array (an eight-element array in 256-color
- graphics modes) that defines the dithering matrix. The format of the
- dithering matrix is dependent on the video mode; refer to the Fastgraph
- User's Guide for more information.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_drectw, fg_rect, fg_rectw
-
- Examples
-
- 6-12, 6-13, 6-14
-
-
-
-
-
-
-
-
-
-
- 42
- fg_drectw
-
- Prototype
-
- void fg_drectw (double xmin, double xmax, double ymin, double ymax, char
- *matrix);
- sub FGdrectw (xmin#, xmax#, ymin#, ymax#, matrix$)
- subroutine fg_drectw (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax,
- integer*1 matrix)
- procedure fg_drectw (xmin, xmax, ymin, ymax : real; var matrix : byte);
-
- Description
-
- The fg_drectw routine draws a dithered rectangle in world space, without
- regard to the clipping region.
-
- Parameters
-
- xmin is the world space x coordinate of the rectangle's left edge.
-
- xmax is the world space x coordinate of the rectangle's right edge. It
- must be greater than or equal to the value of xmin.
-
- ymin is the world space y coordinate of the rectangle's bottom edge.
-
- ymax is the world space y coordinate of the rectangle's top edge. It must
- be greater than or equal to the value of ymin.
-
- matrix is a four-element array (an eight-element array in 256-color
- graphics modes) that defines the dithering matrix. The format of the
- dithering matrix is dependent on the video mode; refer to the Fastgraph
- User's Guide for more information.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_drect, fg_rect, fg_rectw
-
-
-
-
-
-
-
-
-
-
-
-
-
- 43
- fg_drwimage
-
- Prototype
-
- void fg_drwimage (char *map_array, int width, int height);
- sub FGdrwimage (map_array$, width%, height%)
- subroutine fg_drwimage (integer*1 map_array, integer*2 width, integer*2
- height)
- procedure fg_drwimage (var map_array : byte; width, height : integer);
-
- Description
-
- The fg_drwimage routine displays an image stored as a mode-specific bit
- map. The image will be positioned so that its lower left corner is at the
- graphics cursor position (or the text cursor position in text video modes).
- Refer to the Fastgraph User's Guide for complete information about mode-
- specific bit maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the bit map.
-
- width is the width in bytes of the bit map.
-
- height is the height in bytes (pixel rows) of the bit map.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_clpimage, fg_flpimage, fg_getimage, fg_revimage
-
- Examples
-
- 9-3, 9-4, 9-5, 9-6, 9-7, 9-8, 9-9, 9-17, 9-20, 9-21
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 44
- fg_egacheck
-
- Prototype
-
- int fg_egacheck (void);
- function FGegacheck% ()
- integer*2 function fg_egacheck ()
- function fg_egacheck : integer;
-
- Description
-
- The fg_egacheck routine returns information about the active EGA adapter
- and display (or the EGA emulation capabilities of a VGA). It is useful in
- checking if the adapter has enough memory to run a program.
-
- Parameters
-
- none
-
- Return value
-
- The fg_egacheck routine returns a value of 0 if an EGA is not found, or if
- an EGA without an Enhanced Color Display (ECD) is detected. Otherwise,
- fg_egacheck returns a positive integer indicating the number of 64K-byte
- increments of video memory on the EGA, as summarized below.
-
- 1 = EGA with 64K video memory
- 2 = EGA with 128K video memory
- 3 = EGA with 192K video memory
- 4 = EGA with 256K video memory
-
- Restrictions
-
- none
-
- See also
-
- fg_testmode
-
- Examples
-
- 3-6, 15-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 45
- fg_ellipse
-
- Prototype
-
- void fg_ellipse (int horiz, int vert);
- sub FGellipse (horiz%, vert%)
- subroutine fg_ellipse (integer*2 horiz, integer*2 vert)
- procedure fg_ellipse (horiz, vert : integer);
-
- Description
-
- The fg_ellipse routine draws an unfilled ellipse in screen space. The
- ellipse is centered at the current graphics cursor position, and its size
- is determined by the specified lengths of its semi-axes.
-
- Parameters
-
- horiz defines the horizontal semi-axis of the ellipse (the absolute screen
- space distance from the center of the ellipse to its horizontal extremity).
-
- vert defines the vertical semi-axis of the ellipse (the absolute screen
- space distance from the center of the ellipse to its vertical extremity).
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_circle, fg_circlew, fg_ellipsew
-
- Examples
-
- 6-9, 10-4, 10-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 46
- fg_ellipsew
-
- Prototype
-
- void fg_ellipsew (double horiz, double vert);
- sub FGellipsew (horiz#, vert#)
- subroutine fg_ellipsew (real*8 horiz, real*8 vert)
- procedure fg_ellipsew (horiz, vert : real);
-
- Description
-
- The fg_ellipsew routine draws an unfilled ellipse in world space. The
- ellipse is centered at the current graphics cursor position, and its size
- is determined by the specified lengths of its semi-axes.
-
- Parameters
-
- horiz defines the horizontal semi-axis of the ellipse (the absolute world
- space distance from the center of the ellipse to its horizontal extremity).
-
- vert defines the vertical semi-axis of the ellipse (the absolute world
- space distance from the center of the ellipse to its vertical extremity).
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_circle, fg_circlew, fg_ellipse
-
- Examples
-
- 6-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 47
- fg_erase
-
- Prototype
-
- void fg_erase (void);
- sub FGerase ()
- subroutine fg_erase ()
- procedure fg_erase;
-
- Description
-
- The fg_erase routine clears the active video page. In text modes, fg_erase
- stores a space character (ASCII 32) with a gray foreground attribute in
- each character cell. In graphics modes, fg_erase sets each pixel to zero.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_reset
-
- Examples
-
- 8-9, 8-10, 9-12, 9-13, 9-22
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 48
- fg_fadein
-
- Prototype
-
- void fg_fadein (int delay);
- sub FGfadein (delay%)
- subroutine fg_fadein (integer*2 delay)
- procedure fg_fadein (delay : integer);
-
- Description
-
- The fg_fadein routine replaces the visual page contents with the hidden
- page contents. The replacement is done randomly in small sections, thus
- giving a "fade in" effect.
-
- Parameters
-
- delay controls the speed at which the replacement takes place. A value of
- zero means to perform the replacement as quickly as possible, while 1 is
- slightly slower, 2 is slower yet, and so forth.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_fadeout, fg_sethpage
-
- Examples
-
- 11-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 49
- fg_fadeout
-
- Prototype
-
- void fg_fadeout (int delay);
- sub FGfadeout (delay%)
- subroutine fg_fadeout (integer*2 delay)
- procedure fg_fadeout (delay : integer);
-
- Description
-
- The fg_fadeout routine replaces the visual page contents with pixels of the
- current color. The replacement is done randomly in small sections, thus
- giving a "fade out" effect.
-
- Parameters
-
- delay controls the speed at which the replacement takes place. A value of
- zero means to perform the replacement as quickly as possible, while 1 is
- slightly slower, 2 is slower yet, and so forth.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_fadein, fg_setcolor
-
- Examples
-
- 11-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 50
- fg_flipmask
-
- Prototype
-
- void fg_flipmask (char *map_array, int runs, int width);
- sub FGflipmask (map_array$, runs%, width%)
- subroutine fg_flipmask (integer*1 map_array, integer*2 runs, integer*2
- width)
- procedure fg_flipmask (var map_array : byte; runs, width : integer);
-
- Description
-
- The fg_flipmask routine displays a reversed clipped image stored as a
- masking map. The image will be positioned so that its lower left corner is
- at the graphics cursor position. Refer to the description of the
- fg_drawmask routine for more information about masking maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the masking map.
-
- runs is the number of pixel runs in the masking map.
-
- width is the width in pixels of the masking map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, or in the native EGA and
- VGA graphics video modes.
-
- See also
-
- fg_clipmask, fg_drawmask, fg_revmask, fg_setclip
-
- Examples
-
- 9-16
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 51
- fg_flpimage
-
- Prototype
-
- void fg_flpimage (char *map_array, int width, int height);
- sub FGflpimage (map_array$, width%, height%)
- subroutine fg_flpimage (integer*1 map_array, integer*2 width, integer*2
- height)
- procedure fg_flpimage (var map_array : byte; width, height : integer);
-
- Description
-
- The fg_flpimage routine displays a reversed clipped image stored as a mode-
- specific bit map. The image will be positioned so that its lower left
- corner is at the graphics cursor position. Only that part of the image
- that falls within the current clipping limits will be displayed, but the
- clipping limits will be extended to a byte boundary if necessary. Refer to
- the Fastgraph User's Guide for complete information about mode-specific bit
- maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the bit map.
-
- width is the width in bytes of the bit map.
-
- height is the height in bytes (pixel rows) of the bit map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_clpimage, fg_drwimage, fg_getimage, fg_revimage, fg_setclip
-
- Examples
-
- 9-8, 9-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 52
- fg_freepage
-
- Prototype
-
- int fg_freepage (int page_number);
- function FGfreepage% (page_number%)
- integer*2 function fg_freepage (integer*2 page_number)
- function fg_freepage (page_number : integer) : integer;
-
- Description
-
- The fg_freepage routine releases a virtual or logical video page created
- with the fg_allocate, fg_alloccms, fg_allocems, or fg_allocxms routines.
-
- Parameters
-
- page_number is the number of the virtual page to release. It must be
- between 0 and 63.
-
- Return value
-
- A status code indicating the success or failure of the virtual page
- release, as shown below.
-
- 0 = virtual page released
- 1 = specified page is a physical page
- 7 = virtual page released, but memory control blocks were destroyed
- 9 = attempt to use fg_freepage on a virtual or logical page that was
- never created
-
- Restrictions
-
- This routine has no effect if page_number references a physical video page,
- or a virtual page that was never created.
-
- See also
-
- fg_allocate, fg_alloccms, fg_allocems, fg_allocxms
-
- Examples
-
- 8-3, 8-4, 8-5, 8-6, 8-8, 8-9, 9-22, 9-23, 9-24, 9-25, 10-4, 10-5, 11-2,
- 11-5, 15-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 53
- fg_getaddr
-
- Prototype
-
- int fg_getaddr (void);
- function FGgetaddr% ()
- integer*2 function fg_getaddr ()
- function fg_getaddr : integer;
-
- Description
-
- The fg_getaddr routine returns the segment address of the active video
- page.
-
- Parameters
-
- none
-
- Return value
-
- The segment address of the active video page.
-
- Restrictions
-
- none
-
- See also
-
- fg_setpage
-
- Examples
-
- 8-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 54
- fg_getattr
-
- Prototype
-
- int fg_getattr (int row, int column);
- function FGgetattr% (row%, column%)
- integer*2 function fg_getattr (integer*2 row, integer*2 column)
- function fg_getattr (row, column : integer) : integer;
-
- Description
-
- The fg_getattr routine returns the character attribute stored at the
- specified position on the active video page.
-
- Parameters
-
- row is the row number of the character cell to examine, between 0 and 24
- (unless you've called fg_setlines to increase the number of lines per
- page).
-
- column is the column number of the character cell to examine, between 0 and
- 39 for 40-column modes, or between 0 and 79 for 80-column modes.
-
- Return value
-
- The character attribute stored at the specified position.
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- See also
-
- fg_getchar, fg_getimage
-
- Examples
-
- 7-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 55
- fg_getchar
-
- Prototype
-
- int fg_getchar (int row, int column);
- function FGgetchar% (row%, column%)
- integer*2 function fg_getchar (integer*2 row, integer*2 column)
- function fg_getchar (row, column : integer) : integer;
-
- Description
-
- The fg_getchar routine returns the character value stored at the specified
- position on the active video page.
-
- Parameters
-
- row is the row number of the character cell to examine, between 0 and 24
- (unless you've called fg_setlines to increase the number of lines per
- page).
-
- column is the column number of the character cell to examine, between 0 and
- 39 for 40-column modes, or between 0 and 79 for 80-column modes.
-
- Return value
-
- The character value stored at the specified position.
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- See also
-
- fg_getattr, fg_getimage
-
- Examples
-
- 7-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 56
- fg_getclock
-
- Prototype
-
- long fg_getclock (void);
- function FGgetclock& ()
- integer*4 function fg_getclock ()
- function fg_getclock : longint;
-
- Description
-
- The fg_getclock routine returns the number of clock ticks since midnight.
-
- Parameters
-
- none
-
- Return value
-
- The number of clock ticks since midnight. There are approximately 18.2
- clock ticks per second.
-
- Restrictions
-
- none
-
- Examples
-
- 14-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 57
- fg_getcolor
-
- Prototype
-
- int fg_getcolor (void);
- function FGgetcolor% ()
- integer*2 function fg_getcolor ()
- function fg_getcolor : integer;
-
- Description
-
- The fg_getcolor routine returns the current text attribute (in text modes)
- or color index (in graphics modes), as defined by the most recent call to
- fg_setattr or fg_setcolor.
-
- Parameters
-
- none
-
- Return value
-
- In graphics video modes, the return value is the current color index. In
- text modes, it is the current text attribute.
-
- Restrictions
-
- none
-
- See also
-
- fg_setattr, fg_setcolor
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 58
- fg_getdacs
-
- Prototype
-
- void fg_getdacs (int start, int count, char *values);
- sub FGgetdacs (start%, count%, values$)
- subroutine fg_getdacs (integer*2 start, integer*2 count, integer*1 values)
- procedure fg_getdacs (start, count : integer; var values : shortint);
-
- Description
-
- The fg_getdacs routine retrieves the red, green, and blue color components
- of a contiguous block of video DAC registers. Each color component is a
- value between 0 and 63; increasing values produce more intense colors.
- Reading many DAC registers with fg_getdacs is considerably faster than
- doing so individually with fg_getrgb.
-
- Parameters
-
- start is the starting video DAC register number, between 0 and 255.
-
- count is the number of contiguous DAC registers to retrieve, between 1 and
- 256. If the sum of start and count exceeds 255, the register numbers wrap
- around and resume with register number 0.
-
- values is the array that will receive the color components. The first
- three bytes of this array receive the red, green, and blue components for
- DAC register start, the next three bytes receive the components for
- register start+1, and so forth. The size of the values array must be at
- least 3*count bytes.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, or in any graphics video
- mode numbered 16 or below (because these video modes do not use DAC
- registers).
-
- See also
-
- fg_getrgb, fg_setdacs, fg_setrgb
-
- Examples
-
- 5-12
-
-
-
-
-
-
-
-
-
-
- 59
- fg_gethpage
-
- Prototype
-
- int fg_gethpage (void);
- function FGgethpage% ()
- integer*2 function fg_gethpage ()
- function fg_gethpage : integer;
-
- Description
-
- The fg_gethpage routine returns the hidden video page number (as set in the
- most recent call to fg_sethpage).
-
- Parameters
-
- none
-
- Return value
-
- The number of the hidden video page, between 0 and 63.
-
- Restrictions
-
- none
-
- See also
-
- fg_sethpage
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 60
- fg_getimage
-
- Prototype
-
- void fg_getimage (char *map_array, int width, int height);
- sub FGgetimage (map_array$, width%, height%)
- subroutine fg_getimage (integer*1 map_array, integer*2 width, integer*2
- height)
- procedure fg_getimage (var map_array : byte; width, height : integer);
-
- Description
-
- The fg_getimage routine retrieves an image as a mode-specific bit map. The
- graphics cursor position (the text cursor position in text video modes)
- defines the lower left corner of the image to retrieve. Refer to the
- Fastgraph User's Guide for complete information about mode-specific bit
- maps.
-
- Parameters
-
- map_array is the arbitrary-length array in which to retrieve the bit map.
-
- width is the width in bytes of the bit map.
-
- height is the height in bytes (pixel rows) of the bit map.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_clpimage, fg_drwimage, fg_flpimage, fg_getmap, fg_revimage
-
- Examples
-
- 9-20, 9-21
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 61
- fg_getindex
-
- Prototype
-
- int fg_getindex (int index);
- function FGgetindex% (index%)
- integer*2 function fg_getindex (integer*2 index)
- function fg_getindex (index : integer) : integer;
-
- Description
-
- The fg_getindex routine returns the color value assigned to a specified
- virtual color index.
-
- Parameters
-
- index is the virtual color index to retrieve, between 0 and 255.
-
- Return value
-
- In graphics video modes with fewer than 256 available colors, the return
- value is the color value assigned to the specified virtual index. In text
- modes and 256-color graphics modes, the fg_getindex routine returns the
- value passed to it.
-
- Restrictions
-
- none
-
- See also
-
- fg_defcolor, fg_palette, fg_setcolor
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 62
- fg_getkey
-
- Prototype
-
- void fg_getkey (unsigned char *key, unsigned char *aux);
- sub FGgetkey (key$, aux$)
- subroutine fg_getkey (integer*1 key, integer*1 aux)
- procedure fg_getkey (var key, aux : byte);
-
- Description
-
- The fg_getkey routine waits for a keystroke, or reads the next entry from
- the BIOS keyboard buffer (without echo). It returns the keystroke's
- standard or extended keyboard code (a list of these appears in Chapter 12
- of the Fastgraph User's Guide).
-
- Parameters
-
- key receives the keystroke's standard keyboard code if it represents a
- standard character. If the keystroke represents an extended character, key
- will be set to zero. In QuickBASIC, you must explicitly declare key as a
- fixed-length string variable of length 1.
-
- aux receives the keystroke's extended keyboard code if it represents an
- extended character. If the keystroke represents a standard character, aux
- will be set to zero. In QuickBASIC, you must explicitly declare aux as a
- fixed-length string variable of length 1.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_intkey, fg_waitkey
-
- Examples
-
- 12-1, 14-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 63
- fg_getlines
-
- Prototype
-
- int fg_getlines (void);
- function FGgetlines% ()
- integer*2 function fg_getlines ()
- function fg_getlines : integer;
-
- Description
-
- The fg_getlines routine returns the number of text rows per video page for
- the current video mode.
-
- Parameters
-
- none
-
- Return value
-
- The number of text rows per video page for the current video mode.
-
- Restrictions
-
- none
-
- See also
-
- fg_setlines
-
- Examples
-
- 3-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 64
- fg_getmap
-
- Prototype
-
- void fg_getmap (char *map_array, int width, int height);
- sub FGgetmap (map_array$, width%, height%)
- subroutine fg_getmap (integer*1 map_array, integer*2 width, integer*2
- height)
- procedure fg_getmap (var map_array : byte; width, height : integer);
-
- Description
-
- The fg_getmap routine retrieves an image as a mode-independent bit map.
- The graphics cursor position defines the lower left corner of the image to
- retrieve. Refer to the Fastgraph User's Guide for complete information
- about mode-independent bit maps.
-
- Parameters
-
- map_array is the arbitrary-length array in which to retrieve the bit map.
- Each byte of map_array represents eight pixels. Pixels of the current
- color set the corresponding bits in map_array. Pixels of other colors make
- the corresponding map_array bits zero. In QuickBASIC, you must explicitly
- declare map_array as a fixed-length string variable of length width*height.
-
- width is the width in bytes of the bit map.
-
- height is the height in bytes (pixel rows) of the bit map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_drawmap, fg_getimage
-
- Examples
-
- 9-18, 9-19
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 65
- fg_getmaxx
-
- Prototype
-
- int fg_getmaxx (void);
- function FGgetmaxx% ()
- integer*2 function fg_getmaxx ()
- function fg_getmaxx : integer;
-
- Description
-
- The fg_getmaxx routine returns the maximum x coordinate in screen space
- when used in a graphics video mode. It returns the maximum column number
- in character space when used in a text mode. In either case, the maximum x
- coordinate is one less than the horizontal screen resolution.
-
- Parameters
-
- none
-
- Return value
-
- The maximum x coordinate.
-
- Restrictions
-
- none
-
- See also
-
- fg_getmaxy
-
- Examples
-
- 4-1, 4-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 66
- fg_getmaxy
-
- Prototype
-
- int fg_getmaxy (void);
- function FGgetmaxy% ()
- integer*2 function fg_getmaxy ()
- function fg_getmaxy : integer;
-
- Description
-
- The fg_getmaxy routine returns the maximum y coordinate in screen space
- when used in a graphics video mode. It returns the maximum row number in
- character space when used in a text mode. In either case, the maximum y
- coordinate is one less than the vertical screen resolution.
-
- Parameters
-
- none
-
- Return value
-
- The maximum y coordinate.
-
- Restrictions
-
- none
-
- See also
-
- fg_getmaxx
-
- Examples
-
- 4-1, 4-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 67
- fg_getmode
-
- Prototype
-
- int fg_getmode (void);
- function FGgetmode% ()
- integer*2 function fg_getmode ()
- function fg_getmode : integer;
-
- Description
-
- The fg_getmode routine returns the current video mode number. It is
- typically one of the first Fastgraph routines called in a program. The
- value returned by fg_getmode can be retained to restore the original video
- mode when a program transfers control back to DOS.
-
- Parameters
-
- none
-
- Return value
-
- The current video mode number, between 0 and 23. Refer to the description
- of the fg_setmode routine for descriptions of each video mode.
-
- Restrictions
-
- none
-
- See also
-
- fg_setmode
-
- Examples
-
- 3-3, 3-4, 3-5, 3-6, 3-7, 3-8, 3-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 68
- fg_getpage
-
- Prototype
-
- int fg_getpage (void);
- function FGgetpage% ()
- integer*2 function fg_getpage ()
- function fg_getpage : integer;
-
- Description
-
- The fg_getpage routine returns the active video page number (as set in the
- most recent call to fg_setpage).
-
- Parameters
-
- none
-
- Return value
-
- The number of the active video page, between 0 and 63.
-
- Restrictions
-
- none
-
- See also
-
- fg_setpage
-
- Examples
-
- 8-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 69
- fg_getpixel
-
- Prototype
-
- int fg_getpixel (int ix, int iy);
- function FGgetpixel% (ix%, iy%)
- integer*2 function fg_getpixel (integer*2 ix, integer*2 iy)
- function fg_getpixel (ix, iy : integer) : integer;
-
- Description
-
- The fg_getpixel routine returns the color value of a specified pixel.
-
- Parameters
-
- ix is the pixel's screen space x coordinate.
-
- iy is the pixel's screen space y coordinate.
-
- Return value
-
- The color value of the pixel, between 0 and one less than the number of
- colors available in the current video mode. In text modes, fg_getpixel
- always returns zero.
-
- Restrictions
-
- none
-
- See also
-
- fg_point, fg_pointw
-
- Examples
-
- 6-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 70
- fg_getrgb
-
- Prototype
-
- void fg_getrgb (int number, int *red, int *green, int *blue);
- sub FGgetrgb (number%, red%, green%, blue%)
- subroutine fg_getrgb (integer*2 number, integer*2 red, integer*2 green,
- integer*2 blue)
- procedure fg_getrgb (number : integer; var red, green, blue : integer);
-
- Description
-
- The fg_getrgb routine returns the red, green, and blue color components for
- a specified video DAC register. Each color component is a value between 0
- and 63; increasing values produce more intense colors.
-
- Parameters
-
- number is the video DAC register number. It must be between 0 and 15 in
- video modes 17 and 18, or between 0 and 255 in modes 19 through 23.
-
- red, green, and blue respectively receive the red, green, and blue
- components of the specified video DAC register.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, or in any graphics video
- mode numbered 16 or below (because these video modes do not use DAC
- registers).
-
- See also
-
- fg_getdacs, fg_palette, fg_setdacs, fg_setrgb
-
- Examples
-
- 5-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 71
- fg_getvpage
-
- Prototype
-
- int fg_getvpage (void);
- function FGgetvpage% ()
- integer*2 function fg_getvpage ()
- function fg_getvpage : integer;
-
- Description
-
- The fg_getvpage routine returns the visual video page number (as set in the
- most recent call to fg_setvpage).
-
- Parameters
-
- none
-
- Return value
-
- The number of the visual video page, between 0 and 63.
-
- Restrictions
-
- none
-
- See also
-
- fg_setvpage
-
- Examples
-
- 8-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 72
- fg_getworld
-
- Prototype
-
- void fg_getworld (double *xmin, double *xmax, double *ymin, double *ymax);
- sub FGgetworld (xmin#, xmax#, ymin#, ymax#)
- subroutine fg_getworld (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax)
- procedure fg_getworld (var xmin, xmax, ymin, ymax : real);
-
- Description
-
- The fg_getworld routine returns the current world space limits, as defined
- in the most recent call to fg_setworld.
-
- Parameters
-
- xmin receives the world space coordinate of the screen's left edge.
-
- xmax receives the world space coordinate of the screen's right edge.
-
- ymin receives the world space coordinate of the screen's top edge.
-
- ymax receives the world space coordinate of the screen's bottom edge.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_setworld
-
- Examples
-
- 4-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 73
- fg_getxjoy
-
- Prototype
-
- int fg_getxjoy (int n);
- function FGgetxjoy% (n%)
- integer*2 function fg_getxjoy (integer*2 n)
- function fg_getxjoy (n : integer) : integer;
-
- Description
-
- The fg_getxjoy routine returns the horizontal coordinate position of the
- specified joystick. The actual coordinates depend on the processor speed
- and brand of joystick used.
-
- Parameters
-
- n specifies the joystick number, either 1 or 2.
-
- Return value
-
- If the return value is positive, it represents the current horizontal
- coordinate position of the requested joystick. If the return value is -1,
- it means the requested joystick has not been initialized or is not present.
-
- Restrictions
-
- Before using this routine, you must use the fg_initjoy routine to
- initialize the requested joystick.
-
- See also
-
- fg_button, fg_getyjoy, fg_initjoy, fg_intjoy
-
- Examples
-
- 12-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 74
- fg_getxpos
-
- Prototype
-
- int fg_getxpos (void);
- function FGgetxpos% ()
- integer*2 function fg_getxpos ()
- function fg_getxpos : integer;
-
- Description
-
- The fg_getxpos routine returns the screen space x coordinate of the
- graphics cursor position.
-
- Parameters
-
- none
-
- Return value
-
- The x coordinate of graphics cursor position.
-
- Restrictions
-
- none
-
- See also
-
- fg_getypos
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 75
- fg_getyjoy
-
- Prototype
-
- int fg_getyjoy (int n);
- function FGgetyjoy% (n%)
- integer*2 function fg_getyjoy (integer*2 n)
- function fg_getyjoy (n : integer) : integer;
-
- Description
-
- The fg_getyjoy routine returns the vertical coordinate position of the
- specified joystick. The actual coordinates depend on the processor speed
- and brand of joystick used.
-
- Parameters
-
- n specifies the joystick number, either 1 or 2.
-
- Return value
-
- If the return value is positive, it represents the current vertical
- coordinate position of the requested joystick. If the return value is -1,
- it means the requested joystick has not been initialized or is not present.
-
- Restrictions
-
- Before using this routine, you must use the fg_initjoy routine to
- initialize the requested joystick.
-
- See also
-
- fg_button, fg_getxjoy, fg_initjoy, fg_intjoy
-
- Examples
-
- 12-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 76
- fg_getypos
-
- Prototype
-
- int fg_getypos (void);
- function FGgetypos% ()
- integer*2 function fg_getypos ()
- function fg_getypos : integer;
-
- Description
-
- The fg_getypos routine returns the screen space y coordinate of the
- graphics cursor position.
-
- Parameters
-
- none
-
- Return value
-
- The y coordinate of graphics cursor position.
-
- Restrictions
-
- none
-
- See also
-
- fg_getxpos
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 77
- fg_hush
-
- Prototype
-
- void fg_hush (void);
- sub FGhush ()
- subroutine fg_hush ()
- procedure fg_hush;
-
- Description
-
- The fg_hush routine immediately stops asynchronous sound started with the
- fg_musicb, fg_sounds, or fg_voices routines. It has no effect if there is
- no asynchronous sound in progress.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_hushnext, fg_musicb, fg_sounds, fg_suspend, fg_voices
-
- Examples
-
- 13-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 78
- fg_hushnext
-
- Prototype
-
- void fg_hushnext (void);
- sub FGhushnext ()
- subroutine fg_hushnext ()
- procedure fg_hushnext;
-
- Description
-
- The fg_hushnext routine stops asynchronous sound started with the
- fg_musicb, fg_sounds, or fg_voices routines, but not until the current
- repetition finishes. It has no effect if there is no asynchronous sound in
- progress.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect unless the asynchronous sound is continuous.
-
- See also
-
- fg_hush, fg_musicb, fg_sounds, fg_suspend, fg_voices
-
- Examples
-
- 13-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 79
- fg_imagesiz
-
- Prototype
-
- long fg_imagesiz (int width, int height);
- function FGimagesiz& (width%, height%)
- integer*4 function fg_imagesiz (integer*2 width, integer*2 height)
- function fg_imagesiz (width, height : integer) : longint;
-
- Description
-
- The fg_imagesiz routine determines the number of bytes required to store a
- mode-specific bit-mapped image of specified dimensions.
-
- Parameters
-
- width specifies the image width in pixels.
-
- height specifies the image height in pixels.
-
- Return value
-
- The number of bytes required to store a mode-specific bit-mapped image of
- the specified size in the current video mode.
-
- Restrictions
-
- none
-
- See also
-
- fg_clpimage, fg_drwimage, fg_flpimage, fg_getimage, fg_revimage
-
- Examples
-
- 9-20
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 80
- fg_initems
-
- Prototype
-
- int fg_initems (void);
- function FGinitems% ()
- integer*2 function fg_initems ()
- function fg_initems : integer;
-
- Description
-
- The fg_initems routine initializes expanded memory (EMS) for use with
- Fastgraph.
-
- Parameters
-
- none
-
- Return value
-
- 0 = success
- -1 = Expanded Memory Manager not installed or not accessible
-
- Restrictions
-
- This routine requires an Expanded Memory Manager (EMM) that conforms to the
- Lotus/Intel/Microsoft Expanded Memory Specification (LIM-EMS) version 3.2
- or later. On 80386 and 80486 systems, the EMM386.EXE device driver
- supplied with DOS 5.0 can be used to treat some or all of extended memory
- as expanded memory.
-
- The Expanded Memory Manager uses interrupt 67h. As a result, this vector
- is not available for application programs.
-
- See also
-
- fg_allocems, fg_initxms
-
- Examples
-
- 8-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 81
- fg_initjoy
-
- Prototype
-
- int fg_initjoy (int n);
- function FGinitjoy% (n%)
- integer*2 function fg_initjoy (integer*2 n)
- function fg_initjoy (n : integer) : integer;
-
- Description
-
- The fg_initjoy routine initializes either joystick and must be called
- before using fg_getxjoy, fg_getyjoy, or fg_intjoy.
-
- Parameters
-
- n specifies the joystick number, either 1 or 2.
-
- Return value
-
- If the return value is 0, it means the joystick initialization was
- successful. If it is -1, it means the machine has no game port, or the
- requested joystick is not connected to the game port.
-
- Restrictions
-
- When you call fg_initjoy, Fastgraph assumes the requested joystick is
- centered.
-
- See also
-
- fg_button, fg_getxjoy, fg_getyjoy, fg_intjoy
-
- Examples
-
- 12-10, 12-11, 12-12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 82
- fg_initw
-
- Prototype
-
- void fg_initw (void);
- sub FGinitw ()
- subroutine fg_initw ()
- procedure fg_initw;
-
- Description
-
- The fg_initw routine initializes Fastgraph's internal parameters for world
- space. This routine must be called once, before any other routine that
- uses world space coordinates.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- Examples
-
- 4-3, 6-4, 6-8, 7-8, 7-9, 7-10, 7-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 83
- fg_initxms
-
- Prototype
-
- int fg_initxms (void);
- function FGinitxms% ()
- integer*2 function fg_initxms ()
- function fg_initxms : integer;
-
- Description
-
- The fg_initxms routine initializes extended memory (XMS) for use with
- Fastgraph.
-
- Parameters
-
- none
-
- Return value
-
- 0 = success
- -1 = XMS driver not installed or not accessible
-
- Restrictions
-
- This routine requires an external driver that conforms to the
- Lotus/Intel/Microsoft/AST eXtended Memory Specification (XMS) version 2.0,
- such as HIMEM.SYS. XMS drivers require an 80286, 80386, or 80486 system.
-
- See also
-
- fg_allocxms, fg_initems
-
- Examples
-
- 8-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 84
- fg_intjoy
-
- Prototype
-
- void fg_intjoy (int n, char *key, char *aux);
- sub FGintjoy (n%, key$, aux$)
- subroutine fg_intjoy (integer*2 n, integer*1 key, integer*1 aux)
- procedure fg_intjoy (n : integer; var key, aux : byte);
-
- Description
-
- The fg_intjoy routine returns the standard and extended keyboard codes
- analogous to the current position and button status of the specified
- joystick.
-
- Parameters
-
- n specifies the joystick number, either 1 or 2.
-
- key receives the joystick's button status. If any button on the requested
- joystick is pressed, key is set to 13, the standard keyboard code for the
- Enter key. If no buttons are pressed, key is set to zero. In QuickBASIC,
- you must explicitly declare key as a fixed-length string variable of length
- 1.
-
- aux receives the joystick's analog position, as listed below. In
- QuickBASIC, you must explicitly declare aux as a fixed-length string
- variable of length 1.
-
- If the requested joystick has not been initialized, both key and aux will
- be set to zero.
-
- Return value
-
- none
-
- Restrictions
-
- Before using this routine, you must use the fg_initjoy routine to
- initialize the requested joystick.
-
- See also
-
- fg_button, fg_getxjoy, fg_getyjoy, fg_initjoy, fg_intkey
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 85
- fg_intjoy (continued)
-
- Examples
-
- 12-12
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 86
- fg_intkey
-
- Prototype
-
- void fg_intkey (unsigned char *key, unsigned char *aux);
- sub FGintkey (key$, aux$)
- subroutine fg_intkey (integer*1 key, integer*1 aux)
- procedure fg_intkey (var key, aux : byte);
-
- Description
-
- The fg_intkey routine reads the next entry from the BIOS keyboard buffer
- (without echo) and returns the keystroke's standard or extended keyboard
- code (a list of these appears in Chapter 12 of the Fastgraph User's Guide).
- It is similar to fg_getkey, but it does not wait for a keystroke if the
- keyboard buffer is empty.
-
- Parameters
-
- key receives the keystroke's standard keyboard code if it represents a
- standard character. If the keystroke represents an extended character, key
- will be set to zero. In QuickBASIC, you must explicitly declare key as a
- fixed-length string variable of length 1.
-
- aux receives the keystroke's extended keyboard code if it represents an
- extended character. If the keystroke represents a standard character, aux
- will be set to zero. In QuickBASIC, you must explicitly declare aux as a
- fixed-length string variable of length 1.
-
- If the BIOS keyboard buffer is empty, both key and aux will be set to zero.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_getkey, fg_intjoy, fg_waitkey
-
- Examples
-
- 12-2, 13-7, 14-1, 14-3
-
-
-
-
-
-
-
-
-
-
-
-
- 87
- fg_locate
-
- Prototype
-
- void fg_locate (int row, int column);
- sub FGlocate (row%, column%)
- subroutine fg_locate (integer*2 row, integer*2 column)
- procedure fg_locate (row, column : integer);
-
- Description
-
- The fg_locate routine changes the text cursor position for the active
- display page. The fg_setmode routine sets each page's text cursor position
- to (0,0).
-
- Parameters
-
- row is the text cursor's destination row number, between 0 and one less
- than the number of character rows available.
-
- column is text cursor's destination column number, between 0 and one less
- than the number of character columns available.
-
- Return value
-
- none
-
- Restrictions
-
- The first eight video pages (0 to 7) each have their own text cursor. Each
- subsequent group of 8 video pages (pages 8 through 15, pages 16 to 23, and
- so forth) respectively share the same text cursor positions as the first 8
- pages. For example, changing the text cursor position on video page 9 also
- changes its position on video page 1.
-
- See also
-
- fg_where
-
- Examples
-
- 7-1 to 7-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 88
- fg_makepcx
-
- Prototype
-
- int fg_makepcx (int minx, int maxx, int miny, int maxy, char *filename);
- function FGmakepcx% (minx%, maxx%, miny%, maxy%, filename$)
- integer*2 function fg_makepcx (integer*2 minx, integer*2 maxx, integer*2
- miny, integer*2 maxy,
- character*(*) filename)
- function fg_makepcx (minx, maxx, miny, maxy : integer; filename : string) :
- integer;
-
- Description
-
- The fg_makepcx routine creates a PCX file from the specified rectangular
- region of the active video page. The region's extremes are expressed in
- screen space units.
-
- Parameters
-
- minx is the x coordinate of the region's left edge. Its value is reduced
- to a byte boundary if necessary.
-
- maxx is the x coordinate of the region's right edge. It must be greater
- than or equal to minx.
-
- miny is the y coordinate of the region's top edge.
-
- maxy is the y coordinate of the region's bottom edge. It must be greater
- than or equal to miny.
-
- filename is the name of the PCX file to create. A device and path name may
- be included as part of the file name. The file name must be terminated by
- a null character (that is, a zero byte). If an identically named file
- already exists, it is overwritten.
-
- Return value
-
- 0 = success
- 1 = file not created
-
- Restrictions
-
- The fg_makepcx routine has no effect in text video modes or in the Hercules
- low-resolution graphics mode. Refer to the description of the fg_disppcx
- routine for information about PCX file compatibility between different
- video modes.
-
- In the Tandy/PCjr 16-color graphics mode (mode 9) and the native EGA
- graphics modes (modes 13 through 16), the palette registers are not
- readable. Hence, fg_makepcx will use the default palette settings when
- used in these video modes.
-
- See also
-
- fg_disppcx
-
-
- 89
- fg_makepcx (continued)
-
- Examples
-
- 9-15
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 90
- fg_maprgb
-
- Prototype
-
- int fg_maprgb (int red, int green, int blue);
- function FGmaprgb% (red%, green%, blue%)
- integer*2 function fg_maprgb (integer*2 red, integer*2 green, integer*2
- blue)
- function fg_maprgb (red, green, blue : integer) : integer;
-
- Description
-
- The fg_maprgb routine maps six-bit red, green, and blue color components
- into a suitable palette value for the current video mode. You can then
- pass this value to the fg_palette routine.
-
- Parameters
-
- red, green, and blue respectively specify the color's red, green, and blue
- components. These values must be between 0 and 63; increasing values
- produce more intense colors.
-
- Return value
-
- The mode-specific palette value for the specified color components.
-
- Restrictions
-
- This routine is meaningful only in 16-color graphics video modes.
-
- See also
-
- fg_palette, fg_palettes, fg_setrgb
-
- Examples
-
- 5-13
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 91
- fg_measure
-
- Prototype
-
- int fg_measure (void);
- function FGmeasure% ()
- integer*2 function fg_measure ()
- function fg_measure : integer;
-
- Description
-
- The fg_measure routine returns the approximate number of delay units per
- clock tick. This quantity is proportional to the system's processor speed.
- Delay units are used by the fg_stall routine.
-
- Parameters
-
- none
-
- Return value
-
- The approximate number of delay units per clock tick. Typical values for
- some common systems are:
-
- system delay units
- type per clock tick
-
- Tandy 1000 HX 675
- 10 MHz 80286 3,000
- 25 MHz 80386 11,000
-
- Restrictions
-
- none
-
- See also
-
- fg_stall
-
- Examples
-
- 14-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 92
- fg_memavail
-
- Prototype
-
- long fg_memavail (void);
- function FGmemavail& ()
- integer*4 function fg_memavail ()
- function fg_memavail : longint;
-
- Description
-
- The fg_memavail routine determines the amount of conventional memory
- available to DOS.
-
- Parameters
-
- none
-
- Return value
-
- The amount of conventional memory (in bytes) available to DOS.
-
- Restrictions
-
- none
-
- Examples
-
- 15-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 93
- fg_mousebut
-
- Prototype
-
- void fg_mousebut (int number, int *count, int *lastx, int *lasty);
- sub FGmousebut (number%, count%, lastx%, lasty%)
- subroutine fg_mousebut (integer*2 number, integer*2 count, integer*2 lastx,
- integer*2 lasty)
- procedure fg_mousebut (number : integer; var count, lastx, lasty :
- integer);
-
- Description
-
- The fg_mousebut routine returns information about mouse button press or
- release counts, as well as the mouse cursor position at the time of the
- last button press or release.
-
- Parameters
-
- number is the mouse button for which to report information (1 means the
- left button, 2 the right button, and 3 the middle button). If number is
- positive, button press counts will be reported. If it is negative, release
- counts will be reported.
-
- count receives the number of press or release counts for the requested
- button since the last check, or since calling the fg_mouseini routine.
-
- lastx receives the x coordinate (in screen space) of the mouse cursor
- position at the time of the last press or release of the requested button.
- If count is zero, lastx is also set to zero.
-
- lasty receives the y coordinate (in screen space) of the mouse cursor
- position at the time of the last press or release of the requested button.
- If count is zero, lasty is also set to zero.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_mousepos
-
- Examples
-
- 12-7
-
-
-
-
-
-
-
-
- 94
- fg_mousecur
-
- Prototype
-
- void fg_mousecur (int screen_mask, int cursor_mask);
- sub FGmousecur (screen_mask%, cursor_mask%)
- subroutine fg_mousecur (integer*2 screen_mask, integer*2 cursor_mask)
- procedure fg_mousecur (screen_mask, cursor_mask : integer);
-
- Description
-
- The fg_mousecur routine defines the appearance of the mouse cursor in text
- video modes. Refer to Chapter 12 of the Fastgraph User's Guide for
- complete information about defining the mouse cursor in text modes.
-
- Parameters
-
- screen_mask defines the screen mask. When you position the mouse over a
- specific character cell, the mouse driver logically ANDs the screen mask
- with the existing contents of that cell.
-
- cursor_mask defines the cursor mask. After logically ANDing the screen
- mask with the contents of a character cell, the mouse driver XORs the
- cursor mask with the result to produce the mouse cursor.
-
- The binary structure of screen_mask and cursor_mask is:
-
- bits meaning
-
- 0 to 7 ASCII character value
- 8 to 11 foreground color
- 12 to 14 background color
- 15 blink
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- See also
-
- fg_mouseini, fg_mouseptr, fg_mousevis
-
- Examples
-
- 12-8
-
-
-
-
-
-
-
-
-
- 95
- fg_mouseini
-
- Prototype
-
- int fg_mouseini (void);
- function FGmouseini% ()
- integer*2 function fg_mouseini ()
- function fg_mouseini : integer;
-
- Description
-
- The fg_mouseini routine initializes the mouse and must be called before any
- of Fastgraph's other mouse support routines.
-
- Parameters
-
- none
-
- Return value
-
- If the return value is positive, it indicates the number of buttons on the
- mouse being used (2 or 3). If the return value is -1, it means the
- initialization failed because the mouse driver has not been loaded or the
- mouse is not physically connected.
-
- Restrictions
-
- There is no mouse support available in video modes 20 through 23. The
- fg_mouseini routine will always return -1 when used in these video modes.
-
- See also
-
- fg_mousebut, fg_mousecur, fg_mouselim, fg_mousemov, fg_mousepos,
- fg_mouseptr, fg_mousespd, fg_mousevis, fg_resize
-
- Examples
-
- 12-5, 12-6, 12-7, 12-8, 12-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 96
- fg_mouselim
-
- Prototype
-
- void fg_mouselim (int minx, int maxx, int miny, int maxy);
- sub FGmouselim (minx%, maxx%, miny%, maxy%)
- subroutine fg_mouselim (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy)
- procedure fg_mouselim (minx, maxx, miny, maxy : integer);
-
- Description
-
- The fg_mouselim routine defines the rectangular area in which the mouse
- cursor may move. In graphics modes, the area is defined in screen space
- coordinates. In text modes, it is defined in rows and columns.
-
- Parameters
-
- minx is the x coordinate of the area's left edge.
-
- maxx is the x coordinate of the area's right edge. It must be greater than
- or equal to the value of minx.
-
- miny is the y coordinate of the area's top edge.
-
- maxy is the y coordinate of the area's bottom edge. It must be greater
- than or equal to the value of miny.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_mouseini, fg_mousemov
-
- Examples
-
- 12-6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 97
- fg_mousemov
-
- Prototype
-
- void fg_mousemov (int ix, int iy);
- sub FGmousemov (ix%, iy%)
- subroutine fg_mousemov (integer*2 ix, integer*2 iy)
- procedure fg_mousemov (ix, iy : integer);
-
- Description
-
- The fg_mousemov routine moves the mouse cursor to the specified character
- cell (in text modes) or screen space position (in graphics modes). The
- mouse cursor is moved whether or not it is currently visible.
-
- Parameters
-
- ix is the x coordinate of the mouse cursor position.
-
- iy is the y coordinate of the mouse cursor position.
-
- Return value
-
- none
-
- Restrictions
-
- If you attempt to move the mouse cursor outside the area defined by
- fg_mouselim, the fg_mousemov routine just positions the cursor at the
- nearest point possible within that area.
-
- See also
-
- fg_mouseini, fg_mouselim
-
- Examples
-
- 12-6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 98
- fg_mousepos
-
- Prototype
-
- void fg_mousepos (int *ix, int *iy, int *buttons);
- sub FGmousepos (ix%, iy%, buttons%)
- subroutine fg_mousepos (integer*2 ix, integer*2 iy, integer*2 buttons)
- procedure fg_mousepos (var ix, iy, buttons : integer);
-
- Description
-
- The fg_mousepos routine returns the current mouse position and button
- status. In graphics modes, the position is defined in screen space
- coordinates. In text modes, it is defined in rows and columns.
-
- Parameters
-
- ix receives the x coordinate of the mouse cursor position.
-
- iy receives the y coordinate of the mouse cursor position.
-
- buttons receives a bit mask representing the button status, where each bit
- is set if the corresponding button is pressed. Bit 0 corresponds to the
- left button, bit 1 to the right button, and bit 2 to the middle button.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_mousebut, fg_mouseini
-
- Examples
-
- 12-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 99
- fg_mouseptr
-
- Prototype
-
- void fg_mouseptr (int *masks, int xoffset, int yoffset);
- sub FGmouseptr (masks%(), xoffset%, yoffset%)
- subroutine fg_mouseptr (integer*2 masks, integer*2 xoffset, integer*2
- yoffset)
- procedure fg_mouseptr (var masks : integer; xoffset, yoffset : integer);
-
- Description
-
- The fg_mouseptr routine defines the shape and appearance of the mouse
- cursor in graphics video modes. Refer to Chapter 12 of the Fastgraph
- User's Guide for complete information about defining the mouse cursor in
- graphics modes.
-
- Parameters
-
- masks is a 32-element array containing the 16-element screen mask followed
- by the 16-element cursor mask. The mouse driver displays the mouse cursor
- by logically ANDing video memory with the screen mask, and then XORing that
- result with the cursor mask. The first item of each mask corresponds to
- the top row of the mouse cursor. The following table summarizes the cursor
- appearance for all possible combinations of mask bits.
-
- screen mask bit cursor mask bit resulting cursor pixel
-
- 0 0 black
- 0 1 white
- 1 0 unchanged
- 1 1 inverted
-
- xoffset is the x coordinate of the "hot spot" relative to the upper left
- corner of the mouse cursor.
-
- yoffset is the y coordinate of the "hot spot" relative to the upper left
- corner of the mouse cursor.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_mousecur, fg_mouseini, fg_mousevis
-
- Examples
-
- 12-9
-
-
-
-
- 100
- fg_mousespd
-
- Prototype
-
- void fg_mousespd (int xmickeys, int ymickeys);
- sub FGmousespd (xmickeys%, ymickeys%)
- subroutine fg_mousespd (integer*2 xmickeys, integer*2 ymickeys)
- procedure fg_mousespd (xmickeys, ymickeys : integer);
-
- Description
-
- The fg_mousespd routine defines the number of mickey units per eight pixels
- of cursor movement (one mickey unit equals 1/200 of an inch). This
- effectively controls the speed at which the mouse cursor moves relative to
- the movement of the mouse itself.
-
- Parameters
-
- xmickeys is the number of mickey units per eight pixels of horizontal mouse
- cursor movement (the default is 8).
-
- ymickeys is the number of mickey units per eight pixels of vertical mouse
- cursor movement (the default is 16).
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_mouseini
-
- Examples
-
- 12-6
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 101
- fg_mousevis
-
- Prototype
-
- void fg_mousevis (int state);
- sub FGmousevis (state%)
- subroutine fg_mousevis (integer*2 state)
- procedure fg_mousevis (state : integer);
-
- Description
-
- The fg_mousevis routine makes the mouse cursor visible or invisible. After
- calling fg_mouseini, the mouse cursor is invisible.
-
- Parameters
-
- state defines the mouse cursor visibility. If state is 0, the mouse cursor
- is made invisible. If it is 1, the mouse cursor is made visible.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_mouseini
-
- Examples
-
- 12-6, 12-7, 12-8, 12-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 102
- fg_move
-
- Prototype
-
- void fg_move (int ix, int iy);
- sub FGmove (ix%, iy%)
- subroutine fg_move (integer*2 ix, integer*2 iy)
- procedure fg_move (ix, iy : integer);
-
- Description
-
- The fg_move routine establishes the graphics cursor position at an absolute
- screen space point. The fg_setmode routine sets the graphics cursor
- position to (0,0).
-
- Parameters
-
- ix is the screen space x coordinate of the graphics cursor's new position.
-
- iy is the screen space y coordinate of the graphics cursor's new position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_moverel, fg_moverw, fg_movew
-
- Examples
-
- 6-2, 6-3, 6-5, 6-6, 6-9, 6-15, 9-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 103
- fg_moverel
-
- Prototype
-
- void fg_moverel (int ix, int iy);
- sub FGmoverel (ix%, iy%)
- subroutine fg_moverel (integer*2 ix, integer*2 iy)
- procedure fg_moverel (ix, iy : integer);
-
- Description
-
- The fg_moverel routine establishes the graphics cursor position at a screen
- space point relative to the current position.
-
- Parameters
-
- ix is the screen space x offset of the graphics cursor's new position.
-
- iy is the screen space y offset of the graphics cursor's new position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_move, fg_moverw, fg_movew
-
- Examples
-
- 6-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 104
- fg_moverw
-
- Prototype
-
- void fg_moverw (double x, double y);
- sub FGmoverw (x#, y#)
- subroutine fg_moverw (real*8 x, real*8 y)
- procedure fg_moverw (x, y : real);
-
- Description
-
- The fg_moverw routine establishes the graphics cursor position at a world
- space point relative to the current position.
-
- Parameters
-
- x is the world space x offset of the graphics cursor's new position.
-
- y is the world space y offset of the graphics cursor's new position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_move, fg_moverel, fg_movew
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 105
- fg_movew
-
- Prototype
-
- void fg_movew (double x, double y);
- sub FGmovew (x#, y#)
- subroutine fg_movew (real*8 x, real*8 y)
- procedure fg_movew (x, y : real);
-
- Description
-
- The fg_movew routine establishes the graphics cursor position at an
- absolute world space point. The fg_initw routine sets the graphics cursor
- position to (0.0,0.0).
-
- Parameters
-
- x is the world space x coordinate of the graphics cursor's new position.
-
- y is the world space y coordinate of the graphics cursor's new position.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_move, fg_moverel, fg_moverw
-
- Examples
-
- 6-4, 6-8, 7-8, 7-9, 7-10, 7-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 106
- fg_music
-
- Prototype
-
- void fg_music (char *music_string);
- sub FGmusic (music_string$)
- subroutine fg_music (character*(*) music_string)
- procedure fg_music (music_string : string);
-
- Description
-
- The fg_music routine uses the programmable timer to play a sequence of
- musical tones.
-
- Parameters
-
- music_string is an arbitrary-length sequence of music commands, followed by
- a dollar-sign ($) terminator. Music commands are summarized in the
- following table:
-
- commandmeaning
-
- A thru G Play the specified note in the current octave.
-
- # May be appended to a note character (A through G) to make that note
- sharp.
-
- . May be appended to a note character (A through G) or a sharp (#) to
- extend that note by half its normal length. Multiple dots may be
- used, and each will again extend the note by half as much as the
- previous extension.
-
- Ln Set the length of subsequent notes and pauses. The value of n is
- an integer between 1 and 64, where 1 indicates a whole note, 2 a
- half note, 4 a quarter note, and so forth. If no L command is
- present, L4 is assumed.
-
- On Set the octave for subsequent notes. The value of n may be an
- integer between 0 and 6 to set a specific octave. It also can be a
- plus (+) or minus (-) character to increment or decrement the
- current octave number. Octave 4 contains middle C, and if no O
- command is present, O4 is assumed.
-
- P Pause (rest) for the duration specified by the most recent L
- command.
-
- Sn Set the amount of silence between notes. The value of n is an
- integer between 0 and 2. If n is 0, each note plays for the full
- period set by the L command (music legato). If n is 1, each note
- plays for 7/8 the period set by the L command (music normal). If n
- is 2, each note plays for 3/4 the period set by the L command
- (music staccato). If no S command is present, S1 is assumed.
-
- Tn Set the tempo of the music (the number of quarter notes per
- minute). The value of n is an integer between 32 and 255. If no T
- command is present, T120 is assumed.
-
-
- 107
- fg_music (continued)
-
- Parameters (continued)
-
- The fg_music routine ignores any other characters in music_string. It also
- ignores command values outside the allowable range, such as T20 or O8.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect if there is asynchronous sound in progress.
-
- See also
-
- fg_musicb
-
- Examples
-
- 13-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 108
- fg_musicb
-
- Prototype
-
- void fg_musicb (char *music_string, int ntimes);
- sub FGmusicb (music_string$, ntimes%)
- subroutine fg_musicb (character*(*) music_string, integer*2 ntimes)
- procedure fg_musicb (music_string : string; ntimes : integer);
-
- Description
-
- The fg_musicb routine uses the programmable timer to play a sequence of
- musical tones, concurrent with other activity.
-
- Parameters
-
- music_string is an arbitrary-length sequence of music commands, followed by
- a dollar-sign ($) terminator. Refer to the description of the fg_music
- routine for a complete list of music commands.
-
- ntimes specifies the number of times to cycle through the music commands in
- music_string. If ntimes is negative, the music will play repetitively
- until you stop it with the fg_hush or fg_hushnext routine.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect if there is asynchronous sound already in
- progress. To allow for fast-tempo music, Fastgraph temporarily quadruples
- the clock tick interrupt rate from 18.2 to 72.8 ticks per second while
- producing asynchronous sound. Because many disk controllers rely on the
- 18.2 tick per second clock rate to synchronize disk accesses, your programs
- should not perform any disk operations when asynchronous sound is in
- progress.
-
- See also
-
- fg_hush, fg_hushnext, fg_music, fg_playing, fg_resume, fg_suspend
-
- Examples
-
- 13-6, 13-7, 13-8
-
-
-
-
-
-
-
-
-
-
-
-
-
- 109
- fg_numlock
-
- Prototype
-
- int fg_numlock (void);
- function FGnumlock% ()
- integer*2 function fg_numlock ()
- function fg_numlock : integer;
-
- Description
-
- The fg_numlock routine determines the state of the NumLock key.
-
- Parameters
-
- none
-
- Return value
-
- If the return value is 0, it means the NumLock key is off. If it is 1, it
- means the NumLock key is on.
-
- Restrictions
-
- none
-
- See also
-
- fg_capslock, fg_scrlock, fg_setcaps, fg_setnum
-
- Examples
-
- 12-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 110
- fg_paint
-
- Prototype
-
- void fg_paint (int ix, int iy);
- sub FGpaint (ix%, iy%)
- subroutine fg_paint (integer*2 ix, integer*2 iy)
- procedure fg_paint (ix, iy : integer);
-
- Description
-
- The fg_paint routine fills an arbitrary closed region with the current
- color value. The region is defined by specifying a screen space point
- within its interior.
-
- Parameters
-
- ix is the screen space x coordinate of the interior point.
-
- iy is the screen space y coordinate of the interior point.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes. The screen edges are not
- considered region boundaries, and filling an open region will cause
- fg_paint to behave unpredictably.
-
- See also
-
- fg_paintw
-
- Examples
-
- 6-15, 11-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 111
- fg_paintw
-
- Prototype
-
- void fg_paintw (double x, double y);
- sub FGpaintw (x#, y#)
- subroutine fg_paintw (real*8 x, real*8 y)
- procedure fg_paintw (x, y : real);
-
- Description
-
- The fg_paintw routine fills an arbitrary closed region with the current
- color value. The region is defined by specifying a world space point
- within its interior.
-
- Parameters
-
- x is the world space x coordinate of the interior point.
-
- y is the world space y coordinate of the interior point.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes. The screen edges are not considered region boundaries, and
- filling an open region will cause fg_paintw to behave unpredictably.
-
- See also
-
- fg_paint
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 112
- fg_palette
-
- Prototype
-
- void fg_palette (int number, int color);
- sub FGpalette (number%, color%)
- subroutine fg_palette (integer*2 number, integer*2 color)
- procedure fg_palette (number, color : integer);
-
- Description
-
- The fg_palette routine has different functions depending on the current
- graphics video mode. For CGA four-color modes (modes 4 and 5), it
- establishes the current palette and defines the background color for that
- palette. In the CGA two-color mode (mode 6), it defines the foreground
- color. For Tandy/PCjr, EGA, and VGA graphics modes (modes 9, 13, 14, 15,
- 16, 17, and 18), it defines the value of a palette register. For 256-color
- MCGA and VGA graphics modes (modes 19 through 23), it defines the value of
- a video DAC register.
-
- Parameters
-
- The meanings of the number and color parameters depend on the current video
- mode. The following table summarizes the parameter meanings and legal
- values for each video mode.
-
- mode number parameter (range) color parameter (range)
-
- 4,5 CGA palette number (0-5) background color (0-15)
- 6 ignored foreground color (0-15)
- 9 palette register number (0-15) palette value (0-15)
- 13,14 palette register number (0-15) palette value (0-23)
- 15 palette register number (0,1,4,5) palette value (0,8,24)
- 16 palette register number (0-15) palette value (0-63)
- 17 palette register number (0-1) video DAC register number (0-15)
- 18 palette register number (0-15) video DAC register number (0-15)
- 19-23 video DAC register number (0-255) DAC value (0-63)
-
- Refer to Chapter 5 of the Fastgraph User's Guide for more specific
- information about the number and color parameters.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes or Hercules graphics modes.
- Changing the foreground color (in mode 6) always works on true CGA
- adapters, but there are very few EGA and VGA adapters that correctly
- implement this capability in their mode 6 emulation.
-
- See also
-
- fg_defcolor, fg_maprgb, fg_palettes, fg_setcolor, fg_setdacs, fg_setrgb
-
-
-
- 113
- fg_palette (continued)
-
- Examples
-
- 5-1, 5-2, 5-3, 5-6, 5-7, 5-8, 5-9, 5-13, 5-16, 9-14
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 114
- fg_palettes
-
- Prototype
-
- void fg_palettes (int *color_array);
- sub FGpalettes (color_array%())
- subroutine fg_palettes (integer*2 color_array)
- procedure fg_palettes (var color_array : integer);
-
- Description
-
- The fg_palettes routine defines all 16 palette registers (in Tandy/PCjr,
- EGA, and VGA graphics modes), or the first 16 video DAC registers (in 256-
- color MCGA and VGA graphics modes).
-
- Parameters
-
- color_array is a 16-element array that contains the values to assign to the
- palette registers or video DAC registers.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, CGA graphics modes, or
- Hercules graphics modes.
-
- See also
-
- fg_maprgb, fg_palette, fg_setdacs
-
- Examples
-
- 5-14
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 115
- fg_pan
-
- Prototype
-
- void fg_pan (int ix, int iy);
- sub FGpan (ix%, iy%)
- subroutine fg_pan (integer*2 ix, integer*2 iy)
- procedure fg_pan (ix, iy : integer);
-
- Description
-
- The fg_pan routine changes the screen origin (the upper left corner of the
- screen) to the specified screen space coordinates.
-
- Parameters
-
- ix is the new screen space x coordinate for the screen origin.
-
- iy is the new screen space y coordinate for the screen origin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video odes. Because of hardware
- limitations, only certain coordinate positions can be used as the screen
- origin. Fastgraph compensates for these restrictions by reducing ix and iy
- to values that are acceptable to the current video mode, as shown in the
- following table.
-
- x will be reduced y will be reduced
- video mode to a multiple of: to a multiple of:
-
- 4, 5 8 2
- 6 16 2
- 9 4 4
- 11 8 4
- 12 4 2 or 3
- 19 to 23 4 1
-
- See also
-
- fg_panw
-
- Examples
-
- 11-6, 11-7
-
-
-
-
-
-
-
-
-
- 116
- fg_panw
-
- Prototype
-
- void fg_panw (double x, double y);
- sub FGpanw (x#, y#)
- subroutine fg_panw (real*8 x, real*8 y)
- procedure fg_panw (x, y : real);
-
- Description
-
- The fg_panw routine changes the screen origin (the upper left corner of the
- screen) to the specified world space coordinates.
-
- Parameters
-
- x is the new world space x coordinate for the screen origin.
-
- y is the new world space y coordinate for the screen origin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes. To compensate for the hardware limitations that restrict the
- screen origin coordinates (see the description of the fg_pan routine),
- Fastgraph reduces x and y to an acceptable screen space equivalent.
-
- See also
-
- fg_pan
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 117
- fg_pattern
-
- Prototype
-
- void fg_pattern (int index, int display_pattern);
- sub FGpattern (index%, display_pattern%)
- subroutine fg_pattern (integer*2 index, integer*2 display_pattern)
- procedure fg_pattern (index, display_pattern : integer);
-
- Description
-
- The fg_pattern routine defines one of Fastgraph's 256 display patterns used
- with the fg_dispfile, fg_display, or fg_displayp routines. When using
- these routines to display a pixel run map, Fastgraph will use the pattern
- associated with that color index instead of displaying the color itself.
- Refer to the Fastgraph User's Guide for more information about display
- patterns and their default values for each graphics video mode.
-
- Parameters
-
- index is the number of the display pattern to define, between 0 and 255.
-
- display_pattern is a 16-bit value representing the actual display pattern.
- Its structure depends on the video mode, as summarized in the following
- table.
-
- video modes pattern structure
- 4, 5, 12 shift count (8 bits), four pixels (2 bits each)
- 6, 11 shift count (8 bits), eight pixels (1 bit each)
- 9 shift count (8 bits), two pixels (4 bits each)
- 13, 14, 15, 16, 18 unused (8 bits), two pixels (4 bits each)
- 17unused (14 bits), two pixels (1 bit each)
-
- The shift count defines the number of bits that display_pattern is rotated
- left when applied to odd-numbered pixel rows, while the pixels are the
- actual color values replicated through the pixel run. For the EGA and VGA
- graphics modes, an implied one pixel shift count is used.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes or in 256-color graphics
- modes.
-
- See also
-
- fg_dispfile, fg_display, fg_displayp
-
- Examples
-
- 9-14
-
-
-
-
- 118
- fg_playing
-
- Prototype
-
- int fg_playing (void);
- function FGplaying% ()
- integer*2 function fg_playing ()
- function fg_playing : integer;
-
- Description
-
- The fg_playing routine determines whether or not there is any asynchronous
- sound in progress.
-
- Parameters
-
- none
-
- Return value
-
- If the return value is 0, it means there is no asynchronous sound in
- progress. If it is 1, then there is asynchronous sound in progress.
-
- Restrictions
-
- none
-
- See also
-
- fg_musicb, fg_sounds, fg_voices
-
- Examples
-
- 13-4, 13-5, 13-6, 13-7, 13-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 119
- fg_point
-
- Prototype
-
- void fg_point (int ix, int iy);
- sub FGpoint (ix%, iy%)
- subroutine fg_point (integer*2 ix, integer*2 iy)
- procedure fg_point (ix, iy : integer);
-
- Description
-
- The fg_point routine draws a point (displays a pixel) in screen space.
-
- Parameters
-
- ix is the point's screen space x coordinate.
-
- iy is the point's screen space y coordinate.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_pointw
-
- Examples
-
- 6-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 120
- fg_pointw
-
- Prototype
-
- void fg_pointw (double x, double y);
- sub FGpointw (x#, y#)
- subroutine fg_pointw (real*8 x, real*8 y)
- procedure fg_pointw (x, y : real);
-
- Description
-
- The fg_pointw routine draws a point (displays a pixel) in world space.
-
- Parameters
-
- x is the point's world space x coordinate.
-
- y is the point's world space y coordinate.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_point
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 121
- fg_polygon
-
- Prototype
-
- void fg_polygon (int *ix_array, int *iy_array, int n);
- sub FGpolygon (ix_array%(), iy_array%(), n%)
- subroutine fg_polygon (integer*2 ix_array, integer*2 iy_array, integer*2 n)
- procedure fg_polygon (var ix_array, iy_array : integer; n : integer);
-
- Description
-
- The fg_polygon routine draws an unfilled polygon in screen space, using two
- coordinate arrays to define the polygon vertices. The drawing of the
- polygon begins at the graphics cursor position, through the vertices
- defined by the coordinate arrays, and finally back to the original graphics
- cursor position if necessary.
-
- Parameters
-
- ix_array is an arbitrary-length array containing the screen space x
- coordinates of the polygon vertices.
-
- iy_array is an arbitrary-length array containing the screen space y
- coordinates of the polygon vertices.
-
- n is the number of vertices in the polygon.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_polygonw
-
- Examples
-
- 6-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 122
- fg_polygonw
-
- Prototype
-
- void fg_polygonw (double *x_array, double *y_array, int n);
- sub FGpolygonw (x_array#(), y_array#(), n%)
- subroutine fg_polygonw (real*8 x_array, real*8 y_array, integer*2 n)
- procedure fg_polygonw (var x_array, y_array : real; n : integer);
-
- Description
-
- The fg_polygonw routine draws an unfilled polygon in world space, using two
- coordinate arrays to define the polygon vertices. The drawing of the
- polygon begins at the graphics cursor position, through the vertices
- defined by the coordinate arrays, and finally back to the original graphics
- cursor position if necessary.
-
- Parameters
-
- x_array is an arbitrary-length array containing the world space x
- coordinates of the polygon vertices.
-
- y_array is an arbitrary-length array containing the world space y
- coordinates of the polygon vertices.
-
- n is the number of vertices in the polygon.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_polygon
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 123
- fg_quiet
-
- Prototype
-
- void fg_quiet (void);
- sub FGquiet ()
- subroutine fg_quiet ()
- procedure fg_quiet;
-
- Description
-
- The fg_quiet routine stops continuous synchronous sound started with the
- fg_sound or fg_voice routines. It has no effect if there is no continuous
- sound in progress.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_sound, fg_voice
-
- Examples
-
- 13-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 124
- fg_rect
-
- Prototype
-
- void fg_rect (int minx, int maxx, int miny, int maxy);
- sub FGrect (minx%, maxx%, miny%, maxy%)
- subroutine fg_rect (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy)
- procedure fg_rect (minx, maxx, miny, maxy : integer);
-
- Description
-
- The fg_rect routine draws a solid (filled) rectangle in screen space or
- character space, without regard to the clipping region.
-
- Parameters
-
- minx is the x coordinate of the rectangle's left edge.
-
- maxx is the x coordinate of the rectangle's right edge. It must be greater
- than or equal to the value of minx.
-
- miny is the y coordinate of the rectangle's top edge.
-
- maxy is the y coordinate of the rectangle's bottom edge. It must be
- greater than or equal to the value of miny.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_clprect, fg_clprectw, fg_drect, fg_drectw, fg_rectw
-
- Examples
-
- 6-10, 7-5, 7-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 125
- fg_rectw
-
- Prototype
-
- void fg_rectw (double xmin, double xmax, double ymin, double ymax);
- sub FGrectw (xmin#, xmax#, ymin#, ymax#)
- subroutine fg_rectw (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax)
- procedure fg_rectw (xmin, xmax, ymin, ymax : real);
-
- Description
-
- The fg_rectw routine draws a solid (filled) rectangle in world space,
- without regard to the clipping region.
-
- Parameters
-
- xmin is the world space x coordinate of the rectangle's left edge.
-
- xmax is the world space x coordinate of the rectangle's right edge. It
- must be greater than or equal to the value of xmin.
-
- ymin is the world space y coordinate of the rectangle's bottom edge.
-
- ymax is the world space y coordinate of the rectangle's top edge. It must
- be greater than or equal to the value of ymin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_clprect, fg_clprectw, fg_drect, fg_drectw, fg_rect
-
- Examples
-
- 7-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 126
- fg_reset
-
- Prototype
-
- void fg_reset (void);
- sub FGreset ()
- subroutine fg_reset ()
- procedure fg_reset;
-
- Description
-
- When the ANSI.SYS driver is not loaded, the fg_reset routine erases the
- screen. When ANSI.SYS is loaded, fg_reset also restores any previously set
- screen attributes. It is generally the last Fastgraph routine called in a
- program.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- See also
-
- fg_erase
-
- Examples
-
- 3-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 127
- fg_resize
-
- Prototype
-
- void fg_resize (int width, int height);
- sub FGresize (width%, height%)
- subroutine fg_resize (integer*2 width, integer*2 height)
- procedure fg_resize (width, height : integer);
-
- Description
-
- The fg_resize routine changes the dimensions of a video page in EGA and VGA
- graphics modes.
-
- Parameters
-
- width specifies the new video page width in pixels.
-
- height specifies the new video page height in pixels.
-
- Return value
-
- none
-
- Restrictions
-
- The size of a video page is constrained only by the amount of video memory
- available. Increasing the video page size reduces the number of physical
- pages available proportionally. In mode 13, for example, increasing the
- page size from 320x200 to 640x400 reduces the number of video pages from 8
- to 2.
-
- When you call fg_resize, the visual page must be page 0.
-
- If you have created any logical video pages, you must release them with
- fg_freepage before calling fg_resize, and then create them again afterward.
-
- If you have initialized the mouse (with fg_mouseini), joysticks (with
- fg_initjoy), expanded memory (with fg_initems), or extended memory (with
- fg_initxms), you should re-initialize these resources after calling
- fg_resize. Most mouse drivers expect a fixed video page width, so the
- mouse cursor may become distorted after resizing video pages.
-
- The fg_setmode routine re-establishes the dimensions of a video page to the
- default screen resolution for the selected video mode.
-
- This routine is meaningful only in the native EGA graphics modes (13 to
- 16), native VGA graphics modes (17 and 18), and extended VGA graphics modes
- (20 to 23). It has no effect in other video modes.
-
- See also
-
- fg_pan
-
- Examples
-
- 8-10, 11-7
-
- 128
- fg_restore
-
- Prototype
-
- void fg_restore (int minx, int maxx, int miny, int maxy);
- sub FGrestore (minx%, maxx%, miny%, maxy%)
- subroutine fg_restore (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy)
- procedure fg_restore (minx, maxx, miny, maxy : integer);
-
- Description
-
- The fg_restore routine copies a rectangular region from the hidden video
- page to the same position on the active video page. In text modes, the
- region is defined in character space; in graphics modes, it is defined in
- screen space.
-
- Parameters
-
- minx is the x coordinate of the region's left edge. In graphics modes, its
- value is reduced to a byte boundary if necessary.
-
- maxx is the x coordinate of the region's right edge. It must be greater
- than or equal to the value of minx. In graphics modes, its value is
- extended to a byte boundary if necessary.
-
- miny is the y coordinate of the region's top edge.
-
- maxy is the y coordinate of the region's bottom edge. It must be greater
- than or equal to the value of miny.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_restorew, fg_save, fg_savew, fg_sethpage, fg_transfer
-
- Examples
-
- 9-23, 9-24
-
-
-
-
-
-
-
-
-
-
-
-
- 129
- fg_restorew
-
- Prototype
-
- void fg_restorew (double xmin, double xmax, double ymin, double ymax);
- sub FGrestorew (xmin#, xmax#, ymin#, ymax#)
- subroutine fg_restorew (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax)
- procedure fg_restorew (xmin, xmax, ymin, ymax : real);
-
- Description
-
- The fg_restorew routine copies a rectangular region, defined in world
- space, from the hidden video page to the same position on the active video
- page.
-
- Parameters
-
- xmin is the world space x coordinate of the region's left edge. In
- graphics modes, its value is reduced to a byte boundary if necessary.
-
- xmax is the world space x coordinate of the region's right edge. It must
- be greater than or equal to the value of xmin. In graphics modes, its
- value is extended to a byte boundary if necessary.
-
- ymin is the world space y coordinate of the region's bottom edge.
-
- ymax is the world space y coordinate of the region's top edge. It must be
- greater than or equal to the value of ymin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_restore, fg_save, fg_savew, fg_sethpage, fg_transfer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 130
- fg_resume
-
- Prototype
-
- void fg_resume (void);
- sub FGresume ()
- subroutine fg_resume ()
- procedure fg_resume;
-
- Description
-
- The fg_resume routine restarts asynchronous music previously suspended by
- the fg_suspend routine. It has no effect if there is no suspended music.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_musicb, fg_suspend
-
- Examples
-
- 13-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 131
- fg_revimage
-
- Prototype
-
- void fg_revimage (char *map_array, int width, int height);
- sub FGrevimage (map_array$, width%, height%)
- subroutine fg_revimage (integer*1 map_array, integer*2 width, integer*2
- height)
- procedure fg_revimage (var map_array : byte; width, height : integer);
-
- Description
-
- The fg_revimage routine displays a reversed image stored as a mode-specific
- bit map. The image will be positioned so that its lower left corner is at
- the graphics cursor position. Refer to the Fastgraph User's Guide for
- complete information about mode-specific bit maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the bit map.
-
- width is the width in bytes of the bit map.
-
- height is the height in bytes (pixel rows) of the bit map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_clpimage, fg_drwimage, fg_flpimage, fg_getimage
-
- Examples
-
- 9-8, 9-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 132
- fg_revmask
-
- Prototype
-
- void fg_revmask (char *map_array, int runs, int width);
- sub FGrevmask (map_array$, runs%, width%)
- subroutine fg_revmask (integer*1 map_array, integer*2 runs, integer*2
- width)
- procedure fg_revmask (var map_array : byte; runs, width : integer);
-
- Description
-
- The fg_revmask routine displays a reversed image stored as a masking map.
- The image will be positioned so that its lower left corner is at the
- graphics cursor position. Refer to the description of the fg_drawmask
- routine for more information about masking maps.
-
- Parameters
-
- map_array is the arbitrary-length array containing the masking map.
-
- runs is the number of pixel runs in the masking map.
-
- width is the width in pixels of the masking map.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, or in the native EGA and
- VGA graphics video modes.
-
- See also
-
- fg_clipmask, fg_drawmask, fg_flipmask
-
- Examples
-
- 9-16
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 133
- fg_save
-
- Prototype
-
- void fg_save (int minx, int maxx, int miny, int maxy);
- sub FGsave (minx%, maxx%, miny%, maxy%)
- subroutine fg_save (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy)
- procedure fg_save (minx, maxx, miny, maxy : integer);
-
- Description
-
- The fg_save routine copies a rectangular region from the active video page
- to the same position on the hidden video page. In text modes, the region
- is defined in character space; in graphics modes, it is defined in screen
- space.
-
- Parameters
-
- minx is the x coordinate of the region's left edge. In graphics modes, its
- value is reduced to a byte boundary if necessary.
-
- maxx is the x coordinate of the region's right edge. It must be greater
- than or equal to the value of minx. In graphics modes, its value is
- extended to a byte boundary if necessary.
-
- miny is the y coordinate of the region's top edge.
-
- maxy is the y coordinate of the region's bottom edge. It must be greater
- than or equal to the value of miny.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_restore, fg_restorew, fg_savew, fg_sethpage, fg_transfer
-
- Examples
-
- 9-23, 9-24
-
-
-
-
-
-
-
-
-
-
-
-
- 134
- fg_savew
-
- Prototype
-
- void fg_savew (double xmin, double xmax, double ymin, double ymax);
- sub FGsavew (xmin#, xmax#, ymin#, ymax#)
- subroutine fg_savew (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax)
- procedure fg_savew (xmin, xmax, ymin, ymax : real);
-
- Description
-
- The fg_savew routine copies a rectangular region, defined in world space,
- from the active video page to the same position on the hidden video page.
-
- Parameters
-
- xmin is the world space x coordinate of the region's left edge. In
- graphics modes, its value is reduced to a byte boundary if necessary.
-
- xmax is the world space x coordinate of the region's right edge. It must
- be greater than or equal to the value of xmin. In graphics modes, its
- value is extended to a byte boundary if necessary.
-
- ymin is the world space y coordinate of the region's bottom edge.
-
- ymax is the world space y coordinate of the region's top edge. It must be
- greater than or equal to the value of ymin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_restore, fg_restorew, fg_save, fg_sethpage, fg_transfer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 135
- fg_scrlock
-
- Prototype
-
- int fg_scrlock (void);
- function FGscrlock% ()
- integer*2 function fg_scrlock ()
- function fg_scrlock : integer;
-
- Description
-
- The fg_scrlock routine determines the state of the ScrollLock key.
-
- Parameters
-
- none
-
- Return value
-
- If the return value is 0, it means the ScrollLock key is off. If it is 1,
- it means the ScrollLock key is on.
-
- Restrictions
-
- Not all PC keyboards have a ScrollLock key. For such systems, fg_scrlock
- will return a value of zero.
-
- See also
-
- fg_capslock, fg_numlock, fg_setcaps, fg_setnum
-
- Examples
-
- 12-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 136
- fg_scroll
-
- Prototype
-
- void fg_scroll (int minx, int maxx, int miny, int maxy, int jump, int
- type);
- sub FGscroll (minx%, maxx%, miny%, maxy%, jump%, type%)
- subroutine fg_scroll (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy,
- integer*2 jump, integer*2 type)
- procedure fg_scroll (minx, maxx, miny, maxy, jump, type : integer);
-
- Description
-
- The fg_scroll routine vertically scrolls a region of the active video page.
- The scrolling may be done either up or down, using either an end-off or
- circular method. In text modes, the region is defined in character space;
- in graphics modes, it is defined in screen space.
-
- Parameters
-
- minx is the x coordinate of the scrolling region's left edge. In graphics
- modes, its value is reduced to a byte boundary if necessary.
-
- maxx is the x coordinate of the scrolling region's right edge. It must be
- greater than or equal to the value of minx. In graphics modes, its value
- is extended to a byte boundary if necessary.
-
- miny is the y coordinate of the scrolling region's top edge.
-
- maxy is the y coordinate of the scrolling region's bottom edge. It must be
- greater than or equal to the value of miny.
-
- jump is the number of pixels to jump between each scrolling iteration. If
- jump is negative, the region will scroll toward the top of the screen. If
- jump is positive, the region will scroll toward the bottom of the screen.
-
- type specifies the type of scroll. If type is zero, rows that scroll off
- one edge appear at the opposite edge, thus producing a circular scrolling
- effect. If type is any other value, rows that scroll off one edge will be
- replaced at the opposite edge by lines of the current color.
-
- Return value
-
- none
-
- Restrictions
-
- Circular scrolling uses part of the hidden page (as defined in the most
- recent call to fg_sethpage) as a temporary workspace.
-
- See also
-
- fg_setcolor, fg_sethpage
-
-
-
-
- 137
- fg_scroll (continued)
-
- Examples
-
- 11-3, 11-4, 11-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 138
- fg_setangle
-
- Prototype
-
- void fg_setangle (double angle);
- sub FGsetangle (angle#)
- subroutine fg_setangle (real*8 angle)
- procedure fg_setangle (angle : real);
-
- Description
-
- The fg_setangle routine defines the angle or orientation at which software
- characters are displayed. If a program draws software characters before
- calling fg_setangle, Fastgraph will use its default angle of zero degrees
- (that is, horizontal).
-
- Parameters
-
- angle is the angle of rotation, expressed in degrees and measured
- counterclockwise from the positive x axis.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light. Before using this
- routine, you must use the fg_initw and fg_setworld routines to establish a
- world space coordinate system.
-
- See also
-
- fg_initw, fg_setratio, fg_setsize, fg_setsizew, fg_setworld, fg_swchar,
- fg_swlength, fg_swtext
-
- Examples
-
- 7-10
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 139
- fg_setattr
-
- Prototype
-
- void fg_setattr (int foreground, int background, int blink);
- sub FGsetattr (foreground%, background%, blink%)
- subroutine fg_setattr (integer*2 foreground, integer*2 background,
- integer*2 blink)
- procedure fg_setattr (foreground, background, blink : integer);
-
- Description
-
- The fg_setattr routine establishes the current text attribute in text video
- modes.
-
- Parameters
-
- foreground is attribute's foreground component, between 0 and 15.
-
- background is the attribute's background component, between 0 and 7.
-
- blink is the attribute's blink component, between 0 and 1.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in graphics video modes.
-
- See also
-
- fg_setcolor
-
- Examples
-
- 7-1, 7-2, 7-3, 7-4, 8-1, 8-3, 8-5, 8-7, 9-21, 9-23, 9-25, 11-4, 12-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 140
- fg_setcaps
-
- Prototype
-
- void fg_setcaps (int state);
- sub FGsetcaps (state%)
- subroutine fg_setcaps (integer*2 state)
- procedure fg_setcaps (state : integer);
-
- Description
-
- The fg_setcaps routine controls the state of the CapsLock key.
-
- Parameters
-
- state defines the CapsLock key state. If state is 0, the CapsLock key is
- turned off. If it is 1, the CapsLock key is turned on.
-
- Return value
-
- none
-
- Restrictions
-
- On most keyboards, changing the CapsLock key state will also change the
- keyboard state light to reflect the new key state. However, some older
- keyboards, especially when used on PC, PC/XT, or Tandy 1000 systems, do not
- update the state light. This makes the state light inconsistent with the
- true key state.
-
- See also
-
- fg_capslock, fg_numlock, fg_scrlock, fg_setnum
-
- Examples
-
- 12-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 141
- fg_setclip
-
- Prototype
-
- void fg_setclip (int minx, int maxx, int miny, int maxy);
- sub FGsetclip (minx%, maxx%, miny%, maxy%)
- subroutine fg_setclip (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy)
- procedure fg_setclip (minx, maxx, miny, maxy : integer);
-
- Description
-
- The fg_setclip routine defines the clipping region in screen space. The
- clipping region is a rectangular area outside of which graphics are
- suppressed.
-
- Parameters
-
- minx is the screen space x coordinate of the clipping region's left edge.
-
- maxx is the screen space x coordinate of the clipping region's right edge.
- It must be greater than or equal to the value of minx.
-
- miny is the screen space y coordinate of the clipping region's top edge.
-
- maxy is the screen space y coordinate of the clipping region's bottom edge.
- It must be greater than or equal to the value of miny.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_setclipw
-
- Examples
-
- 6-5, 9-8, 9-9, 9-16, 10-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 142
- fg_setclipw
-
- Prototype
-
- void fg_setclipw (double xmin, double xmax, double ymin, double ymax);
- sub FGsetclipw (xmin#, xmax#, ymin#, ymax#)
- subroutine fg_setclipw (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax)
- procedure fg_setclipw (xmin, xmax, ymin, ymax : real);
-
- Description
-
- The fg_setclipw routine defines the clipping region in world space. The
- clipping region is a rectangular area outside of which graphics are
- suppressed.
-
- Parameters
-
- xmin is the world space x coordinate of the clipping region's left edge.
-
- xmax is the world space x coordinate of the clipping region's right edge.
- It must be greater than or equal to the value of xmin.
-
- ymin is the world space y coordinate of the clipping region's bottom edge.
-
- ymax is the world space y coordinate of the clipping region's top edge. It
- must be greater than or equal to the value of ymin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light and has no effect in text
- video modes.
-
- See also
-
- fg_setclip
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 143
- fg_setcolor
-
- Prototype
-
- void fg_setcolor (int color);
- sub FGsetcolor (color%)
- subroutine fg_setcolor (integer*2 color)
- procedure fg_setcolor (color : integer);
-
- Description
-
- The fg_setcolor routine establishes the current color index (which may be a
- virtual color index) in graphics modes. In text modes, fg_setcolor
- provides an alternate method of defining the current text attribute.
-
- Parameters
-
- color defines the current color index (in graphics modes) or text attribute
- (in text modes). Its value must be between 0 and 255.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_defcolor, fg_getcolor, fg_palette
-
- Examples
-
- 3-1 to 3-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 144
- fg_setdacs
-
- Prototype
-
- void fg_setdacs (int start, int count, char *values);
- sub FGsetdacs (start%, count%, values$)
- subroutine fg_setdacs (integer*2 start, integer*2 count, integer*1 values)
- procedure fg_setdacs (start, count : integer; var values : shortint);
-
- Description
-
- The fg_setdacs routine defines the values of a block of contiguous video
- DAC registers by specifying their red, green, and blue color components.
- Defining many DAC registers with fg_setdacs is considerably faster than
- doing so individually with fg_setrgb.
-
- Parameters
-
- start is the starting video DAC register number, between 0 and 255.
-
- count is the number of contiguous DAC registers to define, between 1 and
- 256. If the sum of start and count exceeds 255, the register numbers wrap
- around and resume with register number 0.
-
- values is the array containing the color components. The first three bytes
- of this array must contain the red, green, and blue components for DAC
- register start, the next three bytes contain the components for register
- start+1, and so forth. The size of the values array must be at least
- 3*count bytes.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, or in any graphics video
- mode numbered 16 or below (because these video modes do not use DAC
- registers).
-
- See also
-
- fg_getdacs, fg_getrgb, fg_setrgb
-
- Examples
-
- 5-12
-
-
-
-
-
-
-
-
-
-
-
- 145
- fg_setfunc
-
- Prototype
-
- void fg_setfunc (int mode);
- sub FGsetfunc (mode%)
- subroutine fg_setfunc (integer*2 mode)
- procedure fg_setfunc (mode : integer);
-
- Description
-
- The fg_setfunc routine specifies the logical operation applied when video
- memory changes in the native EGA and VGA graphics modes. Replacement mode
- is selected after you use the fg_setmode routine to establish a video mode.
-
- Parameters
-
- mode defines the logical operation, as shown below.
-
- value of logical
- mode operation
-
- 0 replacement
- 1 and
- 2 or
- 3 exclusive or
-
- Return value
-
- none
-
- Restrictions
-
- This routine only functions in the native EGA and VGA graphics video modes
- (modes 13 through 18).
-
- Examples
-
- 10-3, 15-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 146
- fg_sethpage
-
- Prototype
-
- void fg_sethpage (int page_number);
- sub FGsethpage (page_number%)
- subroutine fg_sethpage (integer*2 page_number)
- procedure fg_sethpage (page_number : integer);
-
- Description
-
- The fg_sethpage routine establishes the hidden video page. It may be a
- physical or virtual video page. The fg_setmode routine designates video
- page 0 as the hidden page.
-
- Parameters
-
- page_number is the hidden video page number, between 0 and 63.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect if page_number references a physical video page
- that does not exist, or a virtual video page that has not been created.
-
- See also
-
- fg_gethpage, fg_setpage, fg_setvpage
-
- Examples
-
- 9-23, 9-24, 11-2, 11-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 147
- fg_setlines
-
- Prototype
-
- void fg_setlines (int lines);
- sub FGsetlines (lines%)
- subroutine fg_setlines (integer*2 lines)
- procedure fg_setlines (lines : integer);
-
- Description
-
- The fg_setlines routine extends an 80-column text mode to 25, 43, or 50
- lines per screen. The fg_setmode routine sets the number of lines to 25
- when establishing an 80-column text mode.
-
- Parameters
-
- lines is the number of text rows per screen. On EGA systems, the value of
- lines must be 25 or 43. On MCGA systems, it must be 25 or 50. On VGA
- systems, it must be 25, 43, or 50. Any other value is ignored. Before
- calling fg_setlines, you should call fg_testmode with pages=0 to see if the
- user's system supports the number of rows needed.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is only meaningful when running in 80-column text modes on
- EGA, VGA, or MCGA systems (in other cases it does nothing).
-
- When you call fg_setlines, the visual page must be page 0.
-
- Calling fg_setlines makes the text cursor visible.
-
- If you have initialized the mouse (with fg_mouseini), joysticks (with
- fg_initjoy), expanded memory (with fg_initems), or extended memory (with
- fg_initxms), you should call re-initialize these resources after calling
- fg_setlines.
-
- See also
-
- fg_getlines, fg_testmode
-
- Examples
-
- 3-5
-
-
-
-
-
-
-
-
-
-
- 148
- fg_setmode
-
- Prototype
-
- void fg_setmode (int mode_number);
- sub FGsetmode (mode_number%)
- subroutine fg_setmode (integer*2 mode_number)
- procedure fg_setmode (mode_number : integer);
-
- Description
-
- The fg_setmode routine establishes a video mode and initializes Fastgraph's
- internal parameters for that video mode. It must be called before any
- Fastgraph routine that performs video output. A program can call
- fg_setmode as many times as needed to switch between different video modes.
-
- Parameters
-
- mode_number is the video mode number, between 0 and 23. The following
- table lists Fastgraph's supported video modes.
-
- Mode No. of Supported Supported
- Number Type Resolution Colors Adapters Displays
-
- 0 Text 40 x 25 16/8 CGA,EGA,VGA,MCGA RGB,ECD,VGA
- 1 Text 40 x 25 16/8 CGA,EGA,VGA,MCGA RGB,ECD,VGA
- 2 Text 80 x 25 16/8 CGA,EGA,VGA,MCGA RGB,ECD,VGA
- 3 Text 80 x 25 16/8 CGA,EGA,VGA,MCGA RGB,ECD,VGA
- 4 Graphics 320 x 200 4 CGA,EGA,VGA,MCGA RGB,ECD,VGA
- 5 Graphics 320 x 200 4 CGA,EGA,VGA,MCGA RGB,ECD,VGA
- 6 Graphics 640 x 200 2/16 CGA,EGA,VGA,MCGA RGB,ECD,VGA
- 7 Text 80 x 25 b/w MDA,HGC,EGA,VGA Mono,ECD,VGA
- 9 Graphics 320 x 200 16 Tandy 1000,PCjr RGB
- 11 Graphics 720 x 348 b/w HGC Monochrome
- 12 Graphics 320 x 200 b/w HGC Monochrome
- 13 Graphics 320 x 200 16 EGA,VGA RGB,ECD,VGA
- 14 Graphics 640 x 200 16 EGA,VGA RGB,ECD,VGA
- 15 Graphics 640 x 350 b/w EGA,VGA Mono,VGA
- 16 Graphics 640 x 350 16/64 EGA,VGA ECD,VGA
- 17 Graphics 640 x 480 2/256K VGA,MCGA VGA
- 18 Graphics 640 x 480 16/256K VGA VGA
- 19 Graphics 320 x 200 256/256K VGA,MCGA VGA
- 20 Graphics 320 x 200 256/256K VGA VGA
- 21 Graphics 320 x 400 256/256K VGA VGA
- 22 Graphics 320 x 240 256/256K VGA VGA
- 23 Graphics 320 x 480 256/256K VGA VGA
-
- For more information about each video mode, including their required
- display adapters (graphics cards) and monitors, please refer to the
- Fastgraph User's Guide.
-
- The value of the mode_number parameter also can be -1, which tells
- Fastgraph to use the current video mode. This feature is often useful in
- programs that use only text video modes, programs executed from another
- program, or terminate and stay resident (TSR) programs.
-
-
-
- 149
- fg_setmode (continued)
-
- Return value
-
- none
-
- Restrictions
-
- The fg_setmode routine does not check if the specified video mode is
- available on the user's system. If necessary, you should first use the
- fg_testmode routine to do this.
-
- See also
-
- fg_automode, fg_bestmode, fg_testmode
-
- Examples
-
- 3-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 150
- fg_setnum
-
- Prototype
-
- void fg_setnum (int state);
- sub FGsetnum (state%)
- subroutine fg_setnum (integer*2 state)
- procedure fg_setnum (state : integer);
-
- Description
-
- The fg_setnum routine controls the state of the NumLock key.
-
- Parameters
-
- state defines the NumLock key state. If state is 0, the NumLock key is
- turned off. If it is 1, the NumLock key is turned on.
-
- Return value
-
- none
-
- Restrictions
-
- On most keyboards, changing the NumLock key state will also change the
- keyboard state light to reflect the new key state. However, some older
- keyboards, especially when used on PC, PC/XT, or Tandy 1000 systems, do not
- update the state light. This makes the state light inconsistent with the
- true key state.
-
- See also
-
- fg_capslock, fg_numlock, fg_scrlock, fg_setcaps
-
- Examples
-
- 12-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 151
- fg_setpage
-
- Prototype
-
- void fg_setpage (int page_number);
- sub FGsetpage (page_number%)
- subroutine fg_setpage (integer*2 page_number)
- procedure fg_setpage (page_number : integer);
-
- Description
-
- The fg_setpage routine establishes the active video page. It may be a
- physical or virtual video page. The fg_setmode routine designates video
- page 0 as the active page.
-
- Parameters
-
- page_number is the active video page number, between 0 and 63.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect if page_number references a physical video page
- that does not exist, or a virtual video page that has not been created.
-
- See also
-
- fg_getpage, fg_sethpage, fg_setvpage
-
- Examples
-
- 8-1 to 8-8, 10-4, 10-5, 11-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 152
- fg_setratio
-
- Prototype
-
- void fg_setratio (double ratio);
- sub FGsetratio (ratio#)
- subroutine fg_setratio (real*8 ratio)
- procedure fg_setratio (ratio : real);
-
- Description
-
- The fg_setratio routine defines the aspect ratio for software characters.
- The aspect ratio is the ratio of character width to character height. If a
- program draws software characters before calling fg_setratio, Fastgraph
- will use its default aspect ratio of 1.
-
- Parameters
-
- ratio is the aspect ratio. It must be greater than zero.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light. Before using this
- routine, you must use the fg_initw and fg_setworld routines to establish a
- world space coordinate system.
-
- See also
-
- fg_initw, fg_setangle, fg_setsize, fg_setsizew, fg_setworld, fg_swchar,
- fg_swlength, fg_swtext
-
- Examples
-
- 7-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 153
- fg_setrgb
-
- Prototype
-
- void fg_setrgb (int number, int red, int green, int blue);
- sub FGsetrgb (number%, red%, green%, blue%)
- subroutine fg_setrgb (integer*2 number, integer*2 red, integer*2 green,
- integer*2 blue)
- procedure fg_setrgb (number, red, green, blue : integer);
-
- Description
-
- The fg_setrgb defines the value of a palette register (in Tandy/PCjr and
- EGA graphics modes) or video DAC register (in VGA and MCGA graphics modes)
- by specifying its red, green, and blue color components.
-
- Parameters
-
- number is the palette or video DAC register number. If it references a
- palette register, it must be between 0 and 15 (0 and 1 in mode 17). If it
- references a video DAC register, it must be between 0 and 255. The value
- of number may be negative to specify an intense color for that palette
- register in Tandy/PCjr and 200-line EGA graphics modes.
-
- red, green, and blue respectively specify the red, green, and blue
- components of the specified palette or video DAC register. These values
- must be 0 or 1 for Tandy/PCjr and 200-line EGA graphics modes, between 0
- and 3 for 350-line EGA modes, and between 0 and 63 for VGA and MCGA modes.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes, CGA graphics modes, or
- Hercules graphics modes.
-
- See also
-
- fg_getrgb, fg_palette, fg_setcolor, fg_setdacs
-
- Examples
-
- 5-9, 5-11, 5-13, 5-16, 9-14
-
-
-
-
-
-
-
-
-
-
-
-
-
- 154
- fg_setsize
-
- Prototype
-
- void fg_setsize (int isize);
- sub FGsetsize (isize%)
- subroutine fg_setsize (integer*2 isize)
- procedure fg_setsize (isize : integer);
-
- Description
-
- The fg_setsize routine defines the height of software characters in screen
- space units. If neither fg_setsize nor fg_setsizew is called, Fastgraph
- will use its default character height of one world space unit.
-
- Parameters
-
- isize is the character height in screen space units.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light. Before using this
- routine, you must use the fg_initw and fg_setworld routines to establish a
- world space coordinate system.
-
- See also
-
- fg_initw, fg_setangle, fg_setratio, fg_setsizew, fg_setworld, fg_swchar,
- fg_swlength, fg_swtext
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 155
- fg_setsizew
-
- Prototype
-
- void fg_setsizew (double size);
- sub FGsetsizew (size#)
- subroutine fg_setsizew (real*8 size)
- procedure fg_setsizew (size : real);
-
- Description
-
- The fg_setsizew routine defines the height of software characters in world
- space units. If neither fg_setsize nor fg_setsizew is called, Fastgraph
- will use its default character height of one world space unit.
-
- Parameters
-
- size is the character height in world space units.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light. Before using this
- routine, you must use the fg_initw and fg_setworld routines to establish a
- world space coordinate system.
-
- See also
-
- fg_initw, fg_setangle, fg_setratio, fg_setsize, fg_setworld, fg_swchar,
- fg_swlength, fg_swtext
-
- Examples
-
- 7-8, 7-9, 7-10, 7-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 156
- fg_setvpage
-
- Prototype
-
- void fg_setvpage (int page_number);
- sub FGsetvpage (page_number%)
- subroutine fg_setvpage (integer*2 page_number)
- procedure fg_setvpage (page_number : integer);
-
- Description
-
- The fg_setvpage routine establishes the visual video page. It may be a
- physical or virtual video page. The fg_setmode routine designates video
- page 0 as the visual page.
-
- Parameters
-
- page_number is the visual video page number, between 0 and 63.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect if page_number references a physical video page
- that does not exist, or a virtual video page that has not been created.
-
- See also
-
- fg_getpage, fg_sethpage, fg_setpage
-
- Examples
-
- 8-1 to 8-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 157
- fg_setworld
-
- Prototype
-
- void fg_setworld (double xmin, double xmax, double ymin, double ymax);
- sub FGsetworld (xmin#, xmax#, ymin#, ymax#)
- subroutine fg_setworld (real*8 xmin, real*8 xmax, real*8 ymin, real*8 ymax)
- procedure fg_setworld (xmin, xmax, ymin, ymax : real);
-
- Description
-
- The fg_setworld routine defines the world space coordinates that correspond
- to the physical edges of the screen.
-
- Parameters
-
- xmin is the world space coordinate of the screen's left edge.
-
- xmax is the world space coordinate of the screen's right edge. It must be
- greater than the value of xmin.
-
- ymin is the world space coordinate of the screen's top edge.
-
- ymax is the world space coordinate of the screen's bottom edge. It must be
- greater than the value of ymin.
-
- Return value
-
- none
-
- Restrictions
-
- This routine is not available in Fastgraph/Light. Before using this
- routine, you must call the fg_initw routine to initialize Fastgraph's world
- space parameters.
-
- See also
-
- fg_getworld, fg_initw
-
- Examples
-
- 4-3, 6-4, 6-8, 7-8, 7-9, 7-10, 7-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 158
- fg_sound
-
- Prototype
-
- void fg_sound (int frequency, int duration);
- sub FGsound (frequency%, duration%)
- subroutine fg_sound (integer*2 frequency, integer*2 duration)
- procedure fg_sound (frequency, duration : integer);
-
- Description
-
- The fg_sound routine produces a tone of a specified frequency and duration
- using the programmable timer.
-
- Parameters
-
- frequency is tone's frequency in Hertz, between 18 and 32,767.
-
- duration is the tone's length in clock ticks (there are approximately 18.2
- clock ticks per second). If duration is zero or negative, the tone is said
- to be continuous and will play until you stop it with the fg_quiet routine.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect if there is asynchronous sound already in
- progress.
-
- See also
-
- fg_music, fg_quiet, fg_sounds, fg_voice
-
- Examples
-
- 13-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 159
- fg_sounds
-
- Prototype
-
- void fg_sounds (int *sound_array, int ntimes);
- sub FGsounds (sound_array%(), ntimes%)
- subroutine fg_sounds (integer*2 sound_array, integer*2 ntimes)
- procedure fg_sounds (var sound_array : integer; ntimes : integer);
-
- Description
-
- The fg_sounds routine uses the programmable timer to play a series of tones
- of specified frequencies and durations, concurrent with other activity. It
- is the asynchronous version of the fg_sound routine.
-
- Parameters
-
- sound_array is an arbitrary-length array containing a series of
- (frequency,duration) sound definitions. The format of this array is:
-
-
- [0] frequency of sound 1
-
- [1] duration of sound 1
-
- [2] frequency of sound 2
-
- [3] duration of sound 2
- .
- .
- .
- [2n-2] frequency of sound n
-
- [2n-1] duration of sound n
-
- [2n] terminator (0)
-
-
- Each frequency value is measured in Hertz and must be between 18 and
- 32,767. The durations are measured in clock ticks (there are approximately
- 72.8 clock ticks per second). A null character (that is, a zero byte)
- terminates the array.
-
- ntimes specifies the number of times to cycle through the sounds defined in
- sound_array. If ntimes is negative, the sounds will play repetitively
- until stopped with the fg_hush or fg_hushnext routine.
-
- Return value
-
- none
-
-
-
-
-
-
-
-
- 160
- fg_sounds (continued)
-
- Restrictions
-
- This routine has no effect if there is asynchronous sound already in
- progress. To expand the range of sound effects, Fastgraph temporarily
- quadruples the clock tick interrupt rate from 18.2 to 72.8 ticks per second
- while producing asynchronous sound. Because many disk controllers rely on
- the 18.2 tick per second clock rate to synchronize disk accesses, your
- programs should not perform any disk operations when asynchronous sound is
- in progress.
-
- See also
-
- fg_hush, fg_hushnext, fg_musicb, fg_playing, fg_sound, fg_voice, fg_voices
-
- Examples
-
- 13-4
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 161
- fg_stall
-
- Prototype
-
- void fg_stall (int delay);
- sub FGstall (delay%)
- subroutine fg_stall (integer*2 delay)
- procedure fg_stall (delay : integer);
-
- Description
-
- The fg_stall routine delays a program's execution for a given number of
- processor-specific delay units. You can use the fg_measure routine to
- obtain the number of delay units per clock tick for the system being used.
-
- Parameters
-
- delay is the number of delay units to wait.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_measure, fg_waitfor
-
- Examples
-
- 14-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 162
- fg_suspend
-
- Prototype
-
- void fg_suspend (void);
- sub FGsuspend ()
- subroutine fg_suspend ()
- procedure fg_suspend;
-
- Description
-
- The fg_suspend routine suspends asynchronous music previously started by
- the fg_musicb routine. It has no effect if there is no asynchronous music
- in progress.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- A program must not exit to DOS with music suspended. You must call fg_hush
- to cancel the music first.
-
- See also
-
- fg_hush, fg_musicb, fg_resume
-
- Examples
-
- 13-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 163
- fg_swchar
-
- Prototype
-
- void fg_swchar (char *string, int n, int justify);
- sub FGswchar (string$, n%, justify%)
- subroutine fg_swchar (character*(*) string, integer*2 n, integer*2 justify)
- procedure fg_swchar (string : string; n, justify : integer);
-
- Description
-
- The fg_swchar routine displays a string of software characters in the
- current color index. The string may be left justified, centered, or right
- justified relative to the graphics cursor.
- Parameters
-
- string is the arbitrary-length sequence of characters to display. It may
- contain special operators, as summarized in the following table.
-
- operator meaning
-
- \ switch to other font
- \^ superscript the next character
- \v subscript the next character
- _ begin underlining characters until another
- underscore character is encountered
-
- n is the number of characters in string, including any special operator
- characters.
-
- justify determines how string is positioned relative to the current
- position. If justify is negative, string is left justified; if it is zero,
- string is centered; if it is positive, string is right justified.
-
- Return value
-
- none
-
- Restrictions
-
- Before using this routine, you must use the fg_initw and fg_setworld
- routines to establish a world space coordinate system. This routine is not
- available in Fastgraph/Light and has no effect in text video modes.
-
- See also
-
- fg_initw, fg_setangle, fg_setratio, fg_setsize, fg_setsizew, fg_setworld,
- fg_swlength, fg_swtext
-
- Examples
-
- 7-8, 7-9
-
-
-
-
-
-
- 164
- fg_swlength
-
- Prototype
-
- double fg_swlength (char *string, int n);
- function FGswlength# (string$, n%)
- real*8 function fg_swlength (character*(*) string, integer*2 n)
- function fg_swlength (string : string; n : integer) : real;
-
- Description
-
- The fg_swlength routine computes the length of a string of software
- characters.
-
- Parameters
-
- string is the arbitrary-length sequence of characters for which to compute
- the length. It may contain special operators used by the fg_swchar and
- fg_swtext routines.
-
- n is the number of characters in string, including any special operator
- characters.
-
- justify determines how string is positioned relative to the current
- position. If justify is negative, string is left justified; if it is zero,
- string is centered; if it is positive, string is right justified.
-
- Return value
-
- The length of string, in world space units.
-
- Restrictions
-
- Before using this routine, you must use the fg_initw and fg_setworld
- routines to establish a world space coordinate system. This routine is not
- available in Fastgraph/Light and has no effect in text video modes.
-
- See also
-
- fg_initw, fg_setangle, fg_setratio, fg_setsize, fg_setsizew, fg_setworld,
- fg_swchar, fg_swtext
-
- Examples
-
- 7-11
-
-
-
-
-
-
-
-
-
-
-
-
-
- 165
- fg_swtext
-
- Prototype
-
- void fg_swtext (char *string, int n, int justify);
- sub FGswtext (string$, n%, justify%)
- subroutine fg_swtext (character*(*) string, integer*2 n, integer*2 justify)
- procedure fg_swtext (string : string; n, justify : integer);
-
- Description
-
- The fg_swtext routine is a scaled down version of the fg_swchar routine.
- It does not include the alternate font character definitions and thus
- requires less memory than fg_swchar.
-
- Parameters
-
- string is the arbitrary-length sequence of characters to display. It may
- contain special operators, as summarized in the following table.
-
- operator meaning
-
- \^ superscript the next character
- \v subscript the next character
- _ begin underlining characters until another
- underscore character is encountered
-
- n is the number of characters in string, including any special operator
- characters.
-
- justify determines how string is positioned relative to the current
- position. If justify is negative, string is left justified; if it is zero,
- string is centered; if it is positive, string is right justified.
-
- Return value
-
- none
-
- Restrictions
-
- Before using this routine, you must use the fg_initw and fg_setworld
- routines to establish a world space coordinate system. This routine is not
- available in Fastgraph/Light and has no effect in text video modes.
-
- See also
-
- fg_initw, fg_setangle, fg_setratio, fg_setsize, fg_setsizew, fg_setworld,
- fg_swchar, fg_swlength
-
- Examples
-
- 7-10, 7-11
-
-
-
-
-
-
- 166
- fg_tcmask
-
- Prototype
-
- void fg_tcmask (int mask);
- sub FGtcmask (mask%)
- subroutine fg_tcmask (integer*2 mask)
- procedure fg_tcmask (mask : integer);
-
- Description
-
- The fg_tcmask routine defines which color values the fg_tcxfer routine will
- consider transparent.
-
- Parameters
-
- mask is a 16-bit mask, where each bit indicates whether or not the
- corresponding color value is transparent. For example, if bit 0 (the
- rightmost bit) is 1, then color 0 will be transparent. If bit 0 is 0,
- color 0 will not be transparent. Because the mask size is 16 bits, only
- the first 16 color values may be defined as transparent.
-
- Return value
-
- none
-
- Restrictions
-
- This routine has no effect in text video modes.
-
- See also
-
- fg_tcxfer
-
- Examples
-
- 9-28
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 167
- fg_tcxfer
-
- Prototype
-
- void fg_tcxfer (int minx, int maxx, int miny, int maxy, int newx, int newy,
- int source_page, int dest_page);
- sub FGtcxfer (minx%, maxx%, miny%, maxy%, newx%, newy%, source_page%,
- dest_page%)
- subroutine fg_tcxfer (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy, integer*2 newx, integer*2 newy, integer*2 source_page,
- integer*2 dest_page);
- procedure fg_tcxfer (minx, maxx, miny, maxy, newx, newy, source_page,
- dest_page : integer);
-
- Description
-
- The fg_tcxfer routine copies a rectangular region from any position on any
- video page to any position on any video page, excluding any pixels whose
- color is transparent. The transparent colors are defined by the fg_tcmask
- routine.
-
- Parameters
-
- minx is the x coordinate of the source region's left edge. Its value is
- reduced to a byte boundary if necessary.
-
- maxx is the x coordinate of the source region's right edge. It must be
- greater than or equal to the value of minx. Its value is extended to a
- byte boundary if necessary.
-
- miny is the y coordinate of the source region's top edge.
-
- maxy is the y coordinate of the source region's bottom edge. It must be
- greater than or equal to the value of miny.
-
- newx is the x coordinate of the destination region's left edge.
-
- newy is the y coordinate of the destination region's bottom edge.
-
- source_page is the video page number containing the source region.
-
- dest_page is the video page number for the destination region.
-
- Return value
-
- none
-
- Restrictions
-
- If source_page and dest_page reference the same video page, the source
- region and destination region must not overlap. This routine has no effect
- in text video modes.
-
- See also
-
- fg_tcmask, fg_transfer
-
-
- 168
- fg_tcxfer (continued)
-
- Examples
-
- 9-28
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 169
- fg_testmode
-
- Prototype
-
- int fg_testmode (int mode, int pages);
- function FGtestmode% (mode%, pages%)
- integer*2 function fg_testmode (integer*2 mode, integer*2 pages)
- function fg_testmode (mode, pages : integer) : integer;
-
- Description
-
- The fg_testmode routine determines whether or not a specified video mode is
- available on the user's system. Additionally, fg_testmode can check if
- there is enough video memory (for physical pages) or random-access memory
- (for virtual pages) to support the number of video pages needed.
-
- Parameters
-
- mode is the video mode number to test, between 0 and 23. Refer to the
- description of the fg_setmode routine for a list of available video modes.
-
- pages is the number of video pages required (either physical pages, virtual
- pages, or both). If the pages parameter is zero or negative, fg_testmode
- checks for availability of the video mode but does not consider video
- memory requirements.
-
- Return value
-
- If the requested video mode is available (with the requested number of
- video pages), fg_testmode returns 1. If not, it returns 0.
-
- Restrictions
-
- none
-
- See also
-
- fg_automode, fg_bestmode, fg_egacheck, fg_setmode
-
- Examples
-
- 3-3, 3-5, 3-9, 5-16, 6-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 170
- fg_text
-
- Prototype
-
- void fg_text (char *string, int n);
- sub FGtext (string$, n%)
- subroutine fg_text (character*(*) string, integer*2 n)
- procedure fg_text (string : string; n : integer);
-
- Description
-
- The fg_text routine displays a string of hardware characters, starting at
- the text cursor position, using the current text attribute (for text modes)
- or color index (for graphics modes). This routine leaves the text cursor
- one column to the right of the last character changed (or the first column
- of the next row if the last character is at the end of a row).
-
- Parameters
-
- string is the arbitrary-length sequence of characters to display.
-
- n is the number of characters to display from string.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_locate
-
- Examples
-
- 7-1 to 7-8, 7-10, 7-11
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 171
- fg_transfer
-
- Prototype
-
- void fg_transfer (int minx, int maxx, int miny, int maxy, int newx,
- int newy, int source_page, int dest_page);
- sub FGtransfer (minx%, maxx%, miny%, maxy%, newx%, newy%, source_page%,
- dest_page%)
- subroutine fg_transfer (integer*2 minx, integer*2 maxx, integer*2 miny,
- integer*2 maxy, integer*2 newx, integer*2 newy, integer*2 source_page,
- integer*2 dest_page);
- procedure fg_transfer (minx, maxx, miny, maxy, newx, newy, source_page,
- dest_page : integer);
-
- Description
-
- The fg_transfer routine copies a rectangular region from any position on
- any video page to any position on any video page. In text modes, the
- region is defined in character space; in graphics modes, it is defined in
- screen space. It is Fastgraph's most general image transfer routine.
-
- Parameters
-
- minx is the x coordinate of the source region's left edge. In graphics
- modes, its value is reduced to a byte boundary if necessary.
-
- maxx is the x coordinate of the source region's right edge. It must be
- greater than or equal to the value of minx. In graphics modes, its value
- is extended to a byte boundary if necessary.
-
- miny is the y coordinate of the source region's top edge.
-
- maxy is the y coordinate of the source region's bottom edge. It must be
- greater than or equal to the value of miny.
-
- newx is the x coordinate of the destination region's left edge.
-
- newy is the y coordinate of the destination region's bottom edge.
-
- source_page is the video page number containing the source region.
-
- dest_page is the video page number for the destination region.
-
- Return value
-
- none
-
- Restrictions
-
- If source_page and dest_page reference the same video page, the source
- region and destination region must not overlap.
-
- See also
-
- fg_copypage, fg_restore, fg_restorew, fg_save, fg_savew, fg_tcxfer
-
-
-
- 172
- fg_transfer (continued)
-
- Examples
-
- 9-25, 9-26, 9-27, 10-4, 10-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 173
- fg_version
-
- Prototype
-
- void fg_version (int *major, int *minor);
- sub FGversion (major%, minor%)
- subroutine fg_version (integer*2 major, integer*2 minor)
- procedure fg_version (var major, minor : integer);
-
- Description
-
- The fg_version routine returns the major and minor version numbers for your
- copy of Fastgraph or Fastgraph/Light. For example, if you are using
- Fastgraph version 2.10, the major version number is 2 and the minor version
- number is 10.
-
- Parameters
-
- major receives the major version number.
-
- minor receives the minor version number, expressed in hundredths.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- Examples
-
- 1-1, 1-2, 1-3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 174
- fg_voice
-
- Prototype
-
- void fg_voice (int channel, int frequency, int volume, int duration);
- sub FGvoice (channel%, frequency%, volume%, duration%)
- subroutine fg_voice (integer*2 channel, integer*2 frequency, integer*2
- volume, integer*2 duration)
- procedure fg_voice (channel, frequency, volume, duration : integer);
-
- Description
-
- The fg_voice routine produces a tone of a specified frequency, duration,
- and volume using one of the TI sound chip's four independent voice
- channels.
-
- Parameters
-
- channel defines the voice channel or type of noise, as shown below.
-
- value meaning
-
- 1 voice channel #1
- 2 voice channel #2
- 3 voice channel #3
- 4 voice channel #4, periodic noise
- 5 voice channel #4, white noise
-
- frequency defines the tone's frequency in Hertz. If channel is 1, 2, or 3,
- then frequency represents the actual frequency, between 18 and 32,767. If
- channel is 4 or 5, frequency is instead a value that represents a specific
- frequency, as shown below.
-
- value frequency
-
- 0 512 Hertz
- 1 1024 Hertz
- 2 2048 Hertz
-
- volume is the tone's volume, between 0 (silent) and 15 (loudest).
-
- duration is the tone's length in clock ticks (there are approximately 18.2
- clock ticks per second). If duration is zero or negative, the tone is said
- to be continuous and will play until you stop it with the fg_quiet routine.
-
- Return value
-
- none
-
-
-
-
-
-
-
-
-
-
- 175
- fg_voice (continued)
-
- Restrictions
-
- This routine should only be used on systems equipped with the TI sound chip
- (namely, the PCjr and Tandy 1000 systems). It has no effect if there is
- asynchronous sound already in progress.
-
- See also
-
- fg_music, fg_quiet, fg_sound, fg_voices
-
- Examples
-
- 13-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 176
- fg_voices
-
- Prototype
-
- void fg_voices (int *sound_array, int ntimes);
- sub FGvoices (sound_array%(), ntimes%)
- subroutine fg_voices (integer*2 sound_array, integer*2 ntimes)
- procedure fg_voices (var sound_array : integer; ntimes : integer);
-
- Description
-
- The fg_voices routine uses the TI sound chip to play a series of tones of
- specified frequencies, durations, and volumes, concurrent with other
- activity. It is the asynchronous version of the fg_voice routine.
-
- Parameters
-
- sound_array is an arbitrary-length array containing a series of
- (channel,frequency,volume,duration) sound definitions. The format of this
- array is:
-
-
- [0] channel # of sound 1
-
- [1] frequency of sound 1
-
- [2] volume of sound 1
-
- [3] duration of sound 1
- .
- .
- .
- [4n-4] channel # of sound n
-
- [4n-3] frequency of sound n
-
- [4n-2] volume of sound n
-
- [4n-1] duration of sound n
-
- [4n] terminator (0)
-
-
- The channel numbers, frequencies, volumes, and durations must be in the
- same ranges as discussed in the description of the fg_voice routine, except
- the durations are quadrupled because of the accelerated clock tick
- interrupt rate (there are 72.8 instead of 18.2 clock ticks per second). A
- null character (that is, a zero byte) terminates the array.
-
- ntimes specifies the number of times to cycle through the sounds defined in
- sound_array. If ntimes is negative, the sounds will play repetitively
- until stopped with the fg_hush or fg_hushnext routine.
-
-
-
-
-
-
- 177
- fg_voices (continued)
-
- Return value
-
- none
-
- Restrictions
-
- This routine should only be used on systems equipped with the TI sound chip
- (namely, the PCjr and Tandy 1000 systems). It has no effect if there is
- asynchronous sound already in progress. To expand the range of sound
- effects, Fastgraph temporarily quadruples the clock tick interrupt rate
- from 18.2 to 72.8 ticks per second while producing asynchronous sound.
- Because many disk controllers rely on the 18.2 tick per second clock rate
- to synchronize disk accesses, your programs should not perform any disk
- operations when asynchronous sound is in progress.
-
- See also
-
- fg_hush, fg_hushnext, fg_musicb, fg_playing, fg_sounds, fg_voice
-
- Examples
-
- 13-5
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 178
- fg_waitfor
-
- Prototype
-
- void fg_waitfor (int ticks);
- sub FGwaitfor (ticks%)
- subroutine fg_waitfor (integer*2 ticks)
- procedure fg_waitfor (ticks : integer);
-
- Description
-
- The fg_waitfor routine delays a program's execution for a given number of
- clock ticks. There are 18.2 clock ticks per second, regardless of the
- system's processor speed.
-
- Parameters
-
- ticks is the number of clock ticks to wait.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_stall
-
- Examples
-
- 5-11, 10-1 to 10-5, 11-5, 11-6, 12-2, 12-6, 12-7, 12-11, 12-12, 13-1, 13-2,
- 13-3, 13-6, 13-7, 14-1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 179
- fg_waitkey
-
- Prototype
-
- void fg_waitkey (void);
- sub FGwaitkey ()
- subroutine fg_waitkey ()
- procedure fg_waitkey;
-
- Description
-
- The fg_waitkey routine flushes the BIOS keyboard buffer (that is, removes
- any type-ahead characters) and then waits for another keystroke. It is
- most useful in "press any key to continue" situations.
-
- Parameters
-
- none
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_getkey, fg_intkey
-
- Examples
-
- 3-2 to 3-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 180
- fg_where
-
- Prototype
-
- void fg_where (int *row, int *column);
- sub FGwhere (row%, column%)
- subroutine fg_where (integer*2 row, integer*2 column)
- procedure fg_where (row, column : integer);
-
- Description
-
- The fg_where routine retrieves the text cursor position for the active
- display page.
-
- Parameters
-
- row receives the text cursor's current row number, between 0 and one less
- than the number of character rows available.
-
- column receives text cursor's current column number, between 0 and one less
- than the number of character columns available.
-
- Return value
-
- none
-
- Restrictions
-
- none
-
- See also
-
- fg_locate
-
- Examples
-
- 7-2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 181
- fg_xalpha
-
- Prototype
-
- int fg_xalpha (int ix);
- function FGxalpha% (ix%)
- integer*2 function fg_xalpha (integer*2 ix)
- function fg_xalpha (ix : integer) : integer;
-
- Description
-
- The fg_xalpha routine translates a screen space x coordinate to the
- character space column containing that coordinate.
-
- Parameters
-
- ix is the screen space coordinate to translate.
-
- Return value
-
- The character space column containing the screen space coordinate ix. In
- text modes, the return value is equal to the value of ix.
-
- Restrictions
-
- none
-
- See also
-
- fg_xconvert, fg_yalpha, fg_yconvert
-
- Examples
-
- 12-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 182
- fg_xconvert
-
- Prototype
-
- int fg_xconvert (int column);
- function FGxconvert% (column%)
- integer*2 function fg_xconvert (integer*2 column)
- function fg_xconvert (column : integer) : integer;
-
- Description
-
- The fg_xconvert routine translates a character space column to the screen
- space coordinate of its leftmost pixel. In graphics video modes,
- fg_xconvert(1) is an easy way to determine the width in pixels of a
- character cell.
-
- Parameters
-
- column is the character space column to translate.
-
- Return value
-
- The screen space x coordinate of the leftmost pixel in the character space
- column column. In text modes, the return value is equal to the value of
- column.
-
- Restrictions
-
- none
-
- See also
-
- fg_xalpha, fg_yalpha, fg_yconvert
-
- Examples
-
- 7-7, 12-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 183
- fg_xscreen
-
- Prototype
-
- int fg_xscreen (double x);
- function FGxscreen% (x#)
- integer*2 function fg_xscreen (real*8 x)
- function fg_xscreen (x : real) : integer;
-
- Description
-
- The fg_xscreen routine translates a world space x coordinate to its screen
- space equivalent.
-
- Parameters
-
- x is the world space coordinate to translate.
-
- Return value
-
- The screen space x coordinate equivalent to the world space coordinate x.
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_xworld, fg_yscreen, fg_yworld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 184
- fg_xworld
-
- Prototype
-
- double fg_xworld (int ix);
- function FGxworld# (ix%)
- real*8 function fg_xworld (integer*2 ix)
- function fg_xworld (ix : integer) : real;
-
- Description
-
- The fg_xworld routine translates a screen space x coordinate to its world
- space equivalent.
-
- Parameters
-
- ix is the screen space coordinate to translate.
-
- Return value
-
- The world space x coordinate equivalent to the screen space coordinate ix.
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_xscreen, fg_yscreen, fg_yworld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 185
- fg_yalpha
-
- Prototype
-
- int fg_yalpha (int iy);
- function FGyalpha% (iy%)
- integer*2 function fg_yalpha (integer*2 iy)
- function fg_yalpha (iy : integer) : integer;
-
- Description
-
- The fg_yalpha routine translates a screen space y coordinate to the
- character space row containing that coordinate.
-
- Parameters
-
- iy is the screen space coordinate to translate.
-
- Return value
-
- The character space row containing the screen space coordinate iy. In text
- modes, the return value is equal to the value of iy.
-
- Restrictions
-
- none
-
- See also
-
- fg_xalpha, fg_xconvert, fg_yconvert
-
- Examples
-
- 12-9
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 186
- fg_yconvert
-
- Prototype
-
- int fg_yconvert (int row);
- function FGyconvert% (row%)
- integer*2 function fg_yconvert (integer*2 row)
- function fg_yconvert (row : integer) : integer;
-
- Description
-
- The fg_yconvert routine translates a character space row to the screen
- space coordinate of its top (lowest-numbered) pixel. In graphics video
- modes, fg_yconvert(1) is an easy way to determine the height in pixels of a
- character cell.
-
- Parameters
-
- row is the character space row to translate.
-
- Return value
-
- The screen space y coordinate of the top pixel in the character space row
- row. In text modes, the return value is equal to the value of row.
-
- Restrictions
-
- none
-
- See also
-
- fg_xalpha, fg_xconvert, fg_yalpha
-
- Examples
-
- 7-7, 12-7
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 187
- fg_yscreen
-
- Prototype
-
- int fg_yscreen (double y);
- function FGyscreen% (y#)
- integer*2 function fg_yscreen (real*8 y)
- function fg_yscreen (y : real) : integer;
-
- Description
-
- The fg_yscreen routine translates a world space y coordinate to its screen
- space equivalent.
-
- Parameters
-
- y is the world space coordinate to translate.
-
- Return value
-
- The screen space y coordinate equivalent to the world space coordinate y.
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_xscreen, fg_xworld, fg_yworld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 188
- fg_yworld
-
- Prototype
-
- double fg_yworld (int iy);
- function FGyworld# (iy%)
- real*8 function fg_yworld (integer*2 iy)
- function fg_yworld (iy : integer) : real;
-
- Description
-
- The fg_yworld routine translates a screen space y coordinate to its world
- space equivalent.
-
- Parameters
-
- iy is the screen space coordinate to translate.
-
- Return value
-
- The world space y coordinate equivalent to the screen space coordinate iy.
-
- Restrictions
-
- This routine is not available in Fastgraph/Light.
-
- See also
-
- fg_xscreen, fg_xworld, fg_yscreen
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 189