home *** CD-ROM | disk | FTP | other *** search
- AMIGA C MANUAL
- Version V2.000
-
- ---------------
- C O N T E N T S
- ---------------
-
- 0 INTRODUCTION
-
- 0.1 INTRODUCTION
-
- 0.2 HOW TO COMPILE AND LINK
- 0.2.1 SOURCE CODE
- 0.2.2 FIRST PHASE OF COMPILATION
- 0.2.3 SECOND PHASE OF COMPILATION
- 0.2.4 LINKING
-
- 0.3 C PROGRAMS
- 0.3.1 #INCLUDE
- 0.3.2 #DEFINE
- 0.3.3 OTHER PRE-PROCESSOR COMMANDS
- 0.3.4 FUNCTIONS
- 0.3.5 VARIABLES
- 0.3.6 STORAGE CLASSES FOR VARIABLES
- 0.3.6.1 AUTOMATIC
- 0.3.6.2 FORMAL
- 0.3.6.3 GLOBAL
- 0.3.6.4 EXTERNAL STATIC
- 0.3.6.5 INTERNAL STATIC
- 0.3.6.6 REGISTER
- 0.3.7 POINTERS
- 0.3.8 STRUCTURES
- 0.3.8.1 HOW TO DECLARE STRUCTURES
- 0.3.8.2 HOW TO CHANGE THE STRUCTURE'S FIELDS
- 0.3.8.3 POINTERS AND STRUCTURES
- 0.3.9 CASTING
-
- 0.4 LIBRARIES
- 0.4.1 ROM LIBRARIES
- 0.4.2 DISK LIBRARIES
- 0.4.3 OPEN AND CLOSE LIBRARIES
-
- 0.5 MEMORY
-
-
-
- 1 SCREENS
-
- 1.1 INTRODUCTION
-
- 1.2 DIFFERENT TYPES OF SCREENS
-
- 1.3 WORKBENCH SCREEN
-
- 1.4 CUSTOM SCREENS
- 1.4.1 RESOLUTION
- 1.4.2 DEPTH
- 1.4.3 INTERLACED
- 1.4.4 HAM AND EXTRA HALFBRIGHTE
- 1.4.5 DUAL PLAYFIELDS
- 1.4.6 FONTS
- 1.4.7 SIZE AND POSITION
- 1.4.8 TITLE
- 1.4.9 GADGETS
-
- 1.5 INITIALIZE A CUSTOM SCREEN
-
- 1.6 OPEN A CUSTOM SCREEN
-
- 1.7 SCREEN STRUCTURE
-
- 1.8 FUNCTIONS
-
- 1.9 EXAMPLES
-
-
-
- 2 WINDOWS
-
- 2.1 INTRODUCTION
-
- 2.2 SPECIAL WINDOWS
- 2.2.1 BACKDROP WINDOWS
- 2.2.2 BORDERLESS WINDOWS
- 2.2.3 GIMMEZEROZERO WINDOWS
- 2.2.4 SUPERBITMAP WINDOWS
-
- 2.3 SYSTEM GADGETS
-
- 2.4 REDRAWING THE WINDOW DISPLAY
-
- 2.5 INITIALIZE A WINDOW
-
- 2.6 OPEN A WINDOW
-
- 2.7 WINDOW STRUCTURE
-
- 2.8 OPEN A SUPERBITMAP WINDOW
-
- 2.9 MAKE YOUR OWN CUSTOM POINTER
-
- 2.10 FUNCTIONS
-
- 2.11 EXAMPLES
-
-
-
- 3 GRAPHICS
-
- 3.1 INTRODUCTION
-
- 3.2 LINES TEXT PICTURES
-
- 3.3 BORDERS
- 3.3.1 THE BORDER STRUCTURE
- 3.3.2 COORDINATES
-
- 3.4 HOW TO USE THE BORDER STRUCTURE
- 3.4 TEXT
- 3.4.1 THE INTUITEXT STRUCTURE
- 3.4.2 FONTS
- 3.4.3 HOW TO USE THE INTUITEXT STRUCTURE
-
- 3.5 IMAGES
- 3.5.1 IMAGE DATA
- 3.5.2 THE IMAGE STRUCTURE
- 3.5.3 PLANEPICK
- 3.5.4 PLANEONOFF
- 3.5.5 HOW TO USE THE IMAGE STRUCTURE
-
- 3.6 FUNCTIONS
-
- 3.7 EXAMPLES
-
-
-
- 4 GADGETS
-
- 4.1 INTRODUCTION
-
- 4.2 DIFFERENT TYPES OF GADGETS
-
- 4.3 CUSTOM GADGETS
- 4.3.1 GRAPHICS FOR CUSTOM GADGETS
- 4.3.2 POSITION
- 4.3.3 SIZE
-
- 4.4 INITIALIZE A CUSTOM GADGET
-
- 4.5 BOOLEAN GADGET
-
- 4.6 STRING/INTEGER GADGET
- 4.6.1 STRINGINFO STRUCTURE
- 4.6.2 INITIALIZE A STRING/INTEGER GADGET
- 4.6.3 USING A STRING/INTEGER GADGET
-
- 4.7 PROPORTIONAL GADGET
- 4.7.1 PROPINFO STRUCTURE
- 4.7.2 INITIALIZE A PROPORTIONAL GADGET
-
- 4.8 MONITORING THE GADGETS
-
- 4.9 FUNCTIONS
-
- 4.10 EXAMPLES
-
-
-
- 5 REQUESTERS
-
- 5.1 INTRODUCTION
-
- 5.2 DIFFERENT TYPES OF REQUESTERS
- 5.2.1 SYSTEM REQUESTERS
- 5.2.2 APPLICATION REQUESTERS
- 5.2.3 DOUBLE-MENU REQUESTERS
- 5.3 GRAPHICS FOR REQUESTERS
-
- 5.4 POSITION
-
- 5.5 REQUESTERS AND GADGETS
-
- 5.6 SIMPLE REQUESTERS
-
- 5.7 OPEN A REQUESTERS
- 5.7.1 INITIALIZE A REQUESTER
- 5.7.2 HOW TO ACTIVATE AN APPLICATION REQUESTER
-
- 5.8 IDCMP FLAGS
-
- 5.9 รก FUNCTIONS
-
- 5.10 EXAMPLES
-
-
-
- 6 ALERTS
-
- 6.1 INTRODUCTION
-
- 6.2 DIFFERENT LEVELS OF WARNINGS
-
- 6.3 HOW TO USE THE DISPLAYALERT() FUNCTION
-
- 6.4 EXAMPLES OF STRINGS AND SUBSTRINGS
-
- 6.5 FUNCTIONS
-
- 6.6 EXAMPLES
-
-
-
- 7 MENUS
-
- 7.1 INTRODUCTION
-
- 7.2 MENU DESIGN
-
- 7.3 HOW TO ACCESS MENUS FROM THE KEYBOARD
-
- 7.4 MENU ITEMS
-
- 7.5 MUTUAL EXCLUDE
-
- 7.6 OPEN A MENU
- 7.6.1 INITIALIZE A MENU STRUCTURE
- 7.6.2 INITIALIZE A MENUITEM STRUCTURE
- 7.6.3 HOW TO SUBMIT AND REMOVE A MENU STRIP TO/FROM A WINDOW
-
- 7.7 SPECIAL IDCMP FLAGS
- 7.7.1 MENUPICK
- 7.7.2 MENUVERIFY
-
- 7.8 MENU NUMBERS
-
- 7.9 FUNCTIONS
-
- 7.10 MACROS
-
- 7.11 EXAMPLES
-
-
-
- 8 IDCMP
-
- 8.1 INTRODUCTION
-
- 8.2 IDCMP PORTS
-
- 8.3 HOW TO RECEIVE IDCMP MESSAGES
- 8.3.1 OPEN IDCMP PORTS
- 8.3.2 WAIT FOR MESSAGES
- 8.3.3 COLLECT MESSAGES
- 8.3.4 EXAMINE THE MESSAGE
- 8.3.5 REPLY
- 8.3.6 EXAMPLE
-
- 8.4 IDCMP FLAGS
-
- 8.5 FUNCTIONS
-
- 8.6 EXAMPLES
-
-
-
- 9 MISCELLANEOUS
-
- 9.1 INTRODUCTION
-
- 9.2 MEMORY
-
- 9.2.1 ALLOCATE MEMORY
- 9.2.2 DEALLOCATE MEMORY
- 9.2.3 REMEMBER MEMORY
-
- 9.3 PREFERENCES
-
- 9.4 WARNINGS
-
- 9.5 DOUBLE CLICK
-
- 9.6 TIME
-
- 9.7 STYLE
- 9.7.1 GADGETS
- 9.7.2 REQUESTERS
- 9.7.3 MENUS
- 9.7.4 MOUSE
-
- 9.8 FUNCTIONS
-
- 9.9 EXAMPLES
-
-
-
- 10 SPRITES
-
- 10.1 INTRODUCTION
-
- 10.2 LIMITATIONS
-
- 10.3 COLOURS
-
- 10.4 ACCESS HARDWARE SPRITES
- 10.4.1 SPRITE DATA
- 10.4.2 SIMPLESPRITE STRUCTURE
- 10.4.3 RESERVE A SPRITE
- 10.4.4 PLAY WITH THE SPRITE
- 10.4.5 FREE THE SPRITE
- 10.4.6 PROGRAM STRUCTURE
-
- 10.5 TECHNIQUES
- 10.5.1 WIDER SPRITES
- 10.5.2 MORE COLOURS
- 10.5.2.1 15 COLOURED SPRITE DATA
- 10.5.2.2 ATTACH SPRITES
- 10.5.2.3 MOVE ATTACHED SPRITES
- 10.5.3 LEVELS
-
- 10.6 FUNCTIONS
-
- 10.7 EXAMPLES
-
-
-
- 11 AMIGADOS
-
- 11.1 INTRODUCTION
- 11.1.1 PHYSICAL DEVICES
- 11.1.2 VOLUMES
- 11.1.3 DIRECTORIES/SUBDIRECTORIES/FILES
- 11.1.4 LOGICAL DEVICES
-
- 11.2 OPEN AND CLOSE FILES
-
- 11.3 READ AND WRITE FILES
- 11.3.1 READ()
- 11.3.2 WRITE()
-
- 11.4 MOVE INSIDE FILES
-
- 11.5 FILES AND MULTITASKING
-
- 11.6 OTHER USEFUL FUNCTIONS
- 11.6.1 CREATE DIRECTORIES
- 11.6.2 DELETE FILES AND DIRECTORIES
- 11.6.3 RENAME FILES AND DIRECTORIES
- 11.6.4 ATTACH COMMENTS TO FILES AND DIRECTORIES
- 11.6.5 PROTECT FILES AND DIRECTORIES
-
- 11.7 EXAMINE FILES AND DIRECTORIES
- 11.7.1 FILEINFOBLOCK AND DATESTAMP STRUCTURE
- 11.7.2 EXAMINE()
- 11.7.3 4 BYTE BOUNDARY
- 11.7.4 EXAMPLE
- 11.7.5 EXAMINE FILES/SUBDIRECTORIES IN A DIRECTORY/DEVICE
- 11.7.5.1 EXNEXT()
- 11.7.5.2 ERROR MESSAGES
- 11.7.5.3 EXAMPLE
-
- 11.8 FUNCTIONS
-
- 11.9 EXAMPLES
-
-
-
- 12 LOW LEVEL GRAPHICS ROUTINES
-
- 12.1 INTRODUCTION
-
- 12.2 CREATE A DISPLAY
- 12.2.1 GENERAL INFORMATION
- 12.2.1.1 HOW A MONITOR/TV WORK
- 12.2.1.2 INTERLACED
- 12.2.1.3 HIGH AND LOW RESOLUTION
- 12.2.1.4 PIXELS
- 12.2.1.5 COLOURS
- 12.2.2 DISPLAY ELEMENTS
- 12.2.2.1 RASTER
- 12.2.2.2 VIEW
- 12.2.2.3 VIEWPORT
- 12.2.2.4 BITMAP
- 12.2.3 CREATE A DISPLAY
- 12.2.3.1 VIEW
- 12.2.3.1.1 VIEW STRUCTURE
- 12.2.3.1.2 PREPARE A VIEW STRUCTURE
- 12.2.3.2 VIEWPORTS
- 12.2.3.2.1 VIEWPORT STRUCTURE
- 12.2.3.2.2 PREPARE A VIEWPORT STRUCTURE
- 12.2.3.3 COLORMAP
- 12.2.3.3.1 COLORMAP STRUCTURE
- 12.2.3.3.2 DECLARE AND INITIALIZE A COLORMAP STRUCTURE
- 12.2.3.3.3 SET THE RGB VALUES
- 12.2.3.3.4 DEALLOCATE THE COLOURMAP
- 12.2.3.4 BITMAP
- 12.2.3.4.1 BITMAP STRUCTURE
- 12.2.3.4.2 DECLARE AND INITIALIZE A BITMAP STRUCTURE
- 12.2.3.4.3 ALLOCATE RASTER
- 12.2.3.5 RASINFO
- 12.2.3.5.1 RASINFO STRUCTURE
- 12.2.3.5.2 DECLARE AND INITIALIZE A RASINFO STRUCTURE
- 12.2.3.6 MAKEVPORT()
- 12.2.3.7 MRGCOP()
- 12.2.3.8 LOADVIEW()
- 12.2.4 CLOSE A DISPLAY
- 12.2.5 EXAMPLE
-
- 12.3 DRAW
- 12.3.1 RASTPORT
- 12.3.1.1 RASTPORT STRUCTURE
- 12.3.1.2 PREPARE A RASTPORT
- 12.3.2 DRAWING PENS
- 12.3.3 DRAWING MODES
- 12.3.4 PATTERNS
- 12.3.4.1 LINE PATTERNS
- 12.3.4.2 AREA PATTERNS
- 12.3.4.3 MULTICOLOURED PATTERNS
- 12.3.5 BITPLANE MASK
- 12.3.6 DRAW SINGLE PIXELS
- 12.3.7 READ SINGLE PIXELS
- 12.3.8 POSITION THE CURSOR
- 12.3.9 TEXT
- 12.3.10 DRAW SINGLE LINES
- 12.3.11 DRAW MULTIPLE LINES
- 12.3.12 DRAW FILLED RECTANGLES
- 12.3.13 FLOOD FILL
- 12.3.14 DRAW FILLED AREAS
- 12.3.14.1 AREAINFO AND TMPRAS STRUCTURES
- 12.3.14.2 AREAMOVE(), AREADRAW() AND AREAEND()
- 12.3.14.3 TURN OFF THE OUTLINE FUNCTION
- 12.3.14.4 EXAMPLE
- 12.3.15 SET THE RASTER TO A SPECIFIC COLOUR
- 12.3.16 BLITTER
- 12.3.16.1 CLEAR RECTANGULAR MEMORY AREAS
- 12.3.16.2 SCROLL A RECTANGULAR AREA
- 12.3.16.3 COPY RECTANGULAR AREAS
-
- 12.4 FUNCTIONS
-
- 12.5 EXAMPLES
-
-
-
- 13 VSPRITES
-
- 13.1 INTRODUCTION
-
- 13.2 HOW VSPRITES WORK
- 13.2.1 LIMITATIONS
- 13.2.2 HOW TO AVOID THE LIMITATIONS
-
- 13.3 CREATE VSPRITES
- 13.3.1 VSPRITE DATA
- 13.3.2 VSPRITE STRUCTURE
- 13.3.3 COLOUR TABLE
- 13.3.4 GELSINFO STRUCTURE
- 13.3.5 INITIALIZE THE GELSINFO STRUCTURE
- 13.3.6 INITIALIZE THE VSPRITE STRUCTURE
- 13.3.7 ADD THE VSPRITE TO THE VSPRITE LIST
- 13.3.8 PREPARE THE GEL SYSTEM
- 13.3.9 CHANGE THE VSPRITE
- 13.3.10 REMOVE VSPRITES
-
- 13.4 A COMPLETE EXAMPLE
-
- 13.5 FUNCTIONS
-
- 13.6 EXAMPLES
-
-
-
- 14 HINTS AND TIPS
-
- 14.1 INTRODUCTION
-
- 14.2 NTSC VERSUS PAL
- 14.2.1 HOW TO WRITE PROGRAMS THAT WILL FIT BOTH SYSTEMS
- 14.2.2 NTSC OR PAL?
-
- 14.3 PROGRAMS RUNNING UNDER WORKBENCH
-
- 14.4 CHECK IF THE PROGRAM WAS STARTED FROM CLI OR WORKBENCH
-
- 14.5 EXAMPLES
-